AIブログ

2022年11月に登場したChatGPTに代表されるように自然言語分野におけるAIの発展はめざましいが、画像処理分野におけるAI活用もまた例外ではない。例えば、以前は実用観点では難のあった画像生成分野では、第1回でも紹介したStable Diffusionの登場により高品質な画像を生成できるようになった。ここでは、代表的な画像処理タスクを整理し、これらのタスクに適用可能なオープンなモデルおよびデータセットを紹介する。

なお、本記事ではソースコード本体のライセンスについてのみ言及しており、学習済みモデル(重み)については多様なライセンスで提供されているため、個別に確認が必要な点は留意されたい。

代表的な画像処理タスク

① 物体検出(Object Detection)

物体検出は、人が目で物を見て認識するように、入力された画像に対して「どこに」「何が」あるかを検出するタスクである。画像処理分野で最も良く行われているタスクである。一般には、画像内に存在する複数の物体を矩形単位(バウンディングボックス、BBoxという)で位置を特定し、同時にどのクラス(カテゴリ)に属するのかを分類する。車、猫といったカテゴリに分類する類別タスクと、車種や猫の種類を特定する識別タスクに大別される。
【物体検出タスクでは一般的に矩形(BBox)でアノテーションを行い、検出を行う】
図:物体検出タスクでは一般的に矩形(BBox)でアノテーションを行い、検出を行う
出所:株式会社 三菱総合研究所

② セグメンテーション(Segmentation)

セグメンテーションは物体検出タスクのひとつであるが、矩形単位ではなくピクセル単位で行う点が異なる。同じカテゴリの物をひとまとまりにして区別しないセマンティックセグメンテーション、同じカテゴリであっても一つ一つ物体を区別して検出するインスタンスセグメンテーション、ピクセル単位でカテゴリ分類しつつ物体を個別に検出するパノプティックセグメンテーションなどがある。

セマンティックセグメンテーションは全ての領域を何らかのクラスに分類することが得意である。対して、インスタンスセグメンテーションは個別の物体を検出することはできるが、境界が曖昧な雲、空といった背景などを認識することが難しい。パノプティックセグメンテーションは、両セグメンテーションの特性を備えており、物体を検出しつつ、境界が曖昧な領域についても何らかのクラスに割り当てることができる。
【セマンティックセグメンテーションでは、同じ「馬」というクラスでアノテーションを行い、領域として検出する】
出所:株式会社 三菱総合研究所
【インスタンスセグメンテーションでは、2頭の馬を区別する】
出所:株式会社 三菱総合研究所

③ 画像分類(Image Classification)

入力された画像に「何が存在するか」を判断する目的で、画像全体からどのクラス(カテゴリ)に属するのかを分類するタスクである。例えば、手書き文字の認識では1文字1文字をクラス分類することで認識することが可能である。位置を特定するケースもあるが物体検出と異なり、画像を分類することが目的である。さらに、自然言語モデルと組み合わせることにより画像に何が描かれているかを説明する、画像キャプション生成(Image Captioning)タスクがある。
【画像からキャプションを生成させた例】
図:セマンティックセグメンテーションでは、同じ「馬」というクラスでアノテーションを行い、領域として検出する
出所:株式会社 三菱総合研究所

④ 異常検知(Anomaly Detection)

異常検知は画像に限ったタスクではないが、定常状態を学習させることにより、そこから外れるものを異常として検知する手法である。正常の定義が可能で、異常の教師数が極端に少なく、異常を異常として学習させることが難しい場合に主に採用される。
【欠点豆の検出例】
図:セマンティックセグメンテーションでは、同じ「馬」というクラスでアノテーションを行い、領域として検出する
出所:株式会社 三菱総合研究所

⑤ 画像生成(Image Generation)

指示に基づき、任意の画像を生成するタスクである。Stable Diffusionの登場により一般に広く知られるようになった。プロンプトと呼ばれるテキストから画像を生成するケース、元となる画像とプロンプトから画像を生成するケース(例えば線画への彩色タスク)が挙げられる。
【生成した画像の例】
生成した画像の例
出所:株式会社 三菱総合研究所

これらの代表的なタスク以外にも、動画像における行動検出といったタスクも存在する。

