5.8 CV Toolset
本小节主要介绍CV 行业的一些矢量工具的包,深入了解计算机视觉的相关领域的知识
Last updated
本小节主要介绍CV 行业的一些矢量工具的包,深入了解计算机视觉的相关领域的知识
Last updated
最近几年深度学习大火,AI渗透各个行业领域,也涌现了大批AI从业者。今天要讲的是CV方向的各种工具包,这类工具包一出,对于项目需求,扔点数据进去,也许就是调个库就可以实现,那么CV调参侠也将无用武之地,一方面里面已经涵盖了各种模型,可以大大的提高工作效率,另一方面通过对这些模型的理解,也能够更好的提升自己。
mmdetection是由商汤科技和香港中文大学开源的一个基于Pytorch实现的深度学习目标检测工具箱,这个工具箱非常的强大,支持Faster-RCNN,Mask-RCNN,Fast-RCNN、Cascade-RCNN、SSD等主流的目标检测框架,目前已经更新到3.3版本,支持的主流算法也非常多,是目前最大最全的模型库。
目前官方支持的算法如图所示:
mmdetection的价值不仅在工程上,在学术上很多新开源的高性能、高mAP检测算法都是基于mmdetection编写,例如现阶段目标检测COCO mAP榜一的DetectoRS(mAP 54.7)就是基于 MMDetection 的代码。
Detectron是构建在Caffe2和Python之上计算机视觉库,集成了多项计算机视觉最新成果,一经发布广受好评。去年10月份,Facebook AI研究院又开源了Detectron的升级版,也就是接下来我们要介绍的:Detectron2。
Detectron2是和mmdetection对齐的目标检测工具箱,同样非常强大,集合了很多算法,与mmdetection号称打比赛的两大神器。
Detectron2 是 Facebook AI Research 推出的第二代CV库,它不但进一步集成了最新的目标检测算法,,而且是对先前版本 Detectron 的完全重写,号称目标检测三大开源神器之一(Detectron2/mmDetection/SimpleDet)。源自最初的maskrcnn-benchmark库。
与 mmdetection 、TensorFlow Object Detection API一样,Detectron2 也是通过配置文件来设置各种参数,从而实现当前最优的目标检测效果。它支持与目标检测有关的一系列任务。和之前的 Detectron 相比,它也支持目标检测、实例分割、人体姿态估计等任务。此外,Detectron2 还支持语义分割和全景分割。
Detectron2包含了一代可用的所有模型,并加入了一些新模型,现支持的模型主要有:
Faster R-CNN
Mask R-CNN
RetinaNet
DensePose
Cascade R-NN
Panoptic FPN
TensorMask
SimpleDet是由图森未来开源的一套简单通用的目标检测与物体识别框架,整套框架基于MXNet的原生API完成。对于学习MXNet或者对其感兴趣的可以来使用SimpleDet。
同样的,SimpleDet和前面两个开源工具箱一样,支持众多的目标检测算法,而且提供了很多不同头部的实现和预训练模型,目前支持的算法主要有:
TridentNet
RetinaNet DCNv1/v2
Cascade-RCNN
Mask-RCNN
Faster-RCNN
PaddleDetetion是由百度开源的一款深度学习目标检测框架,代码的编写基于百度自研的深度学习框架Paddle,该开发套件覆盖了主流的目标检测算法并提供丰富的预训练模型。
相比 TensorFlow 或 PyTorch,PaddlePaddle 拥有最大的官方模型库,也就是说飞桨团队会花费大量精力维护这些模型,以保证它们的性能最优、API 最新、易用性最好。
PaddleDetection 的目的是为工业界和学术界提供丰富、易用的目标检测模型。在最近一次更新中,可以看到 PaddleDetection 优化了很多主流模型的性能:对YOLOv3的优化,精度提升4.3%,训练提速40%,推理提速21%;以及加入了此前COCO上最优精度的CBNet等。目前PaddleDetection支持的主流算法模型主要有:
这个工具箱里面实现了很多的语义分割模型,在github上获得了3.2k的Star,并且是基于Pytorch,使用起来也很方便,感兴趣的同学可以去看看。
现支持的模型有:
chineseocr_lite是一个超轻量级中文ocr开源项目,代码基于pytorch编写,支持竖排文字识别,支持 ncnn 推理,psenet (8.5M) + crnn (6.3M) + anglenet (1.5M) 总模型仅17M。目前,这个开源项目已在GitHub上标星4800+。
该 chineseocr_lite 项目表示,相比chineseocr(基于 YOLO V3 与 CRNN 实现中文自然场景文字检测及识别),它采用了轻量级的主干网络 PSENet,轻量级的 CRNN 模型和行文本方向分类网络 AngleNet。尽管要实现多种能力,但 chineseocr_lite 总体模型只有 17M。
chineseocr_lite虽然小,但是能够实现的功能却非常强大:
提供轻量的 backone 检测模型 psenet(8.5M),crnn_lstm_lite (9.5M) 和行文本方向分类网络(1.5M); 任意方向文字检测,识别时判断行文本方向; crnn\crnn_lite lstm\dense识别(ocr-dense和ocr-lstm是搬运chineseocr 的); 支持竖排文本识别; ncnn实现psenet(未实现核扩展); ncnn实现crnn_dense(改变了全连接为conv1x1); ncnn实现shuuflenev2角度分类网络; ncnn实现ocr整个流程; 最近,项目作者对更新了可实现的功能。
实现的crnn_lstm推理; 升级crnn_lite_lstm_dw.pth模型crnn_lite_lstm_dw_v2.pth , 精度更高; 提供竖排文字样例以及字体库(旋转90度的字体)。 这款轻量型的OCR开源项目,无疑是为OCR从业者们提供了便利,如果你是刚入行的OCR算法工程师或者准备入行,可以花点时间好好研究一下。
PaddleOCR是今日百度基于Paddle框架开源的一款超轻量型的OCR工具箱.模型由1个文本检测模型(4.1M)和1个文本识别模型(4.5M)组成,共8.6M。
其中,文本检测模型使用的2020年发表于AAAI上的DB算法,文本识别模型使用经典的CRNN算法。鉴于MobileNetV3在端侧系列模型中的优越表现,两个模型均选择使用MobileNetV3作为骨干网络,可将模型大小初步减少90%以上。
实例分割大家应该都不陌生了,大名鼎鼎的mask-RCNN,在上诉的每个检测框架里,都不敢缺少它,当然除了mask-RCNN以外,还有很多其他的实例分割算法,例如:YOLCAT、PolarMask、SOLO、BlendMask等。
其实在实例分割领域,现阶段使用最多的还是mask-rcnn,如果在项目中要用到,可以直接在上诉的几个检测工具箱中直接使用,但是如果不局限于使用mask-rcnn,可以考虑一下这个实例分割工具箱:AdelaiDet。
AdelaiDet是在Detectron2基础之上编写的实例分割工具箱,目前实现了包括业内最好的实例分割模型SOLOv2、BlendMask等。作者维护的也比较频繁,感兴趣的可以研究研究。
目前该工具箱内支持的模型有:
FCOS
BlendMask
MEInst
ABCNet
SOLO to be released (mmdet version)
SOLOv2 to be released (mmdet version)
DirectPose to be released
CondInst to be released
FastReID是最近由京东研究院开源的重识别框架,是一个 SOTA 级的 ReID 方法集合工具箱,同时面向学术界和工业界落地,此外该团队还发布了在多个不同任务、多种数据集上的SOTA模型。
FastReID 参照了 Detectron2 的整体概念和设计哲学,设计成了一个高度模块化和可拓展的架构,从而可以让研究人员快速的实现新的 idea ;更重要的是,该框架友好的管理系统配置和工程部署函数可以让工程师快速的部署它。作者提供了 PyTorch 模型转 Caffe、ONNX 和 TensorRT 的例子和脚本。
另外,作者宣称这是迄今为止最完整的、最高性能的ReID工具箱,支持单卡和多GPU训练,使用简单方便。
FastReID中实现的四大ReID任务:
行人重识别
部分区域的行人重识别
跨域的行人重识别
车辆的重识别
不仅限于行人,也可以检索车辆等其他物体。
这个基于pytorch的GAN大礼包,是由32种热门GAN的开源代码组成,每个GAN代码独立分开,非常简洁,而且作者还附带了各种GAN的论文地址,目前该项目在github上已经获得了超过6400+的标星。
实现的32种GAN模型有:
接下来介绍的这个Keras版本的GAN与上面的一样,同样是集合了众多的GAN模型与一身,并且得到Keras亲爸爸François Chollet在Twitter上的热情推荐,在github上面也获得了超过7000+的标星。
同样的,里面实现了21个GAN模型,与之前的pytorch版本有些重合。