mirror of
https://gitee.com/bianbu-linux/ai-support
synced 2025-04-24 22:27:13 -04:00
42 lines
No EOL
2 KiB
Python
42 lines
No EOL
2 KiB
Python
import argparse
|
|
|
|
def get_argsparser():
|
|
"""Parse commandline."""
|
|
parser = argparse.ArgumentParser(description="Bianbu AI Python Demo for Human Pose Points.")
|
|
parser.add_argument("--image", "-i", type=str, required=True, help="input test image path")
|
|
parser.add_argument("--label", "-l", type=str, required=True, help="input test label path")
|
|
parser.add_argument("--model-det", "-md", type=str, required=True, help="input detection model(*.onnx) path")
|
|
parser.add_argument("--model-pose", "-mp", type=str, required=True, help="input pose model(*.onnx) path")
|
|
parser.add_argument("--intra", type=int, default=2, help="intra thread number for backend(e.g. onnxruntime)")
|
|
parser.add_argument("--inter", type=int, default=2, help="inter thread number for backend(e.g. onnxruntime)")
|
|
return parser.parse_args()
|
|
|
|
|
|
if __name__ == "__main__":
|
|
args = get_argsparser()
|
|
|
|
# object detection
|
|
from bianbuai import ObjectDetectionOption, ObjectDetectionTask
|
|
option_detect = ObjectDetectionOption()
|
|
option_detect.model_path = args.model_det
|
|
option_detect.label_path = args.label
|
|
option_detect.intra_threads_num = args.intra
|
|
option_detect.inter_threads_num = args.inter
|
|
task_detect = ObjectDetectionTask(option_detect)
|
|
|
|
# pose estimation
|
|
from bianbuai import PoseEstimationOption, PoseEstimationTask
|
|
option_pose = PoseEstimationOption()
|
|
option_pose.model_path = args.model_pose
|
|
option_pose.intra_threads_num = args.intra
|
|
option_pose.inter_threads_num = args.inter
|
|
task_pose = PoseEstimationTask(option_pose)
|
|
|
|
import cv2
|
|
image = cv2.imread(args.image)
|
|
output_boxes = task_detect.Detect(image)
|
|
for i, box in enumerate(output_boxes):
|
|
print("bbox[%2d] x1y1x2y2: (%4d,%4d,%4d,%4d), score: %5.3f, label_text: %s" % (i, box.x1, box.y1, box.x2, box.y2, box.score, box.label_text))
|
|
pose_points = task_pose.Estimate(image, box)
|
|
for i, point in enumerate(pose_points):
|
|
print(" point[%2d] xy: (%4d,%4d), score: %5.3f" % (i, point.x, point.y, point.score)) |