# AI 发型发质类型检测

# 概览
想象口袋里装着一位 AI 头发专家。我们的技术会深入研究您头发的质地、粗细与卷曲形态，从十种独特的卷形中判别，归入九大类型，从直发一直到极卷。您能得到一份完整的头发档案，品牌方可据此为您精准推荐产品与护理建议。
## 接入指南
* AI 发型发质类型检测怎么拍照
* 从左、正脸到右，拍三张。
  - 连拍三张自拍就行：一张正对镜头，一张向左转约 45 度，一张向右转 45 度。目的是把头发各侧面的样子都拍到。每张照片里，整张脸和头发的上缘都要清楚可见。脸部宽度约占图片宽度的 50% 到 80%，别太小也别太近，这样分析起来才够清楚。拍侧面照时，头左右转动，就像摇头说“不”一样（这就是 yaw 旋转）。头部保持水平，不要抬头、低头或侧倾。不要拍仰角或俯角，那些角度我们用不上。
  - 也可以用 JS Camera Kit 拍照。头发不要扎起来，让它垂在胸前。头向右转稳住，再向左转，凑齐三张供分析。
* 如何用 AI 检测发质
* 请用 ***/s2s/v2.0/file*** 接口上传以下素材：
  - 正面、右侧、左侧三张照片。
* 执行 AI 任务 ***/s2s/v2.0/task/hair-type-detection*** 
送三张图来执行 AI 发型发质类型检测任务：一张正面、一张右侧、一张左侧。把它们的文件 ID 作为 AI 的输入源。
* 轮询任务状态，直到成功或报错
用这个 ***task_id*** 轮询 GET 'task/hair-type-detection' 监控任务状态，取得引擎当前的处理进度。引擎完成任务之前，状态会一直是 'running'，这一阶段不消耗点数。

