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

基于Yolov8的道路破損檢測(cè)系統(tǒng)

這篇具有很好參考價(jià)值的文章主要介紹了基于Yolov8的道路破損檢測(cè)系統(tǒng)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

目錄

1.Yolov8介紹

2.數(shù)據(jù)集介紹

2.1數(shù)據(jù)集劃分

2.2 通過(guò)voc_label.py得到適合yolov8訓(xùn)練需要的

2.3生成內(nèi)容如下

3.訓(xùn)練結(jié)果分析

?4. 道路破損檢測(cè)系統(tǒng)設(shè)計(jì)

4.1?PySide6介紹

4.2?安裝PySide6

?4.3 道路破損檢測(cè)系統(tǒng)設(shè)計(jì)


1.Yolov8介紹

?????????Ultralytics YOLOv8是Ultralytics公司開發(fā)的YOLO目標(biāo)檢測(cè)和圖像分割模型的最新版本。YOLOv8是一種尖端的、最先進(jìn)的(SOTA)模型,它建立在先前YOLO成功基礎(chǔ)上,并引入了新功能和改進(jìn),以進(jìn)一步提升性能和靈活性。它可以在大型數(shù)據(jù)集上進(jìn)行訓(xùn)練,并且能夠在各種硬件平臺(tái)上運(yùn)行,從CPU到GPU。

具體改進(jìn)如下:

  1. Backbone:使用的依舊是CSP的思想,不過(guò)YOLOv5中的C3模塊被替換成了C2f模塊,實(shí)現(xiàn)了進(jìn)一步的輕量化,同時(shí)YOLOv8依舊使用了YOLOv5等架構(gòu)中使用的SPPF模塊;

  2. PAN-FPN:毫無(wú)疑問(wèn)YOLOv8依舊使用了PAN的思想,不過(guò)通過(guò)對(duì)比YOLOv5與YOLOv8的結(jié)構(gòu)圖可以看到,YOLOv8將YOLOv5中PAN-FPN上采樣階段中的卷積結(jié)構(gòu)刪除了,同時(shí)也將C3模塊替換為了C2f模塊;

  3. Decoupled-Head:是不是嗅到了不一樣的味道?是的,YOLOv8走向了Decoupled-Head;

  4. Anchor-Free:YOLOv8拋棄了以往的Anchor-Base,使用了Anchor-Free的思想;

  5. 損失函數(shù):YOLOv8使用VFL Loss作為分類損失,使用DFL Loss+CIOU Loss作為分類損失;

  6. 樣本匹配:YOLOv8拋棄了以往的IOU匹配或者單邊比例的分配方式,而是使用了Task-Aligned Assigner匹配方式

基于Yolov8的道路破損檢測(cè)系統(tǒng)

框架圖提供見鏈接:Brief summary of YOLOv8 model structure · Issue #189 · ultralytics/ultralytics · GitHub

2.數(shù)據(jù)集介紹

道路破損數(shù)據(jù)集大小665,類別一類:pothole,按照8:1:1進(jìn)行數(shù)據(jù)集隨機(jī)生成。

2.1數(shù)據(jù)集劃分

通過(guò)split_train_val.py得到trainval.txt、val.txt、test.txt??

# coding:utf-8

import os
import random
import argparse

parser = argparse.ArgumentParser()
#xml文件的地址,根據(jù)自己的數(shù)據(jù)進(jìn)行修改 xml一般存放在Annotations下
parser.add_argument('--xml_path', default='Annotations', type=str, help='input xml label path')
#數(shù)據(jù)集的劃分,地址選擇自己數(shù)據(jù)下的ImageSets/Main
parser.add_argument('--txt_path', default='ImageSets/Main', type=str, help='output txt label path')
opt = parser.parse_args()

trainval_percent = 0.9
train_percent = 0.8
xmlfilepath = opt.xml_path
txtsavepath = opt.txt_path
total_xml = os.listdir(xmlfilepath)
if not os.path.exists(txtsavepath):
    os.makedirs(txtsavepath)

num = len(total_xml)
list_index = range(num)
tv = int(num * trainval_percent)
tr = int(tv * train_percent)
trainval = random.sample(list_index, tv)
train = random.sample(trainval, tr)

file_trainval = open(txtsavepath + '/trainval.txt', 'w')
file_test = open(txtsavepath + '/test.txt', 'w')
file_train = open(txtsavepath + '/train.txt', 'w')
file_val = open(txtsavepath + '/val.txt', 'w')

