图像识别机械表头位置的方法不够完善,恳请坛友给点建议

2019-12-14 12:58发布

本帖最后由 Malo 于 2018-12-13 09:13 编辑

关于机械式表头的刻度位置识别
机械式表头一直在转动,边上有刻度,如图所示。借用正点原子的做法稍作改动,主控使用STM32F4,使用豪威的OV2640摄像头去读取影像信息,通过DMA的传输方式将摄像头图像信息搬运到屏幕上,最后识别显示屏上的颜 {MOD}判断刻度线是否在屏幕指定位置。
目前功能已经实现,每次出现刻度时候即发出一个脉冲信号给外部接受设备。比如刻度5的时候发出一个脉冲,6的时候发出一个。。以此类推。。
不过有个小麻烦,两次发出脉冲的时间间隔不一样,要求达到的精度是1%以内。例如转动到标准的两个刻度之间间隔为100s,故每间隔发出的脉冲信号必须落在99s到101s之间,现在做到的精度有时候会偏离范围。
分析原因:
1.由于表头转动速度太慢,所以可能会导致每次刻度出现的时间会有误差
2.摄像头数据采集只要30帧,加上处理应该只有25帧,处理过慢。
请教各位坛友,从软件处理方式上出发,有没有更好的识别思路呢?改良精度的问题。


检测位置为图片中小红框区域,转动到中间位置的时候被检测到。
之前的测试方法为使用光电头采集上面的反光片,出来的脉冲信号是在精度要求范围内的。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
25条回答
styleno1
1楼-- · 2019-12-16 07:17
了解过一个项目Pixy,颜 {MOD}识别的。

颜 {MOD}识别.gif (5.71 MB, 下载次数: 0)

下载附件

2018-12-13 09:52 上传

mcu_lover
2楼-- · 2019-12-16 10:19
原图滤波后当成背景图,原图-背景图,得到差分图,对差分图二值化,算BOLB像素个数大小,满足就发信号1。当BLOB不存在时候就发送信号0
hexenzhou
3楼-- · 2019-12-16 14:40
你的边缘判定条件不仅要有二值化后的个数,还可以加入时序判定条件,小于40阈值条件后还要连续小于多少时间,比如连续1秒内小于40才算无效。
Malo
4楼-- · 2019-12-16 18:30
styleno1 发表于 2018-12-13 09:52
了解过一个项目Pixy,颜 {MOD}识别的。

这个项目查看留言后去搜索了一下,是个很不错的设备,不过没有办法借鉴。我这个项目太苛刻了,总的来说只能要单片机来处理,能配上电脑这个早就完事了。我也想用FPGA处理会不会好点,后来想想处理方式不改变掉,换什么处理器都一样的。
Malo
5楼-- · 2019-12-16 20:25
 精彩回答 2  元偷偷看……
Malo
6楼-- · 2019-12-17 01:10
mcu_lover 发表于 2018-12-13 10:01
原图滤波后当成背景图,原图-背景图,得到差分图,对差分图二值化,算BOLB像素个数大小,满足就发信号1。当 ...

大神说的非常专业啊,这些名词我从网上搜索了才有粗略了解。
我这个设备说白了根本算不上图像处理或者识别,因为识别的一整套过程都没有,只是单纯的做了一个区域的颜 {MOD}像素点统计而已。
如果加上这些过程,处理器会花费很大时间和资源,而且我只用了SMT32F4处理,可能都处理不了。这样一来,原本的传输30帧,就会大幅度下降,都没有空余时间更新摄像头数据了。
不过这个提出的方法,我会多多找资料,尽量做到让整个处理过程得到改善。
非常感谢

一周热门 更多>