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

基于YOLOv5的停車位檢測系統(tǒng)(清新UI+深度學(xué)習(xí)+訓(xùn)練數(shù)據(jù)集)

這篇具有很好參考價值的文章主要介紹了基于YOLOv5的停車位檢測系統(tǒng)(清新UI+深度學(xué)習(xí)+訓(xùn)練數(shù)據(jù)集)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

基于YOLOv5的停車位檢測系統(tǒng)(清新UI+深度學(xué)習(xí)+訓(xùn)練數(shù)據(jù)集)

摘要:基于YOLOv5的停車位檢測系統(tǒng)用于露天停車場車位檢測,應(yīng)用深度學(xué)習(xí)技術(shù)檢測停車位是否占用,以輔助停車場對車位進(jìn)行智能化管理。在介紹算法原理的同時,給出Python的實現(xiàn)代碼、訓(xùn)練數(shù)據(jù)集以及PyQt的UI界面。博文提供了完整的Python代碼和使用教程,適合新入門的朋友參考,完整代碼資源文件請轉(zhuǎn)至文末的下載鏈接。本博文目錄如下:

?點擊跳轉(zhuǎn)至文末所有涉及的完整代碼文件下載頁?

基于深度學(xué)習(xí)的停車位檢測系統(tǒng)演示與介紹


前言

????????停車位檢測系統(tǒng)是指利用計算機視覺技術(shù)對停車場內(nèi)的停車位進(jìn)行實時監(jiān)測和識別,以便為車主提供及時準(zhǔn)確的空余停車位信息。停車位檢測系統(tǒng)主要包括兩個主要組成部分:硬件和軟件。硬件方面,停車位檢測系統(tǒng)需要使用攝像頭或傳感器等設(shè)備對停車場進(jìn)行實時監(jiān)測,以獲取停車位的狀態(tài)信息。軟件方面,停車位檢測系統(tǒng)需要使用計算機視覺技術(shù)對攝像頭或傳感器拍攝的圖像進(jìn)行分析和處理,以實現(xiàn)停車位的檢測和識別。停車位檢測系統(tǒng)的主要功能包括實時監(jiān)測停車場內(nèi)的停車位,精準(zhǔn)識別車位狀態(tài),即刻提供車位空余信息,提高停車場的利用效率,減少車主的停車等待時間,緩解停車位緊張問題,改善城市停車環(huán)境,提高城市交通管理水平等。停車位檢測系統(tǒng)在智慧城市建設(shè)、交通管理、商業(yè)運營等領(lǐng)域具有廣泛的應(yīng)用前景。同時,停車位檢測系統(tǒng)還可以結(jié)合車輛管理系統(tǒng)、支付系統(tǒng)等其他系統(tǒng),實現(xiàn)更加智能化的停車場管理和服務(wù)。

????????停車位檢測系統(tǒng)基于機器視覺深度學(xué)習(xí)技術(shù)能夠?qū)崿F(xiàn)無人值守的不間斷工作,并且系統(tǒng)可以主動發(fā)現(xiàn)監(jiān)控區(qū)域內(nèi)的空閑停車位情況;極大的節(jié)約了人員成本,提高了工作效率。這里給出博主設(shè)計的軟件界面,同款的簡約風(fēng),功能也可以滿足圖片、視頻和攝像頭的識別檢測,希望大家可以喜歡,初始界面如下圖:

基于YOLOv5的停車位檢測系統(tǒng)(清新UI+深度學(xué)習(xí)+訓(xùn)練數(shù)據(jù)集)

????????檢測系統(tǒng)的界面截圖(點擊圖片可放大)如下圖,可識別畫面中存在的多個停車位,也可開啟攝像頭或視頻檢測:

基于YOLOv5的停車位檢測系統(tǒng)(清新UI+深度學(xué)習(xí)+訓(xùn)練數(shù)據(jù)集)

