ChainerCV: a Library for Deep Learning in Computer Vision
ChainerCV is a collection of tools to train and run neural networks for computer vision tasks using Chainer.
You can find the documentation here.
Supported tasks:
- Image Classification (ResNet, SENet, VGG)
- Object Detection (tutorial, Faster R-CNN, FPN, SSD, YOLO, Light-Head R-CNN)
- Semantic Segmentation (SegNet, PSPNet, DeepLab v3+)
- Instance Segmentation (FCIS, Mask R-CNN)
Guiding Principles
ChainerCV is developed under the following three guiding principles.
- Ease of Use -- Implementations of computer vision networks with a cohesive and simple interface.
- Reproducibility -- Training scripts that are perfect for being used as reference implementations.
- Compositionality -- Tools such as data loaders and evaluation scripts that have common API.
Installation
$ pip install -U numpy
$ pip install chainercv
The instruction on installation using Anaconda is here (recommended).
Requirements
- Chainer and its dependencies
- Pillow
- Cython (Build requirements)
For additional features
- Matplotlib
- OpenCV
- SciPy
- mpi4py
- pycocotools
Environments under Python 2.7.12 and 3.6.0 are tested.
- The master branch is designed to work on Chainer v6 (the stable version) and v7 (the development version).
- The following branches are kept for the previous version of Chainer. Note that these branches are unmaintained.
0.4.11
(for Chainer v1). It can be installed bypip install chainercv==0.4.11
.0.7
(for Chainer v2). It can be installed bypip install chainercv==0.7
.0.8
(for Chainer v3). It can be installed bypip install chainercv==0.8
.0.10
(for Chainer v4). It can be installed bypip install chainercv==0.10
.0.12
(for Chainer v5). It can be installed bypip install chainercv==0.12
.0.13
(for Chainer v6). It can be installed bypip install chainercv==0.13
.
Data Conventions
- Image
- The order of color channel is RGB.
- Shape is CHW (i.e.
(channel, height, width)
). - The range of values is
[0, 255]
. - Size is represented by row-column order (i.e.
(height, width)
).
- Bounding Boxes
- Shape is
(R, 4)
. - Coordinates are ordered as
(y_min, x_min, y_max, x_max)
. The order is the opposite of OpenCV.
- Shape is
- Semantic Segmentation Image
- Shape is
(height, width)
. - The value is class id, which is in range
[0, n_class - 1]
.
- Shape is
Sample Visualization
These are the outputs of the detection models supported by ChainerCV.
Citation
If ChainerCV helps your research, please cite the paper for ACM Multimedia Open Source Software Competition. Here is a BibTeX entry:
@inproceedings{ChainerCV2017,
author = {Niitani, Yusuke and Ogawa, Toru and Saito, Shunta and Saito, Masaki},
title = {ChainerCV: a Library for Deep Learning in Computer Vision},
booktitle = {ACM Multimedia},
year = {2017},
}
The preprint can be found in arXiv: https://arxiv.org/abs/1708.08169