> ## Documentation Index
> Fetch the complete documentation index at: https://docs.didit.me/llms.txt
> Use this file to discover all available pages before exploring further.

# 年齢推定の警告とリスクコード一覧

> Didit年齢推定の全リスクコード（AGE_BELOW_MINIMUM、AGE_NOT_DETECTED、LOW_LIVENESS_SCORE、NO_FACE_DETECTED）を、しきい値と対応アクションとともに解説するリファレンスです。

年齢推定機能は、年齢とパッシブライブネスを組み合わせたチェックでリスクシグナルが発生するたびに**警告**を出力します。対象となるのは、推定年齢が最低年齢を下回った場合、年齢を算出できなかった場合、対象者がライブネス検知に失敗した場合、顔が検出されなかった場合、プレゼンテーション攻撃が検出された場合です。このページでは、すべてのコード、それぞれのトリガー条件、ワークフローでの対応の設定方法を説明します。

## 概要

年齢推定は常に**1回の呼び出しで2つのチェック**（パッシブライブネステストと年齢回帰モデル）を実行します。そのため、警告は共通のライブネスパイプラインを経由し、機能`LIVENESS`でタグ付けされます。警告はレポートの`age_estimation.warnings[]`（スタンドアロンAPI）または`liveness_checks[].warnings[]`（ワークフローに組み込んだ場合）に表示されます。警告オブジェクトのスキーマは[データモデルの警告オブジェクト](https://docs.didit.me/ja/reference/data-models.md#警告オブジェクト)で説明しています。

生成元:

* **スタンドアロンAPI**：エンドポイントは[却下のトリガー](#却下のトリガー)に記載の5つの警告を生成します。
* **ワークフロー**：共通のライブネスの生成元と、年齢固有のチェックです。年齢に関する警告は年齢推定フロー（適応型年齢認証ワークフローまたは`AGE_ESTIMATION`ワークフローノード）でのみ発生します。通常のライブネスステップは推定年齢をレポートしますが、年齢に関する警告を出すことはありません。

重大度：5つの自動却下リスク（`NO_FACE_DETECTED`、`LIVENESS_FACE_ATTACK`、`FACE_IN_BLOCKLIST`、`AGE_BELOW_MINIMUM`、`AGE_NOT_DETECTED`）は常に`log_type: "error"`となり、強制的に`Declined`になります。その他のリスクは、しきい値または設定したアクションに応じて`error` / `warning` / `information`のいずれかになります。

## 却下のトリガー

スタンドアロンAPIでは、警告が**1つでも**発生すると判定は`Declined`になります。

* **年齢がしきい値未満**：推定年齢が`age_estimation_decline_threshold`（デフォルト`18`、`0`で年齢チェックを無効化）を厳密に下回る場合です。`AGE_BELOW_MINIMUM`が発生します。
* **年齢を算出できない**：顔から年齢を推定できなかった場合です（検出可能な顔がない、または年齢モデルで使用できる顔がない）。`AGE_NOT_DETECTED`が発生します。
* **ライブネススコアがしきい値以下**：`score <= face_liveness_score_decline_threshold`（デフォルト`30`）の場合です。スコアが`null`の場合は`0`として扱います。`LOW_LIVENESS_SCORE`が発生します。`NO_FACE_DETECTED`が発生した場合は抑制されます（この2つは相互に排他的です）。
* **顔が検出されない**：ライブネスモデルが顔を見つけられなかった場合です。`NO_FACE_DETECTED`が発生します。
* **プレゼンテーション攻撃**：ライブネスモデルが画面、印刷写真、マスク、その他のなりすましを検知した場合です。`LIVENESS_FACE_ATTACK`が発生します。

ワークフローでは、年齢チェックは推定年齢の端数を切り捨てた値（満年齢）を設定済みのしきい値と比較します。

* **本人確認へのフォールバックが有効な場合**（`enable_id_verification_fallback`、デフォルトで有効）：`borderline_minimum_age_threshold`（デフォルト`18`）未満の年齢では`AGE_BELOW_MINIMUM`が発生します。境界帯（`borderline_maximum_age_threshold`まで）の年齢は警告を発生させずに書類認証へ進み、`AGE_NOT_DETECTED`が発生することはありません。年齢を検出できなかった場合も書類認証へ回されます。
* **フォールバックが無効な場合**：推定年齢が得られないと`AGE_NOT_DETECTED`が発生し、`minimum_age_threshold`（デフォルト`18`）未満の年齢では`AGE_BELOW_MINIMUM`が発生します。

## 設定可能なリスク

以下のリスクでは、ワークフロー設定ごとにしきい値またはアクションを調整できます。

| 設定 | リスクコード | 設定可能なオプション |
| - | - | - |
| 年齢のしきい値 | `AGE_BELOW_MINIMUM` | スタンドアロン：`age_estimation_decline_threshold`（デフォルト`18`、`0`で無効化）。ワークフロー：`minimum_age_threshold` / `borderline_minimum_age_threshold`（デフォルト`18`）に加え、境界値付近の年齢の場合、本人確認にフォールバック。 |
| 低ライブネススコア | `LOW_LIVENESS_SCORE` | 個別の**却下のしきい値**（デフォルト`30` → `error` + 却下）と**レビューしきい値**（デフォルト`60` → `warning` + レビュー）をライブネススコアに適用します。 |
| 重複の可能性がある顔 | `POSSIBLE_DUPLICATED_FACE` | 検出時のアクション：`DECLINE` / `REVIEW` / `NO_ACTION`（デフォルト`NO_ACTION`）。ワークフローセッションのみ。 |
| 複数の顔 | `MULTIPLE_FACES_DETECTED` | 検出時のアクション：`DECLINE` / `REVIEW` / `NO_ACTION`（デフォルト`NO_ACTION`）。ワークフローのパッシブライブネスのみ。 |

ワークフローセッションでは、顔をお客様のリストとも照合します。`FACE_IN_BLOCKLIST`は常に自動却下（`error`）となり、`POSSIBLE_FACE_IN_BLOCKLIST`はセッションを`In Review`に移します。

## 生成される警告

| タグ | 重大度（`log_type`） | 説明 |
| - | - | - |
| `AGE_BELOW_MINIMUM` | `error`、自動却下 | 推定年齢が現在有効なしきい値を下回っています（スタンドアロンでは`age_estimation_decline_threshold`、ワークフローでは`minimum_age_threshold` / `borderline_minimum_age_threshold`。いずれもデフォルトは`18`）。`additional_data`は常に`null`です。 |
| `AGE_NOT_DETECTED` | `error`、自動却下 | 顔から年齢を推定できませんでした。スタンドアロンAPIでは、年齢が`null`の場合に必ず発生します。ワークフローでは、本人確認へのフォールバックが無効な場合にのみ発生します。 |
| `LOW_LIVENESS_SCORE` | 却下しきい値以下で`error`、レビューしきい値以下で`warning` | ライブネススコアが設定されたしきい値以下です（スタンドアロンおよびワークフローの却下しきい値のデフォルトは`30`、ワークフローのレビューしきい値のデフォルトは`60`）。静止画、画面、または動画が使用された可能性を示します。`NO_FACE_DETECTED`が発生した場合は発生しません。 |
| `NO_FACE_DETECTED` | `error`、自動却下 | 送信された画像から顔が検出されませんでした。十分な照明のもとで顔をカメラの中央に収めるよう、ユーザーに再度案内してください。 |
| `LIVENESS_FACE_ATTACK` | `error`、自動却下 | ライブネスモデルがプレゼンテーション攻撃（画面の再生、印刷された写真、マスク、ディープフェイク）を検知しました。 |
| `MULTIPLE_FACES_DETECTED` | 設定されたアクションに従う（デフォルトは`information`、アクションなし） | 画像内で複数の顔が見つかりました。結果には最も大きい顔が使用されます。ワークフローのパッシブライブネスでのみ発生し、スタンドアロンAPIでは発生しません。 |
| `FACE_IN_BLOCKLIST` | `error`、自動却下 | 検出された顔が、[Lists API](https://docs.didit.me/ja/management-api/lists/overview.md)で管理している顔のブロックリストの登録項目と一致しています。ワークフローのセッションでのみ発生します。 |
| `POSSIBLE_DUPLICATED_FACE` | 設定されたアクションに従う（デフォルトは`information`、アクションなし） | 検出された顔が、別のセッションで以前に承認された顔と非常によく似ています（同じ`vendor_data`を共有する顔との一致は除外されます）。ワークフローのセッションでのみ発生します。 |

## 例

```json theme={null}
{
  "warnings": [
    {
      "risk": "LOW_LIVENESS_SCORE",
      "feature": "LIVENESS",
      "additional_data": null,
      "log_type": "error",
      "short_description": "Low liveness score",
      "long_description": "The liveness check resulted in a low score, indicating potential use of non-live facial representations or poor-quality biometric data."
    },
    {
      "risk": "AGE_BELOW_MINIMUM",
      "feature": "LIVENESS",
      "additional_data": null,
      "log_type": "error",
      "short_description": "Age below minimum",
      "long_description": "The age of the face is below the minimum age threshold for the application."
    }
  ]
}
```

ワークフローの判定ペイロード（`liveness_checks[].warnings[]`）では、各警告に、その警告を発生させたワークフローノードを示す`node_id`も含まれます。

## 警告の種類

各リスクには、アプリケーションの設定に基づいて重大度が割り当てられます。重大度は次の3つのカテゴリに分かれます。

## 関連ページ

* [年齢推定の概要](https://docs.didit.me/ja/core-technology/age-estimation/overview.md)：機能の動作、料金、判定ロジック。
* [年齢推定レポート](https://docs.didit.me/ja/core-technology/age-estimation/report-age-estimation.md)：スタンドアロンAPIと埋め込みワークフローの値の両方について、レスポンスの完全な構造。
* [スタンドアロンAPIリファレンス](https://docs.didit.me/ja/standalone-apis/age-estimation.md)：`POST /v3/age-estimation/`のリクエストとレスポンス。
* [パッシブライブネス](https://docs.didit.me/ja/core-technology/liveness/overview.md)：年齢推定のレスポンスで使用される共通のライブネスモデル。
* [データモデル：年齢推定](https://docs.didit.me/ja/reference/data-models.md#年齢推定)：フィールドごとの正式なスキーマ。


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.