差分
このページの2つのバージョン間の差分を表示します。
次のリビジョン | 前のリビジョン | ||
segmentation [2021/04/22 09:57] – 作成 baba | segmentation [2023/03/16 00:31] (現在) – baba | ||
---|---|---|---|
行 1: | 行 1: | ||
====== Semantic Segmentation ====== | ====== Semantic Segmentation ====== | ||
視覚障害支援用途の領域分割アノテーションを実施して、認識モデルに持っていくまでの馬場の忘備録。論文執筆用に引用などもメモしていきます。 | 視覚障害支援用途の領域分割アノテーションを実施して、認識モデルに持っていくまでの馬場の忘備録。論文執筆用に引用などもメモしていきます。 | ||
+ | |||
+ | 令和5年3月15日現在、5000枚程度の画像アノテーションを済ませており、このvidvipデータセットを使い、推論用のモデル生成までの流れを以下にまとめます。 | ||
+ | |||
+ | ===== vidvip segmentationデータセット ===== | ||
+ | vidvipでは令和5年3月15日現在で、5698枚の画像に対して、99953箇所のセグメンテーションによるアノテーションが作成されています。この画像セットはvidvip object detectionと同様の画像セットや一部都立大中庭を利用したデータセットになっており、アノテーションの種類に偏りがあるunbalancedなデータセットです。本データセットの詳細は以下の通り。上から順にアノテーション数、各ラベルの登録頂点数に関する箱ひげ図、各ラベルの登録面積[pixel^2]の箱ひげ図となっている。 | ||
+ | |||
+ | {{:: | ||
+ | |||
+ | {{:: | ||
+ | |||
+ | {{:: | ||
+ | |||
+ | |||
+ | ===== 学習データの準備 ===== | ||
+ | すでにvidvip segmentation(以下 vidvips)はYOLOのtxt形式に倣った形でラベル番号と頂点数を記述したアノテーションファイルと画像ファイルの集合で構成されている。アノテーションファイルと画像ファイルは同名ファイルであり、拡張子はそれぞれ .txt, .jpgで決め打ちしている。.jpegや.JPG, | ||
+ | - .jpg, .txtのファイルを全て all(ファイル名は任意)フォルダにコピーする | ||
+ | - imagemagickのmogrifyコマンドを利用して全てのjpegファイルを一括して横幅600px(アスペクト比は固定)に変更する | ||
+ | - .txtのアノテーション情報を labelmeのjson形式に変換 | ||
+ | - labelme2voc.py を利用して、アノテーション情報を元に領域分割した画像ファイル(.jpg, | ||
+ | - remove_gt_colormap.py (deeplabに含まれている)を利用して上記で生成した領域分割画像ファイルをグレースケール化する | ||
+ | - jpgファイル及びグレースケール化したpngファイル群をdeeplabに同梱されているpythonスクリプトを利用してtfrecord化する | ||
+ | |||
+ | 以下に各手順の詳細を記述します。 | ||
+ | |||
+ | ==== .jpg, .txtのファイルを全て all(ファイル名は任意)フォルダにコピーする ==== | ||
+ | vidvip object detection(以下vidvipo)のときも同様であるが、一括操作の場合ファイル数があまりに多いと通常のコマンド操作では対応できないため、findコマンドを利用して一つずつコピー処理をしていく。vidvipsのデータはSegmentation/ | ||
+ | find ./ | ||
+ | find ./ | ||
+ | これで少々時間はかかるが全ての画像、アノテーションファイルが ./all ディレクトリにコピーできる。 | ||
+ | |||
+ | ==== imagemagickのmogrifyコマンドを利用して全てのjpegファイルを一括して横幅600px(アスペクト比は固定)に変更する ==== | ||
+ | まずは imagemagick をinstall( https:// | ||
+ | mogrify -resize 600x *.jpg | ||
+ | |||
+ | ==== .txtのアノテーション情報を labelmeのxml形式に変換 ==== | ||
+ | vidvipsのアノテーション形式はyolo形式を拡張したもので、馬場が勝手に定義したものです。このアノテーション情報から領域分割画像を各画像ごとに生成してしまえば良いわけです。生成プログラムを記述することも可能ですが、ここでは labelme を利用してlabelmeへのアノテーション情報変換を行うことで、領域分割画像生成を行います。このスクリプトはCSIの慎さんが作成してくれた、text2json.py を利用します。 | ||
+ | |||
+ | ==== labelme2voc.py を利用して、アノテーション情報を元に領域分割した画像ファイル(.jpg, | ||
+ | |||
+ | ==== remove_gt_colormap.py (deeplabに含まれている)を利用して上記で生成した領域分割画像ファイルをグレースケール化する ==== | ||
+ | |||
+ | ==== jpgファイル及びグレースケール化したpngファイル群をdeeplabに同梱されているpythonスクリプトを利用してtfrecord化する ==== | ||
+ | tfrecordはtensorflowを利用して学習を行う際のデータセット形式です。deeplabやその他画像認識では必ずこのtfrecord化が必要になります。 | ||
+ | |||
+ | |||
+ | |||
===== 参考文献 ===== | ===== 参考文献 ===== |