0717-7821348
欢乐彩票平台

欢乐彩票平台

您现在的位置: 首页 > 欢乐彩票平台
图画配准的宿世此生:从人工规划特征到深度学习
2019-08-07 22:34:12

选自Medium

作者:Emma Kamoun

参加:Nurhachu Null,Geek AI

作为核算机视觉的重要研讨课题,图画配准阅历了从传统办法走向深度学习的重要革新。本文将回忆图画配准技能的宿世此生,为读者供给一个该范畴的微观视界。

作为核算机视觉的重要研讨课题,图画配准阅历了从传统办法走向深度学习的重要革新。本文将回忆图画配准技能的宿世此生,为读者供给一个该范畴的微观视界。

图画配准是核算机视觉范畴的一个根底进程。在本文深入探讨深度学习之前,咱们先展现一下 OpenCV 中依据特征的办法。

什么是图画配准?

图画配准便是将同一个场景的不同图画转化到相同的坐标体系中的进程。这些图画可所以不一起刻拍照的(多时刻配准),可所以不同传感器拍照的(多模配准),可所以不同视角拍照的。这些图画之间的空间联系可能是刚体的(平移和旋转)、仿射的(例如错切),也有可能是单应性的,或许是杂乱的大型形变模型。

图画配准有很广泛的运用:只需咱们面临的使命需求比较相同场景的多张图片,它便是必不可少的。它在医学影像、卫星图画剖析以及光流范畴都是很常用的。

经过配准后的 CT 扫描和核磁共振图画

在本文中,咱们会要点重视在一张参阅图画和一张待配准图画之间进行图画配准的不同办法。咱们不会挑选迭代式的/依据强度的办法,因为它们并不像本文中说到的办法这样常用。

传统的依据特征的办法

自本世纪初以来,图画配准首要运用传统的依据特征的办法。这些办法依据三个进程:要害点检测和特征描绘,特征匹配,图画变形。简而言之,咱们在两幅图画中挑选爱好点,将参阅图画中的每个爱好点和它在待配准图画中的对应点相关起来,然后对待同意图画进行改换,这样两幅图画就得以对齐。

对一个图画对经过单应性改换进行相关的依据特征的办法

要害点检测和特征描绘

要害点便是感爱好的点。它界说了一幅图画中重要并且有特色的当地(如角,边等)。每个要害点都由一个描绘子(包括要害点实质特色的特征向量)表征。描绘子应该对图画改换(如方位改换、缩放改换、亮度改换等)是鲁棒的。许多算法都要履行要害点检测和特征描绘:

  • SIFT(Scale-invariant feature transform,标准不变的特征改换)是用于要害点检测的原始算法,可是它并不能免费地被用于商业用途。SIFT 特征描绘子对均衡的缩放,方向、亮度改变是坚持不变的,对仿射形变也是部分不变的。
  • SURF(Speeded Up Robust Features,加快鲁棒特征)是遭到 SIFT 深入启示规划的检测器和描绘子。与 SIFT 比较,它的运转速度要快好几倍。当然,它也是受专利维护的。
  • ORB(定向的 FAST 和旋转的 BRIEF)是依据 FAST(Features from Accelerated Segment Test)要害点检测器和 BRIEF(Binary robust independent elementary features)描绘子的组合的快速二值描绘子,具有旋转不变性和对噪声的鲁棒性。它是由 OpenCV Lab 开发的高效、免费的 SIFT 替代计划。
  • AKAZE(Accelerated-KAZE) 是 KAZE 的加快版别。它为非线性标准空间提出了一种快速多标准的特征检测和描绘办法。它关于缩放和旋转也是具有不变性的,可以免费运用。

这些算法在 OenCV 中都得到了完成,易于运用。鄙人面的比如中,咱们运用了 AKAZE 的 OpenCV 完成。其它算法的代码大致也是相同的:只需修正一下算法的姓名即可。

    图画配准的宿世此生:从人工规划特征到深度学习

img = cv.imread('image.jpg')gray= cv.cvtColor(img, cv.COLOR_BGR2GRAY)

akaze = cv.AKAZE_createkp, deor = akaze.detectAndCompute(gray, None)

img=cv.drawKeypoints(gray, kp, img)cv.imwrite('keypoints.jpg', img)

图画的要害点

更多关于特征检测和描绘的细节,请参阅下面的 OpenCV 教程:https://docs.opencv.org/3.4/d7/d66/tutorial_feature_detection.html

特征匹配

当组成一个图画对的两张图的要害点都被辨认出来今后,咱们需求将它们相关(或称「匹配」)起来,两张图画中对应的要害点在实际中是同一个点。一个可以完成该功用的函数是「BFMatcher.knnMatch」。这个匹配器(matcher)会衡量每一对要害点的描绘子之间的间隔,然后回来与每个要害点间隔最小的 k 个最佳匹配成果。

