車牌識(shí)別與引導(dǎo)系統(tǒng)實(shí)戰(zhàn):從硬件選型到落地排坑)
1. 項(xiàng)目概述先搞明白這套系統(tǒng)到底要解決什么問(wèn)題很多第一次接觸這個(gè)項(xiàng)目的人都會(huì)把注意力放在“怎么把車牌數(shù)字認(rèn)出來(lái)”上但真實(shí)場(chǎng)景里停車場(chǎng)的訴求要立體得多。第一是通行效率早晚高峰的時(shí)候如果每輛車進(jìn)場(chǎng)要等人工登記、刷卡、或者車主自己掃碼排隊(duì)長(zhǎng)度直接蔓延到市政道路上。第二是找位效率車主進(jìn)了地下車庫(kù)繞了十分鐘找不到空位體感極差也容易造成場(chǎng)內(nèi)擁堵。第三是收費(fèi)管理人工收現(xiàn)金、掃碼支付漏單和扯皮特別多物業(yè)需要一套準(zhǔn)確的數(shù)據(jù)去核對(duì)每一筆訂單。第四是安全管控哪些車能進(jìn)、哪些車要攔截需要黑名單和月卡管理。車牌識(shí)別和引導(dǎo)系統(tǒng)本質(zhì)上就是把“車輛身份識(shí)別”和“車位狀態(tài)感知”這兩件底層事情做好然后在上層跑通一套管理邏輯。車輛進(jìn)場(chǎng)的瞬間識(shí)別車牌判斷權(quán)限開(kāi)閘放行同時(shí)記錄車位占用狀態(tài)場(chǎng)內(nèi)引導(dǎo)屏告訴車主哪個(gè)區(qū)域還剩多少車位離場(chǎng)時(shí)再識(shí)別同一張車牌自動(dòng)計(jì)算費(fèi)用。這套系統(tǒng)做扎實(shí)了停車場(chǎng)的運(yùn)轉(zhuǎn)效率能上去一個(gè)量級(jí)物業(yè)方的管理成本也能明顯降下來(lái)。我見(jiàn)過(guò)不少項(xiàng)目在需求階段就把范圍想小了只做了入口識(shí)別模塊結(jié)果裝完才發(fā)現(xiàn)場(chǎng)內(nèi)引導(dǎo)、出口計(jì)費(fèi)全都得聯(lián)動(dòng)返工成本極高。所以這篇內(nèi)容一開(kāi)始就要把系統(tǒng)的完整邊界畫(huà)清楚一套能真正落地的停車場(chǎng)車牌識(shí)別及引導(dǎo)系統(tǒng)應(yīng)該包含出入口識(shí)別單元、場(chǎng)內(nèi)車位感知、引導(dǎo)信息發(fā)布、中心管理平臺(tái)以及可選的車主端應(yīng)用。簡(jiǎn)單說(shuō)就是從車輛接近入口那一刻開(kāi)始到它停進(jìn)車位、再到它繳費(fèi)離場(chǎng)整個(gè)閉環(huán)里的每一個(gè)環(huán)節(jié)都要有人管。1.1 從一條完整的數(shù)據(jù)流看清每個(gè)模塊的職責(zé)完整的數(shù)據(jù)流是這樣的車輛駛?cè)肴肟谟|發(fā)區(qū)攝像頭抓拍并識(shí)別車牌識(shí)別結(jié)果發(fā)給中心管理平臺(tái)平臺(tái)判斷車輛權(quán)限后下發(fā)開(kāi)閘指令同時(shí)更新對(duì)應(yīng)區(qū)域的剩余車位計(jì)數(shù)引導(dǎo)屏隨即刷新數(shù)字車輛進(jìn)場(chǎng)后車位檢測(cè)傳感器實(shí)時(shí)回報(bào)每個(gè)車位的占用情況車輛離場(chǎng)時(shí)出口攝像頭再次識(shí)別車牌平臺(tái)計(jì)算停車時(shí)長(zhǎng)和費(fèi)用完成扣款后開(kāi)閘放行。這條鏈路里出入口的識(shí)別設(shè)備負(fù)責(zé)“看”、中心平臺(tái)負(fù)責(zé)“想”和“記”、引導(dǎo)屏和道閘負(fù)責(zé)“做”。任何一個(gè)環(huán)節(jié)出問(wèn)題都會(huì)直接體現(xiàn)在車主體驗(yàn)上。比如入口識(shí)別慢了車輛就要在閘桿前頓一下出口費(fèi)用算錯(cuò)了車主馬上就會(huì)按喇叭引導(dǎo)屏顯示有車位但開(kāi)過(guò)去沒(méi)有那車主下次對(duì)這個(gè)停車場(chǎng)的信任感就徹底沒(méi)了。所以做這套系統(tǒng)不能只盯著某個(gè)算法準(zhǔn)確率要從整個(gè)數(shù)據(jù)流的角度去設(shè)計(jì)。團(tuán)隊(duì)內(nèi)部拆解需求時(shí)我喜歡把模塊分成“感知層、決策層、執(zhí)行層”三層來(lái)討論。感知層是攝像頭、地磁、超聲波這些采集設(shè)備決策層是中心平臺(tái)和邊緣盒子的算法與業(yè)務(wù)邏輯執(zhí)行層是道閘、引導(dǎo)屏、指示燈這些直接跟車主交互的硬件。三層分離的好處是每一層都能獨(dú)立替換和升級(jí)。比如今天用地磁做車位感知明天想換視頻識(shí)別只要接口和數(shù)據(jù)格式不變感知層的設(shè)備可以直接換掉決策層和執(zhí)行層完全不用動(dòng)。2. 技術(shù)選型硬件、算法、架構(gòu)三件套怎么定技術(shù)選型是最容易被低估的一步。很多團(tuán)隊(duì)上來(lái)就寫(xiě)代碼做到一半發(fā)現(xiàn)攝像頭角度不對(duì)、補(bǔ)光不足、設(shè)備不兼容然后全部推翻重來(lái)。我認(rèn)為選型決定了下限后面所有調(diào)優(yōu)都是在補(bǔ)上限。這一節(jié)我把硬件、算法、架構(gòu)三條線分別拆開(kāi)講每一條都直接給可參考的結(jié)論。2.1 攝像頭和現(xiàn)場(chǎng)設(shè)備的選型邏輯攝像頭選型我自己的經(jīng)驗(yàn)是優(yōu)先看現(xiàn)場(chǎng)安裝條件再看設(shè)備參數(shù)?,F(xiàn)場(chǎng)最理想的安裝位置是車道正前方高度三米五到四米攝像頭和水平面呈二十度左右的俯角。這個(gè)高度和角度能保證車牌在畫(huà)面里足夠大透視變形也不至于太嚴(yán)重。如果現(xiàn)場(chǎng)只有兩米二的高度就得用短焦距廣角鏡頭但邊緣畸變會(huì)比較厲害識(shí)別率會(huì)明顯下降。如果裝在側(cè)面抓拍角度斜得厲害除非用大角度識(shí)別算法否則不建議硬上。像素方面市面上主流的五百萬(wàn)像素網(wǎng)絡(luò)攝像機(jī)已經(jīng)夠用。車牌本身只有十幾厘米寬在1080P畫(huà)面里只要保證車牌寬度占到畫(huà)面總寬度的四分之一以上字符就能被算法清楚分辨。焦距要結(jié)合車道寬度來(lái)定以六米左右的車道為例六毫米定焦鏡頭搭配五百萬(wàn)像素傳感器能做到整條車道無(wú)障礙覆蓋。補(bǔ)光是必須考慮的尤其地下車庫(kù)。夜間弱光環(huán)境下如果只靠環(huán)境燈快門(mén)一慢就會(huì)拖影。推薦選擇帶內(nèi)置補(bǔ)光燈的攝像機(jī)或者外接光敏控制的補(bǔ)光燈。這里有個(gè)細(xì)節(jié)很多人不注意補(bǔ)光燈的角度要能照到車牌位置同時(shí)避免直射駕駛員眼睛。有些項(xiàng)目圖省事用常亮白光結(jié)果車主投訴“被閃瞎”后來(lái)只能改成與攝像機(jī)聯(lián)動(dòng)頻閃的方案。還有幾個(gè)參數(shù)千萬(wàn)別忽略。寬動(dòng)態(tài)功能WDR在逆光場(chǎng)景下非常關(guān)鍵比如出入口朝西傍晚太陽(yáng)直射鏡頭車牌處于強(qiáng)背光中沒(méi)有寬動(dòng)態(tài)的攝像頭拍出來(lái)的車牌就是一片死黑??扉T(mén)速度要設(shè)置得夠快一般不低于1/500秒這樣才能在車輛快速通過(guò)時(shí)抓住清晰的車牌。最后網(wǎng)絡(luò)攝像機(jī)盡量選擇支持標(biāo)準(zhǔn)化視頻協(xié)議比如ONVIF的后面軟件對(duì)接會(huì)省心很多避免被廠商私有協(xié)議鎖死。選型項(xiàng)推薦參數(shù)說(shuō)明分辨率500萬(wàn)像素保證車牌在畫(huà)面中足夠清晰焦距6mm定焦6米車道短焦覆蓋廣但畸變變大安裝高度3.5~4m過(guò)低要換廣角過(guò)高車牌變小俯角20度左右角度小變形少角度大識(shí)別難補(bǔ)光紅外或白光聯(lián)動(dòng)頻閃常亮?xí)斐神{駛員眼睛不適寬動(dòng)態(tài)必須支持逆光場(chǎng)景下的救命功能快門(mén)不低于1/500秒防止車輛拖影2.2 識(shí)別算法從傳統(tǒng)圖像處理到深度學(xué)習(xí)的取舍車牌識(shí)別算法是整個(gè)系統(tǒng)的靈魂也是技術(shù)選型上最需要花心思的地方。最早一批停車場(chǎng)系統(tǒng)用的是純圖像處理方案先通過(guò)顏色特征鎖定藍(lán)色或黃色的車牌區(qū)域再用邊緣檢測(cè)和形態(tài)學(xué)操作把車牌輪廓摳出來(lái)接著做透視校正然后字符分割最后用模板匹配或分類器逐一識(shí)別漢字、字母和數(shù)字。這種方案的優(yōu)點(diǎn)是非常輕量在嵌入式設(shè)備上能跑但缺點(diǎn)也很明顯對(duì)光線、角度、泥污特別敏感遇到新能源綠牌和雙層貨車牌就容易翻車?,F(xiàn)在的工業(yè)級(jí)方案基本都轉(zhuǎn)向了深度學(xué)習(xí)。第一步用目標(biāo)檢測(cè)模型在畫(huà)面里先把車和車牌位置框出來(lái)第二步用OCR模型識(shí)別車牌字符。整體識(shí)別流程更魯棒綠牌、黃牌、白牌、雙層牌都能通過(guò)擴(kuò)充訓(xùn)練數(shù)據(jù)來(lái)解決。缺點(diǎn)是需要一定算力得用帶GPU的服務(wù)器或者帶NPU的邊緣計(jì)算盒子才跑得流暢。個(gè)人開(kāi)發(fā)者怎么取舍我的建議是不要盲目從零訓(xùn)練。如果是自己做項(xiàng)目練手先找一個(gè)車牌識(shí)別開(kāi)源模型或者云服務(wù)商的圖像識(shí)別接口把系統(tǒng)跑通這個(gè)思路沒(méi)問(wèn)題。但如果是給客戶落地項(xiàng)目就要考慮延遲、費(fèi)用和數(shù)據(jù)合規(guī)問(wèn)題。每輛車一次識(shí)別調(diào)用如果都走云端API按停車場(chǎng)日均車流量幾千次算一年是一筆不小的運(yùn)營(yíng)成本另外車牌屬于敏感信息傳輸?shù)皆贫艘残枰幚砗弦?guī)問(wèn)題。所以正規(guī)落地項(xiàng)目里我更推薦采用支持本地推理的邊緣計(jì)算盒子把模型部署在設(shè)備端一進(jìn)一出識(shí)別延遲控制在幾百毫秒以內(nèi)。2.3 軟件架構(gòu)邊緣自治加中心調(diào)度離線也要能跑停車場(chǎng)系統(tǒng)有一個(gè)比較特殊的地方出入口設(shè)備分散在園區(qū)各處現(xiàn)場(chǎng)網(wǎng)絡(luò)環(huán)境參差不齊管理后臺(tái)又要統(tǒng)一查看。我建議采用“現(xiàn)場(chǎng)設(shè)備本地自治中心平臺(tái)調(diào)度”的混合架構(gòu)。出入口的識(shí)別盒子內(nèi)置識(shí)別算法和道閘控制邏輯就算中心平臺(tái)暫時(shí)斷網(wǎng)本地也能正常抬桿放行、保存通行記錄網(wǎng)絡(luò)恢復(fù)后本地緩存的數(shù)據(jù)再批量同步給中心。這個(gè)設(shè)計(jì)叫離線容災(zāi)做停車場(chǎng)項(xiàng)目一定要考慮。否則一次網(wǎng)絡(luò)設(shè)備重啟導(dǎo)致整個(gè)車庫(kù)出入口癱瘓現(xiàn)場(chǎng)場(chǎng)面會(huì)非?;靵y。設(shè)備與中心平臺(tái)之間的通信不建議直接用嵌入式設(shè)備去連數(shù)據(jù)庫(kù)更合理的做法是走消息中間件。比如現(xiàn)場(chǎng)識(shí)別結(jié)果統(tǒng)一投遞到一個(gè)消息通道中心服務(wù)作為消費(fèi)者處理。這樣做的好處是解耦出入口只管采集和上報(bào)不關(guān)心下游是計(jì)費(fèi)、開(kāi)閘還是推送同時(shí)天然支持多出入口并發(fā)寫(xiě)入不會(huì)出現(xiàn)數(shù)據(jù)庫(kù)連接被撐爆的問(wèn)題。占地面積大的車庫(kù)場(chǎng)內(nèi)還會(huì)部署多塊引導(dǎo)屏屏端從緩存服務(wù)里定時(shí)拉取區(qū)域車位數(shù)據(jù)來(lái)渲染而不是直接查業(yè)務(wù)數(shù)據(jù)庫(kù)這樣高頻讀操作不會(huì)壓垮主庫(kù)。技術(shù)棧上中心平臺(tái)用成熟的后端框架非常穩(wěn)妥。數(shù)據(jù)庫(kù)用關(guān)系型數(shù)據(jù)庫(kù)存訂單、車輛檔案、月卡這些結(jié)構(gòu)化數(shù)據(jù)緩存數(shù)據(jù)庫(kù)存實(shí)時(shí)車位計(jì)數(shù)。前端管理后臺(tái)用主流框架都行重點(diǎn)是能實(shí)時(shí)刷新停車場(chǎng)大屏、監(jiān)控視頻流、異常告警。如果還要支持小程序查停車記錄和反向?qū)ぼ嚲托枰粢唤M面向車主端的API注意加上鑒權(quán)。3. 核心環(huán)節(jié)實(shí)現(xiàn)從抓拍、識(shí)別到引導(dǎo)入位的完整鏈路3.1 車輛檢測(cè)與圖像抓拍別讓識(shí)別算法“餓肚子”很多人以為車牌識(shí)別就是把視頻流每一幀都丟給算法跑一遍這是非常低效的做法。實(shí)際工程中車輛檢測(cè)觸發(fā)抓拍是第一道工序。觸發(fā)方案主要有三種地感線圈、毫米波雷達(dá)、視頻檢測(cè)。地感線圈觸發(fā)是在地面切槽埋設(shè)環(huán)形線圈車壓過(guò)時(shí)電感變化觸發(fā)抓拍。優(yōu)點(diǎn)是可靠不受光線干擾缺點(diǎn)是施工破壞地面后期維護(hù)要?jiǎng)勇?。雷達(dá)觸發(fā)通過(guò)毫米波雷達(dá)檢測(cè)車輛到來(lái)不需要破壞地面安裝也方便現(xiàn)在很多新建項(xiàng)目都選這個(gè)。視頻觸發(fā)則是通過(guò)視頻流里的運(yùn)動(dòng)目標(biāo)檢測(cè)判斷車輛進(jìn)入識(shí)別區(qū)域零施工成本但對(duì)算法要求高容易誤觸發(fā)。我的建議是預(yù)算允許的情況下采用“雷達(dá)觸發(fā)視頻確認(rèn)”雙保險(xiǎn)硬件成本會(huì)高一點(diǎn)但能最大限度降低漏抓概率。這里有另一個(gè)關(guān)鍵點(diǎn)觸發(fā)位置必須和識(shí)別區(qū)域配合好車到觸發(fā)點(diǎn)之后要預(yù)留一點(diǎn)點(diǎn)延遲讓車輛完全進(jìn)入畫(huà)面再抓拍不然抓出來(lái)的經(jīng)常是車頭特寫(xiě)或只有半截車身。抓拍圖像的質(zhì)量直接決定識(shí)別率。真正落地時(shí)抓拍到的圖像一般會(huì)先做一次預(yù)處理再送進(jìn)算法灰度化、去噪、對(duì)比度拉伸、銳化。逆光場(chǎng)景下如果攝像機(jī)沒(méi)有啟用寬動(dòng)態(tài)可以試試在前端做一次局部直方圖均衡把車牌的暗部細(xì)節(jié)硬拉出來(lái)。這些操作在圖像處理庫(kù)比如OpenCV里就是幾行代碼但對(duì)識(shí)別率的影響經(jīng)常是幾個(gè)百分點(diǎn)的級(jí)別。import cv2 def preprocess_plate(img): # 轉(zhuǎn)灰度 gray cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # 降噪保留邊緣信息 blur cv2.bilateralFilter(gray, 5, 50, 50) # 對(duì)比度拉伸增強(qiáng)暗部細(xì)節(jié) clahe cv2.createCLAHE(clipLimit2.0, tileGridSize(8, 8)) contrast clahe.apply(blur) return contrast3.2 車牌識(shí)別主流程每一步都在跟現(xiàn)場(chǎng)環(huán)境博弈車牌識(shí)別的主流程可以拆成四個(gè)步驟每一步都有對(duì)應(yīng)的工程坑。車牌定位。深度學(xué)習(xí)方案里這一步由檢測(cè)模型完成它會(huì)輸出車牌的四個(gè)角點(diǎn)。傳統(tǒng)方案則喜歡用顏色或邊緣特征。工程上要特別處理的是“類車牌區(qū)域”比如車頭進(jìn)氣格柵、保險(xiǎn)杠上的裝飾件、墻上廣告牌里的車牌圖樣定位算法很容易在這些地方誤檢。實(shí)踐中會(huì)通過(guò)長(zhǎng)寬比、面積大小、字符密度等先驗(yàn)規(guī)則做一次過(guò)濾把置信度不高的候選框直接丟掉。車牌校正。車輛跟攝像頭之間很難完全垂直抓拍到的車牌往往帶透視變形四個(gè)角不是一個(gè)矩形。深度學(xué)習(xí)方案可以直接回歸出透視變換矩陣傳統(tǒng)方案則依賴車牌邊緣的直線擬合。校正這一步做不好后面的字符分割和識(shí)別都會(huì)受影響??梢源騻€(gè)比方人臉識(shí)別之前要先擺正臉車牌識(shí)別也一樣圖像校正是保證后續(xù)“讀字”效果的基礎(chǔ)。字符分割。校正后的車牌圖像會(huì)先做二值化把字符和底色分開(kāi)。經(jīng)典做法是按垂直投影找字符邊界對(duì)每一列統(tǒng)計(jì)像素?cái)?shù)量字符之間會(huì)有明顯的谷值根據(jù)谷值位置切出一個(gè)個(gè)單字符。這里最容易翻車的是鉚釘、污漬和邊框干擾所以二值化之前要先用形態(tài)學(xué)開(kāi)運(yùn)算去掉細(xì)小噪聲并且基于車牌的先驗(yàn)尺寸把上下邊框裁剪掉。字符識(shí)別。單個(gè)字符識(shí)別在今天的深度學(xué)習(xí)框架下已經(jīng)不算難事難的是中文漢字的類別數(shù)。車牌漢字雖然常用省份簡(jiǎn)稱有限但加上字體多樣性還是有些識(shí)別難度的。模板匹配方案遇到字體模糊容易掛深度學(xué)習(xí)分類器會(huì)好很多。注意新能源車牌比傳統(tǒng)藍(lán)牌多一個(gè)字符而且寬度不同分割邏輯要兼容。貨車的雙層車牌也要專門(mén)處理上下兩行分別識(shí)別再拼接結(jié)果。最后給一個(gè)關(guān)鍵建議識(shí)別結(jié)果不要直接當(dāng)作最終結(jié)果使用要做后處理校驗(yàn)。車牌格式是固定的第一位是省份漢字第二位是字母后面是字母和數(shù)字組合。如果算法識(shí)別出的結(jié)果不符合這個(gè)組合規(guī)律大概率是中間某一步出錯(cuò)了可以觸發(fā)重拍或者人工復(fù)核流程。這塊邏輯能幫你擋住不少明顯錯(cuò)誤。3.3 車位檢測(cè)與引導(dǎo)屏刷新從“能停”到“好找”引導(dǎo)系統(tǒng)的基礎(chǔ)是車位狀態(tài)感知目前主流方案無(wú)非三種地磁傳感器、超聲波雷達(dá)、視頻檢測(cè)樁。它們的對(duì)比非常直觀方案優(yōu)點(diǎn)缺點(diǎn)適用場(chǎng)景地磁傳感器成本低部署簡(jiǎn)單要換電池易受金屬干擾小型地面停車場(chǎng)超聲波雷達(dá)誤判率低成本適中層高太高或上方有遮擋裝不了室內(nèi)車庫(kù)層高規(guī)整視頻檢測(cè)樁效果直觀附帶監(jiān)控單路成本高需要角度合理地下多層車庫(kù)不管用什么傳感器車位狀態(tài)數(shù)據(jù)都不可能百分百可靠。一個(gè)車停在兩個(gè)車位交界處、一個(gè)車位被雜物占了、一輛車離場(chǎng)但傳感器延遲了這些都會(huì)導(dǎo)致引導(dǎo)屏顯示的剩余車位不準(zhǔn)確。為了盡量減少誤差平臺(tái)側(cè)要做數(shù)據(jù)校準(zhǔn)。一種做法是入口道閘記錄和車位傳感器數(shù)據(jù)互相校驗(yàn)入口統(tǒng)計(jì)顯示總共進(jìn)了N輛車出口統(tǒng)計(jì)顯示總共出了M輛車?yán)響?yīng)在場(chǎng)車輛數(shù)就是N-M如果這個(gè)數(shù)和車位占用總數(shù)對(duì)不上說(shuō)明中間有數(shù)據(jù)漂移系統(tǒng)需要在低峰時(shí)段自動(dòng)做一次全量校準(zhǔn)。引導(dǎo)屏的刷新邏輯也值得提一句。不要把所有車位的實(shí)時(shí)狀態(tài)都推到每塊屏上更合理的做法是屏端只顯示“區(qū)域剩余車位數(shù)量方向”刷新頻率五秒一次足夠。太高了反而會(huì)導(dǎo)致屏端閃爍負(fù)擔(dān)太低了又會(huì)讓車主覺(jué)得信息滯后。如果要做更精細(xì)的室內(nèi)導(dǎo)航比如每個(gè)車位上的指示燈那就要把每個(gè)探測(cè)點(diǎn)的狀態(tài)實(shí)時(shí)推送那種場(chǎng)景的數(shù)據(jù)量和這里的區(qū)域級(jí)引導(dǎo)完全不是一回事。說(shuō)到車位推薦很多剛做引導(dǎo)系統(tǒng)的人容易忽略一個(gè)問(wèn)題停車場(chǎng)分區(qū)域引導(dǎo)時(shí)并不是所有區(qū)域?qū)λ熊囕v都開(kāi)放的。月卡車輛可能只允許進(jìn)入固定區(qū)域新能源車要引導(dǎo)到有充電樁的車位大貨車要避開(kāi)層高不足的區(qū)域。所以在入口識(shí)別車牌之后平臺(tái)除了開(kāi)閘其實(shí)還應(yīng)該做一次“可引導(dǎo)區(qū)域”的判斷把車輛分配信息通過(guò)引導(dǎo)屏或APP下發(fā)。這個(gè)邏輯雖然不復(fù)雜但對(duì)后續(xù)的用戶體驗(yàn)影響很大。4. 踩坑記錄那些實(shí)測(cè)中讓人頭禿的問(wèn)題和排查思路4.1 識(shí)別率上不去的七個(gè)常見(jiàn)原因第一是安裝角度問(wèn)題。攝像頭角度太斜透視變形超過(guò)一定范圍算法再怎么調(diào)也很難救回來(lái)。調(diào)整設(shè)備時(shí)建議用現(xiàn)場(chǎng)畫(huà)面實(shí)測(cè)讓車牌長(zhǎng)邊在畫(huà)面中保持水平傾斜角度不超過(guò)三十度。第二是逆光。這個(gè)問(wèn)題前面說(shuō)過(guò)基本靠寬動(dòng)態(tài)、補(bǔ)光和圖像預(yù)處理三件套解決。如果現(xiàn)場(chǎng)確實(shí)沒(méi)辦法改變朝向可以嘗試將識(shí)別區(qū)后移讓車輛在陰影更少的位置停下識(shí)別。第三是夜間強(qiáng)反光。車牌表面有反光材料補(bǔ)光燈角度不對(duì)會(huì)讓字符區(qū)域一片高光。解決方式是調(diào)整補(bǔ)光和攝像頭的相對(duì)位置避免正對(duì)車牌反射光線。第四是臟車牌。雨天泥水糊住車牌任何算法都會(huì)受影響。這個(gè)只能提高抓拍頻率多試幾次同時(shí)保留現(xiàn)場(chǎng)照片供人工核實(shí)。第五是新能源車牌的識(shí)別。綠牌色度區(qū)分度和藍(lán)牌差別很大如果識(shí)別模型訓(xùn)練數(shù)據(jù)里綠牌數(shù)量不夠會(huì)頻繁漏檢或誤檢。這個(gè)必須從樣本層面解決模型要做針對(duì)性擴(kuò)充。第六是雙層貨車牌。上下兩行字符如果分割模塊沒(méi)有專門(mén)處理會(huì)把兩行混在一起識(shí)別出莫名其妙的結(jié)果。需要先檢測(cè)車牌長(zhǎng)寬比判斷是否是雙層再分兩行處理。第七是抓拍延遲。車輛速度太快觸發(fā)到抓拍之間的延遲過(guò)大導(dǎo)致車牌還沒(méi)完整進(jìn)入畫(huà)面就拍了??梢酝ㄟ^(guò)調(diào)整觸發(fā)位置和抓拍延時(shí)參數(shù)來(lái)優(yōu)化一般慢速通道延時(shí)200到300毫秒比較穩(wěn)妥。4.2 引導(dǎo)數(shù)據(jù)不準(zhǔn)確的排查套路引導(dǎo)系統(tǒng)最讓人頭大的就是“顯示有余位但實(shí)際滿了”。我自己的排查步驟如下。第一步核對(duì)出入口的進(jìn)出記錄總數(shù)。如果入口計(jì)數(shù)比出口大得很離譜先看是不是有車從入口倒出去或者從出口溜進(jìn)來(lái)。這時(shí)候要調(diào)整觸發(fā)區(qū)域的防重觸發(fā)邏輯增加一個(gè)最小時(shí)間間隔比如同一通道兩次觸發(fā)間隔不能小于三秒。第二步檢查車位傳感器。地磁傳感器容易受周圍金屬車架干擾超聲波傳感器容易因?yàn)楦叨茸兓┡?。我建議在軟件后臺(tái)給每個(gè)車位傳感器建一張“狀態(tài)變化歷史表”出現(xiàn)連續(xù)三次同樣的變化時(shí)先標(biāo)記為可疑不直接參與計(jì)費(fèi)等人為確認(rèn)。第三步看引導(dǎo)屏的取數(shù)邏輯。有的項(xiàng)目是前端每隔幾秒去查一次數(shù)據(jù)庫(kù)在實(shí)際并發(fā)量高的時(shí)候會(huì)出現(xiàn)數(shù)據(jù)錯(cuò)亂或者超時(shí)。建議統(tǒng)一改成從緩存數(shù)據(jù)庫(kù)讀取并由中心平臺(tái)統(tǒng)一負(fù)責(zé)維護(hù)緩存與真實(shí)狀態(tài)的同步。最后分享一個(gè)實(shí)戰(zhàn)小技巧在平臺(tái)加一個(gè)“手動(dòng)校準(zhǔn)”按鈕運(yùn)營(yíng)人員在每天低峰時(shí)段人工確認(rèn)一次全場(chǎng)車位狀態(tài)把錯(cuò)誤狀態(tài)一鍵清掉。這個(gè)功能看起來(lái)不起眼實(shí)際運(yùn)營(yíng)中特別有用能顯著降低客訴。4.3 并發(fā)和斷網(wǎng)的穩(wěn)定性設(shè)計(jì)停車場(chǎng)早晚高峰出入口并發(fā)量不小中心平臺(tái)如果扛不住瞬時(shí)并發(fā)就會(huì)出現(xiàn)閘機(jī)開(kāi)了但記錄沒(méi)存上或者存了兩條重復(fù)記錄。處理這個(gè)問(wèn)題有三個(gè)要點(diǎn)數(shù)據(jù)庫(kù)連接池要合理配置接口要做冪等處理同一個(gè)車牌在同一出入口的多次放行要能夠合并成一次有效通行。道閘控制的指令要設(shè)計(jì)成“只發(fā)一次”避免網(wǎng)絡(luò)重傳導(dǎo)致閘機(jī)反復(fù)抬桿落桿。斷網(wǎng)場(chǎng)景前面提到過(guò)出入口設(shè)備必須支持本地緩存、離線放行。但恢復(fù)聯(lián)網(wǎng)后如何安全補(bǔ)傳數(shù)據(jù)也是一個(gè)容易忽略的細(xì)節(jié)。補(bǔ)傳時(shí)可能會(huì)給在場(chǎng)記錄和訂單數(shù)據(jù)帶來(lái)重復(fù)所以每條通行記錄必須生成一個(gè)全局唯一的流水號(hào)服務(wù)端通過(guò)這個(gè)流水號(hào)做去重。這個(gè)設(shè)計(jì)一定要在系統(tǒng)一開(kāi)始就做進(jìn)去后期再補(bǔ)會(huì)非常痛苦。還有一個(gè)日常運(yùn)維容易忽略的問(wèn)題錄像存儲(chǔ)。車牌識(shí)別攝像頭順帶承擔(dān)了安防監(jiān)控的職責(zé)如果存儲(chǔ)空間不足導(dǎo)致視頻被循環(huán)覆蓋事后出了糾紛想調(diào)取證錄像發(fā)現(xiàn)早就沒(méi)了。建議單獨(dú)規(guī)劃視頻存儲(chǔ)周期至少保留三十天重要的出入口可以再延長(zhǎng)。引導(dǎo)系統(tǒng)的數(shù)據(jù)和視頻錄像配合才能發(fā)揮最大價(jià)值。5. 寫(xiě)在最后做停車場(chǎng)系統(tǒng)要有蹲在現(xiàn)場(chǎng)調(diào)設(shè)備的覺(jué)悟最后碎碎念一些我在實(shí)際項(xiàng)目里的感受。這套系統(tǒng)不像互聯(lián)網(wǎng)應(yīng)用那樣一個(gè)版本上線就能覆蓋所有用戶它依賴的現(xiàn)場(chǎng)環(huán)境千奇百怪同一個(gè)方案在這個(gè)車庫(kù)跑得好好的換到另一個(gè)車庫(kù)就各種問(wèn)題。所以做停車場(chǎng)車牌識(shí)別及引導(dǎo)系統(tǒng)心態(tài)上一定要準(zhǔn)備好常駐現(xiàn)場(chǎng)調(diào)優(yōu)。硬件層面的安裝角度、補(bǔ)光角度軟件層面的識(shí)別參數(shù)、引導(dǎo)屏刷新策略都是在一次次回到現(xiàn)場(chǎng)之后慢慢磨出來(lái)的。如果看完這篇內(nèi)容打算自己動(dòng)手做一套我的建議是不要一上來(lái)就追求大而全先找一個(gè)小型停車場(chǎng)把入口識(shí)別、出口計(jì)費(fèi)、場(chǎng)內(nèi)引導(dǎo)這三條主鏈路跑通再加各種邊緣場(chǎng)景。設(shè)備成本其實(shí)沒(méi)有想象中高很多國(guó)產(chǎn)安防設(shè)備的價(jià)格已經(jīng)非常親民關(guān)鍵是設(shè)計(jì)階段把接口和數(shù)據(jù)結(jié)構(gòu)定義清楚。等基礎(chǔ)版本穩(wěn)定跑起來(lái)之后再去迭代車位級(jí)指示燈、反向?qū)ぼ囘@類進(jìn)階功能每一步都會(huì)特別有成就感。