前言:
此次环境搭建使用的硬件平台是一台微星笔记本,运行速度足够学习使用。本文介绍环境搭建及代码运行演示,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
废话不多说,开始吧!!
一. 虚拟环境配置
1.创建一个基于python3的环境
conda create -n youlact python=3.6
2.安装Pytorch 1.0.1或更高版本和TorchVision.
在Pytorch官方网站根据实际环境获取安装代码:https://pytorch.org/get-started/locally/
然后在终端输入:
pip3 install torch torchvision
3.安装其他的包和模块
注意:Cython 需要安装在 pycocotools之前!
pip install cython
pip install opencv-python pillow pycocotools matplotlib
4.我的yolact环境如下
二. clone代码然后进入文件夹
git clone https://github.com/dbolya/yolact.git
cd yolact
三.下载数据集和数据标签
有以下两种途径下载数据集:
1 .手动下载
COCO数据集官网:http://cocodataset.org/#download
下载:2017 Train images [118K/18GB]
2017 Train/Val annotations [241MB]
2014 Train/Val annotations [241MB]
将三个图像压缩包解压至
/media/qrt/data/yolact/yolact-master/data/coco/images
注意:将解压出的图片直接放入image文件夹
同理,将三个标签解压然后直接放入annotations文件夹
/media/qrt/data/yolact/yolact-master/data/coco/annotations
2. 使用脚本下载
如果你的实验室能够连接上稳定的外网,那么可以直接使用源码自带的脚本下载数据集:
进入到yolact-master文件夹然后打开终端:
运行COCO.sh下载COCO数据和2014/2017标签
sh data/scripts/COCO.sh
运行COCO_test.sh下载测试数据集和标签
sh data/scripts/COCO_test.sh
四.训练
参考官方说明:
(1)下载预训练权重放至根目录里的weights文件夹下
- For Resnet101, download
resnet101_reducedfc.pth
from here. - For Resnet50, download
resnet50-19c8e357.pth
from here. - For Darknet53, download
darknet53.pth
from here.
(2)在训练过程中按ctrl+c能够保存当前训练权重并保存在weight文件夹里。命名为:<config>_<epoch>_<iter>.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:上面两张小龙虾测试图片来自网络,由于我制作的数据集数量过少仅供演示使用,识别精度不高,敬请谅解。
最后:coco数据集的制作和训练教程将会在下篇博客展示,敬请期待!