???????? 詳細(xì)的功能演示效果參見博主的B站視頻或下一節(jié)的動圖演示,覺得不錯的朋友敬請點贊、關(guān)注加收藏!系統(tǒng)UI界面的設(shè)計工作量較大,界面美化更需仔細(xì)雕琢,大家有任何建議或意見和可在下方評論交流。


1. 效果演示

????????首先我們還是通過動圖看一下識別的效果,系統(tǒng)主要實現(xiàn)的功能是對圖片、視頻和攝像頭畫面中的停車位進(jìn)行識別,識別的結(jié)果可視化顯示在界面和圖像中,另外提供多個目標(biāo)的顯示選擇功能,演示效果如下。

(一)用戶注冊登錄界面

????????這里設(shè)計了一個登錄界面,可以注冊賬號和密碼,然后進(jìn)行登錄。界面還是參考了當(dāng)前流行的UI設(shè)計,左側(cè)是一個LOGO圖,右側(cè)輸入賬號、密碼、驗證碼等等。

基于YOLOv5的停車位檢測系統(tǒng)(清新UI+深度學(xué)習(xí)+訓(xùn)練數(shù)據(jù)集)

(二)選擇圖片識別

????????系統(tǒng)允許選擇圖片文件進(jìn)行識別,點擊圖片選擇按鈕圖標(biāo)選擇圖片后,顯示所有停車位識別的結(jié)果,可通過下拉選框查看單個停車位的結(jié)果。本功能的界面展示如下圖所示:

基于YOLOv5的停車位檢測系統(tǒng)(清新UI+深度學(xué)習(xí)+訓(xùn)練數(shù)據(jù)集)

(三)視頻識別效果展示

????????很多時候我們需要識別一段視頻,這里設(shè)計了視頻選擇功能。點擊視頻按鈕可選擇待檢測的視頻,系統(tǒng)會自動解析視頻逐幀識別停車位,并將結(jié)果記錄在右下角表格中,效果如下圖所示:

基于YOLOv5的停車位檢測系統(tǒng)(清新UI+深度學(xué)習(xí)+訓(xùn)練數(shù)據(jù)集)


2. 停車位數(shù)據(jù)集及訓(xùn)練

????????這里我們使用的停車位識別數(shù)據(jù)集,包含訓(xùn)練數(shù)據(jù)集8690張圖片,驗證集2483張圖像,測試集1242張圖像,共計12415張圖片。以下是部分?jǐn)?shù)據(jù)文件及對應(yīng)標(biāo)注情況:

基于YOLOv5的停車位檢測系統(tǒng)(清新UI+深度學(xué)習(xí)+訓(xùn)練數(shù)據(jù)集)

????????每張圖像均提供了圖像類標(biāo)記信息,圖像中停車位的bounding box,停車位的關(guān)鍵part信息,以及停車位的屬性信息,數(shù)據(jù)集并解壓后得到如下的圖片。

基于YOLOv5的停車位檢測系統(tǒng)(清新UI+深度學(xué)習(xí)+訓(xùn)練數(shù)據(jù)集)
????????數(shù)據(jù)集中標(biāo)簽的分布如下圖所示,兩類標(biāo)簽(車位占用、與車位空出)的比例整體接近。

基于YOLOv5的停車位檢測系統(tǒng)(清新UI+深度學(xué)習(xí)+訓(xùn)練數(shù)據(jù)集)

????????如圖所示,這是我們需要的準(zhǔn)備環(huán)節(jié),首先要安裝Yolov5的依賴庫,配置一個Python3.8然后按照requirements.txt里面的依賴裝環(huán)境就可以運行了。

#請按照給定的python版本配置環(huán)境,否則可能會因依賴不兼容而出錯
conda create -n env_rec python=3.8
#激活環(huán)境
activate env_rec
#使用pip安裝所需的以來,可通過requirement.txt
pip install -r requirements.txt

????????如果使用離線依賴安裝包,可以將最后一步的pip安裝命令改為以下代碼:

