让 AI 在你的板子上尽情舞蹈~
本次实验的是识别摄像头中的人,就一个人,而不是多个。
从多类别检测模型改编而来,只保留 person 这个类别,根据各位看官的能力完全可以改成识别多类
项目开源地址:
https://github.com/EdgeAIWithRTT/Project4-Person_detection_RT-AK
本次项目的篇幅将会较长,请各位看官耐心看完
整体分为三部分:
模型
RT-AK 使用
板子上的应用层代码实现
硬件平台 ART-Pi, 50M FLOPS。
我的模型(删减后的模型)最终部署在板子上是推理时间是56ms,不包括数据处理时间。
pc 端推理一张图片:
1$ pip install -r requirements.txt
2$ python inference_yolo-s.py

以下是在 ART-PI 上的模型推理实现:
我的模型数据:map 21.58%
1 模型
1.1 参考项目
参考项目:
Yolo-Fastest https://github.com/dog-qiuqiu/Yolo-Fastest
keras-YOLOv3-model-set
https://github.com/david8862/keras-YOLOv3-model-set
原因:目前了解的全网最轻量级的目标检测网络,没有之一
现在不是了,出现了一个 ppyolo,百度产
当然,Yolo Fastest 最小的模型也有 0.23 Bflops,想要在 ART-Pi 上顺利的跑起来,肉眼可见的丝滑程度,我是在做梦。
这时候有两个办法:
换一块板子,换一块算力更大的板子。
将模型改的小一点,能够在 ART-PI 上丝滑的跑起来。
这里我选择的是后者。
我改动的很简单,去掉特征金字塔输出,只保留一个输出,保证对大物体检测友好即可。同时删减网络结构。原来是109层,我是20+层网络结构。
纠正一个思想误区,由于一些很神奇的存在,网络并不是越深,FLOPS
就会越大,比如 DSCNN
。
第二个参考项目的意义是在于:将模型转变为 tflite
可食用模型
1.2 模型文件
我改动的模型配置文件:
./model/yolo-s_with_lrelu.cfg
原模型配置文件:
./model/VOC
为了防止在后期模型转换的过程中遇到不支持的算子:
leakyrelu
,我这里提供了一份relu
的模型训练配置文件
预先训练好的模型:
./model/yolo-s.h5
507 k,量化的tflite
模型文件:./model/yolo-s.tflite
144 k