国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

YOLOv5、CNN、SVM實現(xiàn)車牌檢測

這篇具有很好參考價值的文章主要介紹了YOLOv5、CNN、SVM實現(xiàn)車牌檢測。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

一、背景

? ? ? ? 隨著人們的生活水平不斷提高,汽車數(shù)量日益增加。隨之而來的管理難度逐漸增大,對車牌檢測有了越來越高的需求,比如:在汽車違法檢測、停車場的入口檢測等都需要車牌檢測進行輔助管理。中國車牌根據(jù)顏色可劃分為五種顏色:藍色、黃色、白色、黑色、綠色。根據(jù)車牌層數(shù)可以分為單層和雙層車牌,還可以更加細分為以下類別:

  1. 藍色單層車牌
  2. 黃色單層車牌
  3. 黃色雙層車牌
  4. 綠色新能源車牌、民航車牌
  5. 綠色農(nóng)用車牌
  6. 黑色單層車牌、使館車牌
  7. 白色警牌、軍牌、武警車牌
  8. 白色雙層軍牌

? ? ? ?考慮到目前實際生活中的實際情況以及開源的車牌數(shù)據(jù)集的原因,僅實現(xiàn)對藍色、黃色、綠色的單層車牌進行車牌檢測,白色和黑色車牌檢測效果不佳。

二、開發(fā)環(huán)境與庫函數(shù)說明

采用Python語言編寫,使用到的庫函數(shù)較多。這里僅介紹主要使用的庫:

tkinter:tkinter模塊是Python的標準Tk GUI工具包的接口。GUI界面采用該工具包。

opencv-python:是一個Python綁定庫,旨在解決計算機視覺問題。在實現(xiàn)傳統(tǒng)圖像處理方法檢測車牌中使用大量使用到。

torch:是深度學習神經(jīng)網(wǎng)絡中常用的庫。在實現(xiàn)YOLOv5算法檢測車牌中使用到。

tensorflow:tensorflow是Google推出的機器學習開源神器,擁有各種各樣的模型和算法。在實現(xiàn)CNN對車牌字符識別中使用到。

還使用到了許多其他庫,這里就不一一介紹了,詳情可見代碼中的requirements.txt文件。

三、編程思想介紹

? ? ? ?本次課程設計采用模塊化設計,將程序GUI和具體算法的實現(xiàn)進行分隔,將每一個識別算法進行封裝,互不影響。各模塊調(diào)用關系流程圖如圖1所示:

YOLOv5、CNN、SVM實現(xiàn)車牌檢測

圖1 各模塊調(diào)用關系圖

?四、程序設計過程

? ? ? ?程序可以劃分為GUI模塊、傳統(tǒng)方法檢測車牌+SVM識別車牌字符模塊、YOLOv5方法檢測車牌+SVM識別車牌字符模塊、YOLOv5方法檢測車牌+CNN識別車牌字符模塊等四大模塊,下面將進行詳細介紹。

1.GUI模塊

? ? ? ?GUI模塊采用tkinter庫實現(xiàn)界面,由于界面不是重點,所以界面設計得比較簡約。界面效果如圖2所示:

YOLOv5、CNN、SVM實現(xiàn)車牌檢測

圖2 界面效果圖?

? ? ? ? 界面主要包含原圖、車牌位置、識別結果、選擇識別算法、選擇圖片等組件。由于界面布局比較簡單,在此不對代碼邏輯進行介紹。使用時需注意當沒有選擇圖片時,無法選擇識別算法,識別算法默認選擇“傳統(tǒng)方法檢測車牌+SVM識別車牌字符”算法。當選擇圖片后,可以隨意更改識別算法。

2.傳統(tǒng)方法檢測車牌+SVM識別車牌字符模塊

? ? ? ? 該模塊可以細分為兩個子模塊,分別是傳統(tǒng)方法檢測車牌和識別車牌字符模塊。傳統(tǒng)方法檢測車牌模塊使用圖像處理方法負責在一張圖像中檢測出車牌,識別車牌字符模塊使用SVM算法負責識別車牌中的字符。

(1)以圖3為例,下面介紹傳統(tǒng)方法檢測車牌做了哪些工作:

