Contents ...
udn網路城邦
JPG是影像辨識的殺手,你知道嗎?
2019/11/26 06:14
瀏覽947
迴響0
推薦9
引用0

https://www.itread01.com/content/1501474804.html

JPG可能是大多數人知道的唯一影像檔案格式!它是歷史上最有效率的影像壓縮格式,沒有壓縮的BMP影像變成JPG檔案可以立即縮成十幾分之一的大小,沒有它,我們是不可能如此輕鬆地拍照打卡上傳下載影像的!少了它的服務,磁碟必須大十倍!網路也必須快十倍才會有現在的方便性。

但是跟ZIPRAR等壓縮檔案不同的是:它是會「失真」的壓縮,不像RAR壓縮後的DOC檔案絕對可以恢復成原來的樣子。一旦你將原始影像(BMP)壓縮成JPG之後,它是無法變回原貌的!下圖就是一個例子,左邊的車牌壓縮成JPG之後就會變成右邊的樣子,不但變模糊,也會產生很多原來沒有的紋路,而且無法復原!

下面是我最近碰到的一個辨識失敗案例,我必須辨識的是已經經過JPG壓縮的檔案,看到那些車牌背景中的花紋了嗎?那不是攝影機拍不清楚,而是JPG壓縮造成的。整體看起來字元還算清楚,卻因為字元沾連,也剛好無法用我既有的邏輯準確切割,所有的「不幸」碰在一起,讓我就是無法辨識成功!很嘔!

上面的影像二值化之後會變成這樣:

圖中的三處沾連只要有一處脫鉤,我的辨識邏輯就可以將它正確辨識出來了!最後我嘗試用了一個水平向的銳利化,讓字元之間的空隙對比度提高一點點,就辨識成功了!放大來看沾連部分只剩下一處了!

這是甚麼意思?我的銳利化其實不是在讓原始拍攝到的影像更清楚,而是在嘗試復原JPG壓縮造成的失真!如果不是這個影像經過了JPG壓縮,而是原始拍攝到的BMP檔案,根本是不必做銳利化就可以輕易辨識成功的!換言之,如果我總是可以取得未壓縮的原始影像作辨識,辨識率就會提高很多了!

可是如果你必須使用網路傳遞這個影像,不壓縮就表示資料流量會大十倍或傳遞速度慢十倍!如果是學術研究,不惜工本時就會這麼做,商業活動上就不能這麼做!那有沒有人嘗試做出至少不要那麼失真,比較有利於影像辨識的壓縮方式呢?

有的!就是PNG檔案,理論上它是想結合GIFJPG的優點,GIF顏色比較失真,影像特徵的位置不會失真;相反的,JPG顏色保留很豐富完整,但是特徵位置會偏移失真。結果呢?大家可以自己試試看,PNG的壓縮比還是不如JPG很多,所以也不是很廣用。如果他們繼續研發成功,以後大家就只會知道有PNG,沒人用JPG了

我現在的軟體多數是用螢幕辨識,就是從螢幕上快速連續的拷貝影像來辨識,有辨識結果的才會存成JPG影像檔案作為紀錄!所以我辨識的是沒有經過JPG壓縮的影像,理論上當然會比辨識已壓縮過的JPG檔案,就是向IPCAM攝影機要求取得的JPG影像檔案來辨識更好!因為我的軟體自己不必做解壓縮的動作,執行速度還更快!

一般的商業攝影機是不會給你「未壓縮」影像的,一定是壓縮過的JPG!所以那些不經過螢幕,直接從攝影機取得影像的車牌辨識系統,先天上就是用比我差的影像作車牌辨識的!我自己的軟體辨識成功後儲存的JPG影像,偶爾都會發生事後用一樣的辨識核心再度作辨識卻失敗的狀況!因為影像其實已經與現場時不一樣了!我將影像存成JPG時就變模糊了!

另一種可以從攝影機取得影像的方式是解析影像串流為單一影像,就是自己做解碼的動作,我也試過的!這樣就不會有JPG壓縮造成的失真,但是這也是高運算高技術的程式,我們自己實作怎麼做都不會做得比作業系統、瀏覽器或影像播放軟體更快更好!直接到螢幕上取得這些軟體解好的高品質影像(未壓縮的哦!)當然是最聰明的選擇!

有些客戶會覺得我用螢幕辨識有點LOW?因為看起來那些可以跟攝影機直接連線取得影像辨識的系統比較酷!一體成型機嘛!我的軟體還要「依賴」螢幕?好像笨笨的?但是如果你真的深入理解影像辨識的過程,就會知道我的設計才是最有效率,充分利用既有資源,能夠得到最高辨識品質又不必花大錢的理想架構!

有誰推薦more

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