Image Recognition
画像認識では、画像全体に付ける1つのラベルから、画像内のすべての物体、顔、文字まで、画像に何が含まれているかを識別します。仕組みと種類について解説します。
画像認識は、画像に何が含まれているか(物体、人、場所、テキスト、動作など)をソフトウェアで識別するための総称です。日常的な用法では、画像全体に「ゴールデンレトリバー」や「肺炎」などのラベルを付ける画像分類と同義です。研究分野では「視覚認識」は、画像の内容を識別する幅広いタスク群を指します。その例として、2010年から2017年まで開催されたImageNet大規模視覚認識チャレンジには、分類、位置特定、物体検出の各部門がありました。
画像認識の仕組み#
画像認識モデルは、ピクセルをコンパクトな表現に変換し、その表現を既知の情報と照合します。畳み込みニューラルネットワーク(CNN)またはビジョントランスフォーマー(ViT)であるバックボーンは、特徴を抽出します。浅いレイヤーではエッジやテクスチャを、深いレイヤーでは物体の部位や物体全体を捉え、特徴をプーリングして特徴ベクトル(埋め込み表現)にまとめます。その後の処理は、回答候補の定義方法によって異なります。
ImageNetの1,000クラスに属する128万枚のトレーニング画像など、ラベル付き画像を使った教師あり学習で分類ヘッドをトレーニングすると、固定クラスの中から最も確率の高いクラスを選択します。顔認識や商品認識では、埋め込み表現を保存済みのサンプル群と比較するため、再トレーニングなしで新しい人物や商品を追加できます。OpenAIのCLIPなどのゼロショットモデルは、画像とテキストを同じ空間に埋め込み、テキストプロンプトで表現できるあらゆるカテゴリを認識します。
ディープラーニング以前の認識システムでは、SIFTキーポイントや方向付き勾配ヒストグラムなどの設計済み特徴量を、サポートベクターマシンなどの分類器に入力していました。2012年、AlexNetはImageNetのトップ5エラー率を2位の26.2%から15.3%に下げ、それ以来、学習された特徴量が主流となっています。
画像認識の種類#
- 画像分類: 画像全体に1つのラベルを付けます。マルチラベル分類では複数のラベルを付けます。
- 物体検出: 各物体にラベルとバウンディングボックスを付けるため、犬が3匹写った写真から3件の結果が得られます。
- 顔認識: 顔の埋め込み表現を登録済みの顔と比較して、特定の人物を識別または検証します。
- 光学文字認識(OCR): 画像内の印刷文字や手書き文字を、機械可読な文字として読み取ります。
- 動作認識: 動画の各フレームを通じて、人が何をしているかを識別します。
YOLO26は最初の2種類に対応しています。-clsモデルは画像全体にImageNetの1,000クラスから1つのラベルを割り当て、検出モデルは各物体の名前と位置を特定します。次の例では、同じ写真に両方を実行します。
from ultralytics import YOLO
image = "https://ultralytics.com/images/bus.jpg"
# 画像レベルの認識: 画像全体に1つのラベルを付けます
classifier = YOLO("yolo26n-cls.pt")
results = classifier(image)
result = results[0]
print("Image label:", result.names[result.probs.top1])
# 物体レベルの認識: 検出した各物体にラベルを付けます
detector = YOLO("yolo26n.pt")
results = detector(image)
result = results[0]
print("Objects:", [result.names[int(c)] for c in result.boxes.cls])分類器は写真全体にImageNetのラベルを1つ返し、検出器は見つけた各物体にCOCOのラベルを返します。
実際のアプリケーション#
- 医用画像解析: モデルが胸部X線画像、皮膚の写真、網膜スキャンを正常と異常に分類し、臨床医が緊急性の高い症例を優先して確認できるようにします。
- 小売: 商品認識では、棚やレジにある商品を商品画像カタログと照合します。モデルのトレーニング後に追加された商品も対象です。
- 製造: ラインカメラで、不良部品や誤った部品、欠落した部品を包装前に認識します。
- アクセシビリティ: スクリーンリーダーやスマートフォンアプリが、視覚障害のある人や弱視の人に向けて写真を説明し、標識を音声で読み上げます。
固定ラベルを超える認識#
固定ラベルの分類器は、トレーニング時に使用したクラスだけを認識します。クラスを追加するには、ラベル付き画像を収集して再トレーニングする必要があります。画像とテキストのペアでトレーニングしたモデルはこの制限をなくし、ビジョン言語モデルはシーンの説明や内容に関する質問への回答にも対応します。インターネット上の4億組の画像とテキストでトレーニングしたCLIPは、ResNet-50のトレーニングに使われた128万枚のラベル付き画像を一切使わず、ゼロショットでImageNetにおけるオリジナルのResNet-50と同等の精度を達成しました。










