源码于2022.8下载。

目的:可以使用中文标签

与之前版本的yolov5的代码不同,绘制图像的函数从

plot_one_box

改成了

annotator.box_label

在新的函数中,已经可以实现从opencv转成PIL格式

我们做的工作

1、下载合适的字体

源码中默认的使用Arial.ttf字体,这种字体在显示中文的时候会出现格子异常

为了解决这个问题,首先要更换字体,在这里使用

simhei.ttf

下载链接:http://www.font5.com.cn/ziti_xiazai.php?id=151&part=1237887120&address=0

下载完成之后,将字体放到程序中,并进行font参数的更改

class Annotator:# YOLOv5 Annotator for train/val mosaics and jpgs and detect/hub inference annotationsdef __init__(self, im, line_width=None, font_size=None, font='C:/Users/24986/Desktop/anquanmao/yolov5-master/font/simhei.ttf', pil=True, example='abc'):assert im.data.contiguous, 'Image not contiguous. Apply np.ascontiguousarray(im) to Annotator() input images.'non_ascii = not is_ascii(example)  # non-latin labels, i.e. asian, arabic, cyrillicself.pil = pil or non_asciiif self.pil:  # use PILself.im = im if isinstance(im, Image.Image) else Image.fromarray(im)self.draw = ImageDraw.Draw(self.im)self.font = check_pil_font(font='C:/Users/24986/Desktop/anquanmao/yolov5-master/font/simhei.ttf' if non_ascii else font,size=font_size or max(round(sum(self.im.size) / 2 * 0.035), 12))else:  # use cv2self.im = imself.lw = line_width or max(round(sum(im.shape) / 2 * 0.003), 2)  # line width

font需要根据自己的路径具体填写,更改完路径之后,注意更改后面的pil,默认是False,即不使用PIL将图片转化成PIL格式。但是在这里需要进行转化。

然后需要对detect.py文件进行修改。

为了操作简单,这里重新定义一个list用来保存标签

namess = ['人','头','头盔']
                for *xyxy, conf, cls in reversed(det):if save_txt:  # Write to file,这个是以txt文件的结果进行保存,不过我们用不到xywh = (xyxy2xywh(torch.tensor(xyxy).view(1, 4)) / gn).view(-1).tolist()  # normalized xywhline = (cls, *xywh, conf) if save_conf else (cls, *xywh)  # label formatwith open(f'{txt_path}.txt', 'a') as f:f.write(('%g '* len(line)).rstrip() % line + '\n')#这个以。图片的形式进行保存,并且在这个地方可以根据自己是否想显示某一类特定的结果,然后去显示特定的标签,可以把不想要的标签剔除掉,还可以根据具体的坐标去判断是否显示if save_img or save_crop or view_img:  # Add bbox to imagec = int(cls)  # integer classnamess = ['人','头','头盔']label = None if hide_labels else (namess[c] if hide_conf else f'{namess[c]} {conf:.2f}')  #是否添加标签annotator.box_label(xyxy, label, color=colors(c, True))if save_crop:       #是否将目标框截取下来进行保存save_one_box(xyxy, imc, file=save_dir / 'crops' / names[c] / f'{p.stem}.jpg', BGR=True)

这里将names改成了namess。

修改完之后就可以正确显示中文了。(本方法只是用最近版本的yolov5的代码)

