Skip to main content

Unity Camera Auto-framing


Нещодавно зіткнувся з цікавою задачею: потрібно сфотографувати картину, яка стоїть на столі під кутом, автоматично обрізати її та вирівняти перспективу в ідеальну прямокутну площину для подальшої обробки в застосунку.

Спочатку мій план був досить складним: використовувати AR для сканування поверхонь, визначати прямокутники у 3D-просторі, витягувати звідти текстуру та розгортати її. Але після консультації з iOS-експертом концепція повністю змінилася - усе виявилося набагато простіше!

Замість того, щоб винаходити велосипед у Unity, я написав нативні плагіни, які виконують усю важку роботу на рівні системи і просто повертають готову текстуру в рушій:
- iOS: Використовує фреймворки AVFoundation, Vision та Core Image для захоплення зображення з камери, детекції меж картини та автоматичної корекції перспективи (кадрування).
- Android: Працює на базі системного Google ML Kit Document Scanner API для швидкого захоплення зображення, пошуку меж та ідеальної корекції перспективи.

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