①調(diào)整圖片比例,進行高斯去噪,并將圖片轉(zhuǎn)換為灰度圖。處理后的效果圖如圖4所示:

YOLOv5、CNN、SVM實現(xiàn)車牌檢測?YOLOv5、CNN、SVM實現(xiàn)車牌檢測

??圖3 原圖? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 圖4 去噪后的灰度圖

②進行形態(tài)變化,并將變化后的圖像和灰度圖兩幅圖像合成為一幅圖像。處理后的效果圖如圖5所示:

YOLOv5、CNN、SVM實現(xiàn)車牌檢測YOLOv5、CNN、SVM實現(xiàn)車牌檢測

圖5 形態(tài)變化后的效果圖

③先對圖像進行閾值處理,再使用cv2.Canny函數(shù)進行邊緣檢測。處理后的效果圖如圖6所示:

YOLOv5、CNN、SVM實現(xiàn)車牌檢測

圖6 邊緣檢測后的效果圖

④查找圖像邊緣整體形成的矩形區(qū)域,可能有很多,可以根據(jù)長寬比例是否是2~2.5之間進行排除那些不是矩形的區(qū)域。

⑤矩形區(qū)域可能是傾斜的矩形,所以先進行矯正,然后根據(jù)顏色定位,排除不是車牌的矩形,目前只識別藍、綠、黃車牌。

⑥檢測到車牌位置后,再根據(jù)車牌顏色再定位,縮小邊緣非車牌邊界。得到車牌如圖7所示:

YOLOv5、CNN、SVM實現(xiàn)車牌檢測

圖7 檢測到的車牌

(2)在檢測到車牌后,緊接著對車牌進行字符識別的工作:

①將車牌轉(zhuǎn)換為灰度圖,并根據(jù)車牌顏色進行處理。由于黃、綠車牌字符比背景暗,藍車牌剛好相反,所以黃、綠車牌需要進行反向處理。處理好后的效果圖如圖8所示:

YOLOv5、CNN、SVM實現(xiàn)車牌檢測

圖8 處理后的車牌

②對字符進行分割。首先進行水平投影,將二值化的車牌圖片水平投影到Y軸,得到連續(xù)投影最長的一段作為字符區(qū)域,因為車牌四周有白色的邊緣,這里可以把水平方向上的連續(xù)白線過濾掉。然后進行垂直投影,因為字符與字符之間總會分隔一段距離,因此可以作為水平分割的依據(jù),分割后的字符寬度必須達到平均寬度才能算作一個字符,這里可以排除車牌第2、3字符中間的“.”。

③將分割后的字符進行預測,使用訓練好的svmchinese.dat對車牌中的中文字符進行預測,使用訓練好的svm.dat對車牌中的英文和數(shù)字字符進行預測,得到預測結果為['京','A','D','7','Z','9','7','2']。預測結果中,有一點小錯誤,是因為訓練SVM模型的數(shù)據(jù)集太少的原因,導致結果不準確。程序GUI顯示的效果圖如圖9所示:

YOLOv5、CNN、SVM實現(xiàn)車牌檢測

圖9?GUI顯示的效果圖

2.YOLOv5方法檢測車牌+SVM識別車牌字符

? ? ? ?該模塊可以細分為兩個子模塊,分別是YOLOv5方法檢測車牌和識別車牌字符模塊。YOLOv5方法檢測車牌模塊使用YOLOv5模型負責在一張圖像中檢測出車牌,識別車牌字符模塊使用SVM算法負責識別車牌中的字符。SVM算法識別車牌中的字符的過程在上一個小節(jié)描述了,在這兒不再贅述了。

? ? ? ? YOLOv5模型Ultralytics公司于2020年6月9日公開發(fā)布的。YOLOv5模型是基于YOLOv3模型基礎上改進而來的,有YOLOv5s、YOLOv5m、YOLOv5l、YOLOv5四個模型。YOLOv5模型由骨干網(wǎng)絡、頸部和頭部組成。是計算機視覺界十分流行的模型,由于模型較大同時數(shù)據(jù)集也很大,導致訓練時間非常長,本次課程設計采用在CCPD數(shù)據(jù)集上預訓練好的模型作為車牌檢測模型。

