画像認識をするために大量の教師データが欲しかったので、1枚の画像から増やす方法が無いかと思い調べてみた。
##環境の構築
Python3とOpenCVの環境を構築します。
Anacondaを使ったPython環境の構築には以下の記事を参考にさせていただきました。
Python環境が構築できたらOpenCVをインストールします。
Anacondaのコマンドラインから以下のコマンドを実行
$ pip install opencv-python
これで環境準備はOK
##画像を増やすプログラム
こちらの記事を参考にしました。
記事中のリンクからincrease_picture.pyをダウンロードして、適当なフォルダに展開。
増やしたい画像ファイルを同じフォルダに入れたら、Anacondaのコマンドラインで展開したフォルダまで移動して。
python increase_picture.py 増やしたい画像ファイル
これでフォルダ内に「trans_images」というフォルダが作成され、元画像に色々な処理を加えた画像ファイルが入っています。
ただ、これだとファイルを指定しながら都度プログラムを起動しなければならないのが少々面倒です。
なので、ある程度まとまった画像ファイルを一度に処理できるようにしていきます。
##バッチファイルを使って自動化
先ず、先ほどから作業をしているフォルダ内に、**「image」**という名前のフォルダを作ります。
作ったら処理させたい画像ファイルをここに入れておきます。
次に、作業フォルダ内にバッチファイルを一つ作ります。
名前は何でも良いです。新規テキストファイルを作成して、「好きな名前.bat」としてください。
作成したらファイルをメモ帳で開いて、以下の通り書き換えます。
cd /d %~dp0
for %%f in (image\*) do (
python increase_picture.py %%f
)
後はAnacondaのコマンドライン上で先ほど作成したバッチファイルを起動すると、
imageフォルダ内の画像が順番に処理されてtrans_imagesファルダ内に入っていきます。