背景:
2023.08.09导师让调研transformer的相关论文,做CV的都知道transformer多么难跑,需要用8张GPU跑100多个小时,我这个小小实验室放不下这尊大佛,所以就找点小模型跑一跑,调研论文发现最新的是CO-DETR,ap精度60.0,但是也都很大,意外发现了百度paddle框架下的新论文RT-DETR,real time detr,性能比yolov8还好,ap精度54.8,虽然不如CO-DETR,但是比yolov8强,那就很有研究的必要了。
接下来开始我们的复现之路:
1.配置环境
1.
首先去官网下载yolov8的zip
https://github.com/ultralytics/ultralytics
存放在我的目录下G:\bsh\yolov8
然后使用conda创建新的环境
conda create -n yolov8 python=3.8
#然后激活环境
conda activate yolov8
然后安装pytorch,
conda install pytorch==1.7.1 torchvision==0.8.2 torchaudio==0.7.2 cudatoolkit=10.1 -c pytorch
安装 ultralytics
pip install ultralytics
(然后我需要降低pillow的版本来适配我的pytorch,因为报错ImportError: DLL load failed while importing _imaging: 找不到指定的模块。
:解决方法参考附录1,如果你们不需要请略过)
然后下载官网的权重文件:
https://github.com/ultralytics/assets/releases
这里我下载了一堆进行测试:
然后照一张图片进行测试,
可以参考官方文档
https://docs.ultralytics.com/modes/predict/#inference-arguments
自己照一张图片,放在G:\bsh\yolov8\datademo\bug.jpg
里边
yolo detect predict model=weights/yolov8n.pt source=datademo\bus.jpg
运行结果如下图:
再拿一张自己随便拍的做测试,只能说种类越来越多了,之前yolov5那好像没有鼠标垫?
ps:
yolov8的框架比较晚上,也可以用文件夹来检测,检测目录设置成文件夹就行。遍历文件夹里的所有文件进行检测。
yolo detect predict model=weights/yolov8n.pt source=datademo
测了刚才一圈,这些模型,除了rtdetr的两个模型,都可以正常使用,
其中yolo_nas系列需要安装额外的库pip install super_gradients
为了使用rtdetr,我找了问题,应该是pytorch版本过低无法使用NonDynamicallyQuantizableLinear这个属性,起码要使用pytorch 1.9.0,但是1.9.0的不支持我的cuda 10.1了,都是10.2,我不敢升级cuda驱动,怕出问题,先下一个pytorch1.9.0试试吧
conda install pytorch==1.9.0 torchvision==0.10.0 torchaudio==0.9.0 cudatoolkit=10.2 -c pytorch
这个版本我的电脑也可以,可是还报错,
TypeError: meshgrid() got an unexpected keyword argument ‘indexing’
我去网上搜,pytorch=1.10.1解决了,所以我在尝试升级一下
conda install pytorch==1.10.1 torchvision==0.11.2 torchaudio==0.10.1 cudatoolkit=10.2 -c pytorch
可以的,事实证明我的笔记本还能继续战斗!
附录1
1.pillow库报错
ImportError: DLL load failed while importing _imaging: 找不到指定的模块。
(yolov8) PS G:\bsh\yolov8> pip show pillow
Name: Pillow
Version: 9.3.0
看出,报错是因为pillow版本过高,直接安装8.0版本即可
pip install pillow==8.0