Способ формирования панорамных изображений из видеопотока кадров в режиме реального времени
METHOD FOR GENERATING PANORAMIC IMAGES FROM VIDEO STREAM OF FRAMES IN REAL TIME MODE

Изобретение относится к обработке цифровых изображений, а более конкретно к способам формирования панорамных изображений из видеопотока кадров, полученных устройствами для цифровой видеосъемки (камерами, фотоаппаратами, в том числе используемыми совместно с оптическими микроскопами, эндоскопами и т.д.), в режиме реального времени.
Получение панорамных изображений является важной задачей во многих отраслях науки и техники: биологии, медицине (гистологии, цитологии, эндоскопии), материаловедении (металлографии, петрографии, минералогии) и т.д., так как дает возможность исследователю составить более полное представление об изучаемом объекте и уменьшить методическую составляющую погрешности при дальнейшем анализе изображений, что в конечном итоге позволяет получать более точные результаты исследования (диагностики).
Из уровня техники известен способ обработки видеосигнала с цифровой камеры устройства, позволяющий получать панорамные изображения (US 20120257006) [1]. Способ реализован в устройстве, которое помимо прочих элементов включает в себя блок обработки видеосигнала и центральный процессор (ЦП). С помощью блока обработки видеосигнала выполняют интерполяцию пикселей, коррекцию координат, генерацию яркости цветового сигнала, настраивают баланс белого, корректируют экспозицию, сжимают видеопоток и преобразовывают его формат. В одном из вариантов реализации c помощью блока обработки видеосигнала выравнивают стороны смежных кадров. С помощью ЦП контролируют работу всех блоков схемы и осуществляют объединение изображений. Недостатком данного способа является то, что он подходит только для устройств получения кадров, оснащенных сенсорами направления движения и ускорения. Кроме этого, объединение кадров возможно только при движении устройства в горизонтальном направлении.
В патенте US 20090153647 A1 [2] панорамные изображения из видеопотока строят с помощью устройства, которое включает в себя микропроцессор, блок вычислений, блок бинаризации, блок оценки движения, RAM– и EEPROM-памяти. Способ получения панорамного изображения включает в себя следующие основные этапы: получение изображения; бинаризацию изображения; сравнение бинарного изображения текущего кадра с бинарным изображением предыдущего кадра и расчет среднего вектора смещения текущего кадра относительно предыдущего; «пришивку» текущего изображения к панораме, т.е. к результирующему изображению; обрезку изображения для получения прямоугольной панорамы.
В данном способе расчет вектора смещения осуществляется по бинарным изображениям, что в большинстве случаев сопряжено с большой вероятностью ошибки. Анализ бинарных изображений подходит для изображений с достаточным количеством контрастных элементов. Кроме того, операции сравнения изображений проводятся на центральном процессоре, который выполняет их в 3-4 раза медленнее, чем, например, процессор видеокарты.
Наиболее близким к заявленному изобретению является способ формирования составного (панорамного) изображения, в котором предложен оригинальный алгоритм определения последовательности объединения кадров в панорамное изображение (RU 2421814) [3]. Согласно этому способу анализируют входные изображения, поступающие в произвольном порядке и в произвольной ориентации, выявляя на каждом изображении множество особых точек, и определяют дескрипторы этих точек, выполняют попарное сравнение всех входных изображений путем расчета суммы квадратов разностей дескрипторов особых точек и нахождение совместимых особых точек, при этом формируют квадратно-симметричную таблицу, состоящую из количества совместимых особых точек для каждой пары изображений, выбирают первое изображение путем суммирования элементов строк таблицы и выбора изображения с тем порядковым номером, которому соответствует строка с максимальной суммой элементов, результирующее множество особых точек и дескрипторов формируют из множества особых точек и дескрипторов первого выбранного изображения, далее один за другим выбирают изображения, имеющие максимальное количество совместимых особых точек с результирующим множеством особых точек, восстанавливают параметры аффинного вращения/смещения между множеством совместимых особых точек выбранного изображения и результирующим множеством особых точек, найденные параметры аффинного вращения/смещения сохраняют в памяти, после чего результирующее множество особых точек дополняют совместимыми особыми точками и их дескрипторами данного выбранного изображения, предварительно подвергнутого найденному аффинному преобразованию, один за другим выбирают входные изображения и поочередно деформируют, используя сохраненные параметры аффинного вращения/смещения, затем преобразованное изображение включают в результирующее изображение путем нахождения оптимального шва, проходящего через расположенные на перекрывающихся участках пиксели, имеющие минимальные различия, при этом шов между объединенными изображениями заметен как можно меньше.
Данный способ имеет следующие недостатки:
- предложенный алгоритм формирования составного (панорамного) изображения предполагает первичное получение всего множества входных кадров, из которых формируется панорама, с их последующим объединением. Таким образом, данный алгоритм не позволяет строить панорамные изображения в режиме реального времени, когда процесс объединения текущего кадра с результирующим изображением непосредственно следует за операцией его получения через устройство ввода изображения;
- производится попарное сравнение всех входных кадров, включая и те, которые могут не иметь общей области перекрытия друг с другом, что существенно увеличивает время построения панорамы.
Задачей настоящего изобретения является создание способа формирования панорамных изображений из видеопотока кадров, полученных устройствами для цифровой видеосъемки (камерами, фотоаппаратами, в том числе используемыми совместно с оптическими микроскопами, эндоскопами и т.д.), в режиме реального времени.
Для решения поставленной задачи предложен способ формирования панорамных изображений из видеопотока кадров в режиме реального времени, в котором на изображениях кадров выявляют множества характерных элементов, изображение текущего кадра сравнивают с результирующим изображением, далее определяют координаты вектора смещения текущего кадра, и изображение текущего кадра сдвигают на рассчитанные координаты вектора смещения, далее рассчитывают границу области перекрытия и смещенное изображение текущего кадра добавляют к результирующему,  при этом вокруг выявленных характерных элементов строят характерные прямоугольные области, при сравнении изображений на кадрах сравнивают множества характерных прямоугольных областей, при этом изображение текущего кадра сравнивают только с соседними опорными кадрами, входящими в результирующее изображение, и только в областях интереса изображений текущего и опорных кадров, рассчитывают величину средней интенсивности пикселей изображения текущего кадра, определяют координаты вектора смещения текущего кадра относительно соседних опорных кадров, за координаты векторов смещения между текущим и опорными кадрами принимают средние координаты смещения между всеми совместимыми характерными прямоугольными областями на изображениях текущего и опорных кадров с их последующим уточнением путем наложения ограничений на величину среднеквадратичного отклонения координат векторов смещения совместимых характерных прямоугольных областей и на величину разницы между координатами векторов смещения совместимых характерных прямоугольных областей и их средних значений, изображение текущего кадра сдвигают относительно изображений соседних опорных кадров и добавляют к результирующему изображению, операцию сравнения характерных прямоугольных областей изображений осуществляют на процессоре видеокарты.
В частном случае, при величине средней интенсивности пикселей текущего кадра больше заданной пользователем пороговой величины, в качестве характерной прямоугольной области текущего кадра используют всю область интереса текущего кадра.
При реализации способа  анализирует изображения последовательно захваченных кадров с произвольным направлением смещения друг относительно друга.
Сущность заявленного способа заключается в следующем. В отличие от способа–прототипа, в заявленном способе в качестве объектов сравнения на изображениях выступают не дескрипторы особых точек, а характерные прямоугольные области, которые строят вокруг выявленных характерных элементов.  Попиксельное сравнение характерных прямоугольных областей на процессоре видеокарты происходит в 3-4 раза быстрее чем сравнение дескрипторов особых точек на ЦП. При этом изображение текущего кадра сравнивают только с соседними опорными изображениями и только в областях интереса этих кадров. Это позволяет существенно сократить количество операций сравнения изображений и, как следствие, ускорить работу алгоритма.
Выбор сравниваемых характерных прямоугольных областей определяется величиной средней интенсивности пикселей изображения текущего кадра. Это позволяет для изображений с большим числом характерных элементов проводить сравнения не всех соответствующих им характерных прямоугольных областей, а ограничиться для этого всего лишь одной областью – областью интереса текущего кадра. При этом количество операций сравнения характерных прямоугольных областей, а значит и время расчета, уменьшается в несколько десятков раз. Далее определяют координаты вектора смещения текущего кадра относительно соседних опорных кадров. За координаты векторов смещения между текущим и опорными кадрами принимают средние координаты смещения между всеми совместными характерными прямоугольными областями на изображениях текущего и опорных кадров с их последующим уточнением путем наложения ограничений на величину среднеквадратичного отклонения координат векторов смещения совместимых характерных прямоугольных областей и на величину разницы между координатами векторов смещения совместимых характерных прямоугольных областей и их средних значений. Изображение текущего кадра сдвигают относительно изображений соседних опорных кадров. После этого рассчитывают границу области перекрытия, и смещенное изображение текущего кадра добавляют к результирующему. Операция сравнения характерных прямоугольных областей изображений осуществляется на процессоре видеокарты, что обеспечивает более высокую скорость расчетов, т.к. процессор видеокарты позволяет проводить операции попиксельного сравнения изображений в 3-4 раза быстрее, чем центральный процессор.
Технический результат от использования настоящего изобретения состоит в сокращении количества операций сравнения изображений и ускорении расчетов координат векторов смещения текущих кадров относительно опорных, что позволяет в целом ускорить работу алгоритма формирования панорамных изображений и реализовать его в режиме реального времени.
Заявленный способ поясняется чертежами, где на Фиг. 1 представлена схема основных элементов устройства, реализующих заявленный способ; на Фиг. 2, 3 изображена блок-схема процесса получения панорамного изображения; на Фиг.4 представлена блок-схема алгоритма сравнения изображений двух кадров; на Фиг. 5 изображены: область интереса текущего кадра (С) и область интереса опорного кадра (Z); на Фиг. 6 изображены координаты векторов смещения между совместимыми характерными элементами на изображениях текущего и опорного кадров (границы характерных прямоугольных областей не указаны); на Фиг. 7 показан вектор смещения Р текущего кадра относительно опорного; рассчитанная граница области перекрытия, по которой будет производиться объединение двух изображений (жирная линия); результирующее изображение после объединения двух кадров.
Процесс функционирования устройства, реализующего заявленный способ и представленный на Фиг.1, управляется центральным процессором 2 (ЦП). Изображения кадров через устройство ввода изображения 1 (камеры, фотоаппараты, в том числе используемые совместно с оптическими микроскопами, эндоскопами и т.д.) и шину данных, попадают в процессор видеокарты 3, где и подвергаются анализу. В частности, процессор видеокарты 3 осуществляет преобразование изображений из формата RAW в формат RGB и поиск характерных элементов на изображениях. Характерными элементами на изображении могут являться особые точки, линии и характерные области. Несшитые кадры панорамного изображения сохраняются в буфере несшитых кадров 5, роль которого может выполнять оперативная память. Объединенное панорамное изображение сохраняется в устройстве хранения панорамного изображения 4 (реализуемое в виде носителя на жестких магнитных дисках или иного накопителя данных).
x
x
x
x
При работе с оптическим микроскопом, снабженным камерой и автоматизированным столиком, вначале по заданной пользователем области сканирования производится расчет количества снимаемых кадров в этой области (Шаг 1, Фиг. 2). Сканирование кадров производится слева направо и сверху вниз, при этом каждый последующий кадр имеет область перекрытия с предыдущим кадром. Зная размер области перекрытия кадров вдоль одной оси, например, оси Х, которую обозначим через d, размер стороны кадра k и размер области сканирования L вдоль этой же оси, несложно найти количество перекрывающихся кадров N, которые предстоит снять, сканируя вдоль оси X:
.                     (1)
y
x
y
Аналогично производится расчет количества перекрывающихся кадров N, которые предстоит снять, сканируя вдоль оси Y. Тогда общее количество кадров, которое будет получено в результате сканирования, определится как произведение чисел N и N(Шаг 1, Фиг. 2).
При получении текущего кадра система при помощи оператора Собеля [4] осуществляет поиск на его изображении характерных элементов (точек, областей, линий, углов и пр.). В данном способе текущим кадром называется последний полученный системой кадр через устройство ввода изображения (Фиг.1). После этого по изображению текущего кадра производится расчет величины средней интенсивности пикселей Grad (Шаг 2, Фиг. 2).:
,                   (2)
i
i
i
где max(R,G,B) – максимальное значение интенсивности из интенсивностей 3-х цветовых каналов (R-red, G- green, B – blue) для i-го пикселя; М – общее количество пикселей на текущем кадре.
Следует отметить, что вместо оператора Собеля может быть применен любой другой оператор, выделяющий характерные элементы на изображении.
x
y
x
y
x
x
y
y
Фиг. 4 описывает алгоритм сравнения двух кадров. На шаге 3.1 на изображении текущего кадра выделяется область интереса текущего кадра (С) (Фиг. 5), которая с вероятностью 100% попадает в область перекрытия с изображением на опорном кадре. В данном способе опорным кадром называется кадр, который имеет с текущим кадром общую область перекрытия. Область интереса текущего кадра - это область, которая с вероятностью 100% попадает в область перекрытия текущего кадра с опорным. Область интереса опорного кадра - область, которая имеет ненулевую вероятность попасть в область перекрытия опорного кадра с текущим. Размеры области интереса текущего кадра (С) рассчитываются, исходя из того, что размер области перекрытия кадров по всем осям (d и d) при автоматизированном сканировании устанавливается равным 3/4 длины кадра вдоль соответствующих осей (L и L): d=3/4L и d=3/4L. Если, к примеру, сканирование образца производится вдоль оси Х, тогда размер области (С) вдоль оси Х устанавливается равным: , а вдоль оси Y: , где W - величина погрешности в определении координат автоматизированного столика (Фиг. 5). В результате на изображении текущего кадра выделяют область (С), которая с вероятностью 100% попадает в область перекрытия с опорным кадром. Область интереса опорного кадра (Фиг. 5) – область (Z), - получают путем увеличения зоны перекрытия кадров на величину W слева: . В этой области вероятность попадания в область перекрытия с текущим кадром отлична от нуля.
0
0
min
min
0
0
min
min
0
0
На шаге 3.2 (Фиг. 4) производится сравнение величины Grad (2) текущего кадра с заданной пороговой величиной - Grad. Если Grad > Grad, то производится поиск всей области интереса текущего кадра (С) в области интереса опорного кадра (Z) площадным методом (шаг. 3.3, Фиг. 4). Для этого область (С) помещается в левый верхний угол области (Z) и рассчитывается разница в интенсивностях каналов RGB соответственных пикселей (пикселей, находящихся на одинаковых местах в сравниваемых областях). После этого для каждой пары пикселей выбирается максимальное из трех значений разности интенсивностей по трем цветовым каналам: ∆I = max(∆R,∆G,∆B) и все значения ∆I суммируются по всем соответственным пикселям:. Величина I характеризует степень совпадения двух областей. Далее область (С) смещается на один пиксель вправо по области (Z) и снова рассчитывается величина I. Когда область (С) дойдет до правого края области (Z), она сместится на один пиксель вниз и пойдет в обратную сторону. В результате этого будет проведено сравнение области интереса (С) со всеми такими же по размеру областями (С”), находящимися в области (Z), и для каждой такой пары областей будет рассчитана величина I. Далее среди всех значений I выбирается минимальное значение: I=min(I). Если I<I (I – заданный параметр), то области (С) и (С”), для которых I=Iи I<I считаются совместимыми, т.е. совпавшими (Шаг 3.4, Фиг. 4). Если величина Grad < Grad,то переходят ко второму методу.
Суть второго метода состоит в том, что вокруг каждого характерного элемента, найденного на изображении текущего кадра при помощи оператора Собеля, строится прямоугольник, таким образом, что характерный элемент оказывается вписанным в этот прямоугольник, т.е. длины сторон прямоугольника равны проекциям характерного элемента на оси X и Y декартовой системы координат (Шаг. 3.5, Фиг. 4). Такой прямоугольник с вписанным в него характерным элементом будем далее называть характерной прямоугольной областью. В данном методе размер характерной прямоугольной области не может превышать 64х64 пикселя. Если размер характерного элемента более 64 пикселей хотя бы по одной координате, то такой элемент разбивается на несколько характерных элементов. Пусть в результате действия оператора Собеля найдено n характерных элементов и построено n характерных прямоугольных областей в области интереса текущего кадра (С). Далее производится сравнение каждой n–ой характерной прямоугольной области в области интереса текущего кадра со всеми возможными областями такого же размера в количестве n”, находящимися в области интереса опорного кадра (Z) аналогично тому, как это делалось в первом методе (Шаг 3.6, Фиг. 4). В результате этого обнаруживаются q пар совместимых характерных прямоугольных областей (в первом способе обнаруживается 1 пара), для которых находятся разности их координат по осям X и Y: , , где h = 1…q (Фиг. 6, для наглядности разность координат указана не между характерными прямоугольными областями, а между вписанными в них характерными элементами). Далее производится проверка правильности найденных совместимых характерных пар прямоугольных областей (Шаг 3.7, Фиг. 4). Для этого вначале проверяется верность следующих соотношений:
,                     (3)
Дх
Дy
где  и  - средние значения разностей координат между совместимыми характерными прямоугольными элементами по осям X и Y, а ДX и ДY – заданные пользователем параметры. Если для каких-то пар, хотя бы одно из неравенств (3) не выполняется, эти пары исключаются из рассмотрения, а величины  и  пересчитываются. Второе соотношение накладывает ограничение на среднеквадратичные отклонения величин  и  (Sи Sсоответственно) (Шаг 3.7, Фиг. 4):
(4)
Дх0
Дy0
здесь Sи S– некоторые заданные пользователем параметры. Если оба неравенства выполняются, то за координаты вектора смещения P (Фиг. 7) текущего кадра относительно опорного принимаются средние значения разности координат:  и  (Шаг 3.8., Фиг.4). Если хотя бы одно из неравенств (4) не выполняется, то считается, что общая область перекрытия между текущим и опорным кадром не найдена. Текущий кадр, у которого не были найдены области перекрытия с соседними опорными кадрами, определяется как несшитый кадр и сохраняется в буфер несшитых кадров (Шаг 4, Фиг 2).
Фиг. 7 демонстрирует этап добавления текущего кадра к опорному. После расчета координат вектора Р текущий кадр смещается относительно опорного на вектор Р, и рассчитываются координаты границы области перекрытия между текущим и опорным кадром, идущей по краю опорного кадра (жирная линия на Фиг. 7). Далее область текущего кадра, находящаяся справа и сверху от границы области перекрытия присоединяется к опорному кадру и получается результирующее изображение (Шаг 5, Фиг. 2) Если по окончании процесса построения панорамного изображения в буфере несшитых кадров остались несшитые кадры, то они вставляются в результирующее изображение на основании координат, полученных с автоматизированного столика во время их сканирования. (Шаг 6. Фиг. 3). Результирующее изображение, полученное после окончания сшивки всех кадров, называется панорамным изображением. Оно сохраняется в памяти компьютера (Шаг 7, Фиг 3).
x
y
Если процесс сшивки двух кадров происходит не на автоматизированном, а на механическом столике, предполагающем ручное перемещение образца, то в этом случае происходит получение двух последовательных кадров через устройство ввода изображения. Первый из полученных кадров будет считаться опорным, а второй – текущим. В качестве области интереса текущего кадра выбирается центральная область кадра с длинами сторон D и D (по осям X и Y), которые рассчитываются по формулам:
и ,            (5)
х
y
где k и k – длины сторон кадра вдоль осей X и Y, W – величина погрешности в определении координат столика. В качестве области интереса опорного кадра выбирается все изображение опорного кадра (Фиг. 8, области интереса текущего и опорного кадров заштрихованы). В остальном алгоритм сравнения кадров остается прежним (Шаг 8, Фиг 2).
Таким образом, заявленный способ позволяет сократить количество операций сравнения изображений и ускорить расчет координат векторов смещения текущих кадров относительно опорных, что позволяет в целом ускорить работу алгоритма формирования панорамных изображений и реализовать его в режиме реального времени.
Источники информации
1. US 20120257006, публ. 11.10.2012, патентообладатель Casio Computer Co., Ltd.
2. US 20090153647 A1, публ. 18.06.2009, патентообладатель Nxp B.V.
3. RU 2421814, публ. 10.01.2015, патентообладатель ФГБОУ ВПО «Южно-Российский государственный университет экономики и сервиса».
4. Duda R., Hart P. Pattern Classification and Scene Analysis. — John Wiley and Sons, 1973. — P. 271—272.