接下来,咱们运用份额滤波器来坚持正确的匹配。事实上,为了完成牢靠的匹配,配对的要害点应该比间隔最近的过错匹配点更挨近。

img1 = cv.imread('image1.jpg', cv.IMREAD_GRAYSCALE) # referenceImageimg2 = cv.imread('image2.jpg', cv.IMREAD_GRAYSCALE) # sensedImage

# Initiate AKAZE detectorakaze = cv.AKAZE_create# Find the keypoints and deors withSIFTkp1, des1 = akaze.detectAndCompute(img1, None)kp2, des2 = akaze.detectAndCompute(img2, None)

# BFMatcher withdefaultparamsbf = cv.BFMatchermatches = bf.knnMatch(des1, des2, k=2)

# Apply ratio testgood_matches = []form,n inmatches: ifm.distance < 0.75*n.distance: good_matches.append([m]) # Draw matchesimg3 = cv.drawMatchesKnn(img1,kp1,img2,kp2,good_matches,None,flags=cv.DrawMatchesFlags_NOT_DRAW_SINGLE_POINTS)cv.imwrite('matches.jpg', img3)

配对的要害点

请参阅下面的文档来了解 OpenCV 中完图画配准的宿世此生:从人工规划特征到深度学习成的其他特征匹配办法:https://docs.opencv.org/trunk/dc/dc3/tutorial_py_matcher.html

图画变形

在匹配到至少 4 对图画配准的宿世此生:从人工规划特征到深度学习要害点之后,咱们就可以将一幅图画相关于另一幅图画进行转化。这个进程被称作图画变形(image warping)。空间中同一平面的恣意两幅图画都是经过单应性改换相关起来的。单应性改换是具有 8 个参数的几许改换,经过一个 33 的矩阵表征。它们代表着对一幅图画全体所做的任何变形(与部分形变不同)。因而,为了得到改换后的待配准图画,咱们核算了单应矩阵,并将它运用在了待配准图画上。

为了确保最优的变形,咱们运用了 RANSAC 算法来检测概括,并且在进行终究的单应性改换之前将概括删去。该进程直接内置于 OpenCV 的「findHomography」函数中。现在也有一些 RANSAC 的替代计划,例如 LMED(Least-Median robust method,最小中值鲁棒办法)。

ref洪荒之圣帝玄天_matched_kpts = np.float32([kp1[m[0].queryIdx].pt for m in good_matches]).reshape(-1,1,2)sensed_matched_kpts = np.float32([kp2[m[0].t图画配准的宿世此生:从人工规划特征到深度学习rainIdx].pt for m in good_matches]).reshape(-1,1,2)

# Compute homographyH, status = cv.findHomography(ref_matched_kpts, sensed_matched_kpts, cv.RANSAC,5.0)

# Warp imagewarped_image = cv.warpPerspective(img1, H, (img1.shape[1]+img2.shape[1], img1.shape[0])) cv.imwrite('warped.jpg', warped_image)

.

变形后的待配准图画