for i in list_index:
    name = total_xml[i][:-4] + '\n'
    if i in trainval:
        file_trainval.write(name)
        if i in train:
            file_train.write(name)
        else:
            file_val.write(name)
    else:
        file_test.write(name)

file_trainval.close()
file_train.close()
file_val.close()
file_test.close()

2.2 通過(guò)voc_label.py得到適合yolov8訓(xùn)練需要的

# -*- coding: utf-8 -*-
import xml.etree.ElementTree as ET
import os
from os import getcwd

sets = ['train', 'val']
classes = ["pothole"]   # 改成自己的類別
abs_path = os.getcwd()
print(abs_path)

def convert(size, box):
    dw = 1. / (size[0])
    dh = 1. / (size[1])
    x = (box[0] + box[1]) / 2.0 - 1
    y = (box[2] + box[3]) / 2.0 - 1
    w = box[1] - box[0]
    h = box[3] - box[2]
    x = x * dw
    w = w * dw
    y = y * dh
    h = h * dh
    return x, y, w, h

def convert_annotation(image_id):
    in_file = open('Annotations/%s.xml' % (image_id), encoding='UTF-8')
    out_file = open('labels/%s.txt' % (image_id), 'w')
    tree = ET.parse(in_file)
    root = tree.getroot()
    size = root.find('size')
    w = int(size.find('width').text)
    h = int(size.find('height').text)
    for obj in root.iter('object'):
        difficult = obj.find('difficult').text
        #difficult = obj.find('Difficult').text
        cls = obj.find('name').text
        if cls not in classes or int(difficult) == 1:
            continue
        cls_id = classes.index(cls)
        xmlbox = obj.find('bndbox')
        b = (float(xmlbox.find('xmin').text), float(xmlbox.find('xmax').text), float(xmlbox.find('ymin').text),
             float(xmlbox.find('ymax').text))
        b1, b2, b3, b4 = b
        # 標(biāo)注越界修正
        if b2 > w:
            b2 = w
        if b4 > h:
            b4 = h
        b = (b1, b2, b3, b4)
        bb = convert((w, h), b)
        out_file.write(str(cls_id) + " " + " ".join([str(a) for a in bb]) + '\n')

wd = getcwd()
for image_set in sets:
    if not os.path.exists('labels/'):
        os.makedirs('labels/')
    image_ids = open('ImageSets/Main/%s.txt' % (image_set)).read().strip().split()
    list_file = open('%s.txt' % (image_set), 'w')
    for image_id in image_ids:
        list_file.write(abs_path + '/images/%s.jpg\n' % (image_id))
        convert_annotation(image_id)
    list_file.close()

2.3生成內(nèi)容如下

?基于Yolov8的道路破損檢測(cè)系統(tǒng)

3.訓(xùn)練結(jié)果分析

confusion_matrix.png :列代表預(yù)測(cè)的類別,行代表實(shí)際的類別。其對(duì)角線上的值表示預(yù)測(cè)正確的數(shù)量比例,非對(duì)角線元素則是預(yù)測(cè)錯(cuò)誤的部分。混淆矩陣的對(duì)角線值越高越好,這表明許多預(yù)測(cè)是正確的。

基于Yolov8的道路破損檢測(cè)系統(tǒng)

?上圖是道路破損檢測(cè)訓(xùn)練,有圖可以看出 ,分別是破損和background FP。該圖在每列上進(jìn)行歸一化處理。則可以看出破損檢測(cè)預(yù)測(cè)正確的概率為67%。

F1_curve.png:F1分?jǐn)?shù)與置信度(x軸)之間的關(guān)系。F1分?jǐn)?shù)是分類的一個(gè)衡量標(biāo)準(zhǔn),是精確率和召回率的調(diào)和平均函數(shù),介于0,1之間。越大越好。

TP:真實(shí)為真,預(yù)測(cè)為真;

FN:真實(shí)為真,預(yù)測(cè)為假;

FP:真實(shí)為假,預(yù)測(cè)為真;

TN:真實(shí)為假,預(yù)測(cè)為假;

精確率(precision)=TP/(TP+FP)

召回率(Recall)=TP/(TP+FN)

F1=2*(精確率*召回率)/(精確率+召回率)

基于Yolov8的道路破損檢測(cè)系統(tǒng)

?labels_correlogram.jpg :顯示數(shù)據(jù)的每個(gè)軸與其他軸之間的對(duì)比。圖像中的標(biāo)簽位于 xywh 空間。

基于Yolov8的道路破損檢測(cè)系統(tǒng)

?labels.jpg :

(1,1)表示每個(gè)類別的數(shù)據(jù)量

