Yolov5+win10+pytorch+android studio实现安卓实时物体检测实战(coco128/coco/自己的训练集)

这篇具有很好参考价值的文章主要介绍了Yolov5+win10+pytorch+android studio实现安卓实时物体检测实战(coco128/coco/自己的训练集)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在这里感谢各个大佬的参考文献及资料。在我学习深度学习的过程中,我参考了如下网站:

Win10+PyTorch+YOLOv5 目标检测模型的训练与识别 | | 洛城风起

YOLOv5 COCO数据集 训练 | 【YOLOv5 训练】_墨理学AI的博客-CSDN博客_yolov5训练coco数据集

准备工作

系统环境:win10

cuda 版本:11.3

Cuda环境配置

在cuda官网中下载11.3版本,根据提示完成安装后在系统环境中如下配置:

Yolov5+win10+pytorch+android studio实现安卓实时物体检测实战(coco128/coco/自己的训练集)

cuda系统环境配置

其中,变量值是cuda的安装包位置(../v11_3)。

此外,需要在系统变量Path中添加如下变量:

Yolov5+win10+pytorch+android studio实现安卓实时物体检测实战(coco128/coco/自己的训练集)

Path环境变量配置

其中,路径位置为cuda安装包下的bin、libnvvp、extras\CUPTI\lib64、cuda\bin。

cudnn版本:8.2

其中cuda与cudnn版本需要对应。

yolov5下载

已经检测运行的Yolov5算法下载链接:链接:https://pan.baidu.com/s/1NFimV3SmieM5A2BLyV_HAg 
提取码:fwec 


通过pycharm打开项目进入yolov5-master

在控制台中输入如下指令下载torch+torchvision库,其中torch版本要与cuda版本对应

具体可参考Previous PyTorch Versions | PyTorch

pip3 install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu113

安装完之后测试是否安装成功可运行以下代码

import torch
print(torch.__version__)#torch版本号
flag = torch.cuda.is_available() #cuda是否可以使用
print(flag)
ngpu= 1
device = torch.device("cuda:0" if (torch.cuda.is_available() and ngpu > 0) else "cpu")
print(device)
print(torch.cuda.get_device_name(0))#gpu设备参数

若有如下输出则说明能使用gpu进行训练

Yolov5+win10+pytorch+android studio实现安卓实时物体检测实战(coco128/coco/自己的训练集)

 若出现false,则说明torch版本号与cuda不匹配。

训练

coco训练集

yolov5提供了coco训练集的相关文件,找到data/coco.yaml可以看到其提供了coco的训练路径和下载链接,此时我们需要把download相关的代码注释或删除。(直接用代码下载会异常的卡)

下载coco训练集

链接:https://pan.baidu.com/s/106UjHhV0Zh6hFcHJh1TgVQ 
提取码:grgd 

coco2017训练集包含了10万张照片近18G数据。

将下载好的coco数据集放置如下目录:

# ├── yolov5
# └── datasets
#     └── coco  ← downloads here

在coco文件夹中新建images文件夹分别将图片中的train2017和val2017放入images文件中

Yolov5+win10+pytorch+android studio实现安卓实时物体检测实战(coco128/coco/自己的训练集)

images文件夹下

Yolov5+win10+pytorch+android studio实现安卓实时物体检测实战(coco128/coco/自己的训练集)

labels标签需要将json格式的标签转为.txt格式,我已将转换完的标签传入网盘:链接:https://pan.baidu.com/s/1PV07i7pmKrGrCfDAwtWyhg 
提取码:cdsf 

将labels.zip文件解压到coco文件夹下

并下载train2017.txt和val2017.txt文件放置于coco文件夹下

链接:https://pan.baidu.com/s/1FjUH1OuiWm8CCtdTQIM-XQ 
提取码:efeg 

至此,coco数据集准备工作做完了。

接下来修改coco.yaml代码,将路径改为coco数据集路径

path: ../datasets/coco  # dataset root dir
train: train2017.txt  # train images (relative to 'path') 118287 images
val: val2017.txt  # train images (relative to 'path') 5000 images

开始训练

在控制台输入以下代码

python train.py -–img 640 -–batch 4 --epoch 300 --data coco.yaml –-cfg ./models/yolov5s.yaml –-weights weights/yolov5s.pt  –-workers 0

其中,epoch代表训练次数,在yolov5中,以300次为宜。

--data即为数据集配置文件。

--cfg 为预训练模型配置文件。

--weights 为预训练模型。(上述2项可忽略,但是会增加训练时间、减少训练收敛速度)

如果进行如下操作,则说明已经开始训练,耐心等待即可。(coco训练集所需要的时间极长,所以推荐接下来的coco128训练集)

Yolov5+win10+pytorch+android studio实现安卓实时物体检测实战(coco128/coco/自己的训练集)

 coco128训练集

同样的,下载coco128训练集

链接:https://pan.baidu.com/s/1XEbn0IyVx8WSCQ7-epk2eQ 
提取码:wqer 

