XFeat's two exports are a Keypoints role now; the crate no longer names tract, and the app compiles TensorRT engines for both ahead of the first merge. The probe picks the smallest *detector* rather than the smallest file: the tablet's first run chose the 112 KB eye classifier, which has no int8 form, and reported the Hexagon as failed for want of one.
39 lines
1.3 KiB
TOML
39 lines
1.3 KiB
TOML
[package]
|
|
name = "dr-pano"
|
|
version.workspace = true
|
|
edition.workspace = true
|
|
rust-version.workspace = true
|
|
license.workspace = true
|
|
# Guards against a Git LFS pointer being embedded in place of the weights.
|
|
build = "build.rs"
|
|
|
|
[dependencies]
|
|
thiserror.workspace = true
|
|
log.workspace = true
|
|
|
|
# Inference for the learned keypoint detector, on the same footing as
|
|
# `dr-segment`: `ort` is the API, `dr-inference-engine` decides what runs
|
|
# it (docs/inference.md), and both are optional so that the geometry —
|
|
# matching, the rotation solve, the projections — is a dependency-free crate
|
|
# that tests without a model.
|
|
ort = { workspace = true, optional = true }
|
|
dr-inference-engine = { workspace = true, optional = true }
|
|
ndarray = { workspace = true, optional = true }
|
|
|
|
[dev-dependencies]
|
|
# The example aligns real frames from their embedded previews.
|
|
dr-decode.workspace = true
|
|
dr-types.workspace = true
|
|
env_logger.workspace = true
|
|
|
|
[features]
|
|
default = ["xfeat", "embedded-model"]
|
|
|
|
# The XFeat detector (FR-MRG-8). Off, the crate has no model and no runtime,
|
|
# and `Detector` has no implementation — a build that only wants the geometry.
|
|
xfeat = ["dep:ort", "dep:dr-inference-engine", "dep:ndarray"]
|
|
|
|
# Compile the weights into the binary, for the same reason `dr-segment` does:
|
|
# Android hands the app no path to read a model from (ARCH §6.9).
|
|
embedded-model = ["xfeat"]
|