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

計算機視覺的應(yīng)用7-利用YOLOv5模型啟動電腦攝像頭進行目標(biāo)檢測

這篇具有很好參考價值的文章主要介紹了計算機視覺的應(yīng)用7-利用YOLOv5模型啟動電腦攝像頭進行目標(biāo)檢測。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

大家好,我是微學(xué)AI,今天給大家介紹一下計算機視覺的應(yīng)用7-利用YOLOv5模型啟動電腦攝像頭進行目標(biāo)檢測,本文將詳細介紹YOLOv5模型的原理,YOLOv5模型的結(jié)構(gòu),并展示如何利用電腦攝像頭進行目標(biāo)檢測。文章將提供樣例代碼,以幫助讀者更好地理解和實踐YOLOv5模型。

目錄

  1. 引言

  2. YOLOv5模型簡介

  3. YOLOv5模型原理

    3.1. 網(wǎng)絡(luò)結(jié)構(gòu)

    3.2. 損失函數(shù)

    3.3. 數(shù)學(xué)原理

  4. 利用電腦攝像頭進行目標(biāo)檢測

    4.1. 環(huán)境配置

    4.2. 樣例代碼

    4.3. 結(jié)果展示

  5. 總結(jié)

1. 引言

目標(biāo)檢測是計算機視覺領(lǐng)域的一個重要研究方向,它旨在識別圖像中的物體并給出其位置信息。YOLO(You Only Look Once)是一種實時目標(biāo)檢測算法,自2016年提出以來,已經(jīng)發(fā)展到第五代(YOLOv5)。本文將詳細介紹YOLOv5模型的原理,并展示如何利用電腦攝像頭進行目標(biāo)檢測。

2. YOLOv5模型簡介

YOLOv5是YOLO系列的最新版本,相較于前幾代,YOLOv5在速度和精度上都有顯著提升。YOLOv5采用了一種端到端的深度學(xué)習(xí)方法,可以在單次前向傳播中完成目標(biāo)檢測任務(wù)。

3. YOLOv5模型原理

3.1. 網(wǎng)絡(luò)結(jié)構(gòu)

YOLOv5的網(wǎng)絡(luò)結(jié)構(gòu)主要包括:CSPDarknet53作為骨干網(wǎng)絡(luò),PANet和SPP模塊作為特征提取器,以及YOLOv5的檢測頭。
計算機視覺的應(yīng)用7-利用YOLOv5模型啟動電腦攝像頭進行目標(biāo)檢測

3.1.1. CSPDarknet53

CSPDarknet53是一種輕量級的骨干網(wǎng)絡(luò),它采用了CSP(Cross Stage Partial)結(jié)構(gòu),可以有效地減少參數(shù)數(shù)量和計算量。CSPDarknet53的網(wǎng)絡(luò)結(jié)構(gòu)如下:

CSPDarknet53由一系列卷積層、殘差塊和CSP模塊組成。其中,CSP模塊將輸入特征圖分成兩部分,一部分進行卷積操作,另一部分直接輸出。這種設(shè)計可以減少計算量,同時保持特征圖的信息流動。
計算機視覺的應(yīng)用7-利用YOLOv5模型啟動電腦攝像頭進行目標(biāo)檢測

3.1.2. PANet

PANet(Path Aggregation Network)是一種特征金字塔網(wǎng)絡(luò),用于解決目標(biāo)檢測中的尺度變化問題。

PANet由一系列卷積層、上采樣層和下采樣層組成。其中,下采樣層用于提取高層次的語義信息,上采樣層用于恢復(fù)低層次的細節(jié)信息。PANet將不同尺度的特征圖進行融合,可以有效地提高目標(biāo)檢測的精度。
計算機視覺的應(yīng)用7-利用YOLOv5模型啟動電腦攝像頭進行目標(biāo)檢測

3.1.3. SPP

SPP(Spatial Pyramid Pooling)是一種空間金字塔池化方法,用于解決目標(biāo)檢測中的尺度變化問題。

SPP由一系列池化層和卷積層組成。SPP將輸入特征圖分成多個尺度,每個尺度進行不同大小的池化操作,然后將池化結(jié)果拼接在一起。這種設(shè)計可以使網(wǎng)絡(luò)對不同尺度的目標(biāo)具有更好的適應(yīng)性。

3.1.4. 檢測頭

