📖

AI環境の設定手順 Part_III : 独自データの学習 (Windows 10編)

2022/08/18に公開

0. 記事の内容

群馬県産業技術センターではエッジコンピュータを用いたAI技術による物体検出の検討を行い成果を報告書にまとめ、公開 [pdfファイル: 2,594kB] しています。そして、さらにその内容を広く県内企業の方にも活用できるようにソフトウェアの設定をはじめとした環境設定から動作確認までの一連の操作を手順書としてまとめました。

ここでは、その手順書の概要を示し、より具体的な手順書の電子ファイルにつきましては群馬産業技術センター デジタルソリューションラボ に問い合わせ [外部リンク] 頂ければと思います。

1. 目的

本手順書のPart Iでは、「AI環境の設定手順書 --Part I 物体検出の入門」として、近年、成果が活用されているAI技術をNVIDIA社の高機能なエッジコンピュータJetson Xavier NXに物体検出として高い検出率をもつYOLO v3を導入し、PythonプログラムによりUSBに接続されたカメラからの映像の取り込みと物体検出の手順を示しました。
また、Part IIでは「独自データの学習 (Jetson Xavier NX編)」として、独自データに対してもYOLO v3による物体検出ができるように、VoTTによる学習用の画像データの準備とkeras-yolo3による学習済みモデルの作成、および物体検出の確認の手順を示しました。

このPart IIIでは、Part I、IIに続き、Windows 10パソコンを用いて独自の画像データによるYOLO v3の学習ができるように、Part IIに対応してVoTTによる学習用の画像データの準備とkeras-yolo3による学習済みモデルの作成、および物体検出の確認の手順を示します。
また、Part IIIは広く普及しているWindowsパソコンを利用して、物体検出のシステムの構築を分担して対応したり、ハイスペックなパソコンで高速な処理または一般的なスペックのもので長時間の稼働で対応したりするなど、中小企業の状況に合わせて導入し易い手順を示すことで、AI技術の導入やAI技術を利用した製品の開発など、具体的に企業の技術力の高度化に寄与することを目的としています。

2. 適用範囲

本手順書で使用する主要な機器等の構成を以下に示します。

パーソナルコンピュータ   : Intel(R) Core(TM) i7-4800T CPU @ 2.70GHz 実装RAM12GB
                     : GPUNVIDIAGeForce GXT 770M (3GB、960コア)
                        【本文ではGPUを使用しません】
基本ソフト(OS)         : Windows 10 Pro (64-bit)
プログラミング          : Python 3.6.8
フレームワーク          : Tensorflow 1.6.0、またはTensorflow-gpu 1.6.0
物体検出AIモデル      : Keras版 YOLO v3 (Keras 2.1.5)

NVIDIA社のGPUの設定されたWindowsパソコンにより、学習や物体検出を高速に行う場合は、5章A-1節のTensorflowのインストール手順を付録Aに示すものに置き換えて設定する必要がありますが、GPUの利用による他の部分の変更はありません。

(参考) GPUに搭載のメモリについて、物体検出は8GB以下でも可能ですが、独自データの学習を行う場合は8GB以上が推奨されています。

(注意) 以降の手順ではソフトウェアの導入等が含まれいます。新規のパソコンに導入する場合を除いて、すでに導入済みのソフトウェアとの干渉により、これまで動作していたソフトウェアに不具合の発生することがあるかもしれませんので、利用するパソコンの準備には十分注意する必要があります。
可能ならば、ハードディスクのバックアップを作成したり、ハードディスクのクローンを作成するなど、 本手順書の確認を行った後に、元の状態に戻せるように対応しておくことをお薦めします。

3. 教師画像ファイルの準備

A. Pythonの環境設定

収集した画像ファイルの編集等に利用するPythonのプログラムの実行環境の設定手順を示します。

PythonのインストーラはPythonの公式ホームページからダウンロードできます。本手順書では、物体検出を行う環境で利用するTensorflowとの関係からPythonのバージョン3.6.8をWebブラウザを利用してダウンロード、インストール、コマンド入力による環境の確認の手順を示します。


Python HP


Python Installer


Python Version

B. MVTec-ad

