GluonCV 0.3 版提供大量超越原论文精度的模型。0.4 版在此基础上引入了:
新应用:全新的人体关键点检测模型
更快的部署:新增 Int8 部署和经济适用型的删减版 ResNet(Pruned ResNet)系列
更强的预训练模型:ResNext, SE_ResNext 模型系列(各种 80%~81+% 准确度的 ImageNet 预训练模型)
支持 FPN 的 Faster/Mask-RCNN 系列
同时 GluonCV 现有模块的易用性和稳定性也得到了极大提升。
人体关键点检测
人体关键点检测用于描述人体的姿态进而分析人体行为,是非常基础的 CV 应用。GluonCV 的人体关键点检测是一个完整独立的应用系列,不仅包含模型定义,训练脚本,损失和评估函数,同时还包括预训练模型参数和一系列使用教程。
部分小伙伴们春游的合照来镇场:
![]()
还有各种帅气的 pose:
![]()
预训练的模型具体性能可以参考下表所示:
![]()
可以看到我们提供的模型都可以达到极高的精度。
INT8 加速部署
我们与 Intel 深度合作推出基于 Intel Deep Learning Boost(VNNI)的 Int8 quantization,在新一代 Intel CPU 的加持下,可以取得不俗的加速比。下图是基于 AWS EC2 C5 实例的初步结果:
![]()
如何在保证准确度的情况下尽量使用较少的比特是一个相对复杂的过程,不过好在 0.4 版本目前已经内置了部分优化完的 INT8 网络,开盖即食(比如 model_zoo 中resnet50_v1_int8
就是resnet50_v1
INT8 版本):
![]()
*nms_thresh=0.45, nms_topk=200
之后的版本我们会引入 Gluon 接口的 INT8 转换函数,以方便部署各种模型(需要注意的是只有较新的 Intel CPU 能取得有效的加速,之后我们会有更详细的针对新硬件的博客)。
删减版 ResNet
我们知道 CNN 的结构对于很多常见的任务都是高度冗余的,通过对预训练网络进行分析可以得到网络内部冗余度的权重。 之后我们可以删改网络的参数使得推导可以加速几倍到几十倍的同时不显著降低准确度。
道理说起来简单,也有大量的现成研究成果,不过 GluonCV 0.4 版把易用性做到了极致,下面表格里就是 0.4 版内置的删减版 ResNet 和他们的相对性能:
![]()
比如说resnet50_v1d_0.37
表示一个权重是resnet50_v1d
约 0.37 倍的模型,5.01x
表示它的推导速度比原模型快约 5 倍。 更直观的对比可以参考下图:
![]()
更多更有趣的 GAN
超分辨率 GAN(SRGAN)
![]()
以假乱真的 CycleGAN
![]()
支持 FPN 的 Faster/Mask-RCNN
新增 FPN 支持的 Faster/Mask-RCNN,依然是 SoTA 的性能
![]()
易用性改进和 Bug 修复
Model Zoo
里的 ResNet 都支持 Synchronized BatchNorm
预训练完的目标检测模型都支持直接重置类别reset_class
,而且设置reuse_weights
可以重用原本存在的类别。参考教程,我们可以无需任何训练就得到一个行人检测模型。
修复一些 DataLoader
的问题(mxnet>=1.4.0)
修复一些语义分隔模型无法 hybridize
的问题
修复一些训练中随机 NaN
的问题(需要 mxnet nightly)
修复一些 GPU 上 NMS 很慢的问题(需要 mxnet nightly)
0.3 版训练技巧大公开
在 0.3 版中使用的训练技巧已经正式公开,想了解 GluonCV 超强预训练模型的小伙伴可以参考:
Bag of Tricks for Image Classification with Convolutional Neural Networks https://arxiv.org/abs/1812.01187
Bag of Freebies for Training Object Detection Neural Networks https://arxiv.org/abs/1902.04103
鸣谢
感谢所有在新版本中的贡献者:@xinyu-intel @hetong007 @zhreshold @khetan2 @chinakook @Jerryzcn @husonchen @zhanghang1989@sufeidechabei @brettkoonce @mli @lgov @djl11 @YutingZhang @mzchtx @sharmalakshay93 @astonzhang @LcDog @zx-code123@adursun @ifeherva @ZhennanQin @islinwh @jianantian @feynmanliang @ivechan @eric-haibin-lin
参考文献
[1] He T, Xie J, Zhang Z, et al. Bag of tricks for image classification with convolutional neural networks[J]. arXiv preprint arXiv:1812.01187, 2018.
[2] Zhang Z, He T, Zhang H, et al. Bag of Freebies for Training Object Detection Neural Networks[J]. arXiv preprint arXiv:1902.04103, 2019.
[3] Intel Deep Learning Boost. https://www.intel.ai/intel-deep-learning-boost
[4] Zhu J Y, Park T, Isola P, et al. Unpaired image-to-image translation using cycle-consistent adversarial networks[C]//Proceedings of the IEEE International Conference on Computer Vision. 2017: 2223-2232.
[5] Ledig, Christian, et al. “Photo-realistic single image super-resolution using a generative adversarial network.” Proceedings of the IEEE conference on computer vision and pattern recognition. 2017.