<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

深度學習在工業缺陷檢測中的應用

新機器視覺 ? 來源:稀土掘金技術社區 ? 2023-10-24 09:29 ? 次閱讀

基于深度學習工業缺陷檢測技術

工業制造領域中,產品質量的保證是至關重要的任務之一。然而,人工的檢測方法不僅費時費力,而且容易受到主觀因素的影響,從而降低了檢測的準確性和一致性。近年來,基于深度學習的技術在工業缺陷檢測領域取得了顯著的突破,其憑借其出色的特征學習和自動化能力,逐漸成為工業缺陷檢測的熱門方向。

深度學習在工業缺陷檢測中的應用

深度學習是一種模仿人腦神經網絡結構和工作方式的機器學習方法。在工業缺陷檢測中,深度學習技術可以通過訓練模型從圖像、視頻傳感器數據中自動學習特征,并進行高效的缺陷檢測。

卷積神經網絡(CNN)

卷積神經網絡是深度學習中應用廣泛的一種網絡結構,特別適合處理圖像數據。在工業缺陷檢測中,可以使用卷積神經網絡來識別產品表面的缺陷,例如裂紋、瑕疵等。
基于TensorFlow和Keras的卷積神經網絡:

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

# 構建卷積神經網絡模型
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

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

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

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

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


物體檢測與分割

在工業場景中,不僅需要檢測缺陷的存在,還需要確定缺陷的位置和范圍。物體檢測和分割技術可以幫助實現這一目標。常用的方法包括基于區域的CNN(R-CNN)、快速R-CNN、更快的R-CNN(Faster R-CNN)以及Mask R-CNN等。

生成對抗網絡(GAN)

生成對抗網絡是一種由生成器和判別器組成的結構,可以用于合成逼真的圖像。在工業缺陷檢測中,可以使用生成對抗網絡生成大量包含缺陷的合成圖像,從而提升模型的魯棒性和泛化能力。

bd663db0-7182-11ee-939d-92fbcf53809c.png
數據增強與遷移學習

由于工業缺陷圖像數量有限,數據增強和遷移學習成為提升模型性能的重要手段。數據增強可以通過對圖像進行隨機旋轉、翻轉、縮放等操作來擴充數據集。遷移學習則可以將在大規模數據集上預訓練的模型應用于工業缺陷檢測任務中,從而加速模型的訓練和提升性能。

使用預訓練的VGG16模型來進行圖像分類

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

# 加載預訓練的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)

# 使用預訓練模型進行預測
features = base_model.predict(img_array)

# 進行預測結果解碼
decoded_predictions = decode_predictions(features)

# 打印預測結果
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

# 數據準備
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')

# 構建模型
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'])

# 訓練模型
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)

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

我們使用了VGG16作為基礎模型,對其頂部進行了定制,以適應工業缺陷檢測任務。數據增強技術有助于增加模型的泛化能力。最后,模型通過在驗證集上進行評估來檢查其性能。

bd852536-7182-11ee-939d-92fbcf53809c.png
數據集與預處理

在工業缺陷檢測任務中,構建高質量的數據集至關重要。數據集應該包含正常產品和不同類型的缺陷圖像。為了訓練一個有效的深度學習模型,需要足夠多的數據以覆蓋不同場景和缺陷類型。

數據預處理也是一個關鍵步驟。常見的預處理操作包括圖像大小調整、歸一化、數據增強等。歸一化可以將圖像的像素值映射到一個較小的范圍,例如[0, 1]。數據增強可以通過隨機變換來擴充數據集,從而提升模型的泛化能力。

模型選擇與調優

在工業缺陷檢測任務中,模型的選擇取決于問題的復雜性和數據集的規模。如果數據集較小,可以考慮使用預訓練的卷積神經網絡(如VGG16、ResNet等)作為基礎模型,并對其頂部進行微調。如果數據集較大,也可以嘗試更深層次的網絡結構或使用更先進的架構。

模型的調優是一個迭代的過程,需要通過不斷調整超參數(如學習率、批量大小、優化器等)來優化模型性能。同時,監控訓練和驗證集上的性能指標,避免過擬合。

實時推理與部署

一旦訓練好的模型達到了滿意的性能,就可以將其部署到實際環境中進行實時推理。部署可以在嵌入式設備、服務器或云平臺上進行。對于實時推理,模型的速度和資源消耗變得尤為重要。因此,在部署之前,可能需要對模型進行優化,以減小模型的體積和加速推理過程。

持續改進與自動化

工業缺陷檢測是一個動態的任務,不同類型的缺陷可能會隨著時間的推移而變化。因此,持續監控和改進模型是必要的。定期收集新數據并對模型進行再訓練,以保持其準確性。同時,也可以考慮使用自動化方法,如自動超參數調整,來提高模型的性能。

結論

基于深度學習的工業缺陷檢測技術正以其強大的特征學習和自動化能力,在工業制造領域展現出巨大的潛力。通過選擇合適的模型架構、構建高質量的數據集、進行數據預處理、持續改進和自動化等步驟,可以實現高效、準確的工業缺陷檢測系統。隨著技術的不斷發展,我們可以期待在工業缺陷檢測領域取得更多的突破和進步。