Deep Learningなどで利用できる画像は、インターネット等を利用して様々なものを取得すことができますが、本手順書ではPart IIと同様にMVTec Software社のホームページに公開されている非商用の目的で利用可能な工業製品の外観画像を集めたデータを利用します。

B-1. 作業フォルダ

画像ファイルの保存先とファイルの加工等を行うためのフォルダを準備します。

B-2. 画像ファイルのダウンロード

MVTec Software社は画像ファイルをFTPサーバーにより提供しています。
ここでは、正常なネジや不良のネジの画像ファイルのまとめられたものをダウンロードします。
Windows 10に実装されているWebブラウザのInternet Explorerによりダウンロードを行います。Microsoft Edgeを利用する場合は、Internet Explorer モードに設定する必要があります。Webブラウザでダウンロードができない場合は、匿名FTPなどによりダウンロードすることになります。


MVTec Software HP

B-3. 圧縮ファイルの解凍

ダウンロードしたファイルはzip形式で圧縮されているので、必要に応じて解凍用にオープンソースのファイルアーカイバである7-Zipをインストールし、ファイルを解凍する手順を示します。


7-Zip HP

C. ファイル名の変更

解凍したファイルは、正常なネジや不良のネジの画像ファイルが種類ごとにフォルダに分かれて保存されています。また、各フォルダのファイルは000から続く連番でファイル名が設定されているため、画像を1つのフォルダにまとめるとファイル名が重複してしまいます。本手順書では、正常なものと5種類の不良なネジの画像を教師画像として学習を行うため、事前に各フォルダのファイルを区別できるようにファイル名を変更する手順を示します。

C-1. 変更プログラム

コマンド入力によりファイル名を変更するPythonプログラムの作成手順について示します。
「メモ帳」により指定された拡張子のファイルの先頭に指定した文字列を設定するプログラムを作成します。


ファイル名変更 Pythonプログラム

C-2. ファイルの取りまとめ

ファイル名の修正された正常なものと5種類の不良なネジの画像を各20個ずつ取り出し、合計120個の画像ファイルを一つのフォルダにまとめて、YOLO v3での学習用の画像を準備します。


学習用画像ファイル

D. ファイルサイズと形式の変更

YOLO v3での学習に用いる画像ファイルは、縦横のサイズが32 pixelの倍数の正方形のJPEG画像です。一方、MVTec Software社よりダウンロードした画像ファイルのscrewは、1024×1024 pixelのPNG画像であるため、サイズとファイル形式を変換する必要があります。

D-1. プログラムのダウンロード

本手順書ではインターネットにアップロードされているPythonのプログラムを利用して変換を行います。また、そのサイトには、以後の手順で利用する他のプログラムもあるため、表示のフォルダ全体をダウンロードと解凍の手順を示します。

D-2. 画像ファイルの変換

ダウンロードしたプログラムを実行してフォルダから画像ファイルを読込み、別のフォルダに指定されたサイズのJPEG形式のファイルに変換して保存する手順を示します。ここでは、256x256 pixelのJPEG画像のファイルに変換します。


画像ファイルの変換

4. 教師画像ファイルへのラベル付け

収集した画像を教師画像としてYOLO v3で学習させるためには、画像ファイル内の対象物の位置とそのラベルの割当てを行う必要があります。
あるデータに対して関連する情報(メタデータ)を注釈として付与することをアノテーションと言います。ここではアノテーションツールとしてMicrosoft社が開発した無料でオープンソースの画像注釈およびラベリング用のツールであるVoTT(Visual Object Tagging Tool)を利用します。

A. VoTTの環境設定

VoTTのインストーラはGitHubに公開されているので、Webブラウザを起動してダウンロードし、インストールする手順を示します。


VoTT HP


VoTT 起動画面

B. 作業フォルダ

画像ファイルの準備等を含め、フォルダの階層が複雑になっていますので、VoTTによるアノテーションの準備としてアノテーションの結果等を保存するフォルダを作成を通じて、全体のフォルダの階層を概観します。


フォルダ階層

C. アノテーション

C-1. VoTTの設定

