ディープラーニングによるオブジェクト検出の実装

HALCONのディープラーニング機能である 「画像分類」「オブジェクト検出」「セグメンテーション」について、サンプルプログラムをベースに3回にわたって紹介していくシリーズの第2回です。
本号では「オブジェクト検出」のサンプルプログラムを紹介します。

第1回(Vol.323号)その1:画像分類(Classification)
第2回(本号)その2:オブジェクト検出(Object Detection)

imgLE01

【オブジェクト検出】 は、画像中から目的の対象物を検出します。物体の位置検出やカウント、欠陥検出などに適用できます。従来のマッチングや物体識別の手法では困難であった対象でも柔軟な検出が可能であり、物体と物体の重なりにも対応できます。

本号の最後で、サンプルプログラムのダウンロードが可能です。
是非HALCON Trial Kitをインストールし、お客様ご自身の画像を使って、ディープラーニングの性能をご確認ください。

まずは、【HALCON Trial Kit】にご登録ください

imgLE02

※ HALCON Trial Kitは、期間限定の評価ライセンスにより、HALCONを実際に扱いながらHALCONの特長的な機能を総合的に無償で体験・学習できる体験キットです。
3つのディープラーニング機能や多数の機能を紹介する、わかりやすいコメント付きのサンプルプログラム(適用事例集)があります。ぜひご確認ください。


オブジェクト検出サンプルプログラムの活用手順

オブジェクト検出のサンプルプログラムは、3つのプログラムで構成されています。
各プログラムについて手順に沿ってご紹介していきます。
【1】 Object Detection_Annotaion.hdev
学習用ラベルデータを作成するプログラムです。マウス操作でデータを作成可能です。
【2】 Object Detection_Training.hdev
作成したラベルデータを用いて、学習・評価を行うプログラムです。
【3】 Object Detection_Inference.hdev
学習したネットワークを使用して、オブジェクト検出を実行するプログラムです。

imgLE03

前準備:HALCONディープラーニングに必要な環境を用意 HALCONディープラーニングでは、学習にはGPUを、推論にはGPUあるいはCPUを使用します。今回紹介するHDevelopサンプルプログラムでは、学習も行いますので、GPUの準備をお願いします。

■ HALCON Trial Kit のご登録案内に従ってHALCON18,.11をインストール
・HALCON 18.11 (Steady あるいは Progress) をインストール
・HALCON 18.11 ディープラーニング用画像をインストール

■ HALCONディープラーニングのための環境のセットアップ ・GPUをセットアップ
・CUDA10対応GPUグラフィックスドライバをインストール
※前準備でご不明な点があれば、リンクスサポート(support@linx.jp)にご連絡ください。

imgLE04

手順1:学習のためのラベルデータを作成
【オブジェクト検出】するためには、学習画像と検出する対象を囲った矩形情報(ラベルデータ)が必要です。
まずは、学習させる画像を【Training Images】 フォルダに格納してください。

imgLE05

続いて、【1. Object Detection_Annotation.hdev】を起動して、学習するクラスを定義します。
以下のプログラム部分を書き換えてください。以下の例では、Aクラス、Bクラス、Cクラス、…というクラスを生成することを意味しています。検出したい対象毎にクラスを用意します。書き換えが終わったら保存して一度プログラムを閉じます。

imgLE06

画像の準備と、学習させるクラスを決定できました。

【1. Object Detection_Annotation.hdev】 を使って、学習のためのラベルデータを作成していきます。プログラムを起動し、F5ボタン(連続実行)を押し、実行してください。
【Training Images】 フォルダに格納された画像が読み込まれ、右上に表示される案内に従って、作業を進めてください。

imgLE07

imgLE08

Deep Learning Tool 登場!!
MVTec社が提供するディープラーニングを効率的に活用するためのツールです。
継続的に機能拡張を行っていきます。バージョン 0.1 では、【オブジェクト検出】用のラベルデータを簡単に作成できます。お試しください。

imgLE09

■ Deep Learning Tool のダウンロードはこちら

手順2:学習
学習のためのデータセットの準備ができたら、次に学習を実行します。
【2. Object Detection_Training.hdev】 を起動し、F5ボタン(連続実行)を押し、実行してください。
学習が始まると、グラフィックスウィンドウに学習の経過が表示されます。

imgLE10

手順3:バリデーション(学習結果の検証)
学習が終了すると、バリデーションデータに対する分類の内訳が表示されます。
学習結果の精度を確認してください。

imgLE11

imgLE12

手順4:パラメータ調整
学習に関して、HALCONでは以下の学習パラメータを調整できます。

●バッチサイズ(Batch Size): 1回の学習で使用する画像枚数で、GPUメモリサイズに応じて調整
●学習率(Learning Rate): 学習の強制力を調整
●モメンタム(Momentum): 勾配降下の経路を滑らかにする度合いを調整
●エポック数(Number of Epochs): 全ての学習データを繰り返し実行する回数
●正則化(Weight Priority): 過学習を抑制するパラメータ
●フィーチャーピラミッドレベル(Feature Pyramid Level): 抽出する特徴の大まかなサイズを設定
●サブスケール(SubScale): 学習する矩形に対するサイズの許容値を調整
●アスペクト比(Aspect Ratios): 検出対象物のアスペクト比を調整

【2. Object Detection_Training.hdev】 の25 - 57行目を参照し、適宜、学習パラメータの調整行ってください。
※パラメータ調整でご不明な点があれば、リンクスサポート(support@linx.jp)にご連絡ください。

imgLE13

手順5:オブジェクト検出の実行
【3. Object Detection_Inference.hdev】 起動して、テスト画像に対してオブジェクト検出を実行します。

実行の前に、設定を行います。

・8行目で、テスト画像へのパスを設定してください
・15~18行目で、オブジェクト検出実行用パラメータを設定してください
・21行目で、CPU / GPU 実行の切り替えを適宜行ってください

imgLE14

imgLE15

F5ボタン(連続実行)を押し、実行してください。
結果が以下のように表示されます。

imgLE16


画像分類サンプルプログラムのダウンロード

今回ご紹介した 画像分類のサンプルプログラムは以下よりダウンロードが可能です。
実際にご自身の環境・データを使って、HALCONディープラーニング機能をご活用ください。
また、ご不明な点・ご質問は リンクスサポート(support@linx.jp)にお問い合わせください。

サンプルプログラムダウンロードはこちら

※サンプルプログラムを実行するには、HALCON Progress 開発ライセンス あるいは HALCON 18.11 Steady (ディープラーニング機能あり) 開発ライセンス が必要です。
HALCON 18.11 Steady (ディープラーニング機能なし) 開発ライセンスでは動作させることができません。この機会にHALCONディープラーニング機能の評価をご希望の方は、HALCON営業担当(sales_halcon@linx.jp)にお問い合わせいただくか、冒頭でご紹介した【HALCON Trial Kit】(https://iiot.linx.jp/l/536772/2020-05-21/ph28z3)にご登録ください。


毎月開催 HALCONディープラーニングトレーニング

ディープラーニングトレーニングを東京・大阪で毎月開催しております。
HALCONディープラーニングの使用方法や各種事例なども紹介しており、ディープラーニングをご検討いただいている方や適用先をお考えの方など、幅広い方が受講されています。
是非ご参加ください。

HALCONディープラーニングトレーニング
開催場所:リンクスオフィス(東京、大阪)
日程:6月26日(水)、7月19日(金)
時間:13時半~17時
お申込みはこちら


imgLE12

※LINX Express 配信の中止・アドレスの変更をご希望の方は、お手数ですがこちらよりお問い合わせください。