Skip to content

a1659734941/FaceRecoTrackService

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FaceRecoTrackService - 人脸识别与追踪服务

📋 产品介绍

FaceRecoTrackService 是一个基于 .NET 8.0 开发的高性能人脸识别与追踪服务系统。该系统集成了深度学习模型(YOLOv8 人脸检测 + ArcFace 特征提取)、向量数据库(Qdrant)和关系型数据库(PostgreSQL),实现了完整的人脸注册、识别和轨迹追踪功能。识别阶段默认采用本地余弦相似度比对(不依赖 Qdrant 相似度检索)。

核心特性

  • 高精度人脸检测:基于 YOLOv8s-face 模型,支持实时人脸检测
  • 特征向量提取:使用 ArcFace 模型提取 512 维特征向量
  • 相似度比对:本地余弦相似度比对(从 PostgreSQL 读取向量)
  • 实时监控识别:通过 FTP 文件夹监控,自动处理新的人脸快照
  • 轨迹追踪记录:记录人员在不同摄像头间的移动轨迹和时间信息
  • 清晰度筛选:自动过滤模糊人脸,确保识别质量
  • RESTful API:提供完整的 HTTP API 接口,支持人脸注册、查询、删除和轨迹查询

技术栈

  • 框架:.NET 8.0 (ASP.NET Core)
  • 数据库:PostgreSQL 10.0+
  • 向量数据库:Qdrant 1.16+
  • 深度学习:ONNX Runtime 1.23+
  • 图像处理:EmguCV 4.12+, SkiaSharp 3.119+
  • API 文档:Swagger/OpenAPI

🚀 快速开始

系统要求

  • Windows 10/11 或 Windows Server 2016+
  • .NET 8.0 Runtime(单文件发布版本无需安装)
  • PostgreSQL 10.0+ 数据库
  • Qdrant 向量数据库服务

环境准备

  1. 安装 PostgreSQL

  2. 安装 Qdrant

  3. 准备模型文件

    • 确保 res/model/ 目录包含以下模型文件:
      • yolov8s-face.onnx - 人脸检测模型
    • arcface.onnx - 人脸特征提取模型(112x112 输入,512 维输出)

配置说明

编辑 appsettings.json 文件,配置以下关键参数:

{
  "ConnectionStrings": {
    "Postgres": "Host=localhost;Port=5432;Username=postgres;Password=your_password;Database=postgres"
  },
  "Qdrant": {
    "Host": "localhost",
    "Port": 6334,
    "CollectionName": "face_collection",
    "UseHttps": false,
    "ApiKey": "",
    "RecreateOnVectorSizeMismatch": true
  },
  "FaceRecognition": {
    "YoloModelPath": "res/model/yolov8s-face.onnx",
    "FaceNetModelPath": "res/model/arcface.onnx",
    "DetectionConfidence": 0.45,
    "IouThreshold": 0.45,
    "FaceExpandRatio": 20,
    "BaseSharpnessThreshold": 15.0,
    "SizeThresholdCoefficient": 0.0002,
    "VectorSize": 512,
    "FeatureInputWidth": 112,
    "FeatureInputHeight": 112,
    "EnableHistogramEqualization": false,
    "OnnxIntraOpNumThreads": 0,
    "OnnxInterOpNumThreads": 0,
    "EnableDebugSaveFaces": false,
    "DebugSaveDir": "snapshots/registrations"
  },
  "Pipeline": {
    "PollIntervalMs": 2000,
    "SnapshotWorkerCount": 2,
    "SnapshotQueueSize": 200,
    "MinFaceCount": 1,
    "TopK": 5,
    "SimilarityThreshold": 0.87,
    "FallbackSimilarityThreshold": 0.78,
    "SnapshotSaveDir": "snapshots",
    "DeleteProcessedSnapshots": true
  },
  "FtpFolder": {
    "Path": "res/ftp",
    "IncludeSubdirectories": true,
    "FilePatterns": [ "*.jpg", "*.jpeg", "*.png" ],
    "DefaultCameraName": "unknown",
    "DefaultLocation": "unknown"
  }
}

