FC2カウンター FPGAの部屋 ZYBOt の学習用画像を増やす
FC2ブログ

FPGAやCPLDの話題やFPGA用のツールの話題などです。 マニアックです。 日記も書きます。

FPGAの部屋

FPGAの部屋の有用と思われるコンテンツのまとめサイトを作りました。Xilinx ISEの初心者の方には、FPGAリテラシーおよびチュートリアルのページをお勧めいたします。

ZYBOt の学習用画像を増やす

ZYBOt の学習用写真を取った(右回りコース)”の続き。

前回、ZYBOt の学習用画像が取れたが、それでは枚数が足りないため、 imagemagic を使ってバッチ・ファイルを起動して、画像を増やしていて、18倍に増やす。
コントラストを強めたり、弱めたり、ぼかしたり、画像のガンマ値を変更したり、ノイズを加えたりして増やしている。

元ネタは、”カーブ、直線用白線間走行用畳み込みニューラルネットワーク6(テスト用画像を増やす)”だが、今回は、ファイル名が連続していないので、どうしようか考えた。そしてテストしてみたところ、ファイル名が無くてもエラーを表示するだけで、処理は続くということがわかったので、エラーは /dev/null にリダイレクトすることにした。
そして、トレーニング・データ用の increase_image2_train とテスト・データ用の incrase_image2_test のスクリプトを作成した。

もとの学習用画像を示す。
ZYBOt_Keras_1_180924

トレーニング・データ用の increase_image2_train とテスト・データ用の incrase_image2_test のスクリプトを起動した。
ZYBOt_Keras_2_180924

学習用画像を増やした後のディレクトリを示す。
ZYBOt_Keras_3_180924

train の left ディレクトリを見ると、スクリプト・ファイル実行前のファイル数が 42 個だったが、スクリプト・ファイルの実行後は 756 個に増えた。756 / 42 = 18 倍に増えていることがわかる。
train 画像は、756 + 774 + 684 = 2214 個に増えた。学習用データを作成する際には 25 倍に増やすので、55350 個になる予定だ。
test 画像は、720 + 828 + 684 = 2232 個に増えた。テスト用データを作成する際には 25 倍に増やすので、55800 個になる予定だ。

increase_image2_train を示す。(2018/10/05:バグフィックス)

#!/bin/bash
# increase_images2_train

pict_max=250

# contrast
for ((i=0; i < $pict_max; i++)); do
    convert train/straight/bmp_file$i.bmp -contrast train/straight/bmp_file$(expr $i + $pict_max).bmp &> /dev/null
    convert train/left/bmp_file$i.bmp -contrast train/left/bmp_file$(expr $i + $pict_max).bmp &> /dev/null
    convert train/right/bmp_file$i.bmp -contrast train/right/bmp_file$(expr $i + $pict_max).bmp &> /dev/null
done

for ((i=0; i < $pict_max; i++)); do
    convert train/straight/bmp_file$i.bmp -contrast -contrast train/straight/bmp_file$(expr $i + $pict_max \* 2).bmp &> /dev/null
    convert train/left/bmp_file$i.bmp -contrast -contrast train/left/bmp_file$(expr $i + $pict_max \* 2).bmp &> /dev/null
    convert train/right/bmp_file$i.bmp -contrast -contrast train/right/bmp_file$(expr $i + $pict_max \* 2).bmp &> /dev/null
done

for ((i=0; i < $pict_max; i++)); do
    convert train/straight/bmp_file$i.bmp -contrast -contrast -contrast train/straight/bmp_file$(expr $i + $pict_max \* 3).bmp &> /dev/null
    convert train/left/bmp_file$i.bmp -contrast -contrast -contrast train/left/bmp_file$(expr $i + $pict_max \* 3).bmp &> /dev/null
    convert train/right/bmp_file$i.bmp -contrast -contrast -contrast train/right/bmp_file$(expr $i + $pict_max \* 3).bmp &> /dev/null
done

for ((i=0; i < $pict_max; i++)); do
    convert train/straight/bmp_file$i.bmp +contrast train/straight/bmp_file$(expr $i + $pict_max \* 4).bmp &> /dev/null
    convert train/left/bmp_file$i.bmp +contrast train/left/bmp_file$(expr $i + $pict_max \* 4).bmp &> /dev/null
    convert train/right/bmp_file$i.bmp +contrast train/right/bmp_file$(expr $i + $pict_max \* 4).bmp &> /dev/null
