DeepFaceLab參數詳解之亮斑殺手threshold。
threshold直接翻譯為: 門檻; 門口; 閾; 界。其實他背後的意思是「圖像二值化」 ,Opencv有專門的threshold函數。在DFL中最直接體現就是,這個值越大畫面越亮,值越小,畫面就越暗。常用來解決鼻子上有亮斑的問題。
圖像的二值化,就是將圖像上的像素點的灰度值設置為0或255,也就是將整個圖像呈現出明顯的只有黑和白的視覺效果。一幅圖像包括目標物體、背景還有噪聲,要想從多值的數字圖像中直接提取出目標物體,常用的方法就是設定一個閾值T,用T將圖像的數據分成兩部分:大於T的像素群和小於T的像素群。這是研究灰度變換的最特殊的方法,稱為圖像的二值化(Binarization)。
threshold實操
改參數位於第七步convert環節。雙擊啟動腳本後。選擇(2) hist-match ,兩個回車後可以看到 Hist match threshold
這個參數的默認值為255,取值範圍為0~255。大部分情況下我們都是直接回車採用默認值。比如我們使用DeepFaceLab官方自帶的視頻來訓練模型,訓練好之後轉換完圖片,合成後就會發現一些問題。
比如上圖,在鼻子旁邊有很明顯的黃色亮斑。
其他圖片中也有類似的情況,對於完美主義者來說,這個亮斑足以讓你抓狂了吧。 更抓狂的你是不知道為什麼會出現這個亮斑,自然不知道如何解決這個問題。
threshold調優
其實,要解決這個問題非常簡單。只要把值調低即可。下面來對比幾組圖片。
threshold=255 (默認值)
threshold=245 (默認值)
threshold=238 (默認值)
對比三組圖片。第一組亮斑很明顯,第二組亮斑減弱,第三組亮斑消失。
上圖為同一張圖,threshold值不斷變小的效果。從255->238->100->0的過程中,亮斑逐漸消失,然後出現半透明遮罩,到最後全部變黑。
通過這幾組圖片大家對這個參數應該有非常直觀的認識了。
在620版本中,threshold的默認值為255,所以比較容易出現這樣情況。而在907版本中作者主動調優了,把默認值設置成了238。
threshold=238在大部分情況下都可以呈現比較好的效果。當然,你也可以適當調整這個值,獲取你需要的亮度。