前提
Google colabで画像の合成を行い、Google Driveに保存するプログラムを作っています。
しかし、RAMをかなり消費してしまうようでエラーが出てしまいます。
BicubicをNEARESTに変えたりしましたが結果は同じでした。
(後述のコードでは700GBぐらいのデータ量になってしまうためエラーが起きてしまいます。)
そこで、リスト作らずに目的を果たしたいのですが、どのようにすれば良いのか分かりません。
このセルの前に
combined_I = []
FG_D = []
BG_D = []
GT_D = []
Trimap_D = [] を作成済みになります。
実現したいこと
・合計2700枚の画像を合成してファイルに保存したい
発生している問題・エラーメッセージ
RAMを全て消費し、セッションがクラッシュしました。
該当のソースコード
python
1for i,(FG,GT,Trimap) in enumerate(zip(FG0,GT0,Trimap0)): 2 fg = np.array(FG, np.float32) 3 trimap = np.array(Trimap, np.float32) 4 h,w = fg.shape[:2] 5 6 for j,BG in enumerate(BG0): 7 alpha = np.zeros((h, w, 1), np.float32) 8 alpha[:, :, 0] = GT / 255 9 bg = np.array(BG,np.float32) 10 bg = Image.fromarray(np.uint8(bg)) 11 bg = np.asarray(bg.resize((w,h),Image.Bicubic)) 12 13 comp = alpha * fg + (1 - alpha) * bg 14 comp = np.asarray(comp)#PIL 画像を numPy 配列に変換 15 comp = comp.astype(np.uint8) 16 17 combined_I.append(comp) 18 FG_D.append(FG) 19 BG_D.append(BG) 20 GT_D.append(GT) 21 Trimap_D.append(Trimap)
試したこと
BicubicをNEARESTに変更
補足情報(FW/ツールのバージョンなど)
BG...2000×2000ピクセル、カラー、100枚
GT...3200×1900ピクセル(ばらつきあり)、グレー、27枚
FG...3200×1900ピクセル(ばらつきあり)、カラー、27枚
Trimap...3200×1900ピクセル(ばらつきあり),グレー、27枚
GT、FG、Trimapはそれぞれ同じサイズの画像が1セットずつあるデータセット
回答1件
あなたの回答
tips
プレビュー