Yolov8预测框标签中文显示、修改标签字体大小

Yolov8预测框标签中文显示。查阅了很多资料,但很多网上的回答都解决不了问题,按照其中的方法,预测之后标签显示还是乱码。在不断的尝试之后,终于成功了,步骤如下:

ultralytics版本:8.3.9

首先更改源码的位置一定要正确,从github上下载的ultralytics 就去ultralytics-main文件夹里改,用pip install ultralytics 安装的,去以下路径更改:

E:\anconda安装的位置\envs\自己的环境名\Lib\site-packages\ultralytics\

PS: 若同时有github和pip install安装的ultralytics,如果你的py文件在github上下载的ultralytics项目文件夹中(我用py文件进行操作,用控制台的命令行写太不习惯了),优先使用的是github安装的项目,如果不在github安装的项目文件夹中,则使用的是pip install安装的ultralytics。

1、ultralytics\utils\plotting.py和ultralytics\utils\metrics``.py文件添加如下中文显示代码:
plt.rcParams['font.sans-serif'] = ['SimHei'] # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False # 用来正常显示负号


以上修改主要是为了训练结果(如混淆矩阵、精度曲线等)的图片中文显示。

2、model.prdict()预测结果的中文标签显示

其实Yolov8是支持中文显示的,如果yaml中标签是中文的,用训练后得到的pt文件进行预测,会自动识别到中文并下载支持中文的字体Arial.Unicode.ttf(在有网络的情况下),在plotting.py文件181行,如下所示,但该字体是繁体的,如果觉得不好看,可以将181行注释掉,另起一行(182行)将字体换成自己的字体,将字体文件放在ultralytics-main文件夹里,就可以用相对路径。

修改标签字体大小也是研究了很久,按网上的教程修改fs或者self.lw参数,预测之后,字体大小根本没有变化。后来才发现和修改字体是同一个地方。
在183行size那里,我已经做了注释,就修改3那个数字,数字改小,字体就变大;数字改大,字体就变小。

经过以上步骤,用model.predict()进行预测,会发现预测框的标签成功支持中文显示,并且可以修改标签字体大小,以适应不同的项目需求。

posted @ 2025-01-07 19:53  EDG_Clearlove7777777  阅读(1157)  评论(0)    收藏  举报