dr_pano::fill owns everything the model does not — which tiles, what context, how to blend — behind an Inpainter trait, and dr_pano::migan is that trait over the shipped generator on the inference engine. The known content is mirrored across the coverage edge into the hole and a 256-px ring, the nearest 48 px folded, so the model interpolates between real and mirrored sky rather than extrapolating into nothing. A coarse pass at a quarter decides the structure with the whole border in a few tiles; fine passes in 96-px bands from the edge outward texture it; the seam is blended over a feather inside the real edge. Every knob is a Params field, and an Observer hears each stage for whoever is looking at why a fill went wrong.
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) and the MI-GAN filler (FR-MRG-4). Off, the
|
|
# crate has no model and no runtime — 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"]
|