WWDC22 Create parametric 3D room scans with RoomPlan

閱讀時間約 9 分鐘


New Zealand - Te Anau

New Zealand - Te Anau


觀看 Create parametric 3D room scans with RoomPlan 筆記

Recap


21 年推出 Object Capture,拍攝真實世界的物體照片,透過 RealityKit 的 Photogrammetry API,合成 App 用的 3D 模型

raw-image


那在 Object Capture 之前,還有 Scence Reconstruction API ,可以幫助我們粗略理解,所在空間的幾何結構,並支持在 App 中的 AR 應用

raw-image


今年推出新的 framework RoomPlan

它可以支持 LiDAR 的 iPhone, iPad 掃描房間,生成房間參數化的 3D 模型,也可以在 App 中使用房間內的物品

RoomPlan 使用由 ARKit 提供支持的複雜機器學習算法,用於檢測牆壁、窗戶、門及房間內的物品,例如壁爐、沙發、桌子和櫥櫃

而 RoomCaptureView API 使用 RealityKit 實時呈現掃瞄進度


Applications

這是 Apple 首次剔除了複雜的實施過程(機器學習和計算機視覺算法),我們可以以全新的方式與房間交互

幾個層面敘述 RoomPlan 的應用:

Interior design: 可以預覽牆壁顏色變化,還可以準確計算重新粉刷房間所需的油漆量

Architecture: 輕鬆預覽並實時編輯對其房間佈局的更改

Real estate: 無縫獲得房源的平面圖和 3D 模型

E-commerce: 可以展示實際空間中的物品,而吸引客戶


要使用 RoomPlan 主要有兩種方式

  • Scanning experience API:開箱即用掃描體驗
  • Data API: 支持我們 app 中,用最合適的案例方式,使用實時參數數據

Scanning experience API


RoomCaptureView

它是 UIView 的 subclass

World space feedback 處理世界空間掃描反饋的呈現

Realtime model generation 實時房間模型生成

Coaching and user guidance 輔導和用戶指導

掃描期間會用動線線條呈現檢測到的牆壁、窗戶、開口、門和房間物品

raw-image



而且還會實時生成交互式 3D 模型,讓我們一目瞭然了解掃描進度

raw-image


RoomPlan API 使用

raw-image

最後可以輸出 USDZ 格式的結果檔案

raw-image


Data API


這部分是提供在掃描期間,訪問底層數據結構的權限,可以從頭到尾建立自訂義的可視化掃描體驗

Basic workflow

Scan → Process → Export

Scan

raw-image
raw-image

var previewVisualizer: Visualizer! 可以自定義類型來顯示結果

arView.session = captureSession.arSession 這樣 arView 就繪製平面和邊界框


raw-image
  • func captureSession(_ session: RoomCaptureSession, didUpdate room: CapturedRoom)

這是為了得到實時的 CaptureRoom 數據結構,接著就可以使用 previewVisualizer 來更新 3D 模型的 AR View,這樣就會即時更新並回饋給操作者。

  • func captureSession(_ session: RoomCaptureSession, didProvide instruction: Instruction)

提供指令結構 (Instruction ),其中還有實時回饋,透過 prviewVisualizer 在掃描過程中就可以引導操作者


Instructions

Move closer to wall 物品的距離

Move away from wall 物品的距離

Slow down 掃描速度

Turn on light 房間照明調節

Low texture 專注房間中的有更多紋理的特定區域

透過 Instruction 的上述特性,可以在掃描時可以實時回饋指導操作者


Process

raw-image

此部分使用 RoomBuilder 來處理掃描到的數據,並生成最終的 3D 模型

raw-image

先生成 RoomBuilder instance


raw-image

再透過 captureSession(_ session: didEndWith data: error:) 最終處理

它會在呼叫 session.stop() 或者錯誤發生而停止時觸發此 delegate

最後再透過 roomBuilder.captureRoom(from:) 異步處理掃描數據,並建構最終的 3D 模型


Export

raw-image
raw-image
raw-image
raw-image
raw-image


以下這些都是在 RoomPlan 中支持的物品類型

raw-image



最後再透過 export(to:) 輸出成 USD 和 USDZ 格式的檔案

Cinema 4D 的範例圖

raw-image
raw-image


Best practices


Recommended conditions 優質掃描的理想環境

  • Single residential rooms 適合單個房間
  • Room size: 30 ft by 30 ft 適合的房間大小為 30 * 30 英尺 = 9 * 9 公尺 = 約 26 坪
  • Lighting: minimum 50 lux 建議亮度要達到 50 勒克斯或更高,一般客廳在夜間的亮度通常就是 50 勒克斯,或者像是安全梯、車庫的亮度
  • Lidar-enabled iPhone and iPad Pro models 硬體方面支持所有有 LiDAR 的裝置

Room selection 選擇房間時要注意的

  • Challenging conditions 有些情境會有高難度的挑戰
    • Full-height mirrors or glass 例如全高鏡子和玻璃會讓 LiDAR 傳感器難以產生預期的輸出
    • High ceilings 較高的天花板也可能超出 LiDAR 傳感器的掃描範圍
    • Dark surfaces 難以掃描非常昏暗的表面

