【人生苦短,我用Micropython——怼上openmv】
对于micropython,论坛D大的贡献很大,我也是跟着他的脚印一步学习了解了这个脚本;还有图像处理这方面,树莓派上搞了simplecv这个软件平台,加之对算法以及Linux平台的不了解(其实还是没什么时间哈哈哈)。然后后来,听到了个openmv这个图像处理的硬件平台,并且对其有所吸引,算法的优化程度,以及C底层封装等特点,让我觉得可以值得去学习。但是官网的定价实在太高,于是自己在后续的一两个月搞了块板子来玩玩,不玩不知道,一玩无法自拔。
Openmv是国外的一种基于micropython驱动的开源机器视觉模块,在机器视觉算法上,已经做了很大的优化,可以很好的在MCU上快速运行,比如颜色跟踪,脸部检测等;并且引出了相关的外设,比如SPI,IIC等,方便客户进行扩展。官方还有一个与之匹配的IDE(源码开源),具有编辑器,调试终端,具有RGB直方图显示的帧缓冲区查看器。
附上两个openmv的介绍视频以及应用。
openmv视频
图像识别追踪
基于以上特点,对于入门视觉机器开发者来说,真的是很好的一个模块。
既然说了是搞块板子来玩玩了,就得说下我这两个月怼这块板子的过程了,当然肯定不是一copy就好了,这样多无趣。官方的板子是四层板,当然对于前期DIY来说,能省就省,我就怼成两层板了;还有物料方面,除了CMOS和MCU怼得一样,其他物料有些在国内很难找,所以还是怼为国内通用点的器件啦,当然封装还是copy得一样,免得山寨得太山寨了。
然后硬件前期构思,中期得布局布线了,布局这点还是跟官方的差不多一致,就是布线有点坑了,两层板的不好在于,电源线并不能像四层板那样可以留一层可以自由自在得撒野。还好,怼了几天终于拿去JLC打了屎黄色的板子。第一版是黄色,第二版是蓝色,最后定板的是黑色,
黄色板子PCB和PCBA如图所怼:
软件上,官方也提供了很多基于micropython的例程。如图所示。比如基本的外设驱动(IO口,SPI,IIC等),还有基本的绘画操作、图像基本过滤算法(帧间差分;二值化;边缘阈值检测;腐蚀和膨胀;平均、中值、中点滤波;锐化等)、拍照录像功能、人脸检测、还有一些功能检测(黑白线检测等)、还有一些官方模块的例子(LCD、WIFI、BLE等)、二维码等。这对于在硬件平台上学习入门视觉开发已经相当足够了。
附上一些效果图
帧间差分检测物体移动
边缘阈值检测
膨胀
LCD显示
1,Openmv3用的F7芯片,比版本2的F4芯片强大太多,可玩性和拓展性也非常多!
2,Openmv3一直在不断更新~所以会不断地有更多好玩的东西出来
3,多次改版之后我们解决了图像光斑等问题,LCD配套,SD卡位置的调整也让用户使用起来更加方便!
4,后续过程中我们也不断更新了自己开发资料,一起玩起来、
4,图像识别是openmv的重点,玩意很大。
因为这个平台,我对视觉开发更加感兴趣,也想着分享给大家,让大家可以加入到这个视觉开发上来,一起学习。