chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

計算機視覺在工業(yè)領(lǐng)域的一個實踐

新機器視覺 ? 來源:AI公園 ? 作者:Soham Malakar ? 2020-08-28 11:40 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

導(dǎo)讀計算機視覺在工業(yè)領(lǐng)域的一個實踐,有方案和代碼的分享。

1. 介紹

焊接缺陷可以定義為焊縫表面出現(xiàn)的不規(guī)則、不連續(xù)性、缺陷或不一致性。焊接接頭的缺陷可能導(dǎo)致零件和組件的報廢、昂貴的維修費用、工作條件下性能的顯著降低,在極端情況下,還可能導(dǎo)致導(dǎo)致財產(chǎn)和生命損失的災(zāi)難性故障。 此外,由于焊接工藝本身的缺陷和金屬本身的特性,在焊接過程中總會存在一定的缺陷。評估焊接質(zhì)量是很重要的,因為由于固有的冶金幾何缺陷、機械性能的不均一性和殘余應(yīng)力的存在,焊接接頭經(jīng)常是裂紋萌生的位置。 在實踐中,幾乎不可能得到完美的焊接,而且在大多數(shù)情況下,也沒有必要提供所需的足夠的服務(wù)功能。然而,及早發(fā)現(xiàn)和隔離總是比發(fā)生事故更可取。 利用我們的算法,我們可以很容易地檢測出焊接故障的圖像,并準(zhǔn)確地衡量每一個故障的嚴(yán)重程度。這將進一步幫助更快的圖像識別和避免不良情況的出現(xiàn)。 結(jié)果表明,采用卷積神經(jīng)網(wǎng)絡(luò)算法和U-Net結(jié)構(gòu),可以大大提高處理效率。結(jié)果在工作結(jié)束時,準(zhǔn)確率達到98.3%。

2. 預(yù)備知識

機器學(xué)習(xí)有基本了解

卷積神經(jīng)網(wǎng)絡(luò)的基本思想

理解卷積,最大池化和上采樣操作

了解U-Net的架構(gòu)理念

對殘差塊中skip連接有基本了解(可選)

使用Python、TensorFlow和Keras庫操作ConvNets的知識(可選)

3. 圖像分割

分割是將圖像分割成不同的區(qū)域,這些區(qū)域包含具有相似屬性的像素。為了對圖像分析和解釋有意義和有用,區(qū)域應(yīng)該與描繪的物體或感興趣的特征有強烈的關(guān)聯(lián)。 圖像分析的成功與否取決于分割的可靠性,但圖像的精確分割通常是一個非常具有挑戰(zhàn)性的問題。

分割后的胸部x光片,心臟(紅色)、肺(綠色)和鎖骨(藍色)

4. 圖像矩

圖像矩是圖像像素強度的某一特定加權(quán)平均值。圖像矩用于描述分割后的目標(biāo)。 通*圖像矩發(fā)現(xiàn)的圖像的簡單屬性包括:

面積(或總強度)

重心

關(guān)于方向的信息

5. 理解數(shù)據(jù)

dataset包含兩個目錄。原始圖像存儲在‘images’目錄中,分割后的圖像存儲在‘labels’目錄中。 讓我們將數(shù)據(jù)可視化:

來自‘image’的原始圖像

來自‘labels’的二值圖像 這些來自“l(fā)abels”目錄的圖像是二進制圖像或ground truth標(biāo)簽。這是我們的模型必須對給定的原始圖像做出的預(yù)測。在二進制圖像中,像素要么有一個“high”值,要么有一個“l(fā)ow”值。白色區(qū)域或“high”值表示缺陷區(qū)域,黑色區(qū)域或“l(fā)ow”值表示沒有缺陷。

6. 使用的方法

我們在這個問題上使用的架構(gòu)是U-Net。我們將通過三個步驟來檢測故障并測量這些焊接圖像的嚴(yán)重程度:

圖像分割

使用顏色表示嚴(yán)重程度

