🤖

[NSFW] Azure の Computer Vision API に遺伝的アルゴリズムのアレを見せてみよう

2021/02/12に公開

AzureのAIがどう判断するのか気になったので試してみた。

遺伝的アルゴリズムのアレとは

https://twitter.com/miseromisero/status/1348214002585800705

その後、Google には無事(?)に怒られたようです

https://note.com/ultrmrn_chicken/n/nd930bfd6260c

Azure Computer Vision API とは

画像解析ができる便利API。
adultScoreなどの数値が取れる。
Azureのサービスのうちのひとつだが、1ファイルだけ分析するのなら以下のページのフォームにURLを入れるとお試し的に使える。

https://azure.microsoft.com/ja-jp/services/cognitive-services/computer-vision/

さっそく API に画像を見せてみよう

Azureのセットアップから利用までは各種ドキュメントを参照。
今回はComputer Vision APIのAnalyze機能をvisualFeatures=Adultで利用した。
0世代から12000世代まで、100世代ごとにAPIに投げてあげる。
本当なら1世代ごと投げたいのだが、サイトの負荷にならないようにsleepをかませてリクエスト数は最小限のものとした。
リクエストの部分だけ抜き出すとこんな感じ。

$ch = curl_init('https://japaneast.api.cognitive.microsoft.com/vision/v3.0/analyze?visualFeatures=Adult&language=en');
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode([
    'url' => 'https://gamingchahan.com/ecchi/pastimages/' . $i+1 . '_0.png',
]));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Content-Type: application/json',
    'Host: japaneast.api.cognitive.microsoft.com',
    'Ocp-Apim-Subscription-Key: this_is_secret_key'
]);
$response_data = curl_exec($ch);
curl_close($ch);

グラフ

APIで取得できたadultScore(成人スコア)、racyScore(わいせつ性)、goreScore、をSpreadsheetに入れてグラフを描いてみる。(adultとracyの違いはよくわからない)

7500世代あたりからわりと安定して高いスコアを出している。

9900世代のスコアが突然落ちているが、目視でスコアがそこまで落ち込んでいなかった±100の世代と画像を見比べても大きく違うようには見えない。
何がAzureのお気に召さなかったのかは謎である。

また11200世代あたりで再びスコアが下がり、激しく上下しつつもスコアが回復していっている。
これについても目視では何が原因でスコアに変動があったのか想像がつかないのだが、一部のユーザーが「最近の画像は好ましくない」という旨の発言をしてたので、見る人が見れば違いがわかるのかもしれない。

まとめ

少しの例外はあれど、AIの判断は人間にかなり近いものが実現されているようである。

Discussion