女人荫蒂被添全过程13种图片,亚洲+欧美+在线,欧洲精品无码一区二区三区 ,在厨房拨开内裤进入毛片

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

YOLOv5實(shí)現(xiàn)鋼材表面缺陷檢測

新機(jī)器視覺 ? 來源:笑傲算法江湖 ? 2023-02-20 10:14 ? 次閱讀

目前,基于機(jī)器視覺的表面缺陷已經(jīng)在各個(gè)工業(yè)領(lǐng)域廣泛取代人工視覺檢測,包括3C、汽車、家電、機(jī)械制造半導(dǎo)體電子、化工、制藥、航空航天、輕工等行業(yè)。許多基于深度學(xué)習(xí)的缺陷檢測方法也被廣泛應(yīng)用于各種工業(yè)場景。

本文的代碼實(shí)戰(zhàn),是基于YOLOv5目標(biāo)檢測算法,在NEU表面缺陷數(shù)據(jù)集上實(shí)現(xiàn)鋼材表面缺陷檢測。要求Python>=3.7.0,PyTorch>=1.7。

一、YOLOv5

選取YOLOv5,一方面是因?yàn)閺淖罱K效果來看YOLOv5已經(jīng)相當(dāng)優(yōu)秀,是發(fā)展的比較完備、使用比較廣泛的一個(gè)版本;而更重要的是YOLOv5的調(diào)用、訓(xùn)練和預(yù)測都十分方便,為初學(xué)者提供了良好的練手工具。YOLOv5的另一個(gè)特點(diǎn)就是它為不同的設(shè)備需求和不同的應(yīng)用場景提供了大小和參數(shù)數(shù)量不同的網(wǎng)絡(luò)。

1395e702-b014-11ed-bfe3-dac502259ad0.png

如圖所示,大一點(diǎn)的模型比如YOLOv5l和YOLOv5x參數(shù)更多,在大規(guī)模的COCO數(shù)據(jù)集上有更高的預(yù)測準(zhǔn)確率;而小模型比如YOLOv5n或YOLOv5s占空間更小,適合部署在移動設(shè)備上,且推理速度更快,適合于高幀 率視頻的實(shí)時(shí)檢測。

13bfeda4-b014-11ed-bfe3-dac502259ad0.png

二、鋼材表面缺陷數(shù)據(jù)集

東北大學(xué)(NEU)表面缺陷數(shù)據(jù)集,收集了熱軋帶鋼6種典型的表面缺陷,即軋內(nèi)垢(RS)、斑塊(Pa)、裂紋(Cr)、點(diǎn)蝕面(PS)、夾雜物(In)和劃痕(Sc)。該數(shù)據(jù)庫包括1800張灰度圖像:6種不同類型的典型表面缺陷各300個(gè)樣本。

下圖為6種典型表面缺陷的樣本圖像,每張圖像的原始分辨率為200×200像素。從圖中,我們可以清楚地觀察到類內(nèi)缺陷在外觀上存在較大差異,例如劃痕(最后一列)可能是水平劃痕、垂直劃痕和傾斜劃痕等。與此同時(shí),類間缺陷也具有相似的特征,如滾積垢、裂紋和坑狀表面。

此外,由于光照和材料變化的影響,類內(nèi)缺陷圖像的灰度會發(fā)生變化。總之,NEU表面缺陷數(shù)據(jù)庫包含兩個(gè)難題,即類內(nèi)缺陷存在較大外觀差異,類間缺陷具有相似方面,缺陷圖像受到光照和材料變化的影響。

13d023b8-b014-11ed-bfe3-dac502259ad0.png

對于缺陷檢測任務(wù),數(shù)據(jù)集提供了標(biāo)注,標(biāo)注了每個(gè)圖像中缺陷的類別和位置。下圖展示了數(shù)據(jù)集上的一些檢測結(jié)果示例。對于每個(gè)缺陷,黃色框是表示其位置的邊界框,綠色標(biāo)簽是類分?jǐn)?shù)。

1429b9a0-b014-11ed-bfe3-dac502259ad0.png

三、YOLOv5數(shù)據(jù)格式

YOLOv5標(biāo)簽文件中每一行的數(shù)據(jù)為class, x, y, w, h,其中class是該物體的類別,x,y是檢測框中心坐標(biāo),w,h是檢測框的寬和高。

1482c658-b014-11ed-bfe3-dac502259ad0.png

四、格式轉(zhuǎn)換voc2yolo

