阿里又来卷了 ,说又比别人厉害了 ,还没测试哦, 只是搬运工来讨论哦
说是 YoloX大升级 新框架,超越Yolov6和PPYoloE
代码地址: https://github. com/alibaba/EasyCV
EasyCV是阿里巴巴开源的基于Pytorch,以自监督学习和Transformer技术为核心的 all-in-one 视觉算法建模工具。EasyCV在阿里巴巴集团内支撑了搜索、淘系、优酷、飞猪等多个BU业务,同时也在阿里云上服务了若干企业客户,通过平台化组件的形式,满足客户自定定制化模型、解决业务问题的需求。
此外,基于PAI团队多年积累的深度学习训练、推理加速技术,在EasyCV中也集成了IO优化,模型训练加速、量化裁剪等功能,在性能上具备自己的优势。基于阿里云的PAI产品生态,用户可以方便地进行模型管理、在线服务部署、大规模离线推理任务。
将YOLO检测器切换为无锚方式,并采用其他先进的检测技术,即解耦头和领先的标签分配策略SimOTA,以在大范围的模型中实现最先进的结果:对于只有0.91M参数和1.08GFLOPs的YOLO Nano,我们在COCO上获得25.3%的AP,超过NanoDet 1.8%的AP;对于工业上使用最广泛的探测器之一YOLOv3,我们在COCO上将其AP提高到47.3%,比当前的最佳做法高出3.0%AP;对于与YOLOv4 CSP、YOLOv5-L参数量大致相同的YOLOX-L,我们在COCO上以68.9 FPS的速度在Tesla V100上实现了50.0%的AP,超过了YOLOv5-L 1.8%的AP。
考虑到EasyCV的一些特性:
- 丰富完善的自监督算法体系:囊括业界有代表性的图像自监督算法SimCLR, MoCO, Swav, Moby, DINO等,以及基于mask图像预训练方法MAE,同时提供了详细的benchmark工具及复现结果。
- 丰富的预训练模型库:提供丰富的预训练模型,在以transformer模型为主的基础上,也包含了主流的CNN 模型, 支持ImageNet预训练和自监督预训练。兼容PytorchImageModels支持更为丰富的视觉Transformer backbone。
- 易用性和可扩展性 :支持配置方式、API调用方式进行训练、评估、模型导出;框架采用主流的模块化设计,灵活可扩展。
- 高性能 :支持多机多卡训练和评估,fp16训练加速。针对自监督场景数据量大的特点,利用DALI和TFRecord文件进行IO方面的加速。对接阿里云机器学习PAI平台训练加速、模型推理优化。
研究者基于EasyCV引入了YoloX-PAI,各种实验得出了影响YoloX的元素,并且提供了PAI-Blade,一种简单的实现方式,用于加速基于BladeDISC和TensorRT的推理过程。
02
新框架
主干网络
新框架的主干网络还是引用Yolov6的,也是使用RepVGG-based,一个3x3卷积block代替multi-branch structure,有利于节约推理时间,并且提升了检测结果。
Neck
研究者使用了两种方式来提升Neck的性能,主要为:1)用于特征增强的自适应空间特征融合(ASFF)以及优化版本(ASFF-Sim);2)GSConv,一种轻量级的卷积块,主要为了降低计算成本。
Head
研究者主要通过注意力机制来增强检测头,借鉴了Transform框架中的机制,主要为了协调物体检测和分类两个分支的任务,上图已经展示了检测头,使用stem模块来加内存通道数,然后有一组类间卷积层来获取类间特征图,然后根据不同任务自适应获取超参数。
PAI-Blade
通过统一的流程在不同框架上自动完成多样化的优化策略
- Performance: 优异的执行性能仍然是我们考虑的最主要问题;没有性能的优化工具,不拥有价值。
- Generality: 广泛的通用性能够适配更多场景,同时提供更多的开发和部署自由。
- 支持 TensorFlow/PyTorch/ONNX
- 支持多样的加速硬件,包括 GPU/CPU/DCU 等等
- 支持不同的加速方案,BladeDISC/TensorRT/TVM/MNN 等等
- Usability and Robustness: 易用性和鲁棒性能够降低用户的学习成本在生产系统中集成的成本。
- 统一的简洁的 API
- 最大程度的自动化
- 轻量的集成负担(仅需要几行代码)
PAI-Blade 和以往其他的工具主要的不同点在于它不仅仅考虑性能,而是更加强调性能、通用性、易用性与鲁棒性的协同设计。
03
实验