YOLOv5的檢測頭由一系列卷積層和全連接層組成。檢測頭的輸入是特征圖,輸出是目標(biāo)的類別、置信度和位置信息。YOLOv5采用了三種不同大小的錨框,每個錨框?qū)?yīng)一個預(yù)測框。檢測頭的輸出經(jīng)過解碼和非極大值抑制(NMS)處理后,可以得到最終的目標(biāo)檢測結(jié)果。

3.2. 損失函數(shù)

YOLOv5的損失函數(shù)包括分類損失、位置損失和置信度損失。

3.2.1. 分類損失

分類損失采用交叉熵損失,用于衡量模型對目標(biāo)類的分類準(zhǔn)確度。假設(shè)有 C C C 個類別, p i p_i pi? 表示模型對第 i i i 個類別的預(yù)測概率, t i t_i ti? 表示第 i i i 個類別的真實標(biāo)簽,則分類損失可以表示為:

L c l s = ? 1 N ∑ i = 1 N ∑ c = 1 C t i , c log ? ( p i , c ) L_{cls} = -\frac{1}{N}\sum_{i=1}^{N}\sum_{c=1}^{C}t_{i,c}\log(p_{i,c}) Lcls?=?N1?i=1N?c=1C?ti,c?log(pi,c?)

其中, N N N 表示樣本數(shù)量。

3.2.2. 位置損失

位置損失采用均方誤差損失,用于衡量模型對目標(biāo)位置的預(yù)測準(zhǔn)確度。假設(shè)有 B B B 個錨框, t i , j t_{i,j} ti,j? 表示第 i i i 個樣本中第 j j j 個錨框的位置信息, p i , j p_{i,j} pi,j? 表示模型對第 j j j 個錨框的位置信息的預(yù)測值,則位置損失可以表示為:

L l o c = 1 N B ∑ i = 1 N ∑ j = 1 B 1 , j o b j [ λ c o o r d ∑ n ∈ { x , y , w , h } ( t i , j n ? p i , j n ) 2 ] L_{loc} = \frac{1}{N_B}\sum_{i=1}^{N}\sum_{j=1}^{B}1_{,j}^{obj}\left[\lambda_{coord}\sum_{n\in\{x,y,w,h\}}(t_{i,j}^{n}-p_{i,j}^{n})^2\right] Lloc?=NB?1?i=1N?j=1B?1,jobj? ?λcoord?n{x,y,w,h}?(ti,jn??pi,jn?)2 ?

其中, N B N_B NB? 表示樣本中包含目標(biāo)的錨框數(shù)量, 1 i , j o b j 1_{i,j}^{obj} 1i,jobj? 表示第 i i i 個樣本中第 j j j 個錨框包含目標(biāo), λ c o o r d \lambda_{coord} λcoord? 表示位置損失的權(quán)重系數(shù)。

3.2.3. 置信度損失

置信度損失采用二值交叉熵損失,用于衡量模型對目標(biāo)存在性的預(yù)測準(zhǔn)確度。假設(shè)有 B B B 個錨框, t i , j o b j t_{i,j}^{obj} ti,jobj? 表示第 i i i 個樣本中第 j j j 個錨框是否包含目標(biāo), t i , j n o o b j t_{i,j}^{noobj} ti,jnoobj? 表示第 i i i 個樣本中第 j j j 個錨框是否不包含目標(biāo), p i , j o b j p_{i,j}^{obj} pi,jobj? 表示模型對第 j j j 個錨框是否包含目標(biāo)的預(yù)測值,則置信度損失可以表示為:

L c o n f = 1 N B ∑ i = 1 N ∑ j = 1 B [ 1 i , j o b j ∑ n ∈ { c o n f } ( t i , j n ? p i , j n ) 2 + λ n o o b j 1 i , j n o o b j ∑ n ∈ { c o n f } ( t i , j n ? p i , j n ) 2 ] L_{conf} = \frac{1}{N_B}\sum_{i=1}^{N}\sum_{j=1}^{B}\left[1_{i,j}^{obj}\sum_{n\in\{conf\}}(t_{i,j}^{n}-p_{i,j}^{n})^2 + \lambda_{noobj}1_{i,j}^{noobj}\sum_{n\in\{conf\}}(t_{i,j}^{n}-p_{i,j}^{n})^2\right] Lconf?=NB?1?i=1N?j=1B? ?1i,jobj?n{conf}?(ti,jn??pi,jn?)2+λnoobj?1i,jnoobj?n{conf}?(ti,jn??pi,jn?)2 ?

