Научная статья на тему 'Обнаружение и заполнение статических инородных областей в видео на примере удаления логотипов и сбоев при ошибках передачи'

Обнаружение и заполнение статических инородных областей в видео на примере удаления логотипов и сбоев при ошибках передачи Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
48
18
i Надоели баннеры? Вы всегда можете отключить рекламу.
i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Обнаружение и заполнение статических инородных областей в видео на примере удаления логотипов и сбоев при ошибках передачи»

Обнаружение и заполнение статических инородных областей в видео на примере удаления логотипов и сбоев при ошибках

передачи

Дмитрий Куликов, Дмитрий Ватолин,

МГУ им. Ломоносова, факультет Вычислительной Математики и Кибернетики,

лаборатория Компьютерной Графики ^киНко^ dmitriy}@graphics.cs.msu.ru

Введение

В видео данных часто встречаются статические изображения, которые мешают просмотру видео, закрывая часть полезной информации от зрителя. К таким изображениям относятся различные логотипы каналов, станций, показываемых во время трансляций, дату и время на уже записанном видео или субтитры, которые были наложены на фильм и он был закодирован(и их нельзя просто выключить). Также отдельным классом таких областей, мешающим просмотру видео, являются искаженные блоки, которые появляются при работе видеокодека. Появление таких блоков для кодека объясняется ненадежностью среды передачи данных от кодера к декодеру, которая является проблемным местом для любых стандартов кодирования видео [1],[2].

Задача подавления таких артефактов состоит из двух подзадач: обнаружение и удаление. Первая из них заключается в обнаружении наличия артефакта в видео. Для обнаружения все инородные области в видео можно разделить на два класса. Первый класс - это области, которые присутствуют в видео постоянно - это логотипы и дата. Второй этап - это области, которые присутствуют в видео непостоянно, - это субтитры, которые периодически исчезают, и результаты ошибок работы кодека, которые появляются только при неполадках в среде передачи и проявляются в виде квадратных блоков, сильно отличающихся от соседних блоков, которые появляются при декодировании видео с ошибками передачи.

Второй подзадачей является удаление найденных артефактов. Для этого важно «заполнить» область, полученную после удаления артефакта. Обычным методом удаления является размытие, реализованное, например, в [4], [5]. Но такой подход не дает приемлемого для зрителя качества.

Предлагаемый алгоритм можно представить следующим образом:

1. Детектирование проблемных областей

2. Удаление проблемных областей

a. Размытие

b. Удаление на основе информации о движении Детектирование проблемных областей

Базовый алгоритм, основанный модель дисперсии яркости во временной области

Описанный ниже может применяться для обнаружения проблемных областей (ПО), присутствующих в видео достаточно длительное время. К таким областям относятся логотипы, дата, субтитры. Модель подразумевает, что область не меняется во времени и все изменения яркости и цвета пикселей в данной области связаны только с шумом, присутствующим в видео. Для обнаружения таких областей в видео с шумом целесообразно применять алгоритмы, основанные на дисперсии яркости пикселя во временной области, называемой временной дисперсией яркости.

Основная идея предложенного алгоритма состоит в вычислении значения временной дисперсии для каждого пикселя в области предполагаемого наличия ПО. Если сопоставить дисперсию функции F(х, у, Т), зависящей от пикселя и времени (количества кадров в видео),которое присутствует ПО, тогда предел этой функции для «проблемных пикселей» (пикселей ПО) будет равен дисперсии шума (уровню шума).

F (х, у, Т) = £ (Y (х, у, г) - ^ г-1 (х, у))2 (1)

г=2

Y(х, у, г) - яркость пикселя с координатами (х,у) в момент времени t

Yt-1(х, у) - средняя яркость пикселя с координатами (х,у), посчитанная для времен 1,2,..М

Т - количество кадров, которое присутствует ПО в видео

