专栏首页CVer目标检测四大开源神器:Detectron2/mmDetectron/darknet/SimpleDet

目标检测四大开源神器:Detectron2/mmDetectron/darknet/SimpleDet

前言

去年Amusi 盘点过:目标检测三大开源神器:Detectron2/mmDetectron/SimpleDet。大家反映内容很棒,不少同学开始用起来这些目标检测工具,不管用于发Paper还是做项目。

如今过去半年多,目标检测领域发展迅速,Amusi 再次系统调研现在开源的目标检测神器。同时也有很多同学开始入坑目标检测,希望此文可以有所帮助,避免踩坑!

本文介绍目标检测(Object Detection)四个最为知名、关注度最高的开源神器,其实也可以称为工具箱(Toolkit),再俗气一点,就是"造轮子"神器。不仅会介绍这些神器的特点,还会增加新的内容:基于神器开发的新开源项目(这部分也可以说明该神器的认可度)。

用上好的神器,不仅可以快速实现你的idea,还可以帮助你提升coding能力。精读优质的代码(风格),长远看是非常有意义的。如下排名不分先后:

Detectron2

维护团队:Facebook

star数:11616

所属框架:PyTorch

https://github.com/facebookresearch/detectron2

Detectron2 前身就是鼎鼎大名的 Detectron,其实Detectron可以说是Facebook第一代检测工具箱,目前在github上获得 23.5k star!

https://github.com/facebookresearch/Detectron

但由于PyTorch版本升级等问题,Detectron目前已停止维护(弃用)。

其实在 Detectron向 Detectron2过渡期间,Facebook Research 还开源了一个知名的项目:maskrcnn-benchmark,目前已获得 7.7 k star!

https://github.com/facebookresearch/maskrcnn-benchmark

听名字应该就知道maskrcnn-benchmark主要是做实例分割和目标检测的,该项目也主要提供了Faster R-CNN和Mask R-CNN算法。

但同样由于PyTorch版本升级等问题,maskrcnn-benchmark目前已停止维护(弃用)。于是 maskrcnn-benchmark 这 7.7 k 的项目就此"搁浅"了。

话题说回主人公:Detectron2(新一代目标检测和分割框架)

Detectron2 不仅支持 Detectron已有的目标检测、实例分割、姿态估计等任务,还支持语义分割和全景分割。新增了Cascade R-CNN,Panoptic FPN和TensorMask新模型。

基于Detectron2二次开发的开源项目

AdelaiDet:实例级识别任务开源工具箱

https://github.com/aim-uofa/AdelaiDet

这个项目后面 Amusi 会单独写一篇文章来介绍,AdelaiDet 主要是阿德莱德大学沈春华团队维护的项目,涉及目标检测、实例分割、文本检测等方向。比如包含了SOLOv1-v2、FCOS、BlendMask、CondInst等工作。

像最近 CVPR 2020、ECCV 2020上有不少好的工作也都是基于 Detectron2开发的,比如DETR、CenterMask:

https://github.com/facebookresearch/detr

https://github.com/youngwanLEE/centermask2

https://github.com/youngwanLEE/vovnet-detectron2

https://github.com/shenyunhang/NA-fWebSOD/

mmDetection

维护团队:香港中文大学-商汤联合实验室

star数:10769

所属框架:PyTorch

https://github.com/open-mmlab/mmdetection

mmDetection 是个非常强大的目标检测工具箱,也是基于PyTorch实现。Amusi 个人觉得mmDetection可以称为目标检测方向的"国产之光"开源项目!

mmDetection包含模型非常非常多,部分内容如下(不要被吓到):

支持的backbones:

  • ResNet
  • ResNeXt
  • VGG
  • HRNet
  • RegNet
  • Res2Net

支持的模型:

  • RPN
  • Fast R-CNN
  • Faster R-CNN
  • Mask R-CNN
  • Cascade R-CNN
  • Cascade Mask R-CNN
  • SSD
  • RetinaNet
  • GHM
  • Mask Scoring R-CNN
  • Double-Head R-CNN
  • Hybrid Task Cascade
  • Libra R-CNN
  • Guided Anchoring
  • FCOS
  • RepPoints
  • Foveabox
  • FreeAnchor
  • NAS-FPN
  • ATSS
  • FSAF
  • PAFPN
  • Dynamic R-CNN
  • PointRend
  • CARAFE
  • DCNv2
  • Group Normalization
  • Weight Standardization
  • OHEM
  • Soft-NMS
  • Generalized Attention
  • GCNet
  • Mixed Precision (FP16) Training
  • InstaBoost
  • GRoIE
  • DetectoRS
  • Generalized Focal Loss

基于mmdetection二次开发的开源项目

基于mmdetection 开发的开源项目特别特别多,比如最近CVPR 2020上很多检测工作就是基于此开发的。这里就不一一介绍,简单列几个较为知名的:

https://github.com/Gus-Guo/AugFPN

https://github.com/FishYuLi/BalancedGroupSoftmax

https://github.com/JialeCao001/D2Det

https://github.com/caiqi/sample-weighting-network

https://github.com/jshilong/SEPC

https://github.com/Sense-X/TSD

https://github.com/ggjy/HitDet.pytorch

SimpleDet

维护团队:图森未来(TuSimple)

star数:2691

所属框架:MXNet

https://github.com/TuSimple/simpledet

SimpleDet 是一套简单且多功能的目标检测与实例分割的框架。就这么说吧,如果你是用MXNet来开发检测项目,那么直接用SimpleDet就行。

SimpleDet 包含的库也相当丰富,如:Faster R-CNN,Mask R-CNN,Cascade R-CNN,RetinaNet,DCNv1/v2,TridentNet,NASFPN , EfficientNet, FOCS,FreeAnchor,RepPoints,和SEPC等

SimpleDet 更新频率也相当快,官网给出的更新时间表如下:

darknet

维护团队:AlexeyAB(个人开发者)

star数:11667

所属框架:darknet(基于C语言编写)

https://github.com/AlexeyAB/darknet

说起 darknet 可能有些人并不熟悉,但直接说出它的目标检测真身:YOLO,很多人就知道了。darknet 本身是 YOLO系列中著名的backbone,然后YOLO项目一直放在darknet中。

本文介绍的darknet并非YOLOv1-v3作者(Joseph Redmon)的darknet,而是YOLOv4作者(AlexeyAB)的darknet,因为Joseph Redmon不再继续维护darknet。

值得提一下,本文介绍的darknet的github star数是11667!这个数量要高于上面介绍的Detectron2、mmDetection和SimpleDet。而且这三个项目的commits数量全部加起来都比不过darknet。

darknet中包含的目标检测模型相对上面三大神器要少很多,但个个都是扛把子的,比如YOLO、YOLOv2、YOLOv3和YOLOv4

如果你想用C/C++来开发目标检测模型,那么darknet是最适合你的神器。

总结

1. 如果你想用PyTorch开发检测项目,则推荐Detectron2、mmDetection;

2. 如果你想用MXNet开发检测项目,则推荐SimpleDet;

3. 如果你想用C/C++开发检测项目,则推荐darknet;

4. 如果你想用YOLO,则可以用darknet,也可以上github搜一下其他框架复现的版本。

本文分享自微信公众号 - CVer(CVerNews),作者:Amusi

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-07-18

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • ECCV 2020 放榜!一文看尽10篇论文的开源项目(检测/GAN/SR等方向)

    ECCV 2020 刚刚公布获奖结果!先恭喜各位论文被收录的同学。ECCV 2020 有效投稿数为5025,最终收录1361篇论文,录取率是27%。其中104篇...

    Amusi
  • YOLOv3最全复现代码合集(含PyTorch/TensorFlow和Keras等)

    2019年3月23日,CVer推文:重磅!YOLOv3最全复现代码合集(含TensorFlow/PyTorch和Keras等)

    Amusi
  • 8篇CVPR2019论文开源合集(含3D目标检测/目标跟踪/语义分割和实例分割)

    本文将分享收集到的CVPR 2019 已开源paper,并将内容同步上传到 CVPR2019-Code上。如果想第一时间了解开源代码,那么大家 star/for...

    Amusi
  • COS Android SDK DEMO搭建实践

    **在实际的开发环境过程中,我们经常会遇到一些开发环境搭建的困扰,本篇介绍一下Android开发环境以及结合腾讯云COS产品的Android SDK的使用,仅限...

    孙伟
  • SAP提供给大众用来做练习用的gateway系统

    Jerry Wang
  • Attention 待更新

    注意力机制可以描述为一个函数,这个函数将query和一组key-value对映射成一个输出。

    MachineLP
  • Aliyun Centos离线迁移到腾讯云cvm

    1.离线迁移需要借助对象存储(COS)的支持,请先确保您所在地域在 COS 支持范围内,详见如下文档:

    赵智勇
  • Aliyun Ubuntu离线迁移到腾讯云

    1.离线迁移需要借助对象存储(COS)的支持,请先确保您所在地域在 COS 支持范围内,详见如下文档:

    赵智勇
  • K8S 生态周报| K8S 移除对 basic auth的支持

    「K8S 生态周报」内容主要包含我所接触到的 K8S 生态相关的每周值得推荐的一些信息。欢迎订阅知乎专栏「k8s 生态」 ( https://zhuanlan....

    Jintao Zhang
  • 使用 dotnet-monitor 分析.NET 应用程序

    dotnet-monitor 是 .NET Core 命令行接口 (CLI) 工具, 可以很方便的在dotnet环境中分析我们的应用程序,需要注意的是,目前它还...

    全球技术精选

扫码关注云+社区

领取腾讯云代金券