用安卓手機解鎖目標檢測模型YOLOv5,識別速度不過幾十毫秒
本文經AI新媒體量子位(公眾號ID:QbitAI)授權轉載,轉載請聯系出處。
現在,目標檢測界明星模型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/ RAM 8GB)
操作系統 MUI 12.5.8
然后直接下載作者在GitHub上的項目。
git clone —recursive https://github.com/lp6m/yolov5s_android

使用Docke容器進行主機評估(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