使用YOLOv5訓練NEU-DET數據集

一、下載YOLOv5源碼和NEU-DET(鋼材表面缺陷)數據集

YOLOv5源碼
NEU-DET(鋼材表面缺陷)數據集
這里的數據集已經經過處理了,下載即可

若通過其他途徑下載的原始數據集標簽為xml格式,需要轉化為txt格式XML轉txt格式腳本

二、數據集準備

NEU-DET(鋼材表面缺陷)數據集中一共有六個類別缺陷共計1770張
在這里插入圖片描述
train為訓練集、valid為驗證集、data.yaml為配置文件存放不同數據集的路徑

無論train訓練集還是valid驗證集都需要有兩個子文件夾,images圖像和labels標簽,(cache為緩存可以刪掉)

Ⅰ,在train訓練集中

在這里插入圖片描述
labels和images要一一對應
images包含1770張照片,是模型所需要訓練的所有圖像
在這里插入圖片描述
在這里插入圖片描述

每個標簽均有多行數字組成,這里有兩行數字,表示有該圖片有兩個要檢測的目標,0表示第0個類別,后面四個數據表示目標的xywh位置(歸一化之后的結果)
在這里插入圖片描述
YOLO中標簽,只認txt格式,其他的不支持
也可以參考該篇博文,準備自己訓練的數據三、自定義標簽準備

Ⅱ,在valid驗證集中也一樣

images中僅有30中照片,驗證集的目的是在進行模型訓練的過程中時不時的進行小測試看看當前訓練的效果
在這里插入圖片描述

Ⅲ,data.yaml

train和val為訓練集train和驗證集vaild中images的位置
nc為類別數
names分別對應不同類別的名稱
在這里插入圖片描述

三、YOLOv5原始模型

Ⅰ,為方便后續操作,把數據集放到源碼文件夾下

在這里插入圖片描述

Ⅱ,train.py為整個模型的入口

在這里插入圖片描述

Ⅲ,配置參數

若不配置參數會使用主函數中default默認值
在這里插入圖片描述
data為配置文件路徑,該配置文件存有訓練數據的位置
cfg為所需要采用的模型架構5s、5m、5l等
batch為每次讀取圖像張數
在這里插入圖片描述

Ⅳ,模型架構

YOLO為了適應更多的場合,提供了多個版本,也就是lms類比于衣服的大小號,其中yolo5l模型架構層數最多,訓練層數最多,速度慢但效果好,最終訓練出來的模型最大
在這里插入圖片描述
以yolo5l.yaml為例
nc為檢測的類別,這里數據集為6類,需要改成6

depth_multiple模型的層數
width_multiple模型中每一層特征值的個數
這兩個參數控制模型的復雜度,這倆個值為系數,也就是在模型求解出來之后還需要再乘以這兩個系數才是最后的結果,因為這個是5l,故為1.0,要是5s這兩個參數都小于1

anchors為候選框的大小,若樣本中待檢測的數據較小,就把候選框改小點
在這里插入圖片描述

四、模型訓練

train.py右擊run開始訓練模型
在這里插入圖片描述

每訓練一次,會將結果保存到runs文件夾下,當然給主函數傳入相應參數來改變保存路徑
在這里插入圖片描述
訓練完成的模型為.pt文件,best為模型效果最好,last為模型的上一次訓練結果,若遇到突發情況方便繼續訓練
在這里插入圖片描述

五、模型效果驗證

detect.py為驗證模型
在這里插入圖片描述

傳參,有很多參數可以自己挨個試試看看效果
在這里插入圖片描述
在這里插入圖片描述
其中,weights為要用哪個模型進行測試
source為待測試圖片位置
output為最后輸出結果的位置

在detect.py右擊run開始使用訓練好的模型預測
在這里插入圖片描述

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

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

相關文章

kotlin獲取屬性_Kotlin程序獲取系統MAC地址

kotlin獲取屬性The task is to get system MAC address. 任務是獲取系統MAC地址。 package com.includehelpimport java.net.InetAddressimport java.net.NetworkInterface//Function to get System MACfun getSystemMac(): String? {return try {val OSName System.getProp…

帶分頁功能的SSH整合,DAO層經典封裝

任何一個封裝講究的是,使用,多狀態。Action:任何一個Action繼承分頁有關參數類PageManage,自然考慮的到分頁效果,我們必須定義下幾個分頁的參數。并根據這個參數進行查值。然后在繼承ServiceManage,Service…

在windows phone Mango中使用原生代碼開發程序

本文不討論創建可執行的exe程序,主要想說明怎么在silverlight程序里面調用由原生代碼所編寫的DLL(C / ARM). 原生代碼可以調用更多的API,但是這并不是說你就能隨意獲得那些你沒有權限的資源,比如,你可以使用CopyFile這個API,但是如果你試圖把文件Copy到\Windows文件夾,就會得到…

leetcode 198. 打家劫舍 思考分析

目錄1、題目2、求解思路3、代碼1、題目 你是一個專業的小偷,計劃偷竊沿街的房屋。每間房內都藏有一定的現金,影響你偷竊的唯一制約因素就是相鄰的房屋裝有相互連通的防盜系統,如果兩間相鄰的房屋在同一晚上被小偷闖入,系統會自動…

找不到Windows照片查看器解決方法

