本文介紹了微軟開源的計算機視覺庫,它囊括了計算機視覺領域的最佳實踐、代碼示例和豐富文檔。
近年來,計算機視覺領域突飛猛進,在人臉識別、圖像理解、搜索、無人機、地圖、半自動和自動駕駛方面得到廣泛應用。而這些應用的核心部分是視覺識別任務,如圖像分類、目標檢測和圖像相似度。 在各種計算機視覺模型和應用層出不窮的當下,如何把握發展脈絡,跟進領域前沿發展呢?微軟創建了一個庫,提供構建計算機視覺系統的大量示例和最佳實踐指導原則。 項目地址:https://github.com/microsoft/computervision-recipes 這個庫旨在構建一個全面的集合,涵蓋利用了計算機視覺算法、神經架構和系統運行方面近期進展的工具和示例。 該庫沒有從頭開始創建實現,而是基于已有的 SOTA 庫發展而來,并圍繞加載圖像數據、優化和評估模型、擴展至云端構建了額外的工具函數。此外,微軟團隊表示,希望通過該項目回答計算機視覺領域的常見問題、指出頻繁出現的缺陷問題,并展示如何利用云進行模型訓練和部署。 該庫中所有示例以 Jupyter notebooks 和常見工具函數的形式呈現。所有示例均使用 PyTorch 作為底層深度學習庫。
Jupyter notebooks 地址:https://github.com/microsoft/computervision-recipes/blob/master/scenarios
工具函數地址:https://github.com/microsoft/computervision-recipes/blob/master/utils_cv
目標群體 該庫的目標群體是具備一定計算機視覺知識背景的數據科學家和機器學習工程師,因為庫的內容以 source-only(僅源代碼)的形式呈現,支持自定義機器學習建模。這個庫提供的工具函數和示例旨在為現實世界的視覺問題提供解決方案加速器。 示例 該庫支持不同的計算機視覺場景,如基于單張圖像運行,示例如下:
或基于視頻序列的動作識別等場景,示例如下:
場景 該庫涵蓋常用的計算機視覺場景,包含如下類別:
對于每個主要場景(base),該項目均提供使用戶高效構建自己模型的工具。這需要使用者完成一些任務,如基于自己的數據微調模型的簡單任務,或者難例挖掘甚至模型部署等更復雜的任務。 1. 圖像分類任務 該目錄提供了構建圖像分類系統的示例和最佳實踐,旨在讓用戶能夠在自己的數據集上輕松快速地訓練高準確率分類器。 這里提供的示例 notebook 具備預置的默認參數,可以很好地處理多個數據集。該目錄還提供了有關常見缺陷和最佳實踐的大量文檔。 此外,該庫還展示了如何使用微軟的云計算平臺 Azure,加快在大型數據集上的訓練速度或將模型部署為 web 服務。
2. 圖像相似度 該目錄提供了構建圖像相似度系統的示例和最佳實踐,旨在使用戶能夠基于自己的數據集方便快捷地訓練高精度模型。 下圖為圖像檢索示例,其中左圖為查詢圖像,右面為與之最相似的 6 幅圖像:
3. 目標檢測 該目錄提供了構建目標檢測系統的示例和最佳實踐,旨在使用戶能夠基于自己的數據集方便快捷地訓練高準確率模型。
該庫使用了 torchvision 的 Faster R-CNN 實現,它被證明能夠很好地處理多種計算機視覺問題。 項目作者建議使用者在具備 GPU 的機器上運行示例,雖然 GPU 在技術層面上并非必需,但是如果不使用 GPU,即使只用幾十個圖像,訓練過程也會變得非常緩慢。 4. 關鍵點檢測 該目錄包含構建關鍵點檢測系統的示例和最佳實踐指導原則,并展示了如何使用預訓練模型進行人體姿勢估計。 該目錄使用了 Mask R-CNN 的擴展,可以同時檢測物體及其關鍵點。其底層技術與上述目標檢測方法類似,即基于 Torchvision 的 Mask R-CNN。
5. 圖像分割 該目錄提供了構建圖像分割系統的示例和最佳實踐,旨在使用戶能夠基于自己的數據集方便快捷地訓練高準確率模型。
這里的實現使用了 fastai 的 UNet 模型,其中 CNN 主干(如 ResNet)在 ImageNet 數據集上經過預訓練,因此使用者只需少量標注訓練樣本就可以對其進行微調。 6. 動作識別 該目錄包含構建基于視頻的動作識別系統所需要的資源,旨在使用戶能夠在自定義數據集上輕松快速地訓練出高準確率的快速模型。 動作識別(也叫「活動識別」)包括從一系列幀中對多種動作進行分類,例如「閱讀」或「飲酒」:
動作識別是一個熱門的研究領域,每年都有大量的方法發表。其中一個突出的方法是 R(2+1)D 模型,它能夠獲得高準確率,且比其他方法快得多。(參見論文《Large-scale weakly-supervised pre-training for video action recognition》) 該目錄中的實現和預訓練權重均基于這個 GitHub 庫(https://github.com/moabitcoin/ig65m-pytorch),并添加了一些功能,以使自定義模型的訓練和評估更加用戶友好。這里在預訓練時使用的是 IG-Kinetics 數據集。 7. 多目標跟蹤 該目錄提供了構建和推斷多目標跟蹤系統的示例和最佳實踐,旨在使用戶能夠基于自定義數據集輕松訓練高準確率跟蹤模型。 該庫集成了 FairMOT 跟蹤算法,該算法在近期的 MOT 基準測試中表現出了很強的跟蹤性能,同時也推理速度也很快。 8. 人群計數 該目錄提供了多個人群計數算法的 production-ready 版本,不同算法被統一在一組一致性 API 下。
對多個基于專用數據集的人群計數模型實現進行評估后,該項目將模型范圍縮小到兩個選項:Multi Column CNN model (MCNN) 和 OpenPose 模型。二者均符合速度要求。
對于高密度人群圖像,MCNN 模型取得了良好的效果;
對于低密度場景,OpenPose 表現良好。
而當人群密度未知時,該項目采用啟發式方法。在滿足以下條件時使用 MCNN 進行預測:OpenPose 預測大于 20,MCNN 大于 50。反之,則使用 OpenPose 預測。模型的閾值可以根據使用者的場景進行更改。
此外,該目錄還展示了依賴項、安裝過程、測試及性能。
-
微軟
+關注
關注
4文章
6627瀏覽量
104338 -
計算機視覺
+關注
關注
8文章
1700瀏覽量
46082 -
機器學習
+關注
關注
66文章
8438瀏覽量
132953
原文標題:PyTorch實現,GitHub 4000星:這是微軟開源的計算機視覺庫
文章出處:【微信號:vision263com,微信公眾號:新機器視覺】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論