画像・音声処理

1分で分かる物体認識!画像生成との違いや仕組み・アルゴリズムを解説

物体認識は、AIに目を与えることができる画像認識技術の一種です。

  • 物体認識という言葉聞いたことがあるか、あまりわからない
  • 物体認識をAIはどのように行っているのだろう

本記事では近年、生成AIとして注目されている画像生成と画像認識の違いから紹介し、物体認識の仕組みやアルゴリズムについて解説します。


本ブログを運営しているTech Teacherは、
プログラミング家庭教師サービスを運営しています。
完全マンツーマン・フルオーダーメイド
あなたが必要な指導を提供します。

 物体認識とは?

AIは、機械に人のような判断を行わせる分野であり、人が目で見てさまざまなことを判断できるのと同じく、視覚情報に基づいて判断できる画像認識分野は、さまざまな応用が期待できます。自動運転や画像診断、工場の部品生産ラインにおける不良品検知などですでに実現されています。

画像認識は、画像を入力にして画像の内容を機械に認識させる技術であり、物体認識と物体検出に分けられます。物体認識は画像の種類を特定する画像分類タスクに利用できます。物体検出は画像分類に加えて分類対象の位置と範囲を特定できます。

本記事では、物体認識の技術について中心的に取り上げますが、物体認識と物体検出の違いについては、こちらの記事で解説しております。

機械学習を利用した画像認識とは?アルゴリズムや手法・事例を解説機械学習を使った画像認識について、具体例やアルゴリズムを交えて解説します。...

分類タスクでは、事前に決められた種類の分類しかできませんが、画像認識と自然言語処理を組み合わせた画像キャプショニングと呼ばれる技術では、画像を入力して画像に映るものを説明させることができます。

画像生成とどう違う?

近年、画像を扱うAIとして、自動で架空の鮮明な画像を生成できるように画像生成AIが注目されています。画像生成は、画像分類タスクとは異なり、特定の画像を出力できるよう確率分布を学習させるタスクになります。

画像分類では画像を分類できるよう線を引いて分けられるようAIを訓練しますが、画像生成では画像を生成するための分布をAIに学習させます。画像生成で得た分布から分類タスクに利用はできますが、その逆はできません。しかし、画像分類は、分布を学習させる必要がない分、学習コストは少なくて済みます。

画像分類は、一般的に画像とラベルのセットを用いて機械学習させるため、教師あり学習に含まれます。一方、画像生成は、大量の画像だけを用いて、画像を生成できる分布を学習させるため、教師なし学習になります。

物体認識にはCNNConvolutional Neural Network)やViTVision Transformer)と呼ばれる技術が用いられているのに対して、画像生成にはVAEVariational Auto Encoder)やGANGenerative Adversarial Network)などの技術が用いられています。これらは全く異なるモデル構造というわけではなく、画像生成モデル内部に画像の特徴抽出をするための畳み込み処理を用いる場合があります。

Transfomerの仕組みについてはこちらの記事で解説しております。

ChatGPTで話題!Transformerモデルをわかりやすく解説ChatGPTにより話題になったTransformer。優秀な機械学習手法とはわかるけど、いったいどういうこと?という方に向け、Transformerについて解説していきます。自然言語処理(NLP)の解説やTransformerモデルを用いた”感情分析”と”文章要約”も行います。...

物体認識では、まず入力画像の特徴抽出が行われ、その特徴量に基づいて分類が行われる流れとなっています。深層学習以前は、特徴抽出には人の手によって設計されたものを使い、機械学習手法により分類するという流れでした。現在は、特徴抽出と分類を最初から最後まで1つの深層学習手法で実行できます。

物体認識の仕組み

画像をどうAIに認識させる?

画像は、8ビットで表せる0~255の数値が各ピクセルにまとめられたデータです。特にカラー画像の場合、各ピクセルは赤、青、緑の3要素(RGB)の数値を持ちます。これはチャンネルと呼ばれています。そのため、カラー画像は、縦のピクセル数×横のピクセル数×チャンネル数の要素を持つことになります。

それではこの画像からどうやって特徴を抽出すればよいのでしょうか?

画像情報を1次元に並べて、通常の全結合型ニューラルネットワークに入力しても、画素間の相対的な位置関係は反映されません。また、画像サイズが大きいとパラメータも膨大になってしまうという問題があります。そこで、CNNと呼ばれる手法が用いられます。

CNNでは、画像を縦横そのまま入力し、畳み込みとプーリングと呼ばれる処理を繰り返して特徴抽出し、最後に全結合層で分類を行います。

