前言
这是帮学妹做的一个毕业设计,觉得有趣就接了。功能较为简单,更像是一个带了人脸识别功能的行车记录仪。从18年12月开始做,大部分代码在3月写出来,到现在大概花了20个工作日的样子。期间从零开始学了C++和QT,opencv也经历了从C版本到C++版本,收获不小。这算是我第一个独立的“产品”。
目前只完成了ubuntu14.04系统下的功能,还没有移植树莓派做屏幕适配等,也没有进行自己的人脸特征运算。用的还是opencv的样例代码。
详细功能有:人脸检测,循环录像,日志生成以及qt界面操作。
本文的目的是整理一下:学习经历,开发思路,经验总结,难点和坑,为了代码重构做准备。
第一章 环境搭建
最简单的是helloworld,最难的也是helloworld。开发环境真的是最头疼的。
第一节 ARM板选择
说来惭愧,嵌入式专业的没用过ARM开发板,之前有过一个韦东山的,但到手就退掉了。
选择的标准就是有触屏,ARM9。最开始出于价格因素,买了周立功的easyArm m283a。可以说,忙活了一个月发现板子根本没法用,或者说压根不适合初学者。缺点如下:
- 系统过老,还是linux2.4的版本,应该是周立功公司自己的发行版。
- 文件系统默认只读,而且有很多命令,文件夹位置,结构和常见的debian系不一样。
- 没有社区,找不到参考内容和参考项目。
- 烧写系统繁琐,成功率低,需要人为更换跳冒。
- 没有hdmi接口,触屏只能用周立功自己公司的。
- 官网的手册是14年的,现在系统更新后很多命令和文件路径找不到。
所以这就很蛋疼了,不得不说周立功的开发手册写的还可以。一步步教你,但最大的问题就是,不通用。这个开发板给我的感觉更像是一片周立功自己生产的单片机。还好没让学妹直接也买了,最后这个板子亏了一百块钱卖掉了。其实都是ARM板子,为什么不能用呢,其实可以从上面的缺点总结出来。
- 有些东西是对应系统版本的,装opencv和qt会遇到很大的阻碍。
- 文件系统定制化,意味着一些通用性的解决方案无法实行。
- 没社区ÿ