done

for ((i=0; i < $pict_max; i++)); do
    convert train/straight/bmp_file$i.bmp +contrast +contrast train/straight/bmp_file$(expr $i + $pict_max \* 5).bmp &> /dev/null
    convert train/left/bmp_file$i.bmp +contrast +contrast train/left/bmp_file$(expr $i + $pict_max \* 5).bmp &> /dev/null
    convert train/right/bmp_file$i.bmp +contrast +contrast train/right/bmp_file$(expr $i + $pict_max \* 5).bmp &> /dev/null
done

for ((i=0; i < $pict_max; i++)); do
    convert train/straight/bmp_file$i.bmp +contrast +contrast +contrast train/straight/bmp_file$(expr $i + $pict_max \* 6).bmp &> /dev/null
    convert train/left/bmp_file$i.bmp +contrast +contrast +contrast train/left/bmp_file$(expr $i + $pict_max \* 6).bmp &> /dev/null
    convert train/right/bmp_file$i.bmp +contrast +contrast +contrast train/right/bmp_file$(expr $i + $pict_max \* 6).bmp &> /dev/null
done

# blur
for ((i=0; i < $pict_max; i++)); do
    convert train/straight/bmp_file$i.bmp -blur 10x1.5 train/straight/bmp_file$(expr $i + $pict_max \* 7).bmp &> /dev/null
    convert train/left/bmp_file$i.bmp -blur 10x1.5 train/left/bmp_file$(expr $i + $pict_max \* 7).bmp &> /dev/null
    convert train/right/bmp_file$i.bmp -blur 10x1.5 train/right/bmp_file$(expr $i + $pict_max \* 7).bmp &> /dev/null
done

for ((i=0; i < $pict_max; i++)); do
    convert train/straight/bmp_file$i.bmp -blur 10x2 train/straight/bmp_file$(expr $i + $pict_max \* 8).bmp &> /dev/null
    convert train/left/bmp_file$i.bmp -blur 10x2 train/left/bmp_file$(expr $i + $pict_max \* 8).bmp &> /dev/null
    convert train/right/bmp_file$i.bmp -blur 10x2 train/right/bmp_file$(expr $i + $pict_max \* 8).bmp &> /dev/null
done

# gaussian-blur
for ((i=0; i < $pict_max; i++)); do
    convert train/straight/bmp_file$i.bmp -gaussian-blur 10x1.5 train/straight/bmp_file$(expr $i + $pict_max \* 9).bmp &> /dev/null
    convert train/left/bmp_file$i.bmp -gaussian-blur 10x1.5 train/left/bmp_file$(expr $i + $pict_max \* 9).bmp &> /dev/null
    convert train/right/bmp_file$i.bmp -gaussian-blur 10x1.5 train/right/bmp_file$(expr $i + $pict_max \* 9).bmp &> /dev/null
done

for ((i=0; i < $pict_max; i++)); do
    convert train/straight/bmp_file$i.bmp -gaussian-blur 10x2 train/straight/bmp_file$(expr $i + $pict_max \* 10).bmp &> /dev/null
    convert train/left/bmp_file$i.bmp -gaussian-blur 10x2 train/left/bmp_file$(expr $i + $pict_max \* 10).bmp &> /dev/null
    convert train/right/bmp_file$i.bmp -gaussian-blur 10x2 train/right/bmp_file$(expr $i + $pict_max \* 10).bmp &> /dev/null
done

#gamma
for ((i=0; i < $pict_max; i++)); do
    convert train/straight/bmp_file$i.bmp -gamma 1.5 train/straight/bmp_file$(expr $i + $pict_max \* 11).bmp &> /dev/null
    convert train/left/bmp_file$i.bmp -gamma 1.5 train/left/bmp_file$(expr $i + $pict_max \* 11).bmp &> /dev/null
    convert train/right/bmp_file$i.bmp -gamma 1.5 train/right/bmp_file$(expr $i + $pict_max \* 11).bmp &> /dev/null
done

for ((i=0; i < $pict_max; i++)); do
    convert train/straight/bmp_file$i.bmp -gamma 0.75 train/straight/bmp_file$(expr $i + $pict_max \* 12).bmp &> /dev/null
    convert train/left/bmp_file$i.bmp -gamma 0.75 train/left/bmp_file$(expr $i + $pict_max \* 12).bmp &> /dev/null
    convert train/right/bmp_file$i.bmp -gamma 0.75 train/right/bmp_file$(expr $i + $pict_max \* 12).bmp &> /dev/null
