Webサービスを開発していると、画像を扱う機会は意外と多いです。
ユーザーがプロフィール画像をアップロードしたり、ECサイトで商品画像を登録したり、投稿された画像を加工したりするケースがあります。
画像のリサイズや圧縮、フォーマット変換などは、既存のライブラリを使えば比較的簡単に実装できます。
一方で、「画像の中に何が写っているか」を判断する必要がある処理は少し違います。
たとえば、画像の背景を削除したり、不要なオブジェクトを取り除いたりする処理です。
こうした部分では、AIを使うことで開発時の負担を減らせる場合があります。
すべてをAIに任せる必要はない
AIを導入するときに、画像処理をすべてAIに任せようとする必要はないと思います。
むしろ、処理内容によって役割を分けたほうが扱いやすいです。
例えば、
画像サイズ変更
→ 通常の画像処理ライブラリ
フォーマット変換
→ 通常の画像処理ライブラリ
背景の判定・削除
→ AI
画像内の不要なオブジェクトの処理
→ AI
最終的な表示・保存
→ アプリケーション側
というように分けることができます。
ルールが明確な処理までAIに任せる必要はありません。
画像の内容を理解する必要がある部分だけAIに任せることで、システム全体をシンプルにできます。
背景削除を例に考える
例えば、商品画像を扱うWebサービスを作るとします。
ユーザーがアップロードする写真には、白い背景のものもあれば、机や部屋が写っているものもあります。
商品だけを切り抜きたい場合、すべての画像を手作業で処理するのは現実的ではありません。
そこで、アップロード後にAIによる背景削除を入れる方法があります。
ユーザーが画像をアップロード
↓
ファイルをチェック
↓
オリジナル画像を保存
↓
AIで背景を削除
↓
結果を確認
↓
加工後の画像を保存
開発者が画像セグメンテーションのモデルを一から作らなくても、既存のAIツールを利用して、このようなワークフローを試すことができます。
例えば、Remover.work のようなAI画像処理サービスを使って、背景削除などの処理を試してみるのも一つの方法です。
オリジナル画像は残しておく
実際のサービスに組み込む場合、加工前の画像を保存しておくこと
