點擊上方「CVer」,選擇加"星標"置頂
重磅乾貨,第一時間送達
前言
去年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
支持的模型:
基於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喜歡這樣的"開源"系列,請給這篇文章點個"贊"和"在看",如果點擊"在看"的人多,其它CV方向的"開源"系列也會儘快推出!
重磅!CVer-目標檢測 微信交流群已成立
掃碼添加CVer助手,可申請加入CVer-目標檢測 微信交流群,目前已匯集4100人!涵蓋2D/3D目標檢測、小目標檢測、遙感目標檢測等。互相交流,一起進步!
同時也可申請加入CVer大群和細分方向技術群,細分方向已涵蓋:目標檢測、圖像分割、目標跟蹤、人臉檢測&識別、OCR、姿態估計、超解析度、SLAM、醫療影像、Re-ID、GAN、NAS、深度估計、自動駕駛、強化學習、車道線檢測、模型剪枝&壓縮、去噪、去霧、去雨、風格遷移、遙感圖像、行為識別、視頻理解、圖像融合、圖像檢索、論文投稿&交流、PyTorch和TensorFlow等群。
一定要備註:研究方向+地點+學校/公司+暱稱(如目標檢測+上海+上交+卡卡),根據格式備註,可更快被通過且邀請進群
▲長按加群
▲長按關注我們
整理不易,請給CVer點讚和在看!