Scanning considerations 掃描方面的注意事項

  • Preparing your room 對於精准度要求高的 App 可以事前準備
    • Opening the curtains 拉開窗簾,增加更多自然光
    • Closing doors 關門可以避免意外掃描到房間外的區域
  • Instruction delegate 在掃描期間給操作者提供關於紋理、距離及速度的各種回饋
    • Texture
    • Distance
    • Speed
    • Lighting

Thermal considerations 散熱方面的注意事項

  • Challenging conditions 注意設備的電池和散熱狀況,不要一次掃描超過5分鐘
    • Repeated scans
    • Long scans over 5 minutes

Wrap-up


Intuitive scanning experience

Powerful data API for scene understanding

Fully parametric USD representations

其他討論

參考


Resources


    0會員
    3內容數
    留言0
    查看全部
    發表第一個留言支持創作者!
    你可能也想看
    Google News 追蹤
    Thumbnail
    這篇內容,將透過實戰教學,介紹GameMaker中的Camera。包括Camera的簡介、設定Camera的方法、Viewport的介紹。
    Thumbnail
    本文介紹瞭如何使用 Photoshop 和 Cinema 4D 創建手繪風格動畫場景。從照片處理到模型建模、材質貼圖、額外元素建模、光線和打光、渲染與後期處理,逐步解說了創建過程。通過這些建議,你將能夠創建一個既細緻又富有動畫效果的手繪風格場景,為你的動畫作品增添獨特的魅力和視覺吸引力。
    Thumbnail
    介紹Unreal Sequencer鏡頭工具,CG動畫的學習經驗,並提供相關教程,適合想學習Cinematic Designer的人。
    Thumbnail
    這篇文章介紹了作者的2.5D Camera Projection Mapping效果練習。文中還提供了一些有用的教程資源和相關技術,如電影產業中的數位繪景(Matte Painting)。後記分享了在Unreal遊戲引擎中使用Camera Matte Painting技術的網路教學和研究過程。
    Thumbnail
    本文介紹了景觀設計師常用的軟體,包括平面設計、3D模擬、渲染等多個方面,運用這些軟體幫助設計師展現出專業的圖面和設計理念。
    Thumbnail
    這是一個簡單的工作流,可以對輸入的圖片進行3D重建
    Thumbnail
    3D 模型是用來表示物體的多邊形,可以是現實世界的實體或虛構的東西。本文分享國外網站如何製作 3D 模型的多種方法,包括文字轉 3D 模型、圖像轉 3D 模型和掃描現實物體轉 3D 模型等。歡迎想要製作或使用 3D 模型的你參考!
    Thumbnail
    前篇測試如何把提示詞生成的圖像細節提高,這篇要測試的工作流是把任意圖像載入後經由放大模型放大,同時測試放大後重繪看看效果如何。
    Thumbnail
    Transformer被廣泛運用在各種生成式AI,激起了本篇作者的好奇心,是否能用Transformer學到所有先驗知識,足以讓它由一張2D圖片還原3D物件。本篇也從Github上面找到由ZexinHe開源的LRM實作程式,讓有興趣的人可以深入研究。
    Thumbnail
    這篇內容,將透過實戰教學,介紹GameMaker中的Camera。包括Camera的簡介、設定Camera的方法、Viewport的介紹。
    Thumbnail
    本文介紹瞭如何使用 Photoshop 和 Cinema 4D 創建手繪風格動畫場景。從照片處理到模型建模、材質貼圖、額外元素建模、光線和打光、渲染與後期處理,逐步解說了創建過程。通過這些建議,你將能夠創建一個既細緻又富有動畫效果的手繪風格場景,為你的動畫作品增添獨特的魅力和視覺吸引力。
    Thumbnail
    介紹Unreal Sequencer鏡頭工具,CG動畫的學習經驗,並提供相關教程,適合想學習Cinematic Designer的人。
    Thumbnail
    這篇文章介紹了作者的2.5D Camera Projection Mapping效果練習。文中還提供了一些有用的教程資源和相關技術,如電影產業中的數位繪景(Matte Painting)。後記分享了在Unreal遊戲引擎中使用Camera Matte Painting技術的網路教學和研究過程。
    Thumbnail
    本文介紹了景觀設計師常用的軟體,包括平面設計、3D模擬、渲染等多個方面,運用這些軟體幫助設計師展現出專業的圖面和設計理念。
    Thumbnail
    這是一個簡單的工作流,可以對輸入的圖片進行3D重建
    Thumbnail
    3D 模型是用來表示物體的多邊形,可以是現實世界的實體或虛構的東西。本文分享國外網站如何製作 3D 模型的多種方法,包括文字轉 3D 模型、圖像轉 3D 模型和掃描現實物體轉 3D 模型等。歡迎想要製作或使用 3D 模型的你參考!
    Thumbnail
    前篇測試如何把提示詞生成的圖像細節提高,這篇要測試的工作流是把任意圖像載入後經由放大模型放大,同時測試放大後重繪看看效果如何。
    Thumbnail
    Transformer被廣泛運用在各種生成式AI,激起了本篇作者的好奇心,是否能用Transformer學到所有先驗知識,足以讓它由一張2D圖片還原3D物件。本篇也從Github上面找到由ZexinHe開源的LRM實作程式,讓有興趣的人可以深入研究。