缘起
- 嵌入式开发对开发人员要求比较高,哪怕是老手。其中包括内存管理和多线程等问题
- 比较大的规模,单一的大工程对团队协作不方便
- 固件定制多,单一大工程在版本上比较难维护
- 很多领域,对于AI的落地有需求
想法
用rust 做一个通用摄像头的应用层,解决或改善上述问题。
遇到的问题
- rust编译出的二进制文件比较大
- sdk基本是c/c++编写,需要考虑rust与c/c++交互
实际上,rust经过优化(lto等优化)后编译出来的文件比gcc工具链编译的要小些,试过的人可以看到这个惊喜.
实现
- AI:人脸检测、识别;物体检测
- 编码和osd配置保存读取
- osd(主码流显示,子码流因为显示AI的画框,代码已经注释掉)
- rtsp(基于rockchip库)
- 消息服务
- rv1106g 平台实现
可能的微末价值:
- rust 在嵌入式方面的应用参考
- rust 与c交互
- 最小化二进制大小
- ip camera 大致架子及媒体层抽象
- ai 在rockchip rknn上的应用展示
效果
详见: