開発エンジニアのYUTA.Mです。
近年はChatGPTやGeminiなど簡単に利用できるAIサービスが普及しています。
私もAIに興味を持ち、色々と調べたところ、Googleが提供しているCloud Vision APIを利用すれば自分でコードを書いて、画像から物体や顔を認識し、その物体が何なのか、またはどのような感情なのか判定できることが分かりました。
今回の記事ではCloud Vision APIの基本的な機能や実際に画像を用いた検証結果をご紹介いたします。
Cloud Vision API とは
「Cloud Vision API」とは、Googleが提供する画像認識サービスです。
Google独自の機械学習モデルを採用しており、これによって効率的に画像を分析し、様々なことを実現できます。強力な事前トレーニング済み機械学習モデルを提供しており、画像にラベルを割り当てることで、事前定義済みの数百万のカテゴリに画像を高速分類することが可能です。
機能としては、以下の6つが挙げられます。
- 物体検出
- 顔検出
- ランドマーク検出
- ロゴ検出
- ラベル検出
- セーフサーチ検出
特に実用性がありそうな顔検出・セーフサーチ検出・ラベル検出をそれぞれ説明していきます。
1. 顔検出
顔検出とは画像に含まれる複数の人物の顔を検出し、感情を識別する機能です。
感情を識別するレスポンスのパラメータとしては以下の4項目が挙げられます。
項 目 | 説 明 |
joyLikelihood | 喜び |
sorrowLikelihood | 悲しみ |
angerLikelihood | 怒り |
surpriseLikelihood | 驚き |
上記の情報に基づき、感情はさらに以下の6項目で評価が行われます。
項 目 | 説 明 |
UNKNOWN | 可能性は不明 |
VERY_UNLIKELY | 可能性は非常に低い |
UNLIKELY | 可能性は低い |
POSSIBLE | 可能性はある |
LIKELY | 可能性は高い |
VERY_LIKELY |
可能性は非常に高い |
〈画像を用いた検証〉
それでは、実際に画像を用いて検証を行っていきます。
まず1枚目は以下の画像です。
見た限りでは怒っている男性のように見えます。実際に顔検出を行った結果が以下となります。
項 目 | 説 明 |
喜び | 可能性は非常に低い |
悲しみ | 可能性は非常に低い |
怒り |
可能性はある |
驚き | 可能性はある |
喜び、悲しみが「可能性は非常に低い」、それ以外が「可能性はある」という結果になりました。想像通り、怒りは検出されましたが、同時に驚きも検出されました。目を見開いていたり、口を開けているので驚いていると判断されたのかもしれません。
続いて2枚目は以下の画像です。
笑顔が素敵な赤ちゃんの画像です。顔検出を行った結果が以下となります。
項 目 | 説 明 |
喜び | 可能性は高い |
悲しみ | 可能性は非常に低い |
怒り |
可能性は非常に低い |
驚き | 可能性は非常に低い |
喜びが「可能性は高い」、それ以外は「可能性は非常に低い」いう結果になりました。こちらは想像通りの結果になりました。正しく顔検出できていることが分かります。
2. セーフサーチ検出
セーフサーチ検出とはアダルトコンテンツや暴力的コンテンツなど、画像に含まれる不適切なコンテンツを検出する機能です。
コンテンツを識別するレスポンスのパラメータは主に以下の5項目が挙げられます。
項 目 | 説 明 |
adult | アダルトコンテンツ |
spoof | なりすまし |
medical | 医療 |
violence | 暴力コンテンツ |
racy | きわどい内容 |
感情の評価は顔検出と同様の項目で行われます。
〈画像を用いた検証〉
それでは、実際に画像を用いて検証を行っていきます。
まず1枚目は以下の画像です。
見た限りでは手術シーンです。実際にセーフサーチ検出を行った結果が以下となります。
項 目 | 説 明 |
アダルトコンテンツ | 可能性は低い |
なりすまし | 可能性は低い |
医療 | 可能性はある |
暴力コンテンツ | 可能性は低い |
きわどい内容 | 可能性はある |
医療、きわどい内容が「可能性はある」、それ以外は「可能性は低い」という結果になりました。手術シーンなので医療という判断、そして手術ではメスやハサミを使うことがあるのできわどい内容と判断されたのかもしれません。
続いて2枚目は以下の画像です。
斧を持っている血まみれの男性の画像です。実際にセーフサーチ検出を行った結果が以下となります。
項 目 | 説 明 |
アダルトコンテンツ | 可能性は低い |
なりすまし | 可能性は低い |
医療 | 可能性は低い |
暴力コンテンツ | 可能性は高い |
きわどい内容 | 可能性は低い |
暴力コンテンツが「可能性は高い」、なりすましが「可能性はある」、アダルトコンテンツが「可能性は非常に低い」、それ以外が「可能性は低い」という結果になりました。斧と血からは暴力が連想されるため、正しく検出ができています。
3. ラベル検出
ラベル検出とは画像内のエンティティについての情報から一般的な物体、場所、活動、動物の種類、商品などを識別する機能です。
ラベルを識別するレスポンスのパラメータは主に以下の2項目が挙げられます。
項 目 | 内 容 |
description | ラベルの説明 |
score |
ラベルの信頼スコア |
1枚の画像から該当する複数のラベルの説明が検出され、それに対して信頼スコアが出されます。
〈画像を用いた検証〉
それでは、実際に画像を用いて検証を行っていきます。
使用する画像は以下になります。
犬の画像です。実際にラベル検出を行った結果が以下となります。
ラベルの説明 |
ラベルの信頼スコア |
犬 | 0.9590094089508057 |
肉食動物 | 0.8822686076164246 |
犬種 | 0.8719052076339722 |
小鹿 | 0.8154658079147339 |
伴侶犬 | 0.8070036768913269 |
ひげ | 0.7935507893562317 |
鼻先 | 0.7507362961769104 |
働く動物 | 0.7213180661201477 |
快適 | 0.696085512638092 |
陸生動物 | 0.6787839531898499 |
様々なラベルが結果として出てきましたが、「犬」というラベルの信頼スコアが際立って高い数値となっています。よって正しくラベル検出が出来ていると判断できます。
まとめ
今回の記事では、Cloud Vision APIの基本的な機能や検証結果について解説しました。顔検出、セーフサーチ検出、ラベル検出を行いましたが、どれも正しく判断できていました。
Cloud Vision APIを用いることで不適切な画像にぼかしをいれたり、人の表情からイベントの満足度なども測れたりすると思います。用途は他にたくさんあるので、ぜひ記事を参考にしていただけると幸いです。