VoTTを起動して、アノテーションを行う前の準備として必要な設定の手順を示します。
設定は、VoTTの起動画面の左側にあるアイコンの内容に沿って順番に行います。


VoTT Setting

C-2. アノテーションの実行

(a) タグの設定

VoTTに取込まれた画像に対して、割当てるタグ名の設定をTags Editorにより行う方法を示します。
本手順書では3章でMVTec-adにより取得したネジの良品と5種類の不良品の画像を扱いますので、6種類のタグを設定します。

(b) アノテーション

画像内の物体の位置とタグの対応を矩形の描画ツールを利用して行う手順を示します。
実際には、教師画像として設定していない画像とあまりにもかけ離れた画像は検出できませんので、各タグ名に対して多くのパターンの画像を準備する必要があます。


タグ付け


検出位置とタグ

C-3. 結果の保存と出力

アノテーションの結果をYOLO v3で学習するのに必要なデータを得るために結果をExportする必要があります。


結果の出力先

5. Keras-yolo3での学習

A. Kerasの環境設定

VoTTによりアノテーションを行ったデータに対し、YOLO v3で利用できるように環境の設定を行う手順を示します。

A-1. Tensorflowのインストール

本手順書のPart Iで設定したkeras-yolo3の環境を構築するためにTensorflowやkeras等のインストールを行います。

(注意) NVIDIA社のGPUを利用した環境の設定を行う場合は、このA-1節の手順を付録Aに示すものに置き換える必要があります。

(a) パッケージの設定ファイル

第3章D-1節でダウンロードしたファイルの中のインストールするパッケージを記述した設定ファイルを修正し、インストールを行います。

追加:
	opencv-python==4.0.1.24
	opencv-contrib-python==4.0.1.24
	pandas==0.25.3


パッケージの設定

(b) インストールの確認

パッケージのインストールが正しく行われたかPythonのプログラムを実行して確認します。
「メモ帳」からBessel関数を表示するPythonのプログラムを入力して、「コマンドプロンプト」を起動し、コマンドを入力してグラフが正しく表示されることを確認します。


Bessel Function

A-2 keras-yolo3の環境設定

本手順書のPart Iで設定したkeras-yolo3の環境を構築します。ここでは、GitHubに公開されているkeras-yolo3のダウンロードとファイルの解凍の手順を示します。


GitHub keras-yolo3

A-3 環境の確認

設定したkeras-yolo3の環境がPart Ⅰで設定したものと同様に動作するか確認します。
ここでは、Part Ⅰと同様にコマンドを実行して画像と動画の物体検出を行います。

(a) msvcp140.dllの設定

インストールしたTensorflowは、msvcp140.dllを必要としますが、A-1節の手順ではうまく設定されていませんので、msvcp140.dllを設定する手順を示します。

(b) 学習済みのweightsファイル

Part Ⅰで利用したkeras-yolo3の物体検出の確認用にインターネット上に公開されている学習済みのweightsファイルをダウンロードします。

(c) weightsファイルの変換

ダウンロードしたyolov3.weightsをA-2節でダウンロードしたkeras-yolo3のフォルダに含まれるファイルを用いて利用できるように変換を行います。

(d) yolo_video.pyファイルの修正

実行時にプログラムからの警告やエラーを非表示の設定に対応するために、プログラムの修正を行います。

(e) 画像、動画の準備

物体検出の確認用の画像と動画として、Part Ⅰで用いたもの、または、インターネット上に公開されているものをWebブラウザでダウンロードしたものを準備します。

(f) 物体検出

Part Ⅰと同様にコマンドを入力して正しく物体検出が行われることを確認します。


画像の物体検出


動画の物体検出

B. 学習に必要なファイルの準備

B-1. 作業フォルダ

VoTTによりアノテーションを行った結果の出力をkeras-yolo3で利用できるように必要なファイルのコピーと設定の手順を示します。


YOLO 学習用フォルダ

B-2. 学習用ファイル

keras-yolo3で学習するときに必要なtrain.txt、test.txt、val.txtのファイルを作成します。ここでは、3章D-1節でダウンロードしたファイルを用いてtrain.txt、test.txt、val.txtのファイルの作成手順を示します。
また、train.txtに記述の画像ファイルは学習に用いられる教師画像で、そのモデルに対しval.txtに記述の画像ファイルで検証を行います。test.txtは学習に用いないテスト用の画像ファイルです。但し、YOLO V3ではtrain.txtの画像ファイルのみを利用し、自動で交差検証を行うために学習用と検証用の画像ファイルを分割しているようです。

B-3. VoTTのアノテーションファイルの変換

B-2節で出力されたtrain.txt、test.txt、val.txtをkeras-yolo3での学習用ファイルに変換する手順を示します。
変換プログラムは3章D-1節でダウンロードしたものを利用し、アノテーションで設定したタグ名を設定します。

classes = ["Good", "Front", "Head", "Neck", "Side", "Top"]


クラス名の設定

(注意) 出力された2007_*.txtファイルの内容は、アノテーションで設定したJPEGファイルのファイル名と設定した矩形の座標とタグ名の番号等です。そのため、学習する前にこれらのフォルダやファイルの移動、名前の変更等を行うと学習時にエラーが発生するので注意が必要です。

C. 学習の実行

C-1. train.pyの修正

B-3節で出力されたファイルを用いて学習を行い、keras-yolo3で利用可能な学習済みモデルのファイル(.h5)を作成する手順を示します。
学習プログラムは3章D-1節でダウンロードしたものを用い、以下のように設定を内容修正します。

annotation_path   : voc_annotation.pyで出力された2007_train.txtを設定する。
log_dir           : 結果のファイル(.h5)の出力先のフォルダを設定する。
classes_path      : voc_annotation.pyで出力されたvoc_classes.txtを設定する。
anchors_path      : デフォルトで設定のyolo_anchors.txtを確認する。
batch_size = 8    : batch_sizeは、一度に実行するデータ数の設定です。
                       ハードウェアのメモリ容量が少ないとプログラムの実行中にエラーが
                       発生するため、状況により1684などに調整する必要があります。

また、学習では事前に学習を行ったモデルのweightsファイルが必要となります。
ここではweightsファイルはA-2節で物体検出の確認で利用したものを利用します。

C-2. 実行

C-1節で修正したプログラムを実行する手順を示します。
本手順書では、batchサイズを8として、1回の計算につき519個の画像ファイルで学習を行い、57個の画像ファイルで評価を行っています。そして、この学習と評価の画像ファイルの数の割合を保って、Stage 1(予備学習)では、1から50回を行い、Stage 2(全学習)では、51から100回の計算で交差検証が繰り返されます。このとき、毎回の学習によるlossと評価によるval_lossの値が小さくなり学習が進んで行き、learning rateが設定値以下となるか、100回実施したところで終了します。


YOLO 学習

GPUを用いない場合の概略の学習時間は28時間程度でした。ちなみに、手順書Part IのJetson Xavier NX(15W 6Core)では3時間程度でした。

150回   :  512sec/Epoch  =>7時間
51100回 : 1472sec/Epoch  =>20時間30

結果は設定のフォルダに、次の3種類の学習済みモデルのファイル(.h5)が出力されます。

ep***-loss*-val_loss*.h5	: 繰返しでベストなlossとなったときのもの
train_weights_stage_1.h5Stage_1(50回の繰返し)の終了時のもの
train_weights_final.h5100回の繰返しの終了時の最終のもの

6. 学習済みモデルの動作確認

A. 学習環境での実行

5章で学習したkeras-yolo3の学習済みモデルを利用して、物体検出の確認を行います。

A-1. 評価画像、教師画像

学習済みモデルによるkeras-yolo3の物体検出を行う画像ファイルのサイズは教師画像と同じ256×256 pixelでなくてもよいが、JPEG形式のファイルである必要があります。

A-2. yolo.py の修正

keras-yolo3での物体検出は5章A-2節で確認した手順と同様に行うことができます。
但し、以下の設定内容を学習済みモデルのファイルを設定ファイルyolo.pyに反映する必要があります。

"model_path"学習済みモデルの結果ファイル(.h5)を設定する
"anchors_path"      : デフォルトで設定のyolo_anchors.txtを確認する
"classes_path"      : voc_annotation.pyで出力されたvoc_classes.txtを設定する
"model_image_size"  :  教師画像のファイルのpixelの値(256, 256)を設定する

A-3. 物体検出の実行

物体検出を5章A-3節の手順と同様に行います。
画像ファイルの入力要求に対しては、フォルダ名を含めて設定します。
物体検出では、タグ名とその確率が「Terminal」と検出画面に表示されます。本手順書の場合、Front、Side、Topなどの区別が難しいようです。


YOLO 物体検出

また、MP4形式の動画ファイルによる物体検出も同様に実行できます。
一方、本手順書のPart Ⅰで行ったUSBカメラから取込まれた動画に対して物体検出を行うときは、次の6章B節の手順により、ファイルをPart Ⅰの7章 実施例で構成した適切なフォルダにコピーして必要な設定を行うことで可能です。

B. 別の環境での実行

5章で学習したkeras-yolo3の学習済みモデルを利用して、別のフォルダや別のコンピュータ、ボードマイコン等のkeras-yolo3の環境で物体検出を行うときの手順を示します。
但し、別の環境でもkeras-yolo3の実行が可能なことを事前に確認しておく必要があります。

B-1. 必要なファイル

A節でkeras-yolo3の学習済みモデルを利用して物体検出を行ったときの設定から、実行に必要なファイルはyolo.pyで設定を行った以下のファイルであることが分かります。

trained_weights_final.h5    :   学習済みファイル(.h5)
voc_classes.txt             :   タグ名の記載されたファイル

これらのファイルを別の環境の適切なフォルダにコピーします。

B-2. yolo_video.py の修正

B-1節でコピーしたファイルの場所に従ってA-2節と同様にpolo.pyの修正を行った後、polo_video.pyを実行することにより、学習済みモデルを用いたkeras-yolo3の物体検出を行うことができます。

7. まとめ

本手順書では、Part IIと同様に物体検出のAIモデルのYOLO v3をユーザが独自に準備した画像に対しても適用できるように学習モデルの構成をWindows 10 パソコンを利用して行う場合の手順を示しました。
内容はJetson Xavier NXを用いたPart IIの場合と同様な構成とし、それぞれで異なる部分を書換えたり、追加したりしました。

それにより、Part IIで対象としたJetson Xavier NXでのJetPackやPC-UnixのUbuntu 18.04 LTSなどでの学習モデルとPart IIIで対象としたWindows 10による学習モデルとで手順の対応を明確にすると供に、必要なファイルの交換等の対応関係も明確にし、作業の分担の目安を提供しました。

また、Part IIIでは学習モデルの構成を目的としたため、USBカメラによる画像や動画の取込み等については触れていません。しかし、書籍やインターネット等にある情報を参考にすることで、Part Ⅰに記載の内容を構成することは可能です。そのことが本手順書の利用者や企業の技術力の向上の端緒となればと思います。

付録 A. GPU環境の設定

本手順書で物体検出に利用しているTensorflowは、CPU版とGPU版があります。但し、バージョン1.15からはCPU版とGPU版が統合されファイルの区別はなくなっています。
ここではNVIDIA社のGPU利用したグラフィックスボードを搭載したWindowsパソコン等で、GPUに対応した設定を行うことでTensorflowを利用した物体検出の学習や実行を高速に行うための設定手順を示します。

A. 設定の準備

TensorflowのGPU版を動作させるためには、Python、Cコンパイラ、NVIDIA社のCUDA(Compute Unified Device Architecture)やcuDNN(CUDA Deep Learning Neural Network library)を必要とします。ここで、利用するTensorflowのバージョンごとにそれらのバージョンも指定されていますので注意が必要です。

本手順書ではTensorflow 1.6.0を利用しますので、以下のバージョンの対応関係となります。

tensorflow-gpu  : 1.6.0
Python2.7または3.33.6
C-CompilerGCC 4.8
CUDA9
cuDNN           : 7

ここでは、Pythonは3.6.8がすでにインストールされた環境に、更にC-Compiler、CUDA、cuDNNのダウンロードとインストール、必要な設定を行った後、tensorflow-gpuをバージョンを指定してインストールする手順を示します。

A-1. C-Compiler

Windows環境ではMicrosoft社のVisual Studio Community 2015 with Update 3をインストールします。CUDAのインストールの途中で確認が行われますので、最新版ではなく、このバージョンのものが必要となります。

Microsoft社のVisual Studioのサイトから、isoファイル(7.11GB)をダウンロードします。このとき、Microsoftアカウントへのサインインが必要となります。


Visual Studio Community

A-2. CUDA Toolkit 9.0 (Sept 2017)

NVIDIA社のGPU向けの汎用並列コンピューティングプラットフォームおよびプログラミングモデルであるCUDAをNVIDIA社のホームページからダウンロードします。


CUDA Toolkit

A-3. cuDNN v7.0.5 for CUDA 9.0

NVIDIA社のGPU向けの深層ニューラル ネットワークに対するライブラリであるcuDNNをダウンロードします。

NVIDIA社のホームページへのアクセスでは、NVIDIA Developer ProgramのMembershipが必要となりますが、本手順書のPart ⅠでJetPackのイメージを取得するときに登録をしていれば、それを利用できます。
登録が必要な場合は、Part Iの3章B-1.(1)の手順を参考に行うことができます。


cuDNN

B. 環境の設定

A節でダウンロードしたファイルのインストールと設定の手順を以下に示します。


インストール用ファイル

B-1. C-Compiler

ダウンロードしたISOファイルをマウントして、インストールを行い、C言語やC++言語での簡単なコマンド入力のプログラムを作成してコンパイルと実行の確認を行います。

(注意) 既に他のソフトウェアのインストールに関係して再頒布可能パッケージMicrosoft Visual C++ 2015 Redistributableがインストールされている場合は、セットアップの完了時に警告メッセージの表示される場合があります。
そのまま、Visual C++を実行してエラー等が表示されなければ問題ありませんが、Windowsの設定から衝突しているパッケージをアンインストールするメッセージが表示された場合は、既存のソフトウェアに不具合が発生する可能性もありますので、 事前によく検討してから削除するように注意が必要です。削除した場合は、再度、手順に従ってインストールします。


Visual Studio Community 2015 インストール

B-2. CUDA Toolkit 9.0 (Sept 2017)

ダウンロードしたexeファイルを実行してインストールし、環境変数の設定の確認を行います。


CUDA インストール

B-3. cuDNN v7.0.5

ダウンロードしたzipファイルを解凍し、現れた3つのフォルダB-2節のCUDA Toolkit 9.0のインストールで作成されたフォルダにコピーまたは移動します。


cuDNNの解凍

C. 設定の確認

B節で設定した環境の確認の手順を示します。

C-1. NVIDIAのC言語コンパイラ

コマンドプロンプトを起動し、コンパイラnvccのバージョンを確認します。

C-2. サンプルプログラムの実行

NVIDIA社のホームページに掲載のプログラムを入手し、nvccによるコンパイルとプログラムの実行を確認します。

C-3. CUDA Sampleプログラムの実行

手順書Part Iの第3章C-1節で確認したものと同じサンプルプログラムがインストールされています。ここでも流体シミュレーションを実行して設定の確認を行います。
実行はVisual Studio Community 2015のIDE環境から行います。

(参考) コンソール画面の表示メッセージからGPUの認識が確認できます。

CUDA device [GeForce GTX 770M] has 5 Multi-Processors


CUDA Sample プログラム

D. Tensorflowのインストール

ここまでの設定でGPUの利用環境が構築できましたので、以後は第5章A-1節に対応した内容となります
但し、GPUを利用することにより一部、本文と異なるところがあります。

D-1. 作業フォルダ

(a) パッケージの設定ファイル

第3章D-1節でダウンロードしたファイルの中のインストールするバッケージを記述した設定ファイルを修正し、インストールを行います。

変更:
  tensorflow-gpu==1.6.0

追加:
  opencv-python==4.0.1.24
  opencv-contrib-python==4.0.1.24
  pandas==0.25.3


バッケージの設定

(b) インストールの確認

パッケージのインストールが正しく行われたかPythonのプログラムを実行して確認します。


Bessel Function

(c) Tensorflowの動作確認 (参考)

Tensorflowのバージョンが異なることによる影響について、要約して示します。

(1) 手順書Part Ⅰの第4章B節の内容

プログラムの実行でエラーが発生します。以下に、プログラムの修正を含めて、違いを示します。

(1-1) バージョンの確認

「コマンドプロンプト」を起動して、コマンドを入力してバーションを確認します。

(1-2) GPUの確認

手順書Part Ⅰの第4章B節のプロクラムdetect_GPU.pyを実行します。

(1-3) サンプルプログラムの確認

手順書Part Iの第4章B節のプロクラムtf_demo01.py、tf_demo02.pyおよびtf_demo03.pyは、tensorflowで利用しているモジュールでv1の設定がなく、エラーが発生するため、それぞれのファイルで、以下の修正を行う必要があります。

修正前:	sess = tf.compat.v1.Session()
修正後:	sess = tf.Session()

(2) 手順書Part IIの第5章C-2節での学習時間

GeForce GTX 770M (3GBメモリ、960コア)での概略の学習時間は、3時間30分でした。
但し、batchサイズは2で、88回の学習で終了しました。

150回   :  61sec/Epoch   =>505188回  : 230sec/Epoch   =>2時間30

付録 B. iDS社 USB Cameraの設定

本手順書Part Iで利用したiDS社のUSB Camera(UI-3280CP-C-HQ R2)をWindows 10の環境で利用し、Part Iで示したUSB Cameraによる画像の取得や物体検出が行える環境の設定手順を以下に示します。
具体的には、カメラを制御するためのiDS社の提供するドライバソフトiDS Software SuiteをWindows 10に対応のものとし、Pythonのプロラムの作成に必要なインターフェースライブラリのPyuEyeパッケージのインストールを行います。

A. Software Suiteのダウンロード

Windows 10に対応のiDS Software Suiteのダウンロードの手順は、オペレーティングシステム等に注意してPart Iの第6章A-2と同様に行えます。

カメラの仕様
    ファームウェア    : uEye (IDS Software Suite)
    インターフェース  : USB 3
    ファミリー       : CP Rev.2
    モデル         : UI-3280CP-C-HQ Rev.2
ドライバーソフトの仕様
    オペレーティングシステム  : Windows
    バージョン              : win10
    アーキテクチャー         : 64-bit


Camera Driver

B. Software Suiteのインストール

ダウンロードしたしzipファイルを解凍し、exeファイルを実行します。

C. PyuEyeの設定

Pythonのプログラムで必要となるインターフェースライブラリのPyuEyeパッケージは手順書Part Iのときと同様にPipコマンドを利用してインストールします。

D. USB Cameraの動作確認

設定したiDS Software SuiteによるUSB Cameraの認識と画像の表示、およびPyuEyeによる手順書Part Iの第6章B節のPythonプログラムの動作確認を行います。

D-1. iDS Software Suiteの付属プログラム 1

USB CameraをWindows パソコンに接続し、[スタート][IDS][IDS Camera Manager]を選択することで、接続されているデバイスの情報が得られる付属プログラムの起動ができます。
上段の「Camera list」に接続したUSB Cameraが表示されれば、Software Suiteは正しくインストールされていることが確認できます。中段の「Expert mode」を☑すると、画面の右半面にカメラの仕様等が表示されます。


iDS Camera Manager

D-2. iDS Software Suiteのデモプログラム 2

[スタート][IDS][uEyeDemo]を選択することで、画像の取得が可能な付属プログラムの起動ができます。上段のボタン操作によりライブ映像の表示と停止を交互の切替えや画像の取込み等を行うことが出来ます。


iDS uEye Demo

D-3. 手順書Part Ⅰのプログラム

手順書Part Iの第6章B-2節~B-4節のプログラムをコピーして、コマンド入力により動作を確認できます。カメラの画像が暗い場合にプログラムにGainの自動調整の命令を追加することで改善できます。

python camera01.py              : カメラの認識
python ueye_example01.py        : 映像の表示
python ueye_example_Shot01.py   : 静止画の保存
python ueye_example_Movie01.py  : 動画の保存

Discussion