问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

YOLOv5-7.0实现中文标签训练及检测框显示

创作时间:
作者:
@小白创作中心

YOLOv5-7.0实现中文标签训练及检测框显示

引用
CSDN
1.
https://blog.csdn.net/zjdwindows/article/details/138199992

YOLOv5在进行目标检测时,如何用中文标签进行训练以及如何在检测框上显示中文标签,下面一步一步分享给大家实现步骤:

  1. 该方法是以中文标签进行训练,然后并以中文标签进行检测。确保yaml文件的标签是中文

  2. 在utils文件夹中的plots.py文件,在文件前面添加如下代码:

plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
  1. 继续在utils文件夹中的plots.py文件中找到class Annotator这个类函数,将其中的字体改为中文字体(绝对路径),再将pil=False改为True。建议将字体文件直接放在主目录下

  2. 在utils/metrics.py文件前面添加如下代码

plt.rcParams['font.sans-serif'] = ['simhei']
plt.rcParams['axes.unicode_minus'] = False
  1. 在utils/general.py文件修改def yaml_load
with open(file, errors='ignore', encoding='gbk',) as f:
  1. 修改train.py文件,具体如图:

  2. 上述步骤修改完成以后,就可以进行运行train.py文件进行训练了。此时完成了用中文标签进行训练的过程

  3. 当权重文件训练出来以后,用detect.py文件进行检测时会发现程序报如下错误
    ‘FreeTypeFont‘ object has no attribute ‘getsize‘
    此时一定不要听网上的解决办法,去降低pillow的版本,这样会导致train.py文件无法执行。
    一定要按照如下方法去替代getsize。
    打开utils文件夹中的plots.py文件,更改前程序如图所示
    更改后程序如图所示:

  4. 最后修改 detect.py文件,将def run 函数的权重文件和def parse_opt函数的权重文件,全部换成自己的训练出来的权重文件。

  5. 以上就完成了中文标签检测程序的设置,最后的检测效果如下所示:

本文原文来自CSDN

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号