來源:稀土掘金技術社區

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 缺陷檢測
    +關注

    關注

    2

    文章

    133

    瀏覽量

    12090
  • 工業制造
    +關注

    關注

    0

    文章

    381

    瀏覽量

    27935
  • 深度學習
    +關注

    關注

    73

    文章

    5250

    瀏覽量

    120019
  • 卷積神經網絡

    關注

    4

    文章

    285

    瀏覽量

    11739

原文標題:機器視覺-深度學習在工業缺陷檢測中的應用:從數據到部署實戰

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

收藏 人收藏

    評論

    相關推薦

    缺陷檢測工業生產中的應用

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

    LabVIEW自帶深度學習,凍結Tensorflow完成深度學習。資料下載

    本帖最后由 wcl86 于 2021-5-14 15:26 編輯 概述這個例子演示了Vision開發模塊中使用Model Importer API來使用深度學習缺陷檢查應用程
    發表于 07-29 17:41

    全網唯一一套labview深度學習教程:tensorflow+目標檢測:龍哥教你學視覺—LabVIEW深度學習教程

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

    labview缺陷檢測算法寫不出來?你OUT了!直接上深度學習吧!

    傳統視覺對于缺陷檢測有先天性的不足,當缺陷區域與正常區域灰度接近,沒有明確的邊界曲線時,往往無法將缺陷檢測出來,而
    發表于 08-16 17:29

    labview深度學習應用于缺陷檢測

    標注產品后通過訓練平臺完成模型訓練經過少量樣品訓練得到測試結果,表明深度學習對傳統視覺算法比較棘手的缺陷檢測方面,能簡單粗暴的解決問題,后續就是增加
    發表于 08-16 18:12

    labview+yolov4+tensorflow+openvion深度學習

    的網絡結構。當然,深度學習的方法用來檢測,也有自己的很多缺點。例如:數據量要求大,工業數據收集成本高。但是隨著數據增強技術,無監督學習的不斷
    發表于 05-10 22:33

    labview深度學習檢測藥品兩類缺陷

    ` 本帖最后由 wcl86 于 2021-5-28 19:37 編輯 通過labview深度學習標注工具對樣本進行標注,兩類NG進行標注,標注完成后擴展樣本數量級,以少量樣本獲得較好的標注訓練
    發表于 05-27 22:25

    深度學習預測和健康管理的應用

    方法方面的最新進展,目的是發現研究差距并提出進一步的改進建議。簡要介紹了幾種深度學習模型之后,我們回顧并分析了使用深度學習進行故障
    發表于 07-12 06:46

    labview深度學習PCB插件光學檢測

    `labview檢測PCBA插件的錯、漏、反等缺陷的應用檢測原理通過高精度彩色工業相機不停板
    發表于 07-13 15:27

    基于深度學習和3D圖像處理的精密加工件外觀缺陷檢測系統

    缺陷空間,共同識別檢測缺陷,增加缺陷識別檢測的準確性; 創新點二:實際
    發表于 03-08 13:59

    基于深度學習工業缺陷檢測方法

    基于深度學習工業缺陷檢測方法可以降低傳統人工質檢的成本, 提升檢測的準確性與效率, 因而在智能
    的頭像 發表于 07-30 14:41 ?2329次閱讀

    基于深度學習的焊接焊點缺陷檢測

    深度學習主要包含卷積神經網絡和Faster R-CNN兩種網絡模型,通過利用算法模型自動學習的特點,不再受限于復雜多變的環境,可自動提取缺陷特征,最終實現自動
    的頭像 發表于 10-19 15:08 ?2023次閱讀

    一文梳理缺陷檢測深度學習和傳統方法

    但由于缺陷多種多樣,傳統的機器視覺算法很難做到對缺陷特征完整的建模和遷移,所以越來越多的學者和工程人員開始將深度學習算法引入到缺陷
    的頭像 發表于 02-13 15:39 ?950次閱讀

    基于GAN的零缺陷樣本產品表面缺陷檢測

    缺陷檢測工業生產過程中的關鍵環節,其檢測結果的好壞直接影響著產品的質量。而在現實場景中,但產品瑕疵率非常低,甚至是沒有,缺陷樣本的不充足使
    的頭像 發表于 06-26 09:49 ?694次閱讀
    基于GAN的零<b class='flag-5'>缺陷</b>樣本產品表面<b class='flag-5'>缺陷</b><b class='flag-5'>檢測</b>

    瑞薩電子深度學習算法在缺陷檢測領域的應用

    浪費大量的人力成本。因此,越來越多的工程師開始將深度學習算法引入缺陷檢測領域,因為深度學習在特征
    的頭像 發表于 09-22 12:19 ?525次閱讀
    瑞薩電子<b class='flag-5'>深度</b><b class='flag-5'>學習</b>算法在<b class='flag-5'>缺陷</b><b class='flag-5'>檢測</b>領域的應用
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>