字段说明(逐项)

  • ConnectionStrings

  • ConnectionStrings.Postgres:PostgreSQL 连接字符串(主机、端口、账号、密码、数据库名)。

  • Qdrant

  • Qdrant.Host:Qdrant 服务地址。

  • Qdrant.Port:Qdrant 服务端口(默认 6334)。

  • Qdrant.CollectionName:向量集合名称(人脸向量存储的集合)。

  • Qdrant.UseHttps:是否启用 HTTPS 连接。

  • Qdrant.ApiKey:Qdrant API Key(如未启用可留空)。

  • Qdrant.RecreateOnVectorSizeMismatch:向量维度不一致时是否重建集合。

  • FaceRecognition

  • FaceRecognition.YoloModelPath:YOLO 人脸检测模型文件路径。

  • FaceRecognition.FaceNetModelPath:特征提取模型文件路径(ArcFace)。

  • FaceRecognition.DetectionConfidence:人脸检测置信度阈值(越大越严格)。

  • FaceRecognition.IouThreshold:NMS 交并比阈值。

  • FaceRecognition.FaceExpandRatio:人脸裁剪时向外扩展像素数。

  • FaceRecognition.BaseSharpnessThreshold:基础清晰度阈值(拉普拉斯方差基准)。

  • FaceRecognition.SizeThresholdCoefficient:清晰度动态阈值系数(随人脸尺寸变化)。

  • FaceRecognition.VectorSize:特征向量维度(需与模型输出一致)。

  • FaceRecognition.FeatureInputWidth:特征模型输入宽度(ArcFace 默认 112)。

  • FaceRecognition.FeatureInputHeight:特征模型输入高度(ArcFace 默认 112)。

  • FaceRecognition.EnableHistogramEqualization:是否启用直方图均衡化(ArcFace 通常关闭)。

  • FaceRecognition.OnnxIntraOpNumThreads:ONNX IntraOp 线程数(0 为默认)。

  • FaceRecognition.OnnxInterOpNumThreads:ONNX InterOp 线程数(0 为默认)。

  • FaceRecognition.EnableDebugSaveFaces:是否保存调试用的人脸裁剪图片。

  • FaceRecognition.DebugSaveDir:调试人脸图片保存目录。

  • Pipeline

  • Pipeline.PollIntervalMs:FTP 目录轮询间隔(毫秒)。

  • Pipeline.MinFaceCount:图片中最少人脸数量要求。

  • Pipeline.SnapshotWorkerCount:并行处理快照的工作线程数。

  • Pipeline.SnapshotQueueSize:快照处理队列容量。

  • Pipeline.TopK:相似度检索返回的 TopK 数量(若启用向量库检索)。

  • Pipeline.SimilarityThreshold:主相似度阈值(用于判定同一人)。

  • Pipeline.FallbackSimilarityThreshold:备用相似度阈值(主阈值无结果时使用)。

  • Pipeline.SnapshotSaveDir:快照保存目录。

  • Pipeline.DeleteProcessedSnapshots:是否删除已处理的快照文件。

  • FtpFolder

  • FtpFolder.Path:监控的 FTP 本地目录路径。

  • FtpFolder.IncludeSubdirectories:是否递归子目录。

  • FtpFolder.FilePatterns:监控的文件后缀模式(支持通配符)。

  • FtpFolder.DefaultCameraName:未解析到摄像头信息时的默认名称。

  • FtpFolder.DefaultLocation:未解析到地点信息时的默认位置。

打包部署

方式一:使用打包脚本(推荐)

  1. 运行打包脚本:

    build.bat
  2. 打包完成后,在 dist/FaceTrackService/ 目录下找到:

    • FaceTrackService.exe - 单文件可执行程序
    • res/ - 模型文件目录
    • appsettings.json - 配置文件
  3. 将整个 publish 目录复制到目标服务器

方式二:手动打包

dotnet publish FaceRecoTrackService/FaceRecoTrackService.csproj ^
    --configuration Release ^
    --runtime win-x64 ^
    --self-contained true ^
    --output dist/FaceTrackService ^
    /p:PublishSingleFile=true ^
    /p:IncludeNativeLibrariesForSelfExtract=true ^
    /p:EnableCompressionInSingleFile=true

运行服务

  1. 直接运行

    cd dist/FaceTrackService
    FaceTrackService.exe
  2. 作为 Windows 服务运行(需要额外配置)

    • 使用脚本(在发布目录 scripts/ 下):
      • register-service.bat - 注册服务
      • service-status.bat - 查看服务状态
      • stop-service.bat - 关闭服务
      • restart-service.bat - 重启服务
    • 或使用 NSSM / Windows Service Wrapper
  3. 访问 API 文档


