Введение 3
Постановка задачи 4
Обзор существующих методов получения субтитров встроенных в видеопоток 6
Глава 1. Предобработка кадров 8
1.1. Выделение границ 8
1.2. Гистограммы 8
1.3. Статичные регионы 10
1.4. Метод Заливки 11
Глава 2. Анализ предобработанных кадров 13
2.1. Связные компоненты 13
2.2. Определение мест смены текста 14
2.3. Распознавание текста 15
Реализация и экспериментальные результаты 15
Выводы 19
Заключение 20
Список литературы
В связи с развитием информационных технологий, методы передачи и получения информации постоянно меняются от использования наиболее эффективных решений, как например текст, к решениям удобным для человеческого восприятия, но более затратным, с точки зрения передачи данных. Одним из возможных решений в наши дни является видео, в связи с массовым распространением и доступностью таких сервисов как YouTube, Twitch и т.п., ставшее одним из главнейших способов передачи информации. Однако видео материалы, как способ фиксирования тех или иных событий, рассчитаны на использование основных чувств человека, а именно зрение и слух. Для людей, которые, в данный момент, или вовсе не имеют возможности слушать звуковую составляющую видео, в наше время существуют субтитры. Текст субтитров является важной частью видеоматериала для понимания информации и её анализа. В данной работе рассматривается решение проблемы, появившейся вследствие существования субтитров, встроенных в видеопоток и соответственно, не имеющих текстовой версии, что не позволяет взаимодействовать с текстом в привычном варианте.
В данной работе автором поставлена задача создания алгоритма способного распознавать текст субтитров при любых даже наиболее проблемных видеорядах и возвращать его вместе с временными метками пользователю. Данную задачу можно разбить на несколько этапов: устранение шумов, обнаружение субтитров, определение кадров, содержащих текст, поиск моментов его смены и распознавание текста. Для решения данных задач автором были опробованы несколько методов, некоторые из которых показали себя недостаточно эффективными, как например, использование цветовых характеристик или гистограмм проекций. В то же время методы поиска контуров, статичных зон, метод “заливки” и связных компонент наоборот показали себя с лучшей стороны, что подробнее будет описано в работе.
Структура работы: постановка задачи, обзор литературы, глава 1 - предобработка кадров, глава 2 - анализ предобработанных кадров, реализация и экспериментальные результаты с последующим выводом и заключение.
Алгоритм, описанный в данной работе, позволяет получать текст для его дальнейшего использования, например, при переводе субтитров, давая возможность задействовать машинный перевод. Помимо этого, при появлении алгоритма, устраняющего встроенные субтитры, появится возможность их замены включаемыми, если дополнить его результатами, которые мы планируем получить в конце исследования. Также существует возможность получения текста с последующим сжатием видео, но с сохранением качества текста субтитров. Извлечённые субтитры можно использовать как текст для анализа, который в совокупности с видео состоит в создании тематических меток для видео или определения эмоционального тона видео.
Постановка задачи
Проблема распознавания текста на изображении, в английской литературе называемая Optical Character Recognition (OCR) или оптическое распознавание символов, ставится как задача получения текста, присутствующего на изображении. При попытке применить тот же подход к видео файлу, мы встретимся со следующими трудностями: в отличии от обычного OCR не на каждом кадре видео присутствует текст, что вызывает необходимость разделения кадров на имеющие и не имеющие субтитры и отделения таковых от текста, существующего в видео на фоне. Другое немаловажное отличие от стандартной задачи OCR - временные рамки. Временные рамки - это границы времени, указывающие время начала и конца отображения строки субтитров. Их получение также является одной из задач, поставленных в данной работе. Выбрав кадры с текстом субтитров, мы переходим к задаче оптического распознавания символов, которая делится на два этапа: предобработка и распознавание. В основе данной работы лежит этап предобработки, так как при заранее неизвестном, неопределённом фоне он позволяет выделить искомый текст на изображении, без чего последующее распознавание невозможно или крайне затруднено. Цель предобработки — это повышение качества последующего распознавания, посредством максимально возможного “очищения” изображения или в нашем случае кадра от всего, что не является необходимым для распознавания. Обычно предобработка для OCR состоит из следующих целей[10]:
• выравнивание текста до стандартного горизонтального;
• шумопонижение;
• бинаризация;
• удаление линий;
• анализ структуры, например, таблиц в строках и столбцах которых может находиться искомый текст;
• обнаружение текста;
• распознавание шрифта;
• локализация символов;
• нормализация размера и пропорции изображения.
Учитывая, что цель работы — это получение субтитров, то ввиду их природы, список принимает другой вид. Выравнивание текста в случае с субтитрами не является необходимым, так как они изначально текст и соответственно горизонтальны. Удаление линий не является конкретной задачей, а является частью задачи по отделению субтитров от фона, которому принадлежат горизонтальные линии. В вышеуказанном списке целей она обозначена как шумопонижение. Отсутствие структуры видео устраняет необходимость её анализа. Распознавание шрифта необходимо при смене такового в тексте для подбора соответствующего алгоритма. Однако для удобства восприятия зрителя, шрифт редко меняется по середине видео. При этом шрифт определяется с помощью стандартов [2], соответственно, проблема распознавания шрифта исчезает. В итоге, учитывая, что изображения одинаковые, в виду природы кадров, устраняя нормализацию размера и пропорций изображений, список целей предобработки можно представить следующим образом:
шумопонижение;
• бинаризация;
• обнаружение текста;
• локализация символов.
Последним, но не менее важным этапом является распознавание текста. Распознавание текста может быть сложной задачей в зависимости от работы, проделанной на этапе предобработки, цель которой упростить данный этап. Дополнительным фактором, упрощающим решения данной задачи, является правильный подбор алгоритма, учитывающего особенности искомого текста.
Обзор существующих методов получения субтитров встроенных в видеопоток
Проблему получения субтитров, встроенных в видеопоток уже пытались решать при помощи выделения границ текста субтитров[16], алгоритм показал неплохую точность. Недостатками работы алгоритма являются ограничения на положение субтитров снизу, а также отсутствует способ классификации кадров, имеющих в наличии субтитры. Вместо этого, в данном методе, был выбран сегмент видео на всём промежутке которого присутствуют субтитры. Также у алгоритма имеются проблемы при работе с видео, содержащим контрастные элементы, что подробнее будет описано автором дальше.
В работе Zarifar B. [17], которая представляет алгоритм для локализации и классификации субтитров в ТВ видео, была попытка показывающая неплохие результаты[17], но она непосредственно использует особенности телевизионного сигнала и приставки его расшифровывающей для своей работы и поэтому не подходит для работы с обычным видео
При решении данной проблемы имело место и использование нейронных сетей[15], которое не имеет ограничений в подходе выделения границ[16]. Существующий алгоритм, как и предыдущий, использовал информацию о соседних кадрах для повышения качества распознавания. В конечном счёте, алгоритм показал неплохие результаты в 86% точности распознавания текста, но кадры не получали никакой предобработки, что позволяет сделать предположение о возможном улучшении результатов.
При рассмотрении существующих программных решений программных решений, было обнаружено 4 существующих решения: SubRip[12], CCExtractor[4], Burnt-in subtitle extractor[3]и videocr[14]. Большинство данных решений за исключением SubRip используют Tesseract для распознавания текста с кадров видео. SubRip, в свою очередь, требует точной настройки человеком, который выберет параметры предобработки, укажет локацию субтитров, а также исправит ошибки посимвольного распознавания. Следовательно, алгоритм нельзя назвать автоматическим, за счёт человека возможно достижение высокого качества результатов. CCExtractor и Burnt-in subtitle extractor уже более автоматизированные решения, которым тем не менее, тоже необходим человек для указания цвета субтитров для предобработки в обоих программах и цветов контуров в Burnt-in subtitle extractor. Последнее решение videocr не использует предобработку, а полагается полностью на Tesseract с последующим анализом результатов. Положительное отличие от остальных является максимально автономным c опциональными параметрами настройки распознавания.
Получение субтитров, являющихся частью видеопотока - это комплексная задача, состоящая из множества этапов. С целью её решения были написаны программные решения в основном, полагающиеся на человеческий фактор. В данной работе было найдено автоматическое решение, которое при помощи средств обработки изображений использует особенности текста субтитров для выделения их среди фона любого вида. Оно включает в себя решение задачи шумоподавления, использованием контрастных точек в комбинации с статическими регионами кадров, окончательно очищенными и бинаризованными использованием полученного в результате проб и ошибок метода “заливки”. Реализация данных методов в неблагоприятной среде анимации также показала положительный результат в виде увеличения работоспособности программы за счёт контраста, причём независимо от него. Задачи локализации текста и символов субтитров с использованием вышеописанных средств решены методом поиска связных компонент изображения. Он позволяет не только найти символы текста вместе с ним, решая поставленные задачи, но и получить их рамку, дающую возможность использовать алгоритмы посимвольного распознавания текста, что даёт возможность модификации алгоритма, полученного в данной работе под необходимый метод распознавания. Применение логического “И” из статических областей для обнаружения смены текста кадров, оказалось чрезвычайно быстрым решением, которое избавило от необходимости распознавания каждого кадра. Это значительно ускорило работу программы и обеспечило возможность получить время показа субтитров.
Описанные выше идеи стали основой данной работы, позволив быстро и независимо от цвета текста, подготовить всё необходимое для последующего использования Tesseract, избежав недостатки других методов. Tesseract закончил алгоритм, качественно получая необходимый текст независимо от платформы, что вместе с реализацией на Python делает данную программу работоспособной на любой из основных операционных систем, таких как Windows, Linux, Mac OS и других UNIX-подобных системах. Впоследствии, при создании алгоритма устранения субтитров из видеопотока, если мы дополним его предложенным автором решением, появится возможность замены встроенных переключаемыми субтитрами по желанию смотрящего. Подводя итог, данное исследование представило людям ещё один способ работы с видео, тем самым, расширяя наши возможности в восприятии видео и избавляя от необходимости ручной работы по переписыванию текста.
[1] Реализация алгоритма из данной работы. [Электронный ресурс]: https://github.com/WhiteSpirt25/SubtitlesExtractor
[2] BBC Subtitle Guidelines. [Электронный ресурс]: https://bbc.github.io/subtitle-guidelines/
[3] Burnt-in subtitle extractor. [Электронный ресурс]: https://github.com/roybaer/burnt-in-subtitle-extractor
[4] CCExtractor’s home page. [Электронный ресурс]: https://www.ccextractor.org/start
[5] Comparison of optical character recognition software. [Электронный ре¬сурс]: https://en.wikipedia.org/wiki/Comparison_of_optical_character_recognit3
[6] Gaussian blur From Wikipedia, the free encyclopedia. [Электронный ресурс]: https://en.wikipedia.org/wiki/Gaussian_blur
[7] Jianfeng Xu, Shaofa Li. Caption location, tracking and enhancement in digital video // 2004 International Conference on Intelligent Mechatronics and Automation, 2004. Proceedings. : IEEE.
[8] Milyaev S. и др. Image Binarization for End-to-End Text Understanding in Natural Images // 2013 12th International Conference on Document Analysis and Recognition. : IEEE, 2013.
[9] OpenCV Documentation. [Электронный ресурс]:https://docs.opencv.org/2.4/index.html
[10] Optical Character Recognition (OCR) - How it works. [Электронный ресурс]: Nicomsoft.com.
[11] SRT File Format. [Электронный ресурс]:
https://en.wikipedia.org/wiki/SubRip#File_format
[12] SubRip Official cite.
https://sourceforge.net/projects/subrip/
[13] Tesseract OCR. [Электронный ресурс]: https://github.com/tesseract- ocr/tesseract
[14] Videocr. [Электронный ресурс]: https://github.com/apm1467/videocr
[15] Xiaoou Tang и др. A spatial-temporal approach for video caption detection and recognition // IEEE Transactions on Neural Networks. 2002. Т. 13. № 4. С. 961-971.
[16] Yongjiu L. и др. Video Subtitle Location and Recognition Based on Edge Features // 2019 6th International Conference on Dependable Systems and Their Applications (DSA). : IEEE, 2020.
[17] Zafarifar B., Jingyue Cao, With P.H.N. de. Instantaneously responsive subtitle localization and classification for TV applications // IEEE Transactions on Consumer Electronics. 2011. Т. 57. № 1. С. 274-282.
[18] Zhu Y., Yao C., Bai X. Scene text detection and recognition: recent advances and future trends // Frontiers of Computer Science. 2015. Т. 10. № 1. С. 19-36.