团队博客 服务外包杯A31赛题开发文档
软件需求规格说明书 (SRS)
一、引言
1.1 编写目的
本说明书旨在明确“基于生成式AI增强的跨时间域生物特征识别系统”的功能与非功能需求,为后续的设计、开发与测试提供基准。
1.2 项目背景
传统生物特征识别模型在面对跨越多年的面部图像时,受非线性形变影响,精度断崖式下跌。本项目引入AIGC进行老化增强,解决跨龄核验痛点。
二、总体描述
2.1 目标用户
公安司法人员(跨龄寻亲、长效证件核验)、动物保护科研机构人员。
2.2 运行环境
服务器端需配备NVIDIA GPU(推荐CUDA 11.8+),操作系统支持Linux/Windows。客户端支持主流Web浏览器。
2.3 设计限制
为了保证老化特征生成的逼真度,系统需内嵌调用SDXL服务,因此对显存有较高要求(推荐>=8GB)。
三、系统功能需求
3.1 智能数据分拣模块
支持深度嵌套目录的解析,通过自研路径溯源算法精准提取ID,避免上传路径异常导致的数据污染。
3.2 AIGC老化增强模块
识别年轻态/基础态照片,调用SDXL引擎并结合Prompt生成对应的高保真衰老图像。
3.3 双轨制模型训练模块
支持人类(多任务学习)与动物(老化增强流水线)数据集的自动判别与增量微调训练。
3.4 跨时间域核验与展示模块
提供A/B照片1:1比对及1:N检索功能,输出固定阈值Accuracy、Rank-1等指标及判定结果。
四、非功能需求
4.1 性能需求
1:1验证特征提取与比对需在500ms内完成(不含生成耗时)。
4.2 稳定性需求
系统需具备完善的异常捕获机制,处理非图片文件上传时不得崩溃。
软件概要设计说明书 (PDD)
一、总体架构设计
系统采用前后端分离与模块解耦的微服务化设计理念,自上而下分为四层:
- 表现层 (Web UI):基于Vue.js开发,提供可视化看板、数据上传分拣交互及核验结果大屏。
- 调度层 (Java/SpringBoot):作为安全网关,负责鉴权、文件流接收处理及跨语言任务下发。
- 引擎层 (Python/Flask + PyTorch):挂载SDXL图像生成网络与ResNet核心特征提取网络,执行密集型张量计算。
- 数据层 (MySQL):负责任务队列状态、性能指标(Acc, Rank-1等)的持久化及特征矩阵的本地化落盘。
二、接口设计概览
2.1 内部API接口
调度层与引擎层之间通过RESTful API(如 /api/task/start)进行异步通信,传递taskId及超参数。
2.2 外部模型接口
通过HTTP本地/内网调用SDXL API(默认端口7860),实现img2img的高精度老化合成。
三、运行控制与时序
训练任务下发 -> 物理路径倒推清洗 -> 判断是否触发SDXL老化生成 -> 构建DataLoader -> 模型前向传播与Loss计算(ArcFace) -> 模型评估(输出三大指标) -> 持久化权重并更新任务状态至数据库。
软件详细设计说明书 (DDD)
一、核心算法模块设计 (CrossTimeBiometricModel)
本模块采用多任务学习(Multi-Task Learning)架构,包含三大子模块:
1.1 特征提取主干 (Backbone)
采用ResNet-50,去除原始全连接层,输出512维的深层语义特征。训练初期采取冻结微调策略(Learning Rate=1e-5)以保护预训练权重。
1.2 度量学习分类头 (Identity Head)
实现自定义的ArcFace层。引入加性角度间隔 (Margin m=0.45) 与特征缩放 (Scale s=32.0)。该层强制将同一ID的年轻态与老年态特征向超球面同一中心压缩,抵御形变。
1.3 年龄估算回归头 (Age Regression Head)
由多层感知机(MLP)构成,采用MSE损失进行生理年龄预测,使主干网络隐式学习时间流逝规律。
二、数据处理与增强详细设计
2.1 NestedImageFolder 数据加载类
重写 Dataset,使其支持深度嵌套并具备根据文件名(如 AgeDB中的_xx_特征)动态解析年龄的能力。
2.2 视觉干扰防范设计
在训练时引入 RandomResizedCrop(0.8-1.0) 与 ColorJitter;但在推理核验阶段,严格执行等比 Resize 加 CenterCrop,坚决杜绝因人脸被拉伸形变导致的识别率下降。
三、评估算法实现细节
3.1 指标去水设计
在 evaluate_biometric_metrics 中,直接映射余弦相似度。设定硬性阈值(0.5)切分正负样本以计算 Accuracy,拒绝测试集上的阈值搜索,确保模型泛化真实性。
数据库设计说明书 (DBD)
一、数据库环境与规范
采用 MySQL 8.0 作为核心关系型数据库。字符集统一使用 utf8mb4 以兼容多语种及特殊符号,存储引擎采用 InnoDB 支持事务与高并发访问。
二、逻辑结构设计 (E-R 分析)
系统核心实体包括:
- 用户 (User):系统的操作者,拥有权限标识。
- 任务 (Task):核心实体,记录一次训练或核验的完整生命周期,包含超参数、执行状态及跑分结果。
三、核心表结构定义 (t_task)
表名: t_task (大模型计算任务流水表)
| 字段名 | 类型 | 约束 | 说明 |
|---|---|---|---|
| id | VARCHAR(64) | 主键 | 唯一任务标识 |
| task_type | VARCHAR(32) | 任务类型 (training/generalization/human_verify等) | |
| status | VARCHAR(16) | 状态 (PENDING, RUNNING, COMPLETED, FAILED) | |
| result_metrics | JSON | 存储 Accuracy, Rank-1, TAR等指标的JSON快照 | |
| start_time | DATETIME | 任务启动时间 | |
| end_time | DATETIME | 任务结束时间 |
项目开发计划 (PDP)
一、团队组织架构与分工
- AI 算法组:负责SDXL Prompt工程测试、ArcFace核心模型开发与参数调优。
- 全栈工程组:负责Vue前端数据可视化看板开发、Flask与Java微服务网关的搭建及数据库联调。
- 测试与产品组:负责边缘用例(如嵌套目录)设计、标准数据集跑分及项目文档撰写。
二、开发阶段划分
第一阶段(需求与技术验证)
确认硬件环境,跑通SDXL API调用链路,清洗基础人脸与动物数据集。
第二阶段(核心算法攻坚)
实现CrossTimeBiometricModel双头架构,跑通ArcFace训练流程,解决初期“灾难性遗忘”问题。
第三阶段(平台化与工程化)
完成前后端接口联调,实现物理分拣模块及任务状态流转机制。
第四阶段(优化与封装)
引入等比Crop防形变策略,多数据集交叉验证跑分,编写全套申报文档。
测试计划 (TP)
一、测试目的与范围
目的:验证跨时间域生物识别系统的功能完备性、高并发下的鲁棒性以及在极其大跨度时间图像下的识别准确率。
范围:涵盖前端交互测试、文件系统容灾测试、大模型调度性能测试及算法核心指标测试。
二、测试策略与环境
- 测试环境:NVIDIA RTX 50系显卡环境,Linux 操作系统。
- 测试策略:白盒测试结合黑盒测试。针对模型训练,采用按个体隔离(Subject-Exclusive)的严谨验证协议。
三、算法基准测试指标 (核心标准)
在CACD、AgeDB、FG-NET等标准验证集上,系统必须达到以下验收标准:
- 严格使用固定验证阈值(0.5)下,Accuracy 不低于基准要求。
- 在海量库检索的 Rank-1 首选命中率具备显著优势。
- 在 TAR@FAR=0.1(严格防伪标准)下表现出优异的跨龄通过率。
项目团队绩效评估报告
项目名称: 基于生成式AI增强的跨时间域生物特征识别系统
一、绩效评分明细表
| 评估维度 (权重) | 具体考核项目 | 成员A:核心开发 (赵朝印) | 成员B:辅助 (邓楷) |
|---|---|---|---|
| 1. 核心算法与AI开发 (权重:35%) |
1. SDXL 老化增强流水线开发 2. ArcFace 损失函数与防形变架构落地 3. 多任务学习模型(身份核验+年龄估算) |
33 / 35 (主导项目核心技术壁垒) |
2 / 35 (未参与核心算法逻辑) |
| 2. 后端引擎与架构搭建 (权重:25%) |
1. 智能物理分拣与脏数据清洗算法 2. Flask 异步任务调度网关搭建 3. MySQL 数据库设计与持久化 |
24 / 25 (完成全部架构体系搭建) |
1 / 25 (未参与架构搭建) |
| 3. 前端界面与系统集成 (权重:15%) |
1. 跨龄核验交互界面开发 2. 前后端 API 接口对接与联调 3. 系统容错处理与边界极端测试 |
14 / 15 (完成系统全链路闭环) |
2 / 15 (参与少量功能盲测) |
| 4. 项目文档与技术规格 (权重:15%) |
1. SRS/PDD/DDD等六大核心文档撰写 2. 源代码使用说明书与架构图 3. 答辩 PPT 与 NABCD 方案梳理 |
10 / 15 (提供底层技术细节支持) |
12 / 15 (承担主要的文档编写与排版) |
| 5. 项目管理与综合协作 (权重:10%) |
1. 项目整体进度把控与里程碑设定 2. 痛点分析与技术路线前瞻性决策 3. 团队内部沟通与配合度 |
9 / 10 (担任决策者把控进度) |
7 / 10 (配合项目整体推进) |
| 最终总分 (100%) | 项目综合落地达成情况 | 90 分 (绝对核心贡献) |
24 分 (基础辅助贡献) |
二、综合评价说明
-
成员A (核心开发——赵朝印):
在本项目中承担了绝大部分硬核技术工作。从核心的大模型融合(SDXL + ArcFace)、双轨制并行训练架构的开发,到后端智能物理分拣算法的实现,均由其独立主导完成。其产出的代码构成了项目的核心技术壁垒,保障了项目最终的三维性能指标(Accuracy / Rank-1 / TAR),是项目得以成功落地并具备强悍参赛竞争力的核心驱动力。 -
成员B (辅助文档——邓楷):
在本项目中主要承担了基础性的辅助工作,重点在于协助完成了项目前期及后期的部分文档整理与编写排版。在核心代码开发、系统架构设计及技术难点攻坚方面未有实质性参与。其在文档维度的配合为项目交付材料的完善提供了一定支持,符合其辅助角色的基本定位。

浙公网安备 33010602011771号