此时下载的coco128可直接解压到pycharmProject\object_detection\datasets文件中

然后,打开项目中的coco128.yaml配置文件修改path路径

path: ../datasets/coco128  # dataset root dir
train: images/train2017  # train images (relative to 'path') 128 images
val: images/train2017  # val images (relative to 'path') 128 images

同样的,注释或删除掉download段代码。

开始训练

在控制台输入如下代码(仅修改了data项)

python train.py -–img 640 -–batch 4 -–epoch 300 -–data coco128.yaml –-cfg ./models/yolov5s.yaml –-weights weights/yolov5s.pt  –-workers 0

自定义训练集训练

1.打开myvoc.yaml

nc为要训练的物体种类数量。

name后为物体的种类名。

Yolov5+win10+pytorch+android studio实现安卓实时物体检测实战(coco128/coco/自己的训练集)

接下来将自己的数据集图片放置VOCData\images中,将标注的.txt文件放入labels文件中。(如果不知道如何标注,可以百度labelimg使用)

2.修改 txt2yolo_label.py 修改成为你的标签分类

 Yolov5+win10+pytorch+android studio实现安卓实时物体检测实战(coco128/coco/自己的训练集)

 3.修改 models\yolov5s.yaml 修改成为你的标签分类数

Yolov5+win10+pytorch+android studio实现安卓实时物体检测实战(coco128/coco/自己的训练集)

 4.控制台运行代码处理标签数据

python .\split.py

python .\txt2yolo_label.py

开始训练

python train.py –img 640 –batch 4 –epoch 300 –data ./data/myvoc.yaml –cfg ./models/yolov5s.yaml –weights weights/yolov5s.pt –workers 0

其中对yolov5s或者yolov5m的选择可以视情况而定。s偏向于更快速的识别,m偏向于更准确的识别。

最后通过训练集训练的模型在runs\train\exp中输出。

测试

在test文件夹下放入想要测试的图片。控制台输入如下代码

python detect.py –-source ./test –-weights runs/train/exp/weights/best.pt --img 640 --conf 0.5

测试完后在runs\detect\exp文件夹下可以看到输出图片

Yolov5+win10+pytorch+android studio实现安卓实时物体检测实战(coco128/coco/自己的训练集)

即代表模型以及训练出效果了。

Android端移植

1.首先要做的是将模型转码为.ptl文件,打开export.py文件,找到如下代码并修改

Yolov5+win10+pytorch+android studio实现安卓实时物体检测实战(coco128/coco/自己的训练集)

    try:
        print(f'\n{prefix} starting export with torch {torch.__version__}...')
        #f = file.with_suffix('.torchscript.pt')
        fl = file.with_suffix('.torchscript.ptl')

        ts = torch.jit.trace(model, im, strict=False)
        #(optimize_for_mobile(ts) if optimize else ts).save(f)
        (optimize_for_mobile(ts) if optimize else ts)._save_for_lite_interpreter(str(fl))


        #print(f'{prefix} export success, saved as {f} ({file_size(f):.1f} MB)')
        print(f'{prefix} export success, saved as {fl} ({file_size(fl):.1f} MB)')
    except Exception as e:
        print(f'{prefix} export failure: {e}')

 然后在控制台输入

python export.py --weights runs/train/exp/weights/best.pt --include torchscript

得到如下文件

Yolov5+win10+pytorch+android studio实现安卓实时物体检测实战(coco128/coco/自己的训练集)

 下载torch移动端物体检测官方demo

https://github.com/pytorch/android-demo-app

我们需要的是android-demo-app/ObjectDetection/目录下的app

将.ptl文件放入ObjectDetection\app\src\main\assets目录下

使用android studio打开ObjectDetection,耐心等待gradle sync(这里可能会出现一系列问题,就不一一罗列了)

加载完后,打开MainActivity.java,修改代码

Yolov5+win10+pytorch+android studio实现安卓实时物体检测实战(coco128/coco/自己的训练集)

将其改为自己的模型,下面的.txt文件为模型的物体种类,默认是classes.txt,部分截图

Yolov5+win10+pytorch+android studio实现安卓实时物体检测实战(coco128/coco/自己的训练集)

 若是自己的训练集训练的模型,则还需修改PrePostProcessor.java中的

private static int mOutputColumn = 85; // 识别的类别数+5

其中mThreshold变量为最小显示的置信率,本课题设置为30%,过低会导致过度识别,过高则会导致app不显示识别框。

demo提供了已有图片检测、选取图片检测以及实时图片检测。

最后,生成.apk安装包在手机中安装使用。下图为实时物体检测实操效果。

Yolov5+win10+pytorch+android studio实现安卓实时物体检测实战(coco128/coco/自己的训练集)

 最后,感谢各位大佬的付出,这也是我人工智能领域的第一次实践。特以此文章记录,并给以后想学习的各位参考。入门的过程中可能会出现很多困难,但是世上无难事,只怕有心人。文章来源地址https://www.toymoban.com/news/detail-410254.html

