公司动态
183、YOLOv8改进实战:NCNN移动端部署全流程,Android/iOS平台实时目标检测实现
183、YOLOv8改进实战:NCNN移动端部署全流程,Android/iOS平台实时目标检测实现一、写在前面:一个让人抓狂的部署夜上周三晚上十一点,我盯着Android Studio里那个诡异的崩溃日志——“Segmentation fault,地址0x0”。这已经是第三次了,前两次我以为是模型转换的问题,重新导出了三遍ncnn.param和.bin文件,结果该崩还是崩。后来发现,问题出在YOLOv8的Focus层。NCNN的Focus实现有个隐藏的bug,当输入尺寸不能被2整除时,内存访问越界。我花了一整夜,最后在NCNN的issue区翻到一个2019年的帖子才找到解决方案。这就是移动端部署的日常。你花了两周调优的模型,在PC上跑得飞起,一到手机就各种翻车。今天这篇笔记,我把YOLOv8在NCNN上部署的全流程踩过的坑、填过的土,一次性写清楚。二、模型转换:别直接用官方导出脚本YOLOv8官方提供的export.py确实方便,但直接拿来转NCNN会出问题。我试过三次,三次都卡在reshape层。正确的做法是分两步走:第一步:导出ONNX# 这里踩过坑:opset版本必须用12,别问为什么,问就是NCNN对高版本支持不完善fr