FC2カウンター FPGAの部屋 白線追従走行用畳み込みニューラルネットワークの製作10(画像を増やす)

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

FPGAの部屋

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

白線追従走行用畳み込みニューラルネットワークの製作10(画像を増やす)

白線追従走行用畳み込みニューラルネットワークの製作9(再度、学習)”の続き。

前回、精度が上がらなかったので、画像を増やしてトレーニングしてみようということになった。今回はimagemagic を使って画像を増やしてみよう。

imagemagic はツィッターで ame_feb4 さんに教えてもらった。ありがとうございました。
imagemagic の使い方がここにある。これを参照してスクリプトを作った。

まず画像の増やし方は、”機械学習のデータセット画像枚数を増やす方法”を参考にした。

画像のコントラストを増やす方向で3セット、画像のコントラストを減らす方向で3セット、ぼかしで2セット、ガンマ値で2セットの画像を作ることにした。

スクリプトのincrease_images を示す。

#!/bin/bash
# increase_image

max=11

# contrast
for ((i=0; i < $max; i++)); do
    convert left_turn$i.bmp -contrast left_turn$(expr $i + $max).bmp
    convert right_turn$i.bmp -contrast right_turn$(expr $i + $max).bmp
    convert straight$i.bmp -contrast straight$(expr $i + $max).bmp
done

for ((i=0; i < $max; i++)); do
    convert left_turn$i.bmp -contrast -contrast left_turn$(expr $i + $max \* 2).bmp
    convert right_turn$i.bmp -contrast -contrast right_turn$(expr $i + $max \* 2).bmp
    convert straight$i.bmp -contrast -contrast straight$(expr $i + $max \* 2).bmp
done

for ((i=0; i < $max; i++)); do
    convert left_turn$i.bmp -contrast -contrast -contrast left_turn$(expr $i + $max \* 3).bmp
    convert right_turn$i.bmp -contrast -contrast -contrast right_turn$(expr $i + $max \* 3).bmp
    convert straight$i.bmp -contrast -contrast -contrast straight$(expr $i + $max \* 3).bmp
done

for ((i=0; i < $max; i++)); do
    convert left_turn$i.bmp +contrast left_turn$(expr $i + $max \* 4).bmp
    convert right_turn$i.bmp +contrast right_turn$(expr $i + $max \* 4).bmp
    convert straight$i.bmp +contrast straight$(expr $i + $max \* 4).bmp
done

for ((i=0; i < $max; i++)); do
    convert left_turn$i.bmp +contrast +contrast left_turn$(expr $i + $max \* 5).bmp
    convert right_turn$i.bmp +contrast +contrast right_turn$(expr $i + $max \* 5).bmp
    convert straight$i.bmp +contrast +contrast straight$(expr $i + $max \* 5).bmp
done

for ((i=0; i < $max; i++)); do
    convert left_turn$i.bmp +contrast +contrast +contrast left_turn$(expr $i + $max \* 6).bmp
    convert right_turn$i.bmp +contrast +contrast +contrast right_turn$(expr $i + $max \* 6).bmp
    convert straight$i.bmp +contrast +contrast +contrast straight$(expr $i + $max \* 6).bmp
done

# blur
for ((i=0; i < $max; i++)); do
    convert left_turn$i.bmp -blur 10x1.5 left_turn$(expr $i + $max \* 7).bmp
    convert right_turn$i.bmp -blur 10x1.5 right_turn$(expr $i + $max \* 7).bmp
    convert straight$i.bmp -blur 10x1.5 straight$(expr $i + $max \* 7).bmp
done

for ((i=0; i < $max; i++)); do
    convert left_turn$i.bmp -blur 10x2 left_turn$(expr $i + $max \* 8).bmp
    convert right_turn$i.bmp -blur 10x2 right_turn$(expr $i + $max \* 8).bmp
    convert straight$i.bmp -blur 10x2 straight$(expr $i + $max \* 8).bmp
done

#gamma
for ((i=0; i < $max; i++)); do
    convert left_turn$i.bmp -gamma 1.5 left_turn$(expr $i + $max \* 9).bmp
    convert right_turn$i.bmp -gamma 1.5 right_turn$(expr $i + $max \* 9).bmp
    convert straight$i.bmp -gamma 1.5 straight$(expr $i + $max \* 9).bmp
done

for ((i=0; i < $max; i++)); do
    convert left_turn$i.bmp -gamma 0.75 left_turn$(expr $i + $max \* 10).bmp
    convert right_turn$i.bmp -gamma 0.75 right_turn$(expr $i + $max \* 10).bmp
    convert straight$i.bmp -gamma 0.75 straight$(expr $i + $max \* 10).bmp
done


これで、11枚 x 3 の画像が 121枚 x 3 の画像になる。

それではやってみよう。”白線追従走行用畳み込みニューラルネットワークの製作9(再度、学習)”で使ったトレーニングデータの tran_data_170808 に increase_images を入れた。
wlt_cnn_51_170821.png

まず、sudo apt install imagemagick でインストールすると、すでに入っていた。
wlt_cnn_52_170821.png

./increase_images で実行した。
wlt_cnn_53_170821.png

画像が増えた。
wlt_cnn_54_170821.png

nautilus で見たときの最初
wlt_cnn_55_170821.png

nautilus で見たときの最後
wlt_cnn_56_170821.png

これで、33枚が 363 枚に増えた。これが 25 倍に増えるので、最終的には、 363 x 25 = 9075 枚になる。
  1. 2017年08月22日 05:37 |
  2. DNN
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


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

トラックバック URL
http://marsee101.blog19.fc2.com/tb.php/3890-ef58b483
この記事にトラックバックする(FC2ブログユーザー)