其中, λ n o o b j \lambda_{noobj} λnoobj? 表示不包含目標(biāo)的錨框的置信度損失的權(quán)重系數(shù)。

綜合上述三種損失,YOLOv5的總損失可以表示為:

L = L c l s + λ c o o r d L l o c + λ c o n f L c o n f L = L_{cls} + \lambda_{coord}L_{loc} + \lambda_{conf}L_{conf} L=Lcls?+λcoord?Lloc?+λconf?Lconf?

其中, λ c o o r d \lambda_{coord} λcoord? λ c o n f \lambda_{conf} λconf? 分別表示位置損失和置信度損失的權(quán)重系數(shù)。

3.3. 數(shù)學(xué)原理

YOLOv5的數(shù)學(xué)原理主要包括錨框生成、預(yù)測框解碼和非極大值抑制(NMS)。

3.3.1. 錨框生成

假設(shè)有 k k k 個聚類中心,每個聚類中心對應(yīng)一個錨框,錨框的寬度和高度分別為 w i w_i wi? h i h_i hi?。對于一張輸入圖像,假設(shè)其寬度和高度分別為 W W W H H H,則可以生成 W × H × k W \times H \times k W×H×k 個錨框。每個錨框的中心坐標(biāo)為 ( x , y ) (x, y) (x,y),其中 x x x y y y 的取值范圍分別為 [ 0 , W ] [0, W] [0,W] [ 0 , H ] [0, H] [0,H]。錨框的寬度和高度為 w i w_i wi? h i h_i hi?

3.3.2. 預(yù)測框解碼

假設(shè)某個錨的中心坐標(biāo)為 ( x a , y a ) (x_a, y_a) (xa?,ya?),寬度和高度為 w a w_a wa? h a h_a ha?,預(yù)測框的中心坐為 ( x , y ) (x, y) (x,y),寬度和高度為 w w w h h h。則預(yù)測框的坐標(biāo)可以通過以下公式計算:

x = σ ( t x ) + x a y = σ ( t y ) + y a w = p w e t w h = p h e t h x = \sigma(t_x) + x_a \\ y = \sigma(t_y) + y_a \\ w = p_we^{t_w} \\ h = p_he^{t_h} x=σ(tx?)+xa?y=σ(ty?)+ya?w=pw?etw?h=ph?eth?

其中, σ \sigma σ 表示 sigmoid 函數(shù), t x t_x tx?、 t y t_y ty? t w t_w tw? t h t_h th? 分別表示預(yù)測框的偏移量, p w p_w pw? p h p_h ph? 分別表示錨框的寬度和高度。

3.3.3. 非極大值抑制

非極大值抑制(NMS)是一種常用的目標(biāo)檢測后處理方法,用于去除重疊檢測框。具體來說,NMS 的過程如下:

  • 對于每個類別,按照置信度從高到低排序。
  • 選擇置信度最高的框,將其與所有其他框進行重疊度計算。
  • 去除與置信度最高的框重疊度大于一定閾值的框。
  • 重復(fù)上述步驟,直到所有框都被處理。

NMS 的數(shù)學(xué)原理可以表示為:

S i = { j ∣ j > i , I o U ( b i , b j ) > θ } B = { b i ∣ i ∈ { 1 , 2 , . . . , n } } B ^ = { b i ∣ i ? S j , j ∈ S i } S_i = \{j | j > i, IoU(b_i, b_j) > \theta\} \\ B = \{b_i | i \in \{1, 2, ..., n\}\} \\ \hat{B} = \{b_i | i \notin S_j, j \in S_i\} Si?={jj>i,IoU(bi?,bj?)>θ}B={bi?i{1,2,...,n}}B^={bi?i/Sj?,jSi?}

其中, S i S_i Si? 表示與第 $i 個框重疊度大于閾值 θ \theta θ 的所有框的集合, B B B 表示所有框的集合, B ^ \hat{B} B^經(jīng)過 NMS 處理后剩余的框的集合。 I o U ( b i , b j ) IoU(b_i, b_j) IoU(bi?,bj?) 表示第 i i i 個框和第 j j j 個框的重疊度。

4. 利用電腦攝像頭進行目標(biāo)檢測

4.1. 環(huán)境配置

為了使用YOLOv5進行目標(biāo)檢測,首先需要配置環(huán)境。本文使用的環(huán)境為Python 3.7+,需要安裝的庫包括:torch、torchvision、opencv-python等。

4.2. 樣例代碼

import cv2
from yolov5 import YOLOv5

