Tensorflow-SDテストおよびトレーニング独自のデータセット
4577 ワード
一、##ソフトウェア##Python+Tensorflow+OpenCV 3
二、##取付試験##1、ssd_notebook.ipynbテスト(1)パッケージをダウンロードして解凍します.ソースコードGitHub:balancap/SDD-Tensorflow(2)端末を開き、ディレクトリパスに入り、実行:
(2)端末で直接実行する:
三、##自分のデータセットを訓練する##1、データ変換SSDは直接使用するVOCデータセットフォーマットではないので、それを特定のフォーマットに変換するには、tf_を使用するconvert_data.pyでデータ変換を行います.端末に変換コマンドを入力:
怠け者なので、私はこれらの変数を直接プログラムに代入し、直接実行することができます.
最後にデータをこのような形式に変換します:VOC 2007_000.tfrecordのファイル.2、トレーニングダウンロードネットワーク基本フレームワーク:VGG_16以降の実行:
私はやはりそれをプログラムの変数に代入して、直接実行することができます:
訓練は後期まで、より良い結果が得られず、微調整訓練も行うことができ、ここbalancap/SDD-TensorflowのREADMEを参考にする.md最後の部分.
ここでは、(1)解凍ファイルディレクトリの下でdatasets/pascalvoc_を見つけるcommon.py,自分のデータセットのカテゴリによってVOC_を変更するLABELS変数.(2)同様にdatasetsフォルダの下でpascalvoc_を模倣する.2012.pyファイルは、自分のデータセットと組み合わせて自分の類似ファイルを作成します.(3)もしあなたのデータとjpgフォーマットでない場合、発生したエラーに基づいて、プログラム中の対応位置をあなたの画像フォーマットに変更します.
最後に、自分のデータセットを訓練する過程でまだいくつかの問題が発生します.エラーのヒントに基づいて、アクセスの経路を見て、データフォーマットに問題があるかどうかを見て、さらに解決します.
参考:balancap/SDD-Tensorflow
二、##取付試験##1、ssd_notebook.ipynbテスト(1)パッケージをダウンロードして解凍します.ソースコードGitHub:balancap/SDD-Tensorflow(2)端末を開き、ディレクトリパスに入り、実行:
jupyter notebook notebooks/ssd_notebook.ipynb
2、pyスクリプトテストはnotebookメソッドを使用せず、pythonで直接実現します.(1)ルートディレクトリの下にPythonスクリプトファイルssd_を新規作成するPython.py、ssd_notebook.ipynbのコードはコピーされ、最後の数行のコードが変更され、img = mpimg.imread(path + image_names[-5])
に置き換えられます.for it in image_names:
img = mpimg.imread(path + it)
i+=1
if i>4: break
rclasses, rscores, rbboxes = process_image(img)
visualization.plt_bboxes(img, rclasses, rscores, rbboxes)
(2)端末で直接実行する:
Python ssd_Python.py
三、##自分のデータセットを訓練する##1、データ変換SSDは直接使用するVOCデータセットフォーマットではないので、それを特定のフォーマットに変換するには、tf_を使用するconvert_data.pyでデータ変換を行います.端末に変換コマンドを入力:
DATASET_DIR=./VOC2007/test/
OUTPUT_DIR=./tfrecords
python tf_convert_data.py \
--dataset_name=pascalvoc \
--dataset_dir=${DATASET_DIR} \
--output_name=voc_2007_train \
--output_dir=${OUTPUT_DIR}
怠け者なので、私はこれらの変数を直接プログラムに代入し、直接実行することができます.
python tf_convert_data.py
最後にデータをこのような形式に変換します:VOC 2007_000.tfrecordのファイル.2、トレーニングダウンロードネットワーク基本フレームワーク:VGG_16以降の実行:
DATASET_DIR=./tfrecords
TRAIN_DIR=./log/
CHECKPOINT_PATH=./checkpoints/vgg_16.ckpt
python train_ssd_network.py \
--train_dir=${TRAIN_DIR} \
--dataset_dir=${DATASET_DIR} \
--dataset_name=pascalvoc_2007 \
--dataset_split_name=train \
--model_name=ssd_300_vgg \
--checkpoint_path=${CHECKPOINT_PATH} \
--checkpoint_model_scope=vgg_16 \
--checkpoint_exclude_scopes=ssd_300_vgg/conv6,ssd_300_vgg/conv7,ssd_300_vgg/block8,ssd_300_vgg/block9,ssd_300_vgg/block10,ssd_300_vgg/block11,ssd_300_vgg/block4_box,ssd_300_vgg/block7_box,ssd_300_vgg/block8_box,ssd_300_vgg/block9_box,ssd_300_vgg/block10_box,ssd_300_vgg/block11_box \
--trainable_scopes=ssd_300_vgg/conv6,ssd_300_vgg/conv7,ssd_300_vgg/block8,ssd_300_vgg/block9,ssd_300_vgg/block10,ssd_300_vgg/block11,ssd_300_vgg/block4_box,ssd_300_vgg/block7_box,ssd_300_vgg/block8_box,ssd_300_vgg/block9_box,ssd_300_vgg/block10_box,ssd_300_vgg/block11_box \
--save_summaries_secs=60 \
--save_interval_secs=600 \
--weight_decay=0.0005 \
--optimizer=adam \
--learning_rate=0.001 \
--learning_rate_decay_factor=0.94 \
--batch_size=32
私はやはりそれをプログラムの変数に代入して、直接実行することができます:
python train_ssd_network.py
訓練は後期まで、より良い結果が得られず、微調整訓練も行うことができ、ここbalancap/SDD-TensorflowのREADMEを参考にする.md最後の部分.
ここでは、(1)解凍ファイルディレクトリの下でdatasets/pascalvoc_を見つけるcommon.py,自分のデータセットのカテゴリによってVOC_を変更するLABELS変数.(2)同様にdatasetsフォルダの下でpascalvoc_を模倣する.2012.pyファイルは、自分のデータセットと組み合わせて自分の類似ファイルを作成します.(3)もしあなたのデータとjpgフォーマットでない場合、発生したエラーに基づいて、プログラム中の対応位置をあなたの画像フォーマットに変更します.
最後に、自分のデータセットを訓練する過程でまだいくつかの問題が発生します.エラーのヒントに基づいて、アクセスの経路を見て、データフォーマットに問題があるかどうかを見て、さらに解決します.
参考:balancap/SDD-Tensorflow