我计划在智能手机中实现实时目标检测功能。对于ios,我知道我可以使用CoreML和微型YOLO来完成这个功能。然而,智能手机的检测速度较慢,检测精度不高。
因此,我希望能够在Python服务器中构建对象检测。智能手机将捕获该帧或使用实时流将帧传递到服务器。然后,服务器将结果返回到智能手机。智能手机将显示边框。这有可能在较短的等待时间内完成所有的事情吗?
发布于 2018-12-12 10:40:05
你确定这是“慢和准确性不好”吗?
TinyYOLO在iPhone XS上以200个FPS运行,甚至在最近的设备上以实时帧率运行整个YOLO-v3。有关示例,请参见:https://github.com/Ma-Dan/YOLOv3-CoreML。
MobileNetV2+SSDLite高达90 FPS。
你不可能在超高速下运行这些模型,但这表明它们有能力实时运行。即使在较旧的设备上,SSDLite也能获得实时速度。
(诚然,速度更快的R在手机上并不是真正的速度怪物。)
假设你需要达到30个FPS。这意味着每帧有33毫秒用于将帧发送到服务器,处理它,并将边界框发送回客户端。也许您可以让它对单个用户足够快地工作,但是如果1000 s的用户同时尝试这样做,那么如何使服务器足够快呢?
为了获得最佳的吞吐量,您必须将请求排队并分批处理,但这也会增加延迟。
通过在服务器上这样做,您实际上有三个问题需要解决: 1)使其足够快,2)使其扩展,3)为此付费。
我并不是说它不能用服务器完成,但不要过早地取消设备上的对象检测。
https://stackoverflow.com/questions/53737538
复制相似问题