pip install -r requirements.txt --no-index --find-links=./mylib/

???????? 作為YOLO系列的完善版本,YOLOv5優(yōu)越的靈活性使得它可以方便地快速部署在車輛硬件側(cè)。YOLOv5包含YOLOv5s、YOLOv5m、YOLOv5l, YOLOv5x。

基于YOLOv5的停車位檢測系統(tǒng)(清新UI+深度學(xué)習(xí)+訓(xùn)練數(shù)據(jù)集)

???????? YOLOv5s是YOLO系列中最小的版本,由于其內(nèi)存大小為14.10M,更適合部署在車載移動硬件平臺上,但其識別精度不能滿足準(zhǔn)確高效識別的要求,尤其是對小目標(biāo)的識別。

???????? YOLOv5的基本框架可以分為4個部分:Input、Backbone、Neck和Prediction。

???????? Input部分通過拼接數(shù)據(jù)增強來豐富數(shù)據(jù)集,對硬件設(shè)備要求低,計算成本低。但是,這會導(dǎo)致數(shù)據(jù)集中原有的小目標(biāo)變小,導(dǎo)致模型的泛化性能下降。

???????? Backbone部分主要由CSP模塊組成,通過CSPDarknet53進(jìn)行特征提取。

???????? 在Neck中使用FPN和路徑聚合網(wǎng)絡(luò)(PANet)來聚合該階段的圖像特征。最后,網(wǎng)絡(luò)進(jìn)行目標(biāo)預(yù)測并通過預(yù)測輸出。

????????以上就是yolov5項目代碼的整體介紹。我們訓(xùn)練和測試自己的數(shù)據(jù)集基本就是利用到如上的代碼。

????????以上就是YOLOv5的整體介紹,接下來進(jìn)行訓(xùn)練。本項目使用Yolov5訓(xùn)練了一個海上船舶目標(biāo)檢測模型,在筆記本的3070顯卡下訓(xùn)練了300 epoch,訓(xùn)練集和驗證集上損失、精確率、召回率、mAP的變化圖:

基于YOLOv5的停車位檢測系統(tǒng)(清新UI+深度學(xué)習(xí)+訓(xùn)練數(shù)據(jù)集)

????????在深度學(xué)習(xí)中,我們通常通過損失函數(shù)下降的曲線來觀察模型訓(xùn)練的情況。而YOLOv5訓(xùn)練時主要包含三個方面的損失:矩形框損失(box_loss)、置信度損失(obj_loss)和分類損失(cls_loss),在訓(xùn)練結(jié)束后,我們也可以在logs目錄下找到生成對若干訓(xùn)練過程統(tǒng)計圖。下圖為博主訓(xùn)練停車位識別的模型的訓(xùn)練圖和曲線圖。

基于YOLOv5的停車位檢測系統(tǒng)(清新UI+深度學(xué)習(xí)+訓(xùn)練數(shù)據(jù)集)

????????一般我們會接觸到兩個指標(biāo),分別是召回率recall和精度precision,兩個指標(biāo)p和r都是簡單地從一個角度來判斷模型的好壞,均是介于0到1之間的數(shù)值,其中接近于1表示模型的性能越好,接近于0表示模型的性能越差,為了綜合評價目標(biāo)檢測的性能,一般采用均值平均密度map來進(jìn)一步評估模型的好壞。我們通過設(shè)定不同的置信度的閾值,可以得到在模型在不同的閾值下所計算出的p值和r值,一般情況下,p值和r值是負(fù)相關(guān)的,繪制出來可以得到如下圖所示的曲線,其中曲線的面積我們稱AP,目標(biāo)檢測模型中每種目標(biāo)可計算出一個AP值,對所有的AP值求平均則可以得到模型的mAP值。

基于YOLOv5的停車位檢測系統(tǒng)(清新UI+深度學(xué)習(xí)+訓(xùn)練數(shù)據(jù)集)

