转载:识别圆环的一种思路

image

前一段时间识别圆环使用的方法是寻找正前方的黑块,找到之后再测量它左右两边的白色宽度,如果宽度都大于设置的阈值的话就判定为圆环,但是斜着进圆环的话就很难识别出来如下图1、图2 所示。

image

图0 算法调试界面

image

图1

image

图2

这个方法确实能用,也能判断出是圆环但是很蛋疼的一个问题就是在遇到斜十字的时候特征跟圆环简直一毛一样这个问题我困扰了很久也想了很多额外的条件比如不光看横向的白色宽度,还得看纵向的白色宽度之类等等,但是这种靠宽度来判定的方法始终不靠谱,在车子运行的时候差一点点角度最终的宽度就会千差万别,所以始终在运行中会有一定几率存在误判或判断不出的现象。

image

图3 出十字的图像如果加入圆环部分就会识别成圆环

经过最近1 个星期多不停的思考我想通了之前导致误判的根本原因:之前压根本没有考虑车子的运行方向是哪里,因此是垂直图像向上寻找圆环,寻找到的当然也不一定是想要的东西。有了这个思路之后,第一目的就很清楚了,那就是:首先应该判断车子前进的趋势,然后再在这个趋势所包含的范围之内进行检索就能很轻松的把十字和圆环给区分开来,毕竟圆环前面是有那么一大坨黑色的,而十字没有。先上处理结果如图4、5、6 所示。

image

图4

image

图5

image

图6

实际上新方法实现起来也很简单,只要找4 个点就能确定图像的车辆的前进方向,分别如下图7 所示。

image

图7

看到这实际上就很明显了,只要存在左右边线,那么最近的边线的延长线就反映了车子的前进方向在哪,因此只要能找到这4 个点,主要是2 和4 点,就可以得到两条直线,在这两条的延长线之内就是车子的前进方向。至于如何寻找点2 和点4,论坛之前有一篇关于寻找拐点的帖子可以参考,实际上所有图像中也就十字和圆环会存在这么明显的拐点所以还是比较好识别的。

最后:以上的分析只是基于我以前采集的图像进行的仿真,我中午才把这部分的代码在matlab 上写好,所以我还没有在试过,是否好使也有待实车验证,本文只提供一个处理圆环的思路,各位大神还有什么更加好、更加简便、识别率还高的方案欢迎一起讨论!最后的最后:现在处理圆环都快炸了,不管怎么写都会误判识别率还低,希望这个方法能好使。

还有:写的时候比较匆忙,如果打错别字了请不要介意。

发布了350 篇原创文章 · 获赞 345 · 访问量 8万+

猜你喜欢

转载自blog.csdn.net/zhuoqingjoking97298/article/details/105125799