done

#noise
for ((i=0; i < $pict_max; i++)); do
    convert train/straight/bmp_file$i.bmp +noise Gaussian train/straight/bmp_file$(expr $i + $pict_max \* 13).bmp &> /dev/null
    convert train/left/bmp_file$i.bmp +noise Gaussian train/left/bmp_file$(expr $i + $pict_max \* 13).bmp &> /dev/null
    convert train/right/bmp_file$i.bmp +noise Gaussian train/right/bmp_file$(expr $i + $pict_max \* 13).bmp &> /dev/null
done

for ((i=0; i < $pict_max; i++)); do
    convert train/straight/bmp_file$i.bmp +noise Impulse train/straight/bmp_file$(expr $i + $pict_max \* 14).bmp &> /dev/null
    convert train/left/bmp_file$i.bmp +noise Impulse train/left/bmp_file$(expr $i + $pict_max \* 14).bmp &> /dev/null
    convert train/right/bmp_file$i.bmp +noise Impulse train/right/bmp_file$(expr $i + $pict_max \* 14).bmp &> /dev/null
done

for ((i=0; i < $pict_max; i++)); do
    convert train/straight/bmp_file$i.bmp +noise Gaussian train/straight/bmp_file$(expr $i + $pict_max \* 15).bmp &> /dev/null
    convert train/left/bmp_file$i.bmp +noise Gaussian train/left/bmp_file$(expr $i + $pict_max \* 15).bmp &> /dev/null
    convert train/right/bmp_file$i.bmp +noise Gaussian train/right/bmp_file$(expr $i + $pict_max \* 15).bmp &> /dev/null
done

for ((i=0; i < $pict_max; i++)); do
    convert train/straight/bmp_file$i.bmp +noise Impulse train/straight/bmp_file$(expr $i + $pict_max \* 16).bmp &> /dev/null
    convert train/left/bmp_file$i.bmp +noise Impulse train/left/bmp_file$(expr $i + $pict_max \* 16).bmp &> /dev/null
    convert train/right/bmp_file$i.bmp +noise Impulse train/right/bmp_file$(expr $i + $pict_max \* 16).bmp &> /dev/null
done

for ((i=0; i < $pict_max; i++)); do
    convert train/straight/bmp_file$i.bmp +noise Laplacian train/straight/bmp_file$(expr $i + $pict_max \* 17).bmp &> /dev/null
    convert train/left/bmp_file$i.bmp +noise Laplacian train/left/bmp_file$(expr $i + $pict_max \* 17).bmp &> /dev/null
    convert train/right/bmp_file$i.bmp +noise Laplacian train/right/bmp_file$(expr $i + $pict_max \* 17).bmp &> /dev/null
done


incrase_image2_test を示す。(2018/10/05:バグフィックス)

#!/bin/bash
# increase_images2_test

pict_max=250

# contrast
for ((i=0; i < $pict_max; i++)); do
    convert test/straight_test/bmp_file$i.bmp -contrast test/straight_test/bmp_file$(expr $i + $pict_max).bmp &> /dev/null
    convert test/left_test/bmp_file$i.bmp -contrast test/left_test/bmp_file$(expr $i + $pict_max).bmp &> /dev/null
    convert test/right_test/bmp_file$i.bmp -contrast test/right_test/bmp_file$(expr $i + $pict_max).bmp &> /dev/null
done

for ((i=0; i < $pict_max; i++)); do
    convert test/straight_test/bmp_file$i.bmp -contrast -contrast test/straight_test/bmp_file$(expr $i + $pict_max \* 2).bmp &> /dev/null
    convert test/left_test/bmp_file$i.bmp -contrast -contrast test/left_test/bmp_file$(expr $i + $pict_max \* 2).bmp &> /dev/null
    convert test/right_test/bmp_file$i.bmp -contrast -contrast test/right_test/bmp_file$(expr $i + $pict_max \* 2).bmp &> /dev/null
done

