用小米 11 等安卓手机解锁目标检测模型 YOLOv5,识别速度不过几十毫秒!

2021-12-07 14:52量子位 - 丰色

现在,目标检测界明星模型 YOLO,最新 v5 版本也可以在手机上玩儿了!瞧~只需要区区几十毫秒,桌上的东西就全被检测出来了:

这速度似乎不比电脑差?想要亲手搭建一个?上教程。

在安卓手机上部署 YOLOv5

更确切的说是 YOLOv5s。YOLOv5 于 2020 年 5 月发布,最大的特点就是模型小,速度快,所以能很好的应用在移动端。

而且其实最开始 YOLOv5 就是作为一款对图像进行检测、分类和定位的 iOS 端 App 进入人们的视野,而且 App 还是由 YOLOv5 的作者亲自开发。

现在,想要在安卓设备上部署它,你需配备的环境如下:

  • 主机 Ubuntu18.04

  • Docker

• Tensorflow 2.4.0

• PyTorch 1.7.0

• OpenVino 2021.3

  • 安卓 App

• Android Studio 4.2.1

• minSdkVersion 28

• targetSdkVersion 29

• TfLite 2.4.0

  • 安卓设备

・ 小米 11 (存储 128GB/ 内存 8GB)

・ 操作系统 MIUI 12.5.8

然后直接下载作者在 GitHub 上的项目。

git clone —recursive https://github.com/lp6m/yolov5s_android

使用 Docker 容器进行主机评估(host evaluation)和模型转换。

cd yolov5s_android docker build ./ -f ./docker/Dockerfile -t yolov5s_android docker run -it —gpus all -v pwd:/workspace yolov5s_anrdoid bash

将 App 文件夹下的./tflite\u model/*.tflite 复制到 App / tflite\u yolov5\u test / App / src / main / assets / 目录下,就可在 Android Studio 上构建应用程序。

构建好的程序可以设置输入图像大小、推断精度和模型精度。

如果选择其中的“Open Directory”,检测结果会被保存为 coco 格式的 json 文件。从摄像头进行实时检测模式已将精度和输入图像大小固定为 int8/320,该模式在小米 11 达到的图像帧数为 15FPS。

由于本项目是作者参加的一个”Yolov5s Export”竞赛(并且最终得了奖,奖金还是 2000 美元),所以他也进行了性能评估。

评估包括延时和准确度。

延迟时间

在小米 11 上测得,不包含预处理 / 后处理和数据传输的耗时。

结果如下:

不管模型精度是 float32 还是 int8,时间都能控制在 250ms 以内,连半秒的时间都不到。

△ float32

△ int8

大家可以和 YOLOv5 在电脑上的性能对比:

准确度

各种模式下的 mAP (mean Average Precision) 值最高为 28.5,最低也有 25.5。

最后,详细教程可戳下方链接;如果你只想试玩,作者也在上面提供了安卓安装包~

项目地址:

https://github.com/lp6m/yolov5s_android

广告声明:文内含有的对外跳转链接(包括不限于超链接、二维码、口令等形式),用于传递更多信息,节省甄选时间,结果仅供参考,IT之家所有文章均包含本声明。

文章价值:
人打分
有价值还可以无价值
置顶评论
    热门评论
      文章发布时间太久,仅显示热门评论
      全部评论
      一大波评论正在路上
        取消发送
        软媒旗下人气应用

        如点击保存海报无效,请长按图片进行保存分享