Contents ...
udn網路城邦
我的影像辨識都是有物件導向概念設計的!
2026/04/10 10:21
瀏覽41
迴響0
推薦1
引用0

我是以影像辨識為事業的人,在市場上表現也不錯!但是我真的從來沒上過任何一堂相關的課程!也沒讀過以「影像辨識」為標題的任何書籍課本!應該說我整個電腦專長都是野生自學出來的!沒上過甚麼電腦課的!這樣的背景也有好處!就是無拘無束,需要甚麼功能就設計甚麼演算法!沒有太多窠臼或老師的意見限制我的想法!常常天馬行空就不足為奇了!

當然我也不是完全無中生有自己任意發明所有演算法的!我的辨識技術基礎大部分來自很多的論文閱讀!就是很努力模仿拼湊別人在論文中透漏的片段方法,不足之處就盡情發揮想像力去補足了!努力多年之後回頭看看,真的有很多技術是我看過的所有論文中都沒提過的!所以我的OCR技術也不只是書上寫的OCR了!如果我還是教授,就會有很多影像辨識的SCI論文了!

如上將OCR切割出來的目標視為獨立的「物件」,分析檢視計算它們的很多屬性,包括寬度、高度、座標位置、顏色、對比度、實心度、乃至像是甚麼字?符合度多高?可能字元左右傾倒的程度等等。我的前處理程序中,最重要也與眾不同的動作就是這個「目標物件化」的步驟了!

基本上就是經過這些多樣化的屬性,來判斷各個目標是不是我想找的字元?如果屬性,或屬性的組合,顯示不可能是任何英數字元時,就直接淘汰忽略它們了!經過篩選過關的目標呢?就繼續看它們是否有成排緊密排列的關係了!如果有!那這個群組就是車牌「物件」的候選人了!

一旦這個可能的車牌「物件」產生後,當然隨之而來的是更多與車牌特徵有關的屬性計算!同樣的,如果「車牌候選人物件」的屬性呈現不可能是車牌的特徵時,這個車牌物件就會被淘汰放棄!也就是會有很多這種物件一一被測試檢驗,真正的車牌當然可以符合所有車牌應有的特徵屬性,也會一路被完整的辨識到終點,得到合理的車牌答案!

很有趣的是,當我開始認真自學程式設計,想從業餘玩家變成專業教授時,最讓我覺得神秘困擾的就是「物件導向」的觀念了!在我完全不懂這種概念之前我就已經可以做出很多聲納資料處理與海上測深與導航系統軟體了!當時覺得這個觀念實在是脫了褲子放屁多此一舉!

但是當我的程式越寫越複雜,從幾百行到幾千行之後,才發現物件導向其實就是收納櫃!可以把複雜的屬性收納到個別的物件中!譬如我有100個被OCR框出來的目標時,就會有100個高度、100個寬度與100個座標等等。如果每個屬性都寫成獨立的陣列,當我發現第X個物件可以被淘汰時,就要一一刪除所有屬性陣列中的那個元素!腦袋會記不住,一有疏漏就全盤皆錯了!

用物件導向觀念整理之後要做這種事情時就輕鬆寫意多了!其實也和資料庫的概念有些類似!每一筆資料會有很多欄位,但一定要有一個唯一不重複的ID欄位,如果某筆資料不再有用要刪除時,針對ID作業就好了!不必一一寫程式刪除所有欄位資料的!

可見我努力當教授教程式設計與資料庫等等課程,對我現在的影像辨識事業是很有幫助的!影像辨識需要處理的物件屬性資料實在太多太複雜了!如果沒有物件導向的觀念幫忙,即使吃再多的補藥,我的平凡記憶力都是絕對Hold不住的!但是很微妙的是:我看過那麼多書與論文,真的都沒提到要這麼作?如果有人想學我走這條路,記得物件導向的設計方式是非常重要的!

有誰推薦more

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