"safeSearchAnnotation" : {
"spoof" : "VERY_UNLIKELY",
"medical" : "UNLIKELY",
"adult" : "VERY_UNLIKELY",
"violence" : "VERY_UNLIKELY"
}
Vision API は、4 つの不適切なコンテンツ タイプ(スプーフ、医療、アダルト、暴力)のそれぞれについて、画像が該当する可能性の度合いを示す 5 つの値のいずれかを返します(スプーフ : 元画像に対するあからさまで滑稽な、または不快な改変)。5 つの値とは、“VERY_UNLIKELY”(可能性が非常に低い)、“UNLIKELY”(可能性が低い)、“POSSIBLE”(可能性がある)、“LIKELY”(可能性が高い)、“VERY_LIKELY”(可能性が非常に高い)です。
これらの値を基に、どの画像のサブセットを手動でチェックする必要があるかを判断できます。たとえば、Vision API が “POSSIBLE” 以上と見なした画像だけをチェックすればよいのです。
当然のことながら、アボカド トーストの場合は、Vision API はスプーフ、医療、アダルト、暴力を含んでいる可能性が高いとは判定していません。4 つのカテゴリーの中では、医療関連のコンテンツを含んでいる可能性が相対的に高いと判定していますが、それはクローズアップ写真だからです。画像が 4 つのカテゴリーのいずれかに該当する可能性が高いと判定されたら、扱いに注意すべきだと判断してまず間違いありません。
Vision API の SafeSearch 検知機能は、画像内の不適切なコンテンツを認識して分類するように訓練されたディープ ニューラル ネットワーク モデルを使用します。この機能はカテゴリーごとに 0 ~ 1 の範囲でスコアを計算し、そのスコアを基に、該当する可能性の度合いを文字列として適用します。
では、Vision API は各 SafeSearch カテゴリーで具体的にどこに目を光らせているのでしょうか。SafeSearch モデルの担当エンジニアである Nikola Todorovic とチャットし、詳細を聞いてみました。API 応答の各パートを詳しく見ていきましょう。
アダルト
アダルト コンテンツの判定機能は、ポルノ画像と非ポルノ画像を区別するように訓練されています。たとえば、裸ではなく水着姿の人の写真は UNLIKELY または VERY_UNLIKELY と判定されます。それに対して性行為、ヌード、淫らな描写を含む漫画のコンテンツは通常、LIKELY または VERY_LIKELY と判定されます。
こうした判定は以下のようなシナリオに役立ちます。
- 不適切なコンテンツをすべて絶対確実に除きたい場合(徹底的な排除)
- 不快な画像のみを確実に除きたい場合(高精度の排除)
誤検知を避けつつ、ポルノ コンテンツを含んでいることが非常に確実な画像にフラグを付けたいときは、API が VERY_LIKELY と判定した画像だけを取り除きます。一方、誤検知をあまり気にせず、安全なアプローチを取りたいときは、POSSIBLE 以上と判定された画像をすべてチェックします。判定結果をどのように扱うかは、最終的にはユースケース次第です。
医療や科学、教育、アートの文脈の場合、判定機能はヌードを含む画像にフラグを付けないように訓練されています。さらに、水着姿やランジェリー姿の写真で肌が見えていても、それらをかなり高い精度で非ポルノとして判定します。Cloud Vision API は、“重要な部分” が覆われていることを検知できるからです。
SafeSearch エンジニアリング チームは、画像の判定を分析し、検知モデルを支えるディープ ニューラル ネットワークをより良く理解するために、デバッグ ツールを開発しました。このツールは、内部ニューラル ネットワークのアクティベーション(活性化)とバックプロパゲーション(誤差逆伝播)の勾配を利用して、画像にヒートマップを適用し、判定機能によってアダルトに該当する可能性ありと判断された箇所を示します。
以下のヒートマップでは、最終的な判定(VERY_UNLIKELY)は主に、ハイライトされた水着の部分に影響されています。
上の画像にヒートマップ デバッグ ツールを適用すると、以下のようになります。API が画像のどの部分に基づいて、暴力コンテンツに該当する可能性として POSSIBLE という値を返すかがわかります。
これは、検知モデルが写真内の兵士を認識したことを示しています。また、兵士が持つライフルも判定に影響しています。
医療
Vision API によって医療関連の不適切なコンテンツと判定される画像は、手術、病気、体の一部の生々しい画像を含んでいます。これに対して、手や顔の手術前後の写真や患者がクローズアップされていない手術室の写真は、不適切としてフラグを付けられることはないでしょう。医療関連の不適切なコンテンツの判定機能は主に、開いた傷や性器のアップ、病気のひどい徴候といった写真を判定の材料にします。
以下の画像は明らかに治療の様子を写したものですが、Vision API によって UNLIKELY と判定されます。不適切な内容やショッキングな内容ではないからです。
スプーフ
スプーフ(元画像に対するあからさまで滑稽な、または不快な改変)の判定機能は主に、ネット ミーム(インターネットで広まっている面白ネタ)として作られる画像を見つけます。こうした画像はテキスト、ミームでおなじみの顔、背景に特徴があります。
Vision API は、以下のミームがスプーフに該当する可能性について、VERY_LIKELY という値を返します。
下のヒートマップをご覧ください。判定機能は明らかに、顔とテキストの組み合わせをこの画像のスプーフ要素と判断しています。
SafeSearch 検知のユースケース
Vision API が GA リリースとなって以来、SafeSearch 検知はさまざまな業種の UGC(User-Generated Content)アプリケーションで利用されています。
メッセージング アプリケーションは、その最たるものです。ユーザーからのコンテンツをモニタリングしていることがほとんどだからです。Vision API を使えば、すべてのコンテンツを手動でチェックするのではなく、コンテンツ承認プロセスを自動化して、手動チェックが必要な画像数を大幅に減らすことができます。
また、クラウド ソーシングを利用したデジタル マーケティング キャンペーンでも SafeSearch 検知が利用されています。こうしたキャンペーンでは、企業が消費者にコンテンツのアップロードを求めるからです。
始めましょう
SafeSearch 検知はブラウザから直接お試しになれます。Vision API の
デモ ページから画像をアップロードするだけです。
SafeSearch 検知について詳しく知りたい方は、
API ドキュメントをご覧ください。ご質問がある場合は、StackOverflow で
google-cloud-vision タグをお使いください。Vision API で独自のアプリを作るのであれば、
GitHub のリポジトリでお好みの言語のサンプルをチェックするとよいでしょう。
- Posted by Sara Robinson, Developer Advocate
0 件のコメント :
コメントを投稿