MainPage/Computer Vision/Lecture/4-4 RAW
语音识别:Youtube 转文本
断句与标点:chatGPT 4o
翻译:chatGPT 4o
Как показали исследования, наиболее оптимальным детектором углов является широко известный детектор Харриса. Harris & Stevens улучшили детектор Моравеца, учитывая анизотропию по всем направлениям, то есть они рассматривают производные яркости изображения для исследования изменений яркости по множеству направлений. Также они вводят в рассмотрение производные по некоторым принципиальным направлениям для данного изображения.
研究表明,最优的角点检测器是广为人知的哈里斯检测器。Harris 和 Stevens 改进了 Moravec 的检测器,考虑了各个方向的各向异性,也就是说,他们研究了图像亮度导数以研究多个方向上的亮度变化。他们还引入了一些针对图像特定方向的导数进行研究。
Рассмотрим окно W. Обычно размер окна равен 5 на 5 пикселей, но может зависеть от размера изображения. R имеет координаты X и Y (имеется в виду центр окна), а также сдвиг δu и δv. Взвешенная сумма квадрата разности между сдвинутым и исходным окном, то есть изменение окрестности точки X, Y при сдвиге на δu, δv определяется функцией E, которая представлена на слайде. W(x,y) – это весовая функция, обычно используется функция Гаусса или бинарное окно. M – это автокорреляционная матрица. Угол характеризуется большими изменениями функции E(x,y) по всем возможным направлениям X и Y, что эквивалентно большим по модулю собственным значениям матрицы. Поскольку напрямую считать собственные значения является трудоемкой задачей, Харрисом и Стивенсом была предложена мера отклика, которая также представлена на слайде. K в данном случае – эмпирическая константа. Таким образом, значение положительно для угловых особых точек.
我们来看看窗口 W。通常,窗口的大小为 5x5 像素,但这取决于图像的大小。R 具有 X 和 Y 坐标(表示窗口的中心),以及 δu 和 δv 的偏移量。偏移窗口与原始窗口之间的加权平方差之和,即在 δu 和 δv 偏移下点 X, Y 附近的变化由函数 E 定义,具体公式如下。W(x,y) 是权重函数,通常使用高斯函数或二值窗口。M 是自相关矩阵。角点的特征是函数 E(x,y) 在所有可能的 X 和 Y 方向上发生大的变化,这相当于矩阵的大幅变化的特征值。由于直接计算特征值是一个复杂的任务,Harris 和 Stevens 提出了响应度量,如下所示。K 是经验常数。因此,对于角点,响应值是正的。
Затем производится отсечение точек по найденному порогу R, то есть точки, у которых значения R меньше некоторого порога, исключаются из рассмотрения. Далее находятся локальные максимумы функции отклика, то есть производится non-maximal suppression в окрестности заданного радиуса. Детектор Харриса инвариантен к поворотам, частично инвариантен к аффинным изменениям интенсивности. Но к недостаткам стоит отнести чувствительность к шуму и зависимость детектора от масштаба изображения. Для устранения этого недостатка используют многошкальную модификацию детектора Harris-Laplace.
然后,根据找到的阈值 R 进行点的筛选,也就是说,值 R 小于某个阈值的点被排除在外。接下来,找到响应函数的局部最大值,即在给定半径范围内进行非极大值抑制。哈里斯检测器对旋转不变,对强度的仿射变化部分不变。但它的缺点是对噪声敏感,并且依赖于图像的尺度。为了克服这个缺点,使用了多尺度的 Harris-Laplace 检测器。
А теперь рассмотрим подробнее наиболее практически значимые дескрипторы особых точек.
现在,我们详细讨论一些实际应用中重要的特征点描述子。
Вообще, SIFT является комплексным решением для поиска особых точек и определения дескрипторов, но мы рассмотрим здесь только сам принцип построения дескрипторов. В методе SIFT дескриптором является вектор. Здесь схематично показана часть изображения (имейте в виду слева), и справа полученный на её основе дескриптор.
实际上,SIFT 是一个用于检测特征点和确定描述子的综合解决方案,但我们这里只讨论描述子的构建原理。在 SIFT 方法中,描述子是一个向量。下图展示了左侧图像的一部分,以及基于它生成的描述子。
Для начала посмотрим на левое изображение. Здесь вы можете видеть пиксели, обозначенные маленькими квадратиками. Эти пиксели берутся из квадратного окна дескриптора, которое в свою очередь поделено еще на 4 равных части, дальше будем называть их регионами. Маленькая стрелочка в центре каждого пикселя обозначает градиент этого пикселя. Интересно то, что центр этого окна находится между пикселями. Его надо выбирать как можно ближе к точным координатам ключевой точки. Последняя деталь, которую можно увидеть, – это круг, обозначающий окно свертки с ядром Гаусса, аналогично окну для вычисления направления ключевой точки. Для этого ядра определяется сигма, равная половине ширины окна дескриптора. В дальнейшем значение каждой точки окна дескриптора будет умножаться на значение гауссова ядра в этой точке как на весовой коэффициент.
首先看看左侧的图像。这里你可以看到用小方块表示的像素。这些像素来自描述子的方形窗口,该窗口又分为四个相等的部分,我们称之为区域。每个像素中心的小箭头表示该像素的梯度。值得注意的是,该窗口的中心位于像素之间。它应尽可能靠近特征点的精确坐标。最后,你可以看到一个圆圈,表示卷积窗口和高斯核,类似于用于计算特征点方向的窗口。高斯核的 σ 等于描述子窗口宽度的一半。接下来,描述子窗口中每个点的值将乘以该点高斯核的值作为权重系数。
Теперь посмотрим на правое изображение. Здесь мы можем видеть схематически изображенный дескриптор особой точки размерности 2 на 2 на 8. Первые две цифры в значении размерности – это количество регионов по горизонтали и по вертикали (те квадраты, которые охватывали некоторый регион пикселей на левом изображении). Справа охватывают гистограммы, построенные на пикселях этих регионов. Соответственно, третья цифра в размерности дескриптора означает количество компонент гистограммы этих регионов. Гистограммы в регионах вычисляются также, как и гистограммы направлений, с тремя небольшими дополнениями.
现在看看右侧的图像。这里展示了特征点描述子的示意图,大小为 2x2x8。尺寸的前两个数字表示水平和垂直方向上的区域数量(即左侧图像中覆盖某些像素区域的方块)。右侧是基于这些区域中的像素生成的直方图。因此,描述子的第三个尺寸表示这些区域直方图的分量数量。区域中的直方图按方向直方图计算,有三个小的补充。
Во-первых, каждая гистограмма также покрывает участок в 360 градусов, но делит его на 8 частей. Во-вторых, в качестве весового коэффициента берется значение гауссова ядра, общего для всего дескриптора (об этом уже говорилось). В-третьих, в качестве ещё одних весовых коэффициентов берутся коэффициенты трёхлинейной интерполяции. Каждому градиенту в окне дескриптора можно приписать 3 вещественные координаты: X, Y и Θ. X – расстояние до градиента по горизонтали, Y – расстояние по вертикали, Θ – направление градиента в гистограмме. Имеется в виду соответствующая гистограмма дескриптора, в которую вносит вклад этот градиент. За точку отсчета принимается левый нижний угол окна дескриптора. Начальное значение гистограммы – 0. За единичные отрезки берутся размеры регионов по горизонтали и вертикали для X и Y соответственно и количество градусов в компоненте гистограммы для Θ. Коэффициент трёхлинейной интерполяции определяется для каждой координаты X, Y и Θ градиента как единица минус d, где d равно расстоянию координаты градиента до середины того единичного промежутка, в который эта координата попала. Каждое вхождение градиента в гистограмму умножается на все три весовых коэффициента трёхлинейной интерполяции.
首先,每个直方图覆盖 360 度,但将其分为 8 部分。其次,作为权重系数的是整个描述子的高斯核值(前面已经提到)。第三,另一个权重系数是三线性插值系数。描述子窗口中的每个梯度可以赋予三个实数坐标:X、Y 和 Θ。X 是水平梯度的距离,Y 是垂直梯度的距离,Θ 是梯度在直方图中的方向。这意味着描述子的相应直方图,其中这个梯度有贡献。描述子窗口的左下角被认为是基点。直方图的初始值为 0。单位长度为区域的水平和垂直尺寸,和直方图分量的角度数量。三线性插值系数定义为每个梯度坐标 X、Y 和 Θ 减去 d,d 等于梯度坐标到该单位区间中心的距离。每个梯度的直方图输入乘以所有三个三线性插值权重系数。
Дескриптор ключевой точки состоит из всех полученных гистограмм. Как уже было сказано, размерность дескриптора на рисунке – 32 компоненты (2 на 2 на 8), но на практике используются дескрипторы размерности 128 компонент (4 на 4 на 8). Полученный дескриптор нормализуется, после чего все компоненты, значения которых больше 0,2, урезаются до значения 0,2. Затем дескриптор нормализуется еще раз. В таком виде дескриптор готов к использованию.
特征点描述子由所有生成的直方图组成。图中描述子的尺寸为 32(2x2x8),但实际中使用 128 尺寸的描述子(4x4x8)。生成的描述子被归一化,然后将所有超过 0.2 的分量裁剪为 0.2。之后再一次归一化。此时,描述子已准备好使用。
SIFT-дескрипторы не лишены недостатков: не все полученные точки и их дескрипторы будут отвечать предъявленным требованиям. Естественно, это будет сказываться на дальнейшем решении задачи сопоставления изображений. В некоторых случаях решение может быть не найдено, даже если оно существует. Например, при поиске аффинных преобразований или фундаментальной матрицы по двум изображениям кирпичной стены может быть не найдено решение из-за того, что стена состоит из повторяющихся объектов (кирпичей), которые делают похожими между собой дескрипторы разных точек. Несмотря на это обстоятельство, данные дескрипторы хорошо работают во многих практически важных случаях. Одним существенным недостатком является тот факт, что данный дескриптор запатентован.
SIFT 描述子并非没有缺点:并非所有获得的点和描述子都满足要求。显然,这将影响图像匹配任务的解决。在某些情况下,即使存在解决方案也可能找不到。例如,在寻找仿射变换或根据两个图像的基本矩阵时,可能找不到解决方案,因为墙由重复的对象(砖块)组成,使得不同点的描述子非常相似。尽管如此,这些描述子在许多实际重要的情况下表现良好。一个重要的缺点是该描述子是专利的。
ORB (Oriented FAST and Rotated BRIEF) детектор, является альтернативой SIFT, который не требует лицензирования и работает быстрее. ORB улучшает алгоритмы FAST и BRIEF, добавляя ротационную инвариантность и устойчивость к шуму.
ORB(Oriented FAST and Rotated BRIEF)检测器是 SIFT 的替代方案,它不需要许可并且运行更快。ORB 改进了 FAST 和 BRIEF 算法,增加了旋转不变性和抗噪性。
В общем, ORB определяет ключевые точки с помощью FAST детектора и вычисляет их ориентацию. Затем применяет BRIEF для описания этих точек. ORB позволяет эффективно использовать ресурсы и применяется в реальном времени для задач компьютерного зрения.
总体而言,ORB 使用 FAST 检测器确定关键点并计算其方向。然后使用 BRIEF 描述这些点。ORB 允许有效地使用资源,并在计算机视觉任务中实时应用。
Теперь рассмотрим конкретные методы трекинга ключевых точек в контексте нахождения оптического потока. Начнем, пожалуй, с самого широко известного метода трекинга – алгоритма Лукаса-Канаде. Данный метод оперирует понятием оптического потока, то есть изображением видимого движения объектов, получаемого в результате перемещения наблюдателя относительно сцены. Оптический поток – это изображение видимого движения, представляющее собой сдвиг каждой точки между двумя изображениями. По сути, он представляет собой поле скоростей, так как сдвиг с точностью до масштаба эквивалентен мгновенной скорости. Суть понятия оптического потока в том, что для каждой точки изображения находится такой сдвиг, чтобы исходной точке соответствовали точки на втором изображении.
现在我们考虑在寻找光流背景下的特征点跟踪的具体方法。首先介绍最广为人知的跟踪方法——Lucas-Kanade 算法。该方法使用光流的概念,即观察者相对于场景移动时获得的对象可见运动图像。光流是可见运动的图像,表示两幅图像之间每个点的位移。实际上,它代表了速度场,因为位移相当于瞬时速度。光流的本质在于为图像中的每个点找到一个位移,使得原始点对应于第二幅图像中的点。
Поиск соответствий точек – это отдельный вопрос. Для этого нужно взять какую-то функцию точки, которая не изменяется в результате смещения. Обычно считается, что у точек сохраняется интенсивность, то есть яркость или цвет для цветных изображений. Но можно считать одинаковыми точки, у которых сохраняется величина градиента, его величина или его направление, или другие характеристики. Очевидно, сохранение интенсивности дает сбои, если меняется освещенность или угол падения света. Тем не менее, если речь идет о видеопотоке, то, скорее всего, между двумя кадрами освещение сильно не меняется, хотя бы потому, что между ними проходит малый промежуток времени. Поэтому часто используют интенсивность в качестве функции, сохраняющейся у точки.
寻找点对应是一个单独的问题。为此,需要取一个在位移过程中不变的点函数。通常认为点的强度保持不变,即亮度或彩色图像的颜色。但也可以认为梯度的大小、方向或其他特征保持不变。显然,如果照明或光线角度变化,强度保持将失败。然而,如果是视频流,则两帧之间的照明变化不大,至少是因为两者之间时间间隔很小。因此,通常使用强度作为保持点的函数。
Оптический поток можно путать с поиском и сопоставлением характерных точек, но это разные вещи. Суть оптического потока в том, что он ищет какие-то особенные точки, а по параметрам изображений пытается определить, куда сместилась произвольная точка. Есть два варианта расчета оптического потока: плотный (dense) и выборочный (sparse). Sparse поток рассчитывает сдвиг отдельно заданных точек, например, точек, выделенных некоторым детектором особенностей. Dense поток считает сдвиг всех точек изображения. Естественно, выборочный поток вычисляется быстрее, однако для некоторых алгоритмов разница не такая уж и большая. Для некоторых задач требуется нахождение потока во всех точках изображений.
光流可以与特征点搜索和匹配混淆,但这是不同的概念。光流的本质在于寻找一些特殊的点,并根据图像参数确定任意点的位移。有两种计算光流的方式:稀疏(sparse)和密集(dense)。稀疏流计算特定点的位移,例如由某个特征检测器标记的点。密集流计算图像中所有点的位移。显然,稀疏流计算更快,但对于某些算法差异不大。某些任务需要计算图像中所有点的光流。
На слайде представлена обобщенная схема вычисления оптического потока. Полагается, что на изображении I интенсивность в точке (x, y) в момент времени t такая же, как в координатах, куда переместилась данная точка за время Δt. Далее используется разложение в ряд Тейлора, после чего для оптического потока необходимо разрешить представленные на слайде соотношения.
下图展示了计算光流的概述。假定图像 I 中点 (x, y) 的强度在时间 t 与该点在 Δt 时间内移动到的新坐标相同。接下来使用泰勒级数展开,然后需要解决下图中的关系式来计算光流。