トップ > 【TensorFlow】VoTTをTensorFlow Object Detection APIで利用する方法を紹介します!
更新日 2023/7/29

【TensorFlow】VoTTをTensorFlow Object Detection APIで利用する方法を紹介します!

VoTTは画像と動画のオブジェクトをタグ付けするツールです。このページではVoTTをインストールして画像をタグ付けしてTensorFlow Object Detection APIで学習できるデータを準備するまでの流れを紹介します。


VoTTのインストール

VoTTリリースページからvott-2.2.0-win32.exeをダウンロードしてダブルクリックするとインストールが開始されます。

VoTT_Download

プロジェクトの作成

今回は果物をタグ付けするのでfruitsというフォルダ名にしました。その下に画像を配置するsourceフォルダーとプロジェクトファイルやエクスポートデータを格納するtargetフォルダを作成します。

VoTT_Folder

新規プロジェクトを作成します。

VoTT_NewProject

①表示名にfruitsを入力します。
②ソース接続のAdd Connectionボタンをクリックします。

VoTT_ProjectSettings

③表示名にfruits sourceを入力します。
④プロバイダーにローカルファイルシステムを選択します。
⑤フォルダーパスのフォルダーを選択ボタンからsourceフォルダを選択します。
⑥フォルダーパスを確認して下さい。
接続を保存ボタンをクリックします。

VoTT_ProjectSettings2

⑧ソース接続をSelect Connectionからfruits sourceに変更します。

VoTT_ProjectSettings3

⑨ターゲット接続もソース接続と同様に設定します。
プロジェクトを保存ボタンでプロジェクトを保存します。

VoTT_ProjectSettings4

ターゲット接続したフォルダーにプロジェクトファイルが保存されます。


画像の対象をタグ付けする

タグ付けする前にソース接続したフォルダーに画像をコピーしておきます。

VoTT_CopyImagesToSouceFolder

タグエディタータブをクリックします。
②TAGSの⊕ボタンを押して入力フィールドにタグ名を入力してリターンキーを押します。

VoTT_Tagging

③タグを必要なだけ追加します。

VoTT_Tagging2

長方形を描くツールをクリックします。
⑤対象をドラッグして長方形で囲います。
⑥設定したいタグ名をクリックします。

VoTT_Tagging3

全ての対象をタグ付けします。

VoTT_Tagging4

全ての画像ファイルに対してタグ付けを行います。

VoTT_Tagging5

エクスポート

TensorFlowレコード(TFRecord)ファイルをエクスポートします。

エクスポートタブをクリックします。
②プロバイダーをTensorFlow レコードにします。
③アセットの状態をタグ付きアセットのみにします。
エクスポート設定を保存ボタンを押して保存します。

VoTT_ExportSettings

タグエディタータブをクリックします。
プロジェクトをエクスポートボタンを押してエクスポートします。

VoTT_Export

ターゲット接続したフォルダー以下にエクスポートされます。

VoTT_Exported

各画像のtfrecordファイルとtf_label_map.pbtxtが生成されます。
各tfrecordファイルには画像とタグ付けしたデータが保存されています。
tf_label_map.pbtxtはテキストファイルでタグデータが羅列されています。

item {
id: 1
name: 'apple'
}
item {
id: 2
name: 'orange'
}
item {
id: 3
name: 'grape'
}
item {
id: 4
name: 'strawberry'
}
...

学習に必要なデータを準備する

TensorFlow Object Detection APIで学習できるようにデータを準備します。
エクスポートされた個々のTFRecordファイルを結合して学習用と検証用のファイルを作成します。

学習に必要なファイル
学習用TFRecordファイルtrain.tfrecord
検証用TFRecordファイルval.tfrecord
ラベルファイルtf_label_map.pbtxt

tfrecordを結合して学習用と検証用ファイルを生成するPythonスクリプトをGitHubで公開していますのでご活用ください。

https://github.com/npedotnet/tf-utils/blob/main/tfod_traindata_generator.py

次のコマンドで学習用データを作成します。

python tfod_traindata_generator.py Z:\vott\fruits\target\fruits-TFRecords-export 0.8

第1引数ははフォルダー名、第2引数は学習用データの比率です。
第2引数が0.8の場合、8割は学習用データになり残りの2割は検証用データになります。
学習用データはtrain.tfrecord、検証用データはval.tfrecordという名前で出力されます。

今回作成したデータをTensorFlow Object Detection APIで利用する記事を作りましたのでご覧下さい。

ts_object_detection
【TensorFlow】TensorFlow Object Detection APIで物体検出する方法を紹介します!2023/7/31

VoTTでタグ付けしてTensorFlow Object Detection APIで学習できるデータを作成しました。
このデータを利用して物体検知できるプログラムの作成に挑戦してみてください。


ラベルファイルをJSON化する

ラベルマップファイル(tf_label_map.pbtxt)はPythonで使うのであれば問題ないのですが、他の言語から利用するには不便な形式なのでJSON化しておくと便利です。

オンラインコンバーターのうにぉ昆布ではラベルファイルをJSONにする機能がありますのでご利用ください。

VoTT_UnixoConv

tf_label_map.pbtxtを読み込ませます。
②メニューをTFラベルマップJSONにします。
ダウンロードボタンからダウンロードします。


関連ページ


Copyright ©2022 - 2024 うにぉらぼ