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

基于YOLOv8深度學(xué)習(xí)的智能車牌檢測與識(shí)別系統(tǒng)【python源碼+Pyqt5界面+數(shù)據(jù)集+訓(xùn)練代碼】目標(biāo)檢測、深度學(xué)習(xí)實(shí)戰(zhàn)

這篇具有很好參考價(jià)值的文章主要介紹了基于YOLOv8深度學(xué)習(xí)的智能車牌檢測與識(shí)別系統(tǒng)【python源碼+Pyqt5界面+數(shù)據(jù)集+訓(xùn)練代碼】目標(biāo)檢測、深度學(xué)習(xí)實(shí)戰(zhàn)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

《博主簡介》

小伙伴們好,我是阿旭。專注于人工智能、AIGC、python、計(jì)算機(jī)視覺相關(guān)分享研究。
?更多學(xué)習(xí)資源,可關(guān)注公-仲-hao:【阿旭算法與機(jī)器學(xué)習(xí)】,共同學(xué)習(xí)交流~
??感謝小伙伴們點(diǎn)贊、關(guān)注!

《------往期經(jīng)典推薦------》

一、AI應(yīng)用軟件開發(fā)實(shí)戰(zhàn)專欄【鏈接】

項(xiàng)目名稱 項(xiàng)目名稱
1.【人臉識(shí)別與管理系統(tǒng)開發(fā)】 2.【車牌識(shí)別與自動(dòng)收費(fèi)管理系統(tǒng)開發(fā)】
3.【手勢識(shí)別系統(tǒng)開發(fā)】 4.【人臉面部活體檢測系統(tǒng)開發(fā)】
5.【圖片風(fēng)格快速遷移軟件開發(fā)】 6.【人臉表表情識(shí)別系統(tǒng)】
7.【YOLOv8多目標(biāo)識(shí)別與自動(dòng)標(biāo)注軟件開發(fā)】 8.【基于YOLOv8深度學(xué)習(xí)的行人跌倒檢測系統(tǒng)】
9.【基于YOLOv8深度學(xué)習(xí)的PCB板缺陷檢測系統(tǒng)】 10.【基于YOLOv8深度學(xué)習(xí)的生活垃圾分類目標(biāo)檢測系統(tǒng)】
11.【基于YOLOv8深度學(xué)習(xí)的安全帽目標(biāo)檢測系統(tǒng)】 12.【基于YOLOv8深度學(xué)習(xí)的120種犬類檢測與識(shí)別系統(tǒng)】
13.【基于YOLOv8深度學(xué)習(xí)的路面坑洞檢測系統(tǒng)】 14.【基于YOLOv8深度學(xué)習(xí)的火焰煙霧檢測系統(tǒng)】
15.【基于YOLOv8深度學(xué)習(xí)的鋼材表面缺陷檢測系統(tǒng)】 16.【基于YOLOv8深度學(xué)習(xí)的艦船目標(biāo)分類檢測系統(tǒng)】
17.【基于YOLOv8深度學(xué)習(xí)的西紅柿成熟度檢測系統(tǒng)】 18.【基于YOLOv8深度學(xué)習(xí)的血細(xì)胞檢測與計(jì)數(shù)系統(tǒng)】
19.【基于YOLOv8深度學(xué)習(xí)的吸煙/抽煙行為檢測系統(tǒng)】 20.【基于YOLOv8深度學(xué)習(xí)的水稻害蟲檢測與識(shí)別系統(tǒng)】
21.【基于YOLOv8深度學(xué)習(xí)的高精度車輛行人檢測與計(jì)數(shù)系統(tǒng)】 22.【基于YOLOv8深度學(xué)習(xí)的路面標(biāo)志線檢測與識(shí)別系統(tǒng)】
23.【基于YOLOv8深度學(xué)習(xí)的智能小麥害蟲檢測識(shí)別系統(tǒng)】 24.【基于YOLOv8深度學(xué)習(xí)的智能玉米害蟲檢測識(shí)別系統(tǒng)】
25.【基于YOLOv8深度學(xué)習(xí)的200種鳥類智能檢測與識(shí)別系統(tǒng)】 26.【基于YOLOv8深度學(xué)習(xí)的45種交通標(biāo)志智能檢測與識(shí)別系統(tǒng)】
27.【基于YOLOv8深度學(xué)習(xí)的人臉面部表情識(shí)別系統(tǒng)】 28.【基于YOLOv8深度學(xué)習(xí)的蘋果葉片病害智能診斷系統(tǒng)】
29.【基于YOLOv8深度學(xué)習(xí)的智能肺炎診斷系統(tǒng)】 30.【基于YOLOv8深度學(xué)習(xí)的葡萄簇目標(biāo)檢測系統(tǒng)】
31.【基于YOLOv8深度學(xué)習(xí)的100種中草藥智能識(shí)別系統(tǒng)】 32.【基于YOLOv8深度學(xué)習(xí)的102種花卉智能識(shí)別系統(tǒng)】
33.【基于YOLOv8深度學(xué)習(xí)的100種蝴蝶智能識(shí)別系統(tǒng)】 34.【基于YOLOv8與ByteTrack的車輛行人多目標(biāo)檢測與追蹤系統(tǒng)】

二、機(jī)器學(xué)習(xí)實(shí)戰(zhàn)專欄【鏈接】,已更新31期,歡迎關(guān)注,持續(xù)更新中~~
三、深度學(xué)習(xí)【Pytorch】專欄【鏈接】
四、【Stable Diffusion繪畫系列】專欄【鏈接】

《------正文------》

基本功能演示

基于YOLOv8深度學(xué)習(xí)的智能車牌檢測與識(shí)別系統(tǒng)【python源碼+Pyqt5界面+數(shù)據(jù)集+訓(xùn)練代碼】目標(biāo)檢測、深度學(xué)習(xí)實(shí)戰(zhàn),深度學(xué)習(xí)實(shí)戰(zhàn),AI應(yīng)用軟件開發(fā)實(shí)戰(zhàn),計(jì)算機(jī)視覺,深度學(xué)習(xí),python,車牌識(shí)別,YOLOv8,深度學(xué)習(xí)實(shí)戰(zhàn)