①加載預訓練好的模型,檢測出車牌的四個角的坐標,檢測效果圖如圖10所示,紅框中即是檢測出的車牌。

YOLOv5、CNN、SVM實現(xiàn)車牌檢測

圖10 車牌檢測的效果圖

②檢測出車牌后,將車牌截取出來,截取出的車牌如圖11所示。截取出的車牌再使用SVM模型進行字符識別。

YOLOv5、CNN、SVM實現(xiàn)車牌檢測

圖11 截取出的車牌效果圖

3.YOLOv5方法檢測車牌+CNN識別車牌字符

? ? ? ?該模塊可以細分為兩個子模塊,分別是YOLOv5方法檢測車牌和識別車牌字符模塊。YOLOv5方法檢測車牌模塊使用YOLOv5模型負責在一張圖像中檢測出車牌,識別車牌字符模塊使用CNN算法負責識別車牌中的字符。YOLOv5模型檢測車牌的過程在上一個小節(jié)描述了,在這兒不再贅述了。

? ? ? ?CNN算法是卷積神經(jīng)網(wǎng)絡(Convolutional Neural Networks,簡稱CNN)?,F(xiàn)在,CNN已經(jīng)成為眾多科學領域的研究熱點之一。卷積神經(jīng)網(wǎng)絡CNN的結構一般包含這幾層:

1)輸入層:用于數(shù)據(jù)的輸入。

2)卷積層:使用卷積核進行特征提取和特征映射。

3)激活層:由于卷積也是一種線性運算,因此需要增加非線性映射。

4)池化層:進行下采樣,對特征圖稀疏處理,減少數(shù)據(jù)運算量。

5)全連接層:通常在CNN的尾部進行重新擬合,減少特征信息的損失。

6)輸出層:輸出模型預測的結果。

? ? ? ?采用Tensorflow庫搭建CNN模型,由于CCPD數(shù)據(jù)集龐大,訓練時間久,受于實驗設備和時間的影響,采用在CCPD數(shù)據(jù)集上預訓練好的模型作為車牌字符識別模型。但是由于該預訓練模型訓練輪次不夠,同時由于數(shù)據(jù)集黃色和綠色牌照的數(shù)量較少,導致模型對黃色和綠色牌照的檢測效果十分差,但是藍色牌照識別準確率很高。

五、實驗結果

1.程序運行效果:

? ? ? ?程序運行的初始界面如圖12所示。當未選擇圖片時,“選擇識別算法”下的單選框處于禁用狀態(tài),默認選擇“傳統(tǒng)方法檢測車牌,SVM識別車牌字符”。

YOLOv5、CNN、SVM實現(xiàn)車牌檢測

圖12 程序運行的初始界面

? ? ? ? 在選擇圖片后,可根據(jù)需要切換識別算法,在“選擇識別算法”選擇對應算法的單選框,程序便會自動執(zhí)行對應的識別算法。選擇不同的識別算法后,程序運行的界面如圖13所示:

YOLOv5、CNN、SVM實現(xiàn)車牌檢測

YOLOv5、CNN、SVM實現(xiàn)車牌檢測

YOLOv5、CNN、SVM實現(xiàn)車牌檢測

圖13 程序運行界面

?2.識別算法準確率分析:

? ? ? ? 為了了解算法哪個算法的檢測準確率最高,在測試集對識別算法進行測試。測試集包含30張圖片,其中藍色牌照24張、黃色牌照4張以及綠色牌照2張。測試集中的牌照比例是根據(jù)CCPD數(shù)據(jù)集中各牌照比例進行設計的。測試結果如表1所示:

算法

準確率(%)

傳統(tǒng)方法檢測車牌+SVM識別車牌字符

56.7%

YOLOv5方法檢測車牌+SVM識別車牌字符

60%

YOLOv5方法檢測車牌+CNN識別車牌字符

43.3%

