Алгоритм навчили створювати реалістичні 3D-фотографії

Американські розробники створили алгоритм для перетворення звичайних фотографій на тривимірні, причому з реалістично домальованими фрагментами за об'єктами на знімку. Алгоритм якісно визначає межі об'єктів, що знаходяться на різній відстані від камери, розділяє фрагменти зображення по глибині і домальовує порожні області на дальніх фрагментах за допомогою нейромережі. Стаття буде представлена на конференції CVPR, а код і приклади роботи алгоритму доступні на сторінці авторів.


Тривимірні зображення і відео дають набагато більше почуття занурення і реалістичності, ніж почесні, але для їх створення необхідно або використовувати комп'ютерну графіку, або, якщо мова про зйомку реального світу, застосовувати складні системи з камер і алгоритмів, які фактично недоступні звичайним користувачам. В останні роки алгоритми для роботи із зображеннями значно розвинулися і, наприклад, у Facebook застосовується функція, що дозволяє перетворити звичайну фотографію на псевдотрехмерну. Вона відокремлює основний об'єкт від решти фотографії і як би виносить його на передній план.


Подібним чином працюють і інші алгоритми, але у цього методу є фундаментальне обмеження - з почесного зображення неможливо достовірно отримати фрагменти, які в момент зйомки були закриті іншими об'єктами. Зазвичай це вирішується тим, що відсутні частини просто заливають схожими кольорами, але результат виходить розмитим і лише віддалено несхожим на решту фотографії. Крім того, досить складно якісно розділити об'єкти по дальності від камери.

Розробники з Політехнічного університету Віргінії і Facebook під керівництвом Цзя Біня Хуана (Jia-Bin Huang) створили алгоритм, який дозволяє домогтися більш якісного зафарбовування фону за основними об'єктами в кадрі.

Вихідні дані для алгоритму - це акціонерна кольорова фотографія з даними про глибину, тобто про те, наскільки далеко від камери був розташований об'єкт в кожному пікселі в момент зйомки. У сучасних смартфонах камери часто вже на етапі зйомки створюють карту глибини для фотографій, а в іншому випадку існують досить якісні алгоритми для подальшого створення карти глибини.

На першому етапі алгоритм розділяє пласке зображення на окремі шари з глибиною, що значно відрізняється. Зазвичай у картах глибини зі смартфонів переходи навіть між дуже різними за глибиною областями досить плавні. Тому автори вирішили спочатку збільшувати різкість зображення, щоб краї об'єктів були контрастними за глибиною. Потім алгоритм виділяє прикордонні області за допомогою порогу різниці в глибині. Через неідеальну точність карт глибини в результаті утворюються не тільки довгі межі, а й розділені, а також окремі артефакти всередині об'єктів або на тлі, тому після первинної розмітки алгоритм видаляє артефакти і об'єднує сусідні довгі частини кордонів.

У результаті утворюється набір з областей на передньому плані, які по суті вже не потрібні для наступного етапу, і областей на задньому плані з порожніми областями, які необхідно хоча б частково реалістично заповнити. Працюючи з областями на задньому плані алгоритм починаючи від кожного пікселя кордону «йде вдаль» виділяючи по одному сусідньому пікселю, і роблячи так 40 циклів. В результаті по обидва боки від кордону утворюються дві області: вже заповнена пікселями фотографії область з одного боку, яка використовується як контекст для заповнення порожньої області по інший бік.

Коли області визначено, алгоритм спочатку домальовує межі всередині порожньої області, а потім окремо домальовує кольорові пікселі та пікселі глибини. Для обох шарів використовується нейромережа на базі згорточної мережі U-Net. Вона була навчена на 118 тисячах зображень з датасета COCO, що складається з фотографій безлічі різних об'єктів в різних місцях.


В результаті розробники отримали алгоритм, який досить якісно виділяє на фотографіях об'єкти на різних відстанях і заповнює області за ними більш реалістично, ніж аналогічні алгоритми інших розробників. Автори опублікували кілька роликів з фотографіями і ракурсом, а також створили інтерактивну сторінку, на якій можна на конкретних знімках порівняти різні версії алгоритму між собою, а також з аналогічними алгоритмами інших авторів.

У 2018 році розробники з Google представили алгоритм, що дозволяє створювати фотографії з нових ракурсів з реалістично заповненими порожніми областями. Він отримує пару кадрів з двокамерного смартфона, розбиває зображення на безліч шарів з об'єктами, відсортованими по глибині, а потім «перетягує» шари для нового ракурсу.

COM_SPPAGEBUILDER_NO_ITEMS_FOUND