簡體   English   中英

如何使用 AR.js 改進移動瀏覽器上的標記檢測

[英]How to improve marker detection on mobile browser with AR.js

在開發過程中,我正在使用筆記本電腦的網絡攝像頭測試標記檢測和渲染,結果令人滿意,但是在使用我的 Android 平板電腦時檢測效果不是很好。

我發現一個區別是我的網絡攝像頭具有更高的分辨率(1280x720),而平板電腦的后置攝像頭僅提供 640x480 的視頻數據,根據此網站: https://webrtchacks.github/io/WebRTC

請注意, a-scenearjs屬性的sourceWidthsourceHeightdisplayWidthdisplayHeight參數似乎沒有任何效果,無論我設置它們的高低,我的筆記本電腦總是打印

Allocated videoFrameSize 1228800

我的平板電腦總是打印

*** Camera Parameter resized from 640, 480. ***  
Allocated videoFrameSize 307200

因為我理解了這個限制,所以我拍攝了移動標記的視頻並使用sourceType: video而不是sourceType: webcam 然而,即便如此,平板電腦上的標記檢測質量也比筆記本電腦上的差。 (視頻分辨率是否也像相機一樣受到瀏覽器的限制?)

我在平板電腦上看到三個主要問題:

  1. 如果尺寸很小,則根本不會檢測到標記。
  2. 標記檢測不穩定,因此標記閃爍開/關或單幀方向改變等。
  3. fps 較低,標記檢測需要更長的時間,並且一旦檢測到標記並繪制相應的實體,視頻 stream 就已經有了顯着的進步。

AR.js 中是否有一些參數可以提高識別結果? 我正在考慮諸如“降低置信閾值”之類的東西來檢測更小的標記,“在顯示之前識別 N 個后續幀”以提高穩定性,“降低幀速率”以減少負載,或類似的東西。

類似地,從圖像數據中實際計算出准確的標記方向不需要一些相機校准。

也在這方面工作。 如果不完美,這些參數還不錯(我正在使用標記系統進行測試,邊框為 0.75,以顯示視頻):

<a-scene embedded arjs='sourceType: webcam; patternRatio: 0.75 trackingMethod: best maxDetectionRate: 60 detectionMode: mono' renderer='antialias: true; alpha: true; precision: medium;' vr-mode-ui="enabled: false" stats>

后來

<a-marker vidhandler preset="custom" type='pattern' url='...' smoothCount=0 smoothTolerance=0.0001 >

它絕對比默認結果好,但我的手機 (S9) 仍然是 60 fps,我找不到在哪里推送參數以更好地跟蹤。

我從中挖掘信息的鏈接很少:

https://jeromeetienne.github.io/AR.js/aframe/

https://gitlab.giondesign.com.au/ar-and-vr/ar-js/tree/dev/aframe

https://books.google.nl/books?id=JpLnDwAAQBAJ&pg=PA54&lpg=PA54&dq=ar.js+maxDetectionRate&source=bl&ots=9zs_0le60q&sig=ACfU3U014Kfw8Pt64OKa34Y0jzPCHppxFg&hl=en&sa=X&ved=2ahUKEwiF1JDmqpbqAhXN_aQKHYAmDTQQ6AEwAnoECBQQAQ#v=onepage&q=ar.js%20maxDetectionRate&f=false

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM