#YOLOの環境構築
YOLOにはv2とv3のバージョンが存在します.今回はv2を使うことにします.
まずはgitからローカルにクローン.
git clone https://github.com/pjreddie/darknet.git
DarknetはC言語で書かれた機械学習フレームワークで,YOLOはこのフレームワークで実装されています.
cd darknet
gedit Makefile
darknet
ディレクトリに移動し,Makefile
を編集.
1行目と3行目のGPU=0
OPENCV=0
をGPU=1
OPENCV=1
に変更します.
これは学習を行う際にGPU
を使い,また検出した物体に対してバウンディングボックスを描画する際に OPENCV
を使うことを表しています.
変更が完了したら保存してコンパイル.
make
あらかじめ用意されたサンプルでYOLOを使ってみます.
./darknet detect cfg/yolo.cfg yolo.weights data/dog.jpg
detect
はモードをしており,学習の場合はtrain
とします.
cfg/yolo.cfg
はコンフィグファイルで,ハイパーパラメータを記述します.
yolo.weights
は学習済みモデルで,既に20個のクラスが学習済みとなっています.
data/dog.jpg
は検出に用いる画像ファイル.
出ました.犬と自転車と車.バチッと検出されています.
#カスタムデータで学習するには
任意の物体を検出するには,新たに学習を行う必要があり,特にその下準備が肝となるようです.
データベース
-
各データには物体のクラスと位置を与えるアノテーション(ラベル)が必要.手作業で行わなければなりません.
-
コンフィグファイル
-
前述の通り,クラスの数やハイパーパラメータを記述します.
-
クラスファイル
-
クラスを記述します.
-
パス指定ファイル
-
教師データ,学習データ,クラスファイル,バックアップのパスを指定します.
-
重みの初期値データ
-
初期値に適当な重みを与えると学習が収束しやすくなるそうです.
参考:
YOLOv2を使って自前のデータを学習させて認識させるまで。
http://shibafu3.hatenablog.com/entry/2017/08/24/124826
YOLOオリジナルデータの学習
http://takesan.hatenablog.com/entry/2018/08/16/013452
YOLO V3:オリジナルデータの学習
http://demura.net/misc/14458.html
#【次回】方針が立ったので,作業あるのみ
次回より,麻雀牌の画像を使ってデータベースを作成します.
準備ができてしまえば,あとはマシンに任せるだけです.