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

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

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

如何應(yīng)用Anomalib在數(shù)據(jù)集不平衡的情況下檢測(cè)缺陷?

SDNLAB ? 來源:英特爾物聯(lián)網(wǎng) ? 2023-04-03 17:48 ? 次閱讀

當(dāng)您想進(jìn)行自動(dòng)缺陷檢測(cè),但數(shù)據(jù)集不平衡時(shí),Anomalib 是一個(gè)很好的工具。

在這個(gè)示例中,我們將介紹一個(gè)令人振奮的 Dobot 機(jī)器人工業(yè)用例,其中的機(jī)械臂用于教育、工業(yè)和智能用例中。如果您沒有可用的 Dobot 機(jī)器人,您可以簡(jiǎn)單地修改 notebook,避開、注釋或改變機(jī)器人代碼,使其為您所用。

讓我們開始吧

為了解 Anomalib 的工作原理,我們將看一個(gè)檢查彩色立方體的生產(chǎn)線。其中一些立方體會(huì)有洞或缺陷,需要從傳送帶上取下。由于這些缺陷在生產(chǎn)線上并不常見,我們將為我們的 AI 模型拍攝一些圖像。

安裝:

按照以下步驟使用源文件安裝 Anomalib:

1.使用 Python 3.8 版本創(chuàng)建運(yùn)行 Anomalib + Dobot DLL 的環(huán)境

對(duì)于 Windows,使用以下代碼:

python -m venv anomalib_env

anomalib_envScriptsactivate

對(duì)于 Ubuntu:

python3 -m venv anomalib_env

source anomalib_env/bin/activate

2.從 GitHub 存儲(chǔ)庫(kù)中安裝 Anomalib 及 OpenVINO 要求(在這篇博文中,我們將不使用 pip 安裝命令):

python –m pip install –upgrade pip wheel setuptools

cd anomalib

pip install -e . [openvino]

3.安裝 Jupyter Lab 或 Jupyter Notebook:

pip install notebook

pip install ipywidgets

4.然后連接您的 USB 攝像頭,使用簡(jiǎn)單的攝像頭應(yīng)用驗(yàn)證它在正常工作。然后,關(guān)閉該應(yīng)用。

可選:如果您可以訪問 Dobot,請(qǐng)實(shí)施以下步驟:

1.安裝 Dobot 要求。

2.檢查 Dobot 的所有連接狀態(tài),并使用 Dobot Studio 驗(yàn)證它在正常工作。

3.將通風(fēng)配件安裝在 Dobot 上,并使用 Dobot Studio 驗(yàn)證它在正常工作。

4.在 Dobot Studio(圖 2)中,點(diǎn)擊“Home”按鈕,找到:

校準(zhǔn)坐標(biāo):立方體陣列的左上角初始位置。

位置坐標(biāo):機(jī)械臂應(yīng)將立方體放在傳送帶上方的位置。

異常坐標(biāo):釋放異常立方體的位置。

然后在 notebook 中替換這些坐標(biāo)。

5.如需使用機(jī)器人運(yùn)行 notebook,從這里下載 Dobot API 和驅(qū)動(dòng)程序文件,并將它們添加到存儲(chǔ)庫(kù) Anomalib 文件夾的 notebooks/500_uses_cases/dobot 中。

d7a4bfcc-cee3-11ed-bfe3-dac502259ad0.png

|圖 2:Dobot Studio 界面。

注:如果沒有機(jī)器人,您可以轉(zhuǎn)到另一個(gè) notebook,如 501b notebook,通過這個(gè)鏈接下載數(shù)據(jù)集,并在那里嘗試訓(xùn)練和推理。

01

Notebook 的數(shù)據(jù)采集和推理

下面,我們需要使用正常的數(shù)據(jù)集創(chuàng)建文件夾。在這個(gè)示例中,我們創(chuàng)建了一個(gè)彩色立方體的數(shù)據(jù)集,并為異常情況添加一個(gè)黑色圓圈貼紙,以模擬盒子上的洞或缺陷(圖 3)。對(duì)于數(shù)據(jù)采集和推理,我們將使用 501a notebook。