代表的なオープンモデル

  • ① 物体検出物体検出タスクでは、代表的なモデルとしてYOLO を紹介する。YOLOは、物体の位置とクラスを同時に検出するため速度と精度のバランスがよく、リアルタイムな検出タスクに多く利用されているモデルである。主にYOLOv3(GPL3.0ライセンス), YOLOv5(GPL3.0ライセンス), YOLOX(Apache2.0ライセンス)などが挙げられる。GPLライセンスのモデルを商用利用する際には注意が必要である。
  • (参考)
  • ② セグメンテーションセグメンテーションタスクでは、代表的なモデルとしてU-Net(MITライセンス)を紹介する。U-Netはセマンティックセグメンテーションモデルである。インスタンスセグメンテーションの代表的なモデルとしては、Mask R-CNN(MITライセンス)が挙げられる。名前の通り、CNN(Convolutional Neural Network)をベースとしたモデルで、バウンディングボックスの回帰とクラス分類を同時に行いつつ、セグメンテーションマップを生成する。
  • (参考)
  • ③ 画像分類画像分類では、代表的なモデルとしてResNet(Apache2.0ライセンス)を紹介する。ResNetは、深層学習において層の深さ方向への足がかりとなったモデルである。残差(Residual)ブロックを導入することで勾配の消失などを回避し、層を深くすることを可能とした。取り組むタスクやデータ量によってはそれほど深い層を必要としないこともあり、依然として最初に試すにはよいモデルである。
  • (参考)
  • ④ 異常検知異常検知ではAutoEncoder(AE)を紹介する。AEは、EncoderとDecoderを組み合わせることで、Encoderで入力画像を特徴量へと変換し、Decoderで特徴量から入力と同じ次元の出力を復元する。このとき、正常系を学習しているモデルであれば、正常な状態を復元できることが期待される。復元された出力と元の入力を比べ、復元されたと判断される場合には正常、復元不可能と判断される場合には異常として取り扱うことになる。特徴量を抽出し、特徴量に対して何らかの処理を行い、異常として分類するような活用も可能である。
    AEはシンプルなモデルであり、Tensorflow, PyTorch, Caffeといったディープラーニングライブラリを用いて実装することが多いため、参考リンクは割愛する。
  • ⑤ 画像生成画像生成では、Stable Diffusion(MITライセンス)を紹介する。これまでもGAN(敵対的生成ネットワーク)、VAE(Variational Auto Encoder)といった様々な手法が提案されてきていたが、GANは損失関数をモデル化できないため学習の収束に難しさがあり、VAEでは損失誤差を最小化するために生成画像がぼやけるなどの課題があった。Stable Diffusion(MITライセンス)は、元画像に繰り返しノイズを加えていくことで一様なノイズに変換し、再度ノイズ除去を行うことで元の画像を復元する過程を学習するモデルである。さらに、CLIPという、画像とテキストの関係性を評価するモデルを用いており、プロンプトと呼ばれるテキストを与えることで生成する画像をガイドすることができる。この扱いやすさから一般的なユーザーにも広く受け入れられているものと推測される。
  • (参考)

    ビジネス課題でのアプローチ例

    例1)製品検査における不良品の検知
    すでに多くの工場や製造ラインで活用されているアプローチ例ではあるが、不良品はサンプル数が少なく、不良品そのものを学習させることが困難なケースが多い。このため、異常検知タスクが用いられるケースがある。画像生成を用いて検知することも今後は考えられる。
    ネジ不良品のイメージ
    ネジ不良品のイメージ
    例2)セグメンテーションを用いたリアルタイムカメラ映像処理
    自動運転においては画像のみに頼らずLiDARのようなセンサーも必要となるが、ドライブレコーダーのように車載カメラでの用途が考えられる。車載カメラの場合は、危険を検知する目的が一般的なため、物体を区別するインスタンスセグメンテーションよりは、より単純なセマンティックセグメンテーションでリアルタイム性を重視するケースなどが考えられる。
    車載カメラのイメージ
    車載カメラのイメージ
    例3)ゲームにおける背景画像の自動生成
    ゲームシナリオのプロットを広げるためにChatGPTとの対話を活用するように、必要不可欠ではあるがそれほど重要ではない場所において画像生成を活用することで効率化を図ることができる。初期のプロトタイプ段階において生成画像を用いて何パターンか試すことでイメージを掴む目的でも利用可能である。
    ゲーム背景のイメージ
    ゲーム背景のイメージ

    代表的なオープンデータセット

    最後に、ここまでに紹介したオープンなモデルの学習にも使われており、広く知られているオープンなデータセットを紹介する。以下に挙げるオープンデータセットは数千から数十万の画像およびアノテーションを含んでおり、多くは研究および教育用途に公的に利用することができる。商用利用の際には各データセットのライセンスおよび利用規約を参照いただきたい。

    1. COCO
    2. ImageNet
    3. PASCAL VOC
    4. Open Images dataset

    合成データセットの事例として、ここではRare Planesを紹介する。衛星画像のように撮影が容易ではなく、数を確保することが難しいタスクにおいては、合成データセットを活用する場合がある。
    オープンなデータセットは日々作成されており、ここで紹介したものはほんの一部に過ぎない。前述の画像生成モデルを用いてデータセットを生成する活用も始まっている。
    【Rare Planesの画像例】
    出所:”RarePlanes: Synthetic Data Takes Flight“ Figure 1.より引用
    https://arxiv.org/abs/2006.02963

    (参考)

    まとめ

    典型的な画像処理タスクとそれらに対応する代表的なオープンなモデル並びにデータセットを紹介した。深層学習は日進月歩のため、常に最新のモデルが登場し続ける状況ではあるが、モデルを最新化しつづけることよりもデータの量と質を上げる方が性能に寄与する場合も十分にある点は留意されたい。また、実際の利用に際してはライセンスを確認し、用途に合わせて適切なモデルを採用する必要がある。学習や推論を動かす際にベンチマークとなるデータセットがあると評価などが行いやすいため、普段から使えるオープンなデータセットを用意しておきたい。

    次回は、画像生成により教師画像を生成した場合に物体検出タスクの精度への影響について記載する。

    筆者

    筆者 DX技術本部 武田 智博
    武田 智博
    株式会社三菱総合研究所
    DX技術本部

    三菱総合研究所 DX技術本部 シンクタンクDXグループ 主任研究員
    AI利活用を含む事業開発からシステム開発まで従事しており、特に設備や衛星などの画像を活用したAI実証等を手がける。技術を最大限活用する一方でユーザー価値を第一に考えている。人間中心設計専門家、認定スクラムプロフェッショナル。

    プロダクト
    マネージャー募集中

    関連サービス・
    ソリューション