使用圖像矩度量嚴(yán)重程度

訓(xùn)練模型

下面是我們用于模型的U-Net架構(gòu):

使用的U-Net結(jié)構(gòu)要注意的點:

每個藍框?qū)?yīng)一個多通道特征圖

通道的數(shù)量在盒子的頂部表示

(x,y)維度顯示在盒子的左下邊緣

箭頭表示不同的操作

層的名稱在層的下面

C1 C2…C7是卷積操作后的輸出層

P1, P2, P3是最大池化操作的輸出層

U1, U2, U3是上采樣操作的輸出層

A1, A2, A3是跳躍連接

左側(cè)是收縮路徑,應(yīng)用常規(guī)卷積和最大池操作

圖像的尺寸逐漸減小,而深度逐漸增加

右邊是展開路徑,在這里應(yīng)用(上采樣)轉(zhuǎn)置卷積和常規(guī)卷積操作

在擴展路徑中,圖像的尺寸逐漸增大,深度逐漸減小

為了得到更精確的位置,在擴展路徑的每一步中,我們使用跳躍連接,將轉(zhuǎn)置卷積層的輸出與來自編碼器的相同級別的特征圖連接在一起:A1 = U1 + C3A2 = U2 + C2A3 = U3 + C1 在每次連接之后,我們再次應(yīng)用常規(guī)卷積,以便模型能夠?qū)W習(xí)組裝出更精確的輸出。

importnumpyasnp importcv2 importos importrandom importtensorflowastf h,w=512,512 defcreate_model(): inputs=tf.keras.layers.Input(shape=(h,w,3)) conv1=tf.keras.layers.Conv2D(16,(3,3),activation='relu',padding='same')(inputs) pool1=tf.keras.layers.MaxPool2D()(conv1) conv2=tf.keras.layers.Conv2D(32,(3,3),activation='relu',padding='same')(pool1) pool2=tf.keras.layers.MaxPool2D()(conv2) conv3=tf.keras.layers.Conv2D(64,(3,3),activation='relu',padding='same')(pool2) pool3=tf.keras.layers.MaxPool2D()(conv3) conv4=tf.keras.layers.Conv2D(64,(3,3),activation='relu',padding='same')(pool3) upsm5=tf.keras.layers.UpSampling2D()(conv4) upad5=tf.keras.layers.Add()([conv3,upsm5]) conv5=tf.keras.layers.Conv2D(32,(3,3),activation='relu',padding='same')(upad5) upsm6=tf.keras.layers.UpSampling2D()(conv5) upad6=tf.keras.layers.Add()([conv2,upsm6]) conv6=tf.keras.layers.Conv2D(16,(3,3),activation='relu',padding='same')(upad6) upsm7=tf.keras.layers.UpSampling2D()(conv6) upad7=tf.keras.layers.Add()([conv1,upsm7]) conv7=tf.keras.layers.Conv2D(1,(3,3),activation='relu',padding='same')(upad7) model=tf.keras.models.Model(inputs=inputs,outputs=conv7) returnmodel images=[] labels=[] files=os.listdir('./dataset/images/') random.shuffle(files) forfinfiles: img=cv2.imread('./dataset/images/'+f) parts=f.split('_') label_name='./dataset/labels/'+'W0002_'+parts[1] label=cv2.imread(label_name,2) img=cv2.resize(img,(w,h)) label=cv2.resize(label,(w,h)) images.append(img) labels.append(label) images=np.array(images) labels=np.array(labels) labels=np.reshape(labels, (labels.shape[0],labels.shape[1],labels.shape[2],1)) print(images.shape) print(labels.shape) images=images/255 labels=labels/255 model=tf.keras.models.load_model('my_model') #model=create_model()#uncommentthistocreateanewmodel print(model.summary()) model.compile(optimizer='adam',loss='binary_crossentropy',metrics=['accuracy']) model.fit(images,labels,epochs=100,batch_size=10) model.evaluate(images,labels) model.save('my_model') 模型采用Adam優(yōu)化器進行編譯,由于只有缺陷和無缺陷兩類,我們使用二元交叉熵?fù)p失函數(shù)。 我們使用批大小為10的100 epoch(模型在所有輸入上運行的次數(shù))。 請注意,調(diào)整這些超參數(shù)有很大的進一步提高模型性能的空間。

