去年差不多这个时候吧,开始琢磨自己毕业设计的问题,其实导师的方向太随意,没有一个明确的目标,因此自己十分苦恼。后来无意中看到了一段无人机目标跟踪的视频,遂萌生了在Cortex-M嵌入式平台上同时实现机器视觉与控制的想法。说实话,自己在一定程度上是一个“性能强迫症”,STM32出的片子从L4到F7(那时候还没有H7)都有用过,且基本有新款就会入手试一试,因此觉得这么个想法有一定的可行性。网上资料一搜,居然给我发现了openmv这么一个神奇的小玩意: 这么个小模块用F4和F7做核心,跑mircopython,有个qt做的上位机,可以实现好多机器视觉的功能,包括色彩识别啦、人脸识别啦、各种滤波啦、各种其他特征识别啦等等等等。当时心里十分激动,一看价格我去单单一个小板子就要400多,更不提其他拓展板了,一个wifi模块的板子要200多,简直欺负我等学生党。无奈技术价值千金,所以还是忍痛买了一块,到手调试,跑了几个example,看着一行行简单的python实现出各种效果,虽说十分方便快捷,但心里总是有种说不出来的感觉。 H7出来后,我根据openmv学习和其他自己做过的乱七八糟的项目经验,设计了一款机器视觉开发板:
1、采用DVP接口的摄像头,配合H7的DCMI接口实现图像采集;
2、H7内部高达1MB的200M-400M时钟RAM实现各种图像处理(采用openmv的图像处理源码);
3、板载四旋翼飞行控制必需的传感器,配合机器视觉实现飞行控制;
4、板载SPI高速WIFI模块,实现图传。
5、一块LCD用于用户调试。
6、后续着重研究CMSIS-NN这款神经网络库,目标是做一个人流量分析系统。 本开发板以STM32H743为控制与运算核心,配合OV7725摄像头等传感器采集外界环境数据。对采集到的图像数据进行处理和分析,综合其他传感器的数据作为控制的输入参数。 本开发板着重于以下内容的研究和学习: 1、STM32H743的学习与使用,包括:基本外设(GPIO、串口、SPI、I2C、DMA等)、JPEG、DCMI。 2、RTX操作系统的学习与使用。(使用MDK工具链自带的最新版本) 3、GUI的学习与使用。(由于目前是SPI屏幕 估计就跑跑简单的gui了) 4、WIFI网络通讯与视频编码传输的原理。
详细进度: 2018年1月24日 完成内部ram的彻底分配,去掉umm_malloc,完成人脸检测,详细研究人脸检测理论。 2018年1月25日 完成文件打开关闭接口的整理,删掉无用的代码,完成多种格式文件的读取、处理、显示。 2018年1月26日 完成文档的初步整理与最新版openmv库的更新。 2018年1月27日 检查bget与xalloc情况,检查内存泄漏。 2018年1月28日 完成针对于STM32F767核心板的工程搭建,主要包括LTDC与GUI,以及在SRAM环境下系统内存分配与框架构建。忘记存盘导致一天的工作完蛋。 2018年1月29日 继续昨天的工作,争取上午达到昨晚的进度。 2018年1月30日 收拾整理东西,暂停本项目。剩下的内容包括,DMA2D和LTDC的彻底使用结合gui。 2018年5月23日 新规划开始,目前进度:已经完成H7的调试,等待硬件。神经网络部分没有开工;需要完成的工作:硬件制作;硬件调试(包括新的SPI屏幕和全局相机);JPEG硬编解码实现;WIFI部分图传编写;QT上位机;飞控程序移植;文档编写; 2018年5月23日-2018年5月30日 完成硬件采购与(电源芯片、WIFI模块等)制作、焊接,一套F7,一套H7,加上手里的一套H7,一共三套:WIFI调试用一套,JPEG调试与屏幕以及新相机一套,飞控移植一套。 2018年7月2日 更新项目进度。 目前完成情况: H7版本的框架基本搭建完毕,还差一个图传。 2018年7.9-7.15 继续撰写文档,完成几个demo的开发,并拍摄视频。 测试新摄像头。 修改PCB。 图传的准备。
7月12日总结 测试的差不多 图传完成情况是 传一半 尚不知道是什么原因 图传问题解决,以后是修修补补阶段。 2018年7.16-7.22 新板子焊接与工程建立。 工程要求,更标准的board——config文件。 环境ac6.10。 图传逻辑的优化。(多线程逻辑) mv库的进一步移植和整合。
到此为止这个硬件平台基本已经开发完毕了,从下个礼拜开始,我会结合深度学习的基本知识和OPENMV相关的例子,吧所有demo在这块开发板上移植出来,同时也慢慢更新自己的文档吧。 加油!
|