可微分的「OpenCV」:基于PyTorch的可微计算机视觉库
Posted 机器学习算法与Python学习
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了可微分的「OpenCV」:基于PyTorch的可微计算机视觉库相关的知识,希望对你有一定的参考价值。
本文转自『机器之心』
目前最经典的图像处理库差不多就是 OpenCV 了,它从最经典的图像算法到非常前沿的 DL 预训练模型囊括了 CV 的很多方面。但现在有一个问题,OpenCV 是不可微的,这意味着它更多的是做预处理等工作,而不能嵌入到整个训练流程中。
在这个项目中,开发者提出了一种新型开源可微分计算机视觉库 Kornia,并且它建立在 PyTorch 之上。
Kornia 包含了一组例程和可微分模块,并致力于解决通用计算机视觉问题。在 Kornia 的核心代码中,它使用 PyTorch 作为主要后端,并高效地利用反向模式自动微分机制来定义并计算复杂函数的梯度。如下所示为 Kornia 可微分处理的一个示例:
受到 OpenCV 的启发,Kornia 由包含各种运算子的子集包组成,这些运算子可以插入到神经网络中,以在训练中执行图像转换、对极几何、深度估计和各种底层图像处理,例如直接在张量上进行滤波和边缘检测等操作。
从比较高的层次上来说,Kornia 库主要包含以下组件:
import torch
import kornia
x_rad = kornia.pi * torch.rand( 1, 3, 3)
x_deg = kornia.rad2deg(x_rad)
# True
torch.allclose(x_rad, kornia.deg2rad(x_deg))
以上是关于可微分的「OpenCV」:基于PyTorch的可微计算机视觉库的主要内容,如果未能解决你的问题,请参考以下文章