Contents ...
udn網路城邦
JPG壓縮對影像辨識很不友善!PNG就好很多!
2026/05/27 02:21
瀏覽175
迴響0
推薦2
引用0

上面是一張從我的動態辨識軟體中辨識到的車牌影像,在前端的辨識當下我的軟體很正確的說它是KLJ-8299!但是經過JPG壓縮存檔,我事後用我的實驗軟體開啟這張影像時,初步辨識的答案卻變成奇怪的CLJ-0799了?這種現場與事後的影像辨識結果不同的現象很常見的!尤其是目標較小的車牌影像,情況就更為嚴重!

有很長一段時間我覺得莫名其妙?在辨識現場趕時間辨識的正確率反而比事後實驗時使用較完整辨識程序的辨識率更高?好像沒有道理?但是經過很多案例研究之後,我才知道這都是JPG壓縮處理惹的禍!如果我不怕浪費磁碟存檔的空間,使用PNG格式存檔就完全不會有這種落差。

最簡單含糊的JPG壓縮概念,就是將逐點排列的影像原始資料用圓滑的SinCos函數來描述,但是這種函數先天就無法正確表示出平直同色的區塊,或斷崖式的顏色變化!即使明明是一段顏色完全相同的區域,經過JPG壓縮之後就是會變得有微微的起伏!這種函數就是會忍不住要波動的嘛!正弦函數沒有完全平直的部分

所以將壓縮過的車牌影像放大後就會看出這種莫須有的波動!譬如K的中間莫名其妙變得較暗?二值化處理之後就被切斷成好像IC兩個字元了!8字的中間也是一樣沒道理的變暗,中央橫線被截斷時就很像是個0了!2字的底部長直線也因此波動而斷裂變成好像是7了!

所謂的JPG壓縮品質就是你要用多複雜的Sin函數去轉換原始影像?函數越複雜越高頻當然這種異常波動的幅度就越小,但檔案壓縮的效率就越差!多數情況下寫程式呼叫JPG壓縮時都無法設定壓縮比的!因此作影像辨識時,這種干擾的狀況是越小的目標越嚴重!小於15畫素高的目標就是重災區了!

如果是停車場出入口的使用情境,我們可以在車牌很近很大很清楚的情況下做辨識,這些JPG造成的異常波動雜訊就微乎其微毫無影響的!但是如果是道路情境的辨識呢?不管距離遠近都是要盡量辨識的!越挑食就會漏掉越多經過畫面的車牌!俗話說是「漏車」,正式的說法就是車牌的「擷取率」太差啦!

我賣的動態軟體都是直接辨識螢幕畫面的,也就是那些影像還沒經過JPG壓縮,所以影像正確率比壓縮存檔之後的品質更好!如果客戶希望存檔後的辨識結果也不要變差我就會建議他們使用PNG格式存檔了!PNG的壓縮方式這種失真程度就非常低了!

但是我的靜態辨識軟體如辨識引擎,是辨識已經存成檔案的車牌影像,而多數影像都是以JPG格式存的,所以我的辨識軟體也必須有相當的抵抗這種JPG失真的辨識能力!所以事實上上面的案例最終我還是可以用多種模式的辨識得到正確答案的!譬如破碎的K形成的假IC字元,因為字距太近就會被重新考慮湊成一個單字K了!

很多人都知道檔案壓縮有「失真」與否的差別,譬如ZipRar壓縮就是完全不失真,解壓縮之後可以完全恢復原貌,但是JPGPNGGif等影像壓縮都是會失真無法百分之百復原的!所以我們不可能經過解壓縮再辨識就可以消除JPG產生的失真問題!你必須知道的是:JPG壓縮對影像辨識干擾最大!PNG是想做好事後的影像辨識,又希望檔案不要太大的折衷選擇

有誰推薦more

限會員,要發表迴響,請先登入