摘要:智能車牌檢測與識(shí)別系統(tǒng)通過使用最新的YOLOv8與PaddleOCR算法能夠迅速、準(zhǔn)確地在多種環(huán)境下實(shí)現(xiàn)實(shí)時(shí)車牌的檢測和識(shí)別。本文基于YOLOv8深度學(xué)習(xí)框架,通過16770張圖片,訓(xùn)練了一個(gè)進(jìn)行車牌檢測模型,可以檢測藍(lán)牌與綠牌,然后對(duì)檢測到的車牌使用OCR識(shí)別技術(shù),進(jìn)行車牌的識(shí)別。最終基于此模型開發(fā)了一款帶UI界面的車牌檢測與識(shí)別系統(tǒng),可用于實(shí)時(shí)檢測與識(shí)別場景中的車牌,更方便進(jìn)行功能的展示。該系統(tǒng)是基于pythonPyQT5開發(fā)的,支持圖片視頻以及攝像頭進(jìn)行目標(biāo)檢測與識(shí)別,并保存檢測識(shí)別結(jié)果。本文提供了完整的Python代碼和使用教程,給感興趣的小伙伴參考學(xué)習(xí),完整的代碼資源文件獲取方式見文末。

點(diǎn)擊跳轉(zhuǎn)至文末《完整相關(guān)文件及源碼》獲取


前言

智能車牌檢測與識(shí)別系統(tǒng)通過使用最新的YOLOv8與PaddleOCR算法能夠迅速、準(zhǔn)確地在多種環(huán)境下實(shí)現(xiàn)實(shí)時(shí)車牌的檢測和識(shí)別。這項(xiàng)技術(shù)在現(xiàn)代交通管理中具有重要作用,因?yàn)樗軌蜃詣?dòng)化和簡化許多涉及車輛識(shí)別和記錄的流程。這樣的系統(tǒng)不僅提高了工作效率,還降低了人工錯(cuò)誤,提供了便捷且可靠的數(shù)據(jù)支持,對(duì)于加強(qiáng)交通安全、輔助執(zhí)法以及促進(jìn)智慧城市構(gòu)建具有深遠(yuǎn)意義。

智能車牌檢測與識(shí)別系統(tǒng)的應(yīng)用場景包括
交通違章抓拍:自動(dòng)檢測違章車輛,并記錄車牌號(hào)碼,用于交通違規(guī)的證據(jù)收集和處理。
停車場管理:車牌識(shí)別用于自動(dòng)化的停車場出入管理,實(shí)現(xiàn)無人值守收費(fèi)系統(tǒng),提升停車場的服務(wù)效率。
門禁系統(tǒng):在小區(qū)或企業(yè)區(qū)域的門禁系統(tǒng)中應(yīng)用,僅允許認(rèn)可的車輛進(jìn)入,增強(qiáng)安全管理。
城市交通監(jiān)控:監(jiān)測和分析城市交通流量,以輔助交通規(guī)劃和擁堵管理。
電子收費(fèi)(ETC):高速公路和其他收費(fèi)公路上使用車牌識(shí)別系統(tǒng)來自動(dòng)化收費(fèi)流程,減少交通延誤。
車輛找尋與監(jiān)控:在大型公共場所輔助找尋特定車輛,或是監(jiān)控特定車輛的行駛情況。
總而言之,智能車牌檢測與識(shí)別系統(tǒng)的實(shí)施為交通管理和城市安全帶來了顯著改進(jìn)。這一系統(tǒng)不僅提高了相關(guān)領(lǐng)域的工作效率和處理速度,也加強(qiáng)了安全監(jiān)管能力。在未來,隨著智慧城市和智能交通系統(tǒng)的持續(xù)發(fā)展,智能車牌識(shí)別技術(shù)將會(huì)扮演更加關(guān)鍵的角色,為城市的可持續(xù)和有序發(fā)展貢獻(xiàn)重要力量。

博主通過搜集不同綠牌與藍(lán)牌的車牌相關(guān)圖片,根據(jù)YOLOv8的目標(biāo)檢測技術(shù)結(jié)合PaddleOCR識(shí)別技術(shù),基于python與Pyqt5開發(fā)了一款界面簡潔的智能車牌檢測與識(shí)別系統(tǒng),可支持圖片、視頻以及攝像頭檢測,同時(shí)可以將圖片或者視頻檢測結(jié)果進(jìn)行保存。

軟件初始界面如下圖所示:
基于YOLOv8深度學(xué)習(xí)的智能車牌檢測與識(shí)別系統(tǒng)【python源碼+Pyqt5界面+數(shù)據(jù)集+訓(xùn)練代碼】目標(biāo)檢測、深度學(xué)習(xí)實(shí)戰(zhàn),深度學(xué)習(xí)實(shí)戰(zhàn),AI應(yīng)用軟件開發(fā)實(shí)戰(zhàn),計(jì)算機(jī)視覺,深度學(xué)習(xí),python,車牌識(shí)別,YOLOv8,深度學(xué)習(xí)實(shí)戰(zhàn)

檢測結(jié)果界面如下:
基于YOLOv8深度學(xué)習(xí)的智能車牌檢測與識(shí)別系統(tǒng)【python源碼+Pyqt5界面+數(shù)據(jù)集+訓(xùn)練代碼】目標(biāo)檢測、深度學(xué)習(xí)實(shí)戰(zhàn),深度學(xué)習(xí)實(shí)戰(zhàn),AI應(yīng)用軟件開發(fā)實(shí)戰(zhàn),計(jì)算機(jī)視覺,深度學(xué)習(xí),python,車牌識(shí)別,YOLOv8,深度學(xué)習(xí)實(shí)戰(zhàn)

一、軟件核心功能介紹及效果演示

軟件主要功能

1. 可進(jìn)行實(shí)時(shí)綠牌與藍(lán)牌這兩種車牌的檢測與識(shí)別;
2. 支持圖片、視頻及攝像頭進(jìn)行檢測,同時(shí)支持圖片的批量檢測;
3. 界面可實(shí)時(shí)顯示目標(biāo)位置、識(shí)別結(jié)果、置信度用時(shí)等信息;
4. 支持圖片或者視頻檢測結(jié)果保存;

(1)圖片檢測演示