yolov5使用中文标签的问题相关推荐

  1. yolov5显示中文标签

    本文章的方法采用的是在检测时识别完成之后替换标签渲染打印到图片的方法. 首先下载支持中文的字体,我采用的是simhei字体,链接如下,是自己使用的字体打包上传,亲测可用. 字体链接 将字体下载后放在v ...

  2. 解决YOLOv5算法中的中文标签显示问题

    在前面的文章中已经详细介绍了在本机上安装YOLOv5的教程,安装YOLOv5可参考前面的文章 YOLOv5训练自己的数据集(超详细) 本人使用的是YOLOv5-5.0版本 一. 训练YOLOv5时ma ...

  3. yolov5检测框显示中文标签

    目录 前言 1.有中文标签的数据集 2.yolov5代码修改为支持中文标签 前言 很多人在训练yolov5目标检测的时候,标签只能显示英文的.怎么样才可以训练一个可以检测物体并且显示中文标签的模型呢. ...

  4. YOLOv5实战垃圾分类目标检测

    使用YOLOv5完成垃圾分类的目标检测 课程链接:https://edu.csdn.net/course/detail/35284 垃圾分类是一项利国利民的民生工程,需要全社会的共同参与.YOLOv5 ...

  5. 使用yolov5训练自己的模型修改的地方

    1.支持中文标签 1.文件train.py的修改: with open(opt.data) as f: 修改为:with open(opt.data, encoding='UTF-8') as f: ...

  6. 基于YOLOv5开源项目实现垃圾分类功能(2)

    目录 前言 一.基本概念 1.什么是权重文件? 2.GPU与CPU的区别 3.深度学习框架 4.PyTorch 二.下载和安装nvidia显卡驱动 三.训练自己的模型并分析 前言   在上篇文章中,我 ...

  7. 在Yolov5 Yolov4 Yolov3 TensorRT 实现Implementation

    在Yolov5 Yolov4 Yolov3 TensorRT实现Implementation news: yolov5 support 引论 该项目是nvidia官方yolo-tensorrt的封装实 ...

  8. GitHub上YOLOv5开源代码的训练数据定义

    GitHub上YOLOv5开源代码的训练数据定义 代码地址:https://github.com/ultralytics/YOLOv5 训练数据定义地址:https://github.com/ultr ...

  9. GitHub上开源的YOLOv5

    GitHub上开源的YOLOv5 代码地址:https://github.com/ultralytics/YOLOv5 该存储库代表Ultralytics对未来的对象检测方法的开源研究,并结合了我们在 ...

最新文章

  1. Vue的常用指令(v-html {{}}文本插值,v-bind绑定属性,v-if条件渲染,v-for列表渲染,v-on @ 事件绑定,v-model表单绑定)
  2. 蓝桥杯 java基础练习 回形取数
  3. 查找字符串中元素出现的次数
  4. 广义线性模型(GLM, Generalized Linear Model)
  5. 关于中职计算机专业,关于中职学校计算机专业改革探讨
  6. tomcat插入oracle中文乱码_Java连接数据库oracle中文乱码解决方案
  7. 英伟达驱动更新记录_英伟达GeForce显卡驱动411.63版更新内容
  8. 留言系统php课程设计,PHP课程设计网络留言板
  9. 【kafka】kafka windows Invalid UTF-8 middle byte 0xfe
  10. miui12会基于android10吗,全新MIUI12马上发布,基于Android11打造,小米10首批升级
  11. 工信部用户隐私信息收录整改排查
  12. Spark面试近300题初始版本
  13. 用Python自制随机点名程序,压迫感来了~
  14. 80 after generation to marry or not to marry is a question
  15. 高手攻关考试心得:RHCE实战详细经验
  16. 解决CSS样式重复定义带来的冲突问题
  17. 苹果六电池_苹果官网上架新品,18999元起~
  18. python爬虫——图片
  19. linux学习笔记整理(三)
  20. 智能着装:技术将大肆改造时尚业

热门文章

  1. 单位冲激偶信号δ‘(t)的基本性质
  2. 天文竞赛怎么用计算机,天文仪器和方法
  3. 开源的自动代码混淆插件
  4. 康耐视Visionpro脚本编写教程一
  5. SharePoint Oauth和服务器到服务器(S2S)身份验证概述
  6. [LeetCode] 两数之和
  7. vue监听页面滚动事件
  8. Docker筑基篇-下
  9. 软件测试工程师薪资调查
  10. C生万物 | 底层之美,莫过于C【1024,从0开始】