feat: ASRX hybrid pipeline, identity history, worker fixes, checkpoint system

This commit is contained in:
Accusys
2026-06-02 07:13:23 +08:00
parent e3066c3f49
commit e1572907ae
198 changed files with 43705 additions and 8910 deletions

View File

@@ -126,12 +126,24 @@ struct SwiftFace: ParsableCommand {
let imgH = CGFloat(cgImage.height)
// Process landmark observations FIRST (each has bbox + landmarks, self-consistent)
// Quality filtering
let MIN_CONFIDENCE = 0.6
let MIN_SIZE = 20
for lmObs in landmarkObservations {
// Confidence filter
let lmConf = Double(lmObs.confidence)
if lmConf < MIN_CONFIDENCE { continue }
let bb = lmObs.boundingBox
let faceX = Int(bb.origin.x * imgW)
let faceY = Int((1.0 - bb.origin.y - bb.size.height) * imgH)
let faceW = Int(bb.size.width * imgW)
let faceH = Int(bb.size.height * imgH)
// Size filter
if faceW < MIN_SIZE || faceH < MIN_SIZE { continue }
let faceX = Int(bb.origin.x * imgW)
let faceY = Int((1.0 - bb.origin.y - bb.size.height) * imgH)
var faceData: [String: Any] = [
"bbox": ["x": max(0, faceX), "y": max(0, faceY),
@@ -203,11 +215,21 @@ struct SwiftFace: ParsableCommand {
}
}
if matched { continue }
// Quality filtering for unmatched face rects
let MIN_CONFIDENCE = 0.6
let MIN_SIZE = 20
let faceConf = Double(faceObs.faceCaptureQuality ?? faceObs.confidence)
if faceConf < MIN_CONFIDENCE { continue }
let faceW = Int(fBB.size.width * imgW)
let faceH = Int(fBB.size.height * imgH)
if faceW < MIN_SIZE || faceH < MIN_SIZE { continue }
// Unmatched face rect: output without landmarks
let faceX = Int(fBB.origin.x * imgW)
let faceY = Int((1.0 - fBB.origin.y - fBB.size.height) * imgH)
let faceW = Int(fBB.size.width * imgW)
let faceH = Int(fBB.size.height * imgH)
var faceData: [String: Any] = [
"bbox": ["x": max(0, faceX), "y": max(0, faceY),