Anacondaを使用してMacでDeepLabのデータセット作成

Deeplabで使用するtfrecord形式のデータセット作成について、ググりながら試した結果まとめ。データセットが正しいかは今後確認。

データの準備

以下フォルダをコピーする。

tensorflow/models/research/deeplab/datasets

datasets配下の以下フォルダを空にしてオリジナル画像を配置する。

datasets/pascal_voc_seg/VOCdevkit/VOC2012/JPEGImages

以下フォルダを空にしてクラス画像(元画像をクラスごとに色分けした画像)を配置する。(拡張子は別でもよい)。

datasets/pascal_voc_seg/VOCdevkit/VOC2012/SegmentationClass

以下フォルダにデータセットのリストを配置する。"trainval.txt"には全データのリストを、"train.txt"には学習用データのリストを、"train.txt"には評価用データのリストを記述する。
データ名は画像ファイルから拡張子を除いたものになる。

datasets/pascal_voc_seg/VOCdevkit/VOC2012/ImageSets/Segmentation

以下フォルダにクラス画像をグレースケールに変換した画像が出力されるので空にしておく。

datasets/pascal_voc_seg/VOCdevkit/VOC2012/SegmentationClassRaw

以下フォルダにTFRecord形式のデータセットが出力されるので空にしておく。

datasets/pascal_voc_seg/tfrecord

シェルスクリプトの編集

datasets/download_and_convert_voc2012.sh
60行目をコメントアウトする。

download_and_uncompress "${BASE_URL}" "${FILENAME}"

オリジナル画像がPNG形式の場合は89行目の"jpg"を"png"にを変更。

  --image_format="jpg" \

実行結果(学習用データ50、評価用データ20の場合)

bash-3.2$ sh download_and_convert_voc2012.sh 
Removing the color map in ground truth annotations...
Converting PASCAL VOC 2012 dataset...
2019-07-10 17:02:53.089322: I tensorflow/core/platform/cpu_feature_guard.cc:141] Your CPU supports instructions that this TensorFlow binary was not compiled to use: SSE4.1 SSE4.2 AVX AVX2 FMA
2019-07-10 17:02:53.089654: I tensorflow/core/common_runtime/process_util.cc:69] Creating new thread pool with default inter op setting: 4. Tune using inter_op_parallelism_threads for best performance.
>> Converting image 1/50 shard 0WARNING:tensorflow:From ./build_voc2012_data.py:116: FastGFile.__init__ (from tensorflow.python.platform.gfile) is deprecated and will be removed in a future version.
Instructions for updating:
Use tf.gfile.GFile.
>> Converting image 13/50 shard 0
>> Converting image 26/50 shard 1
>> Converting image 39/50 shard 2
>> Converting image 50/50 shard 3
>> Converting image 18/70 shard 0
>> Converting image 36/70 shard 1
>> Converting image 54/70 shard 2
>> Converting image 70/70 shard 3
>> Converting image 5/20 shard 0
>> Converting image 10/20 shard 1
>> Converting image 15/20 shard 2
>> Converting image 20/20 shard 3


多分これでtfrecoed形式のデータが作成できたはず。
正しくデータが作成できたかはこのデータでモデルを作成してテストしてから。 ■

この記事が気に入ったらサポートをしてみませんか?