yolov5-fastapi-demo更换中文标签

news2024/12/23 16:54:52

本章是基于yolov5-fastapi-demo项目的更改

WelkinU/yolov5-fastapi-demo: FastAPI Wrapper of YOLOv5 (github.com)

首先,因为训练的时候设置的标签是英文,换成中文要重新训练,而且使用中文训练也很繁琐要改很多东西,因此可以直接训练的时候用英文标签,然后在识别绘图的时候做一个判断直接把标签替换了。如下

if bbox["class_name"] =="旧的英文名":

       bbox["class_name"] ="新的中文名"

在server.py的plot_one_box中label就是传进来的标签

然后换成中文标签之后,发现变成乱码????

原来是OpenCV不支持中文,那我们换成draw.text来绘制

先去下载字体包msyh

msyh.ttc字体下载-msyh.ttc下载win10压缩版-绿色资源网 (downcc.com)

直接丢到根目录下

 然后导包

from PIL import ImageFont, ImageDraw, Image

 修改plot_one_box 的if label: 之下的内容

    if label:
        tf = max(tl - 1, 1)  # font thickness
        t_size = cv2.getTextSize(label, 0, fontScale=tl / 3, thickness=tf)[0]
        font_size = t_size[1]
        font = ImageFont.truetype('msyh.ttc', font_size)
        t_size = font.getsize(label)
        c2 = c1[0] + t_size[0], c1[1] - t_size[1]
        cv2.rectangle(im, c1, c2, color, -1, cv2.LINE_AA)  # filled
        img_PIL = Image.fromarray(cv2.cvtColor(im, cv2.COLOR_BGR2RGB))
        draw = ImageDraw.Draw(img_PIL)
        draw.text((c1[0], c2[1] - 2), label, fill=(255, 255, 255), font=font)
        cv2.cvtColor(np.array(img_PIL), cv2.COLOR_RGB2BGR) 
        return cv2.cvtColor(np.array(img_PIL), cv2.COLOR_RGB2BGR)

此时标签已经成功替换成中文了 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/456190.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

防雷接地国家规范标准介绍与施工技术要点

防雷接地是一种防止雷电对建筑物、设备和人身安全造成危害的措施。在防雷接地系统中,将建筑物、设备、金属构件等导体与地面形成良好的导电连接,以便将雷电通过接地体排放到地下,从而保护建筑物、设备和人身安全不受雷击的影响。防雷接地系统…

mybatis粗心使用导致内存溢出

现象 服务响应变慢,线程日志也出现Java heap space内存溢出的错误,这个服务属于基础业务服务,出现问题要尽快的排查 分析 因为设置了gc日志和jmap启动相关参数 所以我们进行分析,这里模拟线上环境将堆大小参数调整到了128m&am…

Windows逆向安全(一)之基础知识(十七)

指针四 指针数组 什么是指针数组 首先回顾一下先前关于数组的知识: 所谓数组就是用于存储相同数据类型的集合 再结合先前关于指针的知识:指针的本质也是一种数据类型 于是当数组中存储的成员的数据类型为指针时,该数组就可以称为指针数…

2023年的深度学习入门指南(7) - SIMD和通用GPU编程

2023年的深度学习入门指南(7) - SIMD和通用GPU编程 深度学习从一开始就跟GPU有不解之缘,因为算力是深度学习不可或缺的一部分。 时至今日,虽然多任务编程早已经深入人心,但是很多同学还没有接触过CPU上的SIMD指令,更不用说GPGPU…

成为黑客猎手:从零开始学习漏洞挖掘的完整指南

一.了解基础知识 学习计算机网络、操作系统、编程语言等相关基础知识,这些知识对于后续的漏洞挖掘和利用非常重要。具体建议如下: 学习计算机网络基础知识,例如 OSI 模型、TCP/IP 协议、HTTP 协议等。推荐书籍:《计算机网络》。…

qt 动态库/静态库的创建和使用教程(step by step)

一般大型项目中, 会将实现特定功能的函数或类, 封装成链接库, 供应用程序代码调用. 下面我将一步步教你如何在qt 中创建动态库/静态库, 并使用它. 目录 创建多子目录项目创建动态链接库编辑链接库内容创建应用工程并连接动态链接库 创建多子目录项目 首先创建一个多子目录项目…

PHP+python+nodejs+ springboot+vue 社区互助平台

项目介绍 社区互助平台的功能分为管理员和用户两个部分,系统的主要功能包括首页,个人中心,用户管理,租房信息管理,失物招领管理,宠物代遛管理,停车位出租管理,其他管理,趣…

