日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

YOLOv8 中的損失函數解析

來源: 責編: 時間:2024-05-16 09:04:55 237觀看
導讀介紹YOLO長期以來一直是目標檢測任務的首選模型之一。它既快速又準確。此外,其API簡潔易用。運行訓練或推斷作業所需的代碼行數有限。在2023年下半年,YOLOv8在框架中引入了姿態估計后,該框架現在支持最多四個任務,包括分

qXB28資訊網——每日最新資訊28at.com

介紹

YOLO長期以來一直是目標檢測任務的首選模型之一。它既快速又準確。此外,其API簡潔易用。運行訓練或推斷作業所需的代碼行數有限。在2023年下半年,YOLOv8在框架中引入了姿態估計后,該框架現在支持最多四個任務,包括分類、目標檢測、實例分割和姿態估計。qXB28資訊網——每日最新資訊28at.com

qXB28資訊網——每日最新資訊28at.com

qXB28資訊網——每日最新資訊28at.com

qXB28資訊網——每日最新資訊28at.com

在本文中,我們將詳細介紹YOLOv8中使用的五個損失函數。請注意,我們將僅討論YOLOv8倉庫中配置的默認損失函數。此外,我們還將僅關注代表性參數,跳過一些標量和常數以進行歸一化或縮放,以便更好地理解。YOLOv8中對應的任務和損失函數可見于圖1。接下來我們將分別對每一個進行討論。qXB28資訊網——每日最新資訊28at.com

qXB28資訊網——每日最新資訊28at.com

IoU損失

qXB28資訊網——每日最新資訊28at.com

cw = b1_x2.maximum(b2_x2) - b1_x1.minimum(b2_x1)  # convex (smallest enclosing box) widthch = b1_y2.maximum(b2_y2) - b1_y1.minimum(b2_y1)  # convex heightif CIoU or DIoU:  # Distance or Complete IoU https://arxiv.org/abs/1911.08287v1  c2 = cw ** 2 + ch ** 2 + eps  # convex diagonal squared  rho2 = ((b2_x1 + b2_x2 - b1_x1 - b1_x2) ** 2 + (b2_y1 + b2_y2 - b1_y1 - b1_y2) ** 2) / 4  # center dist ** 2    if CIoU:  # https://github.com/Zzh-tju/DIoU-SSD-pytorch/blob/master/utils/box/box_utils.py#L47     v = (4 / math.pi ** 2) * (torch.atan(w2 / h2) - torch.atan(w1 / h1)).pow(2)     with torch.no_grad():       alpha = v / (v - iou + (1 + eps))     return iou - (rho2 / c2 + v * alpha)  # CIoU

當考慮評估邊界框準確度的方式時,交并比(IoU)指標可能是大多數人首先想到的一個指標。IoU度量了預測的邊界框與實際邊界框之間的重疊程度。它也可以作為一個損失函數,只需將IoU轉換為1-IoU。qXB28資訊網——每日最新資訊28at.com

qXB28資訊網——每日最新資訊28at.com

在YOLOv8中,修訂后的版本,完全IoU(CIoU)1被應用于衡量預測邊界框與實際邊界框之間的差異。CIoU是一個綜合性指標,它考慮了邊界框之間的三個屬性:qXB28資訊網——每日最新資訊28at.com

  • 重疊比
  • 中心點之間的距離
  • 長寬比 

qXB28資訊網——每日最新資訊28at.com

CIoU的方程可在圖2右側找到。重疊比、中心點距離和長寬比這三個因素分別由方程中的各項表示。方程中涉及的關鍵參數在左側的圖中進行了說明,其中p和g表示預測和實際情況,b、w和h分別是相應邊界框的中心、寬度和高度。參數c是包圍邊界框的對角線(灰色虛線矩形)而ρ是歐氏距離。除了分類任務外,IoU損失在YOLOv8中的所有其他任務中都會應用。qXB28資訊網——每日最新資訊28at.com

qXB28資訊網——每日最新資訊28at.com

分布焦點損失(DFL)

def _df_loss(pred_dist, target):    """Return sum of left and right DFL losses."""    # Distribution Focal Loss (DFL) proposed in Generalized Focal Loss https://ieeexplore.ieee.org/document/9792391    tl = target.long()  # target left    tr = tl + 1  # target right    wl = tr - target  # weight left    wr = 1 - wl  # weight right    return (F.cross_entropy(pred_dist, tl.view(-1), reduction='none').view(tl.shape) * wl +            F.cross_entropy(pred_dist, tr.view(-1), reduction='none').view(tl.shape) * wr).mean(-1, keepdim=True)

