DeepLabに与えるセグメンテーション画像のクラス数

自作データセットでテストした時に発生したエラーについてメモ。

下の画像は背景=黒、肌=赤、紙=緑、目=黄、鼻=青、口=紫の6個にクラス分けするつもりで作ったもの。

一見ちゃんと出来ているように見える。
ところが実際には減色、色置換で統合する過程でミスしていて、微妙にインデックス6の黒(#000000)で塗られた領域が存在している。
拡大するともみあげに数ドット黒が存在するが、カラーマップを変更すると背景と別のインデックスが割り振られていることがわかる。

TFRecords変換のスクリプトはインデックスで画像を見ているので、この画像を食わせると、もみあげの数ドットは7個目のクラスとされてしまう。
それに気づかずにtrain.pv~export_model.pyでクラス数=6として処理しようとすると、InvalidArgumentErrorが発生してしまう。

解決策は一旦フルカラーに変換してからインデックスカラーに戻すこと。(インデックスの並びには注意) ■

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