SFace embeddings on top of YuNet's landmarks. Nothing is stored until someone is enrolled with `python -m hermes_vision.people enroll NAME`; only 128-number embeddings are kept, never images, in a 0600 JSON file under a 0700 directory, written atomically. `list` and `forget` manage it. The detector node puts a recognised name in Detection2D.id (empty if unknown) and picks up database changes without a restart. Checked with a throwaway database on the burst frames: eight of nine unenrolled frames were recognised, down to side profiles (similarity 0.52-0.66), the miss being a head tipped back at 0.34 against the 0.363 threshold, and an unrelated photo scored 0.16 and stayed unknown. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AFN8nRRCiDiMN7ChBpHJhs
27 lines
790 B
Python
27 lines
790 B
Python
from setuptools import find_packages, setup
|
|
|
|
package_name = 'hermes_vision'
|
|
|
|
setup(
|
|
name=package_name,
|
|
version='0.1.0',
|
|
packages=find_packages(exclude=['test']),
|
|
data_files=[
|
|
('share/ament_index/resource_index/packages', ['resource/' + package_name]),
|
|
('share/' + package_name, ['package.xml']),
|
|
],
|
|
install_requires=['setuptools'],
|
|
zip_safe=True,
|
|
maintainer='K. Isom',
|
|
maintainer_email='noreply@example.com',
|
|
description='Face detection for the Hermes robot.',
|
|
license='UNLICENSED',
|
|
entry_points={
|
|
'console_scripts': [
|
|
'face_detector = hermes_vision.face_detector_node:main',
|
|
'detect_faces = hermes_vision.detect_cli:main',
|
|
'people = hermes_vision.people:main',
|
|
],
|
|
},
|
|
)
|