另一個與邊界框相關的損失函數是分布焦點損失(DFL)2。DFL關注的是邊界框回歸的分布差異。YOLOv8中的網絡不是直接預測邊界框,而是預測邊界框的概率分布。它旨在解決邊界模糊或部分遮擋的挑戰性對象。qXB28資訊網——每日最新資訊28at.com

qXB28資訊網——每日最新資訊28at.com

關鍵點損失

qXB28資訊網——每日最新資訊28at.com

loss[1] += self.keypoint_loss(pred_kpt, gt_kpt, kpt_mask, area)area:bounding box areaclass KeypointLoss(nn.Module):  def forward(self, pred_kpts, gt_kpts, kpt_mask, area):        """Calculates keypoint loss factor and Euclidean distance loss for predicted and actual keypoints."""        d = (pred_kpts[..., 0] - gt_kpts[..., 0]) ** 2 + (pred_kpts[..., 1] - gt_kpts[..., 1]) ** 2        kpt_loss_factor = (torch.sum(kpt_mask != 0) + torch.sum(kpt_mask == 0)) / (torch.sum(kpt_mask != 0) + 1e-9)        # e = d / (2 * (area * self.sigmas) ** 2 + 1e-9)  # from formula        e = d / (2 * self.sigmas) ** 2 / (area + 1e-9) / 2  # from cocoeval        return kpt_loss_factor * ((1 - torch.exp(-e)) * kpt_mask).mean()

在YOLOv8中,首次將姿態估計任務納入到框架中。姿態由一組關鍵點的坐標和順序定義。關鍵點損失監控了預測和實際關鍵點之間的相似性。兩個對應關鍵點之間的歐幾里得距離是關鍵點損失的主要組成部分。此外,每個關鍵點都帶有一個權重σ,定義了關鍵點的重要性,默認值為1/關鍵點數。例如,如果姿態有四個關鍵點,則所有關鍵點的權重為1/4 = 0.25。qXB28資訊網——每日最新資訊28at.com

qXB28資訊網——每日最新資訊28at.com

關鍵點目標損失

qXB28資訊網——每日最新資訊28at.com

import torch.nn as nnloss[2] = nn.BCEWithLogitsLoss(pred_kpt[..., 2], kpt_mask.float())

在大多數姿態估計訓練中,我們可以定義每個關鍵點的可見性。Python腳本中的參數kpt_mask攜帶了我們在標簽中定義的可見性(1/0)。關鍵點目標損失計算關鍵點存在的距離。在YOLOv8中,距離由預測值和實際值的二元交叉熵(BCE)測量。qXB28資訊網——每日最新資訊28at.com

qXB28資訊網——每日最新資訊28at.com

分類損失和掩碼損失

qXB28資訊網——每日最新資訊28at.com

import torch.nn as nnloss[3] = nn.BCEWithLogitLoss(pred_scores, target_scores.to(dtype)).sum() / target_scores_sum  # BCE

分類損失是涉及到所有任務的唯一損失函數。無論我們是在進行分類、目標檢測、分割還是姿態估計,圖像或特定對象的類別(例如貓、狗、人等)的推斷結果之間的距離都是通過二元交叉熵(BCE)計算的。qXB28資訊網——每日最新資訊28at.com

qXB28資訊網——每日最新資訊28at.com

它還適用于實例分割中的掩碼損失。掩碼損失將每個像素視為一個對象,并計算相關的BCE值。在圖5中計算了一個3x3的預測掩碼和相應的掩碼損失。qXB28資訊網——每日最新資訊28at.com

qXB28資訊網——每日最新資訊28at.com

總損失

# yolo/cfg/default.yaml...box: 7.5  # box loss gaincls: 0.5  # cls loss gain (scale with pixels)dfl: 1.5  # dfl loss gainpose: 12.0  # pose loss gainkobj: 1.0  # keypoint obj loss gain...

好了,以上我們已經介紹了所有六個損失。在網絡應用反向傳播并更新其參數之前,將損失與相應的權重相加。權重在配置文件default.yaml中定義,如上所示。如果您想在訓練階段動態調整權重,您可以考慮直接在存儲庫中使用下面提供的代碼片段。qXB28資訊網——每日最新資訊28at.com

loss[0] *= self.hyp.box  # box gainloss[1] *= self.hyp.pose / batch_size  # pose gainloss[2] *= self.hyp.kobj / batch_size  # kobj gainloss[3] *= self.hyp.cls  # cls gainloss[4] *= self.hyp.dfl  # dfl gainreturn loss.sum() * batch_size, loss.detach()

