УСТРОЙСТВО ВЫЧИСЛЕНИЯ КАРТЫ ДИСПАРАТНОСТИ ДЛЯ СТЕРЕОИЗОБРАЖЕНИЯ

Полезная модель относится к области обработки стереопар (изображений, полученных одновременно с двух камер), а именно к устройствам вычисления карты диспаратности для стереоизображения и может применяться в системах видеоаналитики и видеонаблюдения.
Активное развитие технологий позволяет значительно повысить качество вводимого с различных источников видеосигнала за счет увеличения разрешения и частоты кадров видеопотока. Большинство видеоаналитических задач требует обработки видеоданных в реальном масштабе времени. Решение этих задач с помощью универсальных или сигнальных процессоров не позволяет обеспечить требуемую скорость обработки.
Альтернативой является создание специализированных аппаратных ускорителей для реализации различных функций, используемых в алгоритмах видеоаналитки, в частности для построения карты диспаратности. Современный уровень развития технологии СБИС не позволяет разместить на кристалле достаточное количество памяти для хранения полноразмерных кадров изображения высокого разрешения, поэтому в ускорителях применяются алгоритмы, использующие небольшие по объему буферы строк.
Известно устройство вычисления карты диспаратности (US 20120163703 A1), в котором изображения с камер проходят предварительное устранение искажений и ректификацию, затем вычисляют стоимость соответствия для пикселей изображения. Далее при помощи алгоритма Витерби вычисляют несколько различных карт диспаратности для нескольких значений порога разрыва диспаратности в алгоритме. Затем у каждой из карт диспаратности отфильтровывают часть пикселей, принадлежащих областям окклюзии при помощи простого фильтра, запрещающего сопоставлять один и тот же пиксель второго изображения нескольким пикселям первого. На основе этих нескольких отфильтрованных изображений синтезируют итоговую карту диспаратности.
Недостаток алгоритма, применяемого в данном устройстве, состоит в том, что несмотря на вычисление с несколькими различными порогами, ошибки в вычислении диспаратности нередко могут повторяться систематически для нескольких порогов и соответственно оставаться в итоговой карте диспаратности. Кроме того итоговая карта диспаратности может быть не очень точной и несколько сегментированной. Алгоритм также предъявляет высокие требования к памяти.
Наиболее близким к заявленной полезной модели является устройство вычисления карты диспаратности для стереоизображения, описанное в патенте РФ №2419880, в котором производят предобработку изображения, затем вычисляют первичную карту диспаратности по стандартным алгоритмам стерео-соответствия. После чего вычисляют необходимую степень (силу) фильтрации и размер ядра, и запускают итеративный процесс фильтрации, сходимость которой оценивают внутри алгоритма по критериям сходимости. В результате получают итоговую карту дисипаратности. Данное устройство выбрано в качестве прототипа заявленной полезной модели.
Недостаток устройства-прототипа состоит в том, что в после получения первичной карты дисипаратности в них применяют сложную рекурсивную фильтрацию первичной карты диспаратности для получения итоговой карты диспаратности, что требует большого объема памяти, а также существенно снижает скорость вычислений, то есть быстродействие устройства-прототипа.
Задачей заявленной полезной модели является создание устройства вычисления карты диспаратности для стереоизображения, которое позволяет обрабатывать стереоизображения высокого разрешения в реальном масштабе времени, при этом требует меньшего объема внутренней памяти (а именно объема, достаточного для хранения нескольких строк изображения), а также обладает большим быстродействием и производительностью, за счет применения более простой процедуры фильтрации, позволяющей значительно повысить скорость обработки информации и работать с большими объемами данных в реальном времени.
Поставленная задача решена путем создания устройства вычисления карты диспаратности для стереоизображения, содержащего контроллер прямого доступа к памяти, выполненный с возможностью обмена данными с внешней памятью, который соединен с внутрикристальной видеопамятью, которая соединена с входящими в состав акселератора конвейерами обработки левого и правого изображения, блоком перекрестной проверки и блоком пост-фильтрации, причем
- контроллер прямого доступа к памяти выполнен с возможностью построчной записи левого и правого исходных изображений из внешней памяти в буферы строк левого и правого исходного изображения, размещенные во внутрикристальной видеопамяти;
- конвейеры обработки левого и правого изображения выполнены с возможностью обработки строк левого и правого исходных изображений, при этом формирования левой и правой первичных карт диспаратности и записи их в буферы временного хранения левого и правого изображения, размещенные во внутрикристальной видеопамяти;
- блок перекрестной проверки выполнен с возможностью осуществления перекрестной проверки на соответствие левой и правой первичных карт диспаратности, при этом формирования точной карты диспаратности и записи ее в промежуточный буфер, размещенный во внутрикристальной видеопамяти;
- блок пост-фильтрации выполнен с возможностью осуществления пост-фильтрации точной карты диспаратности, состоящей из нескольких этапов фильтрации, при этом формирования итоговой карты диспаратности и записи ее сначала в буфер результатов, размещенный во внутрикристальной видеопамяти;
- контроллер прямого доступа к памяти выполнен с возможностью записи итоговой карты диспаратности из буфера результатов во внешнюю память.
В предпочтительном варианте осуществления устройства буферы, размещенные во внутрикристальной видеопамяти, организованы по принципу двойной буферизации и имеют размер в несколько строк изображения.
В предпочтительном варианте осуществления устройства буферы размещены в общем поле внутрикристальной видеопамяти.
В предпочтительном варианте осуществления устройства до формирования первичных карт диспаратности конвейеры обработки левого и правого изображения выполнены с возможностью предварительной обработки левого и правого исходных изображений, при этом обработки левого и правого исходных изображений фильтром Собеля и определения слаботекстурированных областей левого и правого исходных изображений, а блок пост-фильтрации выполнен с возможностью осуществления замены слаботекстурированных областей левого и правого исходных изображений на недостоверные значения во время пост-фильтрации.
В предпочтительном варианте осуществления устройства конвейеры обработки левого и правого изображения выполнены с возможностью обработки строк левого и правого исходных изображений, при этом формирования левой и правой первичных карт диспаратности методом Semi-global block matching (SGBM).
В предпочтительном варианте осуществления устройства блок перекрестной проверки выполнен с возможностью осуществления перекрестной проверки на соответствие левой и правой первичных карт диспаратности, а именно проверки первичной карты диспаратности левого изображения с помощью первичной карты диспаратности правого изображения (Left-Right Check).
В предпочтительном варианте осуществления устройства блок пост-фильтрации выполнен с возможностью осуществления пост-фильтрации точной карты диспаратности, состоящей из этапа фильтрации пиков, этапа фильтрации слаботекстурированных областей, этапа интерполяции и этапа медианной фильтрации.
В предпочтительном варианте осуществления устройство содержит процессор RISC/DSP, который соединен с внутрикристальной видеопамятью и выполнен с возможностью программирования контроллера прямого доступа к памяти и входящих в состав акселератора конвейеров обработки левого и правого изображения, блока перекрестной проверки и блока пост-фильтрации, а также с возможностью дополнительной обработки данных, находящихся во внешней памяти или внутрикристальной видеопамяти.
Для лучшего понимания заявленной полезной модели далее приводится ее подробное описание с соответствующими графическими материалами.
Фиг. 1. Структурная схема устройства вычисления карты диспаратности для стереоизображения, выполненная согласно полезной модели.
Фиг. 2. Блок-схема поэтапного вычисления карты диспаратности для стереоизображения, выполненная согласно полезной модели.
Фиг. 3. Блок-схема вычисления первичной диспаратности и перекрестной проверки, выполненная согласно полезной модели.
Рассмотрим кратко работу заявленного устройства вычисления карты диспаратности для стереоизображения (Фиг. 1). Вычисление карты диспаратности основано на вычислении первичной карты диспаратности для левого и правого изображений стереоизображения методом Semi-global block matching (SGBM), проверке карты диспаратности левого изображения с помощью карты диспаратности правого изображения (Left-Right Check) и последующей пост-фильтрации полученной карты диспаратности.
Левое и правое исходные изображения построчно записывают с помощью контроллера (1) прямого доступа к памяти (DMA - Direct Memory Access) из внешней памяти (2) в буферы строк, размещенные в внутрикристальной видеопамяти (3). Буферы организованы по принципу двойной буферизации: каждый буфер состоит из двух частей, причем во время загрузки данных в первую часть буфера осуществляют обработку данных из второй части буфера. Конвейеры (4) обработки левого и правого изображения, входящие в состав акселератора SGBM, вычисляют первичные карты диспаратности, которые затем проверяют на соответствие с помощью блока (5) перекрестной проверки, в результате чего формируют точную карту диспаратности, которую записывают в буфер строк, размещенный в видеопамяти (3). Промежуточные результаты вычислений записывают в буферы строк, также размещенные в видеопамяти (3). С помощью блока (6) пост-фильтрации считывают точную карту диспаратности из буфера строк, выполняют процедуру пост-обработки, которая может состоять из нескольких этапов фильтрации, записывают полученную итоговую карту диспаратности в буфер строк в видеопамяти (3), откуда ее считывают контроллером (1) прямого доступа к памяти и записывают во внешнюю память (2). Выходной буфер строк также организован по принципу двойной буферизации: во время записи результатов в одну часть буфера осуществляется выгрузка данных во внешнюю память из второй части буфера.
Рассмотрим более подробно работу заявленного устройства вычисления карты диспаратности для стереоизображения (Фиг. 1). Контроллер (1) прямого доступа к памяти считывает из внешней памяти (2) несколько строк исходного левого и правого изображения (минимум четыре строки) и записывает их в буферы 0 и 1 левого и правого исходного изображения, размещенные в видеопамяти (3). После заполнения буферов 0 левого и правого исходного изображения, конвейеры (4) обработки левого и правого изображения начинают параллельную обработку левого и правого изображения, при этом при этом предварительно фильтруют его с помощью фильтра Собеля, сохраняя результат в буфере временного хранения в видеопамяти (3), а затем формируют первичные карты диспаратности методом Semi-global block matching (SGBM) для нескольких строк исходного левого и правого изображения и записывают их в буфер первичной диспаратности, также размещенный в видеопамяти (3). Накопленные стоимости сохраняют в процессе вычисления в буфере накапливаемых стоимостей в видеопамяти (3). Во время обработки конвейерами (4) обработки левого и правого изображения данных из буферов 0 левого и правого исходного изображения контроллер (1) прямого доступа к памяти считывает из внешней памяти (2) следующие несколько строк исходного левого и правого изображения в буферы 1 левого и правого исходного изображения, размещенные в видеопамяти (3). Размеры буферов 0 и 1 левого и правого исходного изображения должны быть одинаковыми. После завершения обработки данных из буферов 0 конвейеры (4) обработки левого и правого изображения переходят к обработке данных из буферов 1, а после обработки данных из буферов 1 снова переходят к обработке данных из буферов 0, при условии загруженности данных в эти буферы.
Левую и правую первичные карты диспаратности считывают из буфера первичной диспаратности с помощью блока (5) перекрестной проверки, который осуществляет перекрестную проверку первичных карт диспаратности (проверку первичной карты диспаратности левого изображения с помощью первичной карты диспаратности правого изображения (Left-Right Check)), при этом формирует точную карту диспаратности и записывает ее в буфер точной диспаратности, размещенный во внутрикристальной видеопамяти (3). Из этого буфера точную карту диспаратности считывают с помощью блока (6) пост-фильрации, который осуществляет пост-фильтрацию точной карты диспаратности, при этом формирует итоговую плотную карту диспаратности и записывает ее в буфер 0 результатов, размещенный в видеопамяти (3). После заполнения буфера 0 результатов контроллер (1) прямого доступа к памяти считывает итоговую карту диспаратности из видеопамяти (3) и записывает ее во внешнюю память (2).
Одновременно со считыванием итоговой карты диспаратности из буфера 0 результатов контроллером (1) прямого доступа к памяти, блок (6) пост-фильтрации продолжает записывать следующие строки итоговой карты диспаратности в буфер 1 результатов. Размеры буферов 0 и 1 результатов должны быть одинаковыми. После заполнения буфера 1 результатов блок (6) пост-фильтрации снова переходит к заполнению буфера 0 при условии его освобождения контроллером (1) прямого доступа к памяти.
Процессор RISC/DSP (7) осуществляет программирование блоков (4)-(6) акселератора и контроллера (1) прямого доступа к памяти, а также может выполнять дополнительную обработку данных, находящихся во внешней памяти (2) или в видеопамяти (3).
Фиг. 2 отображает порядок вычисления диспаратности заявленным устройством.
Входные растровые изображения построчно сохраняют в буферах 0 и 1 левого и правого исходного изображения 10, размещенных в видеопамяти (3).
Операции 20-130 выполняют периодически при поступлении новых строк в соответствующие буферы.
Операции 20 и 40 выполняют с помощью конвейеров (4) обработки левого и правого изображения.
При выполнении операции 20 считывают исходные изображения из буферов 0 и 1 левого и правого исходного изображения 10 и обрабатывают их фильтром Собеля, а также определяют пиксели, относящиеся к слаботекстурированным областям. Результат выполнения операции 20 сохраняют в буфере 30 временного хранения, размещенном в видеопамяти (3) и также рассчитанном на небольшое количество строк каждого изображения.
При выполнении операции 40 считывают данные из буфера 30 временного хранения и вычисляют первичную диспаратность для каждого из изображений при помощи известного из уровня техники метода Semi-global block matching (SGBM). Метод SGBM выполняют с накоплением стоимости по одному или двум направлениям - влево и вниз, что позволяет осуществлять вычисление диспаратности за один проход по изображению. Промежуточные накапливаемые стоимости соответствия по направлению вниз сохраняют в буфере 50 накапливаемых стоимостей в видеопамяти (3). Полученную промежуточную карту диспаратности записывают в буфер 60 первичной карты диспаратности в видеопамяти (3), рассчитанный на хранение нескольких строк каждого изображения.
При выполнении операции 70, с помощью блока (5) перекрестной проверки считывают диспаратность левого изображения из буфера 60 первичной карты диспаратности и осуществляют перекрестную проверку при помощи диспаратности правого изображения, при этом некоторые из значений объявляют недостоверными и заменяют на 255 - специальное значение диспаратности, которое не может возникнуть естественным образом и означает неопределенную диспаратность. Получившуюся точную карту диспаратности записывают в буфер 80 точной диспаратности в видеопамяти (3), рассчитанный на 20-80 строк диспаратности.
При выполнении операций 90-130, с помощью блока пост-фильтрации 6 осуществляют постобработку полученной карты диспаратности, которая может включать различный набор фильтров (методов фильтрации). В рассматриваемом варианте выполнения заявленной полезной модели постобработка состоит из фильтрации пиков, слаботекстурированных областей, интерполяции и медианной фильтрации.
При выполнении операции 90 при достаточном заполнении буфера 80 точной диспаратности считывают точную диспаратность и осуществляют фильтрацию пиков.
При выполнении операции 110 заменяют значения диспаратности на 255 для пикселей, относящихся к слаботекстурированным областям, согласно информации, полученной при выполнении операции 20 обработки исходного изображения фильтром Собеля.
При выполнении операции 120 производят локальную интерполяцию неопределенных значений диспаратности, при этом карта диспаратности становится более плотной.
При выполнении операции 130 осуществляют медианную фильтрацию и подают полученный результат на выход.
Результат записываются в буфер результатов 100, рассчитанный на 10-30 строк.
На Фиг. 3 подробнее показано выполнение операций 40-70.
При выполнении операций 41-43, входящих в состав операции 40, выполняют вычисление диспаратности левого изображения.
При выполнении операции 41 вычисляют субпиксельную яркость пикселей правого изображения. Субпиксельной яркостью пикселя q называют отрезок значений [min{L(q), L(q+0.5), L(q-0.5)}; max{L(q), L(q+0.5), L(q-0.5)}], где L(q+-0.5) - средняя яркость пикселей q и q+-1 (q+-1 - соседний пиксель справа/слева). Для определения диспаратности одного пикселя левого изображения с координатами (y, x) необходимо знать субпиксельную яркость пикселей в прямоугольнике на пересечении строк y, y-1, y+1 и столбцов (x-NoD)-x. При итерации по пикселю в строке этот прямоугольник движется на один пиксель, поэтому на каждом шаге необходимо вычислять субпиксельную яркость только для трех новых пикселей, вся остальная уже хранится в массивах.
При выполнении операции 42 вычисляют стоимость соответствия текущего пикселя с каждым из возможных значений диспаратности согласно формулам метода SGBM. В качестве стоимости соответствия пикселя p левого изображения с диспаратностью d и сдвинутого пикселя правого изображения q=p-d используют не абсолютную разность между их яркостями, а разность между яркостью p и субпиксельной яркостью q (расстояние от числа до отрезка считается равным нулю если число лежит на отрезке и равно расстоянию до ближайшего конца отрезка в противном случае). Эти величины складывают по апертуре (в этом алгоритме апертура состоит из самого пикселя и четырех его соседей по ребру) и сумма образует итоговую стоимость соответствия.
При выполнении операции 43, опираясь на стоимости соответствия и накапливаемые стоимости, хранящиеся в буфере 50 накапливаемых стоимостей, размещенном в видеопамяти (3), выбирают оптимальное значение диспаратности согласно стандартным формулам метода SGBM, и обновляют значения накапливаемых стоимостей в буфере 50 накапливаемых стоимостей. Полученное значение записывают в буфер 60 первичной карты диспаратности.
При выполнении операций 44-46 осуществляют аналогичные вычисления для правой диспаратности.
При выполнении операции 70 осуществляют перекрестную проверку - для каждого значения диспаратности disp пикселя левого изображения с координатой (y, x) находят значение диспаратности dispr пикселя правого изображения с координатой (y,x-disp). Далее значения disp и dispr сравнивают, и, если их абсолютная разность превосходит порог, то значение disp заменяют на 255. Результат выполнения операции 70 записывают в буфер 80 точной диспаратности.
Заявленное устройство вычисления карты диспаратности использует внутреннюю видеопамять, объем которой может быть существенно меньше, чем отдельный кадр видеоизображения. Высокая производительность обработки достигается за счет применения алгоритмов, оптимизированных для аппаратной реализации.
Заявленная полезная модель позволяет решить задачу вычисления карты диспаратности для стереоизображения с использованием внутренней памяти небольшого объема, достаточного для хранения нескольких строк изображения. Применение простой процедуры фильтрации позволяет значительно повысить скорость обработки информации и работать с большими объемами данных в реальном времени. Заявленная полезная модель позволяет в реальном времени вычислять диспаратность стереовидеопотока с fullHD разрешением и 60 fps.
Хотя описанный выше вариант выполнения полезной модели был изложен с целью иллюстрации настоящей полезной модели, специалистам ясно, что возможны разные модификации, добавления и замены, не выходящие из объема и смысла настоящей полезной модели, раскрытого в прилагаемой формуле полезной модели.