點(diǎn)擊圖片圖標(biāo),選擇需要檢測的圖片,或者點(diǎn)擊文件夾圖標(biāo),選擇需要批量檢測圖片所在的文件夾,操作演示如下:
點(diǎn)擊保存按鈕,會(huì)對(duì)圖片或視頻檢測結(jié)果進(jìn)行保存,存儲(chǔ)路徑為:save_data目錄下。
單個(gè)圖片檢測操作如下:
基于YOLOv8深度學(xué)習(xí)的智能車牌檢測與識(shí)別系統(tǒng)【python源碼+Pyqt5界面+數(shù)據(jù)集+訓(xùn)練代碼】目標(biāo)檢測、深度學(xué)習(xí)實(shí)戰(zhàn),深度學(xué)習(xí)實(shí)戰(zhàn),AI應(yīng)用軟件開發(fā)實(shí)戰(zhàn),計(jì)算機(jī)視覺,深度學(xué)習(xí),python,車牌識(shí)別,YOLOv8,深度學(xué)習(xí)實(shí)戰(zhàn)

批量圖片檢測操作如下:
點(diǎn)擊表格中的指定行,可以顯示指定圖片的檢測結(jié)果。
基于YOLOv8深度學(xué)習(xí)的智能車牌檢測與識(shí)別系統(tǒng)【python源碼+Pyqt5界面+數(shù)據(jù)集+訓(xùn)練代碼】目標(biāo)檢測、深度學(xué)習(xí)實(shí)戰(zhàn),深度學(xué)習(xí)實(shí)戰(zhàn),AI應(yīng)用軟件開發(fā)實(shí)戰(zhàn),計(jì)算機(jī)視覺,深度學(xué)習(xí),python,車牌識(shí)別,YOLOv8,深度學(xué)習(xí)實(shí)戰(zhàn)

(2)視頻檢測演示

點(diǎn)擊視頻圖標(biāo),打開選擇需要檢測的視頻,就會(huì)自動(dòng)顯示檢測結(jié)果。點(diǎn)擊保存按鈕,會(huì)對(duì)視頻檢測結(jié)果進(jìn)行保存,存儲(chǔ)路徑為:save_data目錄下。
基于YOLOv8深度學(xué)習(xí)的智能車牌檢測與識(shí)別系統(tǒng)【python源碼+Pyqt5界面+數(shù)據(jù)集+訓(xùn)練代碼】目標(biāo)檢測、深度學(xué)習(xí)實(shí)戰(zhàn),深度學(xué)習(xí)實(shí)戰(zhàn),AI應(yīng)用軟件開發(fā)實(shí)戰(zhàn),計(jì)算機(jī)視覺,深度學(xué)習(xí),python,車牌識(shí)別,YOLOv8,深度學(xué)習(xí)實(shí)戰(zhàn)

(3)攝像頭檢測演示

點(diǎn)擊攝像頭圖標(biāo),可以打開攝像頭,可以實(shí)時(shí)進(jìn)行檢測,再次點(diǎn)擊攝像頭圖標(biāo),可關(guān)閉攝像頭。
基于YOLOv8深度學(xué)習(xí)的智能車牌檢測與識(shí)別系統(tǒng)【python源碼+Pyqt5界面+數(shù)據(jù)集+訓(xùn)練代碼】目標(biāo)檢測、深度學(xué)習(xí)實(shí)戰(zhàn),深度學(xué)習(xí)實(shí)戰(zhàn),AI應(yīng)用軟件開發(fā)實(shí)戰(zhàn),計(jì)算機(jī)視覺,深度學(xué)習(xí),python,車牌識(shí)別,YOLOv8,深度學(xué)習(xí)實(shí)戰(zhàn)

(4)保存圖片與視頻檢測結(jié)果

點(diǎn)擊保存按鈕后,會(huì)將當(dāng)前選擇的圖片【含批量圖片】或者視頻的檢測結(jié)果進(jìn)行保存。檢測的圖片與視頻結(jié)果會(huì)存儲(chǔ)在save_data目錄下。
基于YOLOv8深度學(xué)習(xí)的智能車牌檢測與識(shí)別系統(tǒng)【python源碼+Pyqt5界面+數(shù)據(jù)集+訓(xùn)練代碼】目標(biāo)檢測、深度學(xué)習(xí)實(shí)戰(zhàn),深度學(xué)習(xí)實(shí)戰(zhàn),AI應(yīng)用軟件開發(fā)實(shí)戰(zhàn),計(jì)算機(jī)視覺,深度學(xué)習(xí),python,車牌識(shí)別,YOLOv8,深度學(xué)習(xí)實(shí)戰(zhàn)

基于YOLOv8深度學(xué)習(xí)的智能車牌檢測與識(shí)別系統(tǒng)【python源碼+Pyqt5界面+數(shù)據(jù)集+訓(xùn)練代碼】目標(biāo)檢測、深度學(xué)習(xí)實(shí)戰(zhàn),深度學(xué)習(xí)實(shí)戰(zhàn),AI應(yīng)用軟件開發(fā)實(shí)戰(zhàn),計(jì)算機(jī)視覺,深度學(xué)習(xí),python,車牌識(shí)別,YOLOv8,深度學(xué)習(xí)實(shí)戰(zhàn)

二、車牌檢測與識(shí)別流程

要進(jìn)行車牌識(shí)別,主要分為兩步。
第一步:進(jìn)行車輛車牌位置的檢測,本文使用yolov8,通過16770張圖片訓(xùn)練了一個(gè)可用于檢測綠牌與藍(lán)牌的車牌檢測模型來進(jìn)行車牌檢測,檢測精度為0.995;
第二步:對(duì)第一步檢測出的車牌進(jìn)行識(shí)別,直接使用的是PaddleOCR對(duì)于車牌進(jìn)行識(shí)別。
下面對(duì)這些內(nèi)容進(jìn)行詳細(xì)介紹

2.1 第一步:車牌檢測

本文主要基于yolov8訓(xùn)練了一個(gè)車牌檢測模型,用于進(jìn)行車牌位置的檢測,主要步驟如下:

2.1.1 yolov8環(huán)境配置

pip install ultralytics -i https://pypi.tuna.tsinghua.edu.cn/simple

yolov8源碼地址:https://github.com/ultralytics/ultralytics