d7e3d928-cee3-11ed-bfe3-dac502259ad0.png

|圖 3:用于第一輪訓(xùn)練的數(shù)據(jù)集。

在采集數(shù)據(jù)時(shí),請(qǐng)務(wù)必將 acquisition 變量設(shè)置 為 True 來運(yùn)行notebook,并為沒有異常的數(shù)據(jù)定義“正?!蔽募A,為異常圖像定義“異?!蔽募A。數(shù)據(jù)集將直接在 Anomalib 克隆的文件夾中創(chuàng)建,所以我們將看到 Anomalib/dataset/cubes 文件夾。

如果您沒有機(jī)器人,您可以修改代碼以保存圖像或使用下載的數(shù)據(jù)集進(jìn)行訓(xùn)練。

推理:

對(duì)于推理,acquisition 變量應(yīng)該是 False,我們不會(huì)保存任何圖像。我們將讀取采集到的視頻幀,使用 OpenVINO 運(yùn)行推理,并決定放置立方體的位置:對(duì)于正常立方體,放置在傳送帶上;對(duì)于異常立方體,放置在傳送帶外。

我們需要識(shí)別采集標(biāo)記 — 采集模式為 True,推理模式為 False。在采集模式下,要注意是創(chuàng)建正常還是異常文件夾。例如,在采集模式下,notebook 會(huì)將每張圖像保存在 anomalib/datasets/cubes/{FOLDER} 中,以便進(jìn)一步訓(xùn)練。在推理模式下,notebook 不會(huì)保存圖像;它將運(yùn)行推理并顯示結(jié)果。

訓(xùn)練:

對(duì)于訓(xùn)練,我們將使用 501b notebook。在這個(gè) notebook 中,我們將使用 PyTorch Lighting,并使用“Padim”模型進(jìn)行訓(xùn)練。這種模型有幾個(gè)優(yōu)點(diǎn):我們不需要 GPU,只用 CPU 就可以完成訓(xùn)練過程,而且訓(xùn)練速度也很快。

現(xiàn)在,讓我們深入了解一下訓(xùn)練 notebook!

02

導(dǎo)入

在這一部分,我們將解釋用于該示例的軟件包。我們還將從 Anomalib 庫(kù)中調(diào)用需要使用的軟件包。

配置:

有兩種方法來配置 Anomalib 模塊,一種是使用配置文件,另一種是使用 API。最簡(jiǎn)單的方法是通過 API 查看該庫(kù)的功能。如果您希望在您的生產(chǎn)系統(tǒng)中實(shí)施 Anomalib,請(qǐng)使用配置文件 YAML 文件,它是核心訓(xùn)練與測(cè)試進(jìn)程,包含數(shù)據(jù)集、模型、試驗(yàn)和回調(diào)管理(圖 4)。

在接下來的部分,我們將描述如何使用 API 配置您的訓(xùn)練。

d838d310-cee3-11ed-bfe3-dac502259ad0.png

|圖 4:訓(xùn)練和驗(yàn)證模塊。

數(shù)據(jù)集管理器:

通過 API,我們可以修改數(shù)據(jù)集模塊。我們將準(zhǔn)備數(shù)據(jù)集路徑、格式、圖像大小、批量大小和任務(wù)類型。然后,我們使用以下代碼將數(shù)據(jù)加載到管道中。

i, data = next(enumerate(datamodule.val_dataloader()))

模型管理器:

對(duì)于異常檢測(cè)模型,我們使用 Padim,您也可以使用其他 Anomalib 模型,如:CFlow、CS-Flow、DFKDE、DFM、DRAEM、FastFlow、Ganomaly Patchcore、Reverse Distillation 和 STFPM。此外,我們使用 API 設(shè)置了模型管理器;使用 anomalib.models 導(dǎo)入 Padim。

回調(diào)(Callbacks)管理器:

