2009年創業。埼玉県川越市一筋のIT企業です。
イー・レンジャー株式会社 電話
イー・レンジャー株式会社 > 【AI】物体検出能力の比較。ChatGPT4、Amazon Rekognition、YOLOv8

【AI】物体検出能力の比較。ChatGPT4、Amazon Rekognition、YOLOv8

最終更新日: 2024/02/13 4:12pm

カテゴリー: AI, Amazon Web Services, お知らせ, ソラコム, 先進技術, 画像認識, 監視カメラ

こんにちは。

小高です。

 

先週の2つのブログ

【AI】医療とAI。ChatGPT-4の画像認識能力。

【AI】ChatGPT-4の物体検出能力をYOLOv8と比較する

の続きです。

 

先のブログ(【AI】医療とAI。ChatGPT-4の画像認識能力)では、まず、ChatGPT4(モデル:gpt4-vision-preview)を使えば「画像について記述したり、要約したりすることが十分にできそう」であることを見ました。

例として、ChatGPT4に以下の画像を入力し「これに何が写っていますか?」と問い合わせたとき、次が回答されました。画像の要約として「ほぼ満点」と言っていいと思います。

この写真には道路の光景が写っています。左側には緑色の枠内に人と犬が見えます。彼らは歩道を歩いているようです。道路の中央には車が停まっており、右側には自転車に乗っている人がいます。背景には建物がいくつか見え、少し雪が残っていることがわかります。晴れた日の昼間で、影がくっきりとしています。”

図1:実験につかった画像

 

次のブログ(【AI】ChatGPT-4の物体検出能力をYOLOv8と比較する)では、物体検出の有名モデル「YOLO」を紹介して、上の画像に写っている物体を検出してみました。

YOLOv8による物体検出

図2: YOLOv8による物体検出。

YOLOv8は、手元のLinux機にインストールして利用しました。物体検出に使用したのはモデルyolov8n.pt(軽量なモデル)です。

検出対象とするクラス(物体の分類)は{0: 人, 1: 自転車, 2: 自動車, 3: オートバイ, 5: バス, 6: トラック, 7: 鳥, 8: 猫, 9: 犬}の9種類に限定しました。

結果、上の画像に示されるように

人 : 3名

車:1台

が検出されました。人の数違い(2名が正解)、自転車の未検出、犬の未検出という誤りがありました。

 

さて。前置きが長くなってしまいました。

今日は、アマゾン・ウェブ・サービス(AWS)の物体検出サービス「Amazon Rekognition(リコグニション)」を使って、先の画像から物体を検出してみます。

AWSの公式サイトでも紹介されている通り、Amazon Rekognitionはいくつかの画像認識タスクを集めたサービスです。

YOLOのように物体を検出するのは「Detect Objectsサービス」です。

(注記)Amazon Rekognitionでは、Detect Labels(ラベル検出)とDetect Objects(物体検出)が同じ意味で使われています。ラベルとは、物体につけられた名札のことです。

 

まずは結論から。先の画像からAmazon Rekognitionによって物体を検出した結果です。

Object Detection by Amazon Rekognition

図3: Amazon Rekognitionによる物体検出

ここで一番面白いのは「車が認識されずにナンバープレートだけ認識されたこと」です。

犬が認識されなかったこと、人が誤認識されたのはYOLOと同じですね(誤認識している箇所が違うのは興味深い。画面中央の「信頼度55の誤認識」は心霊写真風に人間に似ていて、思わず「あれ、見落としてたかな」と思ったくらいです)

 

Amazon Rekognitionはクラウドサービスですから「この画像に何が写っているか教えてよ」とリクエストすれば結果を返してくれます。

具体的には、分析したい画像をAmazon S3に入れ、その画像URLを指定してAmazon Rekognitionに分析を依頼します。分析の結果はJSON形式で戻ってきます。

このJSONには、検出されたもの(ラベル)、写っている範囲(境界線、バウンディングボックス)、信頼度(Confident Score)などが含まれています。

検出結果を得るだけであれば、プログラムを作る必要はないのですが、検出結果を見るには(上の画像のように)境界線や信頼度を描き込みたいところです。今回の実験では、簡単なpythonプログラムを作成して画像にバウンティングボックス、ラベル、信頼度を描きこんでいます。下にその処理フローを示しておきました。

 

use Amazon Rekognition by python

図4: Pythonを使ったAmazon Rekognitionによる物体検出の処理フロー

 

ChatGPT4とYOLOv8との違いを一番感じたのは、以下の画像でした。

Object detenction by amazon Rekognition

図5: Amazon Rekognitionによる物体検出(その2)

 

「Moving Van」の「Moving」がそれです。

静止画を入力したのだから、自動車が止まってみえてもある意味普通、と思います。ChatGPT4も

道路の中央には車が停まっており

と回答しています。

 

自動車が走っていると人間が思うのは、「車が車道の真ん中にある」からです。

Amazon Rekognitionによる分析結果をよく見ると「Outdoor」といったラベルがありました。Outdoorは「この写真に何が写っているのか」という問いの回答ではないですよね。

「どこで写したか」を表しています。

(推測の範囲ですが)Amazon Rekognitionは、画像に写っているものに加えて、画像のメタデータ(どこで写したか、いつ写したかといったなど)を学習しているかもしれません。

 

以下にAmazon Rekognitionの料金表へのリンクを掲載しておきます。無料枠も設定されていますので、遊んでみられてはいかがでしょうか。

 

 

 

←「」前の記事へ   次の記事へ「」→