999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于改進的YOLOv3算法研究

2022-10-24 09:29:42李艷武
現代計算機 2022年16期
關鍵詞:分類檢測

劉 博,李艷武

(重慶三峽學院電子與信息工程學院,重慶 404100)

0 引言

近年來,隨著人工智能技術的發展,這項技術已被應用到無人駕駛、智能家居、智能監控、醫療系統等領域中。類似無人駕駛、智能監控等技術一定需要通過計算機獲取圖像,再進行后續判斷。目標檢測技術作為人工智能領域中的重要分支,其目的是讓機器能夠獲取環境中重要的信息圖像。目前,目標檢測技術分為兩類:傳統目標檢測算法和基于深度學習的目標檢測算法。

傳統目標檢測算法主要包括Haar特征+Adaboost算法等。基于深度學習的目標檢測算法主要是利用卷積運算構建卷積神經網絡對圖像進行特征提取,能夠提取到圖像更深層的特征和語義信息。基于深度學習的目標檢測算法又可分為一階目標檢測算法和二階目標檢測算法。其中一階目標檢測算法包括YOLOv1、SSD、YOLOv2、YOLOv3等。二階目標檢測算法有R-CNN、Fast R-CNN、SPP-Net等。這兩大類算法中,一階目標檢測算法速度快,但精度低;二階目標檢測算法則精度高、但速度慢。

為了進一步提升YOLOv3算法的性能,本文將網絡中的LeankyReLU函數改成Swish、Mish激活函數,然后采用Giou、Ciou損失函數優化算法的邊框回歸方式,采用Focal loss優化算法的分類損失,利用K-means算法對數據集進行重新聚類得到新的錨框。訓練時采用數據增強方法擴大訓練的數據量,通過對圖片進行縮放及長和寬的扭曲、色域扭曲、翻轉圖片等操作,增強網絡的魯棒性。另外采用了凍結網絡參數的訓練方法,此方法是在網絡訓練的前一半時間對網絡中的特征提取網絡部分不進行參數更新,后一半時間才會對整個網絡進行參數更新。

1 YOLOv3算法介紹

YOLOv3算法是在YOLOv1和YOLOv2的基礎上進行改進的,同樣也是一階目標檢測算法,直接生成預測結果。YOLOv3的特征提取網絡是將YOLOv2中的Darknet-19與殘差結構結合提出的Darknet-53,使得網絡能夠達到更深的層次。Darknet-53中沒有使用池化層而是由1×1和3×3的卷積層組成,通過1×1的卷積壓縮網絡。同時還加入了BN層,主要是為了緩解網絡的過擬合問題。網絡的頸部分,借鑒特征金字塔網絡結構(FPN)實現三個不同尺度的預測。網絡的損失函數有四部分,矩形框中心點損失、預測框寬高損失、置信度損失和類別損失。預測框中心點損失和寬高損失均采用了平方差損失,置信度損失和類別損失則是采用了交叉熵損失計算方式。

2 改進的YOLOv3算法

2.1 激活函數

YOLOv3算法的激活函數為LeakyReLU激活函數,其是在ReLU的基礎加入了一個很小的負值,無法為正負輸入值提供一致的關系預測。因此針對激活函數,本文采用Swish、Mish激活函數分別對算法進行改進。Swish函數是一種自門控激活函數,定義為:

式中,為一個正值,當很大時,()就接近于1。此時激活函數處于“開”狀態,函數值近似于本身,克服了函數飽和的問題;當()接近0時,激活函數處于“關”狀態,且函數值近似為0。Mish函數的表達式為:

當→∞時,函數值都不存在飽和的情況;<0時還有輕微的負值,不會導致神經元失活,理論上有更好的梯度流。經過學者們的實驗,Mish函數在訓練穩定性、平均準確率等方面都有了全面的提升。將上述兩個激活函數用在YOLOv3模型上,代替原有激活函數來研究算法的性能,以及三種激活函數的性能差異。

2.2 位置回歸損失

在YOLOv3算法中,對目標位置計算回歸損失是對中心位置偏移量和框的寬高分別計算損失,且都采用均方差損失。這種回歸方式沒有把anchor當成一個整體,忽略了其他的影響因素。2016年曠視科技提出了計算真實框和預測框的IOU值作為損失函數,不再對坐標和寬高進行獨立預測,而是作為一個整體,使預測結果更加準確。但IOU Loss也有不足之處:一是預測框和真實框之間IOU值為0時,不但無法反映兩個框的距離,而且無法進行優化;二是IOU無法精確反映兩個框的重合度大小。

