【问题标题】:Client Server side real time object detection [closed]客户端服务器端实时对象检测[关闭]
【发布时间】:2019-05-13 05:37:32
【问题描述】:

我打算在智能手机中实现实时物体检测功能。对于ios,我知道我可以用CoreML和tiny YOLO来完成这个功能。但是,智能手机中的检测速度慢,准确率也不好。

因此,我希望我可以在 Python 服务器中构建对象检测。智能手机将捕获帧或使用实时流将帧传递到服务器。然后,服务器将结果返回给智能手机。智能手机将显示边界框。是否有可能在更短的延迟内完成所有事情?

【问题讨论】:

  • 快速谷歌搜索给出了答案:Tensorflow 和 OpenCV
  • @Reishin 实际上,我的问题是如何减少服务器和客户端之间的延迟以进行对象检测?以及哪个库适合流式帧

标签: python swift object-detection coreml


【解决方案1】:

你确定是“慢,准确度不好”吗?

TinyYOLO 在 iPhone XS 上以 200 FPS 运行,甚至 full YOLO-v3 在最近的设备上以实时帧速率运行。例如,请参阅:https://github.com/Ma-Dan/YOLOv3-CoreML。

MobileNetV2+SSDLite 最高可达 90 FPS。

您实际上不会以超高速运行这些模型,但它表明它们不仅能够实时运行。即使在旧设备上,SSDLite 也能获得实时速度。

(当然,Faster R-CNN 在移动设备上并不是真正的速度怪物。)

假设您需要达到 30 FPS。这意味着您每帧有 33 毫秒的时间将帧发送到服务器,对其进行处理,然后将边界框发送回客户端。也许你可以让它对单个用户运行得足够快,但是如果有 1000 多个用户尝试一次这样做,你将如何使服务器足够快呢?

您必须将请求排队并分批处理以获得最佳吞吐量,但这也会增加延迟。

通过在服务器上执行此操作,您实际上需要解决三个问题:1) 使其足够快,2) 使其可扩展,3) 付费。

我并不是说不能使用服务器来完成,但不要过早取消设备上的对象检测。

【讨论】:

  • 感谢您的回复。实际上,我已经为桌面版训练了 Tiny YOLOv2、YOLOv2 和 RetinaNet。 RetinaNet 几乎可以正确地检测和分类所有物体。我没有尝试过 YOLOv3,但我知道它比 YOLOv2 慢。 YOLOv3 能否在 iPhone 7 plus 上达到 >= 10 FPS?
  • 在 iPhone 7 Plus 上可能没有,那个设备根本不够强大。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多