趣味でソフトウェアの自作を先月半ばから始めた。大した理由はなくて画像生成AIで遊んでてAIの学習させるのに大量にある画像データ一つ一ついじるの面倒なのでまとめて処理できるツール作った方が自分だけでなく他の人にも役に立つだろうと追う軽い考え。


streamlitをベースに作ってる。streamlitでUI作って、関数呼び出して処理するプログラム。関数は

①画像形式変換

②パノピックセグメンテーション

③セグメントクロッピング&フィリング

④リサイズ(アスペクト率オプション有り)

⑤正規化

⑥平均化

⑦画像、文章水増し


⑤以外は出来た。動作確認済み。②に1週間消費した。この界隈の文化がわかっていないのもあってモデルの扱いが分からず、同じ名前のモデルの前処理や後処理の関数を間違えていたり。パノピックにDETRを使ってるんだけど、セマンティックスIDを最終層から取得して後処理関数でそれの名前を取得する方法が分からない。以前huggingfaceで見た記憶があるくらい。


取り敢えず、雑なクラスリストを拝借してIDを取得するようにした。で生成したパースリスト情報とパースした画像を確認すれば名前がわかるのでクロップもフィルもできる。ただ適当なクラスなのでバッチ処理に対応できていない。正規化、パノピック以外(平均化はバッチ対象外)はバッチ処理対応済み。大体作れちゃったので作成自体はこれからゆっくりにしてAI学習を楽しみたい。