基于机器视觉的积木分类器 写于: 星期五 21 二月 @ 15:19:17 |
如果到现在你还认为乐高积木仅仅是玩具的话,那么你应该看看这个模型,机器视觉(Machine Vision)可以说是很复杂的系统,但在这里,我们通过ROBOLAB软件轻松实现了一个基于机器视觉的积木分类器。 基于机器视觉的积木分类器 主要部件:RCX: 1 马达:2 光感:1 乐高摄像头:1 编程语言:ROBOLAB 2.5以上
特殊部件:4*4和4*6的黄色(或白色)积木块,本系统的目的就是将这两种大小不一样的积木区分开。 日期: 2002/3/13--2002/3/17 版本1.0 完成 2003/2/21 做了一些改动,增加了一个光感(安装在积木掉落区,用于检测积木是否掉落到分类传送带上面)。
未来的改进: 1.硬件部分 a. 添加加工部分,例如冲压等,使这个系统不但可以分类,还可以根据不同的积木进行不同的加工。 b.包装机,将分类好的积木打包。 c. 将上面多种功能合并在一起,组成一个完整的自动加工中心。 2.软件部分 更智能化,能分拣不同形状的积木,能避免各种意外情况,例如能避免两块或多块积木同时通过摄像头。
为什么需要视觉系统? 据统计,人类获得的信息有90%以上的来自于视觉(眼睛),可见视觉对人类的重要性。做一个很简单的试验,你先站立起来,然后闭上你的眼睛,现在,将你的一只脚提起,看一看你能支持多久,一般人很快就支持不住了,这是因为没有眼睛给你定位,如此简单的一个动作,同样需要视觉,可以想象它的重要性。 在很多领域里,机器视觉同样重要,在工业领域,机器视觉可以用于产品质量检测、分类,机器人定位,包装……,在医疗领域里,机器视觉可以用于病理分析、细胞统计……,在交通运输领域里,机器视觉可以用于集装箱的管理、交通事故判别、无需停车的收费站…。下面是一个工业用的机器视觉系统的系统图: 在汽车焊接工厂里,大量使用机器人来焊接,效率大大提高,但是,如何检测机器人焊接的质量呢?我们同样可以使用机器视觉系统。我曾经参观过一个啤酒瓶瓶盖的生产现场,每一条生产线在1秒钟就能生产40个瓶盖,在这些瓶盖中,有很小一部分质量有问题,例如密封圈不全、瓶盖印字不清楚等等。想象一下,如果使用人来检验,需要多少个人?100个?10000个?幸运的是,使用机器视觉,只要一套就可以了。也许你不相信,一瓶啤酒生产出来,只要通过十套机器视觉系统――瓶子质量检测、瓶盖检测、液面检测…… 在日常生活中,我们最常见的机器视觉系统就是超市中的条形码阅读机(几乎每一个超市的收钱工作都由它完成!!!)。
模型的详细资料 整个系统与工业上的机器视觉系统类似,由生产流水线、摄像头、RCX、红外发射器和计算机组成。其系统图如下:
由于RCX本身并没有图像采集分析能力,所以由摄像头获得的图像首先进入计算机里(通过USB接口),在计算机里,我们通过ROBOLAB的影像中心(Vision Center)的运算(在这个系统中,主要计算积木的大小),然后,影像中心将计算结果通过红外发射器发送到RCX中,最后RCX根据这个结果控制流水线的方向,将两种大小的积木分在不同的地方。整个系统的实物图如下:
整个系统的软件分两部分,一部分是Vision Center中的图像分析,另一部分是RCX的程序。 首先介绍图像分析,对于使用C语言,图像分析算法的编写一般非常复杂,对大部分人来说甚至是不可能完成的任务,但是,在ROBOLAB中,很多算法(例如二值化、数学形态、块[Blob]分析)已经做好,只要你设定一些参数就可以了,非常方便,当然图像处理的基本知识还是需要的。 在ROBOLAB中,摄像头可以看作一个可以自己定义功能的传感器,不过这个传感器不可以安装在RCX上,也不能直接使用RCX来读取数值。而是先通过计算机的运算(具体的算法可以自己来定义),然后通过红外发射器发射到RCX。 将积木放在摄像头可是范围内的传送带上面,我们可以看到一张彩色的积木图像。为了区分大小不同的积木,我们首先定义一个能计算积木大小的传感器,首先对图像二值化,根据光线条件选择不同的阀值,使黄色的积木从黑色的传送带分离出来,然后输出积木占整个画面的比例,如下图: 虽然处理后的结果并不完美,画面上面还有一些干扰信号,这是因为我们没有使用专业的灯光系统(在工业上使用机器视觉系统中,灯光系统非常重要,甚至决定整个系统是否成功。),另外,我们还没有使用去干扰的图像处理算法(例如数学形态等)。不过,对于我们的系统,这种效果已经足够了。在我这个模型中,大积木占了43%左右,小积木占了33%左右,我们选取38%作为中间值,用这个值来区分大小积木就可以了。 将这个传感器保存为BrickSorter,回到Vision Center,我们将BrickSorter作为保存在红色容器中,并不断将这个值发送到RCX中,其设定如下图:
在程序中,我们认定,如果传感器的值大于10,认为有积木到达摄像头拍摄范围内,如果在一定时间内(视传送带的速度而定)如果不超过38(就是上面所得到的中间值),就认为通过的是小积木,让马达C逆时针转动;相反,如果大于38,就认为是大积木,让马达C顺时针转动。 系统运行结果如下:
任何意见,请告诉我 由西觅亚公司提供 本站另一篇关于计算视觉的文章: |
共1条
1/1 1 跳转至页
基于机器视觉的积木分类器
只看楼主 1楼
关键词: 基于 机器 视觉 积木 分类器 可以 系统 我们
共1条
1/1 1 跳转至页
回复
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
与电子爱好者谈读图二被打赏50分 | |
【FRDM-MCXN947评测】Core1适配运行FreeRtos被打赏50分 | |
【FRDM-MCXN947评测】双核调试被打赏50分 | |
【CPKCORRA8D1B评测】---移植CoreMark被打赏50分 | |
【CPKCORRA8D1B评测】---打开硬件定时器被打赏50分 | |
【FRDM-MCXA156评测】4、CAN loopback模式测试被打赏50分 | |
【CPKcorRA8D1评测】--搭建初始环境被打赏50分 | |
【FRDM-MCXA156评测】3、使用FlexIO模拟UART被打赏50分 | |
【FRDM-MCXA156评测】2、rt-thread MCXA156 BSP制作被打赏50分 | |
【FRDM-MCXN947评测】核间通信MUTEX被打赏50分 |