2025年3月19日水曜日

画像の背景を削除する GrabCutter を作った

画像の背景を削除する GrabCutter を作りました。 名前の通り GrabCut アルゴリズムを使っています (安直)。 前景と後景をアノテーションできるようにしておいたので、 削除と復元の微調整しやすいのが利点です。



こんな感じの背景透過画像がサクッと作れます。



割と大きめの画像でも 初回実行は 1秒以内、微調整は一瞬という感じです。 とはいえ巨大な画像はさすがに重いので、ROI を作って部分適用したほうが良いかも知れません。 他にも共有メモリで分散処理はどんなアルゴリズムでも検討したいところですが、今回はそこまで作ってないです。 AI を使わない時にどれくらい精度が出るのかの勉強用で作りましたが、 AI なしでも割と良い精度です。せいぜい 2-3回の微調整で十分な結果が得られるので、 これはこれでアリじゃないかなあ。

グラフカットの試行回数がパラメータで設定できるのですが、まったく必要ない気がします。 試行回数が増えても遅くなるだけなので、1回で固定して微調整で修正したほうが良いです。 alphamat をさらに考慮する方法などもあるっぽいことに後から気付きましたが、 ものすごい時間が掛かるみたいなので、現状はこれでいいかなと。

0 件のコメント: