助力工業生產質檢,基于輕量級yolov5-seg開發構建工業場景下滾珠絲杠傳動表面缺陷分割檢測系統

AI賦能工業生產是一個強有力的方式,在我們之前的系列博文中也有很多相應的開發實踐,感興趣的胡都可以自行移步閱讀,本文的核心思想就是想要基于輕量級的實例分割模型來開發構建工業場景下的滾珠絲杠傳動表面缺陷分割檢測系統,首先看下實例效果:

簡單看下數據集:

這里我直接使用的是官方v7.0分支的代碼,項目地址在這里,如下所示:

如果不會使用可以參考我的教程:

《基于yolov5-v7.0開發實踐實例分割模型超詳細教程》

非常詳細的操作實踐教程,這里就不再贅述了。

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

#Dataset
path: ./dataset
train: images/train 
val: images/train  
test:  images/train # Classes
names:0: Pitting

本文使用的是輕量級的n系列的分割模型,如下:

# YOLOv5 🚀 by Ultralytics, GPL-3.0 license# Parameters
nc: 1  # number of classes
depth_multiple: 0.33  # model depth multiple
width_multiple: 0.25  # 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# YOLOv5 v6.0 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]# YOLOv5 v6.0 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, Segment, [nc, anchors, 32, 256]],  # Detect(P3, P4, P5)]

這里我們是直接基于CPU來進行訓練的,如下所示:

接下來看下結果詳情:
【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曲線)一起使用,以幫助評估和比較不同模型的性能。它們提供了更全面的分類器性能分析,可以根據具體應用場景來選擇合適的模型和閾值設置。

模型訓練可視化如下所示:

Batch計算實例如下所示:

推理實例如下所示:

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

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

相關文章

STM32-固件打包部署

STM32-固件打包部署 Fang XS.1452512966qq.com STM32固件輸出 工程上使用Keil開發STM32軟件;在調試過程中,可直接編譯下載;例如bootloader和APP,在調試時,可以直接下載2次;但是工程上,需要大…

力扣經典面試題——合并區間

合并區間 https://leetcode.cn/problems/merge-intervals/description/?envTypestudy-plan-v2&envIdtop-interview-150 這題思維量一般但比較考察API的使用。 1、數組的自定義排序 2、數組的初始化定義 3、Arrays轉int 通過重寫Comparator的compare方法來自定義排序規則…

nvm動態管理node.js

nvm 安裝 nvm介紹 (1)nvm(Node.js version manager) 是一個命令行應用,可以協助您快速地 更新、安裝、使用、卸載 本機的全局 node.js 版本。 (2)有時候,我們可能同時在進行多個項目開發,而多…

Spring Boot監聽redis過期的key

Redis支持過期監聽&#xff0c;可以實現監聽過期數據&#xff0c;實現過程如下 1、pom依賴 <!-- Redis--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></depend…

Django講課筆記02:Django環境搭建

文章目錄 一、學習目標二、相關概念&#xff08;一&#xff09;Python&#xff08;二&#xff09;Django 三、環境搭建&#xff08;一&#xff09;安裝Python1. 從官方網站下載最新版本的Python2. 運行安裝程序并按照安裝向導進行操作3. 勾選添加到路徑復選框4. 完成安裝過程5.…

【計算機網絡】UDP報文詳解

目錄 一. UDP協議概述 二. UDP報文格式 首部 三. UDP的緩沖區 一. UDP協議概述 UDP——用戶數據報協議&#xff0c;是傳輸層的一個重要協議 基于UDP的應用層協議有&#xff1a;DNS&#xff0c;TFTP&#xff0c;SNMP&#xff0c;NTP 協議全稱默認端口號DNSDomain Name Se…

開源框架Apache NiFi調研

開源框架Apache NiFi調研 NiFi背景介紹一、什么是NiFi1.1 Apache NiFi特點&#xff1a;流管理、易用性、安全性、可擴展的體系結構和靈活的伸縮模型。1.2 Apache NiFi特性1.2 Apache NiFi核心概念1.3架構 二、NiFi的誕生&#xff0c;要致力于解決的問題有哪些&#xff1f;三、為…

SQL 存儲過程觸發器

單個SQL語句 實現不了復雜的實際應用&#xff0c;需要一組SQL語句來實現&#xff0c;創建函數&#xff0c;以方便應用。 存儲過程 可編程的函數&#xff0c;完成特定功能編寫的SQL語句&控制語句的預編譯的集合&#xff0c;再次調用時不再編譯。 優點&#xff1a; 允許標…

軟件開發經常出現的bug原因有哪些

軟件開發中出現bug的原因是多方面的&#xff0c;這些原因可能涉及到開發流程、人為因素、設計問題以及其他一系列因素。以下是一些常見的導致bug的原因&#xff1a; 1. 錯誤的需求分析&#xff1a; 不正確、不完整或者模糊的需求分析可能導致開發人員誤解客戶的需求&#xff0…

