fix(example): reproduce & validate small-marker pinball-demo.jpg detection (#53) - #51
fix(example): reproduce & validate small-marker pinball-demo.jpg detection (#53)#51kalwalt wants to merge 3 commits into
Conversation
Switch the static image example from TEBLID to AKAZE, which correctly detects the small pinball marker where TEBLID failed. Adjust build flags in tools/makem.js and rebuild the wasm bundles accordingly. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
PR Summary by QodoReproduce small-marker tracking with the updated WebARKitLib
AI Description
Diagram
High-Level Assessment
Files changed (3)
|
Code Review by Qodo
1.
|
Summary
Validates the WebARKitLib small-marker fix (webarkit/WebARKitLib#53) against the
pinball-demo.jpgscene using the static-image example. The WebARKitLib submoduleis bumped to the #53 fix (
f9c68a8), the example now loads the small-marker scene,and the WASM toolchain is made offline-capable so the bundles can be rebuilt in
network-restricted CI.
Features accomplished
emscripten/WebARKitLib:ce5c280→f9c68a8(the #53 fix).threejs_teblid_static_image_ES6_example.html:pinball-demo-big.jpg→
pinball-demo.jpg(the small-marker scene, 2000×1500 → detection pyrLevel=1).tools/makem.js: dropped-s USE_ZLIB=1/-s USE_LIBJPEG(emscripten portsfetch from github.com at build time and fail under TLS-intercepted / offline
environments); links the prebuilt WASM zlib (
opencv_js/3rdparty/lib/libzlib.a)instead. No libjpeg symbols are used by the tracker (examples decode JPEG in JS).
build/WASM bundles with the fix.Issues resolved
(pinball.jpg ref + pinball-demo.jpg scene) shows the marker is detected with
the fix (FOUND at attempt 2, 1809 keypoints/matches on the downsampled frame)
vs NOT FOUND before. The win came from the OCVT-aligned AKAZE params
(threshold
3e-4→1e-3,nn_match_ratio0.7→0.8).What's next
full resolution. Root cause is downstream of keypoint detection (ratio-test →
homography RANSAC), independent of the pyrDown issue #53 addressed. A follow-up
PR will investigate and fix it; the example intentionally stays on TEBLID until then.
dist/WebARKit.js(npm run build-es6) so the live browserexample picks up the rebuilt WASM.