教學文章

去背後有白邊、毛邊怎麼辦?AI 去背的原理、邊緣處理與存檔格式

約 7 分鐘艾迪爾工作室

把商品照或人像去背之後,放到白色的網頁上看起來很完美;換到深藍或黑色的背景,主體周圍卻浮出一圈淡淡的白邊。頭髮的地方更明顯,像是被一層霧包住。很多人第一個反應是「去背沒去乾淨」,於是用橡皮擦一圈一圈修,修到頭髮變成剪紙。

其實白邊大多不是「多留了背景」,而是邊緣那一圈半透明的像素,顏色裡本來就混著原來的背景色。這篇從透明度怎麼存開始,說明 AI 去背實際在做什麼、白邊與毛邊的成因、各種情況該怎麼處理,以及最常見的存檔錯誤。

去背其實是在算一張「透明度地圖」

一張去背後的圖,每個像素除了紅、綠、藍三個顏色之外,還多了一個 alpha(不透明度)數值:0 是完全透明,最大值是完全不透明,中間的數值就是半透明。AI 去背模型做的事情,就是對每一個像素猜出這個數值,產生一張黑白的「遮罩」,白的地方留下、黑的地方挖掉、灰的地方半透明。

關鍵在那些灰色的像素。主體的輪廓、頭髮、毛衣的絨毛、玻璃杯的邊緣,在原始照片裡本來就是前景與背景「混在同一個像素裡」:一根髮絲比一個像素還細,那個像素拍到的顏色就是一部分頭髮、一部分背景牆。理想的遮罩會給它一個介於中間的 alpha,而不是硬切成 0 或 1。

站上的去背工具用的是 BiRefNet,一個專門做「高解析度二分影像分割」的開源模型(MIT 授權)。它的特點是同時參考整張圖的大範圍資訊與局部的細節,對髮絲、鏤空、細長的物體比傳統的分割模型準。模型內部把圖統一縮到 1024 × 1024 計算遮罩,再放大貼回原尺寸,所以輸出的圖仍是原本的解析度。

白邊、綠邊是從哪裡來的

照片裡邊緣像素的顏色,可以想成「前景色 × 不透明度 + 背景色 × (1 − 不透明度)」。例如在白牆前拍的黑髮,髮梢某個像素是 40% 頭髮、60% 白牆,拍到的就是一個偏淺的灰色。

去背時,模型正確地把這個像素的 alpha 設成 40%,但顏色仍然是那個「混了白牆」的淺灰。等你把它放到黑色背景上,合成出來是 40% 淺灰 + 60% 黑色,比真正的黑髮亮很多——一整圈這樣的像素,就是你看到的白邊。綠幕拍攝時同樣的道理會變成綠邊,這在影視後製叫做「溢色」(color spill)。

各種邊緣問題的處理方式

症狀原因處理方式
深色底上出現一圈淺色光暈邊緣半透明像素混到原本的淺色背景開「邊緣去色」,把邊緣顏色推回主體色
綠幕拍的人邊緣發綠綠色溢色同上;拍攝時讓人離綠幕遠一點,溢色會少很多
頭髮變成一塊硬邊、髮絲不見模型把髮絲區域判成全有或全無改用「高品質」模型;原圖解析度太低時髮絲本來就分不出來
主體缺一角、手指被切掉主體與背景顏色太接近,或主體不明確換模型再試;或換一張背景對比較大的照片
背景的一部分被留下來模型把背景物件當成主體的一部分先把圖裁切到只剩主體,再去背
玻璃杯、婚紗、煙霧變成實心或整個不見真正的半透明物體,遮罩很難估AI 去背的弱項;需要的話用影像軟體手動調整

「邊緣去色」的原理是反推:既然知道這個像素的 alpha 和原本背景的顏色,就能把背景的貢獻扣掉,估出比較接近主體本身的顏色。站上的工具可以調整強度,處理過後換任何底色都比較乾淨。它不會改變遮罩,所以不會把髮絲削掉。

