Реалізація фотограмметрії об'єктів для AR (Object Capture)
Apple Object Capture API з'явився в macOS 12 і дозволяє створювати високоякісні 3D-моделі з серії фотографій через фотограмметрію. Сфотографуйте об'єкт з 20–200 ракурсів на iPhone — отримайте USDZ з текстурою 4K та геометрією, готовою для AR. Без ручного моделювання, без 3D-редактора.
Але «просто сфотографуй» працює лише в ідеальних умовах. На практиці — маса обмежень.
Як працює Object Capture
PhotogrammetrySession з RealityKit аналізує перекриття фотографій, будує point cloud, відновлює геометрію (depth estimation + multi-view stereo) та генерує меш з текстурою.
import RealityKit
let session = try PhotogrammetrySession(input: folderWithImages)
try session.process(requests: [
.modelFile(url: outputURL, detail: .medium)
])
for try await output in session.outputs {
switch output {
case .processingComplete:
print("Готово")
case .requestProgressInfo(_, let info):
print("Прогрес: \(info.fractionComplete)")
default:
break
}
}
detail — рівень деталізації: .preview (швидко, грубо), .reduced, .medium, .full, .raw (максимум, лише на Mac Pro). Для мобільного AR зазвичай .medium — баланс між якістю та розміром файлу.
Важливо: PhotogrammetrySession працює лише на Mac з Apple Silicon або Intel Mac з macOS 12+. На iPhone немає — лише зйомка, обробка на Mac.
Що робить результат хорошим або поганим
Освітлення. Фотограмметрія ненавидить резкі тені та блики. Ідеал: розсіяне світло в пасмурний день або лайтбокс. Прямо сонце — жорсткі тені, які «запікаються» в текстуру як артефакти. Глянцеві поверхні (метал, скло, пластик з лаком) — алгоритм не відновлює геометрію через дзеркальне відображення.
Покриття ракурсів. Потрібні перекриваючі снімки з різних точок: горизонтальний ряд навколо об'єкта (кожні 15°), ще два ряди під кутом 30° та 60° вгору, плюс зйомка зверху. Разом: 100–200 фото для об'єкта середнього розміру. Менше — дірки в меші. Більше — надлишково, час обробки зростає.
Розмір об'єкта. Object Capture працює найкраще для об'єктів 10–50 см. Дрібні предмети (монети, прикраси) — потрібні макро-фото з високою роздільністю. Великі об'єкти (меблі, автомобіль) — потрібна спеціальна стратегія зйомки з перекриттями.
Текстура об'єкта. Однорідні поверхні (білий шар, чистий металічний циліндр) — фотограмметрія не знаходить feature points, геометрія відновлюється неверно. Рішення: тимчасово нанести матований порошок (chalk spray) для додавання текстури, змити після зйомки.
Пайплайн від зйомки до AR
-
Зйомка на iPhone. Застосунки типу
Reality Composerабо спеціалізовані треті (PolyCam, Luma AI) для контролю покриття. PolyCam показує heat map в реальному часі — наглядно видно, де не хватає ракурсів. -
Передача на Mac. AirDrop або iCloud Drive. Папка з HEIC/JPEG фото.
-
Обробка через Object Capture. Час: 20–60 хвилин для 100 фото на M1 Mac. Detail level
.medium. Mac Pro —rawdetail за той же час. -
Оптимізація USDZ. Вихідний файл із Object Capture —
.fullабо.raw— може важити 200–500 МБ. Для AR потрібно:- Зменшити кількість полігонів через Blender Decimate (50000–100000 полігонів)
- Стиснути текстури через
TextureConverter - Цільовий розмір для мобільного AR: 5–20 МБ
-
Валідація та публікація. Quick Look на iPhone, перевірка масштабу, завантаження на CDN.
Альтернативи на телефоні
Luma AI / Polycam — застосунки, які роблять 3D-реконструкцію на телефоні або в хмарі. Luma використовує Neural Radiance Fields (NeRF) — результат м'якший та з меншою кількістю артефактів на складних поверхнях. Але NeRF-меш потребує додаткової обробки перед AR (конвертація з хмари в USDZ). Polycam — LiDAR-сканування для iPhone Pro + фотограмметрія.
ARCore Geospatial Creator та Gaussian Splatting — нові підходи для об'ємних сцен, але ще не готові для продакшн AR-каталогів через складність інтеграції.
Кейс
Антикварний магазин, 80 предметів для AR-каталога. Фотозйомка у магазині — лайтбокс 60×60 см, iPhone 14 Pro. Скрипт автоматичної обробки: папка з фото → Object Capture → Blender Python для децимації та стиснення текстур → USDZ на CDN. Із 80 об'єктів 12 мали глянцеві поверхні — обробляли окремо з chalk spray. Середній час від зйомки до готової AR-моделі: 2,5 години (включаючи обробку на M2 MacBook Pro).
Терміни
| Завдання | Терміни |
|---|---|
| Настройка зйомочного пайплайну + навчання | 2–3 дні |
| Автоматизація Object Capture → оптимізація | 1 тиждень |
| Обробка 50–100 об'єктів | 2–4 тижні |
Вартість розраховується після оцінки типів об'єктів і необхідної якості.