# 加載預(yù)訓(xùn)練的YOLOv5模型
model = YOLOv5("yolov5s.pt",device='cpu')  # 選擇模型

# 打開攝像頭
cap = cv2.VideoCapture(0)

while True:
    # 從攝像頭讀取幀
    ret, frame = cap.read()

    if not ret:
        break

    # 使用YOLOv5進行目標(biāo)檢測
    results = model.predict(frame)

    # 在幀上繪制檢測結(jié)果
    for *xyxy, conf, cls in results.xyxy[0]:
        label = f'{model.model.names[int(cls)]} {conf:.2f}'
        cv2.rectangle(frame, (int(xyxy[0]), int(xyxy[1])), (int(xyxy[2]), int(xyxy[3])), (0, 0, 255), 2)
        cv2.putText(frame, label, (int(xyxy[0]), int(xyxy[1]) - 10), cv2.FONT_HERSHEY_SIMPLEX, 1.0, (0, 0, 255), 2)

    # 顯示幀
    cv2.imshow('YOLOv5 Real-time Object Detection', frame)

    # 按'q'鍵退出
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

# 釋放資源并關(guān)閉窗口
cap.release()
cv2.destroyAllWindows()

4.3. 結(jié)果展示

運行上述代碼,可以實時查看攝像頭畫面中的目標(biāo)檢測結(jié)果。YOLOv5能夠準(zhǔn)確識別出各種物體,并給出其位置信息。

5. 總結(jié)

本文到這里就結(jié)束了,其中主要詳細介紹了YOLOv5模型的原理,并展示了如何利用電腦攝像頭進行目標(biāo)檢測。YOLOv5在速度和精度上的優(yōu)勢使其在實時目標(biāo)檢測任務(wù)中具有廣泛的應(yīng)用前景。文章來源地址http://www.zghlxwxcb.cn/news/detail-499615.html

到了這里,關(guān)于計算機視覺的應(yīng)用7-利用YOLOv5模型啟動電腦攝像頭進行目標(biāo)檢測的文章就介紹完了。如果您還想了解更多內(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īng)查實,立即刪除!

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

