您的位置:首页 > 其它

用于巡检机器人的仪表检测和自动读数系统

2014-11-27 18:48 113 查看
最近结合项目,研究了一下指针式仪表的自动读数算法,写了一套基于巡检机器人的指针式仪表检测和读数系统。简单总结记录一下。

1. 系统框架

需求很简单,在场景中寻找标定好的仪表 → 定位 → 拉近焦距 → 读数。硬件方面不用我管,大概写了一个简单的框架图,开始动手。



2. 界面和操作

用MFC写了一个标定界面,实现功能包括:

1. 读取、保存图像和标定的模板;

2. 简单地对图像进行一些基本的处理(如裁剪、划定区域、绘制辅助线、标定关键点等);

3. 修改模板具体参数;

4. 测试算法结果。



基本都是MFC的基本的控件、opencv中图像读取、处理和保存操作,需要提一点,在绘制辅助线和选取区域时需要调用ondraw函数实时对界面进行刷新。有了界面之后算法测试心情都舒畅些~ 行了,开始写算法。

3. 算法

现在这方面做的不多,据我知道也就鲁能科技再搞吧(不太确定)。不知道高手怎么做的,我的思路大概如下:

首先是寻找仪表,很简单,一个cvMatchTemplate了事。

然后是读数,这里我使用了SIFT+Homography对仪表表盘进行配准,使检测对样本和模板间光照,旋转和尺度变化具有较强鲁棒性。配准后使用hough变换检测目标中的直线,从长度、累计值、角度、对比度等方面设计函数,计算每条直线作为仪表指针的置信概率。得到概率最大的指针后,根据其到最小、最大值的相对角度计算其读数值。









4. 总结

这套东西原理很简单,实现起来也不难,代码就不贴了,算法效果还可以哈。机器人领域是下一个爆发点,很可能在计算机视觉领域会提出很多千奇百怪的需求。除基本的图像处理和检测技术外,个人判断移动环境下的入侵检测和基于kinect的导航算法会有较大范围应用。各位同学共勉~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