2017-10-10 57 views
6

我正在構建一個ARKit應用程序,我們希望能夠拍攝該場景的照片。我發現ARCamera視圖的圖像質量不足以在iPad Pro上拍照。如何提高ARKit中的相機質量

標準攝像機圖像: Standard camera image

ARCamera圖像: ARCamera image

我見過的蘋果論壇的貼子,提到這可能是iPad的臨10.5特定的並且與固定鏡頭位置(https://forums.developer.apple.com/message/262950#262950)。

是否有公開的方式來改變設置?

另外,我曾嘗試使用AVCaptureSession採取正常的照片,並把它應用到sceneView.scene.background.contents在照片拍攝完成轉轍出更高清晰度的圖像模糊的圖像,但不能得到AVCapturePhotoOutput與ARKit

工作
+0

您是否找到解決方案?我和ARFaceTracking會議上的iPhone X上的True-Depth前置攝像頭有同樣的問題,我想從會話中獲取高分辨率靜止圖像。你能切換到正常的AVCaptureSession嗎?交換機之間的暫停是什麼?真的想知道這裏的選擇... –

回答

7

更新:祝賀誰提交了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。)

+0

謝謝rickster。我會提出一個功能請求,但仍然繼續關注如何使用相機捕捉圖像並切換場景背景 –

+0

@EdwardFord您是否設法找到解決此問題的任何解決方案? –

+0

我還沒有,但蘋果剛剛宣佈了一個新版本的圖像分辨率的改進https://developer.apple.com/news/?id=01242018b –