哈希表(底层结构剖析--下)

文章目录 开散列哈希桶的模拟实现哈希桶的基本框架增加仿函数将数据类型转换为整型哈希桶的插入函数哈希桶的删除函数哈希桶的查找函数哈希桶的析构函数建议哈希表的大小为素数 开散列与闭散列比较哈希桶的时间复杂度及其测试开散列哈希桶的模拟实现完整代码 开散列哈希桶的模拟…

Java -- ELK之从nacos获取logback.xml配置信息

背景: 之前本地搭建好ELK后,随便起一个项目,可正常日志上送,但是后面我把elk部署到测试环境中发现,本地项目的日志就无法正常上送了,之前我是把上送地址配置到nacos上的,logback.xml中读取nacos…

项目管理中的必不可少的强大工具有哪些?

在项目管理中,我们总是想寻求一套功能强大的工具,来满足我们多样化的需求。但往往事与愿违,这样强大的工具总是费用高,操作复杂,需安装多个插件。下面,我就给大家推荐一款项目管理软件 ~Zoho Projects&…

Transformer 位置编码代码解析

Transformer 位置编码代码解析 Transformer 的 Multi-Head-Attention 无法判断各个编码的位置信息。因此 Attention is all you need 中加入三角函数位置编码(sinusoidal position embedding),表达形式为: P E ( p o s , 2 i ) …

超强版干货投递!Milvus 的部署心得、运维秘籍都在这里了!

好奇 Milvus 读链路的演进?不知如何优化 Milvus?提到 Milvus 的业务场景只能靠想象?想获得其他人的部署经验?困惑于 Zilliz Cloud? 不藏了,摊牌了,对于上述的所有问题,你都可以在今天…

【Leetcode -206.反转链表 -876.链表的中间结点】

Leetcode Leetcode -206.反转链表Leetcode-876.链表的中间结点 Leetcode -206.反转链表 题目:给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。 示例 1: 输入:head [1, 2, 3, 4, 5] 输出:[5…

移动端性能优化:GPU加速、图片优化与缓存策略

在移动端开发中,性能优化是一个至关重要的环节。本文将为您介绍如何通过 GPU 加速、图片优化和缓存策略来提高移动端性能。让我们开始吧! 1. GPU 加速 在移动设备上,GPU 能够快速完成图形渲染任务。我们可以通过 CSS 属性来实现 GPU 加速&a…

单链表C语言实现 (不带头 带头两个版本)

链表就是许多节点在逻辑上串起来的数据存储方式 是通过结构体中的指针将后续的节点串联起来 typedef int SLTDataType;//数据类型 typedef struct SListNode//节点 {SLTDataType data;//存储的数据struct SListNode* next;//指向下一个节点地址的指针 }SLTNode;//结构体类型的…

机器学习材料性能预测与材料基因工程应用实战

一、背景: 传统的材料研发技术是通过实验合成表征对材料进行试错和验证,而过去的计算手段受限于算法效率,无法有效求解实际工业生产中面临的复杂问题。近几年随着大数据和人工智能介入,通过采用支持向量机、神经网络等机器学习算法训练数据集…

Vue核心 MVVM模型 数据代理

1.6.MVVM 模型 MVVM模型 M:模型 Model,data中的数据V:视图 View,模板代码VM:视图模型 ViewModel,Vue实例 观察发现 data中所有的属性,最后都出现在了vm身上vm身上所有的属性及Vue原型身上所有…

用友nc6 如果用户长时间没有任何操作,如何设置会话的失效时间?

1.web应用(新开的) NC中间件环境下的web profile和NC中间件没有关系,NC中间件只不过是个J2EE运行环境,是个Container,当你的web项目启动后,NC中间件创建web容器,其web应用的会话超时时间由你的web部署描述符&#xff…

电脑卡顿反应慢怎么办?这几招教给你!

电脑使用时间长了,电脑中的各种缓存文件也会就越来越多,这些文件的堆积会占用电脑内存从而导致电脑变得卡顿。还有在电脑中安装了许多软件,若这些软件都设置为开机自启动,这会占用大量的电脑内存,影响电脑的运行速度&a…

PMP项目管理备考资料都有哪些?

当今复杂多变的项目管理环境中,项目管理从业者在各种各样的项目环境中工作,一定会采用不同的项目方法。PMP认证试图覆盖业界所有有效的项目管理方法,PMP考试范围会覆盖预测型生命周期(即瀑布式开发模式)为代表的项目管…