📚 功能说明

1. 人脸注册

通过 API 接口注册新的人脸信息,系统会:

  • 检测图片中的人脸
  • 筛选清晰的人脸(基于拉普拉斯方差)
  • 提取人脸特征向量(512 维)
  • 将信息存储到 PostgreSQL(含向量)和 Qdrant

API 端点POST /api/face/register

请求示例

{
  "base64Image": "data:image/jpeg;base64,/9j/4AAQSkZJRg...",
  "userName": "张三",
  "ip": "192.168.1.100",
  "description": "测试用户",
  "isTest": false
}

响应示例

{
  "success": true,
  "message": "注册成功",
  "data": {
    "id": "550e8400-e29b-41d4-a716-446655440000"
  }
}

2. 实时识别监控

系统通过后台服务 FtpRecognitionWorker 持续监控指定文件夹:

  • 轮询间隔:默认 2000ms(可配置)
  • 自动检测新的人脸快照文件
  • 提取人脸特征并与已注册人脸进行本地相似度匹配(余弦相似度)
  • 记录识别结果到轨迹表

工作流程

  1. 监控 FtpFolder.Path 目录下的图片文件
  2. 检测图片中的人脸
  3. 从 PostgreSQL 读取已注册向量并计算相似度
  4. 如果相似度超过阈值,记录轨迹信息
  5. 处理完成后可选择删除已处理的快照文件

3. 轨迹查询

根据人员 ID 查询其在不同摄像头间的移动轨迹。

API 端点GET /api/track/{id}?pageNum=1&pageSize=20

响应示例

{
  "success": true,
  "message": "查询guid轨迹成功",
  "data": {
    "list": [
      {
        "id": "550e8400-e29b-41d4-a716-446655440000",
        "抓拍时间": "2026-01-24 10:30:15",
        "抓拍地点": "大厅",
        "抓拍摄像头": "192.168.1.101",
        "录像摄像头": "192.168.1.101",
        "录像开始时间": "2026-01-24 10:30:15",
        "录像结束时间": "2026-01-24 10:35:20"
      }
    ],
    "pagesize": 20,
    "pagenum": 1,
    "total": 1
  }
}

4. 人脸查询与管理

  • 查询人脸数量GET /api/face/count - 获取 PostgreSQL 中注册的人脸数量
  • 查询 Qdrant 数量GET /api/face/qdrant/count - 获取 Qdrant 向量库中的向量数量
  • 获取人脸信息GET /api/face/getfaceinfo/{id} - 根据 ID 获取人脸详细信息
  • 删除人脸DELETE /api/face/deletefaceinfo/{id} - 删除指定的人脸信息(同时删除 PostgreSQL 和 Qdrant 中的数据)

🔧 API 接口文档

人脸管理接口

注册人脸

  • URLPOST /api/face/register
  • 请求体
    {
      "base64Image": "string (Base64编码的图片)",
      "userName": "string (用户名)",
      "ip": "string (可选,IP地址)",
      "description": "string (可选,描述信息)",
      "isTest": "boolean (可选,是否测试数据)"
    }
  • 响应:返回注册成功的人脸 ID(GUID)

查询人脸数量

  • URLGET /api/face/count
  • 响应:返回 PostgreSQL 中的人脸记录数量

查询 Qdrant 向量数量

  • URLGET /api/face/qdrant/count
  • 响应:返回 Qdrant 集合中的向量数量

获取人脸信息

  • URLGET /api/face/getfaceinfo/{id}
  • 参数id - 人脸唯一标识(GUID)
  • 响应:返回人脸详细信息(不包含 Base64 图片)

删除人脸

  • URLDELETE /api/face/deletefaceinfo/{id}
  • 参数id - 人脸唯一标识(GUID)
  • 响应:返回删除结果

轨迹查询接口

查询人员轨迹

  • URLGET /api/track/{id}?pageNum=1&pageSize=20
  • 参数
    • id - 人员唯一标识(GUID)
    • pageNum - 页码(默认:1)
    • pageSize - 每页数量(默认:20)
  • 响应:返回分页的轨迹记录列表

