影像分割模型為完成不同維度的任務提供了方法。開源空間已經監督了不同的計算機視覺任務及其應用。去除背景是模型多年來不斷探索的另一項影像分割任務。
Bria 的 RMGB v2.0 是一種最先進的模型,能以極高的精度和準確性進行背景去除。該模型是對舊版本 RMGB 1.4 的改進。該開源模型在不同的基準測試中都具有準確性、高效性和多功能性。
該模型可應用於從遊戲到圖片素材生成等多個領域。它的功能還與其訓練資料和架構有關,使其能夠在各種環境下執行。
- 瞭解 BraiAI 的 RMGB v2.0 模型的功能和先進性。
- 探索模型架構以及 BiRefNet 如何增強背景去除效果。
- 瞭解如何為影像分割任務設定和執行 RMGB v2.0。
- 瞭解 RMGB v2.0 在遊戲、電子商務和廣告領域的實際應用。
- 分析 RMGB v1.4 在邊緣檢測和準確性方面的效能改進。
RGMB如何工作?
該模型的工作原理很簡單。它將影像作為輸入(各種格式,如 Jpeg、PNG 等)。處理影像後,模型會輸出一個分割後的影像區域,去除背景或前景。
RGMB 還能提供掩碼,以便進一步處理影像或新增新的背景。
RGMB v2.0的效能基準
RGMB v2.0 在效能和準確性方面都優於其前身 RGMB v1.4。幾張影像的測試結果突出顯示了 RGMB v2.0 如何呈現更乾淨的背景。
雖然早期版本的效能不錯,但 RGMB v2.0 在理解複雜場景和邊緣細節方面樹立了新的標準,同時全面改進了背景去除效果。
請點選以下連結,測試早期版本與最新版本。
RGMB v2.0的模型架構
RMGB 由 BRAI AI 開發,基於 BiRefNet 機制。該框架是一種可執行涉及影像-背景分離的高解析度任務的架構。
這種方法在高解析度還原模型中結合了兩個來源的互補表徵。這種方法將對場景的整體理解(一般定位)與詳細的邊緣資訊(區域性)相結合,從而實現清晰、精確的邊界檢測。
RGMB v2.0 採用兩階段模型來利用 BiRefNet 架構:定位模組和復原模組。
定位模組生成代表影像主要區域的一般語義圖。該元件可確保模型準確表達影像的結構。有了這個框架,模型就能在考慮背景的情況下確定影像中物體的位置。
另一方面,還原模組有助於還原影像中物體的邊界。與第一階段在較低解析度下生成語義圖相比,該模組在高解析度下執行這一過程。
還原模組分為兩個階段:第一階段是原始參考,即原始影像的畫素圖,提供背景情況。第二個階段是梯度參考,提供細微邊緣的細節。梯度參考還能為邊界清晰、顏色複雜的影像提供背景資訊,從而幫助提高準確性。
這種方法在物體分離方面效果極佳,尤其是在高解析度影像中。BriRefNet 架構和模型訓練資料集可在各種基準測試中提供最佳結果。
如何執行該模型
即使在低資源環境下,您也可以執行該模型的推理。只需使用一張簡單的背景圖片,就能完全實現精確分離。
讓我們深入瞭解如何執行 RGMB v2.0 模型;
第 1 步:準備環境
pip install kornia
安裝 Konia 與這項任務息息相關,因為它是各種計算機視覺模型必不可少的 Python 庫。Konia 是基於 PyTorch 構建的可微分計算機視覺任務,可為影像處理、幾何變換、過濾和深度學習應用提供功能。
第 2 步:匯入必要的庫
from PIL import Image import matplotlib.pyplot as plt import torch from torchvision import transforms from transformers import AutoModelForImageSegmentation
這些庫都是執行該模型所必需的。PIL 在載入和開啟影像等影像處理任務中總能派上用場,而 matpotlib 則是顯示影像和繪製圖表的好幫手。
torch 能將影像轉換成與深度學習模型相容的格式。最後,我們使用 AutoModelForIMageSegmentation,它允許我們使用預訓練模型進行影像分割。
第 3 步:載入預訓練模型
model = AutoModelForImageSegmentation.from_pretrained('briaai/RMBG-2.0', trust_remote_code=True) torch.set_float32_matmul_precision(['high', 'highest'][0]) model.to('cuda') model.eval()
這段程式碼載入了預先訓練好的後臺移除模型,然後應用了 trust_remote_code=True
,因為它允許執行自定義的 Python 程式碼。下一行使用矩陣乘法最佳化效能。
最後,我們將模型移動到可用的 GPU 上,為推理做好準備。
第 4 步:影像預處理
這段程式碼定義了影像處理階段,將影像大小調整為 1024 x 1024,並轉換為張量。這樣,我們就有了平均值和標準偏差的畫素值。
transform.compose
函式以鏈式轉換的方式幫助處理輸入的影像操作,以確保影像得到統一處理。這一步驟還能將畫素值保持在一致的範圍內。
image_size = (1024, 1024) transform_image = transforms.Compose([ transforms.Resize(image_size), transforms.ToTensor(), transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225]) ])
第 5 步:載入影像
image = Image.open("/content/Boy using a computer.jpeg") input_images = transform_image(image).unsqueeze(0).to('cuda')
在這裡,我們載入影像併為模型做好準備。首先,使用“PIL”開啟影像,然後調整影像大小並將其轉換為張量。在將影像移動到 GPU 的“cuda”之前,還會為影像新增額外的批次維度,以加快推理速度並確保與模型的相容性。
第 6 步:去除背景
這段程式碼會根據模型預測生成分割掩碼,並將其應用於原始影像,從而去除背景。
with torch.no_grad(): preds = model(input_images)[-1].sigmoid().cpu() pred = preds[0].squeeze() pred_pil = transforms.ToPILImage()(pred) mask = pred_pil.resize(image.size) image.putalpha(mask)
這段程式碼透過從模型中獲取透明度掩碼來移除背景。它在不進行梯度跟蹤的情況下執行模型,應用 sigmoid() 獲得畫素機率,並將結果移動到 CPU。遮罩的大小會調整到與原始影像相匹配,並設定為其 alpha 通道,從而使背景透明。
輸入影像的結果如下,背景已去除,並與主要物件(男孩)分離。
下面是程式碼檔案。
使用RMGB v2.0移除影像背景的應用
該模型在不同領域有多種應用案例。一些常見的應用包括
- 電商:該模型可用於完成電子商務產品攝影,因為您可以移除和替換影像中的前景。
- 遊戲:移除背景在建立遊戲資產中發揮著巨大作用。該模型可用於將選定的影像與其他物件分離。
- 廣告:您可以利用 RMGB 的背景移除和替換功能生成廣告設計和內容。這些可以是影像,甚至是圖形。
小結
RMGB 廣泛應用於各行各業。從早期的 v1.2 到最新的 v2.0,該模型的功能也得到了改進。它的架構和對 BiRefNet 的利用在其效能和推理時間方面發揮了巨大作用。您可以使用各種影像型別來探索該模型的輸出和效能質量。
- 與前代產品相比,該模型的改進是 RMGB 工作原理的一個顯著方面。對上下文的理解是凸顯其效能改進的另一個方面。
- 該模型的突出之處在於它在廣告、遊戲和電子商務等各個領域的廣泛應用。
- 該模型的顯著特點是易於執行和整合。這得益於其獨特的架構,該架構允許其在低資源環境中執行,推理時間短。
評論留言