桌面創建一個txt文本 復制這些命令,之后將后綴改為.reg,右擊管理員身份運行即可 Windows Registry Editor Version 5.00 ; Change Extensions File Type [HKEY_CURRENT_USER\Software\Classes\.jpg] "PhotoViewer.FileAssoc.Tiff" ; Change E…

數字拆分為斐波那契數列_檢查數字是否為斐波那契

數字拆分為斐波那契數列Description: 描述: We are often used to generate Fibonacci numbers. But in this article, we are going to learn about how to search Fibonacci numbers in an array? 我們經常被用來產生斐波那契數。 但是在本文中,我們…

伙伴分配器的一個極簡實現

提起buddy system相信很多人不會陌生,它是一種經典的內存分配算法,大名鼎鼎的Linux底層的內存管理用的就是它。這里不探討內核這么復雜實現,而僅僅是將該算法抽象提取出來,同時給出一份及其簡潔的源碼實現,以便定制擴展…

[USACO3.2.3 Spinning Wheels]

[關鍵字]:模擬 枚舉 [題目大意]:有5個輪子,每個輪子優r個缺口并且會按一定速度不停轉動,問什么時候可以使一條光線射過所有輪子。 // [分析]:從0到1000(或其他的)枚舉分鐘然后判斷,當…

一、SQLServer2008安裝(帶密碼)、創建數據庫、C#窗體項目測試

一、下載和安裝SQLServer2008 東西太大了,沒法上傳到資源里面,官網其他公眾號都下載可以。 右擊管理員身份 運行setup.exe 這個密鑰不能用的話,也可以去百度其他密鑰 JD8Y6-HQG69-P9H84-XDTPG-34MBB 建議改一下路徑,我這邊修…

python獲取當前日期_Python程序獲取當前日期

python獲取當前日期In the below example – we are implementing a python program to get the current date. 在下面的示例中-我們正在實現一個python程序來獲取當前日期 。 Steps: 腳步: Import the date class from datetime module. 從datetime模塊導入日期類…

【C++grammar】多態、聯編、虛函數

目錄1、多態概念1.多態性有兩種表現的方式2、聯編(實現多態)1.靜態聯編2.動態聯編3、實現運行時多態1.為何要使用運行時多態?2.如何實現運行時多態3.多態的例子1.調用哪個同名虛函數?2. 用途:可以用父類指針訪問子類對…

一 MVC - HtmlHelper

HtmlHelper類位于System.Web.Mvc.Html之中主要有七個靜態類組成: FormExtensions - BeginForm, BeginRouteForm, EndForm InputExtensions - CheckBox, CheckBoxFor, Hidden, HiddenFor, Password, PasswordFor, RadioButton, RadioButtonFor, TextBox, TextBoxFor …

HDOJ 400題紀念。

剛剛交了1506,無意間瞟到左邊的隨筆數,發現已經401題了,這么說前幾天就400題了啊囧。 昨天還想交到400題就先放放,背單詞的,沒想到那么快。等把USACO那個八皇后寫完吧。人生總是有許多不想做又不得不做的事情。。。 還…

二、用戶登錄和注冊

一、頁面設計 一共四個頁面 主頁面Form1,登錄頁面login,注冊頁面resister,主菜單頁面main_page 系統運行進入Form1,單擊登錄按鈕跳轉到login,數據庫中得存在數據信息且輸入正確才可登錄成功,跳轉到main_pa…

readdir函數_PHP readdir()函數與示例

readdir函數PHP readdir()函數 (PHP readdir() function) The full form of readdir is "Read Directory", the function readdir() is used to read the directory i.e. read the name of the next entry in the directory. readdir的完整形式為“ Read Directory”…

【C++grammar】訪問控制與抽象類與純虛函數

目錄一、訪問控制 (可見性控制)1.private、public、protected關鍵字2.關鍵字示例1、關鍵字對類數據成員訪問的限制3. 公有繼承4. 私有繼承5. 保護繼承6. 私有繼承和保護繼承的區別二、抽象類與純虛函數1.什么是抽象類2.抽象函數/純虛函數3.抽象類示例一、訪問控制 (可見性控制)…

mongodb 如何刪除 字段值為 json對象中的某個字段值

例如: { attributes: { birthday:1988-01-01, name: aq } } birthday是attributes字段的value的一個字段, 我要刪除birthday 用這句話: db.User.update({email:adminlinkris.com},{$unset:{attributes.birthday:}})轉載于:https://www.cnblog…

使用 Spring 的 Web 服務模擬器框架解決方案

http://www.ibm.com/developerworks/cn/web/wa-aj-simulator/index.html轉載于:https://www.cnblogs.com/diyunpeng/archive/2012/02/28/2371390.html

三、上傳織物圖片至SQL Server并提供name進行展示織物照片

一、數據庫的建立 還是在fiber_yy數據庫下創建images表 images表設計如下 二、頁面完善設計 main_page頁面進行功能完善 入庫管理系統 warehousing頁面 庫存查詢系統 query頁面 登錄注冊頁面前面幾個博文已經實現過了,這里就再贅述了,仍是沿用前…

gettype_PHP gettype()函數與示例

gettypePHP gettype()函數 (PHP gettype() function) In PHP, we have a library function gettype() to identify the type of data. The function is primarily used to sanity check the type of data being input in a variable. The function can identify the data into …