🏗️ 架构设计

项目结构

FaceRecoTrackService/
├── API/
│   └── Controllers/          # API 控制器
│       ├── FaceController.cs  # 人脸管理接口
│       └── TrackController.cs # 轨迹查询接口
├── Core/
│   ├── Algorithms/           # 核心算法
│   │   ├── FaceDetector.cs   # 人脸检测器
│   │   ├── FaceFeatureService.cs # 特征提取服务
│   │   ├── ImageUtils.cs     # 图像工具类
│   │   └── SharpnessEvaluator.cs # 清晰度评估器
│   ├── Dtos/                 # 数据传输对象
│   ├── Models/               # 数据模型
│   └── Options/              # 配置选项类
├── Infrastructure/
│   ├── Database/             # 数据库上下文
│   ├── External/             # 外部服务客户端
│   └── Repositories/         # 数据仓储
├── Services/                 # 业务服务
│   ├── FaceRegistrationService.cs # 人脸注册服务
│   ├── FaceDeletionService.cs # 人脸删除服务
│   ├── FaceQueryService.cs   # 人脸查询服务
│   ├── FtpRecognitionWorker.cs # FTP 监控后台服务
│   ├── TrackQueryService.cs  # 轨迹查询服务
│   └── TrackRecordService.cs # 轨迹记录服务
├── Utils/                    # 工具类
│   └── QdrantUtil/           # Qdrant 工具
├── res/                      # 资源文件
│   └── model/                # AI 模型文件
│       ├── yolov8s-face.onnx
│       └── arcface.onnx
├── Program.cs                # 程序入口
└── appsettings.json          # 配置文件

核心组件说明

1. FaceDetector(人脸检测器)

  • 功能:使用 YOLOv8s-face ONNX 模型检测图片中的人脸
  • 主要方法
    • DetectFaces(SKImage image) - 检测人脸并返回检测结果列表
    • CropAndFilterSharpFaces() - 裁剪人脸并筛选清晰的人脸

2. FaceFeatureService(特征提取服务)

  • 功能:使用 ArcFace 模型提取人脸特征向量(默认 112x112 输入、512 维输出)
  • 主要方法
    • ExtractFeaturesFromStream(Stream imageStream) - 从流中提取特征向量
    • ExtractFeatures(string imagePath) - 从文件路径提取特征向量
    • CalculateSimilarity(float[] feat1, float[] feat2) - 计算两个向量的余弦相似度

3. SharpnessEvaluator(清晰度评估器)

  • 功能:基于拉普拉斯方差评估人脸清晰度
  • 主要方法
    • IsSharp() - 判断人脸是否清晰
    • GetDynamicThreshold() - 根据人脸尺寸计算动态阈值

4. FtpRecognitionWorker(后台监控服务)

  • 功能:持续监控 FTP 文件夹,自动处理新的人脸快照
  • 工作流程
    1. 定期扫描配置的文件夹
    2. 检测新文件并读取图片
    3. 使用 FaceDetector 检测人脸
    4. 提取特征并在 PostgreSQL 中进行本地相似度匹配
    5. 记录轨迹信息到数据库

5. QdrantVectorManager(向量数据库管理器)

  • 功能:管理 Qdrant 向量数据库的连接和操作
  • 主要操作
    • 创建/确保集合存在
    • 插入/更新向量点
    • 删除/计数(相似度搜索可选)

🔄 移植说明

从其他环境移植

1. 数据库迁移

PostgreSQL 表结构: 系统会在启动时自动创建所需的表结构。主要表包括:

  • face_persons - 人脸信息表
  • track_records - 轨迹记录表
  • camera_mappings - 摄像头映射表

迁移步骤

  1. 备份原数据库数据
  2. 在新环境中创建 PostgreSQL 数据库
  3. 启动服务,系统会自动创建表结构
  4. 如需迁移数据,使用 PostgreSQL 的 pg_dumppg_restore 工具

2. Qdrant 迁移

迁移步骤

  1. 导出原 Qdrant 集合数据:
    curl -X POST "http://old-qdrant:6333/collections/{collection_name}/points/scroll" \
      -H "Content-Type: application/json" \
      -d '{"limit": 10000}'
  2. 在新环境中创建同名集合
  3. 导入数据到新 Qdrant 实例

3. 模型文件迁移