相關(guān)文章

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

    計算機視覺基礎(chǔ)——基于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)
  • 計算機視覺 day94 DDH - YOLOv5:基于雙IoU感知解耦頭改進的YOLOv5,用于對象檢測

    計算機視覺 day94 DDH - YOLOv5:基于雙IoU感知解耦頭改進的YOLOv5,用于對象檢測

    YOLOv5頭部的分類任務(wù)和回歸任務(wù)的共同分支會對訓(xùn)練過程造成傷害,分類得分與定位精度的相關(guān)性較低。我們提出了一種雙iou感知解耦頭(DDH),并將其應(yīng)用于YOLOv5。改進后的模型命名為DDH-YOLOv5,在不顯著增加FLOPS和參數(shù)的情況下,顯著提高了模型的定位精度。在PASCAL VOC2007數(shù)據(jù)

    2024年02月16日
    瀏覽(41)
  • 計算機視覺的應(yīng)用4-目標(biāo)檢測任務(wù):利用Faster R-cnn+Resnet50+FPN模型對目標(biāo)進行預(yù)測

    計算機視覺的應(yīng)用4-目標(biāo)檢測任務(wù):利用Faster R-cnn+Resnet50+FPN模型對目標(biāo)進行預(yù)測

    大家好,我是微學(xué)AI,今天給大家介紹一下計算機視覺的應(yīng)用4-目標(biāo)檢測任務(wù),利用Faster Rcnn+Resnet50+FPN模型對目標(biāo)進行預(yù)測,目標(biāo)檢測是計算機視覺三大任務(wù)中應(yīng)用較為廣泛的,F(xiàn)aster R-CNN 是一個著名的目標(biāo)檢測網(wǎng)絡(luò),其主要分為兩個模塊:Region Proposal Network (RPN) 和 Fast R-CNN。我

    2024年02月05日
    瀏覽(20)
  • 【計算機視覺面經(jīng)四】基于深度學(xué)習(xí)的目標(biāo)檢測算法面試必備(RCNN~YOLOv5)

    【計算機視覺面經(jīng)四】基于深度學(xué)習(xí)的目標(biāo)檢測算法面試必備(RCNN~YOLOv5)

    目標(biāo)檢測算法主要包括:【兩階段】目標(biāo)檢測算法、【多階段】目標(biāo)檢測算法、【單階段】目標(biāo)檢測算法。 什么是兩階段目標(biāo)檢測算法,與單階段目標(biāo)檢測有什么區(qū)別? 兩階段目標(biāo)檢測算法因需要進行兩階段的處理:1)候選區(qū)域的獲取,2)候選區(qū)域分類和回歸,也稱為基于

    2024年03月27日
    瀏覽(26)
  • 模型剪枝:如何利用剪枝技術(shù)提高計算機視覺模型的準(zhǔn)確性

    作者:禪與計算機程序設(shè)計藝術(shù) 模型剪枝(pruning)是一種技術(shù),它通過刪除不重要的權(quán)重參數(shù),從而減少神經(jīng)網(wǎng)絡(luò)中的參數(shù)數(shù)量,并保持其準(zhǔn)確率,同時降低計算量、占用內(nèi)存空間。這個過程稱之為模型壓縮(compression)。 模型剪枝的目的是為了改善神經(jīng)網(wǎng)絡(luò)在實際環(huán)境下

    2024年02月07日
    瀏覽(29)
  • 生成模型在計算機視覺中的應(yīng)用:實現(xiàn)更智能的識別任務(wù)

    作者:禪與計算機程序設(shè)計藝術(shù) 在機器學(xué)習(xí)領(lǐng)域中,生成模型(Generative Model)通常被用來做圖像、文本、聲音等數(shù)據(jù)的表示學(xué)習(xí)(representation learning),而很多時候這些數(shù)據(jù)本身有較強的特征,比如幾何形狀、顏色、結(jié)構(gòu)、表情、材料等。因此,生成模型可以作為一種有別于傳統(tǒng)

    2024年02月06日
    瀏覽(25)
  • 計算機視覺的應(yīng)用13-基于SSD模型的城市道路積水識別的應(yīng)用項目

    計算機視覺的應(yīng)用13-基于SSD模型的城市道路積水識別的應(yīng)用項目

    大家好,我是微學(xué)AI,今天給大家介紹一下計算機視覺的應(yīng)用13-基于SSD模型的城市道路積水識別的應(yīng)用項目,輔助城市交通管理。今年第11號臺風(fēng)“??焙蟛吭茍F的影響,福州地區(qū)的降雨量突破了歷史極值,多出地方存在嚴重的積水。城市道路積水是造成交通擁堵、車輛事故

    2024年02月09日
    瀏覽(20)
  • 生成模型在計算機視覺、自然語言處理、推薦系統(tǒng)中的應(yīng)用和研究

    作者:禪與計算機程序設(shè)計藝術(shù) 隨著計算機的飛速發(fā)展,人工智能技術(shù)的逐漸成熟,越來越多的人開始關(guān)注這個新興的領(lǐng)域,開始開發(fā)出新的產(chǎn)品和服務(wù)。 在這個信息爆炸的時代,數(shù)據(jù)量的呈幾何級增長,需要人們對海量數(shù)據(jù)的分析、處理和決策,而機器學(xué)習(xí)就是人工智能

    2024年02月08日
    瀏覽(36)
  • 門控循環(huán)單元網(wǎng)絡(luò)(GRU)在計算機視覺中的應(yīng)用:基于深度學(xué)習(xí)模型的

    作者:禪與計算機程序設(shè)計藝術(shù) 《門控循環(huán)單元網(wǎng)絡(luò)(GRU)在計算機視覺中的應(yīng)用:基于深度學(xué)習(xí)模型的》 1.1. 背景介紹 隨著計算機視覺領(lǐng)域的快速發(fā)展,深度學(xué)習(xí)模型已經(jīng)在許多任務(wù)中取得了顯著的成果。但是,為了提高模型的性能,仍需要考慮一些關(guān)鍵問題,如模型的可讀

    2024年02月14日
    瀏覽(25)
  • 計算機視覺的應(yīng)用20-圖像生成模型(Stable Diffusion)的原理詳解與相關(guān)項目介紹

    計算機視覺的應(yīng)用20-圖像生成模型(Stable Diffusion)的原理詳解與相關(guān)項目介紹

    大家好,我是微學(xué)AI,今天給大家介紹一下計算機視覺的應(yīng)用20-圖像生成模型:Stable Diffusion模型的原理詳解與相關(guān)項目介紹。大家知道現(xiàn)在各個平臺發(fā)的各種漂亮的女生,這些漂亮的圖片是怎么生成的嗎,其實它們底層原理就是用到了Stable Diffusion模型。 Stable Diffusion是一種基

    2024年04月12日
    瀏覽(37)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包