目的
- レシートと背景が写った写真からレシートをくりぬきたい
- Rembgってすごいらしい
- なんか画像処理っぽいことしたい
前回のあらすじ
今回はrembgをやってみたいと思いました。原理とか理論とかは参考文献を参照してください。
最近のDeepleaningはすごいですね。恐ろしく簡単に背景消せるんだ、と思いました。
環境
- Windows11 Home
- VSCode
- Python3.10
- pip
rembg
本編
参考:
Rembgをpipでインストールします
pip install rembg
プログラムを作成します
基本的に1行で切り抜きしてくれます。めちゃくちゃ楽。
import cv2
import os
import glob
import rembg
def save(name, image, format='.jpg'):
cv2.imwrite( name + format, image)
def doTrim(filename):
img = cv2.imread(DATA_DIR + filename)
output = rembg.remove(img)
save(filename+'1', output)
DATA_DIR='data/'
for p in glob.glob(DATA_DIR+'*.jpg'):
if os.path.isfile(p):
target=os.path.basename(p)
print(target)
doTrim(target)
変換結果
前回うまくいかなかったものもあっさり良い感じに切り抜けました。
(こんなに簡単にできてしまうと逆につまらない感じ。。。)
元画像
変換後
終わりに
今回GPUを使用しないで実行しましたが、1枚当たり3秒くらいの処理時間でした。
GPU使うともっと速くなるかも。