WWDC23 Meet Object Capture for iOS

更新 發佈閱讀 9 分鐘
New Zealand - Greenpoint Ship Graveyard

New Zealand - Greenpoint Ship Graveyard

觀看 WWDC23 Meet Object Capture for iOS 筆記

Object Capture recap


先拍攝各種角度的照片,再透過 Mac 的 Object Capture API,經過幾分鐘轉換,最後變成 3D 模型

raw-image


然而現在可以直接透過 iPhone 直接做到這些事情

raw-image
raw-image
raw-image


但需要花到好幾分鐘的時間,上面的範例預計就要15分鐘才生成,最後產出 USDZ 格式的模型。

Sample code →  Scanning objects using Object Capture

另外也可參考 WWDC 24 Discover area mode for Object Capture


More objects with LiDAR


原本的 Object Capture 系統在面對足夠紋理細節的物體,表現最佳

raw-image


但在 23 年 Apple 也進一步升級,使用了 LiDAR 掃瞄器,對一些紋理不足的物體進行重構,所以更好掃描了。

raw-image


Challenging objects

避免表面反光、透明或包含纖細結構的物體進行建模

  • Reflective
  • Transparent
  • Too-thin structures


Guided capture


Apple 建議盡可能用多種角度拍攝圖像


Automatic capture

raw-image

提供一個刻度圓盤來輔助拍攝


Capture feedback

  • Light

拍攝前確保環境有良好的照明,以便獲得準確的顏色,太暗會跳出提醒

raw-image


  • Speed

要緩慢而流暢繞物體移動,保持穩定,防止出現模糊的影像,過快的移動也會有提醒

raw-image


  • Distance

保持適當的距離,使物體在取景匡內的位置恰到好處,太近或太遠也會提醒

raw-image


  • Field of view

固定好機位,假如移動到視窗太遠的地方也會被提醒

raw-image



Flipping objects

適合翻轉:

  • 翻轉不宜變形,例如石頭
  • 紋理豐富的物體也推薦進行翻轉

不適合翻轉:

  • 容易因為移動而變形,像是 Pizza 就不那麼適合了
  • 有對稱或重複紋理的物體,這樣可能對系統產生誤導
  • 此外無紋理的物體在 Object Capture 系統中難以實現,因為通常都需要足夠的紋理,來縫合不同區塊
raw-image


Flippable

Apple 也有提供 API 來確保物體是否有足夠的紋理支持翻轉拍攝

  • 3 orientations: 推薦三種方向進行掃描,以便獲取各種角度的圖像
  • Diffuse lights: 最好使用漫射光進行照明,以最大程度減少物體表面的反光及陰影
  • Visual overlap: 在多輪掃描中使影像重疊也很重要,所以當次與下次的掃描,某些影像應該要重複重疊

Non-flippable

  • 3 heights: 若物體真的不能翻轉,Apple 建議從三種不同高度進行拍攝,以獲取不同角度
  • Textured background: 拍攝無紋理物體時,建議使用有紋理的背景,使主體顯得突出

Supported devices on iOS

  • iPhone 12 Pro and laster with LiDAR sensor
  • iPad Pro 2021 and later with LiDAR sensor


iOS API


raw-image

從剛剛的 demo 得知,我們使用 Object Capture 有兩個步驟

  1. 影像捕捉
  2. 模型重建

Image Capture API

影像捕捉 API 分為兩部分

  • ObjectCaptureSession
    在捕獲的過程中觀察和控制狀態工作流
  • ObjectCaptureView (SwiftUI)
    展示拍攝素材,並基於 session 狀態,自動調整它所呈現的 UI 元素
    而使用 ObjectCaptureView,它是不帶任何 2D 文本或按鍵,讓我們可以自定義 View 的外觀,並更輕鬆整合到現有的 App 中


Object Capture states

raw-image
raw-image

因為他是 reference type,推薦將 session 以持久狀態存儲在基於真實數據模型中,直到 session 完成。


raw-image

透過 ObjectCaptrueSession.start(imageDirectory:configuration:) ,先決定將捕捉的圖像儲存在何處,或透過 ObjectCaptureSession.Confoguration.checkpointDirectory 來檢查目錄

