【无标题】基于NCNN模型的YOLOv8踩坑记录

最近一直在研究学习yolo在安卓下的部署,计划使用rk3588平台实现一些图像识别,原以为3588自家的rknn会比较好,对比之后发现在安卓平台下还是ncnn效率更高些,随后重点研究ncnn,最后感谢motosheep提供的详细的部署过程
https://blog.youkuaiyun.com/motosheep/article/details/138398775
最后总结下来软件环境的版本确实很重要,严格按照博主提供的版本确实都能够跑通

还有一点最坑的是瑞芯微系列芯片跑ncnn闪退问题实在无解,测试3种品牌rk3399的板子全部不能用ndk方式打开摄像头,测试2种品牌的rk3588的板子,一个不能用ndk打开摄像头,一个有时能打开,有时不能,一度怀疑是ncnn软件程序存在问题,后来在华为手机测试发现运行正常没有出现过不能打开摄像头的情况,后更换一个mtk的MT8781芯片的板子运行完全正常。

版本信息如下:

C:\Users\Lenovo>pip list
DEPRECATION: Loading egg at c:\programdata\miniconda3\lib\site-packages\ultralytics-8.0.134-py3.11.egg is deprecated. pip 24.3 will enforce this behaviour change. A possible replacement is to use pip for package installation. Discussion can be found at https://github.com/pypa/pip/issues/12330
Package Version


anaconda-anon-usage 0.4.4
archspec 0.2.3
autocommand 2.2.2
backports.tarfile 1.2.0
boltons 23.0.0
Brotli 1.0.9
certifi 2024.8.30
cffi 1.17.1
charset-normalizer 3.3.2
colorama 0.4.6
coloredlogs 15.0.1
conda 24.11.0
conda-content-trust 0.2.0
conda-libmamba-solver 24.9.0
conda-package-handling 2.3.0
conda_package_streaming 0.10.0
contourpy 1.3.1
cryptography 43.0.0
cycler 0.12.1
Cython 3.0.11
distro 1.9.0
filelock 3.13.1
flatbuffers 24.3.25
fonttools 4.55.0
frozendict 2.4.2
fsspec 2024.10.0
humanfriendly 10.0
idna 3.7
importlib_metadata 8.0.0
importlib_resources 6.4.0
inflect 7.3.1
jaraco.collections 5.1.0
jaraco.context 5.3.0
jaraco.functools 4.0.1
jaraco.text 3.12.1
Jinja2 3.1.3
jsonpatch 1.33
jsonpointer 2.1
kagglehub 0.3.4
kiwisolver 1.4.7
libmambapy 1.5.8
markdown-it-py 3.0.0
MarkupSafe 2.1.5
matplotlib 3.9.2
mdurl 0.1.2
menuinst 2.1.2
more-itertools 10.3.0
mpmath 1.3.0
networkx 3.2.1
numpy 1.26.4
onnx 1.17.0
onnxruntime 1.20.1
onnxruntime-gpu 1.20.1
onnxsim 0.4.36
onnxslim 0.1.42
opencv-python 4.10.0.84
packaging 24.1
pandas 2.2.2
pillow 10.2.0
pip 24.2
platformdirs 3.10.0
pluggy 1.0.0
protobuf 5.28.3
psutil 6.1.0
pycosat 0.6.6
pycparser 2.21
Pygments 2.18.0
pyparsing 3.2.0
pyreadline3 3.5.4
PySocks 1.7.1
python-dateutil 2.9.0
pytz 2024.1
PyYAML 6.0.2
requests 2.32.3
rich 13.9.4
ruamel.yaml 0.18.6
ruamel.yaml.clib 0.2.8
scipy 1.14.1
seaborn 0.13.2
setuptools 75.1.0
six 1.16.0
sympy 1.13.1
tomli 2.0.1
torch 2.0.1+cu117
torchaudio 2.0.2+cu117
torchvision 0.15.2+cu117
tqdm 4.66.5
truststore 0.8.0
typeguard 4.3.0
typing_extensions 4.12.2
tzdata 2024.2
ultralytics 8.0.134
ultralytics 8.0.134
urllib3 2.2.3
wheel 0.44.0
win-inet-pton 1.1.0
zipp 3.19.2
zstandard 0.23.0

yolo版本8.0.134,因为转化onnx过程需要修改yolo代码head.py和block.py,其他版本代码会有差异,不同版本需要自己研究,无特殊要求尽量用此版本
在这里插入图片描述
在这里插入图片描述

比如官方模型,model = YOLO((‘yolov8n.pt’)如果不修改yolo代码则不能正常运行。

训练人脸检测数据集

在下载Kaggle的数据集过程发现需要首先要注册,但国内用户不用点非常手段无法注册,后用python发现不用注册即可下载,不过需要首先安装kagglehub,大概4个G的数据,下载过程较慢
pip install kagglehub

import kagglehub
# Download latest version
path = kagglehub.dataset_download("fareselmenshawii/face-detection-dataset")
print("Path to dataset files:", path)

下载完成后将images、labels、labels2放到yolo 目录下,其他步骤按照原博主方法进行即可

在安卓下运行ncnn时注意如果使用外置usb摄像头需修改MainActivity.java的摄像头序号
yolov8ncnn.openCamera(new_facing);
并且需要注释掉ndkcamera.cpp得一下内容,因为usb摄像头类型会是ACAMERA_LENS_FACING_EXTERNAL
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值