為了適當(dāng)?shù)赜?xùn)練模型,我們需要添加一些其他的“非基礎(chǔ)”邏輯,如保存權(quán)重、盡早終止、以異常分?jǐn)?shù)為基準(zhǔn)以及將輸入/輸出圖像可視化。為了實(shí)現(xiàn)這些,我們使用回調(diào)Callbacks。Anomalib 有自己的Callbacks,并支持 PyTorch Lightning 的本地callbacks。通過該代碼,我們將創(chuàng)建在訓(xùn)練期間執(zhí)行的回調(diào)列表。

訓(xùn)練:

在設(shè)置數(shù)據(jù)模塊、模型和callbacks之后,我們可以訓(xùn)練模型了。訓(xùn)練模型所需的最后一個(gè)組件是 pytorch_lightning Trainer 對(duì)象,它可處理訓(xùn)練、測(cè)試和預(yù)測(cè)管道。復(fù)制鏈接,查看 notebook 中的 Trainer 對(duì)象示例。

驗(yàn)證:

我們使用 OpenVINO 推理進(jìn)行驗(yàn)證。在之前的導(dǎo)入部分,我們導(dǎo)入了 anomalib.deploy 模塊中的 OpenVINOInferencer?,F(xiàn)在,我們將用它來運(yùn)行推理并檢查結(jié)果。首先,我們需要檢查 OpenVINO 模型是否在結(jié)果文件夾中。

預(yù)測(cè)結(jié)果:

為了實(shí)施推理,我們需要從 OpenVINOinference(我們可在其中設(shè)置 OpenVINO 模型及其元數(shù)據(jù))中調(diào)用 predict 方法,并確定需要使用的設(shè)備:

predictions = inferencer.predict(image=image)

預(yù)測(cè)包含與結(jié)果有關(guān)的各種信息:原始圖像、預(yù)測(cè)分?jǐn)?shù)、異常圖、熱圖圖像、預(yù)測(cè)掩碼和分割結(jié)果(圖 5)。根據(jù)您要選擇的任務(wù)類型,您可能需要更多信息。

d84f324a-cee3-11ed-bfe3-dac502259ad0.png

|圖 5:預(yù)測(cè)結(jié)果

最后,我們采用 Dobot 機(jī)器人的缺陷檢測(cè)用例基本是這樣的。

03

使用您自己的數(shù)據(jù)集的技巧和建議

數(shù)據(jù)集轉(zhuǎn)換:

如果您想提高模型的準(zhǔn)確性,您可以在您的訓(xùn)練管道中應(yīng)用數(shù)據(jù)轉(zhuǎn)換。您應(yīng)該在 config.yaml 的 dataset.transform_config 部分提供增強(qiáng)配置文件的路徑。這意味著您需要有一個(gè)用于 Anomalib 設(shè)置的 config.yaml 文件,以及一個(gè)可供 Anomalib config yaml 文件使用的單獨(dú) albumentations_config.yaml 文件。

強(qiáng)大的模型:

異常檢測(cè)庫(kù)并非無所不能,在碰到麻煩的數(shù)據(jù)集時(shí)也可能會(huì)失效。好消息是:您可以嘗試 13 個(gè)不同的模型,并能對(duì)每個(gè)實(shí)驗(yàn)的結(jié)果進(jìn)行基準(zhǔn)測(cè)試。您可以將基準(zhǔn)測(cè)試入口點(diǎn)腳本用于其中,并將配置文件用于基準(zhǔn)測(cè)試目的。這將幫助您為實(shí)際用例選擇最佳模型。






審核編輯:劉清

聲明:本文內(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)投訴
  • 機(jī)器人
    +關(guān)注

    關(guān)注

    210

    文章

    28133

    瀏覽量

    205927
  • dll
    dll
    +關(guān)注

    關(guān)注

    0

    文章

    115

    瀏覽量

    45352
  • python
    +關(guān)注

    關(guān)注

    55

    文章

    4776

    瀏覽量

    84390
  • Ubuntu系統(tǒng)
    +關(guān)注

    關(guān)注

    0

    文章

    85

    瀏覽量

    3898

