FC2カウンター FPGAの部屋 ZYBOt の学習用画像のトレーニング・ファイルのチェック
FC2ブログ

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

FPGAの部屋

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

ZYBOt の学習用画像のトレーニング・ファイルのチェック

ZYBOt の学習用画像ファイルの作成(トレーニング・ファイルとラベル・ファイル)”の続き。

前回は、学習用画像ファイルを使用して、MNISTデータセットと同じフォーマットでトレーニング・ファイルとラベル・ファイルを生成した。今回は、その内のトレーニング・ファイルが正しいかどうか?を確かめてみよう。

元ネタのFPGAの部屋のブログの記事は、”白線追従走行用畳み込みニューラルネットワークの製作4(トレーニング・ファイルのチェック)

Vivado HLS 2018.2 の course_dataset_check プロジェクトを作成して、トレーニング・ファイルを読み出して、画像ファイルに変換するソフトウェアのcourse_dataset_check.cpp を作成した。
ZYBOt_Keras_12_180928

C シミュレーションを行った。
ZYBOt_Keras_13_180928

course_data_check/solution1/csim/build に output25.png から output99.png ファイルが生成された。
ZYBOt_Keras_14_180928

output25.png から output49.png までは右旋回の学習用画像となっている。横 5 ピクセルずらして、また縦 5 ピクセルづつずらして学習用画像を作成しているので、下の図の様になる。output50.png から 25 枚は直進の学習用画像となる。
ZYBOt_Keras_15_180928

問題なくトレーニング・ファイルが作成されているようだ。
最後に、course_dataset_check.cpp を貼っておく。

// course_dataset_check.cpp
// 2018/09/27 by marsee
//

#include <iostream>
#include "hls_opencv.h"

#define DATASET_HEIGHT  10
#define DATASET_WIDTH   56

#define IMAGE_START_NUMBER  25
#define IMAGE_DISP_LENGTH   75

int main(){
    FILE *ftin, *ftln;
    char train_image_name[] = "train_course_run_image";
    uint8_t buf[600];
    char png_file[100];

    if ((ftin = fopen(train_image_name, "rb")) == NULL){
        fprintf(stderr, "Can't open %s\n", train_image_name);
        exit(1);
    }

    fread(buf, sizeof(uint32_t), 4, ftin); // header read

    for(int i=0; i<IMAGE_START_NUMBER; i++){
        fread(buf, sizeof(uint8_t), DATASET_HEIGHT*DATASET_WIDTH, ftin);
    }

    cv::Mat wlt_img(cv::Size(56, 10), CV_8UC1);

    for (int i=0; i<IMAGE_DISP_LENGTH; i++){
        fread(buf, sizeof(uint8_t), DATASET_HEIGHT*DATASET_WIDTH, ftin);

        for (int y = 0; y < wlt_img.rows; y++) {
            for (int x = 0; x < wlt_img.cols; x++) {
                wlt_img.at<uchar>(y, x) = buf[y*DATASET_WIDTH+x];
            }
        }
        sprintf(png_file, "output%d.png", i+IMAGE_START_NUMBER);
        cv::imwrite(png_file, wlt_img);
    }

    fclose(ftin);

    return(0);
}

  1. 2018年09月28日 04:45 |
  2. Zybot
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


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

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