2

是否可以在树莓派 3 上运行 SSD 或 YOLO 对象检测以进行活体检测(2/4 帧 x 秒)?

我已经在 python 中尝试过这个SSD实现,但每帧需要 14 秒。

4

3 回答 3

6

我最近开始为我的一个项目研究对象检测,并想知道是否遗漏了一些东西来让东西落地。

我想在树莓派 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 inception 网络,每张图像运行 26 秒。

Microsoft 嵌入式学习库 (ELL)[ https://github.com/Microsoft/ELL]:由于某些编译原因,我无法让它工作,但稍后会尝试再次检查。请让我知道这是否对您有用以及它在对象检测任务中的表现。

Darknet-NNPACK [ https://github.com/thomaspark-pkj/darknet-nnpack]:这里的暗网针对 arm 处理器进行了优化,并通过某种 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 秒。除非可以解决darknet-nnpack问题,否则这看起来是我尝试过的最快的。

于 2017-10-05T12:51:38.637 回答
2

我设法在树莓派上运行 MobileNetSSD 并获得大约 4-5 fps 的问题是您可能会获得大约 80-90% 的 pi 资源,从而导致相机 RSTP 连接在大量活动期间失败并丢失大量帧并获得帧上有大量伪影,所以我不得不购买 NCS 棒并将其插入 pi,现在我可以达到 4 fps,但 pi 资源非常低,约为 30%。带有 mobilenet ssd 的 ncs 处理一张图像大约需要 0.80 秒。

于 2018-07-07T10:13:40.043 回答
1

一种选择是使用 Movidius NCS,只有在模型小得多的情况下才使用 raspberry。

关于 NCS 实施:您应该能够让 Mobilenet-SSD 以 ~8fps 的速度运行。有一些适用于简单用例的示例。我目前正在使用与 Darknet 参考模型类似的对象检测器,它在 NCS 上以 ~15fps 的速度运行,但由于该模型尚不可用。一旦它运行良好,我将开源它。

这是: https ://github.com/martinbel/yolo2NCS

于 2018-11-16T18:38:03.607 回答