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

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条回答
yuangaoping
1楼-- · 2019-12-14 16:07
刻度盘边上附加个编码器,搞定
lcw_swust
2楼-- · 2019-12-14 17:21
 精彩回答 2  元偷偷看……
hexenzhou
3楼-- · 2019-12-14 21:23
有意思的应用,不过1s内的精度识别应该可以做到吧,ROI的相对位置是不是固定的?
Malo
4楼-- · 2019-12-14 22:54
yuangaoping 发表于 2018-12-12 17:22
刻度盘边上附加个编码器,搞定

是的,那肯定可以 ,不过这边的需求是使用屏显的呢,然后加编码器的成本也太高了呢
Malo
5楼-- · 2019-12-15 03:55
lcw_swust 发表于 2018-12-12 20:40
没看懂第2条,究竟一秒处理多少帧?
只处理红框区域应该花不了多少时间吧。 ...

处理30帧是摄像头1秒只能传输30帧数据到MCU,这个是官方数据,靠DMA完成的。
处理红 {MOD}小框内的数据是花不了多少时间的,不过处理红 {MOD}小框内数据时是不进行DMA搬运传输,所以满打满算1秒钟给算传输25帧数据。
Malo
6楼-- · 2019-12-15 06:16
hexenzhou 发表于 2018-12-12 22:02
有意思的应用,不过1s内的精度识别应该可以做到吧,ROI的相对位置是不是固定的? ...

相对位置是固定的,正常工作时候,表头和摄像头都是固定死的。
1秒钟内的精度也不太敢保证的,我的处理方法本身有缺陷,最后我才想明白的。
缺陷在于,在表头转动很慢的情况下,就例如前面说的100s转动了一位数字,这种情况下,在刻度条到达检测区域边缘时,若有若有,我是判定还没检测到的。直到真正被我判定为检测到的时间差距能有好多秒,究其原因一方面是处理思路的缺陷,另一方面表头转动为机械式,有误差在所难免。

既然表头和软件处理本身有问题,但是基于使用光电情况下数据是好的,所以我主要想把软件处理方面的误差给弥补掉。

一周热门 更多>