[英]How to improve marker detection on mobile browser with AR.js
在開發過程中,我正在使用筆記本電腦的網絡攝像頭測試標記檢測和渲染,結果令人滿意,但是在使用我的 Android 平板電腦時檢測效果不是很好。
我發現一個區別是我的網絡攝像頭具有更高的分辨率(1280x720),而平板電腦的后置攝像頭僅提供 640x480 的視頻數據,根據此網站: https://webrtchacks.github/io/WebRTC
請注意, a-scene
的arjs
屬性的sourceWidth
、 sourceHeight
、 displayWidth
、 displayHeight
參數似乎沒有任何效果,無論我設置它們的高低,我的筆記本電腦總是打印
Allocated videoFrameSize 1228800
我的平板電腦總是打印
*** Camera Parameter resized from 640, 480. ***
Allocated videoFrameSize 307200
因為我理解了這個限制,所以我拍攝了移動標記的視頻並使用sourceType: video
而不是sourceType: webcam
。 然而,即便如此,平板電腦上的標記檢測質量也比筆記本電腦上的差。 (視頻分辨率是否也像相機一樣受到瀏覽器的限制?)
我在平板電腦上看到三個主要問題:
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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.