此次环境搭建使用的硬件平台是一台微星笔记本,运行速度足够学习使用。本文介绍环境搭建及代码运行演示,coco格式数据集的制作及训练会在下篇博客介绍。
yolact论文链接:https://arxiv.org/abs/1904.02689
yolact论文翻译:https://www.jianshu.com/p/01f6432de5c4
项目地址:https://github.com/dbolya/yolact
本实验平台软硬件环境参数:
gpu:GTX 1060
cpu:intel i7-7700HQ
内存:16GB
Ubuntu版本:18.04
NVIDIA驱动版本:390.116
python:3.6.8
cuda版本:cuda_9.0.176_384.81_linux
cudnn版本:cudnn-9.0-linux-x64-v7.1
opencv : 4.1.0.25
pytorch:1.1.0
Cython:0.29.10
显卡驱动及cuda和cudnn的安装教程请参考我的上篇博客:https://blog.csdn.net/weixin_41851439/article/details/88712465
废话不多说,开始吧!!
conda create -n youlact python=3.6
在Pytorch官方网站根据实际环境获取安装代码:https://pytorch.org/get-started/locally/
然后在终端输入:
pip3 install torch torchvision
注意:Cython 需要安装在 pycocotools之前!
pip install cython
pip install opencv-python pillow pycocotools matplotlib
git clone https://github.com/dbolya/yolact.git
cd yolact
COCO数据集官网:http://cocodataset.org/#download
下载:2017 Train images [118K/18GB]
2017 Val images [5K/1GB]
2017 Test images [41K/6GB]
2017 Train/Val annotations [241MB]
2014 Train/Val annotations [241MB]
2017 Testing Image info [1MB]
将三个图像压缩包解压至
/media/qrt/data/yolact/yolact-master/data/coco/images
注意:将解压出的图片直接放入image文件夹
同理,将三个标签解压然后直接放入annotations文件夹
/media/qrt/data/yolact/yolact-master/data/coco/annotations
如果你的实验室能够连接上稳定的外网,那么可以直接使用源码自带的脚本下载数据集:
进入到yolact-master文件夹然后打开终端:
运行COCO.sh下载COCO数据和2014/2017标签
sh data/scripts/COCO.sh
运行COCO_test.sh下载测试数据集和标签
sh data/scripts/COCO_test.sh
参考官方说明:
resnet101_reducedfc.pth
from here.resnet50-19c8e357.pth
from here.darknet53.pth
from here.__.pth
(3)训练
使用默认为8的batch size训练:
python train.py --config=yolact_base_config
根据根据实际情况可以适当调节batch size的大小,如果显卡性能低可以减小batch size大小:
python train.py --config=yolact_base_config --batch_size=5
从中断的权重继续训练:
python train.py --config=yolact_base_config --resume=weights/yolact_base_10_32100.pth --start_iter=-1
帮助:
python train.py --help
可以下载官方给出的权重测试。我使用的是:yolact_base_54_800000.pth
Image Size | Backbone | FPS | mAP | Weights | |
---|---|---|---|---|---|
550 | Resnet50-FPN | 42.5 | 28.2 | yolact_resnet50_54_800000.pth | Mirror |
550 | Darknet53-FPN | 40.0 | 28.7 | yolact_darknet53_54_800000.pth | Mirror |
550 | Resnet101-FPN | 33.0 | 29.8 | yolact_base_54_800000.pth | Mirror |
700 | Resnet101-FPN | 23.6 | 31.2 | yolact_im700_54_800000.pth | Mirror |
下载权重放至 ./weights
文件夹。
测试图片(输入图片的绝对路径):
python eval.py --trained_model=weights/yolact_base_54_800000.pth --score_threshold=0.3 --top_k=100 --image=my_image.png
测试视频:
python eval.py --trained_model=weights/yolact_base_54_800000.pth --score_threshold=0.3 --top_k=100 --video_multiframe=2 --video=my_video.mp4
其它指令可以参考官方文档。
附上测试图片:
ps:上面两张小龙虾测试图片来自网络,由于我制作的数据集数量过少仅供演示使用,识别精度不高,敬请谅解。