计算机视觉简介

计算机视觉 Introduction of Computer Vision

分类与应用

计算机视觉简介_第1张图片

1. image processing (denoise, deblur, inpainting, compression, feature extraction & selection, ...)

图像处理指对图像进行一些处理,去噪,增强,复原,transform,压缩等, 像photoshop做的但不仅限于此。这里我将特征提取和选择归为图像处理。


计算机视觉简介_第2张图片

2. pattern recognization (classification, detection, locationalize, ML, DL, ...)

模式识别是指对图像等数据中的一些模式识别出来,比如分类,首先提取特征,然后对不同图像的特征进行区分,不同类图像一般会有不同的特征表现。可以通过机器学习来做分类如SVM, decision tree等。


计算机视觉简介_第3张图片

在分类任务中,如果我们对同一张图片做不同的变换如平移旋转,不同角度等,那么我们从这些变换的图片中提取的特征要具有不变性invariant,从而识别为同一图片。特征提取通常是通过transformation得到,在变换过程中,要满足三个条件 1)对于类间图像纹理textures能区分,2)对于类内要具有不变性,3)对环境的改变要有鲁棒性(角度,光线)。for examples, bag-of-words 得到直方图特征BoVW,density-based, intensity-based等方法

目前recognition做的最好的当属深度学习的方法了,从传统方法HOG,SIFT等,到convolution neural networks:Alexnet -> VGG, googLenet -> Resisual net -> ...等,有着1000类的Imagenet的top5 error 已经是4%以下,比人工的还要准,可见深度学习的威力。

3. vidual understanding/intelligence (interpretability, caption, semantic segmentation, ...)

当视觉识别已经做得很好的时候,我们就会思考为什么卷积神经网络的性能好,它就像一个黑盒子一样,所以后来就有大量的关于可解释的研究,构建可解释性较强的模型,对卷积过程可视化,比如反卷积回去看激活的位置等。
除了可解释性问题外,另一个就是分类,检测这种任务少了些人的智能,理解,模型可能只是机械地提取了特征,然后进行识别。所以现在地任务更多地是如何做视觉智能/理解. 比如,对图像做caption,表明模型对图像的理解;空间关系识别,场景理解,QA(这个是比较有意思的,通过一张图像,用QA的方式判断模型对图像的理解)。

计算机视觉简介_第4张图片

在这里粗略的分了类,其实很多是交叉的,模式识别需要图像处理,不过归根结底视觉计算就是对图像数据进行某种处理以达到目的。也可以理解为都是图像处理。
深度学习从14,15年后就开始百花齐放,在图像的应用也是越来越广,除了上面说的那些,还有生成模型GAN,VAE的应用图像生成,高分辨率图像生成,风格转换等,就是用来生成一个分布,可以说很惊艳了。医疗影像领域的应用,大规模图像智能索引(更加准确的搜索得到想要的图像),以及视频相关的,甚至跨媒体智能,多媒体融合决策,通过图像与其他源比如声音,位置等结合。

虽然深度神经网络很成功,但是也会有一些问题,网络往往是脆弱的,对于一些样本会出现‘幻觉’,从而导致判断出错,这种样本叫做对抗样本。这个问题在一些精度要求很高的场景下就会出问题,易被攻击,比如自动驾驶等。因此,很多研究者在攻防上做了相关研究。近几年有这种攻防比赛。我们可以把这种问题认为是边界准确性,鲁棒性的问题。事实上,目前的神经网络是否跟我们人脑计算的方式是否一样呢,当然不,我们可以很准确的识别,并且就算对图像,物体做一些变换如旋转,色温,亮度等,我们也能够分辨,另外,我们能感知视觉中的物体的距离,但是目前的CNN是无法做到的。因此去年hinton等人提出了capsule网络,试图去仿造人类大脑的方式,它用向量的方向表示不同物体,向量长度表示概率,具体可以见论文Dynamic Routing Between Capsules

模型model

定义

模型可以理解为一个从x映射到y的函数:

y = F(x). 【当y为离散值时为分类,连续值时为回归】

举一个例子:


计算机视觉简介_第5张图片

这是图像退化的模型,将图像degradation

模型可以是一个数学表达式,线性or非线性,也可以是一棵决策树,贝叶斯模型,概率图模型(如HMM),神经网络等。

参数评估

确定了模型,那么就是怎么得到最优的参数,使得误差最小了。误差就是描述预测值与真实值之间的误差,可以是MSE,加上正则项等。有了loss function,我们的目标就是最小化这个函数了。怎么评估呢,一般我们需要训练数据,训练得到的模型要尽可能逼近模型, 使得误差最小,同时模型又需要防止过拟合。我们一般把训练数据称为先验知识prior。

对于数学模型,可以用最优化计算中提到的很多方法解决,无约束的有坐标轮换法,梯度下降法,牛顿法,拟牛顿法等,有约束的有KKT,罚函数法,乘子法,交替方向乘子法ADMM等等;对于决策树,是通过最大化信息增益(最小化信息熵/不确定性)来决定每个节点的属性选择;对于贝叶斯模型,优化的应该是似然概率P(x|wi), 通过对其建模,如gaussian distribution,然后用极大似然法ML求分布的参数。对于神经网络,最有名的就是后向传播BP算法了。

对于上面的degradation例子,我们可以通过下面的公式来优化:


计算机视觉简介_第6张图片

其中fidelity term是保真,regularization是正则项。

参考资料

  1. M.S. Nixon, A.S. Aguado, Feature Extraction & Image Processing for Computer Vision. (3rd edition)
  2. A first course in wavelets with Fourier analysis.
  3. a wavelet tour of sigmal processing.
  4. Digital image processing algorithm and applications.

你可能感兴趣的:(计算机视觉简介)