測試模型

由于模型的輸入尺寸為512x512x3,我們將輸入尺寸調(diào)整為這個尺寸。接下來,我們將圖像歸一化,將其除以255,這樣計算速度更快。 該圖像被輸入到模型中,用于預(yù)測二進制輸出。為了放大像素的強度,二進制輸出被乘以1000。 然后將圖像轉(zhuǎn)換為16位整數(shù),便于圖像操作。然后用算法檢測缺陷,通過顏色分級和根據(jù)缺陷的嚴(yán)重程度給有缺陷的像素分配權(quán)重,直觀地標(biāo)記出缺陷的嚴(yán)重程度。然后在此圖像上考慮加權(quán)像素計算圖像矩。 最后將圖像轉(zhuǎn)換回8位整數(shù),并顯示輸出圖像的顏色等級和嚴(yán)重性值。

importnumpyasnp importcv2 fromgoogle.colab.patchesimportcv2_imshow importos importrandom importtensorflowastf h,w=512,512 num_cases=10 images=[] labels=[] files=os.listdir('./dataset/images/') random.shuffle(files) model=tf.keras.models.load_model('my_model') lowSevere=1 midSevere=2 highSevere=4 forfinfiles[0:num_cases]: test_img=cv2.imread('./dataset/images/'+f) resized_img=cv2.resize(test_img,(w,h)) resized_img=resized_img/255 cropped_img=np.reshape(resized_img, (1,resized_img.shape[0],resized_img.shape[1],resized_img.shape[2])) test_out=model.predict(cropped_img) test_out=test_out[0,:,:,0]*1000 test_out=np.clip(test_out,0,255) resized_test_out=cv2.resize(test_out,(test_img.shape[1],test_img.shape[0])) resized_test_out=resized_test_out.astype(np.uint16) test_img=test_img.astype(np.uint16) grey=cv2.cvtColor(test_img,cv2.COLOR_BGR2GRAY) foriinrange(test_img.shape[0]): forjinrange(test_img.shape[1]): if(grey[i,j]>150&resized_test_out[i,j]>40): test_img[i,j,1]=test_img[i,j,1]+resized_test_out[i,j] resized_test_out[i,j]=lowSevere elif(grey[i,j]<100?&?resized_test_out[i,j]>40): test_img[i,j,2]=test_img[i,j,2]+resized_test_out[i,j] resized_test_out[i,j]=highSevere elif(resized_test_out[i,j]>40): test_img[i,j,0]=test_img[i,j,0]+resized_test_out[i,j] resized_test_out[i,j]=midSevere else: resized_test_out[i,j]=0 M=cv2.moments(resized_test_out) maxMomentArea=resized_test_out.shape[1]*resized_test_out.shape[0]*highSevere print("0thMoment=",(M["m00"]*100/maxMomentArea),"%") test_img=np.clip(test_img,0,255) test_img=test_img.astype(np.uint8) cv2_imshow(test_img) cv2.waitKey(0)

7. 結(jié)果

我們用于檢測嚴(yán)重程度的視覺度量是顏色。 在圖像中,顏色:

綠色表示有嚴(yán)重缺陷的區(qū)域。

藍色代表缺陷較嚴(yán)重的區(qū)域。

紅色區(qū)域表示最嚴(yán)重的缺陷。

0階矩作為一個百分比顯示在輸出圖像上作為一個經(jīng)驗的嚴(yán)重程度度量。 下面是三個隨機樣本,分別顯示了我們模型生成的原始輸入、ground truth和輸出。

樣本1:

原始圖像

二值圖像(Ground Truth)

帶有嚴(yán)重程度的預(yù)測輸出

