pub struct FaceRow {
pub hash: String,
pub bbox: String,
pub landmark: Option<String>,
pub embedding: Vec<u8>,
pub cluster_id: Option<i64>,
pub person_label: Option<String>,
pub confirmed: i64,
pub is_primary: i64,
pub det_score: f32,
pub blur: f32,
pub oriented: bool,
}Fields§
§hash: String§bbox: String§landmark: Option<String>§embedding: Vec<u8>§cluster_id: Option<i64>§person_label: Option<String>§confirmed: i64§is_primary: i64§det_score: f32SCRFD’s confidence for this detection, and how sharp the aligned crop is (variance of the Laplacian).
:warning: Both were computed and thrown away. The detector has always produced a score and the crop has always been available; nothing read either, so the pipeline could not tell a confident, sharp face from a doubtful, blurry one, and embedded both. Stored so quality can be judged at detection time rather than guessed at cluster time.
blur: f32§oriented: boolWhich canvas the bbox/landmark coordinates are in: false = the raw
sensor canvas (every row written before the orientation fix, and
stored as NULL), true = the display canvas a person sees. Face
thumbnails branch on this when cropping. The pipeline writes true
since it decodes orientation-correctly; NULL must never read as
“display canvas”.