最近做了个水果采摘的项目,虽然用的设备很简陋,开发板使用的是树莓派4B,里面没有CUDA,只能用CPU做推理,模型每次推理都会很卡,推理速度很慢,而且其中出现了很多问题,下面就说说部署过程中出现的问题,以及我是怎么解决的,仅供参考:
首先,我将服务器训练好的代码以及模型直接拷贝进树莓派上,然后配置环境上踩了坑,我使用的是树莓派板子上自带的python的base环境,因为Ros系统和Conda在板子我查阅相关资料说是会出现冲突,所以我就使用venv创建了python虚拟环境,具体教程可见ubtuntu上创建新的python环境,创建好之后我按照yolov4的requirement.txt下载了相关的环境,安装好之后我运行了detect代码进行推理,结果没反应,出现了Segmentation Fault的错误,在网上寻找了半天解决方案无果,以为是CPU推理不动YOLOv4,然后花费一整天重新训练了YOLOv4-tiny代码,发现还是如此,然后在github上看大佬的帖子最终找到了端倪:
Ultralytics YOLOv8.0.195 🚀 Python-3.9.2 torch-2.1.0 CPU (Cortex-A72)
YOLOv8n summary (fused): 168 layers, 3151904 parameters, 0 gradients, 8.7 GFLOPs
Found https://ultralytics.com/images/bus.jpg locally at bus.jpg
Segmentation fault
解决方案在这里:我直接说如何解决:
安装指定版本的两个包:
pip uninstall torch torchvision
pip install torch==2.0.1 torchvision==0.15.2 torchaudio==2.0.2
最后,嘿嘿嘿:
没成功的评论区商讨
推荐的部署yolo的up主: