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

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

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

深度學(xué)習(xí)在工業(yè)缺陷檢測(cè)中的應(yīng)用

新機(jī)器視覺 ? 來源:稀土掘金技術(shù)社區(qū) ? 2023-10-24 09:29 ? 次閱讀

基于深度學(xué)習(xí)工業(yè)缺陷檢測(cè)技術(shù)

工業(yè)制造領(lǐng)域中,產(chǎn)品質(zhì)量的保證是至關(guān)重要的任務(wù)之一。然而,人工的檢測(cè)方法不僅費(fèi)時(shí)費(fèi)力,而且容易受到主觀因素的影響,從而降低了檢測(cè)的準(zhǔn)確性和一致性。近年來,基于深度學(xué)習(xí)的技術(shù)在工業(yè)缺陷檢測(cè)領(lǐng)域取得了顯著的突破,其憑借其出色的特征學(xué)習(xí)和自動(dòng)化能力,逐漸成為工業(yè)缺陷檢測(cè)的熱門方向。

深度學(xué)習(xí)在工業(yè)缺陷檢測(cè)中的應(yīng)用

深度學(xué)習(xí)是一種模仿人腦神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)和工作方式的機(jī)器學(xué)習(xí)方法。在工業(yè)缺陷檢測(cè)中,深度學(xué)習(xí)技術(shù)可以通過訓(xùn)練模型從圖像、視頻傳感器數(shù)據(jù)中自動(dòng)學(xué)習(xí)特征,并進(jìn)行高效的缺陷檢測(cè)。

卷積神經(jīng)網(wǎng)絡(luò)(CNN)

卷積神經(jīng)網(wǎng)絡(luò)是深度學(xué)習(xí)中應(yīng)用廣泛的一種網(wǎng)絡(luò)結(jié)構(gòu),特別適合處理圖像數(shù)據(jù)。在工業(yè)缺陷檢測(cè)中,可以使用卷積神經(jīng)網(wǎng)絡(luò)來識(shí)別產(chǎn)品表面的缺陷,例如裂紋、瑕疵等。
基于TensorFlow和Keras的卷積神經(jīng)網(wǎng)絡(luò):

import tensorflow as tf
from tensorflow.keras import layers, models

# 構(gòu)建卷積神經(jīng)網(wǎng)絡(luò)模型
def build_cnn_model(input_shape, num_classes):
    model = models.Sequential()
    model.add(layers.Conv2D(32, (3, 3), activation='relu', input_shape=input_shape))
    model.add(layers.MaxPooling2D((2, 2)))
    model.add(layers.Conv2D(64, (3, 3), activation='relu'))
    model.add(layers.MaxPooling2D((2, 2)))
    model.add(layers.Conv2D(128, (3, 3), activation='relu'))
    model.add(layers.Flatten())
    model.add(layers.Dense(128, activation='relu'))
    model.add(layers.Dense(num_classes, activation='softmax'))
    return model

# 定義輸入數(shù)據(jù)形狀和類別數(shù)量
input_shape = (224, 224, 3)  # 假設(shè)圖像大小為224x224,3個(gè)顏色通道
num_classes = 2  # 兩類:正常和缺陷

# 構(gòu)建模型
model = build_cnn_model(input_shape, num_classes)

# 編譯模型
model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])

# 打印模型摘要
model.summary()


物體檢測(cè)與分割

在工業(yè)場(chǎng)景中,不僅需要檢測(cè)缺陷的存在,還需要確定缺陷的位置和范圍。物體檢測(cè)和分割技術(shù)可以幫助實(shí)現(xiàn)這一目標(biāo)。常用的方法包括基于區(qū)域的CNN(R-CNN)、快速R-CNN、更快的R-CNN(Faster R-CNN)以及Mask R-CNN等。

生成對(duì)抗網(wǎng)絡(luò)(GAN)

生成對(duì)抗網(wǎng)絡(luò)是一種由生成器和判別器組成的結(jié)構(gòu),可以用于合成逼真的圖像。在工業(yè)缺陷檢測(cè)中,可以使用生成對(duì)抗網(wǎng)絡(luò)生成大量包含缺陷的合成圖像,從而提升模型的魯棒性和泛化能力。

bd663db0-7182-11ee-939d-92fbcf53809c.png
數(shù)據(jù)增強(qiáng)與遷移學(xué)習(xí)

由于工業(yè)缺陷圖像數(shù)量有限,數(shù)據(jù)增強(qiáng)和遷移學(xué)習(xí)成為提升模型性能的重要手段。數(shù)據(jù)增強(qiáng)可以通過對(duì)圖像進(jìn)行隨機(jī)旋轉(zhuǎn)、翻轉(zhuǎn)、縮放等操作來擴(kuò)充數(shù)據(jù)集。遷移學(xué)習(xí)則可以將在大規(guī)模數(shù)據(jù)集上預(yù)訓(xùn)練的模型應(yīng)用于工業(yè)缺陷檢測(cè)任務(wù)中,從而加速模型的訓(xùn)練和提升性能。

使用預(yù)訓(xùn)練的VGG16模型來進(jìn)行圖像分類

import tensorflow as tf
from tensorflow.keras.applications import VGG16
from tensorflow.keras.applications.vgg16 import preprocess_input, decode_predictions
from tensorflow.keras.preprocessing import image
import numpy as np

# 加載預(yù)訓(xùn)練的VGG16模型,去掉頂部的全連接層
base_model = VGG16(weights='imagenet', include_top=False)

# 加載一張待分類的圖像
img_path = 'path_to_your_image.jpg'
img = image.load_img(img_path, target_size=(224, 224))
img_array = image.img_to_array(img)
img_array = np.expand_dims(img_array, axis=0)
img_array = preprocess_input(img_array)

# 使用預(yù)訓(xùn)練模型進(jìn)行預(yù)測(cè)
features = base_model.predict(img_array)

# 進(jìn)行預(yù)測(cè)結(jié)果解碼
decoded_predictions = decode_predictions(features)

# 打印預(yù)測(cè)結(jié)果
for i, (imagenet_id, label, score) in enumerate(decoded_predictions[0]):
    print(f"{i + 1}: {label} ({score:.2f})")

基于TensorFlow和Keras:

import tensorflow as tf
from tensorflow.keras.preprocessing.image import ImageDataGenerator
from tensorflow.keras.applications import VGG16
from tensorflow.keras.layers import Dense, GlobalAveragePooling2D
from tensorflow.keras.models import Model

# 數(shù)據(jù)準(zhǔn)備
train_data_dir = 'path_to_train_data'
validation_data_dir = 'path_to_validation_data'
img_height, img_width = 224, 224
batch_size = 32

train_datagen = ImageDataGenerator(
    rescale=1.0/255,
    rotation_range=20,
    width_shift_range=0.2,
    height_shift_range=0.2,
    horizontal_flip=True,
    fill_mode='nearest')

validation_datagen = ImageDataGenerator(rescale=1.0/255)

train_generator = train_datagen.flow_from_directory(
    train_data_dir,
    target_size=(img_height, img_width),
    batch_size=batch_size,
    class_mode='binary')

validation_generator = validation_datagen.flow_from_directory(
    validation_data_dir,
    target_size=(img_height, img_width),
    batch_size=batch_size,
    class_mode='binary')

# 構(gòu)建模型
base_model = VGG16(weights='imagenet', include_top=False, input_shape=(img_height, img_width, 3))

x = base_model.output
x = GlobalAveragePooling2D()(x)
x = Dense(128, activation='relu')(x)
predictions = Dense(1, activation='sigmoid')(x)

model = Model(inputs=base_model.input, outputs=predictions)

# 編譯模型
model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy'])

# 訓(xùn)練模型
epochs = 10
steps_per_epoch = train_generator.n // train_generator.batch_size
validation_steps = validation_generator.n // validation_generator.batch_size

