【Deep Learning】Keras-yolo3で学習
とりあえず画像認識してみるのは前回の記事参照
buffalokusojima.hatenablog.com
今回はkeras-yolo3を使った自前データの学習を説明します。
1. 必要なもの
- 学習データ ・・・ 学習リスト
- クラスファイル ・・・ 学習する物体のリスト
- 初期モデル等のyolo独自のデータファイル
2. 学習リストを作成する
keras-yolo3では学習リストといった画像パス等が記載されたtxtファイルを元に画像の情報を取得して学習していきます。
例としては以下のようです。
画像パス/test.jpg 50 100 100 200 0
座標はそれぞれ左から
xmin ymin xmax ymax class_id
です。class_idは後で紹介するクラスファイルの中身を上から0から始まる連番をしたものです。
3. クラスファイルを作成
学習させたい物体の名前を記載したファイルを作成します。
例として、「リンゴ、梨、ミカン」を学習させたい場合、以下のように改行して書きます。
(例)
リンゴ
梨
ミカン
4. 初期weightsファイルを取得する
学習を始める際に初期の重みファイルを必要とします。以下wgetで取得します。
オリジナルのyoloの形式になっているのでkeras-yolo3用のフォーマットに変換します。
python convert.py -w darknet53.cfg darknet53.weights model_data/darknet53_weights.h5/span>
5. 学習の設定をする
train.pyを開き、以下デフォルト値を設定します。
def _main(): annotation_path = 'train.txt' #学習リストのパス log_dir = 'logs/000/' #作成されるモデルのパス classes_path = 'model_data/voc_classes.txt' #クラスファイルのパス
上記で作成したそれぞれのパスに変更してください。
6. 学習を開始する
python train.pyで、学習が開始されます。
7. おわりに
今回は簡単な自前データでの学習の仕方を説明しました。次回あたりに考察とう含めた学習、認識系の内容を書こうかと思います。