行业知识
在 Android 上部署自定义 YOLOv8 教程
在本教程中,我将向您展示如何在 Android 设备上使用自定义数据集部署 YOLOv8。想要了解如何在 Android 设备上使用您自己的数据集部署 YOLOv8?本文将展示如何操作。
Android 上的 自定义 YOLOv8 ⚡️ 结果显示标题对从 GoPro 流式传输到移动设备的运动镜头使用 YOLOv8 对象检测可以提供有关场景中对象的宝贵信息,包括位置和类型。这在捕捉远足路线的镜头时特别有用,有助于识别潜在的障碍物或危险以及感兴趣的物体。
标 YOLOv8 参加雪地自行车比赛❄️题在需要快速准确的物体检测的情况下,手机上的 YOLOv8 应用程序必不可少。 YOLOv8是一种基于深度学习的物体检测模型,可以快速准确地检测图像或视频中的物体,并且可以在移动设备上随时随地使用。
MotoGP 中的 YOLOv8 ️标题为了在 Android 设备上部署带有自定义数据集的 YOLOv8,我们需要训练模型,将其转换为 TensorFlow Lite 或 ONNX 等格式,并将其包含在应用程序的资源文件夹中。然后,使用Android Studio创建项目、添加依赖、加载和解析模型、加载图像数据。执行模型推理,解析输出,并在图像上绘制边界框以显示检测到的对象。最后,在 Android 设备上安装并运行该应用程序。然而,优化移动设备的模型并解决压缩和加速等性能问题对于实际应用非常重要。
第 0 步——理解 ncnn 的终极指南
ncnn是一款专为手机优化的开源高性能神经网络前向计算框架。从设计之初,ncnn就深入考虑了移动端的部署和使用,无第三方依赖,跨平台,且移动端的CPU速度比所有已知的开源框架都要快。基于此ncnn,开发者可以轻松地将深度学习算法移植到手机上高效执行,开发人工智能APP,让AI触手可及。
步骤 1 — 使用自定义数据集训练 YOLOv8
- 克隆 Git 存储库并安装 YOLOv8
- 使用预训练权重进行推理
- 数据准备和格式转换
- 运行训练过程
- 将权重转换为 ONNX 格式
- 将权重转换为 NCNN 格式
步骤2 — 在 Android Studio 上构建并运行
- 下载 ncnn-android-yolov8
- 下载ncnn
- 下载 opencv-mobile
- 使用 Android Studio 打开 ncnn-android-yolov8
- 将 NCNN 格式权重放入文件夹中
- 修改yolo.cpp
第 1 步 —使用自定义数据集训练 YOLOv8
⭐克隆 Git 存储库并安装 YOLOv8
YOLOv8 发布了一个名为 的软件包ultralytics,可以使用下面提到的命令安装它。
$ mkdir yolov8$ cd yolov8$ git clone https://github.com/ultralytics/ultralytics$ pip install -qe ultralytics$ cd ultralytics
⭐使用预先训练的权重进行推理
要使用 YOLOv8 的预训练权重对所选视频或图像执行对象检测,可以在终端中执行下面提供的命令。
# image$ yolo task=detect mode=predict model=yolov8m.pt source="XXX.png"# video$ yolo task=detect mode=predict model=yolov8m.pt source="XXX.mp4"
如果执行成功,结果将保存在文件夹中YOLOv8/ultralytics/runs/detect/exp/。
⭐数据准备和格式转换
访问 Kaggle 并下载微控制器检测数据集。
要创建一个名为 的文本文件chip.yaml并将其放置在文件夹中YOLOv8/ultralytics/,请使用以下命令并将所需的内容添加到该文件中。
train: ../datasets/images/train/val: ../datasets/images/test/# number of classesnc: 4# class namesnames: ['Arduino Nano', 'ESP8266', 'Raspberry Pi 3', 'Heltec ESP32 Lora']
训练期间的数据结构如下表所示。
将文件夹下的.xml移动Microcontroller Detection/images/train/到文件夹中Microcontroller Detection/images/train_xml/
将文件夹下的.xml移动Microcontroller Detection/images/test/到文件夹中Microcontroller Detection/images/test_xml/
将文件夹上传Microcontroller Detection/images/train/到文件夹中YOLOv8/datasets/images/。
将文件夹上传Microcontroller Detection/images/test/到文件夹中YOLOv8/datasets/images/。
要使用该数据集训练 YOLOv8 目标检测模型,需要将格式从 .xml 转换为 .txt。
$ cd ..$ git clone https://github.com/Isabek/XmlToTxt$ cd XmlToTxt$ pip install -r requirements.txt
YOLOv8/XmlToTxt/classes.txt根据您的自定义数据集进行修改。
Arduino_Nano ESP8266 Raspberry_Pi_3 Heltec_ESP32_Lora
将文件夹上传Microcontroller Detection/images/train_xml/到文件夹中YOLOv8/XmlToTxt/。
将文件夹上传Microcontroller Detection/images/test_xml/到文件夹中YOLOv8/XmlToTxt/。
要将文件从 .xml 格式转换为 .txt 格式,请在终端中运行以下命令。
# 记得将classes.txt中的文本更改为您自己的类别# 将要转换的xml文件放入xml文件夹中$ python xmltotxt.py -xml train_xml -out train $ python xmltotxt.py -xml test_xml -out test
将文件夹移动YOLOv8/XmlToTxt/train/到YOLOv8/datasets/labels/.
将文件夹移动YOLOv8/XmlToTxt/test/到YOLOv8/datasets/labels/.
⭐运行训练过程
现在一切都已设置完毕,是时候运行训练过程了。
$ yolo task=detect \ mode=train \ model=yolov8n.pt \ data=./chip.yaml \ epochs=30 \ imgsz=416
训练过程的持续时间可能会因硬件配置而异,可能需要几分钟甚至更长的时间。当训练过程运行时,输出日志将显示类似于以下内容的消息。
0/9 0G 0.1184 0.0347 0.03127 47 640: 4%|▎ | 3/85 [01:08
上一篇:怎么在内网发布服务器?
下一篇:打印照片服务器怎么上网?