2019年,斯坦福大學提出了Giou損失函數,相比于IOU新加入了一個包含真實框和預測框的最小的矩形框C。Giou損失函數公式如下:

Giou同樣存在缺點,當真實框和預測框屬于包含關系時,Giou就成了,依然無法區分兩個框的相對位置。對于垂直方向上的樣本,誤差很大,基本很難收斂。

針對上述問題,Ciou將Giou中引入的包含預測框和真實框的最小矩形框的面積懲罰項修改成直接計算兩個框中心的距離,以此來加速收斂,同時還考慮了Boundingbox的縱橫比,進一步提升了回歸精度。Ciou損失函數的公式為:

圖1 Ciou原理圖

針對YOLOv3定位不準確的問題,本文采用Giou、Ciou損失函數作為邊框回歸損失,研究三種損失計算方式的差異性,同時也研究算法的性能提升。

2.3 分類損失

YOLOv3的分類損失是用交叉熵損失函數來計算的,現改用Focal loss計算分類損失。Focal loss的提出是為了解決一階目標檢測中類別不平衡的問題。主要包含兩個方面:一是正負樣本不平衡的問題;二是難分類樣本和易分類樣本不平衡的問題。一張圖片中,真實目標的數量遠遠大于負樣本數量,負樣本占總損失的大部分,同樣易分類樣本也占據了樣本的大部分,這些樣本容易主導模型的優化方向,導致模型分類能力下降。

Focal loss是在交叉熵損失的基礎上通過引入和兩個參數來控制不同樣本的權重,公式如下:

式中α為權重系數,主要用來平衡正負樣本的數量比例不均程度;(1-p)為調制系數,通過減少易分類樣本的權重來使得模型更加關注于難分類的樣本。

2.4 K-means的錨框聚類

在YOLOv3算法中,錨框的大小需要預先設定,而且錨框的設定會直接影響到檢測精度。為了能得到一組合理的錨框大小就需要用到K-means聚類算法,其是一種無監督的聚類算法,目的是將相似的框分為一類。使用K-means時,首先獲取訓練集的標簽真實框的大小,然后隨機選取個不重復的框,采用IOU指標來對錨框進行聚類。具體流程如下:

(1)在所有真實框中隨機挑選個作為簇心;

(2)計算每個真實框與每個簇之間的1-值;

(3)計算每個真實框距離最近的簇心,并分配到最近的簇中;

(4)重新計算每個簇中的簇心;

(5)重復上述操作,直到每個簇中的元素不再改變。

針對YOLOv3算法的多尺度檢測特性,需要設置9個錨框大小。首先按照上述步驟得到錨框,然后再引入遺傳算法對得到的錨框進行變異,并得到最終的結果為:[17,19],[22,52],[50,39],[47,97],[94,81],[95,164],[225,124],[163,230],[324,254]。

3 實驗設置

實驗是在Pascal VOC數據集上進行的,采用數據增強以及凍結參數訓練,1到50輪凍結特征提取網絡參數,不進行權值更新,學習率設置為1e-3,batch_size設置為16;50到100輪不凍結特征提取網絡的參數,學習率設置為1e-4,batch_size設置為8。優化器采用Adam,權重衰減設置為5e-4。學習率調整方式為StepLR,調節步長設置為1,調整倍數設置為0.94。實驗中首先將LeakyRelu激活函數和原損失函數的YOLOv3算法作為基礎實驗,研究激活函數Mish、Swish和損失函數Giou、Ciou對算法帶來的影響,根據對比實驗結果找出最優的激活函數和損失函數,再優化算法中的分類損失以及引入經過K-means聚類后的錨框,并得到最終的優化結果。

4 實驗結果分析

對于樣本分類的情況一共有4種:一是正樣本,被分類到正樣本的為True Positive,簡稱TP;二是正樣本,被分類到負樣本的為False Positive,簡稱FN;三是負樣本,被分類到正樣本的為False Positive,簡稱FP;四是負樣本,被分類到負樣本的為True Positive,簡稱TN。評判模型的好壞有兩個常見的指標,精確率()和召回率()。利用精確率和召回率可以畫出Precision-Recall曲線。P-R曲線下的面積即為平均精確度(),簡稱AP。值越大,其分類效果越好。是對多個類別的求平均值。

表1為改變了激活函數和損失函數得到的優化結果。在采用相同損失函數的情況下,激活函數為Swish和Mish時,算法的損失都下降了0.1左右,激活函數為Swish時,算法精度有小幅度的提升,當使用Mish函數時,算法的精度能提升0.6%左右,明顯優于Swish函數。將Giou和Ciou作為邊框回歸函數可以降低平均2.76的損失,對于損失的優化明顯,且Giou和Ciou對損失的優化程度都是一樣的,對于精度而言,Giou能夠提升0.2%左右,Ciou能夠提升0.6%左右。最終在使用Ciou和Mish的情況下能夠達到78.67%,提升了1.2%。