model.fit(train_generator,
          epochs=epochs,
          steps_per_epoch=steps_per_epoch,
          validation_data=validation_generator,
          validation_steps=validation_steps)

# 評(píng)估模型
test_loss, test_acc = model.evaluate(validation_generator, steps=validation_steps)
print(f"Test accuracy: {test_acc}")

我們使用了VGG16作為基礎(chǔ)模型,對(duì)其頂部進(jìn)行了定制,以適應(yīng)工業(yè)缺陷檢測(cè)任務(wù)。數(shù)據(jù)增強(qiáng)技術(shù)有助于增加模型的泛化能力。最后,模型通過在驗(yàn)證集上進(jìn)行評(píng)估來檢查其性能。

bd852536-7182-11ee-939d-92fbcf53809c.png
數(shù)據(jù)集與預(yù)處理

在工業(yè)缺陷檢測(cè)任務(wù)中,構(gòu)建高質(zhì)量的數(shù)據(jù)集至關(guān)重要。數(shù)據(jù)集應(yīng)該包含正常產(chǎn)品和不同類型的缺陷圖像。為了訓(xùn)練一個(gè)有效的深度學(xué)習(xí)模型,需要足夠多的數(shù)據(jù)以覆蓋不同場(chǎng)景和缺陷類型。

數(shù)據(jù)預(yù)處理也是一個(gè)關(guān)鍵步驟。常見的預(yù)處理操作包括圖像大小調(diào)整、歸一化、數(shù)據(jù)增強(qiáng)等。歸一化可以將圖像的像素值映射到一個(gè)較小的范圍,例如[0, 1]。數(shù)據(jù)增強(qiáng)可以通過隨機(jī)變換來擴(kuò)充數(shù)據(jù)集,從而提升模型的泛化能力。

模型選擇與調(diào)優(yōu)

在工業(yè)缺陷檢測(cè)任務(wù)中,模型的選擇取決于問題的復(fù)雜性和數(shù)據(jù)集的規(guī)模。如果數(shù)據(jù)集較小,可以考慮使用預(yù)訓(xùn)練的卷積神經(jīng)網(wǎng)絡(luò)(如VGG16、ResNet等)作為基礎(chǔ)模型,并對(duì)其頂部進(jìn)行微調(diào)。如果數(shù)據(jù)集較大,也可以嘗試更深層次的網(wǎng)絡(luò)結(jié)構(gòu)或使用更先進(jìn)的架構(gòu)。

模型的調(diào)優(yōu)是一個(gè)迭代的過程,需要通過不斷調(diào)整超參數(shù)(如學(xué)習(xí)率、批量大小、優(yōu)化器等)來優(yōu)化模型性能。同時(shí),監(jiān)控訓(xùn)練和驗(yàn)證集上的性能指標(biāo),避免過擬合。

實(shí)時(shí)推理與部署

一旦訓(xùn)練好的模型達(dá)到了滿意的性能,就可以將其部署到實(shí)際環(huán)境中進(jìn)行實(shí)時(shí)推理。部署可以在嵌入式設(shè)備、服務(wù)器或云平臺(tái)上進(jìn)行。對(duì)于實(shí)時(shí)推理,模型的速度和資源消耗變得尤為重要。因此,在部署之前,可能需要對(duì)模型進(jìn)行優(yōu)化,以減小模型的體積和加速推理過程。

持續(xù)改進(jìn)與自動(dòng)化

工業(yè)缺陷檢測(cè)是一個(gè)動(dòng)態(tài)的任務(wù),不同類型的缺陷可能會(huì)隨著時(shí)間的推移而變化。因此,持續(xù)監(jiān)控和改進(jìn)模型是必要的。定期收集新數(shù)據(jù)并對(duì)模型進(jìn)行再訓(xùn)練,以保持其準(zhǔn)確性。同時(shí),也可以考慮使用自動(dòng)化方法,如自動(dòng)超參數(shù)調(diào)整,來提高模型的性能。

結(jié)論

