Yolov5根据目标类别自定义识别框的颜色

修改下detect文件下的write results函数

# 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
    line = (cls, *xywh, conf) if opt.save_conf else (cls, *xywh)  # label format
    with open(txt_path + '.txt', 'a') as f:
        f.write(('%g ' * len(line)).rstrip() % line + '\n')

if save_img or view_img:  # Add bbox to image
    label = f'{names[int(cls)]} {conf:.2f}'
    #定义颜色
    color_dict = {'1': [0, 0, 250], '2': [190, 90, 92], '3': [142, 154, 78], '4': [2, 76, 82],
                  '5': [119, 80, 5], '6': [189, 163, 234]}  # Rgb3个值:B G R
    if names[int(cls)] == 'car':        #根据训练的文件.yaml中的name类中的名称修改
         color_single = color_dict['1']
    elif names[int(cls)] == 'person':        
         color_single = color_dict['2']

    plot_one_box(xyxy, im0, label=label, color=color_single, line_thickness=3)

参考文档:

(53条消息) 【目标检测】YOLOv5:标签中文显示/自定义颜色_yolov5中文标签_zstar-_的博客-CSDN博客

  • 4
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 使用Qt和YOLOv5进行图像检测并在图像上绘制检测可以分为以下几步: 1. 获取YOLOv5模型,并使用PyTorch进行加载。 2. 在Qt界面中添加一个图像显示部件(如 QLabel) 3. 通过调用YOLOv5模型的 forward() 函数对输入的图像进行检测。 4. 处理输出的检测结果,在原图上绘制矩形并在内标注对象类别。 5. 显示处理后的图像,更新到QLabel中。 还有需要注意的是,检测过程可能比较耗时,建议在另一个线程中进行。 代码实现可能略有复杂, 如果你需要样例代码可以给我更具体的信息或者例子 ### 回答2: 使用YOLOv5进行图像检测并在图像上绘制检测的过程如下: 1. 导入必要的库和模块,如torch、torchvision等,并加载YOLOv5网络模型。 2. 载入待检测的图像,并进行一些预处理,例如图像缩放、归一化等,以适应模型的输入要求。 3. 将预处理后的图像输入到YOLOv5模型中,进行目标检测。模型将返回检测到的目标的位置信息,如左上角和右下角的坐标。 4. 遍历每个检测到的目标,获取其位置信息。 5. 使用绘图函数将检测绘制在图像上,将左上角和右下角的坐标作为参数传入绘图函数,并指定线条颜色和线宽等绘图属性。 6. 最后,显示带有检测的图像,以便观察检测结果。 需要注意的是,YOLOv5是一个开源的目标检测算法,可以在GitHub上找到其相关代码和模型。在使用YOLOv5进行图像检测时,需要根据具体情况进行安装配置,并根据项目需求完成相关代码的编写。以上是简要的步骤描述,具体实现可以根据实际情况进行调整和补充。 ### 回答3: YOLOv5是一种目标检测算法,可以通过QT库对图像进行检测并在图像上画出检测。 首先,我们需要使用QT库加载并显示待检测的图像。可以使用QImage类读取图像文件,并通过QPixmap类将图像显示在QT应用程序的窗口上。 接下来,我们需要使用YOLOv5模型对图像进行检测。可以使用YOLOv5Python接口进行图像检测,可以调用Python代码来执行检测任务。可以使用subprocess库在QT应用程序中调用Python脚本,将需要检测的图像作为参数传递给脚本。 在Python脚本中,可以使用YOLOv5的函数来加载预训练的模型,并对图像进行检测。YOLOv5会输出每个检测到的目标的边界坐标和类别,可以将这些信息保存下来。 回到QT应用程序中,可以使用QPainter类在图像上画出检测。可以通过QPainter的drawRect函数绘制矩形,将边界的坐标作为参数传递给该函数。可以使用QPen类设置矩形的颜色和线条粗细等属性。 最后,更新QT应用程序的窗口,将绘制好的检测显示在图像上。 综上所述,可以通过QT库加载图像并调用YOLOv5进行目标检测,再将检测结果画在图像上,从而实现在QT应用程序中对图像进行检测并画出检测的功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值