YOLOv8的基本原理
YOLOv8是一種前沿的目標(biāo)檢測技術(shù),它基于先前YOLO版本在目標(biāo)檢測任務(wù)上的成功,進(jìn)一步提升了性能和靈活性。主要的創(chuàng)新點(diǎn)包括一個(gè)新的骨干網(wǎng)絡(luò)、一個(gè)新的 Ancher-Free 檢測頭和一個(gè)新的損失函數(shù),可以在從 CPU 到 GPU 的各種硬件平臺(tái)上運(yùn)行。
其主要網(wǎng)絡(luò)結(jié)構(gòu)如下:
基于YOLOv8深度學(xué)習(xí)的智能車牌檢測與識(shí)別系統(tǒng)【python源碼+Pyqt5界面+數(shù)據(jù)集+訓(xùn)練代碼】目標(biāo)檢測、深度學(xué)習(xí)實(shí)戰(zhàn),深度學(xué)習(xí)實(shí)戰(zhàn),AI應(yīng)用軟件開發(fā)實(shí)戰(zhàn),計(jì)算機(jī)視覺,深度學(xué)習(xí),python,車牌識(shí)別,YOLOv8,深度學(xué)習(xí)實(shí)戰(zhàn)

2.1.2 數(shù)據(jù)集準(zhǔn)備與處理

本文訓(xùn)練模型使用的數(shù)據(jù)集為CPDD2020綠牌數(shù)據(jù)集與部分CCPD2019的藍(lán)牌數(shù)據(jù)集。
數(shù)據(jù)集下載地址:https://github.com/detectRecog/CCPD
CCPD是一個(gè)大型的、多樣化的、經(jīng)過仔細(xì)標(biāo)注的中國城市車牌開源數(shù)據(jù)集。CCPD數(shù)據(jù)集主要分為CCPD2019數(shù)據(jù)集和CCPD2020(CCPD-Green)數(shù)據(jù)集。CCPD2019數(shù)據(jù)集車牌類型僅有普通車牌(藍(lán)色車牌),CCPD2020數(shù)據(jù)集車牌類型僅有新能源車牌(綠色車牌)。
在CCPD數(shù)據(jù)集中,每張圖片僅包含一張車牌,車牌的車牌省份主要為皖。CCPD中的每幅圖像都包含大量的標(biāo)注信息,但是CCPD數(shù)據(jù)集沒有專門的標(biāo)注文件,每張圖像的文件名就是該圖像對(duì)應(yīng)的數(shù)據(jù)標(biāo)注。
標(biāo)注最困難的部分是注釋四個(gè)頂點(diǎn)的位置。為了完成這項(xiàng)任務(wù),數(shù)據(jù)發(fā)布者首先在10k圖像上手動(dòng)標(biāo)記四個(gè)頂點(diǎn)的位置。然后設(shè)計(jì)了一個(gè)基于深度學(xué)習(xí)的檢測模型,在對(duì)該網(wǎng)絡(luò)進(jìn)行良好訓(xùn)練后,對(duì)每幅圖像的四個(gè)頂點(diǎn)位置進(jìn)行自動(dòng)標(biāo)注。最后,數(shù)據(jù)發(fā)布者雇用了7名兼職工人在兩周內(nèi)糾正這些標(biāo)注。CCPD提供了超過250k個(gè)獨(dú)特的車牌圖像和詳細(xì)的注釋。每張圖像的分辨率為720(寬度)× 1160(高)× 3(通道)。實(shí)際上,這種分辨率足以保證每張圖像中的車牌清晰可辨,但是該數(shù)據(jù)有些圖片標(biāo)注可能不準(zhǔn)。不過總的來說CCPD數(shù)據(jù)集非常推薦研究車牌識(shí)別算法的人員學(xué)習(xí)使用。

本文使用的數(shù)據(jù)集一共包含16770張車牌數(shù)據(jù)。部分圖片如下:
基于YOLOv8深度學(xué)習(xí)的智能車牌檢測與識(shí)別系統(tǒng)【python源碼+Pyqt5界面+數(shù)據(jù)集+訓(xùn)練代碼】目標(biāo)檢測、深度學(xué)習(xí)實(shí)戰(zhàn),深度學(xué)習(xí)實(shí)戰(zhàn),AI應(yīng)用軟件開發(fā)實(shí)戰(zhàn),計(jì)算機(jī)視覺,深度學(xué)習(xí),python,車牌識(shí)別,YOLOv8,深度學(xué)習(xí)實(shí)戰(zhàn)
基于YOLOv8深度學(xué)習(xí)的智能車牌檢測與識(shí)別系統(tǒng)【python源碼+Pyqt5界面+數(shù)據(jù)集+訓(xùn)練代碼】目標(biāo)檢測、深度學(xué)習(xí)實(shí)戰(zhàn),深度學(xué)習(xí)實(shí)戰(zhàn),AI應(yīng)用軟件開發(fā)實(shí)戰(zhàn),計(jì)算機(jī)視覺,深度學(xué)習(xí),python,車牌識(shí)別,YOLOv8,深度學(xué)習(xí)實(shí)戰(zhàn)

數(shù)據(jù)集中圖片的命名規(guī)則如下:
圖片命名:“025-95_113-154&383_386&473-386&473_177&454_154&383_363&402-0_0_22_27_27_33_16-37-15.jpg”

解釋:

1. 025:車牌區(qū)域占整個(gè)畫面的比例;
2. 95_113: 車牌水平和垂直角度, 水平95°, 豎直113°
3. 154&383_386&473:標(biāo)注框左上、右下坐標(biāo),左上(154, 383), 右下(386, 473)
4. 86&473_177&454_154&383_363&402:標(biāo)注框四個(gè)角點(diǎn)坐標(biāo),順序?yàn)橛蚁?、左下、左上、右?5. 0_0_22_27_27_33_16:車牌號(hào)碼映射關(guān)系如下: 第一個(gè)0為省份 對(duì)應(yīng)省份字典provinces中的’皖’,;第二個(gè)0是該車所在地的地市一級(jí)代碼,對(duì)應(yīng)地市一級(jí)代碼字典alphabets的’A’;后5位為字母和文字, 查看車牌號(hào)ads字典,如22為Y,27為3,33為9,16為S,最終車牌號(hào)碼為皖A(yù)Y339S

