
让 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.h5507 k,量化的tflite模型文件:./model/yolo-s.tflite144 k
1.3 自己训练模型
请参考:dog-qiuqiu/Yolo-Fastest 项目
我自己也写过一份 快速上手 yolo-fastest 教程:
https://blog.youkuaiyun.com/weixin_37598106/article/details/112544854?spm=1001.2014.3001.5501
但是由于 up 主更新的比较快,可能有一些版本落后,仅供参考。
需要配置
darknet训练环境,然后根据需求修改下cfg文件即可准备数据集:
VOC 2007 + VOC 20121wget https://pjreddie.com/media/files/VOCtrainval_11-May-2012.tar 2wget https://pjreddie.com/media/files/VOCtrainval_06-Nov-2007.tar 3wget https://pjreddie.com/media/files/VOCtest_06-Nov-2007.tar 4tar xf VOCtrainval_11-May-2012.tar 5tar xf VOCtrainval_06-Nov-2007.tar 6tar xf VOCtest_06-Nov-2007.tar 7 8wget https://pjreddie.com/media/files/voc_label.py 9# 修改文件,将里面的类别只保留 person 类别 10python voc_label.py 11 12cat 2007_train.txt 2007_val.txt 2012_*.txt > train.txt

本文介绍如何使用RT-AK在ART-Pi板子上实现单个人像识别,通过Yolo-Fastest模型进行修改和训练,转换为TFLite模型,并在板子上运行推理代码。内容包括模型改造、RT-AK使用和应用代码实现。
最低0.47元/天 解锁文章
3617

被折叠的 条评论
为什么被折叠?