(1,2)真實(shí)標(biāo)注的?bounding_box

(2,1) 真實(shí)標(biāo)注的中心點(diǎn)坐標(biāo)

(2,2)真實(shí)標(biāo)注的矩陣寬高

基于Yolov8的道路破損檢測(cè)系統(tǒng)

?P_curve.png:表示準(zhǔn)確率與置信度的關(guān)系圖線,橫坐標(biāo)置信度。由下圖可以看出置信度越高,準(zhǔn)確率越高。

基于Yolov8的道路破損檢測(cè)系統(tǒng)

?PR_curve.png :PR曲線中的P代表的是precision(精準(zhǔn)率),R代表的是recall(召回率),其代表的是精準(zhǔn)率與召回率的關(guān)系。

基于Yolov8的道路破損檢測(cè)系統(tǒng)

?R_curve.png :召回率與置信度之間關(guān)系

基于Yolov8的道路破損檢測(cè)系統(tǒng)

?results.png

?mAP_0.5:0.95表示從0.5到0.95以0.05的步長(zhǎng)上的平均mAP.基于Yolov8的道路破損檢測(cè)系統(tǒng)

?預(yù)測(cè)結(jié)果:

基于Yolov8的道路破損檢測(cè)系統(tǒng)

?4. 道路破損檢測(cè)系統(tǒng)設(shè)計(jì)

4.1?PySide6介紹

????????受益于人工智能的崛起,Python語(yǔ)言幾乎以壓倒性優(yōu)勢(shì)在眾多編程語(yǔ)言中異軍突起,成為AI時(shí)代的首選語(yǔ)言。在很多情況下,我們想要以圖形化方式將我們的人工智能算法打包提供給用戶使用,這時(shí)候選擇以python為主的GUI框架就非常合適了。

????????PySide是Qt公司的產(chǎn)品,PyQt是第三方公司的產(chǎn)品,二者用法基本相同,不過(guò)在使用協(xié)議上卻有很大差別。PySide可以在LGPL協(xié)議下使用,PyQt則在GPL協(xié)議下使用。

????????PySide目前常見的有兩個(gè)版本:PySide2和PySide6。PySide2由C++版的Qt5開發(fā)而來(lái).,而PySide6對(duì)應(yīng)的則是C++版的Qt6。從PySide6開始,PySide的命名也會(huì)與Qt的大版本號(hào)保持一致,不會(huì)再出現(xiàn)類似PySide2對(duì)應(yīng)Qt5這種容易混淆的情況。

4.2?安裝PySide6

pip install --upgrade pip
pip install pyside6 -i https://mirror.baidu.com/pypi/simple

基于PySide6開發(fā)GUI程序包含下面三個(gè)基本步驟:

  • 設(shè)計(jì)GUI,圖形化拖拽或手?jǐn)];
  • 響應(yīng)UI的操作(如點(diǎn)擊按鈕、輸入數(shù)據(jù)、服務(wù)器更新),使用信號(hào)與Slot連接界面和業(yè)務(wù);
  • 打包發(fā)布;

?4.3 道路破損檢測(cè)系統(tǒng)設(shè)計(jì)

系統(tǒng)如下,支持圖形輸入,攝像頭,rtsp流等:

基于Yolov8的道路破損檢測(cè)系統(tǒng)文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-480827.html

