日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

如何使用yolov5輸出檢測到的目標坐標信息_python

作者:一位安分的碼農 ? 更新時間: 2022-05-31 編程語言

找到detect.py,在大概113行,找到plot_one_box

? ? ? ? ? ? ? ? # Write results
? ? ? ? ? ? ? ? for *xyxy, conf, cls in reversed(det):
? ? ? ? ? ? ? ? ? ? if save_txt: ?# Write to file
? ? ? ? ? ? ? ? ? ? ? ? xywh = (xyxy2xywh(torch.tensor(xyxy).view(1, 4)) / gn).view(-1).tolist() ?# normalized xywh
? ? ? ? ? ? ? ? ? ? ? ? with open(txt_path + '.txt', 'a') as f:
? ? ? ? ? ? ? ? ? ? ? ? ? ? f.write(('%g ' * 5 + '\n') % (cls, *xywh)) ?# label format

? ? ? ? ? ? ? ? ? ? if save_img or view_img: ?# Add bbox to image
? ? ? ? ? ? ? ? ? ? ? ? label = '%s %.2f' % (names[int(cls)], conf)
? ? ? ? ? ? ? ? ? ? ? ? plot_one_box(xyxy, im0, label=label, color=colors[int(cls)], line_thickness=3)

ctr+鼠標點擊,進入general.py,并自動定位到plot_one_box函數,修改函數為

def plot_one_box(x, img, color=None, label=None, line_thickness=None):
    # Plots one bounding box on image img
    tl = line_thickness or round(0.002 * (img.shape[0] + img.shape[1]) / 2) + 1  # line/font thickness
    color = color or [random.randint(0, 255) for _ in range(3)]
    c1, c2 = (int(x[0]), int(x[1])), (int(x[2]), int(x[3]))
    cv2.rectangle(img, c1, c2, color, thickness=tl, lineType=cv2.LINE_AA)
    print("左上點的坐標為:(" + str(c1[0]) + "," + str(c1[1]) + "),右下點的坐標為(" + str(c2[0]) + "," + str(c2[1]) + ")")

即可輸出目標坐標信息了

附:python yolov5檢測模型返回坐標的方法實例代碼

python yolov5檢測模型返回坐標的方法 直接搜索以下代碼替換下?

 if save_img or view_img:  # Add bbox to image
                        label = f'{names[int(cls)]} {conf:.2f}'
                        c1, c2 = (int(xyxy[0]), int(xyxy[1])), (int(xyxy[2]), int(xyxy[3]))
                        print("左上點的坐標為:(" + str(c1[0]) + "," + str(c1[1]) + "),右下點的坐標為(" + str(c2[0]) + "," + str(c2[1]) + ")")
                        return [c1,c2]
if __name__ == '__main__':
parser = argparse.ArgumentParser()
parser.add_argument('--weights', nargs='+', type=str, default='yolov5s.pt', help='model.pt path(s)')
parser.add_argument('--source', type=str, default='data/images', help='source') # file/folder, 0 for webcam
parser.add_argument('--img-size', type=int, default=640, help='inference size (pixels)')
parser.add_argument('--conf-thres', type=float, default=0.25, help='object confidence threshold')
parser.add_argument('--iou-thres', type=float, default=0.45, help='IOU threshold for NMS')
parser.add_argument('--device', default='', help='cuda device, i.e. 0 or 0,1,2,3 or cpu')
parser.add_argument('--view-img', action='store_true', help='display results')
parser.add_argument('--save-txt', action='store_true', help='save results to *.txt')
parser.add_argument('--save-conf', action='store_true', help='save confidences in --save-txt labels')
parser.add_argument('--nosave', action='store_true', help='do not save images/videos')
parser.add_argument('--classes', nargs='+', type=int, help='filter by class: --class 0, or --class 0 2 3')
parser.add_argument('--agnostic-nms', action='store_true', help='class-agnostic NMS')
parser.add_argument('--augment', action='store_true', help='augmented inference')
parser.add_argument('--update', action='store_true', help='update all models')
parser.add_argument('--project', default='runs/detect', help='save results to project/name')
parser.add_argument('--name', default='exp', help='save results to project/name')
parser.add_argument('--exist-ok', action='store_true', help='existing project/name ok, do not increment')
opt = parser.parse_args()

check_requirements(exclude=('pycocotools', 'thop'))

opt.source='data/images/1/'
result=detect()
print('最終檢測結果:',result);

總結

原文鏈接:https://blog.csdn.net/weixin_44612221/article/details/115384742

欄目分類
最近更新