表1 改變激活函數和損失函數的實驗結果

表2為采用經過-means聚類后的錨框的結果,本文一共做了兩組對比實驗,從兩組數據可以看出,使用針對數據集合理的錨框會對算法的精度帶來一定的提升。

表2 使用K-means聚類錨框結果

表3為融入Focal loss之后的實驗結果,融入Focal loss能給算法帶來0.92%的精度提升,提升比較明顯,可見Focal loss對于解決樣本不平衡問題的有效性。

表3 使用Focal loss實驗結果

5 結語

本文針對YOLOv3模型精度不夠的問題展開了研究,首先是研究激活函數和損失函數,分別采用Swish和Mish函數對激活函數進行改進,模型的精度獲得了不錯的提升,同時也體現這兩種激活函數的性能差異。損失函數中的邊框損失函數采用了Giou和Ciou分別進行優化,使得模型能夠對目標進行更好的定位。為了解決訓練過程中樣本的不平衡的問題,還使用了Focal loss函數來優化分類損失,并采用K-means算法重新對訓練集的錨框進行聚類。在訓練時,采用數據增強和凍結特征提取網絡的方法,最終在Pascal VOC數據集上的測試結果最高能夠達到79.63%,相比于原來的精度提升了2.19%。

猜你喜歡
分類檢測
“不等式”檢測題
“一元一次不等式”檢測題
“一元一次不等式組”檢測題
分類算一算
垃圾分類的困惑你有嗎
大眾健康(2021年6期)2021-06-08 19:30:06
“幾何圖形”檢測題
“角”檢測題
分類討論求坐標
數據分析中的分類討論
教你一招:數的分類
主站蜘蛛池模板: 精品视频福利| 国产男女免费视频| 欧美区国产区| 久久精品人人做人人爽| 久久99国产综合精品1| 毛片大全免费观看| 国产精品久久自在自2021| 日韩A∨精品日韩精品无码| 国产丰满成熟女性性满足视频| 无码中字出轨中文人妻中文中| 欧美影院久久| 精品五夜婷香蕉国产线看观看| 国产福利小视频在线播放观看| 久久亚洲国产一区二区| 亚洲日韩精品无码专区| 天堂成人在线| 露脸一二三区国语对白| 亚洲欧美人成电影在线观看| 亚洲欧美色中文字幕| 幺女国产一级毛片| 欧美午夜久久| 国产色伊人| 日本欧美成人免费| 无码精品国产dvd在线观看9久| 国产成人精品一区二区免费看京| 久久久亚洲国产美女国产盗摄| a亚洲视频| 国产黄色免费看| 日韩a级片视频| 欧美日韩专区| 在线人成精品免费视频| 国产一级毛片网站| 极品av一区二区| 少妇露出福利视频| 青草91视频免费观看| 国产丝袜啪啪| 九九热精品视频在线| 最新精品久久精品| 欧美日韩导航| 国产人成乱码视频免费观看| 成人精品在线观看| 亚洲第一成年网| 尤物特级无码毛片免费| 久久久久国产精品嫩草影院| 久久免费视频播放| 亚洲人成色在线观看| 国产成人久视频免费| 亚洲最大福利视频网| 99免费视频观看| 97超爽成人免费视频在线播放| 国产1区2区在线观看| 露脸国产精品自产在线播| 一级一级一片免费| 欧美日韩一区二区三区四区在线观看| 99久久亚洲精品影院| 国产91熟女高潮一区二区| 亚洲高清中文字幕在线看不卡| 久久伊人色| 日本免费a视频| 午夜在线不卡| 极品国产在线| 91毛片网| 伊人久久久久久久| 中字无码av在线电影| 2019年国产精品自拍不卡| 日韩高清一区 | 免费a级毛片18以上观看精品| 久久精品嫩草研究院| 中文字幕一区二区人妻电影| 亚洲系列中文字幕一区二区| 久久性妇女精品免费| 欧美区在线播放| 99精品一区二区免费视频| 欧美一级高清片欧美国产欧美| 亚洲一区二区三区中文字幕5566| 2022国产91精品久久久久久| 亚洲精品成人7777在线观看| 亚洲天堂网在线观看视频| 99久久精品免费观看国产| 亚洲成网站| 国产丰满大乳无码免费播放| 欧美色视频网站|