for ((i=0; i < $pict_max; i++)); do
    convert test/straight_test/bmp_file$i.bmp -contrast -contrast -contrast test/straight_test/bmp_file$(expr $i + $pict_max \* 3).bmp &> /dev/null
    convert test/left_test/bmp_file$i.bmp -contrast -contrast -contrast test/left_test/bmp_file$(expr $i + $pict_max \* 3).bmp &> /dev/null
    convert test/right_test/bmp_file$i.bmp -contrast -contrast -contrast test/right_test/bmp_file$(expr $i + $pict_max \* 3).bmp &> /dev/null
done

for ((i=0; i < $pict_max; i++)); do
    convert test/straight_test/bmp_file$i.bmp +contrast test/straight_test/bmp_file$(expr $i + $pict_max \* 4).bmp &> /dev/null
    convert test/left_test/bmp_file$i.bmp +contrast test/left_test/bmp_file$(expr $i + $pict_max \* 4).bmp &> /dev/null
    convert test/right_test/bmp_file$i.bmp +contrast test/right_test/bmp_file$(expr $i + $pict_max \* 4).bmp &> /dev/null
done

for ((i=0; i < $pict_max; i++)); do
    convert test/straight_test/bmp_file$i.bmp +contrast +contrast test/straight_test/bmp_file$(expr $i + $pict_max \* 5).bmp &> /dev/null
    convert test/left_test/bmp_file$i.bmp +contrast +contrast test/left_test/bmp_file$(expr $i + $pict_max \* 5).bmp &> /dev/null
    convert test/right_test/bmp_file$i.bmp +contrast +contrast test/right_test/bmp_file$(expr $i + $pict_max \* 5).bmp &> /dev/null
done

for ((i=0; i < $pict_max; i++)); do
    convert test/straight_test/bmp_file$i.bmp +contrast +contrast +contrast test/straight_test/bmp_file$(expr $i + $pict_max \* 6).bmp &> /dev/null
    convert test/left_test/bmp_file$i.bmp +contrast +contrast +contrast test/left_test/bmp_file$(expr $i + $pict_max \* 6).bmp &> /dev/null
    convert test/right_test/bmp_file$i.bmp +contrast +contrast +contrast test/right_test/bmp_file$(expr $i + $pict_max \* 6).bmp &> /dev/null
done

# blur
for ((i=0; i < $pict_max; i++)); do
    convert test/straight_test/bmp_file$i.bmp -blur 10x1.5 test/straight_test/bmp_file$(expr $i + $pict_max \* 7).bmp &> /dev/null
    convert test/left_test/bmp_file$i.bmp -blur 10x1.5 test/left_test/bmp_file$(expr $i + $pict_max \* 7).bmp &> /dev/null
    convert test/right_test/bmp_file$i.bmp -blur 10x1.5 test/right_test/bmp_file$(expr $i + $pict_max \* 7).bmp &> /dev/null
done

for ((i=0; i < $pict_max; i++)); do
    convert test/straight_test/bmp_file$i.bmp -blur 10x2 test/straight_test/bmp_file$(expr $i + $pict_max \* 8).bmp &> /dev/null
    convert test/left_test/bmp_file$i.bmp -blur 10x2 test/left_test/bmp_file$(expr $i + $pict_max \* 8).bmp &> /dev/null
    convert test/right_test/bmp_file$i.bmp -blur 10x2 test/right_test/bmp_file$(expr $i + $pict_max \* 8).bmp &> /dev/null
done

# gaussian-blur
for ((i=0; i < $pict_max; i++)); do
    convert test/straight_test/bmp_file$i.bmp -gaussian-blur 10x1.5 test/straight_test/bmp_file$(expr $i + $pict_max \* 9).bmp &> /dev/null
    convert test/left_test/bmp_file$i.bmp -gaussian-blur 10x1.5 test/left_test/bmp_file$(expr $i + $pict_max \* 9).bmp &> /dev/null
    convert test/right_test/bmp_file$i.bmp -gaussian-blur 10x1.5 test/right_test/bmp_file$(expr $i + $pict_max \* 9).bmp &> /dev/null
done

for ((i=0; i < $pict_max; i++)); do
    convert test/straight_test/bmp_file$i.bmp -gaussian-blur 10x2 test/straight_test/bmp_file$(expr $i + $pict_max \* 10).bmp &> /dev/null
    convert test/left_test/bmp_file$i.bmp -gaussian-blur 10x2 test/left_test/bmp_file$(expr $i + $pict_max \* 10).bmp &> /dev/null
    convert test/right_test/bmp_file$i.bmp -gaussian-blur 10x2 test/right_test/bmp_file$(expr $i + $pict_max \* 10).bmp &> /dev/null