????????以PR-curve為例,可以看到我們的模型在驗證集上的均值平均準(zhǔn)確率為0.997。

3. 停車位檢測識別

????????在訓(xùn)練完成后得到最佳模型,接下來我們將幀圖像輸入到這個網(wǎng)絡(luò)進(jìn)行預(yù)測,從而得到預(yù)測結(jié)果,預(yù)測方法(predict.py)部分的代碼如下所示:

def predict(img):
    img = torch.from_numpy(img).to(device)
    img = img.half() if half else img.float()
    img /= 255.0
    if img.ndimension() == 3:
        img = img.unsqueeze(0)

    t1 = time_synchronized()
    pred = model(img, augment=False)[0]
    pred = non_max_suppression(pred, opt.conf_thres, opt.iou_thres, classes=opt.classes,
                               agnostic=opt.agnostic_nms)
    t2 = time_synchronized()
    InferNms = round((t2 - t1), 2)

    return pred, InferNms

????????得到預(yù)測結(jié)果我們便可以將幀圖像中的停車位框出,然后在圖片上用opencv繪圖操作,輸出停車位的類別及停車位的預(yù)測分?jǐn)?shù)。以下是讀取一個停車位圖片并進(jìn)行檢測的腳本,首先將圖片數(shù)據(jù)進(jìn)行預(yù)處理后送predict進(jìn)行檢測,然后計算標(biāo)記框的位置并在圖中標(biāo)注出來。

if __name__ == '__main__':
    img_path = "./UI_rec/test_/Parking1.jpg"
    image = cv_imread(img_path)
    img0 = image.copy()
    img = letterbox(img0, new_shape=imgsz)[0]
    img = np.stack(img, 0)
    img = img[:, :, ::-1].transpose(2, 0, 1)  # BGR to RGB, to 3x416x416
    img = np.ascontiguousarray(img)

    pred, useTime = predict(img)

    det = pred[0]
    p, s, im0 = None, '', img0
    if det is not None and len(det):  # 如果有檢測信息則進(jìn)入
        det[:, :4] = scale_coords(img.shape[1:], det[:, :4], im0.shape).round()  # 把圖像縮放至im0的尺寸
        number_i = 0  # 類別預(yù)編號
        detInfo = []
        for *xyxy, conf, cls in reversed(det):  # 遍歷檢測信息
            c1, c2 = (int(xyxy[0]), int(xyxy[1])), (int(xyxy[2]), int(xyxy[3]))
            # 將檢測信息添加到字典中
            detInfo.append([names[int(cls)], [c1[0], c1[1], c2[0], c2[1]], '%.2f' % conf])
            number_i += 1  # 編號數(shù)+1

            label = '%s %.2f' % (names[int(cls)], conf)

            # 畫出檢測到的目標(biāo)物
            plot_one_box(image, xyxy, label=label, color=colors[int(cls)])
    # 實時顯示檢測畫面
    cv2.imshow('Stream', image)
    # if cv2.waitKey(1) & 0xFF == ord('q'):
    #     break
    c = cv2.waitKey(0) & 0xff

????????執(zhí)行得到的結(jié)果如下圖所示,圖中停車位和置信度值都標(biāo)注出來了,預(yù)測速度較快?;诖四P臀覀兛梢詫⑵湓O(shè)計成一個帶有界面的系統(tǒng),在界面上選擇圖片、視頻或攝像頭然后調(diào)用模型進(jìn)行檢測。

基于YOLOv5的停車位檢測系統(tǒng)(清新UI+深度學(xué)習(xí)+訓(xùn)練數(shù)據(jù)集)

????????博主對整個系統(tǒng)進(jìn)行了詳細(xì)測試,最終開發(fā)出一版流暢得到清新界面,就是博文演示部分的展示,完整的UI界面、測試圖片視頻、代碼文件,以及Python離線依賴包(方便安裝運行,也可自行配置環(huán)境),均已打包上傳,感興趣的朋友可以通過下載鏈接獲取。