确保以下模型文件存在于 res/model/ 目录:

  • yolov8s-face.onnx - 人脸检测模型(约 20-30MB)
  • arcface.onnx - 特征提取模型(约 90-100MB)

4. 配置文件调整

根据新环境修改 appsettings.json

  • 数据库连接字符串
  • Qdrant 服务器地址和端口
  • FTP 监控路径
  • 其他业务配置参数

5. 依赖环境检查

必需组件

  • .NET 8.0 Runtime(单文件发布无需)
  • PostgreSQL 客户端库(已包含在发布包中)
  • ONNX Runtime(已包含在发布包中)
  • EmguCV 运行时(已包含在发布包中)

网络要求

  • 确保服务可以访问 PostgreSQL 数据库(默认端口 5432)
  • 确保服务可以访问 Qdrant 服务(默认端口 6333/6334)
  • 如果使用 HTTPS,确保证书配置正确

跨平台移植

当前版本针对 Windows x64 平台编译。如需移植到 Linux:

  1. 修改项目文件

    <RuntimeIdentifier>linux-x64</RuntimeIdentifier>
  2. 修改打包脚本

    • 将运行时标识符改为 linux-x64
    • 注意文件路径分隔符(Linux 使用 /
  3. 依赖库调整

    • EmguCV 需要使用 Linux 版本
    • 确保所有原生库都有 Linux 版本

🗄️ PostgreSQL 数据库设计

本服务启动时会自动创建数据库表结构(见 PgSchemaInitializer),核心表如下:

1) face_persons(人脸主表)

用于存储注册的人脸信息与基础描述。

字段 类型 约束 说明
id uuid PK 人脸唯一 ID
user_name text NOT NULL 用户名
ip text NOT NULL IP 地址
description text NULL 描述信息
is_test boolean NOT NULL 是否测试数据
image_base64 text NULL 原始人脸 Base64
face_vector real[] NULL 人脸特征向量
created_at timestamptz NOT NULL 创建时间

2) camera_mapping(摄像头映射)

用于将抓拍摄像头映射到录像摄像头和房间。

字段 类型 约束 说明
snap_camera_ip text PK 抓拍摄像头 IP
record_camera_ip text NOT NULL 录像摄像头 IP
room_name text NULL 房间名称

3) track_records(轨迹记录)

用于记录人脸抓拍与轨迹信息。

字段 类型 约束 说明
id bigserial PK 轨迹记录主键
person_id uuid NOT NULL 关联 face_persons.id
snap_time timestamptz NOT NULL 抓拍时间(由文件名解析)
snap_location text NULL 抓拍地点
snap_camera_ip text NOT NULL 抓拍摄像头 IP
record_camera_ip text NULL 录像摄像头 IP
record_start_time timestamptz NOT NULL 录像开始时间
record_end_time timestamptz NULL 录像结束时间
created_at timestamptz NOT NULL 记录创建时间

索引

索引 字段 说明
idx_track_person_time (person_id, snap_time DESC) 按人员+时间倒序查询轨迹

关系说明

  • face_persons 1:N track_records
  • camera_mapping 为抓拍 IP 的辅助映射,未设置时使用默认配置或文件名解析结果

⚙️ 配置参数详解

FaceRecognition 配置

参数 类型 默认值 说明
YoloModelPath string "res/model/yolov8s-face.onnx" YOLO 人脸检测模型路径
FaceNetModelPath string "res/model/arcface.onnx" ArcFace 特征提取模型路径
DetectionConfidence float 0.45 人脸检测置信度阈值
IouThreshold float 0.45 NMS 交并比阈值
FaceExpandRatio int 20 人脸裁剪扩展像素数
BaseSharpnessThreshold double 15.0 基础清晰度阈值
SizeThresholdCoefficient double 0.0002 尺寸阈值系数
VectorSize int 512 特征向量维度
FeatureInputWidth int 112 特征模型输入宽度
FeatureInputHeight int 112 特征模型输入高度
EnableHistogramEqualization bool false 是否启用直方图均衡化
OnnxIntraOpNumThreads int 0 ONNX IntraOp 线程数
OnnxInterOpNumThreads int 0 ONNX InterOp 线程数
EnableDebugSaveFaces bool false 是否保存调试人脸图片
DebugSaveDir string "snapshots/registrations" 调试图片保存目录

