DarknetをWindowsで使ってみる(学習準備編)


工事中


物体検出の深層学習トレーニングを実行する前に、まずデータを作っとかにゃいけません。

データセットは以下の4種類

1)画像データ(jpg画像)

画像ファイルそのもの(例:*.jpg)

2)座標データ

画像の中にクラスに対応する対象がどこにあるかを記述したtxtファイル

上の画像ファイルと1対1、つまり画像ファイルの数だけこのtxtファイルがある

ファイル名も同じ

(例:*.txt)

3)画像リスト

画像ファイル名のリスト

test.txt,train.txt

4)クラスリスト

クラス(dog,cat,car,person,…………)を列挙したファイル

obj.names

 

データを作るツールとしてこの2つがよく紹介されています。

BBox-Label-Toolとconvert.py

LabelImage

BBoxを使ってみます。

ラベル付け(アノテーション)という作業です。

たいていはPythonで動くものが多いので環境を作っておきます。


Python準備

Windows 7 (64bit)

Anaconda

Anacoda…変な名前ですが、これはContinuum Analytics 社 が提供している Python と conda というパッケージマネージャーを含む Python ディストリビューションです。

サイトでは3.xと2.xの2つのバージョンがありますが、3.xをインストールしておけば2.xも後でインストールできて、デュアルの環境が作れます。

64-bitバージョンをダウンロードしてインストールします。

 

Anacodaインストール

Anacoda自体のインストールは特に問題になるところはないです。デフォルトのままで実行。

インストールが終わったらStartメニュの「Anaconda Prompt」を起動します。

2.xのインストールも含めて、デュアルの環境を確認します。

以下、あなたのユーザー名のところはUSERで代用します。

以下のようなコマンドで現在の環境の確認できます。

C:¥users¥USER>python

一度、この環境を抜けましょう。

>>>exit()

python27という名前でバージョン2.7をインストールしてみます。

C:¥users¥USER>conda create  -n pythosn27 python=2.7 anaconda

インストールが終わったら、環境を確認してみましょう。

C:¥users¥USER>conda info -e

27の環境が表示されていればOKです。

 


BBox-Label-Tool(GitHub)の場合

ダウンロードして解凍したら、適当な場所に移動しておきます。

例:C:¥BBox-Label-Tool-master

運用するにあたって、修正しておいた方がいい部分があります。

C:¥BBox-Label-Tool-master¥main.pyではファイル名の拡張子はJPEGしか読みません。

なにかと不便になると思われるので変更しておきます。

main.pyで「JPEG」の部分は「jpg」に変更。

Imagesフォルダーの中の画像の拡張子も.jpgに変更。

 

BBoxをPythonで起動

BBoxは2.xのPythonで動作します。

Anaconda Promptから立ち上げてみましょう。

StartメニューからAnaconda Prompを起動。

Promptコンソールで以下のようなコマンドを実行します。

C:¥users¥USER>python

現在の環境はデフォルトは3.xになっていると思います。

2.7に切り替えます。

C:¥users¥USER>exit()

C:¥users¥USER>activate python27

これで2.7の環境になります。

ここから、BBoxを起動します。

C:¥users¥USER>python C:¥BBox-Label-Tool-master¥main.py

サンプルの画像でやってみます。

Image Dirで指定するのは画像のフォルダー名です。BBoxのサンプルはImages¥001というフォルダーの中にあるので、この001を指定します。

Loadボタンで画像を読み込みます、が、もし読み込まない場合は下の*注を参照。

あくびをしているわんちゃんがサンプルです。

規定値ですでにバウンディングボックスで囲まれているものを修正してみます。

ClearAllをクリックして再度マウスで囲みます。

書き直す場合は下のNextボタンをクリックするとLabels¥001の中の同名のtxtファイルが書き換わっています。

 

BBoxのデータをYOLO形式に変換

convert.pyをGitHubから取得

 

 

 

 

*注

 

例:C:¥BBox-Label-Tool-master¥main.pyを少々変更します。

Images、Labels、Examplesのフォルダー取得に失敗しているのかもしれません。

修正する関数は def loadDir(self, dbg = False):

この中で、現在のフォルダーパスを取得しておきます。

current_dir = os.path.dirname(os.path.abspath(__file__))

で、以下の3つを修正

#self.imageDir = os.path.join(r’./Images’, ‘%03d’ %(self.category))
self.imageDir = os.path.join(current_dir + ‘¥Images’, ‘%03d’ %(self.category))

#self.outDir = os.path.join(r’./Labels’, ‘%03d’ %(self.category))
self.outDir = os.path.join(‘C:¥BBox-Label-Tool-master¥Labels’, ‘%03d’ %(self.category))

#self.egDir = os.path.join(r’./Examples’, ‘%03d’ %(self.category))
self.egDir = os.path.join(‘C:¥BBox-Label-Tool-master¥Examples’, ‘%03d’ %(self.category))

 

 

 

 


トレーニング用データ

  • cfg/obj.data
  • cfg/obj.names
  • cfg/yolo-obj.cfg

 

 


編集中です

 

 


 

Be the first to comment

Leave a Reply

Your email address will not be published.


*