? ? ? ? 從實驗結果可以看出,總體上看識別準確率并不高,但是觀察識別錯誤中的數(shù)據(jù),發(fā)現(xiàn)其中只是個別字符出現(xiàn)錯誤。其中YOLOv5對車牌的檢測效果要略優(yōu)于傳統(tǒng)圖像處理方法,如果YOLOv5算法訓練數(shù)據(jù)集以及訓練輪次增加,識別效果將會變得更好。SVM識別車牌字符效果看上去要比CNN識別車牌字符好,具體的原因是CNN訓練輪次不足導致的,如果實驗條件充足,增加訓練輪次和數(shù)據(jù)集,那么CNN識別效果肯定是優(yōu)于SVM的??傮w上來說,我認為YOLOv5方法檢測車牌+CNN識別車牌字符算法準確率是要優(yōu)于其他算法的,但是資源消耗上要遠遠高于其他算法。這也是深度學習模型共有的缺陷了,太過于依賴訓練輪次和訓練數(shù)據(jù)集。

代碼在:https://github.com/Dara-to-win/Plate-Recognition

歡迎Star一下?。。?/p>

參考文獻:

[1]基于yolov5的車牌檢測,https://github.com/xialuxi/yolov5-car-plate

[2]CCPD(中國城市停車數(shù)據(jù)集),https://github.com/detectRecog/CCPD

[3]端到端車牌識別項目,https://github.com/MrZhousf/license_plate_recognize

[4]車牌號識別python + opencv,https://blog.csdn.net/wzh191920/article/details/79589506

[5]車牌號識別https://github.com/wzh191920/License-Plate-Recognition

[6]CNN算法,http://t.zoukankan.com/lorenshuai724005-p-9520445.html文章來源地址http://www.zghlxwxcb.cn/news/detail-432298.html

