Всем привет! Подумал я и решил рассказать о лучшем, на мой взгляд, сервисе способе генерации карт глубины (Depth Map) для изображений. Тех самых, которые нужны для создания дисплэйсмента, естественного размытия, боке и т.д. Лично я чаще всего пользую карты глубины для придания легкого 3D эффекта снимкам (2.5D), также пару раз применял этот способ для «киношного» размытия стоковых видеофрагментов (рендерил фрагмент покадрово и подгружал в «сервис» прям всю пачку кадров разом).
Итак, речь пойдет о 2dtodepth. Вам понадобятся: сама папочка с 2dtodepth, аккаунт Google и… всё :)
1) Качаем 2dtodepth отсюда
3) Закидываем распакованную папку на свой Google Drive
1) Открываем загруженную папку 2dtodeph
2) Находим там папку infile
3) Закидываем туда нужные изображения
! Картинки должны быть в формате .jpeg, другой формат сервис, к сожалению, не распознает.
1) Переходим в среду Google Colab
2) Открываем [Файл -> Создать блокнот]
3) Открываем [Изменить -> Настройки блокнота] и меняем аппаратный ускоритель на GPU, сохраняем изменения
4. Подключаем свой Google Drive.
1) В строке кода набираем:
from google.colab import drive
drive.mount ('/content/drive')
! Иногда текст не вставляется из сторонних источников, лично я тогда копирую его через блокнот, т.е. сначала копирую текст в блокнот, а потом из блокнота ПОСТРОЧНО вставляю уже в строку кода.
2) Запускаем этот код (кнопочка «play» слева)
3) Соглашаемся, где нужно; разрешаем, что требуется; выполняем вход в аккаунт Google
4) По завершении выполнения кода наблюдаем строку успешного окончания операции
5) Проверяем наличие смонтированной папки 2dtodepth
5. Генерируем карты глубины.
1) Добавляем строку кода и прописываем:
%cd /content/drive/My Drive/2dtodepth
!python 2dtodepth.py --input=single_view
2) Запускаем этот код (кнопочка «play» слева) и дожидаемся завершения операции
3) Возвращаемся в свой Google Drive, открываем папку 2dtodepth, находим папку outfile и видим там сгенерированные карты глубины
Ну и в заключение хотелось бы отметить, что «сервис» не всегда справляется идеально, иногда результат генерации приходится подправлять. Но все же 2dtodepth работает на порядок лучше, чем остальные подобные сервисы, а их я перепробовал немало. Кстати, он также неплохо обрабатывает лица, хорошо распознает выпуклости носа и губ, впадины в области глаз, но почти всегда карты глубины лиц приходится допиливать ручками.
Моя Инста (если кому интересно, чем я занимаюсь) – nikeditae
Всем спасибо за внимание и удачи с Вашими проектами!