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

AI為工業產業智能化數字化賦能早已不是什么新鮮事,越來越多的行業和領域開始更大范圍去擁抱AI,享受科技帶來的變革力量,在我們之前的文章中也有很多相關領域項目的實踐經歷,本文的核心目標就是想要基于鋼鐵領域產品數據來開發構建自動化智能質檢系統,以期探索AI助力鋼鐵產業產品質檢的可行性,首先看下效果:

簡單看下數據集:

本文選擇的是yolov5系列的模型,這里以s系列的模型為例看下詳情:
訓練數據配置文件如下:

# Dataset
path: ./dataset
train:- images/train
val:- images/test
test:- images/test# Classes
names:0: chongkong1: hanfeng2: yueyawan3: shuiban4: youban5: siban6: yiwu7: yahen8: zhehen9: yaozhe

模型文件如下:

# YOLOv5 🚀 by Ultralytics, GPL-3.0 license# Parameters
nc: 10  # number of classes
depth_multiple: 0.33  # model depth multiple
width_multiple: 0.50  # layer channel multiple
anchors:- [10,13, 16,30, 33,23]  # P3/8- [30,61, 62,45, 59,119]  # P4/16- [116,90, 156,198, 373,326]  # P5/32#Backbone
backbone:# [from, number, module, args][[-1, 1, Conv, [64, 6, 2, 2]],  # 0-P1/2[-1, 1, Conv, [128, 3, 2]],  # 1-P2/4[-1, 3, C3, [128]],[-1, 1, Conv, [256, 3, 2]],  # 3-P3/8[-1, 6, C3, [256]],[-1, 1, Conv, [512, 3, 2]],  # 5-P4/16[-1, 9, C3, [512]],[-1, 1, Conv, [1024, 3, 2]],  # 7-P5/32[-1, 3, C3, [1024]],[-1, 1, SPPF, [1024, 5]],  # 9]#Head
head:[[-1, 1, Conv, [512, 1, 1]],[-1, 1, nn.Upsample, [None, 2, 'nearest']],[[-1, 6], 1, Concat, [1]],  # cat backbone P4[-1, 3, C3, [512, False]],  # 13[-1, 1, Conv, [256, 1, 1]],[-1, 1, nn.Upsample, [None, 2, 'nearest']],[[-1, 4], 1, Concat, [1]],  # cat backbone P3[-1, 3, C3, [256, False]],  # 17 (P3/8-small)[-1, 1, Conv, [256, 3, 2]],[[-1, 14], 1, Concat, [1]],  # cat head P4[-1, 3, C3, [512, False]],  # 20 (P4/16-medium)[-1, 1, Conv, [512, 3, 2]],[[-1, 10], 1, Concat, [1]],  # cat head P5[-1, 3, C3, [1024, False]],  # 23 (P5/32-large)[[17, 20, 23], 1, Detect, [nc, anchors]],  # Detect(P3, P4, P5)]

默認100次epoch的迭代計算,結果詳情如下所示:

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

【Recall曲線】
召回率曲線(Recall Curve)是一種用于評估二分類模型在不同閾值下的召回率性能的可視化工具。它通過繪制不同閾值下的召回率和對應的精確率之間的關系圖來幫助我們了解模型在不同閾值下的表現。
召回率(Recall)是指被正確預測為正例的樣本數占所有實際為正例的樣本數的比例。召回率也被稱為靈敏度(Sensitivity)或真正例率(True Positive Rate)。
繪制召回率曲線的步驟如下:
使用不同的閾值將預測概率轉換為二進制類別標簽。通常,當預測概率大于閾值時,樣本被分類為正例,否則分類為負例。
對于每個閾值,計算相應的召回率和對應的精確率。
將每個閾值下的召回率和精確率繪制在同一個圖表上,形成召回率曲線。
根據召回率曲線的形狀和變化趨勢,可以選擇適當的閾值以達到所需的性能要求。
通過觀察召回率曲線,我們可以根據需求確定最佳的閾值,以平衡召回率和精確率。較高的召回率表示較少的漏報,而較高的精確率意味著較少的誤報。根據具體的業務需求和成本權衡,可以在曲線上選擇合適的操作點或閾值。
召回率曲線通常與精確率曲線(Precision Curve)一起使用,以提供更全面的分類器性能分析,并幫助評估和比較不同模型的性能。

【F1值曲線】
F1值曲線是一種用于評估二分類模型在不同閾值下的性能的可視化工具。它通過繪制不同閾值下的精確率(Precision)、召回率(Recall)和F1分數的關系圖來幫助我們理解模型的整體性能。
F1分數是精確率和召回率的調和平均值,它綜合考慮了兩者的性能指標。F1值曲線可以幫助我們確定在不同精確率和召回率之間找到一個平衡點,以選擇最佳的閾值。
繪制F1值曲線的步驟如下:
使用不同的閾值將預測概率轉換為二進制類別標簽。通常,當預測概率大于閾值時,樣本被分類為正例,否則分類為負例。
對于每個閾值,計算相應的精確率、召回率和F1分數。
將每個閾值下的精確率、召回率和F1分數繪制在同一個圖表上,形成F1值曲線。
根據F1值曲線的形狀和變化趨勢,可以選擇適當的閾值以達到所需的性能要求。
F1值曲線通常與接收者操作特征曲線(ROC曲線)一起使用,以幫助評估和比較不同模型的性能。它們提供了更全面的分類器性能分析,可以根據具體應用場景來選擇合適的模型和閾值設置。

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

【label數據分布可視化】

【混淆矩陣】

【訓練可視化】

【Batch計算實例】

這里也基于GradCam計算測試了樣例圖像的heatmap,如下所示:

感興趣的也都可以自行嘗試實踐下,可能會有不同的收獲!?

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

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

相關文章

Vue框架的element組件table文字居中

1、代碼展示 <el-table:data"table.data.slice((table.currentPage - 1) * table.limit, table.currentPage * table.limit)"style"width: 100%; margin-top: 15px"border:header-cell-style"{ textAlign: center }":cell-style"{textAl…

【KMP算法】學習總結

說明&#xff1a; 文章內容為對KMP算法的總結&#xff0c;以及力扣例題&#xff1b;文章內容為個人的學習總結&#xff0c;如有錯誤&#xff0c;歡迎指正。 文章目錄 1. KMP算法1.1 算法步驟1.2 關于指針回退問題 2 . LeetCode例題 1. KMP算法 1.1 算法步驟 KMP算法通常用于…

springboot_vue知識點

代碼放到了倉庫。 springboot_vue知識點 1.搭建1.vue2.springboot 2.前后端請求和響應的封裝1.請求封裝2.響應封裝 3.增刪改查1.查詢2.分頁3.新增和編輯4.刪除 4.跨域和自定義異常5.JWT鑒權1.配置pom2.攔截前端請求的攔截器3.生成token并驗證token4.登錄后生成token5.前端獲取…

git如何查看配置,修改配置,設置配置

# 顯示當前的Git配置 $ git config --list# 編輯Git配置文件 $ git config -e [--global]# 設置提交代碼時的用戶信息 $ git config [--global] user.name "[name]" $ git config [--global] user.email "[email address]"

Grafana如何實現折線柱狀圖

程序員的公眾號&#xff1a;源1024&#xff0c;獲取更多資料&#xff0c;無加密無套路&#xff01; 最近整理了一份大廠面試資料《史上最全大廠面試題》&#xff0c;Springboot、微服務、算法、數據結構、Zookeeper、Mybatis、Dubbo、linux、Kafka、Elasticsearch、數據庫等等 …

競賽選題 車位識別車道線檢測 - python opencv

0 前言 &#x1f525; 優質競賽項目系列&#xff0c;今天要分享的是 &#x1f6a9; 深度學習 機器視覺 車位識別車道線檢測 該項目較為新穎&#xff0c;適合作為競賽課題方向&#xff0c;學長非常推薦&#xff01; &#x1f947;學長這里給一個題目綜合評分(每項滿分5分) …

從六個方面對比Go和Python的差異

您是否想過 Go 與 Python 之間的主要區別是什么&#xff1f;隨著對軟件開發人員的需求不斷增加&#xff0c;選擇哪種編碼語言可能會很困難。 ? 在此&#xff0c;我們將從六個方面對比Go和Python,探討 Go 和 Python之間的差異。我們將討論它們的特點、優缺點&#xff0c;以便…

GPT、GPT-2、GPT-3論文精讀筆記

視頻&#xff1a;GPT&#xff0c;GPT-2&#xff0c;GPT-3 論文精讀【論文精讀】_嗶哩嗶哩_bilibili MAE論文&#xff1a;把bert用回計算機視覺領域 CLIP論文&#xff1a;打通文本和圖像 GPT 論文&#xff1a;Improving Language Understanding by Generative Pre-Training …

史詩級云故障敲響警鐘,應用保障不能沒有“連續鍵”!

近日&#xff0c;知名云服務商出現一次史詩級的云故障&#xff1a;全球所有區域/所有服務同時異常&#xff0c;故障持續長達3小時之多&#xff0c;云上眾多應用受到極大影響。 如今&#xff0c;在一個充滿不確定性和復雜性的數字化時代&#xff0c;哪怕是頂級云服務商亦不能避…

python-append與extend的區別

append 和 extend 是用于向列表&#xff08;List&#xff09;添加元素的兩種不同的方法&#xff0c;它們在功能上有一些重要的區別。 append 方法&#xff1a; append 方法用于在列表的末尾添加單個元素。語法&#xff1a;list.append(element)示例&#xff1a;my_list [1, 2,…

并行與分布式計算 第9章 算法設計

文章目錄 并行與分布式計算 第9章 算法設計9.1 設計過程9.1.1 PCAM設計過程9.1.2 劃分9.1.3 通信9.1.4 組合9.1.5 映射 8.2 設計方法8.2.1 劃分技術9.2.2 分治9.2.3 平衡樹技術9.2.4倍增技術9.2.5 流水線技術9.2.6 破對稱技術 并行與分布式計算 第9章 算法設計 9.1 設計過程 …

一張圖,了解美格智能高算力AI模組

美格智能高算力A模組&#xff0c;澎湃算力讓AI觸手可及&#xff01;

數字化背景下,集流體行業的智能制造方法論

行業背景 隨著全球對清潔能源需求的不斷增加&#xff0c;新能源領域正在迅速崛起&#xff0c;在新能源技術中&#xff0c;鋰電池作為一種高效、輕便的能量儲存解決方案&#xff0c;正成為主流。而鋰電集流體作為鋰電池的核心部件&#xff0c;承擔著電池內部電流分布的關鍵角色…

掌握Java關鍵字與面試技巧的完美結合!

問題&#xff1a;請說明什么是策略模式&#xff0c;并使用Java代碼舉例說明其使用場景和實現方式。 答案&#xff1a; 策略模式是一種行為型設計模式&#xff0c;它允許在運行時根據不同的情況選擇不同的算法或策略。它將每個可選的算法封裝成一個獨立的類&#xff0c;從而使得…

服務號可以遷移到訂閱號嗎

服務號和訂閱號有什么區別&#xff1f;服務號轉為訂閱號有哪些作用&#xff1f;首先我們要看一下服務號和訂閱號的主要區別。1、服務號推送的消息沒有折疊&#xff0c;消息出現在聊天列表中&#xff0c;會像收到消息一樣有提醒。而訂閱號推送的消息是折疊的&#xff0c;“訂閱號…

RHEL 8.6 Kubespray 1.23.1 install kubernetes v1.27.7

文章目錄 1. 預備條件配置網卡download01 節點安裝 nerdctl3. download01 節點 介質下載4. bastion01節點配置 yum 源5. bastion01 離線安裝 nerdctl安裝l insecure registry配置鏡像入庫執行 set-all.sh7. bastion01 配置互信8. 啟動容器部署環境9. 部署前準備9.1 配置 extrac…

分布式篇---第二篇

系列文章目錄 文章目錄 系列文章目錄前言一、你知道哪些分布式事務解決方案?二、什么是二階段提交?三、什么是三階段提交?前言 前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到網站,這篇文章男女通用,看懂了就去分享給你…

基于Pytorch框架多人多攝像頭摔倒跌倒墜落檢測系統

歡迎大家點贊、收藏、關注、評論啦 &#xff0c;由于篇幅有限&#xff0c;只展示了部分核心代碼。 文章目錄 一項目簡介 二、功能三、系統四. 總結 一項目簡介 深度學習在計算機視覺領域的應用已經取得了顯著的進展&#xff0c;特別是在多人多攝像頭場景下的摔倒跌倒檢測。通過…

java異常 try/catch/throw/throws

try-catch一般用在最上層的程序里&#xff0c;可以配合throws和throw再將異常拋給用戶&#xff0c;這種情況會使上層代碼中斷。也可以不選擇拋出&#xff0c;這種上層代碼會繼續運行。 被調用的方法如果有異常的可能可以通過throws拋給上層處理&#xff0c;不加try catch的情況…