基于深度学习的仪表读数读取

本文介绍了一种基于深度学习的仪表盘读数识别方法,使用U2Net进行语义分割,将环形表盘展开成矩形并转换为一维数组。通过处理刻度和指针信息,定位指针相对位置,从而得出表盘的百分比数值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

基于深度学习的仪表盘识别

代码:https://github.com/HibikiJie/ReadMeter

权重文件:链接: https://pan.baidu.com/s/1wTPo1wJXrNyEFSu8RrD8Xw 密码: t0p4
将其放置于weight文件夹下,运行test.py,即可测试data\images\val下的图像文件

讲解

  1. 使用语义分割模型,在不同通道上分割出表盘和指针
  2. 环形的表盘展开为矩形图像
  3. 二维图像转换为一维数组
  4. 对刻度数组用均值滤波
  5. 定位指针相对刻度的位置
  6. 输出相对位置

语义分割模型采用的是U2Net

1、分割

在这里插入图片描述

使用U2NET分割得到指针和表盘的图像

2、表盘展开

通过以图像中心为原点,以一定宽度进行扫描,将仪表盘的刻度和指针展开为矩形的图像。

在这里插入图片描述

3、二维图像转换为一维数组

两张图像

### YOLOv系列模型用于指针仪表盘检测 #### 使用YOLOv5s进行指针仪表盘检测 YOLOv5s由于其较小的网络结构而具备快速处理能力,尽管平均精度(AP)相对较低,但对于大型目标如指针仪表盘而言已经足够精确。通过使用极市官方提供的YOLOv5s训练工具包来进行训练,操作简便,并且能够实现高达99.7%的识别准确率[^1]。 ```python import torch from models.experimental import attempt_load # 加载预训练权重文件 weights_path = 'path/to/yolov5s.pt' model = attempt_load(weights_path, map_location=torch.device('cpu')) ``` #### 基于YOLOv8x-pose的关键点检测方法 对于更复杂的场景,比如不仅限于整体仪表板而是具体到指针位置以及刻度线上的关键点定位,则可以考虑利用YOLOv8x-pose版本来完成这项任务。该模型专门针对姿态估计进行了优化,在捕捉物体内部特征方面表现优异。 ```python import cv2 import numpy as np def draw_keypoints(image, keypoints): for kp in keypoints: x, y = int(kp[0]), int(kp[1]) image = cv2.circle(image, (x,y), radius=5, color=(0, 255, 0), thickness=-1) return image ``` #### 数据集的重要性及其扩展建议 值得注意的是,如果发现当前使用的语义分割数据集中样本数量不足影响到了最终的效果,那么适当增加更多样化的图像资源将是改善性能的有效途径之一。这可以通过收集额外的真实世界图片并标注它们的方式实现[^3]。
评论 72
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值