基于深度學(xué)習(xí)的工業(yè)缺陷檢測(cè)技術(shù)正以其強(qiáng)大的特征學(xué)習(xí)和自動(dòng)化能力,在工業(yè)制造領(lǐng)域展現(xiàn)出巨大的潛力。通過選擇合適的模型架構(gòu)、構(gòu)建高質(zhì)量的數(shù)據(jù)集、進(jìn)行數(shù)據(jù)預(yù)處理、持續(xù)改進(jìn)和自動(dòng)化等步驟,可以實(shí)現(xiàn)高效、準(zhǔn)確的工業(yè)缺陷檢測(cè)系統(tǒng)。隨著技術(shù)的不斷發(fā)展,我們可以期待在工業(yè)缺陷檢測(cè)領(lǐng)域取得更多的突破和進(jìn)步。

來源:稀土掘金技術(shù)社區(qū)

審核編輯:湯梓紅

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

原文標(biāo)題:機(jī)器視覺-深度學(xué)習(xí)在工業(yè)缺陷檢測(cè)中的應(yīng)用:從數(shù)據(jù)到部署實(shí)戰(zhàn)

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

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    缺陷檢測(cè)工業(yè)生產(chǎn)中的應(yīng)用

    自己開發(fā)出的SVS系列工業(yè)智能軟件缺陷檢測(cè)的具體應(yīng)用“充電器字符缺陷檢測(cè)系統(tǒng)”為例為大家說明。
    發(fā)表于 11-18 13:48

    全網(wǎng)唯一一套labview深度學(xué)習(xí)教程:tensorflow+目標(biāo)檢測(cè):龍哥教你學(xué)視覺—LabVIEW深度學(xué)習(xí)教程

    。3.2破損缺陷檢測(cè)電氣化鐵路等工業(yè),有許多關(guān)系著安全的重要固件,這些固件的缺陷
    發(fā)表于 08-10 10:38

    labview缺陷檢測(cè)算法寫不出來?你OUT了!直接上深度學(xué)習(xí)吧!

    傳統(tǒng)視覺對(duì)于缺陷檢測(cè)有先天性的不足,當(dāng)缺陷區(qū)域與正常區(qū)域灰度接近,沒有明確的邊界曲線時(shí),往往無法將缺陷檢測(cè)出來,而
    發(fā)表于 08-16 17:29

    labview深度學(xué)習(xí)應(yīng)用于缺陷檢測(cè)

    標(biāo)注產(chǎn)品后通過訓(xùn)練平臺(tái)完成模型訓(xùn)練經(jīng)過少量樣品訓(xùn)練得到測(cè)試結(jié)果,表明深度學(xué)習(xí)對(duì)傳統(tǒng)視覺算法比較棘手的缺陷檢測(cè)方面,能簡(jiǎn)單粗暴的解決問題,后續(xù)就是增加
    發(fā)表于 08-16 18:12

    labview深度學(xué)習(xí)PCB插件光學(xué)檢測(cè)

    `labview檢測(cè)PCBA插件的錯(cuò)、漏、反等缺陷的應(yīng)用檢測(cè)原理通過高精度彩色工業(yè)相機(jī)不停板
    發(fā)表于 07-13 15:27

    基于深度學(xué)習(xí)和3D圖像處理的精密加工件外觀缺陷檢測(cè)系統(tǒng)

    缺陷空間,共同識(shí)別檢測(cè)缺陷,增加缺陷識(shí)別檢測(cè)的準(zhǔn)確性; 創(chuàng)新點(diǎn)二:實(shí)際
    發(fā)表于 03-08 13:59

    關(guān)于正樣本的表面缺陷檢測(cè)

    背? 景 表面缺陷檢測(cè)工業(yè)生產(chǎn)中起著非常重要的作用,基于機(jī)器視覺的表面缺陷檢測(cè)可以極大的提升
    的頭像 發(fā)表于 05-29 10:23 ?3270次閱讀
    關(guān)于正樣本的表面<b class='flag-5'>缺陷</b><b class='flag-5'>檢測(cè)</b>

    基于深度學(xué)習(xí)的小樣本墻壁缺陷目標(biāo)檢測(cè)及分類

    近年來,無需人工干預(yù)的深度學(xué)習(xí)已經(jīng)成為缺陷圖像檢測(cè)與分類的一種主流方法。本文針對(duì)室內(nèi)墻壁缺 陷缺檢測(cè)
    發(fā)表于 04-24 09:44 ?1次下載

    基于深度學(xué)習(xí)工業(yè)缺陷檢測(cè)方法

    基于深度學(xué)習(xí)工業(yè)缺陷檢測(cè)方法可以降低傳統(tǒng)人工質(zhì)檢的成本, 提升檢測(cè)的準(zhǔn)確性與效率, 因而在智能
    的頭像 發(fā)表于 07-30 14:41 ?2602次閱讀

    利用深度學(xué)習(xí)工業(yè)圖像無監(jiān)督異常定位方面的最新成果

    目前,基于深度學(xué)習(xí)的視覺檢測(cè)監(jiān)督學(xué)習(xí)方法的幫助下取得了很大的成功。然而,實(shí)際
    的頭像 發(fā)表于 07-31 11:00 ?2891次閱讀

    基于深度學(xué)習(xí)的焊接焊點(diǎn)缺陷檢測(cè)

    深度學(xué)習(xí)主要包含卷積神經(jīng)網(wǎng)絡(luò)和Faster R-CNN兩種網(wǎng)絡(luò)模型,通過利用算法模型自動(dòng)學(xué)習(xí)的特點(diǎn),不再受限于復(fù)雜多變的環(huán)境,可自動(dòng)提取缺陷特征,最終實(shí)現(xiàn)自動(dòng)
    的頭像 發(fā)表于 10-19 15:08 ?2524次閱讀

    一文梳理缺陷檢測(cè)深度學(xué)習(xí)和傳統(tǒng)方法

    但由于缺陷多種多樣,傳統(tǒng)的機(jī)器視覺算法很難做到對(duì)缺陷特征完整的建模和遷移,所以越來越多的學(xué)者和工程人員開始將深度學(xué)習(xí)算法引入到缺陷
    的頭像 發(fā)表于 02-13 15:39 ?1171次閱讀

    瑞薩電子深度學(xué)習(xí)算法缺陷檢測(cè)領(lǐng)域的應(yīng)用

    浪費(fèi)大量的人力成本。因此,越來越多的工程師開始將深度學(xué)習(xí)算法引入缺陷檢測(cè)領(lǐng)域,因?yàn)?b class='flag-5'>深度學(xué)習(xí)
    的頭像 發(fā)表于 09-22 12:19 ?835次閱讀
    瑞薩電子<b class='flag-5'>深度</b><b class='flag-5'>學(xué)習(xí)</b>算法<b class='flag-5'>在</b><b class='flag-5'>缺陷</b><b class='flag-5'>檢測(cè)</b>領(lǐng)域的應(yīng)用

    基于AI深度學(xué)習(xí)缺陷檢測(cè)系統(tǒng)

    工業(yè)生產(chǎn)中,缺陷檢測(cè)是確保產(chǎn)品質(zhì)量的關(guān)鍵環(huán)節(jié)。傳統(tǒng)的人工檢測(cè)方法不僅效率低下,且易受人為因素影響,導(dǎo)致誤檢和漏檢問題頻發(fā)。隨著人工智能技術(shù)
    的頭像 發(fā)表于 07-08 10:30 ?1066次閱讀

    深度學(xué)習(xí)工業(yè)機(jī)器視覺檢測(cè)的應(yīng)用

    隨著深度學(xué)習(xí)技術(shù)的快速發(fā)展,其工業(yè)機(jī)器視覺檢測(cè)的應(yīng)用日益廣泛,并展現(xiàn)出巨大的潛力。
    的頭像 發(fā)表于 07-08 10:40 ?918次閱讀