yoloV5 6.0 中文标签显示

最近在做有关yolo的小项目,需要显示中文标签,

这里以yolov5 6.0 版本为例,需要修改的地方包括3个文件:

1.utils文件夹下的general.py

由于中文显示对应的编码格式为‘utf-8’,因此将以下代码:

 with open(data, errors='ignore') as f:

 修改为:

 with open(data, errors='ignore',encoding='utf-8') as f:

注:可使用crtl+F进行关键字查找,较为方便。

2.utils文件夹下的metrics.py

将以下代码:

sn.set(font_scale=1.0 if nc < 50 else 0.8)

 修改为:

sn.set(font='SimHei',font_scale=1.0 if nc < 50 else 0.8)

3.utils文件夹下的plots.py

在此文件开头处添加以下代码:

plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

并准备一种中文字体,我这里使用的是黑体(SimHei.ttf),将其放在你matplotlib库的安装路径下mpl-data\fonts下,我的路径为D:\anaconda\Lib\site-packages\matplotlib\mpl-data\fonts\ttf

         

然后将Annotator类部分代码进行修改,

 将以下代码:

def __init__(self, im, line_width=None, font_size=None, font='Arial.ttf', pil=False, example='abc'):

 修改为:(其中font后是中文字体存放的路径,每个人对应的路径不同)

    def __init__(self, im, line_width=None, font_size=None,
                 font='D:/anaconda/Lib/site-packages/matplotlib/mpl-data/fonts/ttf/SimHei.ttf',
                 pil=False, example='abc'):

  将以下代码:

self.font = check_pil_font(font='Arial.Unicode.ttf' if non_ascii else font,
                          size=font_size or max(round(sum(self.im.size) / 2 * 0.035), 12))

 修改为:(其中font后是中文字体存放的路径,每个人对应的路径不同)

self.font = check_pil_font(font='D:/anaconda/Lib/site-packages/matplotlib/mpl-data/fonts/ttf/SimHei.ttf' if non_ascii else font,size=font_size or max(round(sum(self.im.size) / 2 * 0.035), 12))

到此为止,可实现中文标签的显示。

本文参考YOLOv5 完美实现中文标签显示_不佛的博客-CSDN博客_yolov5中文标签

 

  • 0
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 9
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值