樣本2:

原始圖像

二值圖像(Ground Truth)

帶有嚴(yán)重程度的預(yù)測輸出

樣本3:

原始圖像

二值圖像(Ground Truth)

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

    關(guān)注

    42

    文章

    4825

    瀏覽量

    106755
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4940

    瀏覽量

    73090
  • 計算機視覺
    +關(guān)注

    關(guān)注

    9

    文章

    1714

    瀏覽量

    47444

原文標(biāo)題:鋼鐵平面焊接缺陷檢測,有方案、有代碼

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

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

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

    工控機與普通計算機的核心差異解析

    工業(yè)自動化和智能制造領(lǐng)域,計算機設(shè)備作為核心控制單元,其選擇直接影響整個系統(tǒng)的穩(wěn)定性與可靠性。工控機與普通計算機雖同屬
    的頭像 發(fā)表于 11-25 14:45 ?856次閱讀
    工控機與普通<b class='flag-5'>計算機</b>的核心差異解析

    龍芯中科斬獲2025中國工業(yè)計算機大會兩項殊榮

    近日,2025中國工業(yè)計算機大會(CCF ICCC 2025)云南昆明召開。本次大會由中國計算機學(xué)會主辦,中國計算機學(xué)會工業(yè)控制
    的頭像 發(fā)表于 11-10 17:35 ?451次閱讀

    易控智駕榮獲計算機視覺頂會CVPR 2025認(rèn)可

    近日,2025年國際計算機視覺與模式識別頂級會議(IEEE/CVF Conference on Computer Vision and Pattern Recognition,CVPR 2025)美國田納西州納什維爾召開。
    的頭像 發(fā)表于 07-29 16:54 ?965次閱讀

    工業(yè)計算機的重要性

    工業(yè)計算機對某些行業(yè)至關(guān)重要。我們將在下面詳細(xì)解釋這些行業(yè)中的工業(yè)計算機應(yīng)用。1.制造與工業(yè)自動化工業(yè)計算機非常適合制造工廠,特別是那些想
    的頭像 發(fā)表于 07-28 16:07 ?386次閱讀
    <b class='flag-5'>工業(yè)計算機</b>的重要性

    自動化計算機經(jīng)過加固后有什么好處?

    讓我們討論下部署堅固的自動化計算機些好處。1.溫度范圍寬自動化計算機經(jīng)過工程設(shè)計,配備了支持寬溫度范圍的組件,使自動化計算解決方案能夠
    的頭像 發(fā)表于 07-21 16:44 ?416次閱讀
    自動化<b class='flag-5'>計算機</b>經(jīng)過加固后有什么好處?

    自動化計算機的功能與用途

    工業(yè)自動化是指利用自動化計算機來控制工業(yè)環(huán)境中的流程、機器人和機械,以制造產(chǎn)品或其部件。工業(yè)自動化的目的是提高生產(chǎn)率、增加靈活性,并提升制造過程的質(zhì)量。
    的頭像 發(fā)表于 07-15 16:32 ?522次閱讀
    自動化<b class='flag-5'>計算機</b>的功能與用途

    工業(yè)計算機與商用計算機的區(qū)別有哪些

    工業(yè)計算機種專為工廠和工業(yè)環(huán)境設(shè)計的計算系統(tǒng),具有高可靠性和穩(wěn)定性,能夠應(yīng)對惡劣環(huán)境下的自動化、制造和機器人操作。其特點包括無風(fēng)扇散熱技術(shù)、無電纜連接和防塵防水設(shè)計,使其
    的頭像 發(fā)表于 07-10 16:36 ?507次閱讀
    <b class='flag-5'>工業(yè)計算機</b>與商用<b class='flag-5'>計算機</b>的區(qū)別有哪些

    什么是模塊化計算機?搞清楚用途和應(yīng)用場景,別再瞎選了!

    如果你是搞工業(yè)自動化、醫(yī)療設(shè)備、交通控制,甚至是軍事裝備的,那你大概率已經(jīng)聽過“模塊化計算機”這個詞。要是你還沒了解,那這篇文章就是為你寫的。作為
    的頭像 發(fā)表于 06-04 11:00 ?710次閱讀
    什么是模塊化<b class='flag-5'>計算機</b>?搞清楚用途和應(yīng)用場景,別再瞎選了!

    工業(yè)計算機如何設(shè)計用于沖擊和振動

    工業(yè)計算機是為挑戰(zhàn)消費級系統(tǒng)耐用性的環(huán)境而構(gòu)建的。制造業(yè)、運輸業(yè)、國防和采礦業(yè)等領(lǐng)域,計算機面臨著持續(xù)的沖擊、振動和其他物理壓力。設(shè)計這些系統(tǒng)以在這種條件下保持可靠需要卓越的工程和創(chuàng)
    的頭像 發(fā)表于 05-19 15:27 ?355次閱讀
    <b class='flag-5'>工業(yè)計算機</b>如何設(shè)計用于沖擊和振動

    利用邊緣計算工業(yè)計算機實現(xiàn)智能視頻分析

    IVA的好處、實際部署應(yīng)用程序以及工業(yè)計算機如何實現(xiàn)這些解決方案。、什么是智能視頻分析(IVA)?智能視頻分析(IVA)集成了復(fù)雜的計算機視覺,通常與卷積神經(jīng)網(wǎng)
    的頭像 發(fā)表于 05-16 14:37 ?625次閱讀
    利用邊緣<b class='flag-5'>計算</b>和<b class='flag-5'>工業(yè)計算機</b>實現(xiàn)智能視頻分析

    文帶你了解工業(yè)計算機尺寸

    項艱巨的任務(wù)。本博客將指導(dǎo)您了解關(guān)鍵的工業(yè)計算機尺寸、使用案例。關(guān)鍵工業(yè)計算機外形要素及其使用案例、工業(yè)微型PC尺寸范圍:寬度:100毫
    的頭像 發(fā)表于 04-24 13:35 ?782次閱讀
    <b class='flag-5'>一</b>文帶你了解<b class='flag-5'>工業(yè)計算機</b>尺寸

    Quantinuum“Reimei”量子計算機RIKEN正式運行

    )成功安裝并全面投入運行。 此次合作中,RIKEN為“Reimei”量子計算機提供了世界級的基礎(chǔ)設(shè)施,包括為其量身定制的設(shè)計、準(zhǔn)備及交付工作。這里程碑式的成就不僅標(biāo)志著Quantinuum量子
    的頭像 發(fā)表于 02-17 10:21 ?775次閱讀

    AR和VR中的計算機視覺

    ):計算機視覺引領(lǐng)混合現(xiàn)實體驗增強現(xiàn)實(AR)和虛擬現(xiàn)實(VR)正在徹底改變我們與外部世界的互動方式。即便是引人入勝的沉浸式
    的頭像 發(fā)表于 02-08 14:29 ?2110次閱讀
    AR和VR中的<b class='flag-5'>計算機</b><b class='flag-5'>視覺</b>

    工業(yè)計算機的定義與重要性

    運行。隨著現(xiàn)代產(chǎn)業(yè)向智能化、自動化和數(shù)據(jù)化的轉(zhuǎn)型,工業(yè)計算機制造業(yè)、交通運輸、能源、電信等多個領(lǐng)域中扮演著越來越重要的角色。工業(yè)計算機的廣闊應(yīng)用促進了生產(chǎn)效率的提
    的頭像 發(fā)表于 12-25 15:11 ?969次閱讀
    <b class='flag-5'>工業(yè)計算機</b>的定義與重要性

    云端超級計算機使用教程

    云端超級計算機種基于云計算的高性能計算服務(wù),它將大量計算資源和存儲資源集中在起,通過網(wǎng)絡(luò)向
    的頭像 發(fā)表于 12-17 10:19 ?919次閱讀