省份:[“皖”, “滬”, “津”, “渝”, “冀”, “晉”, “蒙”, “遼”, “吉”, “黑”, “蘇”, “浙”, “京”, “閩”, “贛”,
“魯”, “豫”, “鄂”, “湘”, “粵”, “桂”, “瓊”, “川”, “貴”, “云”, “藏”, “陜”, “甘”, “青”, “寧”,
“新”]

地市:[‘A’, ‘B’, ‘C’, ‘D’, ‘E’, ‘F’, ‘G’, ‘H’, ‘J’, ‘K’, ‘L’, ‘M’, ‘N’, ‘P’, ‘Q’,
‘R’, ‘S’, ‘T’, ‘U’, ‘V’, ‘W’,‘X’, ‘Y’, ‘Z’]

車牌字典:[‘A’, ‘B’, ‘C’, ‘D’, ‘E’, ‘F’, ‘G’, ‘H’, ‘J’, ‘K’, ‘L’, ‘M’, ‘N’, ‘P’,
‘Q’, ‘R’, ‘S’, ‘T’, ‘U’, ‘V’, ‘W’, ‘X’,‘Y’, ‘Z’, ‘0’, ‘1’, ‘2’, ‘3’, ‘4’, ‘5’,
‘6’, ‘7’, ‘8’, ‘9’]

制作車牌檢測數(shù)據(jù)集:
這個(gè)數(shù)據(jù)集的檢測和識(shí)別標(biāo)簽都在圖片名中,可以直接通過上述圖片的命名規(guī)則,從圖片讀取出來,再寫入txt文件中即可。代碼如下:

import shutil
import cv2
import os

def txt_translate(path, txt_path):
    print(path)
    print(txt_path)
    for filename in os.listdir(path):
        # print(filename)

        list1 = filename.split("-", 3)  # 第一次分割,以減號(hào)'-'做分割
        subname = list1[2]
        list2 = filename.split(".", 1)
        subname1 = list2[1]
        if subname1 == 'txt':
            continue
        lt, rb = subname.split("_", 1)  # 第二次分割,以下劃線'_'做分割
        lx, ly = lt.split("&", 1)
        rx, ry = rb.split("&", 1)
        width = int(rx) - int(lx)
        height = int(ry) - int(ly)  # bounding box的寬和高
        cx = float(lx) + width / 2
        cy = float(ly) + height / 2  # bounding box中心點(diǎn)

        img = cv2.imread(path + filename)
        if img is None:  # 自動(dòng)刪除失效圖片(下載過程有的圖片會(huì)存在無法讀取的情況)
            print(path + filename)
            os.remove(path + filename)
            continue
        width = width / img.shape[1]
        height = height / img.shape[0]
        cx = cx / img.shape[1]
        cy = cy / img.shape[0]

        txtname = filename.split(".", 1)
        txtfile = txt_path + txtname[0] + ".txt"
        # 綠牌是第0類,藍(lán)牌是第1類
        with open(txtfile, "w") as f:
            f.write(str(0) + " " + str(cx) + " " + str(cy) + " " + str(width) + " " + str(height))


if __name__ == '__main__':
    # det圖片存儲(chǔ)地址
    trainDir = r"G:/datasets/CarPlateData/CCPD2020/ccpd_green/train/"
    validDir = r"G:/datasets/CarPlateData/CCPD2020/ccpd_green/val/"
    testDir = r"G:/datasets/CarPlateData/CCPD2020/ccpd_green/test/"
    # det txt存儲(chǔ)地址
    train_txt_path = r"G:/datasets/CarPlateData/CCPD2020/ccpd_green/train_labels/"
    val_txt_path = r"G:/datasets/CarPlateData/CCPD2020/ccpd_green/val_labels/"
    test_txt_path = r"G:/datasets/CarPlateData/CCPD2020/ccpd_green/test_labels/"
    txt_translate(trainDir, train_txt_path)
    txt_translate(validDir, val_txt_path)
    txt_translate(testDir, test_txt_path)

基于YOLOv8深度學(xué)習(xí)的智能車牌檢測與識(shí)別系統(tǒng)【python源碼+Pyqt5界面+數(shù)據(jù)集+訓(xùn)練代碼】目標(biāo)檢測、深度學(xué)習(xí)實(shí)戰(zhàn),深度學(xué)習(xí)實(shí)戰(zhàn),AI應(yīng)用軟件開發(fā)實(shí)戰(zhàn),計(jì)算機(jī)視覺,深度學(xué)習(xí),python,車牌識(shí)別,YOLOv8,深度學(xué)習(xí)實(shí)戰(zhàn)
制作完成后,如上圖所示。

2.1.3 目標(biāo)檢測模型訓(xùn)練

圖片數(shù)據(jù)集的存放格式如下,在項(xiàng)目目錄中新建datasets目錄,同時(shí)將分類的圖片分為訓(xùn)練集、驗(yàn)證集與測試集放入PlateData目錄下。
基于YOLOv8深度學(xué)習(xí)的智能車牌檢測與識(shí)別系統(tǒng)【python源碼+Pyqt5界面+數(shù)據(jù)集+訓(xùn)練代碼】目標(biāo)檢測、深度學(xué)習(xí)實(shí)戰(zhàn),深度學(xué)習(xí)實(shí)戰(zhàn),AI應(yīng)用軟件開發(fā)實(shí)戰(zhàn),計(jì)算機(jī)視覺,深度學(xué)習(xí),python,車牌識(shí)別,YOLOv8,深度學(xué)習(xí)實(shí)戰(zhàn)
同時(shí)我們需要新建一個(gè)data.yaml文件,用于存儲(chǔ)訓(xùn)練數(shù)據(jù)的路徑及模型需要進(jìn)行檢測的類別。YOLOv8在進(jìn)行模型訓(xùn)練時(shí),會(huì)讀取該文件的信息,用于進(jìn)行模型的訓(xùn)練與驗(yàn)證。data.yaml的具體內(nèi)容如下:

train: E:\MyCVProgram\CarPlateDetection\datasets\PlateData\images\train  # train images (relative to 'path') 128 images
val: E:\MyCVProgram\CarPlateDetection\datasets\PlateData\images\val  # val images (relative to 'path') 128 images

# number of classes
nc: 2

# Classes
names: ['GreenLicense','BlueLicense']

注:train與val后面表示需要訓(xùn)練圖片的路徑,建議直接寫自己文件的絕對(duì)路徑。

