如何使用yolov5输出检测到的目标坐标信息

 更新时间:2022年03月28日 09:34:45   作者:一位安分的码农  
YOLOv5是一系列在 COCO 数据集上预训练的对象检测架构和模型,下面这篇文章主要给大家介绍了关于如何使用yolov5输出检测到的目标坐标信息的相关资料,需要的朋友可以参考下

找到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);

总结

到此这篇关于如何使用yolov5输出检测到的目标坐标信息的文章就介绍到这了,更多相关yolov5输出目标坐标内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python判断all函数输出结果是否为true的方法

    python判断all函数输出结果是否为true的方法

    在本篇内容里小编给各位整理的是一篇关于python判断all函数输出结果是否为true的方法,有需要的朋友们可以学习下。
    2020-12-12
  • python 显示数组全部元素的方法

    python 显示数组全部元素的方法

    下面小编就为大家分享一篇python 显示数组全部元素的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-04-04
  • Python读取Pickle文件信息并计算与当前时间间隔的方法分析

    Python读取Pickle文件信息并计算与当前时间间隔的方法分析

    这篇文章主要介绍了Python读取Pickle文件信息并计算与当前时间间隔的方法,涉及Python基于pickle模块操作文件属性相关实现技巧,需要的朋友可以参考下
    2019-01-01
  • Python实现

    Python实现"验证回文串"的几种方法

    这篇文章主要介绍了Python实现"验证回文串"的几种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • 详解python内置模块urllib

    详解python内置模块urllib

    这篇文章主要介绍了python内置模块urllib的相关资料,帮助大家更好的理解和使用python 内置模块,感兴趣的朋友可以了解下
    2020-09-09
  • python实现简单淘宝秒杀功能

    python实现简单淘宝秒杀功能

    这篇文章主要为大家详细介绍了python实现简单淘宝秒杀功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-05-05
  • python conda操作方法

    python conda操作方法

    这篇文章主要介绍了python conda操作方法,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-09-09
  • python教程之用py2exe将PY文件转成EXE文件

    python教程之用py2exe将PY文件转成EXE文件

    py2exe是一个将python脚本转换成windows上的可独立执行的可执行程序(*.exe)的工具,这样,你就可以不用装python而在windows系统上运行这个可执行程序。
    2014-06-06
  • 如何使用Python创建json文件

    如何使用Python创建json文件

    众所周知JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,这篇文章主要给大家介绍了关于如何使用Python创建json文件的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-06-06
  • 10款最佳Python开发工具推荐,每一款都是神器

    10款最佳Python开发工具推荐,每一款都是神器

    这篇文章主要介绍了10款最佳Python开发工具推荐,每一款都是神器,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2020-10-10

最新评论