從網(wǎng)上獲取一些目標(biāo)檢測的數(shù)據(jù)集資源標(biāo)簽的格式都是VOC(xml格式)的,而YOLOv5訓(xùn)練所需要的文件格式是YOLO(txt格式)的,這里就需要對xml格式的標(biāo)簽文件轉(zhuǎn)換為txt文件。

同時(shí)訓(xùn)練自己的YOLOv5檢測模型的時(shí)候,數(shù)據(jù)集需要?jiǎng)澐譃橛?xùn)練集和驗(yàn)證集。這里提供了一份代碼將xml格式的標(biāo)注文件轉(zhuǎn)換為txt格式的標(biāo)注文件,并按比例劃分為訓(xùn)練集和驗(yàn)證集。

importxml.etree.ElementTreeasET
importos
fromosimportgetcwd
fromtqdmimporttqdm

classes=["crazing","inclusion","patches","pitted_surface","rolled-in_scale","scratches"]

defconvert(size,box):
dw=1./size[0]
dh=1./size[1]
x=(box[0]+box[1])/2.0
y=(box[2]+box[3])/2.0
w=box[1]-box[0]
h=box[3]-box[2]
x=x*dw
w=w*dw
y=y*dh
h=h*dh
return(x,y,w,h)

defconvert_annotation(image_id):
in_file='./xml/%s.xml'%(image_id)
out_file=open('./labels/%s.txt'%(image_id),'w')
tree=ET.parse(in_file)
root=tree.getroot()
size=root.find('size')
w=int(size.find('width').text)
h=int(size.find('height').text)