數(shù)據(jù)準(zhǔn)備完成后,通過調(diào)用train.py文件進(jìn)行模型訓(xùn)練,epochs參數(shù)用于調(diào)整訓(xùn)練的輪數(shù),batch參數(shù)用于調(diào)整訓(xùn)練的批次大小【根據(jù)內(nèi)存大小調(diào)整,最小為1】,代碼如下:

#coding:utf-8
from ultralytics import YOLO
# 加載預(yù)訓(xùn)練模型
model = YOLO("yolov8n.pt")
# Use the model
if __name__ == '__main__':
    # Use the model
    results = model.train(data='datasets/PlateData/data.yaml', epochs=300, batch=4)  # 訓(xùn)練模型
    # 將模型轉(zhuǎn)為onnx格式
    # success = model.export(format='onnx')

訓(xùn)練結(jié)果評(píng)估

在深度學(xué)習(xí)中,我們通常用損失函數(shù)下降的曲線來觀察模型訓(xùn)練的情況。YOLOv8在訓(xùn)練時(shí)主要包含三個(gè)方面的損失:定位損失(box_loss)、分類損失(cls_loss)和動(dòng)態(tài)特征損失(dfl_loss),在訓(xùn)練結(jié)束后,可以在runs/目錄下找到訓(xùn)練過程及結(jié)果文件,如下所示:
基于YOLOv8深度學(xué)習(xí)的智能車牌檢測與識(shí)別系統(tǒng)【python源碼+Pyqt5界面+數(shù)據(jù)集+訓(xùn)練代碼】目標(biāo)檢測、深度學(xué)習(xí)實(shí)戰(zhàn),深度學(xué)習(xí)實(shí)戰(zhàn),AI應(yīng)用軟件開發(fā)實(shí)戰(zhàn),計(jì)算機(jī)視覺,深度學(xué)習(xí),python,車牌識(shí)別,YOLOv8,深度學(xué)習(xí)實(shí)戰(zhàn)

各損失函數(shù)作用說明:
定位損失box_loss:預(yù)測框與標(biāo)定框之間的誤差(GIoU),越小定位得越準(zhǔn);
分類損失cls_loss:計(jì)算錨框與對(duì)應(yīng)的標(biāo)定分類是否正確,越小分類得越準(zhǔn);
動(dòng)態(tài)特征損失(dfl_loss):DFLLoss是一種用于回歸預(yù)測框與目標(biāo)框之間距離的損失函數(shù)。在計(jì)算損失時(shí),目標(biāo)框需要縮放到特征圖尺度,即除以相應(yīng)的stride,并與預(yù)測的邊界框計(jì)算Ciou Loss,同時(shí)與預(yù)測的anchors中心點(diǎn)到各邊的距離計(jì)算回歸DFLLoss。這個(gè)過程是YOLOv8訓(xùn)練流程中的一部分,通過計(jì)算DFLLoss可以更準(zhǔn)確地調(diào)整預(yù)測框的位置,提高目標(biāo)檢測的準(zhǔn)確性。
本文訓(xùn)練結(jié)果如下:
基于YOLOv8深度學(xué)習(xí)的智能車牌檢測與識(shí)別系統(tǒng)【python源碼+Pyqt5界面+數(shù)據(jù)集+訓(xùn)練代碼】目標(biāo)檢測、深度學(xué)習(xí)實(shí)戰(zhàn),深度學(xué)習(xí)實(shí)戰(zhàn),AI應(yīng)用軟件開發(fā)實(shí)戰(zhàn),計(jì)算機(jī)視覺,深度學(xué)習(xí),python,車牌識(shí)別,YOLOv8,深度學(xué)習(xí)實(shí)戰(zhàn)

我們通常用PR曲線來體現(xiàn)精確率和召回率的關(guān)系,本文訓(xùn)練結(jié)果的PR曲線如下。mAP表示Precision和Recall作為兩軸作圖后圍成的面積,m表示平均,@后面的數(shù)表示判定iou為正負(fù)樣本的閾值。mAP@.5:表示閾值大于0.5的平均mAP,可以看到本文模型目標(biāo)檢測的mAP@0.5平均值為0.995,結(jié)果相當(dāng)不錯(cuò)。
基于YOLOv8深度學(xué)習(xí)的智能車牌檢測與識(shí)別系統(tǒng)【python源碼+Pyqt5界面+數(shù)據(jù)集+訓(xùn)練代碼】目標(biāo)檢測、深度學(xué)習(xí)實(shí)戰(zhàn),深度學(xué)習(xí)實(shí)戰(zhàn),AI應(yīng)用軟件開發(fā)實(shí)戰(zhàn),計(jì)算機(jī)視覺,深度學(xué)習(xí),python,車牌識(shí)別,YOLOv8,深度學(xué)習(xí)實(shí)戰(zhàn)

4. 檢測結(jié)果識(shí)別

模型訓(xùn)練完成后,我們可以得到一個(gè)最佳的訓(xùn)練結(jié)果模型best.pt文件,在runs/trian/weights目錄下。我們可以使用該文件進(jìn)行后續(xù)的推理檢測。
圖片檢測代碼如下:

#coding:utf-8
from ultralytics import YOLO
import cv2
# 所需加載的模型目錄
path = 'models/best.pt'
# 需要檢測的圖片地址
img_path = "TestFiles/013671875-93_102-226&489_426&558-426&558_234&546_226&489_417&494-0_0_5_25_33_24_24_33-86-80.jpg"


# 加載預(yù)訓(xùn)練模型
# conf	0.25	object confidence threshold for detection
# iou	0.7	intersection over union (IoU) threshold for NMS
model = YOLO(path, task='detect')
# model = YOLO(path, task='detect',conf=0.5)


# 檢測圖片
results = model(img_path)
res = results[0].plot()
# res = cv2.resize(res,dsize=None,fx=0.3,fy=0.3,interpolation=cv2.INTER_LINEAR)
cv2.imshow("YOLOv8 Detection", res)
cv2.waitKey(0)