done

#gamma
for ((i=0; i < $pict_max; i++)); do
    convert test/straight_test/bmp_file$i.bmp -gamma 1.5 test/straight_test/bmp_file$(expr $i + $pict_max \* 11).bmp &> /dev/null
    convert test/left_test/bmp_file$i.bmp -gamma 1.5 test/left_test/bmp_file$(expr $i + $pict_max \* 11).bmp &> /dev/null
    convert test/right_test/bmp_file$i.bmp -gamma 1.5 test/right_test/bmp_file$(expr $i + $pict_max \* 11).bmp &> /dev/null
done

for ((i=0; i < $pict_max; i++)); do
    convert test/straight_test/bmp_file$i.bmp -gamma 0.75 test/straight_test/bmp_file$(expr $i + $pict_max \* 12).bmp &> /dev/null
    convert test/left_test/bmp_file$i.bmp -gamma 0.75 test/left_test/bmp_file$(expr $i + $pict_max \* 12).bmp &> /dev/null
    convert test/right_test/bmp_file$i.bmp -gamma 0.75 test/right_test/bmp_file$(expr $i + $pict_max \* 12).bmp &> /dev/null
done

#noise
for ((i=0; i < $pict_max; i++)); do
    convert test/straight_test/bmp_file$i.bmp +noise Gaussian test/straight_test/bmp_file$(expr $i + $pict_max \* 13).bmp &> /dev/null
    convert test/left_test/bmp_file$i.bmp +noise Gaussian test/left_test/bmp_file$(expr $i + $pict_max \* 13).bmp &> /dev/null
    convert test/right_test/bmp_file$i.bmp +noise Gaussian test/right_test/bmp_file$(expr $i + $pict_max \* 13).bmp &> /dev/null
done

for ((i=0; i < $pict_max; i++)); do
    convert test/straight_test/bmp_file$i.bmp +noise Impulse test/straight_test/bmp_file$(expr $i + $pict_max \* 14).bmp &> /dev/null
    convert test/left_test/bmp_file$i.bmp +noise Impulse test/left_test/bmp_file$(expr $i + $pict_max \* 14).bmp &> /dev/null
    convert test/right_test/bmp_file$i.bmp +noise Impulse test/right_test/bmp_file$(expr $i + $pict_max \* 14).bmp &> /dev/null
done

for ((i=0; i < $pict_max; i++)); do
    convert test/straight_test/bmp_file$i.bmp +noise Gaussian test/straight_test/bmp_file$(expr $i + $pict_max \* 15).bmp &> /dev/null
    convert test/left_test/bmp_file$i.bmp +noise Gaussian test/left_test/bmp_file$(expr $i + $pict_max \* 15).bmp &> /dev/null
    convert test/right_test/bmp_file$i.bmp +noise Gaussian test/right_test/bmp_file$(expr $i + $pict_max \* 15).bmp &> /dev/null
done

for ((i=0; i < $pict_max; i++)); do
    convert test/straight_test/bmp_file$i.bmp +noise Impulse test/straight_test/bmp_file$(expr $i + $pict_max \* 16).bmp &> /dev/null
    convert test/left_test/bmp_file$i.bmp +noise Impulse test/left_test/bmp_file$(expr $i + $pict_max \* 16).bmp &> /dev/null
    convert test/right_test/bmp_file$i.bmp +noise Impulse test/right_test/bmp_file$(expr $i + $pict_max \* 16).bmp &> /dev/null
done

for ((i=0; i < $pict_max; i++)); do
    convert test/straight_test/bmp_file$i.bmp +noise Laplacian test/straight_test/bmp_file$(expr $i + $pict_max \* 17).bmp &> /dev/null
    convert test/left_test/bmp_file$i.bmp +noise Laplacian test/left_test/bmp_file$(expr $i + $pict_max \* 17).bmp &> /dev/null
    convert test/right_test/bmp_file$i.bmp +noise Laplacian test/right_test/bmp_file$(expr $i + $pict_max \* 17).bmp &> /dev/null
done

  1. 2018年09月25日 05:37 |
  2. Zybot
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック URL
https://marsee101.blog.fc2.com/tb.php/4309-a9151bca
この記事にトラックバックする(FC2ブログユーザー)