Pipeline 配置

参数 类型 默认值 说明
PollIntervalMs int 2000 FTP 文件夹轮询间隔(毫秒)
SnapshotWorkerCount int 2 识别工作线程数
SnapshotQueueSize int 200 快照处理队列容量
MinFaceCount int 1 最少人脸数量要求
TopK int 5 相似度搜索返回的 Top K 结果(启用向量库检索时)
SimilarityThreshold float 0.87 主要相似度阈值
FallbackSimilarityThreshold float 0.78 备用相似度阈值
SnapshotSaveDir string "snapshots" 快照保存目录
DeleteProcessedSnapshots bool true 是否删除已处理的快照文件

FtpFolder 配置

参数 类型 默认值 说明
Path string "res/ftp" 监控的文件夹路径
IncludeSubdirectories bool true 是否包含子目录
FilePatterns string[] [".jpg", ".jpeg", "*.png"] 文件匹配模式
DefaultCameraName string "unknown" 默认摄像头名称
DefaultLocation string "unknown" 默认位置名称

🐛 故障排查

常见问题

1. 模型文件加载失败

症状:启动时提示模型文件不存在或加载失败

解决方案

  • 检查 res/model/ 目录是否存在
  • 确认模型文件路径配置正确
  • 检查文件权限

2. 数据库连接失败

症状:无法连接到 PostgreSQL 数据库

解决方案

  • 检查连接字符串配置
  • 确认 PostgreSQL 服务正在运行
  • 检查网络连接和防火墙设置
  • 验证用户名和密码

3. Qdrant 连接失败

症状:无法连接到 Qdrant 服务

解决方案

  • 检查 Qdrant 服务是否运行
  • 验证主机和端口配置
  • 检查 API Key(如果启用)

4. 人脸检测失败

症状:注册或识别时无法检测到人脸

解决方案

  • 检查图片质量(清晰度、光照)
  • 调整 DetectionConfidence 参数
  • 确认模型文件完整且未损坏

5. 相似度匹配不准确

症状:识别结果不准确或误识别

解决方案

  • 调整 SimilarityThresholdFallbackSimilarityThreshold
  • 检查特征向量维度是否匹配
  • 确保注册时使用清晰的人脸图片

日志查看

服务运行时会输出日志到控制台。建议在生产环境中配置日志文件输出:

appsettings.json 中配置:

{
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft.AspNetCore": "Warning"
    },
    "File": {
      "Path": "logs/app.log",
      "Append": true
    }
  }
}

📝 开发指南

添加新功能

  1. 添加新的 API 接口

    • API/Controllers/ 中创建新的控制器
    • Services/ 中实现业务逻辑
    • Program.cs 中注册服务
  2. 扩展数据模型

    • Core/Models/ 中定义新模型
    • Infrastructure/Repositories/ 中实现数据访问
    • 更新数据库初始化脚本
  3. 集成新的 AI 模型

    • 将模型文件放入 res/model/ 目录
    • 创建对应的服务类加载和使用模型
    • 在配置文件中添加模型路径配置

性能优化建议

  1. 模型加载优化

    • 使用单例模式管理模型实例
    • 避免重复加载模型
  2. 数据库优化

    • 为常用查询字段添加索引
    • 使用连接池管理数据库连接
  3. 相似度匹配优化

    • 合理设置 SimilarityThresholdFallbackSimilarityThreshold
    • 识别量大时可缓存已注册向量,减少频繁读库

📄 许可证

本项目为内部项目,版权归公司所有。


👥 联系方式

如有问题或建议,请联系开发团队。


🔄 更新日志

v1.0.0 (2026-01-24)

  • 初始版本发布
  • 实现人脸注册、识别和轨迹追踪功能
  • 支持单文件打包部署
  • 集成 Swagger API 文档

最后更新:2026-01-24

About

FaceRecoTrackService 是一个基于 .NET 8.0 开发的高性能人脸识别与追踪服务系统。该系统集成了深度学习模型(YOLOv8 人脸检测 + ArcFace 特征提取)、向量数据库(Qdrant)和关系型数据库(PostgreSQL),实现了完整的人脸注册、识别和轨迹追踪功能。识别阶段默认采用本地余弦相似度比对(不依赖 Qdrant 相似度检索)。

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors