口袋中的人工智能 --- 嵌入式AI编程实践系列笔记2 颜色跟踪
0.背景
今天继续探索使用K210芯片的开发板做开发.
有关K210和开发板参见我的上一篇文章 口袋中的人工智能 --- 嵌入式AI编程实践系列笔记1
这2款开发板,都可以使用MaixPy编程,其实真的很容易上手. MaixPy其实就是整合了 micropython和openmv的开发语言.如果熟悉python和opencv的,可以很小的代价转移到嵌入式设备的开发. micropython是python针对迁入设备的一个子集,而openmv是对opencv做了简化后的一个嵌入式的库. 具体可以参照MAIXP的手册,应该是写的很详细了.
(https://maixpy.sipeed.com/zh/
本次简单介绍一下这几个对象:
摄像头 sensor
传感器模块,进行摄像头配置及图像抓取等,用于控制开发板摄像头完成摄像任务。
重置并初始化单目摄像头 sensor.reset([freq=24000000, set_regs=True, dual_buff=False])
MaixPy开发板配置的屏幕是320*240分辨率,推荐设置为QVGA格式机器视觉图像 image
移植于 openmv, 与 openmv 功能相同.屏幕 lcd
lcd 屏幕显示驱动
初始化 LCD 屏幕显示
1.代码
非常简单,使用过opencv的看起来就太简单啦
首先,初始化屏幕 lcd.init (maix dock一般都是320*240)
然后,初始化摄像头 sensor.reset
定义绿色的阙值 (0, 80, -70, -10, -0, 30)
最后使用 image的图块查找颜色阙值为绿色的 img.find_blobs,遍历查找结果
import sensor
import image
import lcd
import time
lcd.init(freq=15000000)
sensor.reset()
sensor.set_pixformat(sensor.RGB565)
sensor.set_framesize(sensor.QVGA)
sensor.run(1)
green_threshold = (0, 80, -70, -10, -0, 30)
while True:
img=sensor.snapshot()
blobs = img.find_blobs([green_threshold])
if blobs:
for b in blobs:
tmp=img.draw_rectangle(b[0:4])
tmp=img.draw_cross(b[5], b[6])
c=img.get_pixel(b[5], b[6])
lcd.display(img)
2.效果
在宾馆里,因陋就简,就拿绿色的方便面料包测试了.