執(zhí)行上述代碼后,會(huì)將執(zhí)行的結(jié)果直接標(biāo)注在圖片上,結(jié)果如下:
基于YOLOv8深度學(xué)習(xí)的智能車牌檢測與識(shí)別系統(tǒng)【python源碼+Pyqt5界面+數(shù)據(jù)集+訓(xùn)練代碼】目標(biāo)檢測、深度學(xué)習(xí)實(shí)戰(zhàn),深度學(xué)習(xí)實(shí)戰(zhàn),AI應(yīng)用軟件開發(fā)實(shí)戰(zhàn),計(jì)算機(jī)視覺,深度學(xué)習(xí),python,車牌識(shí)別,YOLOv8,深度學(xué)習(xí)實(shí)戰(zhàn)
可以發(fā)現(xiàn),該模型能夠很好的檢測出車牌區(qū)域。下面我們需要對(duì)檢測出的車牌進(jìn)行識(shí)別。

2.2 第二步:車牌識(shí)別

本文的車牌識(shí)別直接使用的是開源的PaddleOCR檢測模型。地址:https://github.com/PaddlePaddle/PaddleOCR

2.2.1環(huán)境配置

pip install paddlepaddle2.5.2 -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install paddleocr
2.7.0.3 -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install shapely -i https://pypi.tuna.tsinghua.edu.cn/simple

2.2.2 模型使用demo

基于YOLOv8深度學(xué)習(xí)的智能車牌檢測與識(shí)別系統(tǒng)【python源碼+Pyqt5界面+數(shù)據(jù)集+訓(xùn)練代碼】目標(biāo)檢測、深度學(xué)習(xí)實(shí)戰(zhàn),深度學(xué)習(xí)實(shí)戰(zhàn),AI應(yīng)用軟件開發(fā)實(shí)戰(zhàn),計(jì)算機(jī)視覺,深度學(xué)習(xí),python,車牌識(shí)別,YOLOv8,深度學(xué)習(xí)實(shí)戰(zhàn)

from paddleocr import PaddleOCR, draw_ocr
# Paddleocr目前支持的多語言語種可以通過修改lang參數(shù)進(jìn)行切換
# 例如`ch`, `en`, `fr`, `german`, `korean`, `japan`
cls_model_dir='paddleModels/whl/cls/ch_ppocr_mobile_v2.0_cls_infer'
rec_model_dir='paddleModels/whl/rec/ch/ch_PP-OCRv4_rec_infer'
ocr = PaddleOCR(use_angle_cls=True, lang="ch", det=False,cls_model_dir=cls_model_dir,rec_model_dir=rec_model_dir)  # need to run only once to download and load model into memory
img_path = '22.png'
result = ocr.ocr(img_path, cls=True)

license_name, conf = result[0][0][1]
if '·' in license_name:
    license_name = license_name.replace('·', '')
print(license_name,conf)

基于YOLOv8深度學(xué)習(xí)的智能車牌檢測與識(shí)別系統(tǒng)【python源碼+Pyqt5界面+數(shù)據(jù)集+訓(xùn)練代碼】目標(biāo)檢測、深度學(xué)習(xí)實(shí)戰(zhàn),深度學(xué)習(xí)實(shí)戰(zhàn),AI應(yīng)用軟件開發(fā)實(shí)戰(zhàn),計(jì)算機(jī)視覺,深度學(xué)習(xí),python,車牌識(shí)別,YOLOv8,深度學(xué)習(xí)實(shí)戰(zhàn)

2.2.3加載ocr模型

# 加載ocr模型
cls_model_dir = 'paddleModels/whl/cls/ch_ppocr_mobile_v2.0_cls_infer'
rec_model_dir = 'paddleModels/whl/rec/ch/ch_PP-OCRv4_rec_infer'
ocr = PaddleOCR(use_angle_cls=False, lang="ch", det=False, cls_model_dir=cls_model_dir,rec_model_dir=rec_model_dir)

2.2.4 獲取車牌位置信息

# 所需加載的模型目錄
path = 'models/best.pt'
# 加載預(yù)訓(xùn)練模型
# conf	0.25	object confidence threshold for detection
# iou	0.7	int.ersection over union (IoU) threshold for NMS
model = YOLO(path, task='detect')
# model = YOLO(path, task='detect',conf=0.5)
# 檢測圖片
results = model(img_path)[0]
# 車牌區(qū)域信息
location_list = results.boxes.xyxy.tolist()

2.2.5摳出上述車牌位置

if len(location_list) >= 1:
    location_list = [list(map(int, e)) for e in location_list]
    # 截取每個(gè)車牌區(qū)域的照片
    license_imgs = []
    for each in location_list:
        x1, y1, x2, y2 = each
        cropImg = now_img[y1:y2, x1:x2]
        license_imgs.append(cropImg)
        cv2.imshow('111',cropImg)
        cv2.waitKey(0)

基于YOLOv8深度學(xué)習(xí)的智能車牌檢測與識(shí)別系統(tǒng)【python源碼+Pyqt5界面+數(shù)據(jù)集+訓(xùn)練代碼】目標(biāo)檢測、深度學(xué)習(xí)實(shí)戰(zhàn),深度學(xué)習(xí)實(shí)戰(zhàn),AI應(yīng)用軟件開發(fā)實(shí)戰(zhàn),計(jì)算機(jī)視覺,深度學(xué)習(xí),python,車牌識(shí)別,YOLOv8,深度學(xué)習(xí)實(shí)戰(zhàn)

2.2.6使用ocr進(jìn)行車牌識(shí)別

def get_license_result(ocr,image):
    """
    image:輸入的車牌截取照片
    輸出,車牌號(hào)與置信度
    """
    result = ocr.ocr(image, cls=True)[0]
    if result:
        license_name, conf = result[0][1]
        if '·' in license_name:
            license_name = license_name.replace('·', '')
        return license_name, conf
    else:
        return None, None
# 車牌識(shí)別結(jié)果
lisence_res = []
conf_list = []
for each in license_imgs:
    license_num, conf = get_license_result(ocr, each)
    if license_num:
        lisence_res.append(license_num)
        conf_list.append(conf)
    else:
        lisence_res.append('無法識(shí)別')
        conf_list.append(0)

2.2.7將識(shí)別結(jié)果顯示在圖片上

    for text, box in zip(lisence_res, location_list):
        now_img = tools.drawRectBox(now_img, box, text, fontC)

2.2.8完整代碼

#coding:utf-8
from ultralytics import YOLO
import cv2
import detect_tools as tools
from PIL import ImageFont
from paddleocr import PaddleOCR


