人脸皮肤分析加强版(skin-pro)
何时使用
- 用户上传正脸照,要求皮肤检测、肤质、肌肤分数、毛孔、痘痘、色斑、皱纹、黑眼圈、眼袋、出油、敏感 → 调用
/face/skin-pro - 用户明确要「察颜」同一套计分 →
analyseStrategy=2;否则用默认策略1 - 图中有多张人脸时,接口自动选置信度最高的一张
伸舌、体质、五脏、食谱不走本技能,改用 tcm-face-tongue。
接口元数据
- 网关:https://gateway.ragehealth.cn/openapi-prod
- 请求方式:
POST+multipart/form-data - 路径:
/face/skin-pro - 认证头:
AccessKey、Signature(每次调用前重新生成) - 图片:jpg / png;像素至少 640×640;文件不超过 5 MB
- 必填:
imageUrl、imageFile、imageBase64三选一。同时传入时服务端优先级为imageFile>imageBase64>imageUrl
字段全集见 references/response_schema.md。
可选参数
| 参数 | 说明 |
|---|---|
analyseStrategy |
1:skin-pro 默认计分(默认);2:察颜小程序相同计分。策略 2 额外返回 look_radars、total_score |
faceIdDetect + userGroup |
是否开启人脸 ID。为 true 时 userGroup 必填,返回该用户组下唯一 face_id。不同 userGroup 相互隔离 |
displayRes |
展示尺寸,只能 0 或 1,默认 0。其他值返回「尺寸参数不正确」 |
alphaChannel |
通道参数,只能 0 或 1,默认 0。其他值返回「通道参数不正确」 |
调用方式
# URL 或本地文件二选一
python scripts/call_skin_pro.py \
--image-url https://example.com/face.jpg \
[--analyse-strategy 1] [--face-id-detect --user-group demo] \
[--output skin.json] [--full-stdout]
# 本地文件
python scripts/call_skin_pro.py \
--image-file C:/path/to/face.jpg \
--output skin.json
# 察颜计分
python scripts/call_skin_pro.py \
--image-url https://example.com/face.jpg \
--analyse-strategy 2 \
--output skin.json
凭证由脚本自动从环境变量 SKIN_PRO_AK / SKIN_PRO_SK 读取,不要作为参数传入。首次使用前需前往 https://ragehealth.cn/client 注册申请 AK/SK,写入 scripts/.env(可与 tcm-face-tongue 共用同一对凭证,变量名不同)。脚本内部会生成 Signature 并以 multipart/form-data 提交。
执行步骤
- 校验输入:正脸、jpg/png、≥640×640、≤5 MB。侧脸、遮挡、过暗、过糊先提示重拍,不要先解读分数。
- 选定策略:用户没提察颜则不传
analyseStrategy(服务端默认1)。只有用户明确要察颜计分时才传2。 - 调脚本:拿到 JSON;
success=false时按message/ 错误码提示,不要编造分数。 - 先看图片质量
image_quality:face_ratio过小(参考阈值 0.5)、blur接近 0、brightness.grade为pianliang/pianan、姿态角过大 → 先说明照片限制,再给结论blur越接近1越清晰;brightness.grade:zhengchang/pianliang/pianan
- 解读关键指标(都在
data下):- 总分:
skin_score(0~100,越高越好)。策略1为各项均分,不计入sensitivity、oily_intensity、crows_feet。策略2同时有total_score(与skin_score相同,100 减雷达扣分,最低 60)和look_radars[] - 基础:
skin_age、skin_type.skin_type、skin_tone.value、face_shape、display_img - 严重程度:
analyse_result[],每项type/score/label/levels。毛孔另有headScore、leftScore、rightScore、chinScore、noseScore及对应*Label;皱纹、眼袋、黑眼圈等对称项有leftScore/rightScore - 计数与分类:
acne.acne_cls、acne_mark、brown_spot.brown_spot_cls、blackhead_count、wrinkle_count、pores_forehead/pores_leftcheek/pores_rightcheek/pores_jaw/pores_nose - 大字段(默认从 stdout 剥离,仅
--output文件保留):display_landmarks、raw_landmarks,以及acne/acne_mark/brown_spot/mole/wrinkle_details里的polygon、pos_indexes
- 总分:
- 生成报告(建议骨架):
- 肌肤总分 + 肌龄 + 肤质 + 肤色
- 需要关注的问题:
analyse_result里label不是「良好」的项,按score从低到高 - 左右差异:黑眼圈、眼袋、法令纹、眼周细纹、面颊毛孔,只提明显更差的一侧
- 数量:痘痘按分类计数,黑头用
blackhead程度 +blackhead_count,皱纹用wrinkle_count - 策略 2:用
look_radars说明扣分来自哪几项(type/label/deduction) - 护理建议只依据返回的
label与分区,不推断病名
字段枚举字典
| 字段 | 取值 | 含义 |
|---|---|---|
analyse_result[].label |
良好 / 轻度 / 中度 / 重度 |
该项严重程度。分数越高越健康,区间见该项 levels |
skin_type.skin_type |
0 / 1 / 2 / 3 |
油性 / 干性 / 中性 / 混合。details 是各分类置信度 |
skin_tone.value |
0~5 |
粉一白、粉二白、粉三白、黄一白、黄二白、黄黑色 |
face_shape.face_shape |
0~5 |
菱形脸、圆形脸、方形脸、瓜子脸、椭圆脸、长脸 |
face_shape.eye_shape |
0~7 |
垂眼、眯缝眼、上斜眼、柳叶眼、瑞风眼、丹凤眼、桃花眼、杏眼 |
face_shape.eyebrow_shape |
0~6 |
一字眉、标准眉、剑眉、新月眉、柳叶眉、自然眉、短粗眉 |
face_shape.mouth_shape |
0~6 |
微笑唇、薄嘴唇、爱心唇、嘟嘟唇、覆舟唇、厚嘴唇、M 唇 |
face_shape.nose_shape |
0~3 |
正常鼻、小鼻、蒜头鼻、朝天鼻 |
acne.acne_cls |
0 / 1 / 2 / 3 |
粉刺、丘疹、脓头、囊肿。分类 4(痘印)已并入 acne_mark,不会留在 acne |
brown_spot.brown_spot_cls |
1 / 2 / 3 / 4 |
褐青色痣、黄褐斑、雀斑、色斑。分类 0 已并入 acne_mark |
mole.mole_cls |
0 / 1 / 2 |
交界痣、混合痣、皮内痣 |
blackhead.value |
0~3 |
无 / 轻度 / 中度 / 重度(按鼻头黑头数量分档) |
pores_* |
0~3 |
无 / 轻度 / 中度 / 重度。额头、面颊、下巴、鼻子的数量阈值不同,见 response schema |
皱纹 value |
0 / 1 |
无 / 有。字段:forehead_wrinkle、crows_feet、eye_finelines、glabella_wrinkle、nasolabial_fold |
eye_pouch.*.class_index |
0~3 |
无眼袋、卧蚕/衰老型、水肿型/黑眼圈、结构型 |
look_radars[].type |
见下 | 仅策略 2。顺序固定:acne、brown_spot、blackhead、pore、skin_type、dark_circle、eye_pouch、wrinkle_detail |
鱼尾纹条数和面积已合并进眼周细纹(
eye_finelines)。解读眼周时用合并后的wrinkle_count.*_eye_finelines_count,不要把crows_feet再加一遍。
安全 & 合规
⚠️ 必须提醒:
- 皮肤检测结果仅供参考,不能替代皮肤科或执业医师面诊
- 短时间大量新发皮损、破溃、疼痛、快速变化的痣,建议线下就诊
- 不在响应中泄露
AccessKey/SecretKey face_id/userGroup涉及人脸特征数据,仅在用户明确授权时启用faceIdDetect- 人脸图片只在用户同意检测后上传
示例
用户:帮我看看这张正脸,皮肤怎么样,毛孔和痘痘严不严重。
操作:
python scripts/call_skin_pro.py \
--image-url https://example.com/face.jpg \
--output skin.json
回复(节选):
- 肌肤总分:86(肌龄约 28,中性肤,黄一白)
- 需要关注:毛孔轻度(额头中度),黑头中度(鼻头约 90 个),黑眼圈轻度且右侧重一些
- 痘痘:少量丘疹,痘印不明显
- 皱纹:抬头纹、法令纹良好
- 建议:清淡清洁、注意防晒;分数只反映这次拍照,持续爆发或疼痛请线下面诊