基于YOLOv5的停車位檢測系統(tǒng)(清新UI+深度學(xué)習(xí)+訓(xùn)練數(shù)據(jù)集)


下載鏈接

????若您想獲得博文中涉及的實現(xiàn)完整全部程序文件(包括測試圖片、視頻,py, UI文件等,如下圖),這里已打包上傳至博主的面包多平臺,見可參考博客與視頻,已將所有涉及的文件同時打包到里面,點擊即可運行,完整文件截圖如下:

基于YOLOv5的停車位檢測系統(tǒng)(清新UI+深度學(xué)習(xí)+訓(xùn)練數(shù)據(jù)集)

????在文件夾下的資源顯示如下,下面的鏈接中也給出了Python的離線依賴包,讀者可在正確安裝Anaconda和Pycharm軟件后,復(fù)制離線依賴包至項目目錄下進(jìn)行安裝,離線依賴的使用詳細(xì)演示也可見本人B站視頻:win11從頭安裝軟件和配置環(huán)境運行深度學(xué)習(xí)項目、Win10中使用pycharm和anaconda進(jìn)行python環(huán)境配置教程。
基于YOLOv5的停車位檢測系統(tǒng)(清新UI+深度學(xué)習(xí)+訓(xùn)練數(shù)據(jù)集)

注意:該代碼采用Pycharm+Python3.8開發(fā),經(jīng)過測試能成功運行,運行界面的主程序為runMain.py和LoginUI.py,測試圖片腳本可運行testPicture.py,測試視頻腳本可運行testVideo.py。為確保程序順利運行,請按照requirements.txt配置Python依賴包的版本。Python版本:3.8,請勿使用其他版本,詳見requirements.txt文件;

完整資源中包含數(shù)據(jù)集及訓(xùn)練代碼,環(huán)境配置與界面中文字、圖片、logo等的修改方法請見視頻,項目完整文件下載請見參考博客文章里面,或參考視頻的簡介處給出:???

參考博客文章:https://www.cnblogs.com/sixuwuxian/p/17238229.html

參考視頻演示:https://www.bilibili.com/video/BV1224y1M7JS/

離線依賴庫下載鏈接:https://pan.baidu.com/s/1hW9z9ofV1FRSezTSj59JSg?pwd=oy4n (提取碼:oy4n )


界面中文字、圖標(biāo)和背景圖修改方法:

????????在Qt Designer中可以徹底修改界面的各個控件及設(shè)置,然后將ui文件轉(zhuǎn)換為py文件即可調(diào)用和顯示界面。如果只需要修改界面中的文字、圖標(biāo)和背景圖的,可以直接在ConfigUI.config文件中修改,步驟如下:
????????(1)打開UI_rec/tools/ConfigUI.config文件,若亂碼請選擇GBK編碼打開。
????????(2)如需修改界面文字,只要選中要改的字符替換成自己的就好。
????????(3)如需修改背景、圖標(biāo)等,只需修改圖片的路徑。例如,原文件中的背景圖設(shè)置如下:

mainWindow = :/images/icons/back-image.png

????????可修改為自己的名為background2.png圖片(位置在UI_rec/icons/文件夾中),可將該項設(shè)置如下即可修改背景圖:

mainWindow = ./icons/background2.png

結(jié)束語

????????由于博主能力有限,博文中提及的方法即使經(jīng)過試驗,也難免會有疏漏之處。希望您能熱心指出其中的錯誤,以便下次修改時能以一個更完美更嚴(yán)謹(jǐn)?shù)臉幼?,呈現(xiàn)在大家面前。同時如果有更好的實現(xiàn)方法也請您不吝賜教。文章來源地址http://www.zghlxwxcb.cn/news/detail-508857.html

到了這里,關(guān)于基于YOLOv5的停車位檢測系統(tǒng)(清新UI+深度學(xué)習(xí)+訓(xùn)練數(shù)據(jù)集)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包