update.用意したYOLO環境に自前で用意した画像より、「人」の認識を行いたいと思います。機械学習のデータセット画像枚数を増やす方法を参考に、画像数の水増しBBoxツールのデータ形式からYOLOのデータ形式に変換train.txtとtest.txtを用意トレーニング確認BBoxツールでのバウンディングボックス情報の用意YOLOの学習に必要なデータセットの準備のためにBBox-Label-Toolを使用します。今回は250枚の画像をこのツールを使用して、データセットを作成します。Tkinterで実装された画像のバウンディングボックスとラベル付けを行うためのツールです。これを使用して、YOLOに必要な学習セットを作成します。Sierraにこのツールのインストールを行います。(Pillow)Pillowはpyenvで環境を作らず、グローバルな環境にインストールを行います。main.pyjpgファイルの用意BBox-Label-Toolにjpg画像を認識させるために、mogrifyコマンドで変換を行います。インストールされていない場合は別途インストールを行います。rmmain.pyのJPEGをjpgに変換https://github.com/puzzledqs/BBox-Label-Tool/blob/master/main.pyのファイル内にあるJPEGをjpgに変換します。1)loadの実行マウスでバウンディングボックスを作成し、「next」ボタンで保存次の画像を表示これでどんどん、保存を行います。画像の数の水増し機械学習のデータセット画像枚数を増やす方法を参考に、画像の水増しを行います。水増しスクリプトはpython3なため、こちらのスクリプトはpython3で実行します。このスクリプトは、指定の画像しか水増しすることができないため、ディレクトリ単位で水増しできるように調整を行います。数は250枚から5000ほどまで増やします。参考スクリプトincrease_picture.pyBBoxツールのデータ形式からYOLOのデータ形式に変換BBox-Label-Toolで作成したデータフォーマットはYOLOでは使用できないため変換を行います。Y]変換用スクリプトであるconvert.pyを用意します。自分の環境では改行コードが入っており、うまく扱えなかった為、改行コードを削除する処理を入れています。convert.pyフォーマット変換されたitem-*.txtファイルが出来上がります。YOLOトレーニングデータの用意process.pyを用意し、学習とテスト用のデータに分けます。1YOLO設定ファイルの準備YOLOの設定ファイルであるcfg/obj.datacfg/obj.namescfg/yolo-obj.cfgの調整を行います。はじめにobj.dataの作成を行います。各記述内容は以下になります。分類を行いたい数を設定します。トレーニングデータを指定します。検証データを用意します。ラベルづけされたファイルを用意します。backupフォルダを指定します。次にobj.namesを作成します。中身はラベル名を並べたリストになります。person_area最後にyolo-obj.cfgをyolo-voc.cfgから複製し、以下の行を編集します。batch=64に設定。subdivisions=8に設定。5)*5トレーニングの精度をあげるために以下のファイルを落としておく。weightsトレーニングを行うここまでの準備ができたらトレーニングを実行します。darknetのコマンドが通っている箇所で以下のコマンドを貼り付けて実行します。あとで学習内容を確認が行えるようにログファイルに書き込みを行っておきます。images1000~3000ほどで結果がでるともネットの記事ではありましたが、今回は20000イテレーションまで回し、学習を終了しました。0.006以下が望ましいなのでIOUとRecallは良い結果が出ていますが、「2.595317」は目標の値より少し悪いです。yolo-obj_final.weightsbackupフォルダのweights書き込み時間を確認します。タイムゾーンが日本ではないため、9時間プラスで時刻を見ています。15:3519時間ほどかかっています。テスト実際に判断できているかテストを行います。test.jpgわかりやすいデータですが、人が写っているエリアを囲ってくれています。upLoginユーザーは見つかりませんでした。