选自GitHub
作者:二井谷勇佑(Yusuke Niitani)
机器之心编译
参与:黄小天、蒋思源
近日,Preferred Networks 通过其研究博客发布了深度学习计算机视觉实用库 ChainerCV,它基于 Chainer,能够简化计算机视觉的训练和应用过程,并含有用于计算机视觉研究的必备工具集。未来,ChainerCV 将会支持分类任务;其论文已被 ACM Multimedia 2017 开源软件竞赛接收,并很快在 arXiv 上开放。
我们发布了 ChainerCV,一个用于计算机视觉的深度学习实用库。这个库旨在通过 Chainer 简易化计算机视觉的训练和深度学习模型应用的过程。它包含计算机视觉模型的高质量实现,以及开展计算机视觉研究的必备工具集。
GitHub 地址:https://github.com/chainer/chainercv
文档:http://chainercv.readthedocs.io/en/stable/
ChainerCV 支持的功能
计算机视觉模型的高质量实现
软件的质量通过文档和测试获得保证。除了那些传统的软件工程实践之外,对于想要尝试新想法的研发人员来说,一个与前沿论文性能一致的训练脚本同样重要。我们在 GitHub 上列举了实现的性能,其评估脚本可用于验证本地计算机上的分数。所有的实现都与原始报告的分数相一致。
我们的实现尽可能忠于参考实现。无论何时进行更改,文档中都会生成一个相应的评论。
当前,ChainerCV 提供了目标检测和语义分割模型(Faster R-CNN、SSD 和 SegNet)的实现。
简单易用的实现
在 ChainerCV 中执行推理非常容易。ChainerCV 具有大量的已训练权重,可在运行时自动从网络上下载,因此用户无需担心下载或者记住已训练权重的文件位置。同样,ChainerCV 提供了简单统一的界面,从而为解决相同任务的不同模型执行推理。例如,Faster R-CNN 和 SSD 都具备一个被称作「预测」的方法,它可以接收图像并返回物体检测的结果。
转换
ChainerCV 还提供了通用函数以在馈送到神经网络之前执行数据预处理。用户可以通过定义函数创建定制化的预处理流程,因此以描述转换输入数据的过程。
计算机视觉的研究工具
ChainerCV 包含了一组指导计算机视觉研究的工具:
为一般视觉数据集(如 PASCAL VOC 任务的目标识别数据集)而构建的数据集加载器
能用于数据预处理/数据增强的转换
可视化
一般度量方法的评估代码
可视化执行模型所得到的推理结果
在上图左侧,我们的物体检测模型推理出一个输出结果。该物体检测是一种带有物体定位的图像识别任务。上图右侧显示了输入图片和输出的语义分割图像。语义分割是一种像素级分类任务,它将整张图片按属性分割为不同的对象。
安装
$ pip install -U numpy
$ pip install chainercv
使用 Anaconda 安装 ChainerCV 的指南:http://chainercv.readthedocs.io/en/stable/#install-guide
环境要求
Chainer 和其依赖项
Pillow
Cython(构建要求)
附加特征
Matplotlib
OpenCV
Python 2.7.12 和 3.6.0 下的环境已经获得测试。
主分支在稳定版(v2)和开发版(v3)都能运行
对于使用 Chainer v1 的用户,请使用 0.4.11 版本,我们可以使用命令行「pip install chainercv==0.4.11」安装该版本,但是该分支并没有进行维护。
使用 ChainerCV 的注意事项
计算机视觉上的数据很多都有不同的表征标准,例如色彩通道规则等。所以用户需要了解本软件库默认采用的规范就很重要了。ChainerCV 使用的全部约定可以在 Github 中的 README 页面中找到。
ChainerCV 未来的计划
计划未来能支持更广泛的任务,很快 ChainerCV 就能支持分类任务了。
计划提供在大数据集上训练的预训练模型,但这在有限的计算力下比较困难或比较耗时。
ChainerCV 的论文已被 ACM Multimedia 2017 开源软件竞赛接收,并很快在 arXiv 上开放。
本文为机器之心编译,转载请联系本公众号获得授权。
✄------------------------------------------------
加入机器之心(全职记者/实习生):hr@jiqizhixin.com
投稿或寻求报道:editor@jiqizhixin.com
广告&商务合作:bd@jiqizhixin.com