# 顔パーツの色分析

# 概要
顔パーツの色分析では、肌の色調、目、眉毛、唇、髪の色を検出します。

![](https://bcw-media.s3.ap-northeast-1.amazonaws.com/img_Face_Ratio_sec_02_02_enu_21a3d8d423.jpg)

![](https://bcw-media.s3.ap-northeast-1.amazonaws.com/shade_finder_s5_poster_2_8a8f9307d2.png)


## 統合ガイド
* 顔パーツの色分析用の写真撮影方法

  正面を向いて自撮りしてください
  - カメラをまっすぐ見ている、1 枚のクリアな写真のみを使用してください。髪を下ろして胸にかかっている状態にし、真正面を向いていることを確認してください。
  - 代わりに、JS Camera Kit を使用して写真を撮影してください。髪を下ろして胸にかかっている状態にしてください。結ばないでください。

* AI による肌トラブル検出方法
1. **ソース画像のリサイズ**</br>
  サポートされている寸法に合わせて写真をリサイズします。詳細は **[ファイル仕様とエラー](#section/overview/File-Specs-and-Errors)** を参照してください。

2. **File API を使用したファイルのアップロード**</br>
  ***/s2s/v2.0/file*** API を使用して、対象ユーザーの画像をアップロードします。
    - 画像要件
      - 詳細は **[ファイル仕様とエラー](#section/overview/File-Specs-and-Errors)** を参照してください。
    - ***重要***: File API を呼び出すだけではファイルはアップロードされません。File API のレスポンスで提供される **URL に手動でファイル** をアップロードする必要があります。その URL がアップロード先です。次に進む前に、ファイルが正常に転送されたことを確認してください。<br>
    AI API を呼び出す前に、ファイルが正常にアップロードされていることを確認してください。File API を使用してアップロード URL を取得し、その場所にファイルをアップロードします。アップロードが完了すると、レスポンスに ***file_id*** が返されます。この ID は、そのファイルに関連する AI 機能にアクセスするために使用します。

      > **警告:** File API のレスポンスで提供される URL にファイルをアップロードしない場合、AI API の使用時に 500 Server Error / unknown_internal_error または 404 Not Found エラーが発生します。

3. **顔パーツの色分析タスクの実行**</br>
  アップロードが完了すると、AI はファイル ID を使用して、唇、目、眉毛、肌、髪の色調を調べます。詳細は **[入力と出力](#section/overview/Inputs-and-Outputs)** を参照してください。</br>
  次に、File ID を指定して POST 'task/skin-tone-analysis' を呼び出すと、タスクが実行され、***task_id*** が取得されます。

4. **タスクのステータスをポーリングして成功またはエラーを確認する**</BR>
この ***task_id*** は、GET 'task/skin-tone-analysis' によるポーリングを通じてタスクのステータスを監視するために使用され、現在のエンジンステータスを取得します。エンジンがタスクを完了するまで、ステータスは 'running' のままであり、この段階ではユニットは消費されません。

    **警告:** タスクのステータスを保持期間に基づいてポーリングで確認することは必須です。保持期間内にポーリングリクエストがない場合、タスクが正常に処理されていてもタイムアウトします（ユニットが消費されます）。

    > **警告:** タイムアウトしたタスクのステータスを確認すると、***InvalidTaskId*** エラーが発生します。したがって、AI タスクを実行したら、ステータスが *success* または *error* になるまで、保持期間内にステータスを確認するために **ポーリング** する必要があります。

5. **成功時に AI タスクの結果を取得する**</BR>
エンジンが入力ファイルを正常に処理し、結果画像を生成すると、タスクは 'success' ステータスに変更されます。処理済み画像の URL と、結果画像を再アップロードせずに別の AI タスクをチェーン実行できる dst_id が取得されます。
ユニットは、この場合のみ消費されます。エンジンがタスクの処理に失敗した場合、タスクのステータスは 'error' に変更され、ユニットは消費されません。</BR>
ユニットを控除する際、システムは期限切れに近いものから優先的に控除します。期限が同じ場合は、最も早い日に取得されたユニットから控除されます。

![](https://plugins-media.makeupar.com/smb/blog/post/2022-08-19/2a1af800-7c69-44a5-a94c-70a4a9c4d2b0.jpg)

---

## 入力と出力
* 入力
AI は肌の色調を分析します。`face_angle_strictness_level` を調整して、入力された顔の角度のチェックの厳密さを、strict、high、medium、low、flexible の範囲で制御できます。厳密さレベルは、ピッチ、ヨー、ロールを含む顔の角度検出に適用されます。デフォルト設定は high です。

![](https://bcw-media.s3.ap-northeast-1.amazonaws.com/shade_finder_s4_poster_399f34c6ef.jpg)

* 出力
```json
{
  "status": 200,
  "data": {
    "task_status": "success",
    "results": {
      "color": {
        "eye_color": "#293F9B",
        "eye_color_name": "Blue",
        "lip_color": "#D23245",
        "eyebrow_color": "#5B2B31",
        "skin_color": "#b9947c",
        "hair_color": "#a0a0a0",
        "hair_color_name": "Auburn"
      }
    }
  }
}
```

| **結果パラメータ** | **結果タイプ** |
|  --- | --- |
| `skin_color` | Hex 値 |
| `eye_color`| Hex 値 |
| `eye_color_name` | Amber, Brown, Green, Blue, Gray, Other |
| `lip_color` | Hex 値 |
| `eyebrow_color` | Hex 値 |
| `hair_color` | Hex 値 |
| `color.hair_color_name` | Auburn, Black, Blonde, Brown, Grey/White, Red |


* 撮影方法のヒント:
![](https://bcw-media.s3.ap-northeast-1.amazonaws.com/strapi/assets/webp_AI%20Skin%20Analysis_camera_f93315b088.png)

> **警告:** 顔の幅は画像の幅の 60% より大きくなければなりません。

---

## ファイル仕様とエラー
* サポートされている形式と寸法

| AI 機能 | サポートされている寸法 | サポートされているファイルサイズ | サポートされている形式 |
| ---- | ---- | ----  | ---- |
| 顔パーツの色分析 | 長辺 <= 4096、1 人のみ。1080px より長い辺を持つ画像は、分析のために自動的にリサイズされます。 | < 10MB | jpg/jpeg |

* エラーコード

|エラーコード|説明|
|  ----  | ----  |
| error_below_min_image_size | ソース画像の寸法は少なくとも 320 ピクセルである必要があります。 |
| error_face_position_invalid | 顔は完全に可視であり、正面を向いており、画像の中央にある必要があります。 |
| error_face_position_too_small | 検出された顔が分析には小さすぎます。 |
| error_face_position_out_of_boundary | 顔が画像の境界を超えています。 |
| error_face_not_forward_facing | 顔はカメラを直接向いている必要があります。 |
| error_face_angle_upward | 顔が上向きに傾きすぎています—頭をわずかに下げてください。 |
| error_face_angle_downward | 顔が下向きに傾きすぎています—頭をわずかに上げてください。 |
| error_face_angle_leftward | 顔が左に回りすぎています—頭をわずかに右に回してください。 |
| error_face_angle_rightward | 顔が右に回りすぎています—頭をわずかに左に回してください。 |
| error_face_angle_left_tilt | 顔が左に傾きすぎています—頭を優しく右に傾けてください。 |
| error_face_angle_right_tilt | 顔が右に傾きすぎています—頭を優しく左に傾けてください。 |

* 環境と依存関係

| サンプルコード言語 / ツール | 推奨ランタイムバージョン |
|---|---|
| cURL | - bash >= 3.2</br>   - curl >= 7.58 (モダンな TLS/HTTP サポート)</br>   - jq >= 1.6 (堅牢な JSON パーシング) |
| Node.js (JavaScript) | Node >= 18 (global fetch 用) |
| JavaScript | - Chrome / Edge >= 80</br>   - Firefox >= 74</br>   - Safari >= 13.1 |
| PHP | PHP >= 7.4 (モダンな TLS/互換性用), ext-curl (推奨) または allow_url_fopen=On + ext-openssl, ext-json |
| Python | Python >= 3.10 (f-strings 用), requests >= 2.20.0 |
| Java | Java 11+ (HttpClient 用), Jackson Databind >= 2.12.0 |

---

## JS Camera Kit
{% partial file="/_partials/js-camera-kit.md" /%}

---

## ユニット消費

| AI 機能 | 消費ユニット |
|---|---|
| 顔パーツの色分析 V1.0 | 20 |

---


License: Privacy policy

## Servers

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

## Security

### BearerAuthenticationV2

[object Object]

Type: http
Scheme: bearer

## Download OpenAPI description

 - [顔パーツの色分析](https://docs.perfectcorp.com/_bundle/@l10n/ja/reference/ai_skin_tone_analysis.yaml)

## V1.0

 - [POST /s2s/v2.0/task/skin-tone-analysis](https://docs.perfectcorp.com/ja/reference/ai_skin_tone_analysis/v1.0/paths/~1s2s~1v2.0~1task~1skin-tone-analysis/post.md): このエンドポイントで肌色分析プロセスを開始します。ソースファイル（URL または File ID）を指定し、必要に応じて顔角度の厳密さレベルを指定してください。タスクは非同期で処理され、このレスポンスで返される task_id を使用してステータスを確認できます。
 - [GET /s2s/v2.0/task/skin-tone-analysis/{task_id}](https://docs.perfectcorp.com/ja/reference/ai_skin_tone_analysis/v1.0/paths/~1s2s~1v2.0~1task~1skin-tone-analysis~1%7Btask_id%7D/get.md)
