Back to Mmdetection

YOLACT

configs/yolact/README.md

3.3.04.5 KB
Original Source

YOLACT

YOLACT: Real-time Instance Segmentation

<!-- [ALGORITHM] -->

Abstract

We present a simple, fully-convolutional model for real-time instance segmentation that achieves 29.8 mAP on MS COCO at 33.5 fps evaluated on a single Titan Xp, which is significantly faster than any previous competitive approach. Moreover, we obtain this result after training on only one GPU. We accomplish this by breaking instance segmentation into two parallel subtasks: (1) generating a set of prototype masks and (2) predicting per-instance mask coefficients. Then we produce instance masks by linearly combining the prototypes with the mask coefficients. We find that because this process doesn't depend on repooling, this approach produces very high-quality masks and exhibits temporal stability for free. Furthermore, we analyze the emergent behavior of our prototypes and show they learn to localize instances on their own in a translation variant manner, despite being fully-convolutional. Finally, we also propose Fast NMS, a drop-in 12 ms faster replacement for standard NMS that only has a marginal performance penalty.

<div align=center> </div>

Introduction

A simple, fully convolutional model for real-time instance segmentation. This is the code for our paper:

<!-- - [YOLACT++: Better Real-time Instance Segmentation](https://arxiv.org/abs/1912.06218) -->

For a real-time demo, check out our ICCV video:

Evaluation

Here are our YOLACT models along with their FPS on a Titan Xp and mAP on COCO's val:

Image SizeGPU x BSBackbone*FPSmAPWeightsConfigsDownload
5501x8Resnet50-FPN42.529.0configmodel
5508x8Resnet50-FPN42.528.4configmodel
5501x8Resnet101-FPN33.530.4configmodel

*Note: The FPS is evaluated by the original implementation. When calculating FPS, only the model inference time is taken into account. Data loading and post-processing operations such as converting masks to RLE code, generating COCO JSON results, image rendering are not included.

Training

All the aforementioned models are trained with a single GPU. It typically takes ~12GB VRAM when using resnet-101 as the backbone. If you want to try multiple GPUs training, you may have to modify the configuration files accordingly, such as adjusting the training schedule and freezing batch norm.

Shell
# Trains using the resnet-101 backbone with a batch size of 8 on a single GPU.
./tools/dist_train.sh configs/yolact/yolact_r101.py 1

Testing

Please refer to mmdetection/docs/getting_started.md.

Citation

If you use YOLACT or this code base in your work, please cite

latex
@inproceedings{yolact-iccv2019,
  author    = {Daniel Bolya and Chong Zhou and Fanyi Xiao and Yong Jae Lee},
  title     = {YOLACT: {Real-time} Instance Segmentation},
  booktitle = {ICCV},
  year      = {2019},
}
<!-- For YOLACT++, please cite ```latex @misc{yolact-plus-arxiv2019, title = {YOLACT++: Better Real-time Instance Segmentation}, author = {Daniel Bolya and Chong Zhou and Fanyi Xiao and Yong Jae Lee}, year = {2019}, eprint = {1912.06218}, archivePrefix = {arXiv}, primaryClass = {cs.CV} } ``` -->