圆形指针仪读数识别(一)——Unet指针分割

整理个20年左右做的项目:圆形指针仪表读数识别。主要分为四个模块:圆形仪表检测——指针分割——刻度线检测——读数计算。针对这四个模块准备做一个系列,先从最简单的指针分割开始,指针分割数据放在最后。先看下指针分割最终效果(绿色为mask)。

简单记录下开发过程:

一、先找开源的,baidu的paddle模块使用了deeplabv3模型做训练。试了下在自带的测试集上效果还凑合,不过数据是真的少,就那两个表来回拍了几百张,故在项目工厂实拍的少部分数据集上测试,鲁棒性太差。表盘稍微脏一些,或者指针样式不一样,均导致效果不理想。

这里简单说一下,如果考虑部署场景是单一固定场景,比如针对某个工厂是单个项目的形式,可以考虑直接把该工厂的所有数据塞进训练过拟合就可以了。不过本文的项目还要求模型的通用性,只能去找找其他数据,找了一圈,除了baidu还真没有其他数据集了,看来这个数据真心太小众了。

二、爬数据

由于指针分割数据稀缺,只能考虑爬数据了。事实如下:在谷歌、bing搜索图片,关键词为圆形仪表盘、round meter等。爬下来后,先使用小部分数据,用paddle预训练模型推理出批量结果,作为伪标签,再对这批伪标签进行筛选,修改标注等,作为下一次deeplabv3的训练数据。如此训练、伪标签、修正迭代几次,花了几天时间,总算能得到鲁棒性较强的效果,同时也搞了2000+张的不同仪表盘的指针数据。根据这些年的实践经验,搞AI相关的开发,数据集不成熟的,大半时间都在搞数据。

三、deeplabv3模型测试

训练完成后,IOU指标看着也还行,但质检问题数据时,发现小部分数据的推理效果较为奇怪,挺清晰的指针推理出来跟狗啃的一样,调了一些参数也没发现哪的问题,考虑开发效率,只能尝试下Unet了。

不得不吐槽下,使用paddle配环境的时候经常报错,readme还有错别字你敢信,给人感觉更像小作坊出品而非大厂。

四、Unet模型测试

Unet还是比较成熟了,github链接搜一下,选了个star最多的,花了点工夫改成自己的数据集,效果和鲁棒性都杠杠的,总体感受比paddle好用一些。开发过程整理就不赘述了。

demo数据:https://download.csdn.net/download/beicheng3849/87449211

data1(收费):1000+张数据

data2(收费):1000+张数据

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值