AICore 帶來了 Android 專屬的 AI 能力,它要解決什么?采用什么架構思路?

前言 Google 最近發布的 Gemini 模型在全球引起了巨大反響&#xff0c;其在多模態領域的 Video demo 無比震撼。對于 Android 開發者而言&#xff0c;其中最振奮人心的消息莫過于 Gemini Nano 模型將內置到 Android 系統當中&#xff0c;并開放給開發者使用。 事實上&#xf…

IDEA 2023.3 start failed 啟動失敗修復

發現是 RestfulToolkit 插件有沖突導致的&#xff0c;刪除插件后成功啟動 open ~/Library/Application\ Support/JetBrains/IntelliJIdea2023.3/plugins參考&#xff1a;https://youtrack.jetbrains.com/issue/IDEA-340080/Critical-startup-error-after-upgrading-to-Intelli…

無人零售柜:快捷舒適購物體驗

無人零售柜&#xff1a;快捷舒適購物體驗 通過無人零售柜和人工智能技術&#xff0c;消費者在購物過程中可以自由選擇商品&#xff0c;根據個人需求和喜好查詢商品清單。這種自主選擇的購物環境能夠為消費者提供更加舒適和滿意的體驗。此外&#xff0c;無人零售柜還具有節約時間…

LabVIEW使用單板RIO開發遠程監控電源信號

LabVIEW使用單板RIO開發遠程監控電源信號 設計和構建用于智能電網的本地功耗分析系統&#xff0c;主要服務于領先的電力監控設備設計者和制造商。隨著智能電網投資的增加&#xff0c;對于能夠有效處理替代電源&#xff08;如太陽能和風能&#xff09;間歇性功率水平的技術需求…

【EMNLP 2023】面向垂直領域的知識預訓練語言模型

近日&#xff0c;阿里云人工智能平臺PAI與華東師范大學數據科學與工程學院合作在自然語言處理頂級會議EMNLP2023上發表基于雙曲空間和對比學習的垂直領域預訓練語言模型。通過比較垂直領域和開放領域知識圖譜數據結構的不同特性&#xff0c;發現在垂直領域的圖譜結構具有全局稀…

【開源】基于Vue+SpringBoot的教學資源共享平臺

文末獲取源碼&#xff0c;項目編號&#xff1a; S 068 。 \color{red}{文末獲取源碼&#xff0c;項目編號&#xff1a;S068。} 文末獲取源碼&#xff0c;項目編號&#xff1a;S068。 目錄 一、摘要1.1 項目介紹1.2 項目錄屏 二、功能模塊2.1 數據中心模塊2.2 課程檔案模塊2.3 課…

虹科Pico汽車示波器 | 汽車免拆檢修 | 2019款別克GL8豪華商務車前照燈水平調節故障

一、故障現象 一輛2019款別克GL8豪華商務車&#xff0c;搭載LTG發動機&#xff0c;累計行駛里程約為10.7萬km。車主反映&#xff0c;車輛行駛過程中組合儀表提示前照燈水平調節故障。 二、故障診斷 接車后試車&#xff0c;起動發動機&#xff0c;組合儀表上提示“前照燈水平調節…

windows10安裝MongoDB的入門簡易教程【學習自用】

一、下載安裝包 下載地址 https://www.mongodb.com/try/download/community 因為我是在windows上安裝&#xff0c;所以下載windows版本的壓縮包格式 二、下載后解壓到要安裝的目錄里去 我這里在D盤裝&#xff0c;所以就解壓到D盤中我自己建的的mongoDB文件夾中。 三、在解…

02-Nacos和Eureka的區別與聯系

Nacos和Eureka的區別 聯系 Nacos和Eureka整體結構類似: 都支持服務注冊, 服務拉取, 采用心跳方式對服務提供者做健康監測的功能 區別 Nacos支持服務端主動檢測服務提供者狀態: 臨時實例采用心跳模式,非臨時實例采用主動檢測模式但對服務器壓力比較大(不推薦) 心跳模式: 服務…

.net 安裝Postgresql驅動程序ngpsql

.net 安裝Postgresql驅動程序ngpsql 最近搞一個物聯網項目&#xff0c;需要采集fanuc數控機床的數據&#xff0c;廠家提供的API只支持windows&#xff0c;所以就決定C#開發&#xff0c;數據庫用postgresql&#xff0c; 安裝數據庫驅動一波三折。 作為一個討厭微軟的老程序猿&…

靜態鏈接庫和動態鏈接庫(隱式載入顯式載入)

文章目錄 動態鏈接庫和靜態鏈接庫什么是鏈接庫&#xff1f;靜態鏈接庫動態鏈接庫動態鏈接庫的倆種鏈接方式加載時動態鏈接運行時動態鏈接 動態鏈接庫和靜態鏈接庫 動態鏈接庫和靜態鏈接庫都是共享代碼的方法&#xff0c;只是二者略有區別。 以C/C為例&#xff0c;一個可執行文…