到了這里,關于YOLOv5、CNN、SVM實現(xiàn)車牌檢測的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 計算機視覺基礎——基于yolov5-face算法的車牌檢測

    計算機視覺基礎——基于yolov5-face算法的車牌檢測

    torch==1.8.1 torchvision==0.9.1 2.1 CCPD數(shù)據(jù)集介紹 2.1.1 ccpd2019及2020 CCPD數(shù)據(jù)集主要采集于安徽某停車場一段時間內(nèi)的數(shù)據(jù), 所有圖片尺寸固定為720×1160(w×h), 大約包含25w+的各種場景圖片,如下圖所示: 類別 描述 圖片數(shù) CCPD-Base 通用車牌圖片 200k CCPD-FN 車牌離攝像頭拍攝位置相對

    2024年02月06日
    瀏覽(26)
  • 基于深度學習的CCPD車牌檢測系統(tǒng)(PyTorch+Pyside6+YOLOv5模型)

    基于深度學習的CCPD車牌檢測系統(tǒng)(PyTorch+Pyside6+YOLOv5模型)

    摘要:基于CCPD數(shù)據(jù)集的高精度車牌檢測系統(tǒng)可用于日常生活中檢測與定位車牌目標,利用深度學習算法可實現(xiàn)圖片、視頻、攝像頭等方式的車牌目標檢測識別,另外支持結果可視化與圖片或視頻檢測結果的導出。本系統(tǒng)采用YOLOv5目標檢測模型訓練數(shù)據(jù)集,使用Pysdie6庫來搭建

    2024年02月14日
    瀏覽(38)
  • 目標檢測算法(R-CNN,fast R-CNN,faster R-CNN,yolo,SSD,yoloV2,yoloV3,yoloV4,yoloV5,yoloV6,yoloV7)

    目標檢測算法(R-CNN,fast R-CNN,faster R-CNN,yolo,SSD,yoloV2,yoloV3,yoloV4,yoloV5,yoloV6,yoloV7)

    深度學習目前已經(jīng)應用到了各個領域,應用場景大體分為三類:物體識別,目標檢測,自然語言處理。 目標檢測可以理解為是物體識別和物體定位的綜合 ,不僅僅要識別出物體屬于哪個分類,更重要的是得到物體在圖片中的具體位置。 為了完成這兩個任務,目標檢測模型分

    2024年02月02日
    瀏覽(26)
  • 從R-CNN到Faster-RCNN再到YOLOV5,目標檢測網(wǎng)絡發(fā)展概述

    從R-CNN到Faster-RCNN再到YOLOV5,目標檢測網(wǎng)絡發(fā)展概述

    ?R-CNN由Ross Girshick于2014年提出,R-CNN首先通過 選擇性搜索算法Selective Search 從一組對象候選框中選擇可能出現(xiàn)的對象框,然后將這些選擇出來的對象框中的圖像resize到某一固定尺寸的圖像,并喂入到 CNN模型 (經(jīng)過在ImageNet數(shù)據(jù)集上訓練過的CNN模型,如AlexNet)提取特征,最后將

    2024年02月05日
    瀏覽(23)
  • YOLOv5實現(xiàn)目標檢測

    YOLOv5實現(xiàn)目標檢測

    YOLOv5 ?? 是COCO數(shù)據(jù)集上預處理的一系列對象檢測架構和模型,代表Ultralytics對未來視覺人工智能方法的開源研究,融合了數(shù)千小時研究和開發(fā)過程中積累的經(jīng)驗教訓和最佳實踐。 本文用來記錄第一次使用 YOLOv5實現(xiàn): 視頻目標檢測 攝像頭目標檢測 博主所使用的環(huán)境是win10 +

    2024年02月09日
    瀏覽(24)
  • 【YOLOv5實現(xiàn)玩手機檢測】

    【YOLOv5實現(xiàn)玩手機檢測】

    模型和數(shù)據(jù)集下載: 1、玩手機檢測數(shù)據(jù) 2、YOLOv5玩手機檢測模型 3、YOLOv5玩手機檢測模型+pyqt界面 4、 VOC手機檢測識別數(shù)據(jù)集 5、yolov7玩手機檢測+訓練好的玩手機的模型 6、Darknet版YOLOv3玩手機檢測+weights權重+標注好的數(shù)據(jù)集 7、Darknet版YOLOv4玩手機檢測+weights權重+數(shù)據(jù)集 其他數(shù)

    2024年02月09日
    瀏覽(21)
  • 【目標檢測】理論篇(3)YOLOv5實現(xiàn)

    【目標檢測】理論篇(3)YOLOv5實現(xiàn)

    Yolov5網(wǎng)絡構架實現(xiàn)

    2024年02月09日
    瀏覽(23)
  • 【目標檢測算法實現(xiàn)之yolov5】 一、YOLOv5環(huán)境配置,將yolov5部署到遠程服務器上

    【目標檢測算法實現(xiàn)之yolov5】 一、YOLOv5環(huán)境配置,將yolov5部署到遠程服務器上

    在官網(wǎng):https://github.com/ultralytics/yolov5上下載yolov5源代碼 下載成功如下: 在配置基礎環(huán)境之前,提前壓縮自己的代碼文件,并通過winscp傳輸給linux端,傳輸之后,解壓該文件。解壓前,先創(chuàng)建一個文件夾,再解壓。 winscp下載使用教程參考上一篇博客:使用WinSCP下載和文件傳輸

    2024年01月15日
    瀏覽(30)
  • 【目標檢測】YOLOv5算法實現(xiàn)(九):模型預測

    【目標檢測】YOLOv5算法實現(xiàn)(九):模型預測

    ??本系列文章記錄本人碩士階段YOLO系列目標檢測算法自學及其代碼實現(xiàn)的過程。其中算法具體實現(xiàn)借鑒于ultralytics YOLO源碼Github,刪減了源碼中部分內(nèi)容,滿足個人科研需求。 ??本系列文章主要以YOLOv5為例完成算法的實現(xiàn),后續(xù)修改、增加相關模塊即可實現(xiàn)其他版本的

    2024年01月21日
    瀏覽(24)
  • 使用YOLOv5實現(xiàn)實時目標檢測結果保存

    使用YOLOv5實現(xiàn)實時目標檢測結果保存

    ? ? ? ?本文將分享保存實時目標檢測結果的方法,包括將目標信息逐幀保存到.txt文件中、逐幀輸出檢測結果圖片、以及如何保存所有檢測圖片(包括視野中無目標的幀)。 目錄 0.準備 1.目標信息保存 2.檢測圖片保存 3.保存所有幀 ? ? ? ?本文以單攝像頭實時目標檢測進行演

    2024年02月03日
    瀏覽(20)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包