我们做项目时常会用到用AIstart去识别一个物体并跟随它的移动而移动。
下面我们就以识别绿色图标为例,学习如果编写识别跟踪的程序。(本课硬件测试主控:
)
1,识别颜色图标
关于 LAB颜色的说明: Lab颜色模型是有国际照明委员会(CIE)于1976年公布的一种颜色模型,Lab颜色模型弥补了RGB和CMYK两种色彩模式的不足。Lab颜色模型由三个要素组成。一个要素是亮度(L),a 和是两个颜色通道。a包括的颜色是从深绿色(低亮度值)到灰色(中亮度值)再到亮粉红色(高亮度值);b是从亮蓝色(底亮度值)到灰色(中亮度值)再到黄色《高亮度值)。因此,这种颜色混合后将产生具有明亮效果的色彩。
L(Lightness):表示颜色的亮度,取值范围从0到100,其中0表示纯黑色,100表示纯白色。
a(Green-Red Axis):表示颜色的红绿色度,取值范围从-128到+127,其中-128表示绿色,+127表示红色。
b(Blue-Yellow Axis):表示颜色的黄蓝色度,取值范围从-128到+127,其中-128表示蓝色,+127表示黄色。
Lab色彩空间是一种与人眼感知颜色相关的色彩空间,可以用来描述任何一种颜色,包括明亮的颜色、暗淡的颜色、浅色和深色等等。它具有无视觉量纲的特点,也就是说,它的三个参数相对于人眼感知颜色的差异更加均匀和稳定,因此可以更好地描述颜色之间的差异和相似度。
在色差测量中,Lab色彩空间可以用来比较标准颜色和实际颜色之间的差异,以评估产品的色彩质量和一致性。同时,Lab色彩空间也被广泛应用于颜色管理、图像处理、设计等领域,以保证颜色的准确度和稳定性。
注:传入的颜色阈值参数按照 LAB 格式 (l_lo,l_hi,a_lo,a_hi,b_lo,b_hi)
l_lo,l_hi :L颜色值的设置,最高l_hi及最低l_lo的偏差范围,其它同理为 A-B 颜色模型值的上下偏差范围。
如何得到 LAB 颜色模型值:
1、具体的 原理LAB 对照表可以参考课程资源中下载文件的:颜色标准LAB值对照表.pdf
表格上的为原理值,我们在实际应用时感觉不是很准,还是用设备直接测试识别到对应的颜色实际反应值再放入程序 中更准确,如下:
2、上传我们软件内的第35号例程:35 颜色识别_识别采集图片中间框区域的颜色值, 上传程序后把实物放到指定的识别框内可以看到显示或打印出来的 LAB 实际值(注:实际值受当前光线亮度的变化会有所变化,所以测试环境跟实际运行环境要尽量的接近或在编程时放大偏差的设置)。
注意:颜色设置那我们要尽量的让颜色接近实物体,这样可以让识别的精度更高。
上传如下程序,并测试识别上面图片中的绿标,会看到屏上有一个框会框着识别到的颜色,并在我们移动摄像头时,这个框也会一直在绿标上,这样就是跟踪功能了。
2,调用坐标结果控制其它硬件
通过上面的测试,我们知道了AIstart可以识别并跟踪我们设定的颜色目标,那么我们就知道他是可以把坐标数据输出的,不然那个矩形框的移动是怎么做到的呢。
首先我们先测试一下这个目标点的中心XY坐标,标识矩形模型的坐标是基于显示器的大小为基准的(320*240),X的范围是0320,Y的范围是0240,注:如果从对应的轴边目标物超出,那么对应的轴边就保持超出前的数值。
同理我们可以映射成舵机的角度,然后再控制我们的摄像头或其它结构动作,就可以完成一个识别跟踪的设备了。或将当前的坐标值通过软串口1输出给其它设备用。
例:将X轴坐标映射成180度舵机的转动方向,这样舵机就会随着识别目标的左右移动而移动。
程序如图:
先移除舵机相关块进行调试,打印数据,显示正确后再加入舵机部分程序。
注:当放入舵机执行块和打印块同时存在时屏的显示亮度明显变暗(有可能是K210的系统资源不足),不影响识别,执行时可以把串口打印块去除,或把舵机角度数值传给另外的主板去执行舵机。
3, 课程资源
联系我们
扫码
或者点这里加群了解更多!
Created by qdprobot