Commit Graph
71 Commits
Author SHA1 Message Date
xslandClaude Opus 4.8 10488171eb feat(annotation): 标注图改版——横线标名+四庭cm,竖线标七眼段宽(顶/底)
按需求重排标注图:
- 去掉右侧全脸总高标尺,去掉单眼宽度/两眼间距/脸宽 三条横向标注
- 横向 5 条线标注线名(头顶/发际线/眉心/鼻翼下缘/下巴尖) + 保留左侧四庭 cm
- 新增纵向 6 条渐变竖线(左脸颊/左右眼内外角/右脸颊),切脸宽为 5 段
- 每段宽度在顶部和底部各标一次(只标 X.XXcm),相邻段上下错行防重叠
- 新增 draw_gradient_vertical_line 竖向渐变线
- test_api 用模块级 ACCEPT_PASSWORDS 固定测试密码,不依赖 worker_config.json

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-14 18:37:09 +08:00
xsl 9391408088 Merge branch 'main' of http://git.xiangsilian.com:3000/xsl/hair 2026-06-14 18:23:25 +08:00
Ubuntu eaafbc97ea save code 2026-06-14 18:23:08 +08:00
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
Ubuntu 3b706ec0ef 网关开发完成 2026-06-14 15:04:34 +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
Ubuntu 2c669fa7e5 save code 2026-06-13 23:04:37 +08:00
Ubuntu d8a6e53979 save code 2026-06-13 12:11:31 +08:00
xsl 1233952571 save code 2026-06-04 22:05:26 +08:00
UbuntuandCursor 5313206976 初始化 FastAPI HTTPS Hello World 服务
包含 FastAPI 应用、Nginx 反向代理配置、systemd 服务及腾讯云 pip 源配置。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-04 21:59:53 +08:00