def get_license_result(ocr,image):
    """
    image:輸入的車牌截取照片
    輸出,車牌號(hào)與置信度
    """
    result = ocr.ocr(image, cls=True)[0]
    if result:
        license_name, conf = result[0][1]
        if '·' in license_name:
            license_name = license_name.replace('·', '')
        return license_name, conf
    else:
        return None, None

# 需要檢測的圖片地址
img_path = "TestFiles/013671875-93_102-226&489_426&558-426&558_234&546_226&489_417&494-0_0_5_25_33_24_24_33-86-80.jpg"
now_img = tools.img_cvread(img_path)

fontC = ImageFont.truetype("Font/platech.ttf", 50, 0)
# 加載ocr模型
cls_model_dir = 'paddleModels/whl/cls/ch_ppocr_mobile_v2.0_cls_infer'
rec_model_dir = 'paddleModels/whl/rec/ch/ch_PP-OCRv4_rec_infer'
ocr = PaddleOCR(use_angle_cls=False, lang="ch", det=False, cls_model_dir=cls_model_dir,rec_model_dir=rec_model_dir)

# 所需加載的模型目錄
path = 'models/best.pt'
# 加載預(yù)訓(xùn)練模型
# conf	0.25	object confidence threshold for detection
# iou	0.7	int.ersection over union (IoU) threshold for NMS
model = YOLO(path, task='detect')
# model = YOLO(path, task='detect',conf=0.5)
# 檢測圖片
results = model(img_path)[0]

location_list = results.boxes.xyxy.tolist()
if len(location_list) >= 1:
    location_list = [list(map(int, e)) for e in location_list]
    # 截取每個(gè)車牌區(qū)域的照片
    license_imgs = []
    for each in location_list:
        x1, y1, x2, y2 = each
        cropImg = now_img[y1:y2, x1:x2]
        license_imgs.append(cropImg)
        cv2.imshow('111',cropImg)
        cv2.waitKey(0)
    # 車牌識(shí)別結(jié)果
    lisence_res = []
    conf_list = []
    for each in license_imgs:
        license_num, conf = get_license_result(ocr, each)
        if license_num:
            lisence_res.append(license_num)
            conf_list.append(conf)
        else:
            lisence_res.append('無法識(shí)別')
            conf_list.append(0)
    for text, box in zip(lisence_res, location_list):
        now_img = tools.drawRectBox(now_img, box, text, fontC)

now_img = cv2.resize(now_img,dsize=None,fx=0.5,fy=0.5,interpolation=cv2.INTER_LINEAR)
cv2.imshow("YOLOv8 Detection", now_img)
cv2.waitKey(0)

基于YOLOv8深度學(xué)習(xí)的智能車牌檢測與識(shí)別系統(tǒng)【python源碼+Pyqt5界面+數(shù)據(jù)集+訓(xùn)練代碼】目標(biāo)檢測、深度學(xué)習(xí)實(shí)戰(zhàn),深度學(xué)習(xí)實(shí)戰(zhàn),AI應(yīng)用軟件開發(fā)實(shí)戰(zhàn),計(jì)算機(jī)視覺,深度學(xué)習(xí),python,車牌識(shí)別,YOLOv8,深度學(xué)習(xí)實(shí)戰(zhàn)

以上便是關(guān)于此款智能車牌檢測與識(shí)別系統(tǒng)的原理與代碼介紹?;诖四P停┲饔?code>python與Pyqt5開發(fā)了一個(gè)帶界面的軟件系統(tǒng),即文中第二部分的演示內(nèi)容,能夠很好的支持圖片、視頻及攝像頭進(jìn)行檢測,同時(shí)支持檢測結(jié)果的保存

關(guān)于該系統(tǒng)涉及到的完整源碼、UI界面代碼、數(shù)據(jù)集、訓(xùn)練代碼、測試圖片視頻等相關(guān)文件,均已打包上傳,感興趣的小伙伴可以通過下載鏈接自行獲取。


【獲取方式】

關(guān)注下方名片G-Z-H:【阿旭算法與機(jī)器學(xué)習(xí)】,發(fā)送【源碼】即可獲取下載方式

本文涉及到的完整全部程序文件:包括python源碼、數(shù)據(jù)集、訓(xùn)練代碼、UI文件、測試圖片視頻等(見下圖),獲取方式見文末:
基于YOLOv8深度學(xué)習(xí)的智能車牌檢測與識(shí)別系統(tǒng)【python源碼+Pyqt5界面+數(shù)據(jù)集+訓(xùn)練代碼】目標(biāo)檢測、深度學(xué)習(xí)實(shí)戰(zhàn),深度學(xué)習(xí)實(shí)戰(zhàn),AI應(yīng)用軟件開發(fā)實(shí)戰(zhàn),計(jì)算機(jī)視覺,深度學(xué)習(xí),python,車牌識(shí)別,YOLOv8,深度學(xué)習(xí)實(shí)戰(zhàn)

注意:該代碼基于Python3.9開發(fā),運(yùn)行界面的主程序?yàn)?code>MainProgram.py,其他測試腳本說明見上圖。為確保程序順利運(yùn)行,請(qǐng)按照程序運(yùn)行說明文檔txt配置軟件運(yùn)行所需環(huán)境。

關(guān)注下方名片GZH:【阿旭算法與機(jī)器學(xué)習(xí)】,發(fā)送【源碼】即可獲取下載方式


結(jié)束語

以上便是博主開發(fā)的基于YOLOv8深度學(xué)習(xí)的智能車牌檢測與識(shí)別系統(tǒng)的全部內(nèi)容,由于博主能力有限,難免有疏漏之處,希望小伙伴能批評(píng)指正。
關(guān)于本篇文章大家有任何建議或意見,歡迎在評(píng)論區(qū)留言交流!

覺得不錯(cuò)的小伙伴,感謝點(diǎn)贊、關(guān)注加收藏哦!文章來源地址http://www.zghlxwxcb.cn/news/detail-829224.html

到了這里,關(guān)于基于YOLOv8深度學(xué)習(xí)的智能車牌檢測與識(shí)別系統(tǒng)【python源碼+Pyqt5界面+數(shù)據(jù)集+訓(xùn)練代碼】目標(biāo)檢測、深度學(xué)習(xí)實(shí)戰(zhàn)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包