可微分的「OpenCV」:這是基於PyTorch的可微計算機視覺庫

2020-12-05 機器之心Pro

機器之心整理

參與:思

如何打造一個可微分的 OpenCV?如何將圖像處理嵌入到訓練流程中?你需要 Kornia 這個開源可微的計算機視覺庫。

項目地址:https://github.com/arraiyopensource/kornia

目前最經典的圖像處理庫差不多就是 OpenCV 了,它從最經典的圖像算法到非常前沿的 DL 預訓練模型囊括了 CV 的很多方面。但現在有一個問題,OpenCV 是不可微的,這意味著它更多的是做預處理等工作,而不能嵌入到整個訓練流程中。

在這個項目中,開發者提出了一種新型開源可微分計算機視覺庫 Kornia,並且它建立在 PyTorch 之上。

Kornia 包含了一組例程和可微分模塊,並致力於解決通用計算機視覺問題。在 Kornia 的核心代碼中,它使用 PyTorch 作為主要後端,並高效地利用反向模式自動微分機制來定義並計算複雜函數的梯度。如下所示為 Kornia 可微分處理的一個示例:

受到 OpenCV 的啟發,Kornia 由包含各種運算子的子集包組成,這些運算子可以插入到神經網絡中,以在訓練中執行圖像轉換、對極幾何、深度估計和各種底層圖像處理,例如直接在張量上進行濾波和邊緣檢測等操作。

從比較高的層次上來說,Kornia 庫主要包含以下組件:

使用入門

Kornia 使用起來非常簡單,它的 API 就可以直接當做算子進行操作,更多的 API 文檔或教程可以查閱使用指南。

文檔地址:https://kornia.readthedocs.io/en/latest/

import torchimport korniax_rad = kornia.pi * torch.rand(1, 3, 3)x_deg = kornia.rad2deg(x_rad)# Truetorch.allclose(x_rad, kornia.deg2rad(x_deg))

使用案例

項目還提供了很多 Jupyter Notebook,它們展示了使用 Kornia 的各種實例。在這裡我們簡要介紹了如何使用 Kornia 抽取圖像特徵。首先得讀取並列印圖像,這一點和 OpenCV 或其它圖像處理庫都差不多:

因為這個示例展示的是經典圖像處理方法,後面就需要加載預定義的檢測特徵:

後面就可以根據特徵抽取一些圖像塊,並準備做後續的處理了。

最後,前面根據特徵抽取的 2000 個圖像塊可以進一步採用 SIFT 方法構建描述向量。