raw-image

再來使用 ZStack 包著 ObjectCaptureView(session:) 並把剛剛準備的 session 傳入就可以使用了,而且他附帶著對準的輔助視窗,輔助我們將物體放置框框內


raw-image

我們可以透過 session.state 來判斷是否到 .ready 的狀態,是的話可以呈現一顆按鈕,來提供開始掃描物體的功能(使用 session.startDetecting() )

raw-image


在 demo 中,還有一個 Reset button,可以讓我們從狀態 Detecting 返回 Ready

raw-image


raw-image

假如狀態切到 .detecting ,表示我們偵測到物體,此時我們就可以開始拍攝(使用 session.startCapturing()


raw-image

為了讓掃描得更準,Apple 推薦進行三輪掃描

所以接下來有兩條路可以走

第一,取決是否要翻轉物體,這樣就可以拍攝到前次沒拍到的部分,例如物體底部,此狀況可以 call beginNewScanPassAfterFlip()

raw-image


第二,不想要翻轉拍攝物體,但可以選擇不同的高度拍攝,這時可以 call beginNewScanPass() ,這時會重置捕捉刻度盤,但 session 會處於拍攝狀態

raw-image


raw-image

再來,三輪拍攝都結束後,會觸發 session.userCompletedScanPass 可以出現按鈕讓 user 呼叫 session.finish()


raw-image

然後 session 會等待數據進行存儲,存完後就會自動移至 Completed


raw-image

但也有可能遇到儲存失敗,此時就需要重新生成 session

Point Cloud view

raw-image

透過 ObjectCapturePointCloudView(session:) ,可以展示剛剛拍攝的物體,而且點擊互動,進行各種角度預覽。


最後拍攝完建立模型

raw-image

細節可以參考 WWDC 21 Create 3D models with Object Capture


Detail level on iOS

raw-image

為了讓手機端可以生成模型和預覽優化,所以在 iOS 上支持簡化這一細節等級,重建的模型包含漫反射、環境光遮蔽和髮線的紋路映射,均為異動設備顯示而設計


假如產生更多細節紋路,還是要把圖像傳到 Mac 上建立

也可以透過 Mac 再加入拍攝細節

raw-image

其他細節要參考 WWDC 23 Meet Reality Composer Pro

甚至有可能不需要寫任何 code,因為 Object Capture 已經整合到了新 macOS App,就是 Reality Composer Pro


Reconstruction enhancements


Increased performance on Mac: 目前已大大提升 Mac 上模型質量和重建速度

Estimated processing time: 還提供預計重建時間

Pose output: 位姿輸出,可以要求每幅圖像的高質量位姿,每項位姿都包含了拍攝該圖片時預計的相機位置和朝向

raw-image
raw-image


Custom detail level: 自定義細節等級

raw-image


參考


https://developer.apple.com/videos/play/wwdc2023/10191/

留言
avatar-img
CHENGYANG的沙龍
1會員
20內容數
CHENGYANG的沙龍的其他內容
2025/01/09
觀看 WWDC23 Write Swift macros 筆記 Overview Apple 一開始提出一個範例,把計算的過程顯示成字串,用一個 tuple 組合起來,但這種方式很明顯,有個大缺點,就是容易有人為疏失,導致錯誤發生,還無法用 compiler 檢查字串是否相等於左邊的算數。
Thumbnail
2025/01/09
觀看 WWDC23 Write Swift macros 筆記 Overview Apple 一開始提出一個範例,把計算的過程顯示成字串,用一個 tuple 組合起來,但這種方式很明顯,有個大缺點,就是容易有人為疏失,導致錯誤發生,還無法用 compiler 檢查字串是否相等於左邊的算數。
Thumbnail
2024/12/08
前言 常在寫 leet code 的朋友應該都知道,除了解出題目很重要,還有時間複雜度以及空間複雜度的問題,若能更理解時間複雜度,然後優化解法,就可以讓寫程式的基本底子更上一層樓,以下簡單介紹常見的時間複雜度以及演算法。 除了時間複雜度,也會順便簡單說明相關東西,如下: 相關演算法
Thumbnail
2024/12/08
前言 常在寫 leet code 的朋友應該都知道,除了解出題目很重要,還有時間複雜度以及空間複雜度的問題,若能更理解時間複雜度,然後優化解法,就可以讓寫程式的基本底子更上一層樓,以下簡單介紹常見的時間複雜度以及演算法。 除了時間複雜度,也會順便簡單說明相關東西,如下: 相關演算法
Thumbnail
2024/11/10
Why macros? 最早能從一些 protocol 發現這個特性(Derived protocol conformance),例如 Codable 這樣就可以避免寫重複樣版的程式碼 其實目前在 Swift 中已經有大量的例子,我們開發者只需要寫一些簡單的語法,編譯器就會自動生成一段複
Thumbnail
2024/11/10
Why macros? 最早能從一些 protocol 發現這個特性(Derived protocol conformance),例如 Codable 這樣就可以避免寫重複樣版的程式碼 其實目前在 Swift 中已經有大量的例子,我們開發者只需要寫一些簡單的語法,編譯器就會自動生成一段複
Thumbnail
看更多
你可能也想看
Thumbnail
本文深度解析賽勒布倫尼科夫的舞臺作品《傳奇:帕拉贊諾夫的十段殘篇》,如何以十段殘篇,結合帕拉贊諾夫的電影美學、象徵意象與當代政治流亡抗爭,探討藝術在儀式消失的現代社會如何承接意義,並展現不羈的自由靈魂。
Thumbnail
本文深度解析賽勒布倫尼科夫的舞臺作品《傳奇:帕拉贊諾夫的十段殘篇》,如何以十段殘篇,結合帕拉贊諾夫的電影美學、象徵意象與當代政治流亡抗爭,探討藝術在儀式消失的現代社會如何承接意義,並展現不羈的自由靈魂。
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
5 月將於臺北表演藝術中心映演的「2026 北藝嚴選」《海妲・蓋柏樂》,由臺灣劇團「晃晃跨幅町」製作,本文將以從舞台符號、聲音與表演調度切入,討論海妲・蓋柏樂在父權社會結構下的困境,並結合榮格心理學與馮.法蘭茲對「阿尼姆斯」與「永恆少年」原型的分析,理解女人何以走向精神性的操控、毀滅與死亡。
Thumbnail
5 月將於臺北表演藝術中心映演的「2026 北藝嚴選」《海妲・蓋柏樂》,由臺灣劇團「晃晃跨幅町」製作,本文將以從舞台符號、聲音與表演調度切入,討論海妲・蓋柏樂在父權社會結構下的困境,並結合榮格心理學與馮.法蘭茲對「阿尼姆斯」與「永恆少年」原型的分析,理解女人何以走向精神性的操控、毀滅與死亡。
Thumbnail
《轉轉生》(Re:INCARNATION)為奈及利亞編舞家庫德斯.奧尼奎庫與 Q 舞團創作的當代舞蹈作品,結合拉各斯街頭節奏、Afrobeat/Afrobeats、以及約魯巴宇宙觀的非線性時間,建構出關於輪迴的「誕生—死亡—重生」儀式結構。本文將從約魯巴哲學概念出發,解析其去殖民的身體政治。
Thumbnail
《轉轉生》(Re:INCARNATION)為奈及利亞編舞家庫德斯.奧尼奎庫與 Q 舞團創作的當代舞蹈作品,結合拉各斯街頭節奏、Afrobeat/Afrobeats、以及約魯巴宇宙觀的非線性時間,建構出關於輪迴的「誕生—死亡—重生」儀式結構。本文將從約魯巴哲學概念出發,解析其去殖民的身體政治。
Thumbnail
本文作者:Hamburger 蘋果一年會有兩場大的發表會,一場是 6 月舉辦的開發者大會 (WWDC),是軟體更新的發表會,而 9 月舉辦的 Apple Event 則是硬體發表會,發表果粉期待的新硬體產品。早期會有一些硬體產品可能跟不上 9 月發表會的時程,因此會在 10 / 11
Thumbnail
本文作者:Hamburger 蘋果一年會有兩場大的發表會,一場是 6 月舉辦的開發者大會 (WWDC),是軟體更新的發表會,而 9 月舉辦的 Apple Event 則是硬體發表會,發表果粉期待的新硬體產品。早期會有一些硬體產品可能跟不上 9 月發表會的時程,因此會在 10 / 11
Thumbnail
蘋果已於 WWDC 大會中推出了其 AI 技術 Apple Intelligence,新功能預計會在 9 月 iPhone 16 系列發售後一同推出,不過初期 Apple Intelligence 僅支援美式英語,且僅為 Beta 版。但即便如此,大摩仍看好 Apple Intelligence
Thumbnail
蘋果已於 WWDC 大會中推出了其 AI 技術 Apple Intelligence,新功能預計會在 9 月 iPhone 16 系列發售後一同推出,不過初期 Apple Intelligence 僅支援美式英語,且僅為 Beta 版。但即便如此,大摩仍看好 Apple Intelligence
Thumbnail
本文介紹了 Apple WWDC 2024 發佈會的新應用與技術,包括 AI 相機功能、供應鏈影響和6月FOMC點陣圖解析,並分析了對市場的影響以及結論。文章涉及的主要英文關鍵字有:WWDC 2024, Apple, AI camera, supply chain, FOMC.
Thumbnail
本文介紹了 Apple WWDC 2024 發佈會的新應用與技術,包括 AI 相機功能、供應鏈影響和6月FOMC點陣圖解析,並分析了對市場的影響以及結論。文章涉及的主要英文關鍵字有:WWDC 2024, Apple, AI camera, supply chain, FOMC.
Thumbnail
观看了苹果的WWDC 2024发布会,在视频的1小时06分18秒处,苹果公司介绍了他们最新的人工智能技术——Apple Intelligence。虽然我还没有体验过这项技术,但从视频中展示的内容来看,这无疑是一项值得人们深深忧虑的技术。
Thumbnail
观看了苹果的WWDC 2024发布会,在视频的1小时06分18秒处,苹果公司介绍了他们最新的人工智能技术——Apple Intelligence。虽然我还没有体验过这项技术,但从视频中展示的内容来看,这无疑是一项值得人们深深忧虑的技术。
Thumbnail
蘋果WWDC發布會在每一年都能吸引全球的目光。今年,在銷量不及預期的背景下,這場科技盛宴再次拉開帷幕,全球消費者見證iOS 18、iPadOS 18、macOS Sequoia等一系列重磅系統更新的亮相。
Thumbnail
蘋果WWDC發布會在每一年都能吸引全球的目光。今年,在銷量不及預期的背景下,這場科技盛宴再次拉開帷幕,全球消費者見證iOS 18、iPadOS 18、macOS Sequoia等一系列重磅系統更新的亮相。
Thumbnail
Apple在10日舉行的全球開發者大會(WWDC),將最新的「蘋果智慧」(Apple Intelligence)融入包括Siri在內的一系列app,並宣稱將與OpenAI結盟 ,未來將準備與ChatGPT整合,Apple當天股價不漲反跌1.91%,但不少機構分析師對於Apple終將趕上AI浪潮...
Thumbnail
Apple在10日舉行的全球開發者大會(WWDC),將最新的「蘋果智慧」(Apple Intelligence)融入包括Siri在內的一系列app,並宣稱將與OpenAI結盟 ,未來將準備與ChatGPT整合,Apple當天股價不漲反跌1.91%,但不少機構分析師對於Apple終將趕上AI浪潮...
Thumbnail
每年的 Apple 全球開發者大會 (WWDC)都是科技界矚目的盛事,蘋果公司利用這個平台與全球開發者分享最新的軟硬件技術。今年的 WWDC 2024 以「Action packed 猛料全加載」為主題,推出了一系列令人興奮的新功能和升級。讓我們一起來看看今年的重點亮點吧!
Thumbnail
每年的 Apple 全球開發者大會 (WWDC)都是科技界矚目的盛事,蘋果公司利用這個平台與全球開發者分享最新的軟硬件技術。今年的 WWDC 2024 以「Action packed 猛料全加載」為主題,推出了一系列令人興奮的新功能和升級。讓我們一起來看看今年的重點亮點吧!
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News