YOLO3 部署与测试
YOLO3的GitHub地址:
https://github.com/ultralytics/yolov3
选择部署的平台是极链AI云平台
优势:价格便宜,按实际使用时间扣费,适合学生进行科研探索;使用灵活,即用即停;选择较多,可以选择不同的Pytorch、Python、CUDA版本。
官网:https://cloud.videojj.com
选择的机器是Tesla V100 12,配置是Pytorch 1.7,python 3.8,CUDA 11.0。
requirements.txt如下
# pip install -r requirements.txt
# base ----------------------------------------
matplotlib>=3.2.2
numpy>=1.18.5
opencv-python>=4.1.2
Pillow
PyYAML>=5.3.1
scipy>=1.4.1
torch>=1.7.0
torchvision>=0.8.1
tqdm>=4.41.0
# logging -------------------------------------
tensorboard>=2.4.1
# wandb
# plotting ------------------------------------
seaborn>=0.11.0
pandas
# export --------------------------------------
# coremltools>=4.1
# onnx>=1.9.0
# scikit-learn==0.19.2 # for coreml quantization
# extras --------------------------------------
# Cython # for pycocotools https://github.com/cocodataset/cocoapi/issues/172
pycocotools>=2.0 # COCO mAP
thop # FLOPS computation
安装语句:
cd /opt #也可以直接在root目录下运行
git clone https://github.com/ultralytics/yolov3
cd yolov3
pip install -r requirements.txt
wget https://github.com/ultralytics/yolov3/releases/download/v9.5.0/yolov3.pt
wget https://github.com/ultralytics/yolov3/releases/download/v9.5.0/yolov3-spp.pt
wget https://github.com/ultralytics/yolov3/releases/download/v9.5.0/yolov3-tiny.pt
除了官网给的安装语句外,本文还下载了yolov3.pt、yolov3-spp.pt、yolov3-tiny.py这几个权重文件,进行比较。
在pip install了之后,会出现以下error提醒。
但是pip list查看的时候,是torchaudio是存在且版本为0.7.0的。可以继续进行。
ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
torchaudio 0.7.0 requires torch==1.7.0, but you have torch 1.9.0 which is incompatible.
运行
如下图,根据官网给的示例。
如果当前在yolov3文件夹下,可以直接运行detect.py文件,如果不是,记得加上路径。
source后的data/images换成自己想要测试的图片/视频的位置。
上传图片/视频文件用的是Filezilla。
https://cloud.videojj.com/help/docs/data_manage.html#filezilla
weight后的权重文件,本实验中分别试了yolov3.pt、yolov3-spp.pt、yolov3-tiny.py。
运行结果会保存在当前运行目录下,的/runs/detect文件夹内,会提示如下。
Results saved to runs/detect/exp6
Done. (22.975s)
结果
以下图一是用yolov3.pt的权重文件运行的;图二是用yolov3-spp.pt的权重文件运行的。
以下图1是用yolov3.pt文件,运行检测一个综艺的片段。如图领带的识别效果较好。
以下图2,用yolov3-tiny.pt文件进行检测的话,运行结果的标签则只有序号。
具体想要对比更多的权重文件的效果,可以自行部署测试一下。
以下运行的视频来源于广州新闻的某片段。
以下截图的原视频源自网络,就是很多狗狗在雪里一跳一跳把头埋雪里的视频。