计算机视觉各领域前沿算法积累
目錄
- 一、目標檢測
- 1、SSD
- 2、PaddleDetection
- 3、mmdetection
- 4、mediapipe
- 二、單目標跟蹤
- 1、pytracking
- 2、pysot
- 3、SiamMask
- 4、siammask_e
- 5、AlphaVideo
- 6、Deep-Learning-for-Tracking-and-Detection
- 三、人像檢索
- 1、faiss
- 2、HNSW
- 四、語義分割
- 1、paddleSeg
- 五、文本檢測與識別
- 1、PaddleOCR
- 2、DB
- 3、tr
- 4、charnet
- 5、Vedastr
- 六、人像摳圖
- 1、PortraitNet
- 七、模型壓縮
- 1、TVM
- 2、Glow
- 3、Tengine
- 八、人體位姿估計
- 1、openpose
- 2、PPN
- 3、Lightweight OpenPose
- 九、車牌識別
- 1、openalpr
- 2、mobile-lpr
- 十、目標分類
- 1、PaddleClas
- 十一、人臉網格化
- 1、PRNet
- 2、mediapipe
- 十二、多目標跟蹤
- 1、Towards-Realtime-MOT
- 2、CenterTrack
- 3、FairMOT
- 十三、人像摳圖
- 1、Background-Matting
- 十四、3D檢測
- 1、OpenPCDet
- 十五、Re-ID
- 1、Torchreid
- 2、fast-reid
- 十六、車道線檢測
- 1、Ultra-Fast-Lane-Detection
- 十七、人體位姿跟蹤
- 1、lighttrack
- 2、PoseFlow
- 3、DetectAndTrack
- 注意事項
一、目標檢測
1、SSD
??github鏈接。作者復現的SSD算法,該項目很容易上手,通過修改一些參數就可以很快獲得一個性能優異的檢測模型。
2、PaddleDetection
??github鏈接。飛槳推出的PaddleDetection是端到端目標檢測開發套件,旨在幫助開發者更快更好地完成檢測模型的訓練、精度速度優化到部署全流程。PaddleDetection以模塊化的設計實現了多種主流目標檢測算法,并且提供了豐富的數據增強、網絡組件、損失函數等模塊,集成了模型壓縮和跨平臺高性能部署能力。目前基于PaddleDetection已經完成落地的項目涉及工業質檢、遙感圖像檢測、無人巡檢等多個領域。
- 模型豐富:PaddleDetection提供了豐富的模型,包含目標檢測、實例分割、人臉檢測等100+個預訓練模型,涵蓋多種數據集競賽冠軍方案、適合云端/邊緣端設備部署的檢測方案。
- 易部署:PaddleDetection的模型中使用的核心算子均通過C++或CUDA實現,同時基于PaddlePaddle的高性能推理引擎可以方便地部署在多種硬件平臺上。
- 高靈活度:PaddleDetection通過模塊化設計來解耦各個組件,基于配置文件可以輕松地搭建各種檢測模型。
- 高性能:基于PaddlePaddle框架的高性能內核,在模型訓練速度、顯存占用上有一定的優勢。例如,YOLOv3的訓練速度快于其他框架,在Tesla V100 16GB環境下,Mask-RCNN(ResNet50)可以單卡Batch Size可以達到4 (甚至到5)。
3、mmdetection
??github鏈接。MMDetection是一個基于PyTorch的開源對象檢測工具箱。
- 模塊化設計:我們將檢測框架分解成不同的組件,通過組合不同的模塊可以很容易地構建一個定制的目標檢測框架。
- 支持多個現成的框架:工具箱直接支持流行的和當代的檢測框架,例如更快的RCNN、掩碼RCNN、RetinaNet等。
- 高效率:所有基本的bbox和mask操作都在gpu上運行。訓練速度快于或可與其他代碼庫相媲美,包括Detectron2、maskrcnn
benchmark和simpledt。 - state-of-art:這個工具箱源于MMDet團隊開發的代碼庫,他們在2018年贏得了COCO檢測挑戰賽,我們一直在推動它的發展。
4、mediapipe
??github鏈接。MediaPipe是研究人員和開發人員為移動、桌面/云、web和物聯網設備構建世界級ML解決方案和應用程序的最簡單方法。該項目具體包含多個性能優異的算法,具體包括人臉檢測、人臉網格化、手部關鍵點檢測和跟蹤、頭發分割、目標跟蹤、3D目標檢測和模板匹配等任務。
二、單目標跟蹤
1、pytracking
??github鏈接。pytracking是一個基于PyTorch的視頻對象跟蹤和分割通用python框架。當前支持PrDiMP、DiMP、ATOM、ECO等多個性能優異的目標跟蹤方法。
2、pysot
??github鏈接。PySOT是由SenseTime視頻智能研究團隊設計的軟件系統。它實現了最先進的單目標跟蹤算法,包括SiamRPN和SiamMask。它是用Python編寫的,由PyTorch深度學習框架提供支持。該項目還包含一個用于評估跟蹤程序的工具箱的Python端口。pysot中已經包含了SiamRPN、DaSiamRPN、SiamRPN++和SiamMask等多個性能優異的跟蹤算法。
3、SiamMask
??github鏈接。SiamMask算法可以同時完成視頻中目標的跟蹤和分割任務,具有較好的效果。
4、siammask_e
??github鏈接。該算法是在SiamMask算法的基礎上增加了旋轉矩形框,從而進一步提升了SiamMask算法的精度。
5、AlphaVideo
??github鏈接。AlphaVideo是一個基于Pythorch的開源視頻理解工具箱,涵蓋多目標跟蹤和動作檢測。在AlphaVideo中,我們發布了第一個單級多目標跟蹤(MOT)系統TubeTK,在MOT-16和MOT-17上分別達到66.9mota和63 MOTA。對于動作檢測,我們發布了一個高效的模型AlphAction,這是第一個在AVA數據集上實現單模型30+mAP(32.4map)的開源項目。
6、Deep-Learning-for-Tracking-and-Detection
??github鏈接。 檢測和跟蹤算法匯總。
三、人像檢索
1、faiss
??github鏈接。Faiss是一個高效的相似性搜索和密集向量聚類庫。它包含的算法可以搜索任意大小的向量集,最多可以搜索不適合RAM的向量集。它還包含用于計算和參數調整的支持代碼。Faiss用C++編寫,帶有Python/NuMPy的完整包裝。一些最有用的算法是在GPU上實現的。它是由Facebook人工智能研究開發的。
2、HNSW
??github鏈接。Hierarchical Navigable Small World Graph for fast ANN search
四、語義分割
1、paddleSeg
??github鏈接。PaddleSeg是基于PaddlePaddle開發的端到端圖像分割開發套件,覆蓋了DeepLabv3+, U-Net, ICNet, PSPNet, HRNet, Fast-SCNN等主流分割網絡。通過模塊化的設計,以配置化方式驅動模型組合,幫助開發者更便捷地完成從訓練到部署的全流程圖像分割應用。它的核心優勢是使用起來特別簡單,能夠快速幫你完成模型的訓練和部署,大力推薦。
五、文本檢測與識別
1、PaddleOCR
??github鏈接。PaddleOCR旨在打造一套豐富、領先、且實用的OCR工具庫,助力使用者訓練出更好的模型,并應用落地。
- 超輕量級中文OCR,總模型僅8.6M
- 單模型支持中英文數字組合識別、豎排文本識別、長文本識別
- 檢測模型DB(4.1M)+識別模型CRNN(4.5M)
- 多種文本檢測訓練算法,EAST、DB
- 多種文本識別訓練算法,Rosetta、CRNN、STAR-Net、RARE
2、DB
??github鏈接-論文。DB是一個性能優異的文本檢測算法,該算法的核心優勢是速度比較快,可以結合CRNN等多種文本識別算法使用。
3、tr
??github鏈接。tr是一款針對掃描文檔的離線文本識別SDK,核心代碼全部采用C++開發,并提供Python接口。
4、charnet
??github鏈接。charnet是一個文本檢測和識別算法,該算法可以同時完成文本的檢測和文本的識別。比較遺憾的是只有測試代碼。沒有訓練代碼。另外,該算法的運行速度比較慢。
5、Vedastr
??github鏈接。Vedastr是一個基于PyTorch的開源場景文本識別工具箱。為了支持場景文本識別任務的快速實現和評估,設計了靈活的場景文本識別系統。該工具具有如下的特性:
- 模塊化設計-我們將場景文本識別框架分解成不同的組件,通過組合不同的模塊,可以方便地構建一個定制的場景文本識別框架。
- 靈活性-Vedastr足夠靈活,能夠輕松地更改模塊內的組件。
- 模塊擴展性-你可以很容易將一個新模塊集成到vedastr項目中。
- 支持多種框架-該工具箱支持幾種流行的場景文本識別框架,如CRNN,TPS ResNet BiLSTM Attention,Transformer。
- 高精度-我們在深度文本識別基準中重新實現了最佳模型,得到了較好的平均準確率。此外,我們實現了一個簡單的基線(ResNet-FC),性能是可以接受的。
六、人像摳圖
1、PortraitNet
??github鏈接。PortraitNet是一個人像摳圖算法,它是一種在移動設備上高效運行的實時人像分割模型,稱為人像網。肖像網是基于一個輕量級的U形架構,在訓練階段有兩個輔助損失,而肖像推理在測試階段不需要額外的成本。
七、模型壓縮
1、TVM
??github鏈接。 TVM是用于深度學習系統的編譯器堆棧。它旨在縮小以生產率為中心的深度學習框架與以性能和效率為中心的硬件后端之間的差距。TVM與深度學習框架一起工作,為不同的后端提供端到端的編譯。
2、Glow
??github鏈接。Glow是一個用于硬件加速器的機器學習編譯器和執行引擎。它被設計成用作高級機器學習框架的后端。編譯器的設計允許最先進的編譯器優化和神經網絡圖的代碼生成。
3、Tengine
??github鏈接。Tengine由開放人工智能實驗室開發,是開放人工智能實驗室推出的面向人工智能場景的人工智能應用開發平臺,致力于解決人工智能產業鏈的碎片化問題,加速人工智能產業化的落地。Tengine是專門為AIoT場景設計的,它具有跨平臺、異構調度、芯片底層加速、超輕量化和獨立性、完整的開發部署工具鏈等特點。Tengine兼容多種操作系統和深度學習算法框架,簡化和加速了面向場景的人工智能算法在嵌入式邊緣設備上的快速遷移,以及實際應用部署。
八、人體位姿估計
1、openpose
??github鏈接。OpenPose代表了第一個在單個圖像上聯合檢測人體、手、面部和腳關鍵點(總共135個關鍵點)的實時多人系統。該算法的優點是精度比較高,使用起來比較簡單;缺點是速度比較慢,并不能直接應用到一些嵌入式設備中。
2、PPN
??github鏈接-論文。PPN是一個快速、實時的人體位姿識別算法,該算法的核心優勢是經過優化后可以實時的運行在嵌入式設備中,缺點是精度比較低,需要進行特定的優化。
3、Lightweight OpenPose
??github鏈接-論文。該算法是針對openpose算法的速度二提出來的改進算法,該算法使用MobileNet代替原始的ResNet基準網絡,在Core i7-6850K CPU上面獲得26fps的運行速度,接近實時。
九、車牌識別
1、openalpr
??github鏈接。openalpr是一個開源的C++自動識別板庫,用C++語言編寫,用C語言編寫,javaNode.js節點,Go和Python。圖書館分析圖像和視頻流以識別車牌。輸出是任何車牌字符的文本表示。
2、mobile-lpr
??github鏈接。Mobile-LPR 是一個面向移動端的準商業級車牌識別庫,以NCNN作為推理后端,使用DNN作為算法核心,支持多種車牌檢測算法,支持車牌識別和車牌顏色識別。
- 超輕量,核心庫只依賴NCNN,并且對模型量化進行支持
- 多檢測,支持SSD,MTCNN,LFFD等目標檢測算法
- 精度高,LFFD目標檢測在CCPD檢測AP達到98.9,車牌識別達到99.95%, 綜合識別率超過99%
- 易使用,只需要10行代碼即可完成車牌識別
- 易擴展,可快速擴展各類檢測算法
十、目標分類
1、PaddleClas
??github鏈接。飛槳圖像分類套件PaddleClas是飛槳為工業界和學術界所準備的一個圖像分類任務的工具集,助力使用者訓練出更好的視覺模型和應用落地。
十一、人臉網格化
1、PRNet
??github鏈接。PRNet是一個基于位置圖回歸網絡的三維人臉重建與密集對齊算法。
- 該方法繞過3DMM擬合,直接從單個圖像中回歸出三維人臉結構和密集對齊。
- 通過對位置圖進行多任務回歸,可以得到具有語義的三維幾何圖形。因此,我們可以輕松地完成密集對齊、單目三維人臉重建、姿態估計等任務。
- 比實時速度快的方法可以運行在超過100fps(與GTX 1080)的位置圖回歸。
- 在無約束條件下對人臉圖像進行魯棒性測試。我們的方法對姿態、光照和遮擋都是穩健的。
2、mediapipe
??github鏈接。MediaPipe是研究人員和開發人員為移動、桌面/云、web和物聯網設備構建世界級ML解決方案和應用程序的最簡單方法。該項目具體包含多個性能優異的算法,具體包括人臉檢測、人臉網格化、手部關鍵點檢測和跟蹤、頭發分割、目標跟蹤、3D目標檢測和模板匹配等任務。
十二、多目標跟蹤
1、Towards-Realtime-MOT
??github鏈接。這個repo是聯合檢測和嵌入(JDE)模型的一個代碼庫。JDE是一種快速、高性能的多目標跟蹤器,它在共享神經網絡中同時學習目標檢測任務和外觀嵌入任務。技術細節在我們的arXiv預印本中有描述。通過使用此回購協議,您可以簡單地在MOT-16 challenge的“私有”協議上實現MOTA 64%+,并以22~38 FPS的近乎實時速度(請注意,此速度適用于整個系統,包括檢測步驟!)。
2、CenterTrack
??github鏈接。CenterTrack是一個多目標跟蹤算法,該算法將目標跟蹤轉換為點跟蹤問題,使用CenterNet作為目標檢測器,使用貪婪匹配算法來進行目標關聯,取得了較大的性能提升。
3、FairMOT
??github鏈接-論文鏈接。FairMOT是一個簡單的one-shot多目標跟蹤算法,該算法使用一個網絡同時完成了 目標檢測和REID任務。論文使用Anchor-free的目標檢測算法,重點解決了基于Anchor-based所帶來的中心坐標點不對齊大的問題。
十三、人像摳圖
1、Background-Matting
??github鏈接。這是CVPR2020會議上提出的一個人像摳圖算法,該算法具有很驚艷的分割效果,值得仔細研究和學習。
十四、3D檢測
1、OpenPCDet
??github鏈接。OpenPCDet是一個基于LiDAR的3D場景感知的開源項目。目前主要由OpenPCDet工具箱組成,用于點云三維目標檢測。OpenPCDet是一個通用的基于PyTorch的點云三維物體檢測代碼庫。它目前支持多種最先進的3D對象檢測方法,單階段和雙階段3D檢測框架都有高度重構的代碼。
十五、Re-ID
1、Torchreid
??github鏈接。這是一個基于Pytorch的Re-ID庫。該工具具有如下的特點:
- 支持多GPU訓練
- 同時支持圖像和視頻reiid
- 端到端訓練和評估
- 多數據集訓練
- 跨數據集評估
- 高度可擴展(易于添加模型、數據集、培訓方法等)
- 最先進的deep reid模型的實現
- 使用預先訓練過的reid模型
- 高級訓練技術
- 可視化工具(tensorboard、ranks等)
2、fast-reid
??github鏈接。FastReID 平臺已經成為京東人工智能研究(JD AI Research)的開源項目之一,它是面向學術界和工業界的研究/開源項目,主要用于研究和應用落地。該工具具有如下的特點:
- 基于 FastReID,我們在多個 ReID 任務都獲得非常不錯的性能,并且用于業務線中,包括行人 ReID、Occluded/Partial 行人 ReID、跨域行人 ReID 和車輛 ReID。
- 在模型評估上我們實現了更多的功能,比如我們支持比較靈活的測試方式,通過下面的命令可以實現在 Market1501 和 MSMT17 上聯合訓練,然后在 Market1501 和 DukeMTMC 上進行測試。
- 大多數的庫都只關注學術界做 research,我們更希望能夠產學研結合,research 中 work 的東西能夠快速到實際場景中去驗證效果,發現實際中真正需要解決的問題。 當然在實際研究中可以天馬行空去寫代碼,但是這份代碼無法快速地在實際場景中去驗證,如果基于 FastReID 去重構和開發,那么我們就能夠找到新方法所需要的最小代碼實現,就能夠很輕易地移植到實際業務中,也不用把大量的時間花在對齊訓練邏輯以及預處理上了。
十六、車道線檢測
1、Ultra-Fast-Lane-Detection
??github鏈接。該算法不僅速度比較快,而且精度比較高,簡單上手。
十七、人體位姿跟蹤
1、lighttrack
??github鏈接。該算法是一個通用的top-down格式的人體位姿跟蹤框架,該框架同時完成人體檢測、人體跟蹤、人體位姿估計等多個問題,在posetrack數據集上面取得了良好的效果。
2、PoseFlow
??github鏈接。該算法是一個高效的位姿跟蹤算法,該算法需要配合AlphaPose算法來完成,具體的效果如下所示。
3、DetectAndTrack
??github鏈接。該算法是一個基于視頻的高效位姿估計算法,獲得了ICCV2017 PoseTrack挑戰賽的第一名。
注意事項
[1] 該博客是本人原創博客,如果您對該博客感興趣,想要轉載該博客,請與我聯系(qq郵箱:1575262785@qq.com),我會在第一時間回復大家,謝謝大家的關注.
[2] 由于個人能力有限,該博客可能存在很多的問題,希望大家能夠提出改進意見。
[3] 如果您在閱讀本博客時遇到不理解的地方,希望您可以聯系我,我會及時的回復您,和您交流想法和意見,謝謝。
[4] 本人業余時間承接各種本科畢設設計和各種小項目,包括圖像處理(數據挖掘、機器學習、深度學習等)、matlab仿真、python算法及仿真等,有需要的請加QQ:1575262785詳聊,備注“項目”!!!
總結
以上是生活随笔為你收集整理的计算机视觉各领域前沿算法积累的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一步一步带你训练自己的SSD检测算法
- 下一篇: RepVGG算法详解