forobjinroot.iter('object'):
difficult=obj.find('Difficult').text
cls=obj.find('name').text
ifclsnotinclassesorint(difficult)==1:
continue
cls_id=classes.index(cls)
xmlbox=obj.find('bndbox')
b=(float(xmlbox.find('xmin').text),float(xmlbox.find('xmax').text),float(xmlbox.find('ymin').text),
float(xmlbox.find('ymax').text))
bb=convert((w,h),b)
out_file.write(str(cls_id)+""+"".join([str(a)forainbb])+'
')

if__name__=="__main__":
wd=getcwd()
print(wd)
ifnotos.path.exists('./labels/'):
os.makedirs('./labels/')
image_ids=os.listdir('./datasets')
forimage_idintqdm(image_ids):
convert_annotation(image_id.split('.')[0])

五、訓(xùn)練

152b38f6-b014-11ed-bfe3-dac502259ad0.png

YOLOv5是通過yaml格式的配置文件來找到對應(yīng)的訓(xùn)練測試數(shù)據(jù),因此在訓(xùn)練前需要對該文件進(jìn)行簡單配置。

我們可以通過修改YOLOv5的配置文件來實(shí)現(xiàn),需要修改的配置文件有兩個(gè),我們先復(fù)制一份data/coco.yaml,這里將其重命名為my_coco.yaml

在download前加上一個(gè)#注釋掉這段代碼

將train、val、test修改為自己的路徑,以train為例,NEU-DET/train/images/

將nc修改為數(shù)據(jù)的類別數(shù),如鋼材表面缺陷,故修改為6

將names修改自己數(shù)據(jù)的類名,如names: ["crazing", "inclusion", "patches", "pitted_surface", "rolled-in_scale", "scratches"]

154ff132-b014-11ed-bfe3-dac502259ad0.png

下一個(gè)需要修改的文件為模型配置文件,在models文件夾中有四個(gè)模型的配置文件:yolov5s.yaml、yolov5m.yaml、yolov5l.yaml和yolov5x.yaml,可以根據(jù)需要選擇相應(yīng)的模型,這里以yolo5s.yaml為例,打開文件,修改文件中的nc為自己的類別數(shù)即可。

158eb21e-b014-11ed-bfe3-dac502259ad0.png

pythontrain.py--weightsweights/yolov5s.pt--cfgmodels/yolov5s.yaml--datadata/my_coco.yaml--epoch30--batch-size32
15e494ea-b014-11ed-bfe3-dac502259ad0.png

六、測試

訓(xùn)練結(jié)束后,在runs/exp0文件夾下會自動生成訓(xùn)練結(jié)果,其中包括模型權(quán)重、混淆矩陣、PR曲線等。

進(jìn)行測試時(shí),打開detect.py文件,修改source為檢測圖片的文件夾,運(yùn)行之后,在run->detect中輸出檢測結(jié)果;或者通過如下方式進(jìn)行測試。

pythondetect.py--source./data/images/example.jpg--weightsruns/exp0/weights/best.pt--conf-thres0.25
16184420-b014-11ed-bfe3-dac502259ad0.png

16542850-b014-11ed-bfe3-dac502259ad0.png

最終預(yù)測的結(jié)果如下,可以看出模型缺陷檢測效果。

1675208c-b014-11ed-bfe3-dac502259ad0.png







審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 機(jī)器視覺
    +關(guān)注

    關(guān)注

    163

    文章

    4520

    瀏覽量

    122501
  • Neu
    Neu
    +關(guān)注

    關(guān)注

    0

    文章

    2

    瀏覽量

    6779
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4825

    瀏覽量

    86386
  • voc
    voc
    +關(guān)注

    關(guān)注

    0

    文章

    106

    瀏覽量

    15886

原文標(biāo)題:代碼實(shí)戰(zhàn):YOLOv5實(shí)現(xiàn)鋼材表面缺陷檢測

文章出處:【微信號:vision263com,微信公眾號:新機(jī)器視覺】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    YOLOv5】LabVIEW+YOLOv5快速實(shí)現(xiàn)實(shí)時(shí)物體識別(Object Detection)含源碼

    前面我們給大家介紹了基于LabVIEW+YOLOv3/YOLOv4的物體識別(對象檢測),今天接著上次的內(nèi)容再來看看YOLOv5。本次主要是和大家分享使用LabVIEW快速
    的頭像 發(fā)表于 03-13 16:01 ?2553次閱讀

    Yolov5算法解讀

    yolov5于2020年由glenn-jocher首次提出,直至今日yolov5仍然在不斷進(jìn)行升級迭代。 Yolov5YOLOv5s、YOLOv5
    的頭像 發(fā)表于 05-17 16:38 ?1.2w次閱讀
    <b class='flag-5'>Yolov5</b>算法解讀

    YOLOv5】LabVIEW+TensorRT的yolov5部署實(shí)戰(zhàn)(含源碼)

    今天主要和大家分享在LabVIEW中使用純TensoRT工具包快速部署并實(shí)現(xiàn)yolov5的物體識別
    的頭像 發(fā)表于 08-21 22:20 ?1679次閱讀
    【<b class='flag-5'>YOLOv5</b>】LabVIEW+TensorRT的<b class='flag-5'>yolov5</b>部署實(shí)戰(zhàn)(含源碼)

    龍哥手把手教你學(xué)視覺-深度學(xué)習(xí)YOLOV5

    ,其目標(biāo)檢測精度達(dá)到30%-50%(tensorflow中的ssd約為20%),足以說明該模型的分類檢測能力很強(qiáng)。將yolov5應(yīng)用于工業(yè)外觀檢測將具有極大的前景,例如下圖這種復(fù)雜背景
    發(fā)表于 09-03 09:39

    怎樣使用PyTorch Hub去加載YOLOv5模型

    在Python>=3.7.0環(huán)境中安裝requirements.txt,包括PyTorch>=1.7。模型和數(shù)據(jù)集從最新的 YOLOv5版本自動下載。簡單示例此示例從
    發(fā)表于 07-22 16:02

    使用Yolov5 - i.MX8MP進(jìn)行NPU錯(cuò)誤檢測是什么原因?

    的時(shí)機(jī)(yolov5s 模型,輸入為 448x448 ~ 70ms)。 現(xiàn)在我正在嘗試使用 Yolov5(uint8 量化),但我嘗試使用不同的預(yù)訓(xùn)練模型獲得相同的行為,在 CPU 上進(jìn)行良好檢測,在
    發(fā)表于 03-31 07:38

    如何YOLOv5測試代碼?

    使用文檔“使用 YOLOv5 進(jìn)行對象檢測”我試圖從文檔第 10 頁訪問以下鏈接(在 i.MX8MP 上部署 yolov5s 的步驟 - NXP 社區(qū)) ...但是這樣做時(shí)會被拒絕訪問。該文檔沒有說明需要特殊許可才能下載 tes
    發(fā)表于 05-18 06:08

    基于YOLOv5的目標(biāo)檢測文檔進(jìn)行的時(shí)候出錯(cuò)如何解決?

    你好: 按Milk-V Duo開發(fā)板實(shí)戰(zhàn)——基于YOLOv5的目標(biāo)檢測 安裝好yolov5環(huán)境,在執(zhí)行main.py的時(shí)候會出錯(cuò),能否幫忙看下 main.py: import torch
    發(fā)表于 09-18 07:47

    YOLOv5 7.0版本下載與運(yùn)行測試

    支持實(shí)例分割了,從此YOLOv5實(shí)現(xiàn)了圖像分類、對象檢測、實(shí)例分割三個(gè)支持,從訓(xùn)練到部署。
    的頭像 發(fā)表于 11-30 15:55 ?4474次閱讀

    使用旭日X3派的BPU部署Yolov5

    本次主要介紹在旭日x3的BPU中部署yolov5。首先在ubuntu20.04安裝yolov5,并運(yùn)行yolov5并使用pytoch的pt模型文件轉(zhuǎn)ONNX。
    的頭像 發(fā)表于 04-26 14:20 ?1277次閱讀
    使用旭日X3派的BPU部署<b class='flag-5'>Yolov5</b>

    YOLOv8+OpenCV實(shí)現(xiàn)DM碼定位檢測與解析

    YOLOv8是YOLO系列模型的最新王者,各種指標(biāo)全面超越現(xiàn)有對象檢測與實(shí)例分割模型,借鑒了YOLOv5YOLOv6、YOLOX等模型的設(shè)計(jì)優(yōu)點(diǎn),全面提升改進(jìn)
    的頭像 發(fā)表于 08-10 11:35 ?1638次閱讀
    <b class='flag-5'>YOLOv</b>8+OpenCV<b class='flag-5'>實(shí)現(xiàn)</b>DM碼定位<b class='flag-5'>檢測</b>與解析

    yolov5和YOLOX正負(fù)樣本分配策略

    整體上在正負(fù)樣本分配中,yolov7的策略算是yolov5和YOLOX的結(jié)合。因此本文先從yolov5和YOLOX正負(fù)樣本分配策略分析入手,后引入到YOLOv7的解析中。
    發(fā)表于 08-14 11:45 ?2630次閱讀
    <b class='flag-5'>yolov5</b>和YOLOX正負(fù)樣本分配策略

    YOLOv5網(wǎng)絡(luò)結(jié)構(gòu)訓(xùn)練策略詳解

    前面已經(jīng)講過了Yolov5模型目標(biāo)檢測和分類模型訓(xùn)練流程,這一篇講解一下yolov5模型結(jié)構(gòu),數(shù)據(jù)增強(qiáng),以及訓(xùn)練策略。
    的頭像 發(fā)表于 09-11 11:15 ?2968次閱讀
    <b class='flag-5'>YOLOv5</b>網(wǎng)絡(luò)結(jié)構(gòu)訓(xùn)練策略詳解

    RK3588 技術(shù)分享 | 在Android系統(tǒng)中使用NPU實(shí)現(xiàn)Yolov5分類檢測-迅為電子

    RK3588 技術(shù)分享 | 在Android系統(tǒng)中使用NPU實(shí)現(xiàn)Yolov5分類檢測-迅為電子
    的頭像 發(fā)表于 08-23 14:58 ?1264次閱讀
    RK3588 技術(shù)分享 | 在Android系統(tǒng)中使用NPU<b class='flag-5'>實(shí)現(xiàn)</b><b class='flag-5'>Yolov5</b>分類<b class='flag-5'>檢測</b>-迅為電子

    在樹莓派上部署YOLOv5進(jìn)行動物目標(biāo)檢測的完整流程

    目標(biāo)檢測在計(jì)算機(jī)視覺領(lǐng)域中具有重要意義。YOLOv5(You Only Look One-level)是目標(biāo)檢測算法中的一種代表性方法,以其高效性和準(zhǔn)確性備受關(guān)注,并且在各種目標(biāo)檢測
    的頭像 發(fā)表于 11-11 10:38 ?3507次閱讀
    在樹莓派上部署<b class='flag-5'>YOLOv5</b>進(jìn)行動物目標(biāo)<b class='flag-5'>檢測</b>的完整流程
    主站蜘蛛池模板: 武清区| 樟树市| 长宁区| 靖远县| 房山区| 泰安市| 嘉兴市| 德保县| 曲靖市| 隆化县| 平舆县| 清水河县| 保山市| 肥乡县| 天台县| 许昌市| 富宁县| 礼泉县| 台北市| 哈巴河县| 崇礼县| 东乡族自治县| 清新县| 凤冈县| 加查县| 清水县| 衡山县| 托克逊县| 凤台县| 临潭县| 毕节市| 张家港市| 安泽县| 隆尧县| 平乐县| 洱源县| 望都县| 志丹县| 贡觉县| 饶平县| 盘锦市|