畳み込みは、2次元の要素を持つフィルター(カーネル)を画像のピクセル方向に移動させながら、画像のピクセル値とかけ足し合わせて合計したものを特徴マップとして出力します。そのため、特徴マップの各数値は、画像とフィルターとの局所的な数値分布が一致する形状ほど大きくなります。

フィルターを画像全体に移動させながら畳み込むことで、特徴を抽出した2次元配列(特徴マップ)が出力されます。複数のフィルターを用いることで、複数の特徴抽出が可能となります。カラー画像の場合、画像は3次元(縦×横×チャネル)となるため、チャネル方向に増やした3次元のフィルターを用います。

畳み込み処理より画像のエッジや色の組み合わせなどの特徴抽出が可能です。フィルターの数値はニューラルネットワークの学習パラメータであり、識別がうまくいくような特徴抽出となるように訓練されます。

畳み込みの利点として、画像内で畳み込むフィルターのパラメータを共有することで、パラメータ数が少なく済むことが挙げられます。また、画像に映る内容物が少しずれても同じような数値を出力させることができます。

プーリングは、画像の各区画の最大値、または、平均値を抽出し、画像を小さくする処理です。前者は最大プーリング、後者は平均プーリングと呼ばれます。利点としては、入力サイズを小さくでき、入力がずれても出力が同じ値となるため、移動不変性が生まれます

VGGNetでは、サイズが3の小さなフィルターを繰り返す手法が用いられ、パラメータを少なくかつ精度が向上する方法が利用されました。

ResNetでは、層の入出力を合算して情報を伝達することで、百層を超えるCNN手法が発表され、さらに精度が向上しました。

これらのモデルは、PyTorchTensorFlowのフレームワークで事前学習済みモデルをインポートしてすぐに使うことができます。

PyTorchTensorFlowについては以下の記事で詳しく解説しています。

PyTorchとは?基礎を実際のコード、事例を交えて理解!PyTorchとは?ディープラーニングの基礎から理解する ディープラーニングの基礎を理解する前に、まずPyTorchとは何...
TensorFlowとは?初学者もコードと一緒に特徴を理解!この記事は機械学習のためのオープンソースライブラリであるTensorFlowの初学者向け完全ガイドです。「TensorFlowとは何か?」からサンプルコードや図を用いて基本から実践までをわかりやすく説明します。TensorFlowを学習し、新たにスキルアップを行ってみましょう。...

物体認識の説明性

AIに判断根拠を聞く?

層を深くしたニューラルネットワークによるタスクの精度が向上する一方、パラメータ数が増大する深層学習手法では、出力結果の説明が難しいという問題があります。深層学習モデルの判断根拠は、安全性や公平性が重要な分野へ社会実装する場合に重要な問題となります。

例えば、物体認識を用いてX線画像などから病気を診断する方法は、診断を高速化できるため、患者の早期処置が期待できる。しかし、なぜその疾患と判断したのか医師が説明できないというわけにはいきません。

近年、AIの判断精度が向上する中、このようなAIの判断基準を人が理解できるようにする説明可能AI(Explainable AI: XAI)の分野が重要となっています。画像認識で用いられる方法で有名なものにCAMClass Activation Mapping)という方法があります。

CAMは、出力で分類する際に、出力結果に関わる重みパラメータを使って、分類結果に大きく寄与した特徴量を可視化する方法です。CAMを使った応用例には、胸部X線の写真の疾患を分類するCheXNetがあり、肺炎の分類は、放射線科医を超える精度を発揮しました。

データサイエンスを学習するならTech Teacherで!

『Tech Teacher』3つの魅力

魅力1. オーダーメイドのカリキュラ

『Tech Teacher』では、決められたカリキュラムがなくオーダーメイドでカリキュラムを組んでいます。「質問だけしたい」「相談相手が欲しい」等のご要望も実現できます。

    魅力2. 担当教師によるマンツーマン指導

    Tech Teacherでは完全マンツーマン指導で目標達成までサポートします。
    東京大学を始めとする難関大学の理系学生・院生・博士の教師がが1対1で、丁寧に指導しています。
    そのため、理解できない箇所は何度も分かるまで説明を受けることができます。

    魅力3. 3,960円/30分で必要な分だけ受講

    Tech Teacherでは、授業を受けた分だけ後払いの「従量課金制」を採用しているので、必要な分だけ授業を受講することができます。また、初期費用は入会金22,000円のみです一般的なプログラミングスクールとは異なり、多額な初期費用がかからないため、気軽に学習を始めることができます。

    まとめ

    ・魅力1. 担当教師によるマンツーマン指導

    ・魅力2. オーダーメイドのカリキュラム

    ・魅力3. 3,960円/30分で必要な分だけ受講

    質問のみのお問い合わせも受け付けております。