更新:祝賀誰提交了feature requests!在iOS 11.3(又名「ARKit 1.5」)中,您至少可以控制一些捕捉設置。你現在可以獲得默認啓用自動對焦的1080p。
檢查ARWorldTrackingConfiguration.supportedVideoFormats
獲取ARConfiguration.VideoFormat
對象的列表,其中每個對象都定義了分辨率和幀速率。列表中的第一個是當前設備支持的默認(和最佳)選項,所以如果您只想獲得最佳分辨率/幀率,則無需執行任何操作。 (如果您想通過設置videoFormat
來降低性能,可能會更好地基於陣列順序而不是硬編碼尺寸。)
自動對焦在iOS 11.3中默認開啓,因此您的示例圖片(與一個比較接近相機的主題)應該會更好。如果由於某種原因,您需要關閉它,there's a switch for that。
仍然沒有用於更改ARKit使用的底層捕獲會話的相機設置的API。根據WWDC工程師的回覆,ARKit使用相機捕捉功能的有限子集來確保高幀率,同時對CPU和GPU使用率的影響最小。製作更高質量的實況視頻需要一定的處理開銷,但計算機視覺和運動傳感器集成系統也會產生一些處理開銷,使ARKit工作 - 增加開銷太多,並且開始增加延遲。對於一種旨在向用戶顯示他們的世界的「實時」增強視圖的技術,您不希望「增強」部分滯後多幀的相機運動。 (另外,最重要的是,您可能需要一些CPU/GPU時間,以便您的應用在相機視圖頂部呈現漂亮的3D內容。)
iPhone和iPad設備之間的情況相同,但你在iPad上注意到它更多的是因爲屏幕更大 - 在4-5英寸的屏幕上,720p視頻看起來並不那麼糟糕,但它看起來非常難以滿足10-13英寸的屏幕。 (幸運的是,在iOS 11.3中默認爲1080p,看起來應該更好。)
AVCapture系統確實可以在視頻捕獲期間拍攝更高分辨率/更高質量的靜態照片,但ARKit不會將其內部捕獲會話任何方式,所以你不能使用它AVCapturePhotoOutput
。(在會話期間捕獲高分辨率靜止圖像可能仍然是一種很好的feature request。)
您是否找到解決方案?我和ARFaceTracking會議上的iPhone X上的True-Depth前置攝像頭有同樣的問題,我想從會話中獲取高分辨率靜止圖像。你能切換到正常的AVCaptureSession嗎?交換機之間的暫停是什麼?真的想知道這裏的選擇... –