BasicSR: различия между версиями
Владимир (обсуждение | вклад) |
Владимир (обсуждение | вклад) |
||
| Строка 76: | Строка 76: | ||
Задача состоит в том, чтобы обучить сеть на восстановление видео снятых на miniDV камеру. Видео хранилось на кассетах, после чего было перенесено на пека, методом захвата с DV камеры. Захват осуществлялся через [https://ru.wikipedia.org/wiki/IEEE_1394 Firewire]. На данный момент это самый максимально возможный с точки зрения качества захват. Нет способов получить качество выше. | Задача состоит в том, чтобы обучить сеть на восстановление видео снятых на miniDV камеру. Видео хранилось на кассетах, после чего было перенесено на пека, методом захвата с DV камеры. Захват осуществлялся через [https://ru.wikipedia.org/wiki/IEEE_1394 Firewire]. На данный момент это самый максимально возможный с точки зрения качества захват. Нет способов получить качество выше. | ||
В итого имеется 50 гигабайт видео в разрешении 720x576 с соотношением сторон 4:3. Но есть много но. Камера не профессиональная, качество записи не идеальное. Оному производителю известно как получается картинка. Тут будут приложены оригиналы.<gallery mode="packed-hover"> | В итого имеется 50 гигабайт видео в разрешении 720x576 с соотношением сторон 4:3. Но есть много но. Камера не профессиональная, качество записи не идеальное. Оному производителю известно как получается картинка. Тут будут приложены оригиналы.<gallery mode="packed-hover" caption="'''Исходные изображения захваченные с DV'''"> | ||
Файл:DV пример 001.jpeg | Файл:DV пример 001.jpeg | ||
Файл:DV пример 002.jpeg | Файл:DV пример 002.jpeg | ||
</gallery><br /> | </gallery>Первое, что заметно на кадрах, это последствия черезстрочной записи. Подавление черезстрочности выполнено было на этапе подготовки видео для раскадровки. Более качественного подавления черезстрочной развертки я не нашел. Следующая заметная особенность представленных кадров это некое утолщение любых границ объектов, это следствие интерполяции, которая скорее всего выполнялась на самой камере при записи. Интерполяция совсем не простая, но имеет артефакты. Так же присуще любому непрофессиональной записи, небольшой расфокус. Очень большое католичество мазаных кадров в различном направлении из за низкой статичности камеры. Слабые "смазы" еще допустимы, но в большинстве случаев они ужасающе сильные, на таких кадрах попросту не за что уцепится. | ||
Говорить от приведении изображения в студийное качество конечно же нельзя, чудес не бывает, но все кадры с более менее сохранившимися деталями сохранить можно. | |||
Следующей проблемой видео является сжатие. При том, что видео захвачено с камеры в сумасшедших 35 мегабитах потока, для разрешения 720x576, не каждый 4к фильм может похвастаться таким потоком, есть множество артефактов, появляющихся при сжатии видео. Причиной тому является невысокая производительность самой камеры, в которой был встроен аппаратный кодек. У кассеты формата miniDV поток как раз примерно равен 35 мегабит. Настолько в те времена аппаратная реализация сжатия была примитивна, что не смогла в такой поток уместить без видимых артефактов. Но в целом, еще обусловденно сложностью самого изображения, у него высокая зернистость и "пёстрость", что сильно влияет на степень сжатия. Это проблема любых любительских записей. | |||
Итак, выявлены следующие входные данные: | |||
- Интерполяция | |||
- Расфокусирование | |||
- Смазанное изображение | |||
- Артефакты сжатия | |||
<br /> | |||
Версия от 05:51, 9 августа 2020
BasicSR - средство для обучения моделей.
На момент написания статьи автор обновил его до версии 1.0. Но нет возможности применить обученную сеть. ESRGAN не готов к данной версии. Поэтому берем ветку сентября 2019 года. Как только заработает актуальная ветка поправлю статью.
Базовая подготовка ОС
О этом вообще можно составить отдельную статью, так как работоспособность на разном железе требует различной установки.
На момент актуальной версии железа nvidia 10, 16 и 20 серии все работает из коробки. Но если нужно завести все на более старом железе, то есть много нюансов.
NVIDIA CUDA
Следуем инструкции установки на реальное железо linux или WSL2. Пока в статье MMEditing, но потом перенесу в отдельную статью.
Python 3
Смотрим версию:
python3 --version
Если Python установлен то покажет версию, если нет то нужно установить.
На данный момент Python есть по умолчанию в ubuntu, если сделать:
sudo apt update sudo apt -y upgrade
pip3
Менеджер пакетов для Python 3
sudo apt install -y python3-pip
PyTorch
С PyTorch все интереснее, для актуального железа ставиться последняя доступная версия:
Выбираем нужную нам конфигурацию
stable
linux
pip
python
cuda 10.2
pip install torch torchvision
Но если железо старое то нужно устанавливать последнюю поддерживаемую версию железо. Везде по своему. В моем случае это tesla m2070:
....
BasicSR
Пакеты для Python
pip install numpy opencv-python lmdb pyyaml
TensorBoard
pip install tensorboardX
git clone -n https://github.com/xinntao/BasicSR.git
cd /tmp/BasicSR
git checkout -b test 00bbaf87163956fd00c22db73d051b9e27bcd563
Идем конфигурировать файл тренировки модели.
Подготовка набора данных
Задача состоит в том, чтобы обучить сеть на восстановление видео снятых на miniDV камеру. Видео хранилось на кассетах, после чего было перенесено на пека, методом захвата с DV камеры. Захват осуществлялся через Firewire. На данный момент это самый максимально возможный с точки зрения качества захват. Нет способов получить качество выше.
В итого имеется 50 гигабайт видео в разрешении 720x576 с соотношением сторон 4:3. Но есть много но. Камера не профессиональная, качество записи не идеальное. Оному производителю известно как получается картинка. Тут будут приложены оригиналы.
- Исходные изображения захваченные с DV
Первое, что заметно на кадрах, это последствия черезстрочной записи. Подавление черезстрочности выполнено было на этапе подготовки видео для раскадровки. Более качественного подавления черезстрочной развертки я не нашел. Следующая заметная особенность представленных кадров это некое утолщение любых границ объектов, это следствие интерполяции, которая скорее всего выполнялась на самой камере при записи. Интерполяция совсем не простая, но имеет артефакты. Так же присуще любому непрофессиональной записи, небольшой расфокус. Очень большое католичество мазаных кадров в различном направлении из за низкой статичности камеры. Слабые "смазы" еще допустимы, но в большинстве случаев они ужасающе сильные, на таких кадрах попросту не за что уцепится.
Говорить от приведении изображения в студийное качество конечно же нельзя, чудес не бывает, но все кадры с более менее сохранившимися деталями сохранить можно.
Следующей проблемой видео является сжатие. При том, что видео захвачено с камеры в сумасшедших 35 мегабитах потока, для разрешения 720x576, не каждый 4к фильм может похвастаться таким потоком, есть множество артефактов, появляющихся при сжатии видео. Причиной тому является невысокая производительность самой камеры, в которой был встроен аппаратный кодек. У кассеты формата miniDV поток как раз примерно равен 35 мегабит. Настолько в те времена аппаратная реализация сжатия была примитивна, что не смогла в такой поток уместить без видимых артефактов. Но в целом, еще обусловденно сложностью самого изображения, у него высокая зернистость и "пёстрость", что сильно влияет на степень сжатия. Это проблема любых любительских записей.
Итак, выявлены следующие входные данные:
- Интерполяция
- Расфокусирование
- Смазанное изображение
- Артефакты сжатия