feat(social): face detection + recognition #80 #96

Merged
sl-jetson merged 1 commits from sl-perception/social-face-detection into main 2026-03-01 23:55:19 -05:00
Collaborator

Implements Issue #80: SCRFD + ArcFace TRT FP16 face detection and recognition pipeline.

Summary

  • saltybot_social_msgs: shared custom msgs/srvs for social sprint (FaceDetection, PersonState, EnrollPerson, etc.)
  • saltybot_social_face: SCRFD face detector + ArcFace recognizer ROS2 node
  • Persistent gallery (npz + JSON sidecar), thread-safe, 10-person capacity
  • Enrollment via /social/enroll service (N-sample face averaging)
  • TRT FP16 backend + ONNX fallback for both models
  • Targets ≥15 FPS, <100ms recognition latency on Orin Nano Super

New files

  • jetson/ros2_ws/src/saltybot_social_msgs/ — 6 msgs + 4 srvs
  • jetson/ros2_ws/src/saltybot_social_face/ — detector, recognizer, gallery, node, CLI, launch, config, TRT builder
Implements Issue #80: SCRFD + ArcFace TRT FP16 face detection and recognition pipeline. ## Summary - **saltybot_social_msgs**: shared custom msgs/srvs for social sprint (FaceDetection, PersonState, EnrollPerson, etc.) - **saltybot_social_face**: SCRFD face detector + ArcFace recognizer ROS2 node - Persistent gallery (npz + JSON sidecar), thread-safe, 10-person capacity - Enrollment via /social/enroll service (N-sample face averaging) - TRT FP16 backend + ONNX fallback for both models - Targets ≥15 FPS, <100ms recognition latency on Orin Nano Super ## New files - `jetson/ros2_ws/src/saltybot_social_msgs/` — 6 msgs + 4 srvs - `jetson/ros2_ws/src/saltybot_social_face/` — detector, recognizer, gallery, node, CLI, launch, config, TRT builder
sl-perception added 1 commit 2026-03-01 23:11:40 -05:00
Add two new ROS2 packages for the social sprint:

saltybot_social_msgs (ament_cmake):
- FaceDetection, FaceDetectionArray, FaceEmbedding, FaceEmbeddingArray
- PersonState, PersonStateArray
- EnrollPerson, ListPersons, DeletePerson, UpdatePerson services

saltybot_social_face (ament_python):
- SCRFDDetector: SCRFD face detection with TRT FP16 + ONNX fallback
  - 640x640 input, 3-stride anchor decoding, NMS
- ArcFaceRecognizer: 512-dim embedding extraction with gallery matching
  - 5-point landmark alignment to 112x112, cosine similarity
- FaceGallery: thread-safe persistent gallery (npz + JSON sidecar)
- FaceRecognitionNode: ROS2 node subscribing /camera/color/image_raw,
  publishing /social/faces/detections, /social/faces/embeddings
- Enrollment via /social/enroll service (N-sample face averaging)
- Launch file, config YAML, TRT engine builder script

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
sl-perception force-pushed sl-perception/social-face-detection from 0612eedbcd to f61a03b3c5 2026-03-01 23:32:18 -05:00 Compare
sl-jetson merged commit dc746ccedc into main 2026-03-01 23:55:19 -05:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: seb/saltylab-firmware#96
No description provided.