赞
踩
win10
python 3.11
cmake
pytorch
pycharm
首先安装好一个pycharm,这里就不一一叙述了。
其次,选择好一个python版本,是关键所在。有些YOLO的版本,并不支持很高的python版本,博主选用的是python3.11版本。经过实际的测试,这个版本比较合适。
(一)首先就是安装cmake的环境。直接从cmake下载,然后path配置cmake路径即可。
(二)完成cmake安装后,进行onnxsim安装,这个库,会涉及到yolo转换onnx,同时也是依赖cmake才能正常安装。
相关指令:pip install onnxsim
(三)安装pytorch版本
pip install torch2.0.1+cu117 torchvision0.15.2+cu117 torchaudio==2.0.2+cu117 -f https://download.pytorch.org/whl/torch_stable.html
(四)然后指定一个yolo版本进行安装,这里指定版本为8.0.134。注意,这个版本将会影响后续的代码编写。
具体指令如下:
pip install ultralytics==8.0.134
(五)特别注意,如果你的电脑有显卡,在训练模型的时候,是可以用显卡训练的,但是对于英伟达的1660系列的显卡,需要在train方法中,声明好amp=False,才能进行GPU训练。
完成,上述步骤后,就配置好所有需要进行训练的环境了,后面的文章,将会描述如何把官方的训练好的模型,部署到手机上。
对于如何训练一个模型,后续教程才进行讲解,现在要讲解的是,如何把官方的一个训练好的模型,部署到安卓手机上,并且能让其正常运行。
整个流程,就是Pt–>onnx–>ncnn。进行文件转换后,生成的nccn文件,部署到安卓手机上,并实现检测功能。
首先,下载好官方的模型:yolov8n.pt
对于这个模型,直接百度一搜索,就会有了,同时,也可以通过代码的形式,下载到项目的目录中,相关代码如下:
model = YOLO(('yolov8n.pt')
通过执行上面的python代码,就会自动下载yolov8n.pt文件,到执行文件同级别的目录了。
head.py文件:
block.py文件:
修改完上面两个文件后,执行下面的代码,
model = YOLO("yolov8n.pt")
model.export(format="onnx",imgsz=320, half=True, opset=12, optimize=True)
这样,就把pt文件,转换成了onnx文件了。
这里的方法有很多,博主直接用tc官方的onnx2ncnn.exe进行转换:
下载链接:
官方资源地址:
下载完成后,找到onnx2ncnn.exe文件,然后执行下面的指令,就可以得到两个文件,两个文件就是对应的ncnn资源文件:
onnx2ncnn.exe xxxx.onnx targetxx.param targetxx.bin
接下来,就是部署到安卓端上面了。
参考链接:
https://github.com/FeiGeChuanShu/ncnn-android-yolov8/tree/main/ncnn-android-yolov8
下载这个ncnn-android-yolov8的项目,然后用androidstudio打开,编译的ndk为21。gradle7+,然后,对应的opencv和ncnn下载链接如下:
ncnn-20240410-apple-vulkan.zip
opencv
下载完成后,上面的文件,全部解药到安卓项目中的jni目录。
接下来,就是开始修改jni文件了。
修改yolo.cpp中的输入输出名字
一般名字都是:
input–>images
output–>output0
修改strings.xml文件,替换为你的模型名字,如下图:
修改yolo8ncnn.cpp文件,模型名字,如下图(模型名字为fruit_best,所以这里的modeltypes[]就修改为对应的名字):
修改yolo.cpp中的generate_proposals函数,分类数量,这个数量,一般都是对应你的模型数量,官方模型,在demo中的类型,是80个,所以这里一般不做修改。
完成上述步骤后,点击as进行run,就可以实现了。
整体的思路,就是从官方下载一个已经训练好的模型,这里选用的Yolov8n.pt模型,然后修改head.py和block.py的源码,接着进行pt转换为onnx,然后再通过在线的网址,转换ncnn所需的模型文件xxx.param,xxx.bin。
接着下载安卓demo,把这两个文件替换。然后修改输入,输出的名字,以及模型的名字。配置好安卓的jni所需要的Opencv和ncnn所需的平台依赖。然后运行项目即可。
that’s all-----------------------------------------------------
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。