不建議用「收縮選取範圍」或橡皮擦把邊緣整圈削掉。這樣白邊確實不見了,但主體也瘦了一圈,頭髮與毛料的柔軟感完全消失,放在任何背景上都像貼紙。

拍的時候就能讓去背更乾淨

模型再強,輸入的照片還是決定了上限。如果照片是自己拍的,下面幾點可以讓去背一次到位:

  • 背景單純、跟主體顏色差距大。白色商品用深色背景,深色商品用淺色背景。
  • 主體與背景之間留一點距離,減少背景反光打到主體上(溢色就是這樣來的)。
  • 對焦在主體上,邊緣清楚。景深太淺導致邊緣糊掉的話,模型只能把糊的部分一起切成半透明。
  • 解析度夠。髮絲在原圖裡至少要看得出一根一根,模型才有東西可以分。
  • 避免主體被畫面邊緣切到一半,模型比較容易判斷哪一個是主角。

存檔格式:為什麼存成 JPG 背景又變白了

JPG 格式本身沒有透明度的欄位。透明背景的圖存成 JPG 時,軟體只能把透明的地方填上一個顏色(通常是白或黑),透明就這樣消失了。這是去背後最常見的錯誤,而且常常發生在「另存新檔」或上傳到某些會自動轉檔的平台時。

格式支援透明適合用途
PNG支援,每個像素都有自己的不透明度去背成品、要再編輯的素材、簡報、貼圖
WebP支援網頁上用,檔案比 PNG 小
JPG不支援已經換好底色、不需要透明的成品
GIF只有「全透明或不透明」兩種不適合,半透明的邊緣會變成鋸齒

PNG 的壓縮是無損的,加上多了一個透明度通道,所以去背後的 PNG 常常比原本的 JPG 大好幾倍,這是正常的。如果最後的用途其實不需要透明(例如電商主圖本來就要白底),直接選白色底再輸出,檔案會小一些,邊緣也已經合成好了,不怕到了別的平台又被轉壞。

一個實際的流程

  1. 先把照片裁到主體佔畫面的大部分,背景雜物越少越好。
  2. 用標準模型去背,換到黑底和白底各看一次。
  3. 髮絲或毛料不滿意,換高品質模型再跑一次。
  4. 深色底上有白邊,打開邊緣去色,強度從中間開始調。
  5. 要透明就下載 PNG;不需要透明,直接選好底色再下載。
  6. 放到最後要用的地方(簡報、網頁、拍賣平台)實際看一次,確認沒有被轉成 JPG。

站上的圖片去背在你的瀏覽器裡執行,照片不會上傳,換底色不用重算。商品照、證件照換底、貼圖素材都可以直接用;處理別人的圖片時,請先確認你有使用的權利。

常見問題

去背後頭髮一團霧霧的,是模型不好嗎?
不一定。髮絲區域本來就應該是半透明的,霧霧的感覺多半是邊緣混到了原本的背景色。先試「邊緣去色」;如果髮絲根本沒被分出來(整塊被切掉或整塊留著),才是換高品質模型的時機。
可以只用白底,不要透明嗎?
可以。選白色底後下載,邊緣會直接和白色合成好。電商主圖、證件照這類本來就要特定底色的用途,直接輸出底色反而比較不會出錯。
為什麼同一張圖換個模型結果差很多?
兩個模型的大小與訓練程度不同,對「哪一個是主體」的判斷也會不同。主體明確的照片差別不大;背景複雜、主體不明確的照片,差別就會很明顯,值得兩個都試。
去背後放大會不會讓邊緣變糊?
會。遮罩是照原圖尺寸產生的,事後再放大,半透明的邊緣也會跟著被拉寬。需要大圖的話,建議先把原圖放大,再去背。

參考資料

法規與平台規定可能調整,實際以官方最新公告為準。內容有錯誤歡迎寫信告訴我們。