相關焦點

  • 計算機圖形也能自動可微:MIT學神的微分太極框架開源
    機器之心機器之心報導參與:一鳴、杜偉去年5月,機器之心報導了 MIT 華人學神胡淵鳴等開源的計算機圖形庫——太極。近日,這位作者聯合其他研究者推出了自動微分版本的太極——微分太極。
  • 計算機圖形自動可微:MIT學神微分太極框架開源,論文被ICLR接收
    機器之心報導參與:一鳴、杜偉去年5月,機器之心報導了 MIT 華人學神胡淵鳴等開源的計算機圖形庫——太極。近日,這位作者聯合其他研究者推出了自動微分版本的太極——微分太極。這一框架可以基於太極實現自動微分,在物理模擬優化方面有很高的性能和靈活性。這意味著太極從計算機圖形學進入了機器學習的領域。
  • 「python opencv計算機視覺零基礎到實戰」九模糊
    一、學習目標了解什麼是卷積了解模糊的使用方法與應用目錄「python opencv 計算機視覺零基礎實戰」 第一節「python opencv視覺入門到實戰」二、格式與攝像頭「python opencv 視覺入門到實戰」 三、圖像編輯「python opencv視覺入門到實戰」 第四節色彩空間
  • 「python opencv視覺零基礎」十四、直方圖反向投影
    前文提醒:博主正在參加博客之星評比,成功入選Top200,現在暫居第九歡迎各位點擊了解更多幫我投票,非常感謝~目錄「python opencv 計算機視覺零基礎實戰」 第一節「python opencv視覺入門到實戰」二、格式與攝像頭「python opencv 視覺入門到實戰」 三、圖像編輯「python
  • 「python opencv視覺零基礎」十、圖片效果毛玻璃
    一、學習目標了解高斯模糊的使用方法了解毛玻璃的圖片效果添加了解如何自己做一個噪聲圖片目錄「python opencv 計算機視覺零基礎實戰」 第一節「python opencv視覺入門到實戰」二、格式與攝像頭「python opencv 視覺入門到實戰」 三、圖像編輯「python opencv視覺入門到實戰
  • 世界上最好的語言PHP:OpenCV與計算機視覺已在我掌控之下
    本文從實踐的角度介紹了如何使用 PHP 與 OpenCV 構建人臉檢測、人臉識別、超解析度與目標檢測等系統,因此 PHP 的各位擁躉們,可以盡情使用 OpenCV 探索計算機視覺了。本文首發於公眾號機器之心(ID:almosthuman2014),部分代碼格式有誤可參閱原文章。
  • 清華「計圖」迎來重大更新:支持可微渲染,多項任務速度超PyTorch|...
    蕭簫 發自 凹非寺量子位 報導 | 公眾號 QbitAI想研究可微分渲染,卻擔心找不到合適的框架?現在,官方支持可微分渲染的深度學習框架來了:清華自研的「計圖」 (Jittor)深度學習框架,在更新的版本中加入了可微分渲染庫。
  • 「python opencv視覺零到實戰」八、圖片選區操作
    一、學習目標了解什麼是ROI了解floodFill的使用方法如有錯誤歡迎指出~目錄「python opencv 計算機視覺零基礎實戰」 第一節「python opencv視覺入門到實戰」二、格式與攝像頭「python opencv 視覺入門到實戰」 三、圖像編輯「python opencv視覺入門到實戰
  • 「python opencv視覺零基礎實戰」七邏輯運算應用
    一、學習目標了解opencv中圖像的邏輯運算了解opencv中邏輯運算的應用如有錯誤歡迎指出~目錄「python opencv 計算機視覺零基礎實戰」 第一節「python opencv視覺入門到實戰」二、格式與攝像頭「python opencv 視覺入門到實戰」 三、圖像編輯「python
  • PyTorch實現,GitHub4000星:微軟開源的CV庫
    機器之心報導編輯:魔王、陳萍本文介紹了微軟開源的計算機視覺庫,它囊括了計算機視覺領域的最佳實踐、代碼示例和豐富文檔。近年來,計算機視覺領域突飛猛進,在人臉識別、圖像理解、搜索、無人機、地圖、半自動和自動駕駛方面得到廣泛應用。而這些應用的核心部分是視覺識別任務,如圖像分類、目標檢測和圖像相似度。
  • 還不會使用PyTorch框架進行深度學習的小夥伴,看過來
    「反向傳遞」是指從右到左調整權重的過程,而正向傳遞則是從左到右調整權重的過程。「torch.autograd」是 PyTorch 中支持自動微分的庫。這個包的核心類是「torch.Tensor」。如果你想要跟蹤這個類的所有操作,請將「.requires_grad」設置為 True。如果要計算所有的梯度,請調用「.backward()」。
  • Facebook 開源 3D 深度學習函數庫 PyTorch3D
    原標題:Facebook開源3D深度學習函數庫PyTorch3D來源:開源中國Facebook近日開源了將PyTorch用於3D深度學習的函數庫PyTorch3D,這是一個高度模塊化且經過優化的庫,具備獨有的功能,旨在通過PyTorch簡化3D深度學習。
  • NumPy、AI基礎設施可微分編程、技術實踐,這是一場開發者的盛會
    加州大學伯克利分校計算機科學博士學位、清華大學碩士學位和學士學位。Alex Smola:深度 NumPy API 和深度學習工具NumPy 差不多是所有機器學習開發者必須了解的庫,它為 Python 附上了數值計算的「靈魂」。很多主流 DL 框架都保留了 NumPy 的習慣,如果你會用 NumPy 搭建某個計算流程,那麼你就能快速學會用 DL 框架搭建機器學習模型。
  • OpenCV 2.4.5 發布,開源計算機視覺庫
    OpenCV 2.4.5 發布了,該版本增加了完全功能的 Java 桌面綁定,兼容任意 JVM;此外關於 CUDA gpu 模塊的多項改進;基於OpenCL 的硬體加速模塊已成熟,修復了不少
  • 在家學|全微分的定義,可微與極限存在、連續性的關係及方向導數
    於是2.可微的必要條件處的偏導數都存在,且有3.可微的充分條件,且可微的充分條件可以弱化為:兩個偏導數之一連續,函數就可微.4.一階全微分形式的不變性若「一階全微分形式的不變性」.利用一階全微分形式不變性,可以證明不論
  • 基於OpenCv 和 Python 的手指識別及追蹤
    翻譯 | 餘杭 Lamaric 校對 | 吳曉曼 審核 | 餘杭詳細代碼參考:https://github.com/amarlearning/opencv手指追蹤是許多計算機視覺應用的重要特徵。在該應用中,使用基於直方圖的方法將手與背景幀分離。
  • 不知道這 7 大 OpenCV 函數怎麼向計算機視覺專家進階?
    作者 | Lazar Gugleta譯者 | Arvin,責編 | 夕顏頭圖 | CSDN付費下載自視覺中國計算機視覺和計算機圖形學現在非常流行,因為它們與人工智慧息息相關,它們主要的共同點是使用同一個OpenCV庫,以理解數字圖像或視頻(CV)或生成圖像(CG)中深層含義。
  • 用NumPy寫深度模型,用Julia可微分編程寫函數,這是WAIC開發者日
    機器之心報導機器之心編輯部「DeepNumPy 可以寫深度模型,且與經典 NumPy 100% 兼容」,AWS 副總裁 Smola 說,「深度圖學習本領強大,Transformer 也可以分解為圖」。「Julia 內建可微分編程,定義任何函數,他就會自動算出值以及梯度!」
  • 一文總結數據科學家常用的Python庫(下)
    嗯,這是一個基於Python的科學計算包,可以用作:NumPy的替代品,可以使用GPU的強大功能深度學習研究平臺,提供最大的靈活性和速度轉到此處(https://pytorch.org/get-started/locally/)查看不同作業系統的安裝過程。
  • 可微、微分原來是這樣的……
    在學習一元函數時,有沒有感覺可導很容易理解,而可微卻像一個突兀的概念,很難準確地理解,只知道在一元函數中,可微與可導等價。今天小編來告訴大家,可微是個什麼東東!以函數y=f(x) =tan(x)為例來解釋可導、可微、導數微分等概念。