到了这里,关于Yolov5+win10+pytorch+android studio实现安卓实时物体检测实战(coco128/coco/自己的训练集)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 从零开始部署yolov8到安卓手机详细教程【Android Studio】

    首先你需要配置好pytorch环境,本文不再详细阐述,若未配置好环境,可以参考: https://blog.csdn.net/weixin_43507693/article/details/109015177 安装yolov8可参考: https://blog.csdn.net/weixin_44120785/article/details/128681117 Android Studio官网链接:https://developer.android.google.cn/ 自行配置AS环境(网上很多相

    2024年01月25日
    浏览(39)
  • 使用Android studio,安卓手机编译安装yolov8部署ncnn,频繁出现编译错误

    从编译开始就开始出现错误,解决步骤: 1.降低graddle版本,7.2-bin  ---   降低为 6.1.1-all 2.仍旧有报错,jdk从17降为 jdk 13, 在setting配置里, 进入build,excution,deployment文件夹中,(是一个文件夹,名字长,不是三个) 进入build tools,再进入 Gradle,  如图所示, 勾选,选择

    2024年04月28日
    浏览(40)
  • 【Android Studio】--- win10 配置镜像源 为阿里镜像源 超详细

    在编程的艺术世界里,代码和灵感需要寻找到最佳的交融点,才能打造出令人为之惊叹的作品。 而在这座秋知叶i博客的殿堂里,我们将共同追寻这种完美结合,为未来的世界留下属于我们的独特印记。 开发环境:windows10 在 C:用户用户名.gradle 新建 并输入如下内容:

    2024年02月04日
    浏览(39)
  • 【Android Studio】 win10 配置镜像源 为阿里镜像源 超详细

    在编程的艺术世界里,代码和灵感需要寻找到最佳的交融点,才能打造出令人为之惊叹的作品。 而在这座秋知叶i博客的殿堂里,我们将共同追寻这种完美结合,为未来的世界留下属于我们的独特印记。 开发环境:windows10 在 C:用户用户名.gradle 新建 并输入如下内容:

    2024年02月11日
    浏览(34)
  • YOLOv5在android端实现目标检测+跟踪+越界识别并报警

    想要获取源码和相关资料说明的可以关注我的微信公众号: 雨中算法屋 , 后台回复 越界识别 即可获取,有问题也可以关注公众号加我微信联系我,相互交流学习。 算法功能: 判断划定的区域内,在某个时间内,是否有⼈体闯⼊,涉及到了⼈体检测+⼈体追踪+业务功能(区

    2023年04月12日
    浏览(30)
  • yolov5安卓(鸿蒙)手机部署

    本篇文章主要是针对yolov5s在安卓(鸿蒙)手机部署过程进行记录。 有关YOLOv5其他资料可以参考我以下文章进行学习: C++版tensorrt YOLOv5推理 如何通过YAML文件修改YOLOv5网络 YOLOv5通道剪枝 YOLOv5图像分割代码详解1 YOLOv5图像分割之NMS YOLOv5+霍夫变换之车道线检测 YOLOv5损失函数详解

    2024年02月09日
    浏览(31)
  • win10安装安卓子系统android13肯定成功补充说明Win1022H2安装WSA安卓子系统部署失败0x80073CF3无法进行更新、相关性或冲突验证Xaml.2.8解决方案

    说明:该文章为我之前的文章的一个补充说明,也是由于最近系统出了问题后,进行了更新到Win10最新系统后,出现的一些问题,并做了以下的一些记录: 这里呢,我是昨天重新下载并更新了系统为22H2,所以,我还在用之前的安卓子系统时,出现了问题,无法部署成功,“部

    2024年02月20日
    浏览(39)
  • 基于yolov5的车道线检测及安卓部署

    这个车道线检测是华科的研究团队做的一个开源项目,写这篇文章主要是想分享一下好的东西给大家 自己做了拓展延伸,在车道线检测的基础上增加了测距和碰撞检测内容,具体见文章 yolov5车道线检测+测距(碰撞检测) 车道线识别代码可以直接下载,在win系统下运行 代码

    2024年02月06日
    浏览(69)
  • YOLOv5——pytorch环境搭建

    环境搭建是一个最最基础而又基本的事情,是一切工作开始前的基本要求。 由于YOLOv7和YOLOv5不兼容,这次用到了YOLOv5,我不得不再使用anaconda创建一个虚拟环境。 Tip:很多人不了解Anaconda存在的意义,就是为了弥补python多版本不兼容问题(在安装过程中,我们不难发现,总是

    2024年02月17日
    浏览(27)
  • yolov5的pytorch配置

    1. 2、 pip install torch==1.8.0 torchvision==0.9.0 torchaudio==0.8.0 -f https://download.pytorch.org/whl/cu113/torch_stable.html -i https://pypi.tuna.tsinghua.edu.cn/simple 3、conda install cudatoolkit=10.2

    2024年02月10日
    浏览(22)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包