# 髪のうねり分析

# 概要
180° フルビュー髪のうねり分析

AI 髪のうねり分析ツールでは、髪の正面、左側、右側の 3 枚の写真をアップロードして髪のうねりレベルを分析します。

企業は、髪のうねりレベルに基づいたヘアソリューションやアンチフラジー製品を提供できます。
![](https://bcw-media.s3.ap-northeast-1.amazonaws.com/hair_frizzy_S_02_enu_b80c238858.jpg)

## 統合ガイド

1. **セルフィーのアップロード**
  ソース画像は以下の 2 通りの方法で提供できます。

  - **既存の公開画像 URL の使用**
    アップロードの代わりに、AI タスクを開始する際に公開アクセス可能な画像 URL を直接指定できます。

  - **File API によるアップロード**
    エンドポイントを使用します。
    ```
    POST /s2s/v2.0/file
    ```
    これにより、後続のタスク実行用の `file_id` が返されます。

    - ***重要***: File API を呼び出すだけではファイルはアップロードされません。File API のレスポンスで提供された **URL に手動でファイルをアップロード** する必要があります。その URL がアップロード先です。次に進む前に、ファイルが正常に転送されたことを確認してください。

    AI API を呼び出す前に、ファイルが正常にアップロードされていることを確認してください。File API を使用してアップロード URL を取得し、その場所にファイルをアップロードします。アップロードが完了すると、レスポンスに ***file_id*** が含まれます。この ID は、そのファイルに関連する AI 機能にアクセスするために使用します。

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

2.  **AI タスクの実行とタスク ID の取得**
    /s2s/v2.0/task/hair-frizziness-detection を使用して AI タスクを実行します。対象ユーザー画像には、``src_file_url`` または ``src_file_id`` のいずれかを指定します。また、適用するスタイルの ``template_id`` を指定し、``task_id`` を取得します。

3.  **タスクのステータス確認のためのポーリング（成功または失敗まで）**
    ``task_id`` を使用して、GET /s2s/v2.0/task/hair-frizziness-detection をポーリングし、現在のエンジンステータスを取得してタスクのステータスを監視します。エンジンがタスクを完了するまで、ステータスは running のままとなり、この段階ではユニットは消費されません。
    AI タスクが成功または失敗した際に通知を受け取るために Webhook を実装することもできます。詳細は **[Webhook](../../../../develop/webhook)** セクションを参照してください。

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

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

4.  **成功後の AI タスク結果の取得**
    エンジンが入力ファイルを処理し、結果画像を生成すると、タスクのステータスは success に変わります。処理済み画像の URL が返されます。

## 入力と出力
* 入力形式
![](https://bcw-media.s3.ap-northeast-1.amazonaws.com/hair_frizzy_step_01_ac5c651ea4.png)
髪の正面、左側、右側の 3 枚の写真をアップロードします。
JS Camera Kit を使用して、3 枚の適格な写真を撮影するための Javascript カメラモジュールを実装できます。


* 出力形式
AI 髪のうねり分析ツールでは髪質を評価し、滑らかな髪から非常にうねった髪まで、4 つの異なる髪のうねり度を識別します。

| **マッピング (0–3)** | **用語**            | **説明**                                           |
| ----------------- | ------------------- | --------------------------------------------------------- |
| 0             | Not Frizzy      | 髪は滑らかで、目立つうねりはほとんどまたは全く見られません。     |
| 1            | Slightly Frizzy | 軽いうねりが見られます。表面の質感にわずかな不規則性があります。 |
| 2             | Frizzy         | 髪全体に目立つうねりがあります。質感の乱れが明確です。   |
| 3             | Extreme Frizzy  | 強いうねりが広範囲に見られます。髪の質感が非常に不規則です。  |

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

* サンプル出力
```json
{
  "mapping": 1, // number; the key to map of result, alternatives: [0, 1, 2, 3]
  "term": "Slightly Frizzy" // string; 1-1 map to the "mapping", alternatives: ["Not Frizzy", "Slightly Frizzy", "Frizzy", "Extreme Frizzy"]
}
```

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

|タイプ|サポートされる寸法|サポートされるファイルサイズ|サポートされる形式|
|  ----  | ----  | ----  | ----  |
|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</br>   - curl >= 7.58 (モダンな TLS/HTTP サポート)</br>   - jq >= 1.6 (堅牢な JSON パーシング) |
| Node.js (JavaScript) | Node >= 18 (グローバル 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 機能 | 消費ユニット |
|---|---|
| AI 髪のうねり分析 V1.0 | 2 |

---


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_hair_frizziness_detection.yaml)

## V1.0

 - [POST /s2s/v2.0/task/hair-frizziness-detection](https://docs.perfectcorp.com/ja/reference/ai_hair_frizziness_detection/v1.0/paths/~1s2s~1v2.0~1task~1hair-frizziness-detection/post.md): タスクステータスの確認については、ポーリングガイドを参照してください。
 - [GET /s2s/v2.0/task/hair-frizziness-detection/{task_id}](https://docs.perfectcorp.com/ja/reference/ai_hair_frizziness_detection/v1.0/paths/~1s2s~1v2.0~1task~1hair-frizziness-detection~1%7Btask_id%7D/get.md)
