0794-70-8407
受付時間 / 9:00〜17:00(平日)
ディープラーニングによる物体検出と分類

ディープラーニングによる物体検出と分類

AI 2024.07.04

今回はディープラーニングを用いて6種類のトランプの検出と分類を行ったので、手法と結果について説明していきたいと思います

概要

AI(人工知能)とは

ディープラーニングの前提知識のAIについての説明

人工知能(Artificial Intelligence)とは、コンピュータに人間と同様の知能、認識能力を獲得させる技術や取り組みのことです

その中でも機械学習とは、特定のタスクを学習(データの特徴や法則を獲得すること)させることでコンピュータに所望する処理を実行させる枠組みの技術のことを指します

機械学習には3つの手法があります

①教師あり学習

学習データに入力値と正解値を用いて、対応関係を学習する学習方法

  • 人が判別可能、もしくはあらかじめ答えがわかっているが判別ルールを描きだすのが困難
  • 応用範囲が広く、高精度の処理を獲得しやすい
  • 正解の用意が必須

②教師無し学習

学習データに正解を与えず入力のみを使用する学習方法

  • 人には判別が難しい、もしくは数が膨大などの理由で正解を与えることが困難なときに利用
  • 学習データが入力値のみ
  • 精度向上には工夫が必要

③強化学習

試行錯誤を繰り返し、推移をふくめた最善を取得する学習方

  • その後の推移を考慮した方策を獲得できる
  • 1つ1つの方策に対する教師が不要
  • 学習時間が長い

ディープラーニングとは

ディープラーニング(深層学習)とは機械学習の一種であり、多層のニューラルネットワーク(人の脳の神経回路網をアルゴリズム化したもの)を用いて複雑なパターン認識やデータ解析を行う手法です

今回は、画像解析分野を中心に高い性能を発揮するディープラーニングについて、解説と実際に開発を行ったときの流れについて説明していきたいと思います

ディープラーニングには複数のモデルが存在しますが、今回取り組んだ2種類に絞り説明します

CNN(畳み込みニューラルネットワーク)

CNN は入力データを使用して学習済みの特徴を畳み込み、二次元の畳み込み層やプーリング層を使用するため、主に画像処理などを扱うことに適したアーキテクチャです

構造は畳み込み層とプーリング層という特徴的な層を持っています

畳み込み層

入力画像にフィルタをかけることで、数ピクセル範囲当たりの特徴(エッジや色の変化など)を抽出し、特徴マップを作成します

フィルタにはさまざまな種類があり、フィルタの種類を変更し、特徴マップをそれぞれを層として重ね合わせることで、畳み込み層では画像の情報を保持しつつ、特徴を抽出することができます

ディープラーニングのCNN構造の一つである畳み込み層の図

プーリング層

プーリングは、畳み込み層で得た特徴マップの画像サイズを、指定範囲内の代表値に集約することで、特徴マップの画像サイズを小さくします。

代表値を取得する処理は、範囲内の最大値を取得するMaxプーリングや平均値を取得するavgプーリングなどがあります

ディープラーニングの構造の一つであるプーリング層の図

全結合層

全結合層は、プーリング層で処理した特徴をすべて結合し、画像が「イヌ」「ネコ」など判別できるように1次元に出力します

転移学習

転移学習は機械学習の手法の一つであり、事前学習済みの別モデルを学習に適用する学習方法です
あらかじめ学習済みのモデルを使用するため、学習時間を軽減できます
また少ないサンプルデータでモデルを作成することができます

しかし、未開拓のものや学習済みモデルとの乖離が大きい場合、誤った分類を行う可能性が高くなるデメリットもあります

ディープラーニングのCNNに用いられる転移学習についての構造図

AI開発

ディープラーニングの進め方

今回は教師あり学習を使ったディープラーニングを行いました
データ収集、検出、分類の3つのステップで進めます

ディープラーニング(CNN)のステップ

データ収集

はじめに、正解モデルと学習モデルを生成するため、カメラの映像データをBAGファイル(一般的にデータセットやモデルの保存に用いるファイル形式)に保存します

その後、画像に変換します

ディープラーニング(CNN)のステップ1:画像取得

取得した画像をDetectron2の事前学習済みモデルを用い、画像からオブジェクトを自動でセグメント化します

ディープラーニング(CNN)の画像取得後のセグメンテーション処理

Detectron2

FacebookAIが開発したPyTorchベースの物体検出ライブラリで、物体検出・セグメンテーション・その他の視覚認識タスクのためのプラットフォームです

検出

次に、検出の流れは以下のとおりです

ディープラーニング(CNN)のステップ2の検出処理

<検出結果>NNCモデルはデータセット数を増やすことで誤検出を減らすことはできたが、誤検出は発生した
Detectron2では、転移学習を用いることで誤検出0で検出精度は100%でした

ディープラーニング(CNN)の検出結果

分類

トランプの色、形、種類ごとにクラスを分け、検出したデータが正しく分類されているかを判断する

分類パラメータを細かくすることは複雑で時間がかかるので、ResNet50を用いて色、形、種類を学習するようにモデルを訓練します

ディープラーニング(CNN)のステップ3の検出処理

ResNet50

畳み込み層の出力値に入力値を足し合わせる残差ブロック(Residual Block)の導入により、層を深くしても勾配消失(ニューラルネットワークの層が深くなると、誤差逆伝搬による学習が進まなくなる現象)が起きることを防ぎ、高い精度を実現したニューラルネットワークのモデルのことです

結果

全てのクラス分類を精度100%で分類し、一部の結果を以下に表示します

クラス分類の検出結果
スペードの9を検出
クラス分類の検出結果
スペードのAを検出
クラス分類の検出結果
スペードのJを検出
クラス分類の検出結果
ダイヤの10を検出
クラス分類の検出結果
ダイヤのJを検出
クラス分類の検出結果
ハートの3を検出

まとめ

Detectron2やResNet50を用いることで、正解データと入力データを与えるだけで検出、分類をディープラーニングで行うことができました

今回は検出と分類を別々で行いディープラーニングのテストを行ったが、今後の取り組みとして、1つのシステム内で検出と分類を行うシステムを目指します

iCOM技研の取り組み

iCOM技研はSIer事業を行っており、協働ロボットシステムの導入を行っています。弊社は、協働ロボットの販売からソフトウェア開発、ロボットスクールまで行っています

今回は協働ロボットシステムにAIを組み込むためのディープラーニングの開発を行いました今後はティーチングレス化された協働ロボットシステムを開発し、製造業の人材不足を解消する製品を生み出していく方針です。

基礎からわかる! 協働ロボットお役立ち
資料集

協働ロボット導入をお考えなら、まずはこちら。
初心者の方でも基礎からわかる3つの資料が手に入ります。

  • 導入事例・システム価格がわかる!協働ロボット導入事例BOOK
  • 知らないと損をする中小・中堅企業の工程自動化最前線
  • 協働ロボットの失敗しない比較ポイント12の秘訣
基礎からわかる!協働ロボットお役立ち資料集

お気軽にお問い合わせください