[«(уровень шума), (х, у) - " проблемный пиксель" кт( F (х y, г)) = \ (2)

[неопределен, в остальных случаях (2)

г ^ да

Под шумом в формулах (2), (4) понимается случайные изменения яркости и цвета пикселей, вызванные либо несовершенством видеоаппаратуры.

Такая модель может использоваться в случае, если в видео есть движение/изменение, если же видео статично во времени, то предложенная

модель (как и все другие) не даст приемлемых результатов. После окончания работы алгоритма детектирования на выходе получается маска искомого объекта.

Следующие рисунки показывают временную дисперсию яркости.

Номер кадра 100. Оригинал кадра 100. Временная дисперсия

Цвета:

Черный - Временная дисперсия близка к нулю Синий - Временная дисперсия < 100 Зеленый - Временная дисперсия < 1000 Красный - Временная дисперсия > 1000

Модификация базового алгоритма

Для обнаружения проблемных областей, которые присутствуют в видео некоторое продолжительное время, но не всю последовательность (например, субтитры), также можно применять модель дисперсии яркости пикселя во временной области, но с модификацией скользящего окна.

Данная модель означает, что ПО присутствует в видео какой-то период времени (например, 2-3 секунды). Во время этого периода ПО остается неизменным в случае отсутствия шума в видео или изменяется в случае шума, но тогда его изменения могут быть описаны с учетом уровня шума. Основное отличие данной модификации алгоритма временной дисперсии состоит в использования скользящего окна (буфера кадров).

F(х, у, Т, ^ = £ (У(х, у, t) - Г,-! (х, у))2 (3)

г=Т

Y (х, у, г)- яркость пикселя с координатами (х,у) в момент времени t

N - размер буфера кадров

Yt-1 (х, у) - средняя яркость пикселя с координатами (х,у), посчитанная для времен Т-^Т-т1,.Л-1

Г« «(уровень шума), (х, у) - " проблемный пиксель" (F (x, y, t, N)) = \

[> «(уровень шума), в остальных случаях (4)

Алгоритм скользящего окна использует буфер кадров. Размер буфера кадров связан с тем временем, которое ПО присутствует в видео. Внутри этого окна временная дисперсия яркости для каждого пикселя из проблемной области стремится к пределу, равному дисперсии шума (уровню шума). Критерием, определяющим появление ПО, является отличие пикселя с минимальной временной дисперсией от пикселя с теми же координатами, но для первого кадра скользящего окна. Таким образом, первый кадр скользящего окна окажется последним кадром в видео, который не имеет проблемной области. Для обнаружения момента исчезновения проблемной области необходимо отслеживать изменения всех пикселей, помеченных как «проблемные пиксели» и когда они сильно изменятся, можно говорить об исчезновении проблемной области. Обнаружение результатов сбоя в работе кодека

В качестве результатов сбоя в работе кодека рассматриваются области, состоящие из квадратных однотонных блоков, или отдельно стоящие однотонные блоки.

Данный тип артефактов можно обнаружить, используя алгоритм дисперсии яркости пикселя во времени с модификацией в виде скользящего окна. Принципиальных отличий данного типа артефакта от предыдущего нет. Но есть несколько дополнительных свойств, которые облегчают задачу нахождения артефакта. В данном случае проблемная область представляет собой один или несколько квадратных блоков и обычно данная область сильно отличается от своих соседей внутри кадра. Результаты

На приведенных ниже рисунках видны результаты детектирования ПО.

aj«SK "МШ'

iijBi^eiSfe^ /

Рис. 3. Последовательность "bus". Оригинал

Рис. 4. Последовательность "bus" Маска логотипа

Рис. 5. Последовательность "helicopter". Оригинал

Рис. 6. Последовательность "helicopter". Маска субтитров

Удаление артефактов

После того, как некоторая область в видео была определена как проблемная,

необходимо ее удалить. То есть, необходимо заполнить эту область той информацией, которая должна была бы быть на ее месте. В случае отдельно взятого кадра такая задача неразрешима - нельзя точно восстановить информацию в видео, поверх которой наложена другая. В данном случае используют предположение о том, что изображение представляет собой кусочно-гладкую функцию, т.е. внутри одного объекта в видео изображение меняется не сильно и гладко, а границы объектов представляют собой резкие переходы. На основе этого предположения можно заполнить проблемную область с учетом гладкости функции, т.е. с учетом соседних пикселей, экстраполируя их значения с различными весовыми коэффициентами внутрь области. Такую операцию можно назвать размытием.

В случае не одного кадра, а нескольких последовательных можно использовать информацию о движении объектов на основе поля векторов

движения. В данном случае удаление основывается на эффекте «наползания» части изображения на проблемную область.

Размытие

Когда нельзя использовать информацию о движении, например в случае первого кадра видео или в случае, когда сцена изменилась, необходимо использовать размытие. Основная идея алгоритма размытия - это замена обрабатываемого пикселя на линейную комбинацию его соседей. В случае работы в цветовом пространстве YUV [6] алгоритм будет выглядеть следующим образом:

(5)

У = £а,У,, и = £ 0М, V = £уК

Угребу Угреби УгРеб

£К1 *0, £|Д| *0, £|Гг| *0

Угреб УгР1еби ШЩебу

У, и, V - результирующие компоненты Y,U,V для пикселя аг, Д, ^ - коэффициенты линейной комбинации

У1 , иг, VI - компоненты Y,U,V для соседних пикселей 6у, ви, ву - область соседей для компонент Y, и, V Рг - ьй пиксель

Все методы размытия отличаются только весовыми коэффициентами аг, Д, и областями соседей 6у, ви, ву. Простейшим методом размытия является усреднение:

У = - £Уг, и = - £иг, V = - £У1 (6)

П Угреб П Угреб П Угреб

У, и, V - результирующие компоненты Y,U,V для пикселя Уг, иг, Vг - компоненты Y,U,V для соседних пикселей 6 - область соседей для компонент Y, и, V Рг - ьй пиксель

Данный метод не учитывает информацию о расстоянии между пикселями. Каждый пиксель в области обработки имеет одинаковый коэффициент. Данный подход дает низкую вычислительную сложность, но не всегда хорошее визуальное качество. Ниже приведены результаты работы такого метода.

D V С

ШШ'Ь

ДРС Эв ~ ^11

Рис. 7. Оригинал. Последовательность "bus". Номер кадра 10. Увеличено

Рис. 8. Размытое изображение (усреднение). Последовательность "bus". Номер кадра 10. Увеличено

Также можно использовать более качественные методы размытия:

У = £аУ, и = £аи, V = £аД

VipeS

Viped

Viped

N

аг = г (X + Уг )т

У, и, V - результирующие компоненты Y,U,V для пикселя Уг, иг, Vг - компоненты Y,U,V для соседних пикселей 6 - область соседей для компонент Y, и, V Рг - ьй пиксель

аг, - коэффициенты линейной комбинации с параметрами N и т хг,уг - координаты пикселя Pi

(7)

В этом методе рассматриваются не все соседние пиксели, а только граничные.

Метод использует информацию о расстоянии между пикселями. Каждый пиксель из области имеет свой коэффициент, зависящий от его расстояния до обрабатываемого пикселя. Такой подход дает хорошее визуальное качество ценой больших вычислительных затрат.

Ниже приведены результаты работы такого метода.

tJHIMJ

^^ я jL-

дрсЛЙ

in

Рис. 9. Оригинал. Последовательность "bus". Номер кадра 10. Увеличено

Рис. 10. Размытое изображение. Последовательность "bus". Номер кадра 10. Увеличено

Использование информации о движении

Для высококачественного удаления проблемной области необходимо провести

компенсацию движения фона через ПО. То есть необходимо восстановить те области в видео, которые закрылись проблемной областью на основе движения соседних частей изображения. Перед компенсацией необходимо построить поле векторов движения [7]. Построение данного поля осуществляется для соседних к проблемной области блоков.

После построения поля векторов движения необходимо проверить правильность этого шага. В случае смены сцены или сложного типа движения построение могло быть неверным. И если в данном случае провести компенсацию движения, результаты могут быть неприемлемыми. Для обнаружения смены сцены применяется метод сравнения средней ошибки нахождения для блоков с векторами движения с пороговым значением. Это значение находится из экспериментов. И в случае превышения данного значения проводить размытие.

[ Err < Thr, сцена не изменилась „ ч

!— , (8) [Err > Thr, сцена изменилась

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Err - средняя ошибка нахождения блока Thr - пороговое значение

Также в поле векторов движения могут быть «шумные», т.е. неверно найденные. Необходимо не учитывать их в компенсации движения. Для этого используется следующий метод - подсчитывается дисперсия координат для всех векторов движения и «шумными» признаются те вектора, квадрат разности координат которых от среднего значения больше значения дисперсии.

После удаления «шумных» векторов заново пересчитывается дисперсия векторов движения и если она выше порогового значения, считается, что движении слишком сложно для его компенсации и проводится размытие. Пороговое значение находится из экспериментов.

Распространение векторов движения

В проблемной области не проводилась постройка поля векторов движения, но

там необходимо провести компенсацию движения [8]. Задача распространить найденные вектора движения внутрь проблемной области.

Первый и самый простой метод распространения векторов - это усреднение. Полученные одинаковые вектора равны взвешенной сумме соседних векторов. Коэффициенты взвешивания зависят от точности нахождения соседних векторов. Этот метод подходит для равномерно движущегося фона. Но такой метод дает плохие результаты в случае сложного движения, например медленного поворота или увеличения.

Улучшением данного метода является рассмотрение соседних векторов не во всей области, а только наиболее близких соседей. В таком случае полученные вектора лучше отвечают сложному движению. Полученное таким методом поле векторов движения более гладкое.

После нахождения поля векторов движения производится компенсация движения с данными векторами. Это делается следующим образом: каждый блок из проблемной области заменяется на блок из предыдущего кадра, на который указывает найденный вектор движения для этого блока.

Заключение

Были решены две подзадачи: обнаружение статических областей в видео, мешающих просмотру, и удаление таких областей из видео. Для обнаружения использовались алгоритмы, основанные на модели временной дисперсии яркости пикселей. Для удаления использовались различные алгоритмы размытия и алгоритм удаления, основанный на информации о движении. В результате была решена общая задача нахождения и удаления статических однородных областей в видео.

Результаты работы можно видеть на приведенных ниже рисунках.

Рис. 11. Последовательность "bus", номер кадра Рис. 12. Последовательность "bus", номер кадра 100, оригинал 100, обработанный

> Л

Т

Рис. 13. Последовательность "battle", номер кадра 240, оригинал

■ан

Рис. 14. Последовательность "battle", номер кадра 240, обработанный

и I

Ш *

_ _ __* шг

Рис. 15. Последовательность "helicopter", номер Рис. 16. Последовательность "helicopter", номер кадра 81, оригинал кадра 81, обработанный

Сравнение результатов работы предложенного алгоритма с алгоритмами [4],

Рис. 17. Исходное видео

Рис. 19. Результат X-Logo

Рис. 18. Результат LogoAway

и

м » "jb^fefl 1

Рис. 20. Предложенный алгоритм

Помимо полностью автоматического поиска ПО, алгоритм удаления ПО на протестированных видео последовательностях дает лучшее визуальное качество, чем алгоритмы [4],[5].

Список литературы

1. Thomas Wiegand, Gary J. Sullivan, Gisle Bjontegaard, and Ajay Luthra. «Overview of the H.264 / AVC Video Coding Standard», IEEE CSVT, 2003

2. Rob Koenen. «Overview of the MPEG-4 Standard», International organization for standardization iso/iec jtc1/sc29/wg11 coding of moving pictures and audio, 2001

3. Katrin Meisinger, Tobias Troeger, Marcus Zeller, and Andre Kau. «Automatic tv logo removal using statistical based logo detection and frequency selective inpainting», University of Erlangen-Nuremberg, Germany, 2005

4. LogoAway - plug-in для VirtualDub, http://www.republika.pl/voidon/virtualdub/

5. X-Logo - plug-in для VirtualDub, http://members. verizon.net/~vze3kkvm/filters. html

6. Описание цветового пространства YUV, http://en.wikipedia.org/wiki/YUV

7. Bernd Girod, «Overview: motion estimation», EE368b Image and Video Compression: Motion Estimation no. 1

8. Описание компенсации движения, http://en.wikipedia. org/wiki/Motion_compensation

i Надоели баннеры? Вы всегда можете отключить рекламу.