YOLOv3老矣尚能戰否?基于YOLOv3開發構建建鋼鐵產業產品智能自動化檢測識別系統,我們來與YOLOv5進行全方位對比評測

鋼鐵產業產品智能自動化檢測識別相關的項目在我們前面的博文中已經有了相應的實踐了,感興趣的話可以自行移步閱讀即可:
《python基于DETR(DEtection TRansformer)開發構建鋼鐵產業產品智能自動化檢測識別系統》

《AI助力鋼鐵產業數字化,python基于YOLOv5開發構建鋼鐵產業產品智能自動化檢測識別系統》

在前文中我們大都是使用較為新穎的檢測模型來完成相應的項目開發的,這時我們不免有個疑問,早期提出來的模型比如YOLOv3是否還有一戰之力呢?出于好奇就拿來開發實踐了,首先看下實例效果:

整體使用層面上來說yolov3和yolov5的項目差異不大,所以比較熟悉yolov5的話,直接上手使用yolov3項目的話基本是沒有什么難度的。

因為是出于好奇,這里就直接先選擇的是yolov3-tiny版本的模型,目的就是能夠比較快的訓練完成,模型如下:

# parameters
nc: 10  # number of classes
depth_multiple: 1.0  # model depth multiple
width_multiple: 1.0  # layer channel multiple# anchors
anchors:- [10,14, 23,27, 37,58]  # P4/16- [81,82, 135,169, 344,319]  # P5/32# YOLOv3-tiny backbone
backbone:# [from, number, module, args][[-1, 1, Conv, [16, 3, 1]],  # 0[-1, 1, nn.MaxPool2d, [2, 2, 0]],  # 1-P1/2[-1, 1, Conv, [32, 3, 1]],[-1, 1, nn.MaxPool2d, [2, 2, 0]],  # 3-P2/4[-1, 1, Conv, [64, 3, 1]],[-1, 1, nn.MaxPool2d, [2, 2, 0]],  # 5-P3/8[-1, 1, Conv, [128, 3, 1]],[-1, 1, nn.MaxPool2d, [2, 2, 0]],  # 7-P4/16[-1, 1, Conv, [256, 3, 1]],[-1, 1, nn.MaxPool2d, [2, 2, 0]],  # 9-P5/32[-1, 1, Conv, [512, 3, 1]],[-1, 1, nn.ZeroPad2d, [0, 1, 0, 1]],  # 11[-1, 1, nn.MaxPool2d, [2, 1, 0]],  # 12]# YOLOv3-tiny head
head:[[-1, 1, Conv, [1024, 3, 1]],[-1, 1, Conv, [256, 1, 1]],[-1, 1, Conv, [512, 3, 1]],  # 15 (P5/32-large)[-2, 1, Conv, [128, 1, 1]],[-1, 1, nn.Upsample, [None, 2, 'nearest']],[[-1, 8], 1, Concat, [1]],  # cat backbone P4[-1, 1, Conv, [256, 3, 1]],  # 19 (P4/16-medium)[[19, 15], 1, Detect, [nc, anchors]],  # Detect(P4, P5)]

訓練數據配置文件如下所示:

# path
train: ./dataset/images/train/
val: ./dataset/images/test/# number of classes
nc: 10# class names
names: ['chongkong', 'hanfeng', 'yueyawan', 'shuiban', 'youban', 'siban', 'yiwu', 'yahen', 'zhehen', 'yaozhe']

默認是100次epoch的迭代計算,訓練日志如下所示:

等待訓練完成后,看下結果詳情:

【混淆矩陣】

感覺yolov3項目提供的混淆矩陣不如yolov5項目的直觀,下面是yolov5項目的混淆矩陣:

【Label數據可視化】

【PR曲線】

精確率-召回率曲線(Precision-Recall Curve)是一種用于評估二分類模型性能的可視化工具。它通過繪制不同閾值下的精確率(Precision)和召回率(Recall)之間的關系圖來幫助我們了解模型在不同閾值下的表現。
精確率是指被正確預測為正例的樣本數占所有預測為正例的樣本數的比例。召回率是指被正確預測為正例的樣本數占所有實際為正例的樣本數的比例。
繪制精確率-召回率曲線的步驟如下:
使用不同的閾值將預測概率轉換為二進制類別標簽。通常,當預測概率大于閾值時,樣本被分類為正例,否則分類為負例。
對于每個閾值,計算相應的精確率和召回率。
將每個閾值下的精確率和召回率繪制在同一個圖表上,形成精確率-召回率曲線。
根據曲線的形狀和變化趨勢,可以選擇適當的閾值以達到所需的性能要求。
精確率-召回率曲線提供了更全面的模型性能分析,特別適用于處理不平衡數據集和關注正例預測的場景。曲線下面積(Area Under the Curve, AUC)可以作為評估模型性能的指標,AUC值越高表示模型的性能越好。
通過觀察精確率-召回率曲線,我們可以根據需求選擇合適的閾值來權衡精確率和召回率之間的平衡點。根據具體的業務需求和成本權衡,可以在曲線上選擇合適的操作點或閾值。
?

?yolov3的項目只提供了PR曲線可視化,沒有單獨的precision曲線和recall曲線和F1曲線,這點感覺是肯定不如yolov5項目的。

【訓練可視化】

?【Batch計算實例】

既然yolov3只提供了PR曲線,那我就直接基于PR曲線來進行對比吧,如下:

上面是yolov5最強的模型效果與yolov3-tiny的對比,可以說是毫不意外全面碾壓了。

接下來我們來看yolov5系列最弱的模型與yolov3-tiny的對比效果,如下:

可以看到:即使是yolov5最弱的n系列的模型也做到了對yolov3-tiny系列模型的全面碾壓了,所有的訓練數據集等參數在整個過程是保持完全一致的。

那么你覺得YOLOv3在當下的目標檢測類任務中是否還有一戰之力了呢?感興趣的話也都自行動手實踐下吧!

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/166800.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/166800.shtml
英文地址,請注明出處:http://en.pswp.cn/news/166800.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

計算兩個經緯度之間的真是距離----c++

來源:https://www.open-open.com/lib/view/open1430573897802.html #include <cmath> #define EARTH_RADIUS 6371.0;// 地球半徑&#xff0c;單位千米static double HaverSin(double theta) {double v sin(theta / 2);return v * v; }static double ConvertDegreesToR…

OPPO VOOC快充原理

1 USB 3.0標準A插頭 USB 3.0連接器是基于USB 2.0改進而來的&#xff0c;這個設計給USB 3.0連接器帶來了一些潛在風險&#xff0c;如果USB 3.0設備插入主機的速度太慢&#xff0c;3.0的針腳還沒來得及被識別到&#xff0c;就會被主機判定成USB 2.0的設備。 Figure 1-1 USB 3.0標…

centos系統下,docker安裝sqlserver并用本地Navicat連接

文章目錄 一&#xff0c;centos下安裝docker二&#xff0c;docker安裝sqlserver20192.1 安裝遇到的問題2.1.1 修改用戶名進不去數據庫2.1.2 安裝2022版的sqlserver發現啟動失敗 三&#xff0c;Navicat連接centos下的sqlserver3.1 下載ODBC Driver 參考微軟網址&#xff1a; 使…

代碼隨想錄算法訓練營第四十五天【動態規劃part07】 | 70. 爬樓梯 (進階)、322. 零錢兌換、279.完全平方數

70. 爬樓梯 &#xff08;進階&#xff09; 題目鏈接&#xff1a; 題目頁面 求解思路&#xff1a; 動規五部曲 確定dp數組及其下標含義&#xff1a;爬到有i階樓梯的樓頂&#xff0c;有dp[i]種方法遞推公式&#xff1a;dp[i] dp[i-j];dp數組的初始化&#xff1a;dp[0] 1;確…

EcuM介紹

ECUM 1. ECUM 主要需求2. EcuM 設計詳情2.1 啟動與下電休眠2.1.1 啟動與初始化2.1.2 EcuM 下電/休眠2.2 喚醒事件管理2.3 ECUM 模式2.3.1 Flexible2.3.2 Fixed2.3.3 Startup2.3.4 Shutdown2.3.5 SLEEP PHASE: Poll or Halt3. EcuM 集成接口調用4. 名稱縮寫解釋5. 參考文檔1. EC…

數據治理技術之數據清洗

數據清洗背景 數據質量一般由準確性、完整性、一致性、時效性、可信性以及可解釋性等特征來描述&#xff0c;根據 Rahm 等人在 2000 年對數據質量基于單數據源還是多數據源以及問題出在模式層還是實例層的標準進行分類&#xff0c;將數據質量問題分為單數據源模式層問題、單數…

虛幻學習筆記—給UI添加動畫

一、前言 本文所使用的虛幻版本為5.3.2&#xff0c;之前工作都是用unity&#xff0c;做這類效果用的最多的是一個DoTween的插件&#xff0c;在虛幻中都內置集成了這這種效果制作。 圖1.1 UI動畫 二、過程 1、首先&#xff0c;在諸如按鈕、圖像等可交互控件中選中&#xff0c;如…

centos userad命令詳解

命令作用 用于創建用戶常見參數 -d 指定用戶的家目錄-e 賬號的到期時間&#xff0c;格式YYYY-MM-DD-u 指定該用戶的默認UID&#xff0c;&#xff08;centos7開始1000是普通用戶的第一個UID&#xff09;-g 指定一個初始的用戶基本組&#xff08;必須已經存在&#xff09;-G 指定…

計算機網絡之運輸層

一、概述 物理層、數據鏈路層以及網絡層它們共同解決了將主機通過異構網絡互聯起來所面臨的的問題&#xff0c;實現了主機到主機的通信 但實際上在計算機網絡中進行通信的真正實體是位于通信兩端主機中的進程 如何為運行在不同主機上的應用進程提供直接的通信服務時運輸層的任務…

基于Boost.Asio實現端口映射器

Boost.Asio 是一個功能強大的 C 庫&#xff0c;用于異步編程和網絡編程&#xff0c;它提供了跨平臺的異步 I/O 操作。在這篇文章中&#xff0c;我們將深入分析一個使用 Boost.Asio 實現的簡單端口映射服務器&#xff0c;該服務器能夠將本地端口的數據包轉發到指定的遠程服務器上…

從設計上理解JDK動態代理

作者簡介&#xff1a;大家好&#xff0c;我是smart哥&#xff0c;前中興通訊、美團架構師&#xff0c;現某互聯網公司CTO 聯系qq&#xff1a;184480602&#xff0c;加我進群&#xff0c;大家一起學習&#xff0c;一起進步&#xff0c;一起對抗互聯網寒冬 照理說&#xff0c;動態…

上門預約小程序開發優勢

想要放松身心&#xff0c;享受按摩的舒適感&#xff1f;那就需要一個專業的按摩師來上門服務。我們開發的預約按摩小程序app系統&#xff0c;匯聚各類上門按摩服務&#xff0c;包括推拿SPA、小兒推拿、中醫等&#xff0c;為您提供高價值、高標準的養生健康體驗。24小時隨時提供…

GEE土地分類——使用隨機森林方法和多源遙感數據進行面向對象的土地分類NAIP數據為例

簡介: 數據: 國家農業圖像計劃 (NAIP) 在美國大陸的農業生長季節獲取航空圖像。 NAIP 項目每年根據可用資金和圖像獲取周期簽訂合同。從 2003 年開始,NAIP 以 5 年為一個周期。2008 年是過渡年,2009 年開始采用 3 年周期。 NAIP 圖像以一米的地面采樣距離 (GSD) 采集,水…

【前端】讓列表像Excel單元格一樣編輯

前言 領導說了一堆的話,最后總結一句就是客戶很懶,客戶的員工更加懶。 本著讓別人節省時間的原則,提倡出了讓列表和Excal的單元格一樣,不僅看數據還可以隨時更改數據。 查資料 根據 Jeecg-Vue3 源碼介紹,從而知道是基于 Vben Admin 開源項目進行改造的。 因此在 Vben…

Sulfo-CY3 NHS熒光染料的制備和表征

Sulfo-CY3 NHS(源自星戈瑞的花菁染料)熒光染料的制備和表征是確保染料質量和性能的關鍵步驟。制備Sulfo-CY3 NHS熒光染料&#xff1a; 原材料準備&#xff1a;準備所需的原材料&#xff0c;包括CY3 NHS ester&#xff08;或等效的前體&#xff09;&#xff0c;用于制備Sulfo-C…

沉頭孔和埋頭孔的區別

埋頭空和沉頭孔的區別在于螺栓孔上部擴孔&#xff1a;沉頭孔是直筒結構&#xff1b;埋頭孔是四十五度結構&#xff0c;比沉頭孔較為平順。 螺栓孔上部擴孔能容納螺栓頭部&#xff0c;使螺頭部不高于周圍表面。埋頭空和沉頭孔只是兩種不同的叫法。 沉頭孔是 PCB 上的圓柱形凹槽…

RK3568 支持4x4矩陣鍵盤

在對應的設備樹添加: keypad {compatible = "gpio-matrix-keypad";pinctrl-names = "default";pinctrl-0 = <&GPIO3_A1_pin&GPIO1_D3_pin&GPIO1_D4_pin&GPIO1_C7_pin&GPIO1_D2_pin&GPIO1_D1_pin&GPIO1_D0_pin&GPIO3_A…

將form表單中的省市區的3個el-select下拉框的樣式調成統一的間隔距離和長度,vue3項目iot->供應商管理

省市區是用3個el-select組成的 在表單中用el-col&#xff0c;會導致3個下拉的距離不統一&#xff0c;市和區的前面也是不需要文字label的 如何解決:用vue3的:deep()進行樣式穿透&#xff0c;由于el-form-item標簽都是一樣的&#xff0c;為了能準確的找到市的el-form-item&…

解決:前端js下載文件流出現“未知文件格式”錯誤

第一中情況&#xff1a; 出現的問題&#xff0c;前端已經設置了responseType: blob,下載下來還是格式不對。 最后經過排查&#xff0c;后端缺少charsetutf-8&#xff0c;所以前端可以設置編碼&#xff1a; 第二中情況&#xff1a; 后端已經設置了charsetutf-8&#xff0c;前…

機器學習/sklearn 筆記:K-means,kmeans++,MiniBatchKMeans,二分Kmeans

1 K-means介紹 1.0 方法介紹 KMeans算法通過嘗試將樣本分成n個方差相等的組來聚類&#xff0c;該算法要求指定群集的數量。它適用于大量樣本&#xff0c;并已在許多不同領域的廣泛應用領域中使用。KMeans算法將一組樣本分成不相交的簇&#xff0c;每個簇由簇中樣本的平均值描…