客户端服务器端实时对象检测

Client Server side real time object detection

我打算在smart中实现实时物体检测功能phone。对于ios,我知道我可以用CoreML配合tiny YOLO来完成这个功能。但是smart phone 中的检测速度慢,准确率不高。

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

你确定是"slow and the accuracy is not good"吗?

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

MobileNetV2+SSDLite 达到 90 FPS。

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

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

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

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

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

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