到了這里,關(guān)于基于Yolov8的道路破損檢測(cè)系統(tǒng)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(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)文章

  • 深度學(xué)習(xí)之基于YoloV8的行人跌倒目標(biāo)檢測(cè)系統(tǒng)

    深度學(xué)習(xí)之基于YoloV8的行人跌倒目標(biāo)檢測(cè)系統(tǒng)

    歡迎大家點(diǎn)贊、收藏、關(guān)注、評(píng)論啦 ,由于篇幅有限,只展示了部分核心代碼。 ?? 世界老齡化趨勢(shì)日益嚴(yán)重,現(xiàn)代化的生活習(xí)慣又使得大多數(shù)老人獨(dú)居,統(tǒng)計(jì)數(shù)據(jù)表明,跌倒是老年人的主要致傷原因。利用先進(jìn)的計(jì)算機(jī)技術(shù)、傳感器技術(shù)和圖像信息處理技術(shù)實(shí)現(xiàn)人體跌倒

    2024年02月08日
    瀏覽(21)
  • 基于YOLOV8模型的西紅柿目標(biāo)檢測(cè)系統(tǒng)(PyTorch+Pyside6+YOLOv8模型)

    基于YOLOV8模型的西紅柿目標(biāo)檢測(cè)系統(tǒng)(PyTorch+Pyside6+YOLOv8模型)

    摘要:基于YOLOV8模型的西紅柿目標(biāo)檢測(cè)系統(tǒng)可用于日常生活中檢測(cè)與定位西紅柿目標(biāo),利用深度學(xué)習(xí)算法可實(shí)現(xiàn)圖片、視頻、攝像頭等方式的目標(biāo)檢測(cè),另外本系統(tǒng)還支持圖片、視頻等格式的結(jié)果可視化與結(jié)果導(dǎo)出。本系統(tǒng)采用YOLOv8目標(biāo)檢測(cè)算法訓(xùn)練數(shù)據(jù)集,使用Pysdie6庫(kù)來(lái)搭

    2024年02月11日
    瀏覽(23)
  • 基于YOLOv8模型的深海魚目標(biāo)檢測(cè)系統(tǒng)(PyTorch+Pyside6+YOLOv8模型)

    基于YOLOv8模型的深海魚目標(biāo)檢測(cè)系統(tǒng)(PyTorch+Pyside6+YOLOv8模型)

    摘要:基于YOLOv8模型和BDD數(shù)據(jù)集的自動(dòng)駕駛目標(biāo)檢測(cè)系統(tǒng)可用于日常生活與海洋中檢測(cè)與定位深海魚目標(biāo),利用深度學(xué)習(xí)算法可實(shí)現(xiàn)圖片、視頻、攝像頭等方式的目標(biāo)檢測(cè),另外本系統(tǒng)還支持圖片、視頻等格式的結(jié)果可視化與結(jié)果導(dǎo)出。本系統(tǒng)采用YOLOv8目標(biāo)檢測(cè)算法訓(xùn)練數(shù)據(jù)

    2024年02月07日
    瀏覽(24)
  • 基于Yolov8的中國(guó)交通標(biāo)志(CCTSDB)識(shí)別檢測(cè)系統(tǒng)

    基于Yolov8的中國(guó)交通標(biāo)志(CCTSDB)識(shí)別檢測(cè)系統(tǒng)

    目錄 1.Yolov8介紹 2.紙箱破損數(shù)據(jù)集介紹 2.1數(shù)據(jù)集劃分 2.2 通過(guò)voc_label.py得到適合yolov8訓(xùn)練需要的 2.3生成內(nèi)容如下 3.訓(xùn)練結(jié)果分析 ?????????Ultralytics YOLOv8是Ultralytics公司開發(fā)的YOLO目標(biāo)檢測(cè)和圖像分割模型的最新版本。YOLOv8是一種尖端的、最先進(jìn)的(SOTA)模型,它建立在先

    2024年02月09日
    瀏覽(49)
  • 基于YOLOv8的多端車流檢測(cè)系統(tǒng)(用于畢設(shè)+開源)

    基于YOLOv8的多端車流檢測(cè)系統(tǒng)(用于畢設(shè)+開源)

    目錄 ?基于YOLOv8??的多端車流檢測(cè)系統(tǒng)-MTAS (Multi-Platform Traffic Analysis System) 一、基本功能介紹 1、客戶端 (pyside6+yolov8+pytorch) ?2、網(wǎng)頁(yè)端(Vue3+Typestript+Python3+MySQL) ?3、創(chuàng)新點(diǎn)(畢設(shè)需要) 4、項(xiàng)目包(前端-游客端) 5、項(xiàng)目包(前端-管理端) 6、項(xiàng)目包(客戶端+后端)

    2024年02月14日
    瀏覽(80)
  • 基于YOLOv8模型的五類動(dòng)物目標(biāo)檢測(cè)系統(tǒng)(PyTorch+Pyside6+YOLOv8模型)

    基于YOLOv8模型的五類動(dòng)物目標(biāo)檢測(cè)系統(tǒng)(PyTorch+Pyside6+YOLOv8模型)

    摘要:基于YOLOv8模型的五類動(dòng)物目標(biāo)檢測(cè)系統(tǒng)可用于日常生活中檢測(cè)與定位動(dòng)物目標(biāo)(狼、鹿、豬、兔和浣熊),利用深度學(xué)習(xí)算法可實(shí)現(xiàn)圖片、視頻、攝像頭等方式的目標(biāo)檢測(cè),另外本系統(tǒng)還支持圖片、視頻等格式的結(jié)果可視化與結(jié)果導(dǎo)出。本系統(tǒng)采用YOLOv8目標(biāo)檢測(cè)算法訓(xùn)

    2024年02月12日
    瀏覽(27)
  • 基于YOLOV8模型的農(nóng)作機(jī)器和行人目標(biāo)檢測(cè)系統(tǒng)(PyTorch+Pyside6+YOLOv8模型)

    基于YOLOV8模型的農(nóng)作機(jī)器和行人目標(biāo)檢測(cè)系統(tǒng)(PyTorch+Pyside6+YOLOv8模型)

    摘要:基于YOLOV8模型的農(nóng)作機(jī)器和行人目標(biāo)檢測(cè)系統(tǒng)可用于日常生活中檢測(cè)與定位農(nóng)作機(jī)和行人目標(biāo),利用深度學(xué)習(xí)算法可實(shí)現(xiàn)圖片、視頻、攝像頭等方式的目標(biāo)檢測(cè),另外本系統(tǒng)還支持圖片、視頻等格式的結(jié)果可視化與結(jié)果導(dǎo)出。本系統(tǒng)采用YOLOv8目標(biāo)檢測(cè)算法訓(xùn)練數(shù)據(jù)集,

    2024年02月10日
    瀏覽(25)
  • 基于yolov5開發(fā)構(gòu)建道路路面病害檢測(cè)識(shí)別系統(tǒng)——以捷克、印度、日本三國(guó)城市道路實(shí)況場(chǎng)景數(shù)據(jù)為例,開發(fā)對(duì)比分析模型并分析對(duì)應(yīng)性能

    基于yolov5開發(fā)構(gòu)建道路路面病害檢測(cè)識(shí)別系統(tǒng)——以捷克、印度、日本三國(guó)城市道路實(shí)況場(chǎng)景數(shù)據(jù)為例,開發(fā)對(duì)比分析模型并分析對(duì)應(yīng)性能

    城市道路病害檢測(cè)是最近比較熱門的一個(gè)任務(wù)領(lǐng)域,核心就是遷移深度學(xué)習(xí)目前已有的研究成果來(lái)實(shí)現(xiàn)實(shí)時(shí)城市道路路面病害的檢測(cè)識(shí)別分析,在我之前的很多博文中都有做過(guò)類似橋梁、大壩、基建、隧道等水泥設(shè)施裂縫裂痕等目標(biāo)檢測(cè)相關(guān)的項(xiàng)目,除此之外還有開發(fā)過(guò)相關(guān)

    2024年02月08日
    瀏覽(23)
  • 基于YOLOv8模型和DarkFace數(shù)據(jù)集的黑夜人臉檢測(cè)系統(tǒng)(PyTorch+Pyside6+YOLOv8模型)

    基于YOLOv8模型和DarkFace數(shù)據(jù)集的黑夜人臉檢測(cè)系統(tǒng)(PyTorch+Pyside6+YOLOv8模型)

    摘要:基于YOLOv8模型和DarkFace數(shù)據(jù)集的黑夜人臉檢測(cè)系統(tǒng)可用于日常生活中檢測(cè)與定位黑夜下的人臉,利用深度學(xué)習(xí)算法可實(shí)現(xiàn)圖片、視頻、攝像頭等方式的目標(biāo)檢測(cè),另外本系統(tǒng)還支持圖片、視頻等格式的結(jié)果可視化與結(jié)果導(dǎo)出。本系統(tǒng)采用YOLOv8目標(biāo)檢測(cè)算法訓(xùn)練數(shù)據(jù)集,

    2024年02月11日
    瀏覽(30)
  • 基于YOLOV8模型和CCPD數(shù)據(jù)集的車牌目標(biāo)檢測(cè)系統(tǒng)(PyTorch+Pyside6+YOLOv8模型)

    基于YOLOV8模型和CCPD數(shù)據(jù)集的車牌目標(biāo)檢測(cè)系統(tǒng)(PyTorch+Pyside6+YOLOv8模型)

    摘要:基于YOLOV8模型和CCPD數(shù)據(jù)集的車牌目標(biāo)檢測(cè)系統(tǒng)可用于日常生活中檢測(cè)與定位車牌目標(biāo),利用深度學(xué)習(xí)算法可實(shí)現(xiàn)圖片、視頻、攝像頭等方式的目標(biāo)檢測(cè),另外本系統(tǒng)還支持圖片、視頻等格式的結(jié)果可視化與結(jié)果導(dǎo)出。本系統(tǒng)采用YOLOv8目標(biāo)檢測(cè)算法訓(xùn)練數(shù)據(jù)集,使用Py

    2024年02月10日
    瀏覽(26)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包