感謝的開源車牌識別系統(tǒng)。
是一個(gè)中文的開源車牌識別系統(tǒng),其目標(biāo)是成為一個(gè)簡單、靈活、準(zhǔn)確的車牌識別引擎。
相比于其他的車牌識別系統(tǒng),有如下特點(diǎn):
跨平臺
目前除了平臺以外,還有以下其他平臺的版本。一些平臺的版本可能會(huì)暫時(shí)落后于主平臺。
現(xiàn)在有一個(gè)無需配置的1.5版本的懶人版。僅僅支持,也只能在debug和x86下運(yùn)行,其他情況的話還是得配置。感謝范文捷同學(xué)的幫助。頁面里的兩個(gè)文件都要下載,下載后用7zip解壓。
版本開發(fā)者版本地址
1.4
/
linux
1.6
已跟整合
ios
1.3
/-iOS
mac
,
1.6
已跟整合
java
fan-
1.2
fan-/-Java
懶人版
fan-
1.5
git/
兼容性
當(dāng)前是基于.0版本開發(fā)的,3.0及以上的版本應(yīng)該可以兼容,以前的版本可能會(huì)存在不兼容的現(xiàn)象。
例子
假設(shè)我們有如下的原始圖片,需要識別出中間的車牌字符與顏色:
經(jīng)過的第一步處理車牌檢測()以后,我們獲得了原始圖片中僅包含車牌的圖塊:
接著,我們對圖塊進(jìn)行OCR過程,在中,叫做字符識別()。我們得到了一個(gè)包含車牌顏色與字符的字符串:
“藍(lán)牌:蘇”
示例
的調(diào)用非常簡單,下面是一段示例代碼:
CPlateRecognize pr; pr.setResultShow(false); pr.setDetectType(PR_DETECT_CMSER); vector<CPlate> plateVec; Mat src = imread(filepath); int result = pr.plateRecognize(src, plateVec);
我們首先創(chuàng)建一個(gè)的對象pr,接著設(shè)置pr的屬性。
pr.setResultShow(false);
這句話設(shè)置是否打開結(jié)果展示窗口,如下圖。設(shè)置為true就是打開,否則就是關(guān)閉。在需要觀看定位結(jié)果時(shí),建議打開,快速運(yùn)行時(shí)關(guān)閉。
pr.setDetectType(PR_DETECT_CMSER);
這句話設(shè)置采用的車牌定位算法。CMER代表文字定位方法,SOBEL和COLOR分別代表邊緣和顏色定位方法。可以通過"|"符號結(jié)合。
pr.setDetectType(PR_DETECT_COLOR | PR_DETECT_SOBEL);
除此之外表格文字識別系統(tǒng),還可以有一些其他的屬性值設(shè)置:
pr.setLifemode(true);
這句話設(shè)置開啟生活模式,這個(gè)屬性在定位方法為SOBEL時(shí)可以發(fā)揮作用,能增大搜索范圍,提高魯棒性。
pr.setMaxPlates(4);
這句話設(shè)置最多查找多少個(gè)車牌。當(dāng)一副圖中有大于n個(gè)車牌時(shí),最終只會(huì)輸出可能性最高的n個(gè)。
下面來看pr的方法。()這個(gè)方法有兩個(gè)參數(shù),第一個(gè)代表輸入圖像,第二個(gè)代表輸出的車牌集合。
vector<CPlate> plateVec; Mat src = imread(filepath);int result = pr.plateRecognize(src, plateVec);
當(dāng)返回結(jié)果為0時(shí),代表識別成功,否則失敗。
類包含了車牌的各種信息,其中重要的如下:
CPlate plate = plateVec.at(i); Mat plateMat = plate.getPlateMat(); RotatedRect rrect = plate.getPlatePos(); string license = plate.getPlateStr();
代表車牌圖像,rrect代表車牌的可旋轉(zhuǎn)矩形位置表格文字識別系統(tǒng),代表車牌字符串,例如“藍(lán)牌:蘇”。
這里說下如何去閱讀如下圖的識別結(jié)果。
第1行代表的是圖片的文件名。
第2行代表車牌,用后綴(g)表示。第3行代表檢測車牌,用后綴(d)表示。兩者形成一個(gè)配對,第4行代表兩者的字符差距。
下面同上。本圖片中有3個(gè)車牌,所有共有三個(gè)配對。最后的等指標(biāo)代表的是整幅圖片的定位評價(jià),考慮了三個(gè)配對的結(jié)果。
有時(shí)檢測車牌的部分會(huì)用“無車牌”與“No ”替代。“無車牌”代表“定位不成功”,“No ”代表“定位成功但字符分割失敗”。