是否可以在raspberry pi 3上运行SSD或YOLO对象检测以进行实时对象检测(2 / 4frames x秒)?
我在python中尝试过这个SSD实现,但每帧需要14秒。
答案 0 :(得分:2)
我最近开始研究我的一个项目的物体检测,并且想知道是否遗漏了一些东西以便开始实施。
我想在树莓派3上实现一个实时物体检测系统,用于监视例如花园的开放空间。我已经尝试了一些可用的解决方案。我不需要检测很多类(只有3个人,狗,自行车),所以可以使用更少的过滤器和参数重新训练最快的选项,从而减少总计算时间。
Darknet(YOLO)[https://github.com/pjreddie/darknet]已安装的默认暗网测试YOLOv2和YOLO在树莓派pi3上运行,每帧运行约450秒。 Tiny YOLO每张图片运行40秒。
Tensorflow Google对象检测(API)[https://github.com/tensorflow/models/blob/master/object_detection/g3doc/installation.md]:我尝试了所有可用的网络。性能最佳的是SSD初始网络,每个图像运行26秒。
Microsoft嵌入式学习库(ELL)[https://github.com/Microsoft/ELL]:由于某些编译原因,我无法使其工作,但稍后会尝试再次检查。请告诉我这是否适用于您以及它在对象检测任务中的表现。
Darknet-NNPACK [https://github.com/thomaspark-pkj/darknet-nnpack]:这里暗网针对手臂处理器进行了优化,并通过某种FFT实现实现了卷积,并且速度提升了很多。
我已经从中获得了许多承诺,但它有它的问题。
安装的暗网测试YOLO(完整v1)在Raspberry Pi3上运行,每张图像需要大约45秒,比默认的YOLO网络快10倍。 Tiny YOLO每帧运行1.5秒,但没有结果。
由于模型和cfg文件之间的版本冲突,这可能是错误报告。我暂时打开了一个github(问题)[https://github.com/thomaspark-pkj/darknet-nnpack/issues/13]但尚未收到回复。
MXnet(SSD)[https://github.com/zhreshold/mxnet-ssd]:Mxnet中的SSD端口(未使用NNPACK编译)每个映像使用MXnet SSD resnet 50 88秒每个映像使用MXnet SSD inceptionv3 35秒
Caffe-YOLO [https://github.com/yeahkun/caffe-yolo]:在yolo_small上运行caffe,每帧24秒。在yolo_tiny上运行caffe每帧5秒。这看起来是我尝试过的最快的,除非blacknet-nnpack问题可以解决。
答案 1 :(得分:2)
我设法在树莓派上运行MobileNetSSD并获得4-5 fps的速度,问题是您可能会获得大约80-90%的pi资源,从而使相机RSTP连接在大量活动期间失败并丢失了许多帧并在框架上产生大量假象,因此我不得不购买NCS棒并将其插入pi,现在我可以达到4 fps,但pi资源非常低,约为30%。 使用mobilenet ssd的nc大约需要0.80秒来处理图像。
答案 2 :(得分:1)
一个选择是使用Movidius NCS,仅当模型小得多时,才使用树莓才有效。
关于NCS实施: 您应该能够使Mobilenet-SSD以〜8fps的速度运行。有一些适用于简单用例的示例。我目前正在使用与Darknet参考模型类似的对象检测器,该检测器在NCS上的运行速度约为15fps,但由于该模型尚不可用。 一旦运行良好,我将对其进行开源。
答案 3 :(得分:-1)
与YOLO相同。它还需要Nvidia GPU。使用CPU,每张图像需要几秒钟。