日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人工智能 > 目标检测 >内容正文

目标检测

深度学习和目标检测系列教程 4-300:目标检测入门之目标变量和损失函数

發布時間:2024/10/8 目标检测 139 豆豆
生活随笔 收集整理的這篇文章主要介紹了 深度学习和目标检测系列教程 4-300:目标检测入门之目标变量和损失函数 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

@Author:Runsen

目標定位

圖像分類或圖像識別模型只是檢測圖像中對象的概率。與此相反,對象定位是指識別圖像中對象的位置。對象定位算法將輸出對象相對于圖像的位置坐標。在計算機視覺中,定位圖像中對象的最流行方法是借助邊界框來表示其位置。


可以使用以下參數初始化邊界框:

  • bx, by : 邊界框中心的坐標
  • bw : 邊界框的寬度 wrt 圖像寬度
  • bh : 邊界框的高度 wrt 圖像高度

定義目標變量

多類圖像分類問題的目標變量定義為:

其中,CiC_iCi?是第iii類的概率。 例如,如果有四個類,則目標變量定義


我們可以擴展這種方法來定義目標變量進行目標定位。目標變量定義為

  • pcp_cpc? = 對象(即四個類)出現在邊界框中的概率/置信度。
  • bx,by,bh,bw = 邊界框坐標。
  • cic_ici?= 對象所屬第iii類的概率

例如,四個類別是“卡車”、“汽車”、“自行車”、“行人”,它們的概率表示為c1,c2,c3,c4c1,c2,c3,c4c1,c2,c3,c4

損失函數

讓目標變量y的值表示為y1,y2,…,y9y1,y2,…,y9y1y2y9


目標定位的損失函數定義為


在實踐中,我們可以在預測類c1、c2、c3、c4c1、c2、c3、c4c1c2c3c4的情況下使用考慮softmax輸出的log函數。而對于邊界框坐標,我們可以使用平方誤差,對于pcp_cpc?(物體的置信度),我們可以使用logistic回歸損失。

由于我們已經定義了目標變量和損失函數,我們現在可以使用神經網絡對目標進行分類和定位。

物體檢測

構建對象檢測的一種方法是首先構建一個分類器,該分類器可以對對象的緊密裁剪圖像進行分類。下圖顯示了此類模型的一個示例,其中模型在經過緊密裁剪的汽車圖像數據集上進行訓練,并且該模型預測圖像是汽車的概率。

現在,我們可以使用這個模型來檢測使用滑動窗口機制的汽車。在滑動窗口機制中,我們使用滑動窗口(類似于卷積網絡中使用的滑動窗口)并在每張幻燈片中裁剪圖像的一部分。裁剪的大小與滑動窗口的大小相同。然后將每個裁剪后的圖像傳遞給一個 ConvNet 模型(類似于上圖 中所示的模型),該模型反過來預測裁剪后的圖像是汽車的概率。

在整個圖像上運行滑動窗口后,調整滑動窗口的大小并再次在圖像上運行。經過多次重復這個過程。由于之前裁剪了大量圖像并通過 ConvNet 傳遞,因此這種方法在計算上既昂貴又耗時,使整個過程非常緩慢。滑動窗口的卷積實現有助于解決這個問題。

滑動窗口的卷積

在使用 convents 實現滑動窗口之前,分析如何將網絡的全連接層轉換為卷積層。

下面 顯示了一個簡單的卷積網絡,具有兩個完全連接的層,每個層的形狀為 (400, )。

借助一維卷積層,可以將全連接層轉換為卷積層。該層的寬度和高度等于 1,過濾器的數量等于全連接層的形狀。

我們可以將全連接層轉換為卷積層的概念應用到模型中,方法是將全連接層替換為一維卷積層。一維卷積層的濾波器數量等于全連接層的形狀。此外,輸出 softmax 層也是形狀為 (1, 1, 4) 的卷積層,其中 4 是要預測的類數。 如下圖 所示。

現在,擴展上述方法來實現滑動窗口的卷積版本。首先,考慮在以下表示中我們已經訓練的 ConvNet(沒有完全連接的層)。

讓我們假設輸入圖像的大小為16 × 16 × 3。如果我們使用滑動窗口方法,那么我們會將該圖像傳遞給上面的 ConvNet 四次,每次滑動窗口都會裁剪一部分大小為14 × 14 × 3的輸入圖像并將其通過卷積網絡。但不是這樣,我們將完整圖像(形狀為16 × 16 × 3)直接輸入到經過訓練的 ConvNet 中(見圖 7)。這導致形狀為2 × 2 × 4的輸出矩陣. 輸出矩陣中的每個單元格表示可能裁剪的結果和裁剪圖像的分類值。

例如,下圖中輸出的左側單元格(綠色單元格)表示第一個滑動窗口的結果。其他單元格表示剩余滑動窗口操作的結果。

滑動窗口的步幅由 Max Pool 層中使用的過濾器數量決定。在上面的示例中,Max Pool 層有兩個過濾器,因此滑動窗口以 2 的步幅移動,從而產生四個可能的輸出。使用這種技術的主要優點是滑動窗口同時運行和計算所有值。因此,這種技術非常快。盡管這種技術的一個弱點是邊界框的位置不是很準確。

YOLO

在使用卷積滑動窗口技術時解決預測準確邊界框問題,效果最好的算法是YOLO 算法。由 Joseph Redmon、Santosh Divvala、Ross Girshick 和 Ali Farhadi 于 2015 年開發。YOLO 很受歡迎,因為它在實時運行的同時實現了高精度。之所以這樣稱呼該算法,是因為它只需要通過網絡進行一次前向傳播即可進行預測。

該算法將圖像劃分為網格,并對每個網格單元運行圖像分類和定位算法。例如,我們有一個大小為256 × 256的輸入圖像。我們在圖像上放置一個3 × 3 的網格。

接下來,我們在每個網格單元上應用圖像分類和定位算法。對于每個網格單元,目標變量定義為

用卷積滑動窗口做一次。由于每個網格單元的目標變量的形狀是1 × 9并且有 9 ( 3 × 3 ) 個網格單元,模型的最終輸出將是:

YOLO 算法的優點是速度非常快,并且可以預測更準確的邊界框。此外,在實踐中為了獲得更準確的預測,我們使用更精細的網格,比如19 × 19,在這種情況下,目標輸出的形狀為19 × 19 × 9。

總結

以上是生活随笔為你收集整理的深度学习和目标检测系列教程 4-300:目标检测入门之目标变量和损失函数的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。