关于以上三个进程的更多细节,请参阅 OpenCV 官方发布的系列教程(https://docs.opencv.org/3.1.0/db/d27/tutorial_py_table_of_contents_feature2d.html)。

深度学习办法

现在大多数的图画配准研讨都涉及到深度学习的运用。曩昔几年里,深度学习计划在核算机视觉使命中(如图画分类、方针检测和切割)达到了最先进的功能。当然,图画配准也没有理由回绝深度学习。

(二级)特征提取

深度学习在图画配准中运用的第一种办法便是将其用于特征提取。在卷积神经网络(CNN)中,接连的层可以成功地捕获到越来越杂乱的图画特征,学习到特定使命的特征。自 2014 年以来,研讨者们就开端将这些神经网络运用于特征提取进程,替代运用 SIFT 或许其它相似的算法。

  • 2014 年,Dosovitskiy 等人提出了通用特征学习办法「Discriminative Unsupervised Feature Learning with Exemplar Convolutional Neural Networks」(https://arxiv.org/abs/1406.6909),仅运用无标签的数据来练习卷积神经网络。这些特征的泛化特点使得它们对改换是鲁棒的。这些特征(或称描绘子),在匹配使命中要优于 SIFT 描绘子。
  • 2018 年,Yang 等人依据相同的思维研发了一种非刚性配准办法「Multi-temporal Remote Sensing Image Registration Using Deep Convolutional Features」(https://ieeexplore.ieee.org/document/8404075)。他们运用预练习的 VGG 网络层来生成可以一起坚持卷积信息和定位才能的特征描绘子。这些描绘子好像也要优于和 SIFT 类的描绘子,尤其是在 SIFT 包括许多概括或许不能匹配到满足数目的特征点的情况下。

SIFT 和依据深度学习的非刚性配准办法描绘子的试验成果

论文「Multi-temporal Remote Sensing Image Registration Using Deep Convolutional Features」的代码链接如下:https://github.com/yzhq97/cnn-registration。

尽管咱们在 15 分钟内就在自己的图画上完成了对这个配准算法的测验,可是它简直要比咱们在本文前面在 SIFT 类的办法上的完成慢了近 70 倍。

单应性学习

研讨者们并没有局限于神经网络在特征提取上的运用,而是测验运用神经网络来直接学习几许改换,然后对齐两张图画。

1. 监督学习

2016 年,DeTone 等人宣布了论文「深度单应性估量」(https://arxiv.org/pdf/1606.03798.pdf),提出了「Regression HomographyNet」网络,这是一个相似于 VGG 的网络,可以学习到将两幅图画相关起来的单应性改换。这个算法显示了以端到端的办法,一起学习单应性改换以及卷积神经网络参数的优点:不再需求之前的两个进程了!

Regression HomographyNet 示意图

这个网络产生了 8 个实数作为输出。它是以有监督的办法进行练习的,以输出和实在的单应之间的欧氏间隔作为丢失函数。

有监督的深度单应性估量

与一切的监督办法相似,这个单应性估量办法需求带标签的数据对。尽管在人工生成的图画对上得到这样的单应改换矩阵是很简略的,可是在实在的数据上却需求支付昂扬的价值。

2. 监督学习

考虑到这一点,Nguyen 等人提出了一种无监督的深度图画单应估量办法(https://arxiv.org/pdf/1709.03966.pdf)。

他们坚持了本来的 CNN,可是运用了新的、适应于无监督办法的丢失函数:他们挑选了不需求实在标签的光度丢失(photometric loss)。此外,它还核算了参阅图画和待配准改换图画之间的相似度。

L1 光度丢失函数

这个办法引入了两个新的网络结构:张量直接线性改换(Tensor Direct Linear Transform)和空间改换层。咱们在本文中不会胪陈这些组成部分的细节,咱们只需知道这些是被用来运用 CNN 模型的单应性参数输出取得改换后的待配准图画就行了,咱们会用它核算光度丢失函数。

无监督深度单应性估量

这篇文章的作者称,与传统的依据特征的办法比较,这种无监督办法以更快的推理速度得到了适当的或许更高的准确率,以及关于光照改变的鲁棒性。此外,与监督办法比较,它还具有更高的适应才能和功能。

其它办法

1. 强化学习

作为医疗运用中的配准办法,深度强化学习正日益遭到重视。与预界说的优化算法不同,在该办法中,咱们运用练习过的智能体(agent)来进行配准。

依据强化学习的配准流程示意图

  • 2016 年,Liao 等人初次在图画配准中运用强化学习。他们的办法(https://arxiv.org/pdf/1611.10336.pdf)是以用于端到端练习的贪婪监督算法为根底的。其方针是经过找到最佳的动作序列来对齐图画。尽管这种办法优于一些现在最先进的模型,可是它只是被用于刚性改换。
  • 强化学习也被用在愈加杂乱的改换中。在论文「Robust non-rigid registration through agent-based action learning」(https://hal.inria.fr/hal-01569447/document)中,Krebs 等人运用了人工智能体来优化形变模型的参数。这个办法在前列腺核磁共振图画的受试者间配准进步行了测验,在 2D 和 3D 图画上都展现出了杰出的作用。

2. 杂乱改换

现在有很大一部分关于图画配准的研讨重视于医疗图画范畴。一般,因为受试者的部分形变(如呼吸改变、解剖学改变等),两幅医疗图画之间的改换不能简略地经过单应矩阵来描绘。所以需求更杂乱的改换模型,例如可以用位移矢量场表明的微分同胚。

心脏核磁共振图画上的变形网格和位移矢量场的示例

研讨者们已企图运用神经网络来估量这些具有许多参数的大规模形变模型。

  • 第一个比如便是上文提及的 Krebs 等人的强化学习办法。
  • 2017 年,De Vos 等人提出了 DIRNet。这是一个运用 CNN 来猜测控制点的网格的神经网络,这些控制点可以被用来生成依据参阅图画来对待配准图画进行变形的位移图画配准的宿世此生:从人工规划特征到深度学习矢量场。

DIRNet 示意图(运用 MNIST 数据会集的两张图画作为输入)

Quicksilver 配准处理了一个相似的问题。Quicksilver 运用深度「编码器-解码器」网络直接在图画外观上猜测图块级(patch-wise)的形变。

原文地址:

https://medium.com/m/global-identity?redirectUrl=https%3A%2F%2Fblog.sicara.com%2Fimage-registration-sift-deep-learning-3c794d794b7a