qXB28資訊網——每日最新資訊28at.com

總結 

YOLO是一個為目標檢測任務而知名的框架。除了在效率和準確性方面的表現之外,它還在不斷更新最新的研究成果。這是一個讓計算機視覺從業者跟蹤和學習入選技術的好框架。損失函數在模型訓練中起著重要作用,并決定了最終的準確性。qXB28資訊網——每日最新資訊28at.com

本文鏈接:http://www.www897cc.com/showinfo-26-88330-0.htmlYOLOv8 中的損失函數解析

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 什么鎖比讀寫鎖性能更高?

下一篇: 2024 Vue 聯邦大會,全明星陣容!探討 Vue 的未來和問題

標簽:
  • 熱門焦點
  • Find N3入網:最高支持16+1TB

    OPPO將于近期登場的Find N3折疊屏目前已經正式入網,型號為PHN110。本次Find N3在外觀方面相比前兩代有很大的變化,不再是小號的橫向折疊屏,而是跟別的廠商一樣采用了較為常見的
  • 直屏旗艦來了 iQOO 12和K70 Pro同臺競技

    旗艦機基本上使用的都是雙曲面屏幕,這就讓很多喜歡直屏的愛好者在苦等一款直屏旗艦,這次,你們等到了。據博主數碼閑聊站帶來的最新爆料稱,Redmi下代旗艦K70 Pro和iQOO 12兩款手
  • 紅魔電競平板評測:大屏幕硬實力

    前言:三年的疫情因為要上網課的原因激活了平板市場,如今網課的時代已經過去,大家的生活都恢復到了正軌,這也就意味著,真正考驗平板電腦生存的環境來了。也就是面對著這種殘酷的
  • Redmi Pad評測:紅米充滿野心的一次嘗試

    從Note系列到K系列,從藍牙耳機到筆記本電腦,紅米不知不覺之間也已經形成了自己頗有競爭力的產品體系,在中端和次旗艦市場上甚至要比小米新機的表現來得更好,正所謂“大丈夫生居
  • 谷歌KDD'23工作:如何提升推薦系統Ranking模型訓練穩定性

    谷歌在KDD 2023發表了一篇工作,探索了推薦系統ranking模型的訓練穩定性問題,分析了造成訓練穩定性存在問題的潛在原因,以及現有的一些提升模型穩定性方法的不足,并提出了一種新
  • 19個 JavaScript 單行代碼技巧,讓你看起來像個專業人士

    今天這篇文章跟大家分享18個JS單行代碼,你只需花幾分鐘時間,即可幫助您了解一些您可能不知道的 JS 知識,如果您已經知道了,就當作復習一下,古人云,溫故而知新嘛?,F在,我們就開始今
  • iQOO Neo8系列今日官宣:首發天璣9200+ 全球安卓最強芯!

    在昨日舉行的的聯發科新一代旗艦芯片天璣9200+的發布會上,iQOO官方也正式宣布,全新的iQOO Neo8系列新品將全球首發搭載這款當前性能最強大的移動平臺
  • 聯想小新Pad Pro 12.6將要推出,搭載高通驍龍 870 處理器

    聯想小新Pad Pro 12.6將于秋季新品會上推出,官方按照慣例直接在發布會前給出了機型的所有參數。聯想小新 Pad Pro 12.6 將搭載高通驍龍 870 處理器,重量為 5
  • 英特爾Xe HPG游戲顯卡:擁有512EU,單風扇版本

    據10 月 30 日外媒 TheVerge 消息報道,英特爾 Xe HPG Arc Alchemist 的正面實被曝光,不僅擁有 512 EU 版顯卡,還擁有 128EU 的單風扇版本。另外,這款顯卡 PCB
Top 主站蜘蛛池模板: 通辽市| 深圳市| 民和| 基隆市| 濮阳县| 阿拉善盟| 凤凰县| 阿荣旗| 始兴县| 榆中县| 肃南| 七台河市| 德令哈市| 陈巴尔虎旗| 虹口区| 汝南县| 天柱县| 乌鲁木齐市| 邛崃市| 九龙坡区| 修文县| 伊宁市| 静海县| 彰化市| 大同市| 丰台区| 合水县| 清水县| 吉隆县| 博爱县| 孙吴县| 体育| 马公市| 莱州市| 沁源县| 七台河市| 高州市| 峨眉山市| 澜沧| 望江县| 曲松县|