汽車車牌是如何識(shí)別的?ARM Linux下車牌提取過程......
“智慧城市、智慧停車、智慧小區(qū)”的出現(xiàn),隨之而來的是一波波的設(shè)備更新?lián)Q代,關(guān)于車輛管理這方面,包括安防、交通等行業(yè),都紛紛用上了車牌識(shí)別技術(shù)。
作為嵌入式er,不僅要看到行業(yè)的發(fā)展趨勢,也要分析分析背后的一些關(guān)鍵技術(shù)。下面是一位嵌入式er開發(fā)車牌識(shí)別的一些經(jīng)驗(yàn)整理,希望對(duì)大家能有所幫助。
最近在弄車牌識(shí)別這個(gè)項(xiàng)目,對(duì)于機(jī)器視覺有些了解的人都知道,這個(gè)東西算是比較成熟了,在書里也有代碼。 網(wǎng)上能找到的資料也比較多,所及借著這個(gè)機(jī)會(huì)在ARM開發(fā)板上實(shí)現(xiàn)以下車牌識(shí)別。
反正對(duì)于神經(jīng)網(wǎng)絡(luò)這些什么的我是不知道了,所以代碼也是網(wǎng)上借鑒了的,我稍微整理注釋了下。
首先你需要了解移植opencv到嵌入式ARM的具體的步驟,這個(gè)網(wǎng)上比較多,大家搜一下就可以了。
第一步做的就是車牌提?。?/p>
代碼如下:
我們看下效果:
原圖car.jpg,我隨便拍的一張圖:
看下hsv的效果圖car_hsv.jpg:
接著直方圖均衡化后的圖car_hsv1.jpg:
提取藍(lán)車區(qū)域后,分離出來,提取分量 car_hsvSplit.jpg:
可以看出,找到了車牌部分。我拍的這圖質(zhì)量還好,當(dāng)車輛與車牌都是藍(lán)色時(shí)就不好弄出這個(gè)了
接著看下形態(tài)學(xué)處理 car_morphology.jpg:
白色區(qū)域都被聯(lián)通了。
然后看下旋轉(zhuǎn)的圖像 car_rotated.jpg:
最后,剪切出車牌即可 car_area.jpg:
這樣就提取車了一張車牌。
因?yàn)檫@圖比較理想,事實(shí)上,可能識(shí)別出多個(gè)藍(lán)車區(qū)域多為車牌,也就是多個(gè)候選區(qū)域。這里我們圖像理想,只識(shí)別出一個(gè)候選區(qū)域,所以我直接把候選區(qū)域0,即output_area[0]打印出來就是車牌了,我們應(yīng)該加入SVM訓(xùn)練,作為最后判斷是否是車牌的依據(jù),當(dāng)然,這個(gè)我們下次再說吧。