 xslandClaude Opus 4.8
|
023bb2e6fd
|
feat(worker): start.sh 改为后台服务开关(start/stop/restart/status)
- ./start.sh 现支持 start/stop/restart/status 子命令,无参默认 start
- 后台运行 + PID 文件(worker.pid) + 日志(worker.log),手动控制开关
- 前台热重载开发仍用 run_worker.sh
- gitignore 补 worker.pid / worker.log
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-14 17:47:49 +08:00 |
|
 xslandClaude Opus 4.8
|
0eaaf05ac3
|
fix(annotation): 标注图重排,8 个量全标注且不重叠
- 修复七眼三个横向量(单眼宽度/两眼间距/脸宽)叠在同一条眼睛线上的重叠问题,
改为上下错开三个高度,各自虚线带箭头 + 紧贴标签
- 新增「全脸总高」标注:右侧竖向标尺(虚线双箭头,头顶→下巴)+ 标签
- 四庭(顶/上/中/下庭)仍在左侧各段中点
- 标签用全名:单眼宽度/两眼间距/脸宽/全脸总高
- 新增 tests/test_annotation.py 防回归
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-14 17:33:58 +08:00 |
|
xsl
|
78226ae0b9
|
chore: SegFormer 模型不入库,改为手动下载
- .gitignore 排除 hairline/models/face-parsing/model.safetensors(~323MB)
- OFFLINE_ASSETS.md 更新:区分已入库文件和需手动下载文件,补充 SegFormer sha256
|
2026-06-14 17:19:24 +08:00 |
|
xsl
|
e827b23c1d
|
Merge branch 'main' of http://git.xiangsilian.com:3000/xsl/hair
|
2026-06-14 17:08:16 +08:00 |
|
xsl
|
db32fa12e5
|
feat(接口2): 移植head3d发际线管线 + 接口2实现方案文档
- 从head3d复制发际线检测管线到 hairline/ 包:MediaPipe Tasks + SegFormer分割
+ 17锚点射线检测 + 502点mesh(face_ext.obj)+UV
- 复制模型:face_landmarker.task(3.7MB)、SegFormer config/preprocessor
(model.safetensors 340MB 单独下载中)
- 新增 docs/接口2-C端生发-技术实现方案.md:第一步=发际线曲线叠加预览图,
新增gender必填参数,按性别贴图数量输出(female5/male4),hairline_type英文key,
服务端cv2逐三角形warp渲染器(head3d只有浏览器端Three.js渲染)
- 接口文档.md 接口2章节同步:gender参数、输出语义、错误码说明
- hairline_texture/ 9张发际线贴图入库
|
2026-06-14 16:59:39 +08:00 |
|
xsl
|
ad1b95df4e
|
Merge branch 'main' of http://git.xiangsilian.com:3000/xsl/hair
|
2026-06-14 16:49:39 +08:00 |
|
 xslandClaude Opus 4.8
|
8d3b145111
|
feat(worker): 接口1 四庭七眼测量真实实现(替换 Mock)
worker 侧从 Mock 替换为真实算法:
- face_analysis 包:detector(MediaPipe 478点) / pose(solvePnP 姿态) /
calibration(虹膜直径法) / hair_segmenter+bisenet_model(方案B 头发分割) /
measure(方案A兜底+B/A决策+七眼+换算) / annotation(numpy渐变线+中文标注)
- app.py:/api/v1/face/measure 接真实实现,返回 annotated_image_base64
(不落盘不拼URL,落盘由网关做);加 X-Internal-Token 鉴权、/health 就绪态、
可配置分辨率门槛、异常兜底
- 部署:start.sh/run_worker.sh/hair-worker.service 监听 8187;worker_config 示例
- 测试 tests/:Tier1合成真值<1e-6 + Tier2缩放不变 + Tier3叠加 + 错误码集成 +
数值回归,pytest 24 项全绿
- 文档补实测基线表 + RTX5090/torch 说明
注:worker 为 RTX 5090(sm_120),pinned torch 2.2.2(cu121) 只到 sm_90,
BiSeNet 已自动回退 CPU(方案B 正常);要用 GPU 需换 torch cu128(≥2.7)。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-14 16:07:28 +08:00 |
|
xsl
|
5e513c7006
|
添加发型图片
|
2026-06-14 15:31:29 +08:00 |
|
xsl
|
bf68a32d9f
|
docs: 拆分网关与worker文档,按机器分别开发
- 新增 网关-开发任务书.md: 独立自包含的网关侧任务书(骨架/健康检查派发/
鉴权转发/base64改URL/静态托管/部署/DoD),在外网机开发
- worker任务书 v1.5: 移除§16网关章节,顶部标注本机职责,DoD只留worker侧,
指向独立网关任务书
- 新增 docs/README.md: 文档索引,标清worker机/网关机/共享分别读哪些
|
2026-06-14 14:29:48 +08:00 |
|
xsl
|
2e789d4efa
|
docs: 架构拆分为外网网关+高性能worker(GPU)
- 新增 系统架构-网关与高性能后端.md: 网关薄代理(健康检查/空闲派发/鉴权/
base64落盘改URL/无后端→1007) + worker(GPU跑完整app)职责划分、配置文件、
鉴权(共享密码可轮换)、标注图base64流程、部署、安全注意
- 关键约束: 接口文档不变; 每worker并发=1, 总并发=健康worker数; 多worker可配置
- 技术方案: 加运行位置横幅; torch改GPU(CUDA); handler返回annotated_image_base64
- 任务书v1.4: 标注差异说明; 阶段八返base64+鉴权中间件; 阶段十worker(GPU)部署;
新增§16网关工作流; DoD拆分worker侧/网关侧
- OFFLINE_ASSETS: 区分worker(GPU torch)与网关(轻量)依赖
|
2026-06-14 13:55:45 +08:00 |
|
xsl
|
7493f48992
|
加入模型文件
|
2026-06-14 00:24:09 +08:00 |
|
xsl
|
66a2c84168
|
chore: 预下载离线模型权重+字体,补充内网部署清单
- 下载 BiSeNet(79999_iter.pth 53MB) + resnet18骨干(45MB) + Noto Sans CJK SC字体(16MB)
到 face_analysis/weights 与 fonts(大文件 .gitignore 不入库,靠文件拷贝带入内网)
- 新增 OFFLINE_ASSETS.md:文件清单+sha256校验+resnet18骨干离线放置说明+来源URL
- 字体由 SourceHanSansSC 改为 NotoSansCJKsc(同一套字体),同步更新两份文档引用
- 文档补充内网/离线注意事项(resnet18联网下载坑、权重已预置)
|
2026-06-14 00:23:10 +08:00 |
|
xsl
|
9d2ff0b4b2
|
docs: 接口1四庭七眼 技术方案v2.0 + 开发任务书 + 测试夹具
- 技术方案修订v2.0: 引入方案B(BiSeNet分割取真实发际线/头顶)解决方案A循环论证;
修复分辨率写反/PingFang字体/numpy2.x冲突/渐变线性能;solvePnP替换正面判定;
分辨率门槛放宽至短边600长边800且可配置
- 新增开发任务书(给AI agent执行): 10阶段串行步骤+交付物+验证方法+DoD;
§14测试素材清单 §15三层精度验证策略(合成真值/缩放不变性/可视化)
- tests/fixtures: frontal/hard_longhair/lowres/landscape/corrupt 5个夹具
(1006超大图改测试时动态生成不入库)
|
2026-06-13 23:56:34 +08:00 |
|
xsl
|
1233952571
|
save code
|
2026-06-04 22:05:26 +08:00 |
|