背景
需求背景简要描述:针对城市市容市貌管理中出现的单车违停、游摊小贩店外经营和暴露垃圾等等场景,希望能有一种经济 便捷的手段来进行巡查,事件识别,记录上报;我们每天用的手机的配置性能配置也越来越高,综合考虑电动车🛵安装支架放置一个手机会是一个平衡经济效益 便捷 和效果的很好实现方式。
需求
使用特定的高性能算力配置的手机比如搭载高通骁龙8gen2 gen3的手机做目标检测&场景识别,电动车巡查速度设定为15-20 km/h 每秒钟识别处理3-7帧图像(业务需求和硬件配置),目标检测场景10个左右。
调研方向
实现目标检测的已有优秀AI模型有很多,但是对于移动端(Mobile Device)算力有限 兼容性等场景需求,专门的模型和对比数据缺乏,需要调研出一种适合既定需求背景目标,训练迭代快,部署方便的较为成熟的适合移动端的AI识别目标检测方案同时兼顾精度、速度和体积等多种因素。
方案与对比数据
前期由于时间和资源限制每种场景的训练 验证图片数据为120张,5种目标场景检测共计600 张图,标注工具使用MakeSense.
- 移动端(Android Mobile Device)部署工具 Pytorch Moble 和Tensor Flow Lite,由于XXX 选择 YYY
- Object Detection Model Eff YOL
- 高通骁龙8 gen2 VS Pixel 7
- 转到MediaPipe 上面
方案与对比数据 📊
月底出数据对比,Google First*
两个牛蛙
在移动设备上实现目标检测,EfficientDet-Lite4和YOLOv5是两种常用的模型。以下是对这两种模型的对比:
EfficientDet-Lite4
EfficientDet 是一种目标检测模型,由 Google 的研究者开发。EfficientDet-Lite4 是 EfficientDet 的一个变种,专为移动和嵌入式设备优化。
优点:
-
EfficientDet-Lite4 被设计为在资源受限的设备上提供最佳的速度和准确度平衡。它比其它的 EfficientDet 变种更小、更快,但同时仍然保持了相对较高的准确度。
-
EfficientDet-Lite4 可以通过 TensorFlow Lite 在 Android、iOS 或其它嵌入式设备上运行。
缺点:
- 虽然 EfficientDet-Lite4 比其它的 EfficientDet 变种更小、更快,但其准确度可能稍低。
YOLOv5
YOLOv5 是 YOLO(You Only Look Once)系列模型的最新版本。YOLO 是一种实时目标检测系统,特别适合那些需要实时反馈的应用。
优点:
-
YOLOv5 非常快,可以实现实时目标检测。在一些需要快速响应的应用中,这是一个重要的优点。
-
YOLOv5 的性能(速度和准确度)比前几个版本的 YOLO 都要好。
缺点:
-
YOLOv5 是一个相对较新的模型,其稳定性和兼容性可能不如一些更成熟的模型。
-
YOLOv5 在某些复杂的场景下(例如小目标检测,密集目标检测)可能表现不如一些其他目标检测模型。
总的来说,EfficientDet-Lite4和YOLOv5都是非常优秀的移动设备上的目标检测模型,选择哪个模型取决于具体的应用需求。如果应用需要快速实时反馈,YOLOv5可能是更好的选择。如果设备的资源非常有限,或者对模型的大小和速度有严格的要求,EfficientDet-Lite4可能更加适合。
缩短从前沿研究到投入实际应用并且供所有开发者使用的整个流程。
Renference
DeepDish on a diet: low-latency, energy-efficient object-detection and tracking at the edge
PyTorch Mobile在端侧可堪大用?能否与TensorFlow Lite一较高下
开发工作流程
1. 创建 TensorFlow Lite 模型
TensorFlow Lite 模型以名为 FlatBuffer 的专用高效可移植格式(由“.tflite”文件扩展名标识)表示。**与 TensorFlow 的协议缓冲区模型格式相比,这种格式具有多种优势,例如可缩减大小(代码占用的空间较小)以及提高推断速度(可直接访问数据,无需执行额外的解析/解压缩步骤),这样一来,TensorFlow Lite 即可在计算和内存资源有限的设备上高效地运行。
TensorFlow Lite 模型可以选择包含元数据,并在元数据中添加人类可读的模型说明和机器可读的数据,以便在设备推断过程中自动生成处理前和处理后流水线
2. 运行推断
推断是指在设备上执行 TensorFlow Lite 模型,以便根据输入数据进行预测的过程。**您可以通过以下方式运行推断,具体取决于模型类型:
- 包含元数据的模型:在 Android 设备上,用户可以使用 Android Studio ML Model Binding 或 TensorFlow Lite Code Generator 自动生成代码封装容器。仅在 Java (Android) 中受支持
在 Android 和 iOS 设备上,您可以使用硬件加速来提升性能。在任何一个平台上,您都可以使用 GPU 代理:在 Android 上,您可以使用 NNAPI 代理(适用于新款设备)或 Hexagon 代理(适用于旧款设备)。如需添加对新的硬件加速器的支持,您可以定义自己的代理。