микрофильмы
COMPUTER VISION В АРХИВЕ
Студенческий проект по разработке инструмента, позволяющего сократить время съемки микрофильмов в архивах
Микрофи́льм — документ в виде микроформы на рулонной светочувствительной фотоплёнке с последовательным расположением кадров в один или два ряда или фотокопия документов, рукописей, книг и т. п., выполненная с значительным уменьшением на фотоплёнке или киноплёнке.
Что такое
микрофильмы
этапы проекта
этапы проекта
этапы проекта
этапы проекта
этапы проекта
этапы проекта
этапы проекта
этапы проекта

Поиск материала осуществлялся в архивах
и библиотеках г. Санкт-Петербурга.
Основным местом для работы была выбрана Российская национальная библиотека (Московский пр-т., 165 корпус 2, Санкт-Петербург), так как для посещения отдела микроформ не требовалась предварительная запись или заказ дел.

1 этап
поиск и сбор материала для проекта
Работа с кадрами видео и алгоритмы детекции разворотов
2 этап
В проекте мы работаем с видео, но чтобы получить окончательный PDF-файл нам необходимо работать
с отдельными кадрами.
Для этого мы сначала извлекаем из видео все кадры. Затем нам нужно получить кадры, относящиеся к одному развороту и выбрать из данных групп лучшие. Изначально мы применяли метод кластеризации DBSCAN, но позже мы нашли лучший и более быстрый метод детекции разворотов на основе контрастности кадров.
3 этап
Обучение модели YOLOv5
Загружаем полученные кадры в Roboflow и размечаем наш датасет.
Для более детальной информации о разметке данных в Roboflow и последующего обучения, советуем ознакомиться со статьей.

YOLO (You Only Look Once) — архитектура нейронных сетей с открытым исходным кодом, предназначенная для детекции объектов на изображении. Мы использовали YOLOv5 (5 версию), которая реализована на PyTorch.
Датасет, который мы получили в Roboflow, мы разделяем на два (учебный и тренировочный),
и после проведения всех настроек запускаем обучение, а затем детекцию. У YOLOv5 достаточно богатый функционал, который также позволяет визуализировать процесс
и результат обучения
4 этап
Работа над улучшением качества изображений
Для улучшения качества изображения использовались различные алгоритмы CV,
к примеру, convertScaleAbs, normalize, MORPH_CLOSE, подробнее о которых можно узнать в документации OpenCV. Помимо улучшения качества изображения, мы работали над распознаванием текста на изображении при помощи Tesseract-OCR
5 этап
Для удобства пользователей и простоты реализации мы использовали библиотеку AIOgram. Как и весь наш проект, библиотека написана на Python 3.7, но также с использованием asyncio и aiohttp. При написании бота можно отметить хороший и удобный функционал, который также облегчает использование бота при работе с ним и, конечно, высокую скорость обработки запросов.
Создание telegram-бота
КАК ПОЛЬЗОВАТЬСЯ ТЕЛЕГРАМ-БОТОМ
Как снимать видео
Видео желательно снимать в горизонтальном положении камеры, на уровне монитора. Чем меньше в кадр попадает лишних объектов, тем лучше (лишние объекты - всё, что выходит за рамки монитора), очень важно, чтобы разворот книги попадал в кадр целиком. При перемотке кадров следует останавливаться на интересующем вас кадре (развороте книги) на примерно 1 секунду.
Если в настройках камеры у вас есть возможность поставить максимальное качество, то его желательно поставить.
Как загружать видео в телеграм-бот
Нужно перейти в бота, активировать его, нажав на "Начать работу" или "/start" и по кнопке "Отправить видео", выбрав нужное из галереи видео, отправить боту в сообщении.
Не рекомендуется отправлять сжатые видео, так как их качество может плохо отразиться на финальном результате.
Если видео будет слишком большим, то на него можно будет дать ссылку с Гугл Диска (не забудьте открыть доступ для своей ссылки).
После отправки видео необходимо дождаться его загрузки.
Какой результат вы получите
Вы получите 1 файл в формате PDF. Если в вашем видео несколько разворотов, то вы также получите 1 PDF-файл, состоящий и нескольких страниц.
Качество видео
Вы можете улучшить качество, нажав на соответствующую кнопку в меню бота - "Улучшить баланс белого". Примеры кадров после улучшения вы можете увидеть на нашем сайте.
Также вы можете распознать текст, нажав на кнопку "Распознать текст".

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

Команда проекта
Иван Бибилов
Идейный вдохновитель
Администратор ШАД Яндекса, соруководитель программы, директор прикладного центра МАСТ ЕУСПб
Юлия Филюшкина
Куратор проекта
Программист прикладного центра МАСТ ЕУСПб, преподаватель Computer Vision
Евгения Брук
Оформление сайта проекта
Администратор образовательной программы ПАНДАН
Роман Занозин
Студент программы ПАНДАН
Маргарита Сажина
Студент программы ПАНДАН
Анастасия Теско
Студент программы ПАНДАН
Санкт-Петербург, ул. Шпалерная, 2/4, каб. 420
Email: admissions.pandan@eu.spb.ru, pandan.eu@yandex.ru.
Made on
Tilda