作者:恒創(chuàng)智能 ??時(shí)間:2021-03-26 10:26??來源:未知?? 瀏覽:次
實(shí)際生活中,車牌識(shí)別是很常見的:高速公路,停車系統(tǒng),電子警察,甚至還有車載設(shè)備。
作為車牌識(shí)別專業(yè)廠商的恒創(chuàng)智能,為您講述車牌識(shí)別系統(tǒng)的工作原理及程序組成。
其工作原理大致是這樣的:使用攝像頭作為“眼睛”,使用 openCV和深度學(xué)習(xí)作為“大腦”。車輛牌照識(shí)別的實(shí)時(shí)工作步驟:攝像頭抓拍—> openCV對(duì)車牌位置進(jìn)行初步定位——>對(duì)車牌位置的左右上下邊界進(jìn)行二次確認(rèn)——>車牌傾斜校正——>牌號(hào)字符分割——>字符識(shí)別。而車牌檢測(cè)是車牌識(shí)別的前提和重要基礎(chǔ)。
安卓車牌識(shí)別:android端使用openCV如何實(shí)現(xiàn)車牌檢測(cè)。
關(guān)于openCV的初始化,調(diào)用車牌識(shí)別JNI接口時(shí),首先進(jìn)行初始化,加載caffe訓(xùn)練模型相關(guān)文件:
plateRecognition = new PlateRecognition(this, mHandler);
//init plate recognizer
new Thread(new Runnable() {
@Override
public void run() {
plateRecognition.initRecognizer("pr");
}
}).start();
攝像頭實(shí)時(shí)捕獲,并回調(diào)每幀數(shù)據(jù)以識(shí)別車牌線程。需要注意的是,車牌識(shí)別中openCV操作對(duì)象是Mat,而不是Bitmap:
public Mat onCameraFrame(CvCameraViewFrame inputFrame) {
//每次進(jìn)行車牌識(shí)別間隔3s
long currentTime = System.currentTimeMillis();
if((currentTime - lastRecognizeTime) > 3000){
lastRecognizeTime = currentTime;
//回調(diào)給車牌識(shí)別線程處理
if(onNewFrameListener != null){
onNewFrameListener.onNewFrame(inputFrame.rgba());
}
}
return inputFrame.rgba();
}
public void onNewFrame(Mat newFrame) {
if(dstMat == null){
dstMat = new Mat(newFrame.rows(), newFrame.cols(), CvType.CV_8UC4);
}
//mat格式轉(zhuǎn)換
newFrame.copyTo(dstMat);
//添加到車牌識(shí)別線程的隊(duì)列中
if(recognizeThread != null){
recognizeThread.addMat(dstMat);
}
}
其中,車牌識(shí)別線程調(diào)用native層執(zhí)行,最終把識(shí)別結(jié)果返回給java層:
public void run() {
while (isRunning){
Mat mat = null;
synchronized (lock){
//從隊(duì)列取出mat對(duì)象
if(matQueue != null && matQueue.size() > 0){
mat = matQueue.poll();
}
}
//調(diào)用native層,執(zhí)行車牌識(shí)別
if(mat != null && plateRecognition != null){
plateRecognition.doPlateRecognize(mat);
}
}
}
使用openCV的級(jí)聯(lián)分類器CascadeClassifier去檢測(cè),得到車牌所在整個(gè)圖像的矩形區(qū)域,然后二次確認(rèn)車牌的左右、上下邊界,判斷車牌是否發(fā)生傾斜,如果有傾斜則進(jìn)行校正。通過滑動(dòng)窗口來切割車牌字符,使用CNN深度學(xué)習(xí)對(duì)每個(gè)字符進(jìn)行識(shí)別。最終得到識(shí)別結(jié)果與識(shí)別置信度,如果置信度大于一定閾值,那么該輪識(shí)別結(jié)果可靠。
購買車牌識(shí)別產(chǎn)品,認(rèn)準(zhǔn)恒創(chuàng)智能。