树莓派Mobilenet SSD 实时检测
2018月下半年Tensorflow开始提供树莓派版本后,我们见到了许多国内外的博主用python脚本在Tensorflow的框架下跑Mobilenet SSD 网络做了实时检测的Demo,但大部分的Demo帧率都比较低。
接触Tengine 后,发现在Tengine 框架下运行SSD网络的性能十分强。我参加了
Tengine AloT 树莓派应用征集大赛活动(https://github.com/oaid)
获得Tengine Explore版后,运行SSD 网络对网上图片检测,对多目标复杂背景环境的检测每次还能到达429.804ms,使用了int8精度后,在检测结果不变只减少精度的下每次检测还能达到329.959ms。
精度为浮点数32位
图片来源http://huaban.com/pins/340488847
精度为整数8位
相比用python的SSD检测模型一般的帧率是在1fps,使用C++编译的Tengine, 其中即使设置OPENCV 帧率为5pfs后实时检测依然流畅。
在发现Tengine Explore版优秀的性能后,我设计一个日常的场景,在摄像头检测到人的时候启动树莓派的GPIO 模块,使连接面包板上的LED亮灯。
这个Demo可以运用在实际的门禁的场景,在门禁启动后如果有人穿过拍摄区域,可以亮灯发出警示。 因为树莓派的计算能力的限制,亮灯的Demo的输出帧率达不到之前的5-6pfs,但是通过设置OPENCV 的降低视频清晰度检测的帧率还能达到3pfs。在实际场景的运用效果不错,下面的在场景是公司中的走廊中的实测视频gif
即使是在实时检测并亮灯的时候树莓派的CPU的占用率也65%左右,所以小小的树莓派用Tengine还是有可以继续发掘的潜力的。