## 发质分级
| 类型 | 缩略图 | 发质分级 | 说明 |
|  --- | --- | --- | --- |
| 1 | ![](https://d3ss46vukfdtpo.cloudfront.net/static/media/img_t1.b19d4657.jpg) | 直发 | 发丝自然不带卷，从发根一路垂到发梢 |
| 2A | ![](https://d3ss46vukfdtpo.cloudfront.net/static/media/img_t2A.351ef0a6.jpg) | 微波浪 | 波浪细微柔和，质感顺而略蓬，但发根处不够蓬松 |
| 2B | ![](https://d3ss46vukfdtpo.cloudfront.net/static/media/img_t2B.daac62f4.jpg) | 中波浪 | 呈自然的 S 形波浪，多从头发表面中段开始起卷，贴着头部垂落，层次含蓄而精致 |
| 2C | ![](https://d3ss46vukfdtpo.cloudfront.net/static/media/img_t2C.10ef2132.jpg) | 粗波浪 | 波浪质感偏粗，呈“S”形，自发起卷一路延伸到发梢，容易毛躁 |
| 3A | ![](https://d3ss46vukfdtpo.cloudfront.net/static/media/img_t3A.073b6767.jpg) | 大卷 | 卷度大而舒展、蓬松有弹性，从发根到发梢都有明显光泽 |
| 3B | ![](https://d3ss46vukfdtpo.cloudfront.net/static/media/img_t3B.06bf109b.jpg) | 中卷 | 发丝偏粗、卷圈有弹性，容易毛躁 |
| 3C | ![](https://d3ss46vukfdtpo.cloudfront.net/static/media/img_t3C.9091ea1e.jpg) | 小卷 | 卷形紧密成螺丝状，密度高，蓬松感足 |
| 4A | ![](https://d3ss46vukfdtpo.cloudfront.net/static/media/img_t4A.cf742771.jpg) | 软小卷 | 呈紧密排列、有弹性的 S 形卷 |
| 4B | ![](https://d3ss46vukfdtpo.cloudfront.net/static/media/img_t4B.4a6300fe.jpg) | 极卷 | 卷圈密集，折成锐利的锯齿状 |
| 4C | ![](https://d3ss46vukfdtpo.cloudfront.net/static/media/img_t4C.4ed5a7f8.jpg) | 超极卷 | 卷度紧而蓬松，更容易断裂 |

* 结果参数
* mapping: result 是一个字符串，表示检测出的发质类型代号。所有可能的结果字符串列在下面的数组中：

```json
["1 to 2a", "2a to 2b", "2b to 2c", "2c to 3a", "3a to 3b", "3b to 3c", "3c to 4a", "4a to 4b", "4b to 4c"]
```
* term: 发质类型代号与分级名称之间的一一对应字符串。所有可能的结果字符串列在下面的数组中：

```json
["Straight to Slight Wavy", "Slight to Medium Wavy", "Medium to Thick Wavy", "Thick Wavy to Loose Curls", "Loose to Medium Curls", "Medium to Tight Curls", "Tight Curls to Kinky Soft", "Kinky Soft to Coily", "Coily to Extremely Coily"]
```
* 拍摄建议
![Suggestions for How to Shoot](https://bcw-media.s3.ap-northeast-1.amazonaws.com/strapi/assets/AI%20Hair%20Type%20Detection_how%20to%20shoot.png)

![](https://bcw-media.s3.ap-northeast-1.amazonaws.com/strapi/assets/AI%20Skin%20Analysis_camera.png)
## 文件规格与错误码
* 支持的格式与尺寸

| 类型 | 支持尺寸 | 支持文件大小 | 支持格式 |
|  --- | --- | --- | --- |
| AI 发型发质类型检测 | 图片宽高至少 320 像素，任一维度不超过 4096 像素。若某一边超过 1080 像素，会自动缩放到该上限以内进行分析。 | < 10MB | jpg/png |

* 错误码

| 错误码 | 说明 |
|  --- | --- |
| error_mismatch_image_size | 请确保正脸、左侧、右侧三张人脸照片尺寸一致 |
| error_below_min_image_size | 图片宽或高小于 320 像素，尺寸过小，无法使用 |
| error_face_position_invalid | 脸部需完整可见，不能被裁掉一部分 |
| error_face_position_too_small | 照片中的人脸过小，无法准确分析 |
| error_face_position_out_of_boundary | 脸部过大，或部分超出照片边缘 |
| error_insufficient_lighting | 光线太暗，分析起来很困难 |
| error_face_angle_invalid | 脸部角度不太对。正脸拍摄时，头部偏离正向请在 10 度以内；侧脸拍摄时，角度应大于 15 度 |

* 运行环境与依赖

| 示例代码语言 / 工具 | 建议运行时版本 |
|  --- | --- |
| cURL | - bash >= 3.2   - curl >= 7.58 (modern TLS/HTTP support)   - jq >= 1.6 (robust JSON parsing) |
| Node.js (JavaScript) | Node >= 18 (for global fetch) |
| JavaScript | - Chrome / Edge >= 80   - Firefox >= 74   - Safari >= 13.1 |
| PHP | PHP >= 7.4 (for modern TLS/compat), ext-curl (recommended) or allow_url_fopen=On + ext-openssl, ext-json |
| Python | Python >= 3.10 (for f-strings), requests >= 2.20.0 |
| Java | Java 11+ (for HttpClient), Jackson Databind >= 2.12.0 |



---

## JS Camera Kit


---

## 点数消耗
| AI 功能 | 消耗点数 |
|  --- | --- |
| AI 发型发质类型检测 V1.0 | 2 |



---

License: Privacy policy

## Servers

```
https://yce-api-01.makeupar.com
```

## Security

### BearerAuthenticationV2

使用标准的 Bearer 鉴权。把您的 API 密钥放进请求头： `Authorization:Bearer YOUR_API_KEY`。请注意 'Bearer' 与 'YOUR_API_KEY' 之间有一个空格。

Type: http
Scheme: bearer

## Download OpenAPI description

 - [AI 发型发质类型检测](https://docs.perfectcorp.com/_bundle/@l10n/zh-CN/reference/ai_hair_type_detection.yaml)

## V1.0

 - [POST /s2s/v2.0/task/hair-type-detection](https://docs.perfectcorp.com/zh-cn/reference/ai_hair_type_detection/v1.0/paths/~1s2s~1v2.0~1task~1hair-type-detection/post.md): 查询任务状态的方法，请参见轮询指南。
 - [GET /s2s/v2.0/task/hair-type-detection/{task_id}](https://docs.perfectcorp.com/zh-cn/reference/ai_hair_type_detection/v1.0/paths/~1s2s~1v2.0~1task~1hair-type-detection~1%7Btask_id%7D/get.md)