原文標(biāo)題:如何應(yīng)用Anomalib在數(shù)據(jù)集不平衡的情況下檢測(cè)缺陷?-- 下篇

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

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    電容器不平衡保護(hù)動(dòng)作原因分析

    電容器不平衡保護(hù)動(dòng)作的原因多種多樣,主要包括以下幾個(gè)方面: 1. 電容器組內(nèi)部故障 電容量不平衡 :電容器組中的電容器由于老化、損壞或制造差異,可能導(dǎo)致三相電容量不平衡。當(dāng)三相之間電容值差異較大
    的頭像 發(fā)表于 09-20 15:43 ?566次閱讀

    LCR測(cè)試儀如何測(cè)量不平衡度?

    在電路設(shè)計(jì)和維修中,了解電路元件的特性是非常重要的。LCR測(cè)試儀就是一種常用的檢測(cè)儀器,它可以測(cè)量電感(L)、電容(C)和電阻(R)的參數(shù)。其中,測(cè)量不平衡度是LCR測(cè)試儀的一項(xiàng)重要功能。那么
    的頭像 發(fā)表于 08-26 16:49 ?269次閱讀
    LCR測(cè)試儀如何測(cè)量<b class='flag-5'>不平衡</b>度?

    三相電流不平衡對(duì)電壓影響大嗎

    都會(huì)產(chǎn)生影響。 三相電流不平衡的定義 三相電流不平衡是指在三相交流電力系統(tǒng)中,三個(gè)相的電流幅值不相等,或者電流相位存在差異。理想情況下,三相電流的幅值和相位應(yīng)該完全相同,這樣才能保證電力系統(tǒng)的穩(wěn)定運(yùn)行。然而,在實(shí)際應(yīng)
    的頭像 發(fā)表于 07-25 16:28 ?872次閱讀

    不平衡電流和零序電流的區(qū)別是什么

    電流的幅值或相位存在差異的電流。在理想情況下,三相電流應(yīng)該是完全平衡的,即三相電流的幅值和相位都相等。然而,在實(shí)際應(yīng)用中,由于負(fù)載的不對(duì)稱性或系統(tǒng)元件的故障,三相電流往往會(huì)出現(xiàn)不平衡現(xiàn)象。 零序電流 是指在三相電
    的頭像 發(fā)表于 07-25 16:24 ?962次閱讀

    三相電流不平衡會(huì)產(chǎn)生零序電流嗎

    、三相電流不平衡的概念 三相電流不平衡是指在三相交流電力系統(tǒng)中,三相電流的大小或相位存在差異。在理想情況下,三相電流應(yīng)該是大小相等、相位相差120度的正弦波形。但在實(shí)際應(yīng)用中,由于負(fù)載的不對(duì)稱性、系統(tǒng)元件的故障、
    的頭像 發(fā)表于 07-25 16:22 ?850次閱讀

    軟啟動(dòng)三相不平衡的解決辦法有哪些

    軟啟動(dòng)三相不平衡是指在軟啟動(dòng)過程中,三相電動(dòng)機(jī)的電流不平衡,導(dǎo)致電動(dòng)機(jī)的運(yùn)行效率降低,甚至可能引發(fā)電動(dòng)機(jī)的損壞。針對(duì)這個(gè)問題,我們可以從多個(gè)方面進(jìn)行解決。 一、軟啟動(dòng)三相不平衡的原因分析 電源電壓
    的頭像 發(fā)表于 07-02 09:40 ?2028次閱讀

    軟啟動(dòng)報(bào)三相電流不平衡怎么處理

    軟啟動(dòng)器是一種用于電動(dòng)機(jī)啟動(dòng)的電氣設(shè)備,它可以有效地降低電動(dòng)機(jī)啟動(dòng)時(shí)的電流沖擊,減少對(duì)電網(wǎng)和電動(dòng)機(jī)的影響。然而,在實(shí)際應(yīng)用中,軟啟動(dòng)器有時(shí)會(huì)出現(xiàn)三相電流不平衡的問題,這會(huì)對(duì)電動(dòng)機(jī)的正常運(yùn)行和軟啟動(dòng)
    的頭像 發(fā)表于 06-18 11:44 ?3721次閱讀

    三相四線負(fù)荷不平衡影響計(jì)量嗎為什么

    三相四線負(fù)荷不平衡是指三相電源接線不平衡導(dǎo)致三相電流不相等的情況。負(fù)荷不平衡會(huì)對(duì)電力計(jì)量產(chǎn)生一定的影響,包括電能計(jì)量的準(zhǔn)確性以及電力系統(tǒng)的穩(wěn)定性。下面將詳細(xì)介紹三相四線負(fù)荷
    的頭像 發(fā)表于 03-29 15:50 ?2020次閱讀

    三相不平衡會(huì)造成零線帶電嗎為什么

    三相不平衡是指三個(gè)相位的電壓或電流不均衡。當(dāng)三相不平衡存在時(shí),會(huì)導(dǎo)致零線帶電的情況發(fā)生。本文將詳細(xì)解釋三相不平衡對(duì)零線帶電的原因,并對(duì)可能引發(fā)的問題進(jìn)行分析。 首先,我們需要了解三相供
    的頭像 發(fā)表于 03-28 09:13 ?4826次閱讀

    三相不平衡調(diào)節(jié)裝置 三相不平衡會(huì)造成什么后果

    廣泛應(yīng)用于電力輸配、工業(yè)生產(chǎn)等領(lǐng)域,在正常情況下,各相電壓和電流應(yīng)保持平衡。然而,由于各種原因,比如負(fù)載的不均衡分布、電源不平衡等,三相電壓和電流可能會(huì)不平衡。三相
    的頭像 發(fā)表于 02-06 10:14 ?1708次閱讀

    三相不平衡最佳解決辦法 三相不平衡多少范圍內(nèi)是合理的

    電力系統(tǒng)的穩(wěn)定運(yùn)行和設(shè)備的正常工作非常重要。本文將介紹一些解決三相不平衡的最佳方法。 檢測(cè)和監(jiān)測(cè)三相不平衡 解決三相不平衡的第一步是檢測(cè)和監(jiān)
    的頭像 發(fā)表于 02-06 10:07 ?2854次閱讀

    三相電流不平衡是指什么?三相電流不平衡允許范圍是多少

    三相電流不平衡是指什么?三相電流不平衡允許范圍是多少? 三相電流不平衡是指三相電路中三個(gè)相位電流的大小不相等或相位角不相等的情況。在理想的三相電路中,三個(gè)相位電流應(yīng)當(dāng)相等,相位角差12
    的頭像 發(fā)表于 02-02 17:34 ?7624次閱讀

    AD9288輸出不平衡跟Vref有關(guān)系嗎?

    最近在用AD9288作為采樣芯片,發(fā)現(xiàn)很奇怪的問題,同樣的信號(hào)幅度輸入,兩路AD采樣數(shù)值不一樣,一路基本平衡,另一路不平衡比較嚴(yán)重,采樣值-91~+100;另一塊同樣的PCB板,兩路都不平衡,比如
    發(fā)表于 12-15 06:24

    三相電壓不平衡對(duì)電路的影響

    對(duì)電路的影響主要包括以下幾個(gè)方面: 1. 功率損失:在三相電壓不平衡情況下,電力系統(tǒng)中的三相負(fù)載也會(huì)出現(xiàn)不平衡,導(dǎo)致三相電流不平衡。不平衡
    的頭像 發(fā)表于 12-11 17:16 ?2336次閱讀

    天線與饋線匹配中的平衡不平衡以及造成的影響解析

    天線與饋線匹配中的平衡不平衡以及造成的影響解析? 天線與饋線的匹配是無線電通信中非常重要的一環(huán)。平衡不平衡是兩種不同的天線與饋線匹配方式,它們對(duì)通信系統(tǒng)的性能有著不同的影響。 所謂
    的頭像 發(fā)表于 11-28 14:28 ?1551次閱讀