首页 > 编程语言 >【Python&目标识别】Yolo v5-7.0版本中文标签显示方法(附字体链接)

【Python&目标识别】Yolo v5-7.0版本中文标签显示方法(附字体链接)

时间:2023-12-20 16:25:59浏览次数:39  
标签:中文 Python 标签 Yolo label 7.0 v5

        Yolo的程序之前已经定制化输出过了,但是最近业主突然想要中文的标签,所以赶紧去修改了一下源代码,从网上发现很多资料都改这改那,搞四五个文件结果还没成功。所以自己研究了一下,现在已经完美解决了。今天就和大家分享一下Yolo v5-7.0版本的目标识别如何添加中文的标签。

1 前提条件

        1)我这里是Yolo v5-7.0版本可能不适用其他版本,可以自己尝试一下。

        2)其次,我是训练的时候用的英文,只是在标记层面将英文用中文显示,这点需要注意一下!如果你是用中文训练的就可以不继续往下看了。

2 查看标记源码

        yolo程序中的标记源代码在utils文件夹中的plots.py文件中。我们打开这个py文件后找到class Annotator这个类函数。将其中的字体改为中文字体(绝对路径),再将pil=False改为Ture即可。我这里准备了几个字体文件大家可以自行下载,当然也可以去“C:\Windows\Fonts”中找。

3 detect代码修改

        因为我们是基于标记层面去用中文标记,所以在源代码中我们还需要将训练时的英文标签和中文对应起来。最简单的办法就是创建一个字典:

dict_label = {"Dog": "狗", "Cat": "猫"}

        然后我们在程序写入标签的地方将标签替换掉就可以了。

   1)这里绿色框就是原始的label,它返回的数据是“Dog 0.55”,即类别+可信度。

        2)所以我们用红线画的地方去替换这个英文,lable[:-5]就是读取Dog这个值,然后用这个值作为键去字典里找到它对应的中文名,即dict_label[label[:-5]]。

        3)而后面的label[-5:]就是后面的置信度0.55。到这里label就代替完成了。

        4)然后我们将下面一行的annotator.box_label函数中的label改成我们替换后的lable即可,我这里是用label1代替,因为这样不会影响后面的程序。

注:其他的就不要动了,我的annotator.box_label函数可能和你的不一样,如后面的color参数,这是因为我的程序已经定制化过了,都是按照我的需求改的,你们只需要改label即可。

标签:中文,Python,标签,Yolo,label,7.0,v5
From: https://www.cnblogs.com/RSran/p/17916718.html

相关文章

  • 利用Python进行数据分析_Pandas_Numpy高级应用
    Numpy高级应用1.ndarray对象内部机理importpandasaspdimportnumpyasnpfrompandasimportSeries,DataFrameimportwarningswarnings.filterwarnings("ignore")略2.高级数组操作arr=np.arange(8)arrarray([0,1,2,3,4,5,6,7])arr_new=arr.reshape......
  • Python中配置Excel导出模板
    定义Excel列对象classExcelColumn:"""定义Excel中的列参数:name(str):列的名称。width(int|None,可选):列的宽度。默认为None。required(bool,可选):指示列是否必需。默认为False。mapping_factory(Callable......
  • Python语言实现两台计算机用TCP协议跨局域网通信
    成果展示:(这张图是在我本地电脑上用pycharm运行两个程序测试,实际可以在两台电脑上分别运行。)设备要求和实现的功能:实现的功能:跨局域网通信(仅支持两台计算机)跨局域网收发小文件,支持缓存在服务器,再一键接收(仅支持两台计算机)使用方法:在服务器上运行server.py程序,在两台客户......
  • python中的 时间、日期写法。
    python打印当前日期时间 一、打印 带日期与时间点 方法一:使用datetime模块:importdatetimenow=datetime.datetime.now()print(now)效果如下: 方法二:使用time模块:importtimenow=time.strftime("%Y-%m-%d%H:%M:%S",time.localtime())print(now) ......
  • 提高Python开发效率的实用方法
    Python作为一种简洁而强大的编程语言,广泛应用于各种领域的软件开发。提高Python开发效率是开发者们关注的重要课题。本文将分享一些实用的方法,帮助您在Python开发中更高效地完成任务,提高代码质量和开发速度。1.使用虚拟环境:在项目开发中,使用虚拟环境是一种良好的实践。虚拟环境可以......
  • 使用Python进行Firefox证书上传和删除证书的步骤
    在Web开发和测试过程中,有时需要在Firefox浏览器中管理证书,包括上传证书和删除证书。本文将介绍如何使用Python和Selenium库进行这些操作,以便更方便地处理证书管理。1.安装Selenium库和WebDriver:首先,确保已安装Selenium库和相应浏览器的WebDriver。可以使用以下命令安装Selenium:```b......
  • Python爬虫框架推荐及其特点
    在网络爬虫开发中,选择适合的爬虫框架可以大大提高开发效率和爬取数据的质量。Python作为一种广泛应用于爬虫开发的编程语言,有许多优秀的爬虫框架可供选择。本文将介绍几个好用的Python爬虫框架,并列举它们的特点,帮助您选择适合自己的框架。1.Scrapy:Scrapy是一个强大的开源爬虫框架,被......
  • CentOS安装Python3
    前置准备检查是否已经安装Python3:命令行直接输入Python3下载Python3的安装包https://www.python.org/ftp/python/安装安装依赖yuminstallzlib-develbzip2-devellibffi-developenssl-develncurses-develsqlite-develreadline-develtk-develgccmake下载Pyth......
  • 利用Python进行数据分析_Pandas_数据规整
    数据规整1.时间序列以及截面对齐importpandasaspdimportnumpyasnpfrompandasimportSeries,DataFrameimportwarningswarnings.filterwarnings("ignore")#设置一个日期范围date_range=pd.date_range(start="2023-01-01",end="2023-01-10",freq=......
  • 分类模型评估(混淆矩阵, precision, recall, f1-score)的原理和Python实现
    混淆矩阵当我们已经获取到一个分类模型的预测值,可以通过不同指标来进行评估。往往衡量二分类模型是基于以下的混淆矩阵概念:TruePositive:真实值为正、预测值为正(真阳性)FalsePositive:真实值为负、预测值为正(假阳性)FalseNegative:真实值为正、预测值为负(假阴性)TrueNegative......