【深度学习】你不知道的车牌识别系统
有小伙伴后臺和小白說,能不能推薦幾個適合入門的開源視覺項目,因為根據實際項目和代碼學起來相對來說比較快。小白收集了一些比較簡單的開源的項目,會陸陸續續的分享給大家,文末有源碼地址。
今天首先帶來的是一個車牌識別系統EasyPR。為什么推薦它呢,有兩個原因:1,車牌識別已經做的比較成熟了,相對來說是一個比較簡單的項目了。2,這個項目是國內團隊寫的,里面的說明文檔全部都是中文,這對很多看英文頭疼的小伙伴來說是再好不過的了。
?
?
項 目 簡 介
EasyPR是一個中文的開源車牌識別系統,其目標是成為一個簡單、高效、準確的車牌識別引擎。相比于其他的車牌識別系統,EasyPR有如下特點:
1
它基于openCV這個開源庫。這意味著你可以獲取全部源代碼,并且移植到java等平臺。
2
它能夠識別中文。例如車牌為蘇EUK722的圖片,它可以準確地輸出std:string類型的"蘇EUK722"的結果。?
3
它的識別率較高。圖片清晰情況下,車牌檢測與字符識別可以達80%以上的精度。
?
?
項 目 效 果
假設我們有如下的原始圖片,需要識別出中間的車牌字符與顏色:
?
經過EasyPR的第一步處理車牌檢測(PlateDetect)以后,我們獲得了原始圖片中僅包含車牌的圖塊:?
?
接著,我們對圖塊進行OCR過程,在EasyPR中,叫做字符識別(CharsRecognize)。我們得到了一個包含車牌顏色與字符的字符串:“藍牌:蘇EUK722”
?
這個識別是不是很神奇。什么?小伙伴覺得還不過癮,講解的還不夠詳細,那接下來再接一個示例好了,這回有圖有程序。
?
代 碼 示 例
EasyPR的調用非常簡單,下面是一段示例代碼:
CPlateRecognizepr; pr.setResultShow(false); pr.setDetectType(PR_DETECT_CMSER); vector<CPlate>plateVec; Matsrc = imread(filepath); int result =pr.plateRecognize(src, plateVec);我們首先創建一個CPlateRecognize的對象pr,接著設置pr的屬性。
pr.setResultShow(false);這句話設置EasyPR是否打開結果展示窗口,如下圖。設置為true就是打開,否則就是關閉。在需要觀看定位結果時,建議打開,快速運行時關閉。
這句話設置EasyPR采用的車牌定位算法。CMER代表文字定位方法,SOBEL和COLOR分別代表邊緣和顏色定位方法。可以通過"|"符號結合。
pr.setDetectType(PR_DETECT_COLOR| PR_DETECT_SOBEL);除此之外,還可以有一些其他的屬性值設置:
pr.setLifemode(true);這句話設置開啟生活模式,這個屬性在定位方法為SOBEL時可以發揮作用,能增大搜索范圍,提高魯棒性。
pr.setMaxPlates(4);這句話設置EasyPR最多查找多少個車牌。當一副圖中有大于n個車牌時,EasyPR最終只會輸出可能性最高的n個。
下面來看pr的方法。plateRecognize()這個方法有兩個參數,第一個代表輸入圖像,第二個代表輸出的車牌CPlate集合。
vector<CPlate>plateVec; Matsrc = imread(filepath); int result =pr.plateRecognize(src, plateVec);當返回結果result為0時,代表識別成功,否則失敗。CPlate類包含了車牌的各種信息,其中重要的如下:
CPlateplate = plateVec.at(i); MatplateMat = plate.getPlateMat(); RotatedRectrrect = plate.getPlatePos(); stringlicense = plate.getPlateStr();plateMat代表車牌圖像,rrect代表車牌的可旋轉矩形位置,license
代表車牌字符串,例如“藍牌:蘇EUK722”。
這里說下如何去閱讀如下圖的識別結果。
第1行代表的是圖片的文件名。
第2行代表GroundTruth車牌,用后綴(g)表示。
第3行代表EasyPR檢測車牌,用后綴(d)表示。兩者形成一個配對
第4行代表兩者的字符差距。下面同上。本圖片中有3個車牌,所有共有三個配對。
最后的Recall等指標代表的是整幅圖片的定位評價,考慮了三個配對的結果。有時檢測車牌的部分會用“無車牌”與“No string”替代。“無車牌”代表“定位不成功”,“No string”代表“定位成功但字符分割失敗”。
如果小伙伴想了解更多的關于項目的內容,可以通過下載代碼,閱讀里面的說明文檔,也可以在自己的電腦上跑一下該程序。
源碼地址:https://gitee.com/easypr/EasyPR
往期精彩回顧適合初學者入門人工智能的路線及資料下載機器學習及深度學習筆記等資料打印機器學習在線手冊深度學習筆記專輯《統計學習方法》的代碼復現專輯 AI基礎下載機器學習的數學基礎專輯黃海廣老師《機器學習課程》視頻課 本站qq群851320808,加入微信群請掃碼:
總結
以上是生活随笔為你收集整理的【深度学习】你不知道的车牌识别系统的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: NodeJS 模板 -- jade
- 下一篇: 跨平台屏幕/摄像头RTMP推流模块设计要