TW202240546A - 用於自動視覺檢查之圖像增強技術 - Google Patents
用於自動視覺檢查之圖像增強技術 Download PDFInfo
- Publication number
- TW202240546A TW202240546A TW110144774A TW110144774A TW202240546A TW 202240546 A TW202240546 A TW 202240546A TW 110144774 A TW110144774 A TW 110144774A TW 110144774 A TW110144774 A TW 110144774A TW 202240546 A TW202240546 A TW 202240546A
- Authority
- TW
- Taiwan
- Prior art keywords
- image
- images
- composite
- original
- defect
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 189
- 238000011179 visual inspection Methods 0.000 title claims abstract description 43
- 230000003416 augmentation Effects 0.000 title description 3
- 230000007547 defect Effects 0.000 claims abstract description 354
- 238000012549 training Methods 0.000 claims abstract description 136
- 238000013528 artificial neural network Methods 0.000 claims abstract description 71
- 239000011159 matrix material Substances 0.000 claims description 165
- 239000002131 composite material Substances 0.000 claims description 160
- 230000002950 deficient Effects 0.000 claims description 43
- 230000005499 meniscus Effects 0.000 claims description 33
- 239000012530 fluid Substances 0.000 claims description 24
- 230000008859 change Effects 0.000 claims description 11
- 230000000873 masking effect Effects 0.000 claims description 4
- 238000006467 substitution reaction Methods 0.000 claims 2
- 238000013135 deep learning Methods 0.000 abstract description 17
- 238000011161 development Methods 0.000 abstract description 9
- 238000003908 quality control method Methods 0.000 abstract description 9
- 230000017105 transposition Effects 0.000 abstract description 8
- 238000010200 validation analysis Methods 0.000 abstract description 5
- 239000011521 glass Substances 0.000 description 31
- 230000015654 memory Effects 0.000 description 29
- 238000012545 processing Methods 0.000 description 27
- 238000007689 inspection Methods 0.000 description 24
- 238000012360 testing method Methods 0.000 description 24
- 230000008569 process Effects 0.000 description 23
- 239000007788 liquid Substances 0.000 description 19
- 229940126534 drug product Drugs 0.000 description 13
- 239000000825 pharmaceutical preparation Substances 0.000 description 12
- 230000003190 augmentative effect Effects 0.000 description 11
- 238000013136 deep learning model Methods 0.000 description 10
- 239000004033 plastic Substances 0.000 description 10
- 230000018109 developmental process Effects 0.000 description 8
- 238000011156 evaluation Methods 0.000 description 8
- 239000002245 particle Substances 0.000 description 8
- 238000012800 visualization Methods 0.000 description 8
- 238000004519 manufacturing process Methods 0.000 description 7
- 230000007704 transition Effects 0.000 description 7
- 230000000295 complement effect Effects 0.000 description 5
- 238000001514 detection method Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 5
- 238000003384 imaging method Methods 0.000 description 5
- 230000003993 interaction Effects 0.000 description 5
- 239000000463 material Substances 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 5
- 238000012805 post-processing Methods 0.000 description 5
- 244000309464 bull Species 0.000 description 4
- 230000001364 causal effect Effects 0.000 description 4
- 238000013145 classification model Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000013507 mapping Methods 0.000 description 4
- 239000000203 mixture Substances 0.000 description 4
- 238000007781 pre-processing Methods 0.000 description 4
- 239000000047 product Substances 0.000 description 4
- 230000009466 transformation Effects 0.000 description 4
- 238000013019 agitation Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000002474 experimental method Methods 0.000 description 3
- 239000000835 fiber Substances 0.000 description 3
- 238000013100 final test Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000000844 transformation Methods 0.000 description 3
- 241001292396 Cirrhitidae Species 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 239000012611 container material Substances 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 239000003814 drug Substances 0.000 description 2
- 230000008030 elimination Effects 0.000 description 2
- 238000003379 elimination reaction Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000001747 exhibiting effect Effects 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 238000009499 grossing Methods 0.000 description 2
- 238000003709 image segmentation Methods 0.000 description 2
- 239000002184 metal Substances 0.000 description 2
- 238000011176 pooling Methods 0.000 description 2
- ORILYTVJVMAKLC-UHFFFAOYSA-N Adamantane Natural products C1C(C2)CC3CC1CC2C3 ORILYTVJVMAKLC-UHFFFAOYSA-N 0.000 description 1
- 241001522301 Apogonichthyoides nigripinnis Species 0.000 description 1
- 238000005299 abrasion Methods 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 239000011324 bead Substances 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 239000011248 coating agent Substances 0.000 description 1
- 238000000576 coating method Methods 0.000 description 1
- 235000009508 confectionery Nutrition 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 238000005286 illumination Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000012535 impurity Substances 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 238000012804 iterative process Methods 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 239000002547 new drug Substances 0.000 description 1
- 238000012797 qualification Methods 0.000 description 1
- 238000013442 quality metrics Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000007670 refining Methods 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 238000007493 shaping process Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 239000011343 solid material Substances 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- 238000010183 spectrum analysis Methods 0.000 description 1
- 238000003756 stirring Methods 0.000 description 1
- 238000005309 stochastic process Methods 0.000 description 1
- 239000004575 stone Substances 0.000 description 1
- 238000003860 storage Methods 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- YLJREFDVOIBQDA-UHFFFAOYSA-N tacrine Chemical compound C1=CC=C2C(N)=C(CCCC3)C3=NC2=C1 YLJREFDVOIBQDA-UHFFFAOYSA-N 0.000 description 1
- 229960001685 tacrine Drugs 0.000 description 1
- 239000004753 textile Substances 0.000 description 1
- 238000012384 transportation and delivery Methods 0.000 description 1
- 238000013024 troubleshooting Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/60—Editing figures and text; Combining figures or text
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01N—INVESTIGATING OR ANALYSING MATERIALS BY DETERMINING THEIR CHEMICAL OR PHYSICAL PROPERTIES
- G01N21/00—Investigating or analysing materials by the use of optical means, i.e. using sub-millimetre waves, infrared, visible or ultraviolet light
- G01N21/84—Systems specially adapted for particular applications
- G01N21/88—Investigating the presence of flaws or contamination
- G01N21/90—Investigating the presence of flaws or contamination in a container or its contents
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/60—Rotation of whole images or parts thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/40—Image enhancement or restoration using histogram techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/77—Retouching; Inpainting; Scratch removal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/0002—Inspection of images, e.g. flaw detection
- G06T7/0004—Industrial image inspection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/40—Extraction of image or video features
- G06V10/44—Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20212—Image combination
- G06T2207/20221—Image fusion; Image merging
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Quality & Reliability (AREA)
- Data Mining & Analysis (AREA)
- Immunology (AREA)
- Pathology (AREA)
- Analytical Chemistry (AREA)
- Multimedia (AREA)
- Chemical & Material Sciences (AREA)
- Artificial Intelligence (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Biochemistry (AREA)
- Evolutionary Computation (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Image Analysis (AREA)
- Image Processing (AREA)
- Investigating Materials By The Use Of Optical Means Adapted For Particular Applications (AREA)
- Investigating Or Analysing Biological Materials (AREA)
- Eye Examination Apparatus (AREA)
Abstract
各種技術促進了圖像庫之開發,該圖像庫可以用於訓練和/或驗證自動視覺檢查(AVI)模型,如用於圖像分類的AVI神經網路。在一方面,一種算術轉置演算法用於藉由以像素級真實感將特徵(例如,缺陷)轉置到原始圖像上來從原始圖像生成合成圖像。在其他方面,數位修復技術用於從原始圖像生成逼真的合成圖像。基於深度學習的修復技術可以用於添加、消除和/或修改缺陷或其他描繪的特徵。在又其他方面,品質控制技術用於評估圖像庫用於訓練和/或驗證AVI模型的適用性,和/或評估各個圖像是否適合包括在這樣的庫中。
Description
本申請總體上關於用於製藥或其他應用的自動視覺檢查系統,並且更具體地關於增強在開發、訓練和/或驗證這樣的系統時使用的圖像庫之技術。
在各種背景下,品質控制程序要求仔細檢查樣本是否存在缺陷,並拒絕、丟棄和/或進一步分析表現出缺陷的任何樣本。例如,在製藥背景下,容器(例如,注射器或小瓶)和/或其內容物(例如,流體或凍乾藥物產品)必須在銷售或分銷之前嚴格檢查是否存在缺陷。許多其他行業同樣依靠視覺檢查來確保產品品質或用於其他目的。缺陷檢查任務越來越多地變得自動化(即「自動視覺檢查」或「AVI」),以消除人為錯誤、降低成本和/或減少檢查時間(例如,處置大量藥品或商業生產中的其他物品)。例如,「電腦視覺」或「機器視覺」軟體已用於製藥背景。
最近,深度學習技術已成為一種用於AVI的有前途之工具。然而,該等技術通常需要比傳統AVI系統多得多的圖像來開發、訓練和全面測試模型(例如,神經網路)。此外,穩健的模型性能通常取決於精心設計之圖像集。例如,圖像集應當表現出足夠多樣的條件(例如,示出不同位置中的缺陷,並具有一系列不同的形狀和大小等)。進一步地,如果圖像集導致深度學習模型出於錯誤的原因(例如,基於無關的圖像特徵)做出決策,即使是龐大且多樣化的訓練圖像庫也可能導致AVI性能不佳。在所描繪的缺陷相對於其他(非缺陷)圖像特徵較小或不明顯(bland)的背景或場景中,這可能尤其成問題。
對於深度學習和更傳統的(例如,機器視覺)AVI系統兩者而言,使用樣本圖像庫的開發和鑒定過程應確保假陰性或「誤接受」(即,缺陷被遺漏)以及假陽性或「誤拒絕」(即,缺陷被錯誤識別)在可容忍之閾值內。例如,在某些背景(例如,涉及患者安全的製藥背景)下可能需要零或接近零之假陰性。雖然假陽性可能不太重要,但從經濟方面來看,它們可能導致非常高的成本,並且在開發AVI系統時可能比假陰性更難解決。該等和其他因素會使圖像庫的開發成為一個高度迭代的過程,該過程非常複雜、勞動密集且成本高昂。此外,任何產品線變化(例如,新藥品、新容器、容器內藥品的新填充水平等)或檢查過程本身的變化(例如,不同類型的相機鏡頭、相機定位或照明的變化等)可能不僅需要重新訓練和/或重新鑒定模型,而且(在一些情況下)還需要部分或全部重建圖像庫。
本文描述之實施方式關於自動圖像增強技術,其輔助生成和/或評估用於開發、訓練和/或驗證用於AVI的穩健深度學習模型之圖像庫。特別地,本文揭露之各種圖像增強技術對「原始」圖像應用數位變換,以人為地擴展訓練庫的範圍(例如,用於深度學習AVI應用或用於更傳統的電腦/機器視覺AVI應用)。與先前用於擴展圖像庫的相對簡單的圖像變換(例如,反射、線性縮放和旋轉)不同,本文描述之技術可以促進生成不僅更大和更多樣化而且更平衡和更「具因果關係」的庫,即,更有可能出於正確的原因做出分類/決策,而不會將重心放在無關的圖像特徵上,因此更有可能在廣泛的樣本中提供良好的性能。為了確保因果關係,本文描述之實施方式用於生成大量「群體代表性」合成圖像(即,足以代表要由模型在運行時操作中推斷的圖像之合成圖像)。
在本揭露之一方面,一種新穎之算術轉置演算法用於藉由將特徵轉置到原始圖像上來以像素級真實感從原始圖像生成合成圖像。算術轉置演算法可以用於藉由使用缺陷本身的圖像增強「良好」圖像(即,不描繪缺陷的圖像)來生成合成「缺陷」圖像(即,描繪那些缺陷的圖像)。作為一個示例,該演算法可以使用無缺陷注射器的圖像以及注射器缺陷的圖像來生成具有裂紋、畸形柱塞和/或其他缺陷的注射器之合成圖像。作為另一個示例,該演算法可以使用無缺陷車身部件的圖像以及缺陷的圖像來生成具有缺口、劃痕、凹痕和/或其他缺陷的汽車車身部件的合成圖像。品質控制或其他背景的許多其他應用也是可能的。
在本揭露之其他方面,數位「修復」技術用於從原始圖像生成逼真的合成圖像,以補充用於訓練和/或驗證AVI模型(例如,基於深度學習的AVI模型)之圖像庫。在一個這樣的方面,原始圖像中描繪的缺陷可以藉由以下方式來消除:遮罩原始圖像中的缺陷,計算 (1) 原始圖像的與被遮罩區域相鄰的部分與 (2) 原始圖像的在被遮罩區域之外的其他部分之間的對應關係指標,並基於計算出的指標用人工的、無缺陷的部分填充被遮罩部分。消除圖像中的缺陷的能力可以對訓練圖像庫產生微妙而深遠影響。特別地,在訓練AVI模型時,互補的「良好」和「缺陷」圖像可以連在一起使用,以最大限度地減少背景偏差的影響。
本揭露之其他數位修復技術利用了深度學習,如基於部分卷積的深度學習。該等基於深度學習的修復技術的變體可以用於消除原始圖像中的缺陷、向原始圖像添加缺陷和/或修改原始圖像中的特徵(例如,移動或改變其外觀)。例如,該等技術的變體可以用於消除包含藥物產品的注射器圖像中的裂紋、缺口、纖維、畸形柱塞或其他缺陷,以將這樣的缺陷添加到最初未描繪缺陷的注射器圖像中,或移動或以其他方式修改原始注射器圖像中描繪的彎月面或柱塞。該等基於深度學習的修復技術有助於精心設計訓練圖像庫,即使對於傳統上難以以成本效益的方式開發訓練圖像庫的高混合、小批量應用,也可以提供良好的解決方案。
通常,本文揭露之圖像增強技術可以在「誤接受」和「誤拒絕」方面提高AVI性能。為描繪的屬性/特徵(例如,彎月面水平、氣隙大小、氣泡、玻璃容器壁中的小不規則物等)添加可變性的圖像增強技術對於減少誤拒絕特別有用。
在本揭露之其他方面,品質控制技術用於評估圖像庫用於訓練和/或驗證AVI深度學習模型的適用性,和/或評估各個圖像是否適合包括在這樣的庫中。該等技術可以包括評估圖像在資料集上的可變性的「預處理」品質控制技術,以及評估合成/增強圖像與一組圖像(例如,未藉由添加、消除或修改描繪的特徵而改變的真實圖像)之間的相似程度的「後處理」品質控制技術。
以上介紹的以及在下文更詳細地討論的不同構思可以以多種方式中的任一者實施,並且所描述的構思不限於任何特定的實施方式。出於說明之目的,提供了實施方式的示例。
如本文使用的術語,「合成圖像」和「增強圖像」(可互換使用)通常是指已經過數位改變以描繪與圖像最初描繪的事物不同的事物的圖像,並且與藉由不改變所描繪事物的性質的其他類型的圖像處理(例如,調整對比度、改變解析度、裁剪、濾波等)產生的輸出區分開。相反,如本文提到的「真實圖像」係指不屬於合成/增強圖像的圖像,而不管先前是否已對該圖像應用了(多個)其他類型的圖像處理。如本文提到的「原始圖像」係被數位修改以生成合成/增強圖像的圖像,並且可以是真實圖像或合成圖像(例如,在附加一輪增強之前的先前增強的圖像)。本文提及所描繪的「特徵」(例如,所描繪的「缺陷」)係指被成像事物的特性(例如,注射器圖像中所示的注射器的裂紋或彎月面、或部件圖像中所示的汽車車身部件上的劃痕或凹痕等),並且與圖像本身的與被成像事物的性質無關的特徵(例如,圖像的缺失或損壞部分,如圖像的褪色或污損部分等)區分開。
圖1係示例系統100之簡化框圖,該示例系統可以實施本文描述之與自動視覺檢查(AVI)訓練和/或驗證圖像庫的開發和/或評估相關的各種技術。例如,圖像庫可以用於訓練一個或多個神經網路來執行AVI任務。一旦訓練合格,(多個)AVI神經網路就可以用於在生產時(和/或在其他背景下)進行品質控制以檢測缺陷。例如,在製藥背景下,(多個)AVI神經網路可以用於檢測與注射器、小瓶、藥筒或其他容器類型相關聯的缺陷(例如,容器的裂紋、劃痕、污漬、缺失部件等),和/或檢測與容器內的流體或凍乾藥物產品相關聯的缺陷(例如,纖維和/或其他外來顆粒的存在)。作為另一個示例,在汽車背景下,(多個)AVI神經網路可以用於在生產期間和/或其他時間檢測汽車或其他車輛的車體缺陷(例如,裂紋、劃痕、凹痕、污漬等)(例如,以幫助確定公平的轉售價值、檢查返回的租賃車輛的狀況等)。許多其他用途也是可能的。因為所揭露的技術可以顯著降低與構建圖像庫相關聯的成本和時間,所以AVI神經網路可以用於在幾乎任何品質控制應用中檢測可見缺陷(例如,在銷售之前檢查電器、家庭牆板、紡織品、玻璃器皿等)。應當理解,雖然本文提供的實施方式主要關於製藥背景,但本文描述之技術不必限於這樣的應用。此外,在一些實施方式中,合成圖像用於除訓練AVI神經網路以外的目的。例如,圖像可以替代地用來鑒定使用無深度學習的電腦視覺的系統。
系統100包括被配置為產生訓練和/或驗證圖像的視覺檢查系統102。具體地,視覺檢查系統102包括硬體(例如,輸送機構、(多個)光源、(多個)相機等)以及被配置為捕獲樣本(例如,裝有流體或凍乾物質的容器)的數位圖像的固件和/或軟體。下面參考圖2描述視覺檢查系統102的一個示例,但可以使用任何合適的視覺檢查系統。在一些實施方式中,視覺檢查系統102係離線(例如,基於實驗室的)「模擬站」,其緊密複製商業生產線設備站的重要方面(例如,光學、光照等),從而允許開發訓練和/或驗證庫,而不造成商業生產線設備的過度停機。示例模擬站的開發、佈置和使用在PCT專利申請案號PCT/US 20/59776(於2020年11月10日提交的名稱為「自動視覺檢查站之離線故障排除和開發 [Offline Troubleshooting and Development for Automated Visual Inspection Stations]」)中示出和討論,該專利申請的全部內容特此藉由引用併入本文。在其他實施方式中,視覺檢查系統102係也在生產期間使用的商業生產線設備。
視覺檢查系統102可以順序地對多個樣本(例如,容器)中的每一個進行成像。為此,視覺檢查系統102可以包括笛卡爾機器人、輸送帶、轉盤、星輪和/或其他輸送裝置或與其結合操作,該等輸送裝置依次將每個樣本移動到用於成像的適當定位,然後在樣本成像完成後將樣本移走。雖然圖1中未示出,視覺檢查系統102可以包括通信介面和處理器以實現與電腦系統104的通信。
電腦系統104通常可以被配置為控制/自動化視覺檢查系統102的操作,並且接收和處理由視覺檢查系統102捕獲/生成的圖像,如下文進一步討論的。電腦系統104可以是被專門程式設計以執行本文討論的操作的通用電腦或專用計算設備。如圖1所示,電腦系統104包括處理單元110和記憶體單元114。然而,在一些實施方式中,電腦系統104包括共同定位或彼此遠離的兩個或更多個電腦。在該等分散式實施方式中,本文描述之與處理單元110和記憶體單元114有關的操作、或與處理單元110執行存儲在記憶體單元114中的指令時所實施的任何模組有關的操作可以劃分在多個處理單元和/或多個記憶體單元之間。
處理單元110包括一個或多個處理器,每個處理器可以是可程式設計微處理器,該可程式設計微處理器執行存儲在記憶體單元114中的軟體指令以執行如本文描述之電腦系統104的一些或全部功能。例如,處理單元110可以包括一個或多個圖形處理單元(GPU)和/或一個或多個中央處理單元(CPU)。可替代地或另外地,處理單元110中的一個或多個處理器可以是其他類型的處理器(例如,專用積體電路(ASIC)、現場可程式設計閘陣列(FPGA)等),並且如本文描述之電腦系統104的一些功能可以替代地以硬體實施。
記憶體單元114可以包括一個或多個易失性和/或非易失性記憶體。記憶體單元114可以包括任何合適的一種或多種記憶體類型,如唯讀記憶體(ROM)和/或隨機存取記憶體(RAM)、閃速記憶體、固態驅動器(SSD)、硬碟驅動器(HDD)等。記憶體單元114可以共同存儲一個或多個軟體應用程式、由該等應用程式接收/使用的資料以及該等應用程式輸出/生成的資料。
特別地,記憶體單元114存儲各種模組的軟體指令,該等軟體指令當被處理單元110執行時執行各種功能以訓練、驗證和/或鑒定一個或多個AVI神經網路和/或其他類型的AVI軟體(例如,電腦視覺軟體)。具體地,在圖1的示例實施方式中,記憶體單元114包括AVI神經網路模組120、視覺檢查系統(VIS)控制模組122、庫擴展模組124以及圖像/庫評估模組126。在其他實施方式中,記憶體單元114可以省去模組120、122、124和126中的一個或多個,和/或包括一個或多個附加模組。如上所述,電腦系統104可以是分散式系統,在這種情況下,模組120、122、124和126中的一個、一些或所有模組可以全部或部分地由不同的計算設備或系統(例如,藉由經由一個或多個有線和/或無線通訊網路耦合到電腦系統104的遠端伺服器)實施。此外,模組120、122、124和126中的任何一個的功能可以劃分在不同的軟體應用程式之間。僅作為一個示例,在電腦系統104訪問web服務以訓練和使用一個或多個AVI神經網路的實施方式中,AVI神經網路模組120的軟體指令中的一些或全部可以在遠端伺服器上存儲和執行。
AVI神經網路模組120包括使用存儲在訓練圖像庫140中的圖像來訓練一個或多個AVI神經網路的軟體。訓練圖像庫140可以存儲在記憶體單元114和/或另一個本地或遠端記憶體(例如,耦合到遠端庫伺服器等的記憶體)中。在一些實施方式中,除了訓練之外,AVI神經網路模組120可以實施/運行訓練後的(多個)AVI神經網路,例如,藉由將由視覺檢查系統102(或另一視覺檢查系統)新獲取的圖像應用於(多個)神經網路以進行驗證、鑒定或甚至可能的運行時操作。在各種實施方式中,由AVI神經網路模組120訓練的(多個)AVI神經網路對整個圖像進行分類(例如,缺陷與無缺陷,或特定類型缺陷的存在或不存在等)、逐像素地對圖像進行分類(即,圖像分割)、檢測圖像中的物體(例如,檢測特定缺陷類型(如劃痕、裂紋、異物等)的存在和定位)、或其某種組合(例如,一個神經網路對圖像進行分類,另一個神經網路執行物體檢測)。在一些實施方式中,AVI神經網路模組120生成(出於以下討論的原因)與訓練後的AVI神經網路的操作相關聯的熱圖。為此,AVI神經網路模組120可以包括深度學習軟體,如來自HALCON®的MVTec、來自Cognex®的Vidi®、來自Amazon®的Rekognition®、TensorFlow、PyTorch和/或任何其他合適的現成的或定製的深度學習軟體。AVI神經網路模組120的軟體可以建立在一個或多個預訓練網路(例如ResNet50或VGGNet)和/或一個或多個定製網路之上。
在一些實施方式中,VIS控制模組122控制視覺檢查系統102的操作/使其自動化,使得可以在很少或沒有人機交互的情況下生成樣本圖像(例如,容器圖像)。VIS控制模組122可以藉由向給定相機發送命令或其他電子信號(例如,在控制線上產生脈衝等)來使該相機捕獲樣本圖像。視覺檢查系統102可以將捕獲的容器圖像發送到電腦系統104,該電腦系統可以將圖像存儲在記憶體單元114中用於本地處理。在替代實施方式中,視覺檢查系統102可以是本地控制的,在這種情況下,VIS控制模組122可以具有比本文描述之更少的功能(例如,僅處置從視覺檢查系統102取得圖像),或者可以從記憶體單元114中完全省去。
庫擴展模組124(在本文中也簡稱為「模組124」)處理由視覺檢查系統102(和/或其他視覺檢查系統)生成的樣本圖像以生成附加的合成/增強的圖像以包含在訓練圖像庫140中。模組124可以實施一種或多種圖像增強技術,包括本文揭露之任何一種或多種圖像增強技術。如以下所討論的,該等圖像增強技術中的一些可以利用特徵圖像庫142來生成合成圖像。特徵圖像庫142可以存儲在記憶體單元114和/或另一個本地或遠端記憶體(例如,耦合到遠端庫伺服器的記憶體等)中,並且包含各種類型的缺陷(例如,裂紋、劃痕、缺口、污漬、異物等)的圖像和/或每種缺陷類型的變體的圖像(例如,具有不同大小和/或圖案的裂紋、具有不同形狀和大小的異物等)。可替代地或另外地,特徵圖像庫142可以包括各種其他類型的特徵(例如,不同的彎月面)的圖像,該等特徵可能會或可能不會表現出缺陷。例如,特徵圖像庫142中的圖像可以是完整樣本圖像的裁剪部分,使得每個圖像的相當大部分包括特徵(例如,缺陷)。
通常,特徵圖像庫142可以包括與被成像的樣本相關聯的幾乎任何類型的特徵的圖像。例如,在製藥背景下,特徵圖像庫142可以包括與容器(例如,注射器、藥筒、小瓶等)、容器內容物(例如,液體或凍乾藥物產品)和/或容器與其內容物之間的相互作用(例如,洩漏等)相關聯的缺陷。作為非限制性示例,缺陷圖像可以包括注射器缺陷的圖像,如:筒、肩部、頸部或凸緣中的裂紋、缺口、劃痕和/或磨損;破損或畸形的凸緣;筒壁、肩壁或頸壁的玻璃中的空隙;筒、肩部或頸部的玻璃的不連續性;筒壁、肩壁或頸壁的內部或外部(或其內)有污漬;筒、肩部或頸部上黏附有玻璃;筒壁、肩壁或頸壁上的結;嵌入筒壁、肩壁或頸壁的玻璃內的外來顆粒;外來的、錯位的、缺失的或額外的柱塞;柱塞上有污漬,柱塞的肋畸形;柱塞上的塗層不完整或脫落;柱塞處於不允許的定位;缺失、彎曲、畸形或損壞的針頭護罩;針頭從針頭護罩伸出;等等。與注射器和注射器內容物之間的相互作用相關聯的缺陷的示例可以包括液體通過柱塞洩漏、柱塞肋中有液體、液體從針頭護罩洩漏等。示例注射器的各種部件在下面討論的圖3A中示出。
與藥筒相關聯的缺陷的非限制性示例可以包括:筒或凸緣上的裂紋、缺口、劃痕和/或磨損;破損或畸形的凸緣;筒的不連續性;筒內部或外部(或其內)有污漬;黏附在筒上的材料;筒壁中的結;外來的、錯位的、缺失的或額外的活塞;活塞上有污漬;活塞的肋畸形;活塞處於不允許的定位;筒壁中有流痕;凸緣、筒或魯爾鎖的塑膠空隙;藥筒模具不完整;魯爾鎖上的蓋子缺失、切割、錯位、鬆動或損壞;等等。與藥筒和藥筒內容物之間的相互作用相關聯的缺陷的示例可以包括液體通過活塞洩漏、活塞肋中有液體等。示例藥筒的各種部件在下面討論的圖3B中示出。
與小瓶相關聯的缺陷的非限制性示例可以包括:瓶身上的裂紋、缺口、劃痕和/或磨損;瓶身玻璃中的空隙;瓶身玻璃的不連續性;瓶身內部或外部(或其內)有污漬;瓶身上黏附有玻璃;瓶身壁中的結;瓶身壁中有流痕;卷邊(crimp)缺失、錯位、鬆動、突出或損壞;翻蓋缺失、錯位、鬆動或損壞;等等。與小瓶和小瓶內容物之間的相互作用相關聯的缺陷的示例可以包括液體通過卷邊或蓋子洩漏等。示例小瓶的各種部件在下面討論的圖3C中示出。
與容器內容物(例如,注射器、藥筒、小瓶或其他容器類型的內容物)相關聯的缺陷的非限制性示例可以包括:懸浮在液體內容物內的外來顆粒;停留在柱塞拱頂、活塞拱頂或小瓶底上的外來顆粒;變色的液體或餅;破裂、分散或其他非典型地分佈/形成的餅;混濁的液體;高或低的填充水平;等等。「外來」顆粒可以是例如纖維、橡膠碎片、金屬、石頭或塑膠、頭髮等。在一些實施方式中,氣泡被認為係無害的並且不被認為係缺陷。
可以在特徵圖像庫142的圖像中描繪的其他類型特徵的非限制性示例可以包括:不同形狀和/或不同定位的彎月面;不同類型和/或不同定位的柱塞;不同大小和/或形狀、和/或在容器內不同位置的氣泡;容器中不同的氣隙大小;玻璃或其他半透明材料中不規則物的不同大小、形狀和/或定位;等等。
在操作中,電腦系統104在訓練圖像庫140中存儲由視覺檢查系統102收集的樣本圖像(可能在電腦系統104進行裁剪和/或其他圖像預處理之後)、以及由庫擴展模組124生成的合成圖像、以及來自一個或多個其他來源的可能真實的和/或合成的圖像。AVI神經網路模組120然後使用訓練圖像庫140中的至少一些樣本圖像來訓練(多個)AVI神經網路,並使用庫140中(或圖1中未示出的另一個庫中)的其他圖像來驗證訓練後的(多個)AVI神經網路。如本文所使用的術語,「訓練」、「驗證」或「鑒定」神經網路包括直接執行運行神經網路的軟體,並且還包括啟動神經網路的運行(例如,通過命令或請求遠端伺服器來訓練神經網路或運行訓練後的神經網路)。在一些實施方式中,例如,電腦系統104可以藉由訪問包括AVI神經網路模組120的遠端伺服器(例如,藉由訪問由遠端伺服器支援的web服務)來「訓練」神經網路。
下面將參考其他各圖的元素更詳細地討論模組120至126中的每一個的操作。
圖2描繪了在製藥應用中可以用作圖1的視覺檢查系統102之示例視覺檢查系統200。視覺檢查系統200包括相機202、鏡頭204、向前成角度的光源206a和206b、向後成角度的光源208a和208b、背光源210和攪拌機構212。當容器214由攪拌機構212保持並由光源206、208和/或210照射時(例如,VIS控制模組122按順序或同時激活不同的光源以獲得不同的圖像),相機202捕獲容器214(例如,注射器、小瓶、藥筒或任何其他合適類型的容器)的一個或多個圖像。視覺檢查系統200可以包括附加的或更少的光源(例如,省去背光源210)。例如,容器214可以容納液體或凍乾藥物產品。
例如,相機202可以是高性能工業相機或智慧相機,並且鏡頭204可以是高保真遠心鏡頭。在一個實施方式中,相機202包括電荷耦合器件(CCD)感測器。例如,相機202可以是具有2448 × 2050像素解析度的Basler® pilot piA2400-17gm單色區域掃描CCD工業相機。如本文所使用的,術語「相機」可以指任何合適類型的成像設備(例如,捕獲人眼可見的頻譜部分的相機、或紅外相機等)。
不同的光源206、208和210可以用於收集圖像以檢測不同類別的缺陷。例如,向前成角度的光源206a和206b可以用於檢測反射顆粒或其他反射缺陷,向後成角度的光源208a和208b可以用於一般的顆粒,而背光源210可以用於檢測不透明顆粒、和/或檢測容器(例如,容器214)的不正確尺寸和/或其他缺陷。例如,光源206和208可以包括CCS® LDL2-74X30RD條形LED,並且背光源210可以是CCS® TH-83X75RD背光。
攪拌機構212可以包括卡盤或用於保持和旋轉(例如,快速旋轉)容器(如容器214)的其他裝置。例如,攪拌機構212可以包括Animatics® SM23165D SmartMotor,其具有將每個容器(例如,注射器)牢固地安裝到馬達的彈簧載入卡盤。
雖然視覺檢查系統200可以適用於產生容器圖像以訓練和/或驗證一個或多個AVI神經網路,但是檢測廣泛類別的缺陷的能力可能需要多個視角。因此,在一些實施方式中,圖1的視覺檢查系統102可以替代地是多相機系統。在又其他實施方式中,圖1的視覺檢查系統102可以包括線掃描相機,並旋轉樣本(例如,容器)以捕獲每個圖像。此外,為了快速獲得大得多的訓練圖像集,可能期望自動處置/輸送樣本。視覺檢查系統102可以是例如美國臨時專利申請案號63/020,232(於2020年5月5日提交的名稱為「用於自動視覺檢查的深度學習平臺 [Deep Learning Platforms for Automated Visual Inspection]」)中所示和/或描述的任何視覺檢查或用於任何類型產品的任何其他合適的視覺檢查系統,該美國臨時專利申請的全部內容特此藉由引用併入本文。例如,在汽車背景下,視覺檢查系統200可以包括具有照明源的輸送帶以及安裝在特定輸送帶站上方和/或周圍的多個相機。
圖3A至圖3C描繪了各種示例容器類型,在某些製藥背景下,該等容器類型可以用作由圖1的視覺檢查系統102或圖2的視覺檢查系統200成像的樣本。首先參考圖3A,示例性注射器300包括中空筒302、凸緣304、在筒302內部提供可移動流體密封的柱塞306、以及覆蓋注射器針頭(圖3A中未示出)的針頭護罩308。例如,筒302和凸緣304可以由玻璃和/或塑膠形成,並且柱塞306可以由橡膠和/或塑膠形成。針頭護罩308被注射器300的肩部310隔開間隙312。注射器300在筒302內和柱塞306上方包含液體(例如,藥物產品)314。液體314的頂部形成彎月面316,其上方係氣隙318。
下面參考圖3B,示例藥筒320包括中空筒322、凸緣324、在筒322的內部提供可移動流體密封的活塞326、以及魯爾鎖328。例如,筒322、凸緣324和/或魯爾鎖328可以由玻璃和/或塑膠形成,並且活塞326可以由橡膠和/或塑膠形成。藥筒320在筒322內和活塞326上方包含液體(例如,藥物產品)330。液體330的頂部形成彎月面332,其上方係氣隙334。
下面參考圖3C,示例小瓶340包括中空瓶身342和頸部344,這兩者之間的過渡形成肩部346。在小瓶340的底部,瓶身342過渡到跟部348。卷邊350包括在小瓶340的頂部提供流體密封的塞子(在圖3C中不可見),並且翻蓋352覆蓋卷邊350。例如,瓶身342、頸部344、肩部346和跟部348可以由玻璃和/或塑膠形成,卷邊350可以由金屬形成,並且翻蓋352可以由塑膠形成。小瓶340可以在瓶身342內包括液體(例如,藥物產品)354。液體354的頂部可以形成彎月面356(例如,如果瓶身342具有相對大的直徑,則形成非常輕微彎曲的彎月面),該彎月面上方係氣隙358。在其他實施方式中,液體354替代地是小瓶340內的固體材料。例如,小瓶340可以包括凍乾(冷凍乾燥)的藥物產品354,也稱為「餅(cake)」。
例如,現在將描述可以由庫擴展模組124實施的(如由處理單元110執行的)各種圖像增強技術。首先參考圖4A,模組124可以實施算術轉置演算法400以像素級真實感將特徵(例如,缺陷)添加到原始(例如,真實)圖像。雖然圖4A參考「容器」圖像(具體地參考玻璃容器)描述了演算法400,但應當理解,模組124可以替代地使用演算法400來增強其他類型樣本(例如,塑膠容器、車身部件等)的圖像。
最初,在框402處,模組124將缺陷圖像和不具有缺陷圖像中示出的缺陷的容器圖像載入到記憶體(例如,記憶體單元114)中。例如,容器圖像(例如,類似於圖3A至圖3C中所示的容器之一的注射器、藥筒或小瓶)可以是由圖1的視覺檢查系統102或圖2的視覺檢查系統200捕獲的真實圖像。取決於實施方式,真實圖像可能在框402處之前已經以其他方式進行了處理(例如,裁剪、濾波等)。例如,缺陷圖像可以是模組124從特徵圖像庫142獲得的特定類型的缺陷(例如,劃痕、裂紋、污漬、異物、畸形柱塞、破裂的餅等)。
在框404處,模組124將缺陷圖像和容器圖像轉換成相應的二維數值矩陣,在此分別稱為「缺陷矩陣」和「容器圖像矩陣」。該等數值矩陣中的每一個可以針對對應圖像中的每個像素包括一個矩陣元素,其中,每個矩陣元素具有代表對應像素的(灰度)強度值的數值。例如,對於具有8位格式的典型工業相機,每個矩陣元素可以表示從0(黑色)至255(白色)的強度值。例如,在容器係背光式的實施方式中,僅示出玻璃和透明流體的容器圖像區域可能具有相對高的強度值,而示出缺陷的容器圖像區域可能具有相對低的強度值。然而,演算法400就可以用於其他場景中,只要所描繪缺陷的強度水平與所描繪的無缺陷的玻璃/流體區域的強度水平有足夠的差異即可。其他數值可以用於其他灰度解析度,或者矩陣可以具有更多維度(例如,在相機產生紅-綠-藍(RGB)顏色值的情況下)。圖5示出了模組124將具有灰度像素502的特徵(裂紋)圖像500轉換為特徵矩陣504之示例操作。為清楚起見,圖5僅示出特徵圖像500內的像素502的一部分以及對應特徵矩陣504的一部分。
對於像素大小為
m×
n的容器圖像,在框404處針對容器圖像產生的二維矩陣可以表示為以下
m×
n矩陣:
例如,C
11表示容器圖像的左上角像素的值(例如,從0至255)。行數
m和列數
n可以是任何合適的整數,這取決於期望的圖像解析度和電腦系統104的處理能力。模組124針對缺陷圖像生成類似的較小矩陣:
缺陷矩陣的大小可以取決於缺陷圖像的大小而變化(例如,8 × 8的圖像和矩陣用於小顆粒,或32 × 128的圖像和矩陣用於曲折的長裂紋等)。
在框406處,庫擴展模組124對缺陷可以放置在容器圖像內的何處設置限制。例如,模組124可能不允許將缺陷轉置到強度和/或外觀具有大的不連續性的容器區域,例如,藉由不允許轉置到透明容器內的半透明流體外部的區域上。在其他實施方式中,缺陷可以放置在樣本上的任何地方。
在框408處,模組124在框406處設置的任何限制內識別容器圖像中的「替代」區域。替代區域係缺陷將被轉置到的區域,因此與缺陷圖像的大小相同。模組124可以使用隨機過程(例如,隨機選擇在框406處設置的限制內的x和y座標)識別替代區域,或者可以在預定位置設置替代區域(例如,在演算法400的多次迭代中模組124以規則或不規則的間隔/間距逐步遍歷不同的轉置位置的實施方式中)。
在框410處,模組124生成與容器圖像的替代區域相對應的替代區域矩陣。該矩陣可以藉由將原始容器圖像中在替代區域處的像素強度轉換為數值來形成,或者可以簡單地藉由直接從在框404處生成的容器圖像矩陣的對應部分複製數值來形成。在任一情況下,替代區域矩陣對應於容器圖像中的缺陷將被轉置到的精確位置/區域,並且在大小和形狀(即,行數和列數)上與缺陷矩陣相同。因此,替代區域矩陣可以具有以下形式:
在框412處,針對缺陷矩陣中的每一行,模組124生成元素值的長條圖。圖4B中示出了單行缺陷矩陣的示例缺陷長條圖450。在長條圖450中,第一峰值部分452對應於描繪缺陷本身的缺陷圖像區域的相對低強度像素值,第二峰值部分454對應於僅描繪玻璃/流體(無缺陷)的缺陷圖像區域的相對中等強度像素值,並且第三峰值部分456對應於描繪來自缺陷的光反射的缺陷圖像區域的相對高強度像素值。為了確保長條圖450包括峰值部分454,精心選擇缺陷圖像大小係重要的。特別地,在框402處載入的缺陷圖像應當足夠大以捕獲在缺陷圖像的每一行上的至少一些玻璃區域(即,無缺陷)。
對於每一行缺陷矩陣,模組124還(在框412處)識別與所描繪的無缺陷的玻璃相對應的峰值部分(例如,長條圖450中的峰值部分454),並且將該行缺陷矩陣的元素值相對於該峰值部分的中心進行標準化。在一些實施方式中,缺陷圖像的尺寸被選擇為使得具有最高峰值的峰值部分將對應於缺陷圖像的玻璃/非缺陷區域。在該等實施方式中,模組124可以藉由選擇具有最高峰值的峰值部分來識別對應於所描繪的玻璃(無缺陷)的峰值部分。取決於實施方式,模組124可以以各種方式確定峰值部分的「中心」。例如,模組124可以確定峰值部分的低側和高側強度值(在示例長條圖450中分別表示為低側值(LSV)457和高側值(HSV)458),並且然後計算這兩者的平均值(即,中心 = (HSV-LSV)/2)。可替代地,模組124可以將中心計算為中值強度值,或與峰值部分的峰值相對應的強度值等。缺陷圖像的HSV值和LSV值可能相當接近,例如,大約相隔8到10個灰度級。
為了對缺陷矩陣進行標準化,模組124從行中的每個元素值中減去中心值。圖4C中示出了這方面的一個示例,其中,具有長條圖450的缺陷圖像已經被標準化,使得標準化缺陷矩陣具有長條圖460。如圖4C所示,在該示例中,峰值部分452已被轉換為僅包括負值的峰值部分462,峰值部分454已被轉換為以元素值零為中心的峰值部分464,並且峰值部分456已被轉換為僅包括正值的峰值部分466。應當理解,模組124在執行演算法400時不一定生成長條圖460。實際上,標準化缺陷矩陣係缺陷矩陣的「扁平化」版本,其中,周圍的玻璃(以及可能的流體等)的值被抵消,同時保留代表缺陷本身的資訊。當對所有行執行時,標準化缺陷矩陣可以表示為:
在框414處,模組124針對替代區域矩陣中的每一行生成類似的長條圖,識別與替代區域中描繪的玻璃/流體相對應的峰值部分,並記錄該峰值部分的低側值和高側值。在容器圖像不描繪任何缺陷的實施方式/場景中,長條圖中可能只有一個峰值(例如,類似於具有LSV 457和HSV 458的峰值部分450)。因為在捕獲缺陷圖像和容器圖像時光照(以及可能的其他)條件並不完全相同,所以在框414處識別的峰值部分將在至少一些方面與在框412處識別的缺陷圖像峰值部分不同。
應當理解,演算法400可以如以上所討論的逐行執行,或者逐列執行。當圓柱形容器垂直於相機定位且容器的中心/長軸在容器圖像上水平或豎直延伸時,逐行或逐列地執行框412和414的操作可以是特別有利的。在這樣的配置中,取決於照明類型和定位,外觀的變化往往在一個方向上(在容器的直徑或寬度上)更突然,而在另一個方向上(沿容器的長軸)不太突然,並且因此,藉由對每一行或每一列(即,無論哪一個與變化較少的方向相對應)進行標準化等丟失的資訊較少。在一些實施方式中(例如,如果從底側對小瓶成像),框412和414可以涉及其他操作,如對替代區域矩陣的二維區域(例如,2 × 2或4 × 4等)內的值求平均等。
在框416至420處,模組124藉由針對缺陷矩陣的每個元素迭代地執行比較(例如,藉由從元素
開始掃描缺陷矩陣)將標準化缺陷矩陣映射到容器圖像矩陣的替代區域上。對於標準化缺陷矩陣的給定元素,在框416處,模組124將該元素的值與替代區域矩陣中的對應元素值相加,並確定所得總和是否落在對應行的低側值與高側值之間(該等值係在框414處確定的)。如果係,則在框418A處,模組124保留容器圖像矩陣的替代區域中的對應元素的原始值。
如果否,則在框418B處,模組124將標準化缺陷矩陣的元素值與容器圖像矩陣的對應元素的值相加。例如,如果元素
在範圍[LSV,HSV]之外,則模組124將容器圖像中的對應元素設置為等於(
)。如框420所示,模組124針對標準化缺陷矩陣中的每個剩餘元素重複框416(以及框418A或框418B,視情況而定)。在框422處,模組124確認修改後的容器圖像的所有值(至少在替代區域中)係有效點陣圖值(例如,在使用8位元格式的情況下在0至255之間),並且在框424處模組124將修改後的容器圖像矩陣轉換為點陣圖圖像,並保存所得的「缺陷」容器圖像(例如,保存在訓練圖像庫140中)。框416至420的淨效果係「捕捉」或保持容器圖像中強度低於(更暗)玻璃(或其他半透明材料)的水平的缺陷圖像像素,以及強度高於(更亮/更白)玻璃的水平的像素(例如,由於缺陷中的反射)。
應當理解,上面針對演算法400描述的各個框在其他實施方式中可能有所不同,包括以與上面討論的各種替代方案不同(或作為其補充)的方式。僅作為一個示例,框416至420的循環可以涉及首先將標準化缺陷矩陣與替代區域矩陣(如上文針對容器圖像矩陣所述之逐元素地)進行合併以形成替換矩陣,並且然後用替換矩陣替換容器圖像矩陣的對應區域(即,而不是直接修改整個容器圖像矩陣)。作為另一示例,框416A和416B可以替代地操作以修改標準化缺陷矩陣(即,藉由在執行框418A的每種情況下將元素值改為零),之後將標準化缺陷矩陣的修改版本添加到容器圖像矩陣的替代區域。此外,演算法400可以省去上面討論的一個或多個操作(例如,框406),和/或可以包括上面未討論的附加操作。
在一些實施方式和/或場景中,演算法400包括在將缺陷轉置到容器圖像的替代區域之前,對(在框402處載入的)缺陷圖像或(在框404處)從缺陷圖像匯出的數值矩陣進行旋轉和/或縮放/調整大小。例如,對缺陷圖像或數值矩陣進行旋轉和/或調整大小可以發生在框412之前的任何時間(例如,恰好在框410、408、406和404中的任何一個之前)。例如,可以相對於缺陷圖像或數值矩陣的中心點或中心像素執行旋轉。調整大小可以包括沿一個或兩個軸(例如,沿缺陷圖像的軸,或沿所描繪的缺陷的長軸和短軸等)放大或縮小缺陷圖像或數值矩陣。通常,對圖像進行縮放/調整大小涉及將像素組映射到單個像素(縮小)或將單個像素映射到像素組(放大/拉伸)。應當理解,如果對從缺陷圖像匯出的數值矩陣執行(多種)操作,則需要針對矩陣元素而不是像素進行類似操作。一旦缺陷圖像或數值矩陣已經被旋轉和/或調整大小,則演算法400的其餘部分可以保持不變(即,可以以與上述相同的方式發生,並且不知道是否發生了任何旋轉和/或調整大小)。
旋轉和/或調整大小(例如,藉由實施算術轉置演算法400的庫擴展模組124)可以説明將特徵圖像庫142的大小和多樣性增加到遠遠超過固定缺陷圖像集所實現的情況。在以下用例中,旋轉可能特別有用:(1) 成像容器具有明顯的旋轉對稱性(例如,要在檢查期間成像的容器具有圓形或半圓形表面),以及 (2) 所成像的缺陷係一種傾向於具有取決於該對稱性的視覺特性的類型。例如,在玻璃小瓶的圓形或近似圓形的底部,一些裂紋可能往往大致在從圓的中心到週邊或從週邊到中心的方向上擴展。例如,庫擴展模組124可以旋轉裂紋或其他缺陷,使得缺陷圖像的軸與缺陷被轉置到的替代區域的旋轉定位對齊。更具體地,旋轉量可以取決於原始缺陷圖像中的缺陷的旋轉和期望旋轉(例如,與缺陷被轉置到的替代區域相對應的旋轉)。
可以使用任何合適的技術來實現期望旋轉和/或調整大小所需的像素(或矩陣元素)映射,如最近鄰、雙線性、高品質雙線性、雙三次或高品質雙三次。在上面列出的五種示例技術中,最近鄰係品質較低的技術,而高品質雙三次係品質最高的技術。然而,品質最高的技術可能不是最佳的,因為目標係使經旋轉和/或調整大小的缺陷的圖像品質與將用於檢查的成像系統(例如,視覺檢查系統102)所提供的圖像品質非常相似。可以執行手動使用者審查來比較不同技術(如上面列出的五種技術)的輸出,並選擇在定性/主觀意義上最好的技術。在一些實施方式中,使用高品質雙三次,或將高品質雙三次用作預設設置。
演算法400(執行和/或不執行任何旋轉和/或調整大小)可以針對任意數量的不同「良好」圖像和任意數量的「缺陷」圖像以任意期望的組合重複(例如,將
L個缺陷圖像中的每一個在
N個位置中的每一個中應用於
M個良好容器圖像中的每一個,以基於訓練圖像庫140中的
M個良好容器圖像生成
L×
M×
N個合成圖像)。因此,例如,10個缺陷圖像、1,000個良好容器圖像和每種缺陷類型的10個缺陷位置可以產生100,000個缺陷圖像。缺陷被轉置到的任何特定良好容器圖像上的位置/定位可以是預定的,或者可以是隨機確定的(例如,由模組124)。
即使在缺陷被轉置到包括由於一個或多個特徵導致的像素強度水平的鮮明對比或過渡的替代區域上的情況下,演算法400也可以很好地工作。例如,即使玻璃注射器的替代區域包括彎月面和彎月面兩側的區域(即,分別為空氣和流體),演算法400也可以很好地工作。演算法400還可以處置替代區域與缺陷圖像中的缺陷周圍的區域非常不同的某些其他情況。例如,當將缺陷從填充有透明流體的玻璃注射器的缺陷圖像轉置到替代區域中的小瓶圖像(其中,小瓶填充有不透明凍乾餅)上時,演算法400可以表現得很好。然而,對於一些用例或場景修改演算法400可能是有益的。例如,如果容器圖像的替代區域描繪了兩個非常不同的區域之間的過渡(例如,小瓶圖像的玻璃/空氣部分與凍乾餅部分之間),則模組124可以將替代區域矩陣分成多個部分(例如,相同或不同大小的兩個矩陣),或者在第一種情況下簡單地形成兩個或更多個替代區域矩陣。然後可以使用如以上所討論的演算法400的不同實例將缺陷圖像的對應部分單獨轉置到不同的替代區域上。
在一些實施方式中,特徵圖像庫142的圖像中描繪的缺陷和/或其他特徵可以在模組124使用演算法400將那些特徵添加到原始圖像之前以一種或多種方式變形。以這種方式,模組124可以有效地增加特徵圖像庫142的大小和可變性,並且因此增加訓練圖像庫140的大小和可變性。例如,模組124可以藉由應用旋轉、縮放/拉伸(一維或二維)、傾斜和/或其他變換來變形缺陷和/或其他特徵。附加地或可替代地,可以以更複雜和/或更微妙的方式修改所描繪的特徵。例如,模組124可以使缺陷(例如,裂紋)適應不同的弧,或適應更複雜的裂紋結構(例如,多個不同分支圖案中的每一個)。就其性質而言,基於像素的演算法400非常適合處置該等類型的精細特徵控制/修改。
使用圖5之算術轉置演算法400生成的合成圖像可以非常逼真,如圖6可以看到的。圖6將具有手動生成的真實世界裂紋的注射器的真實圖像600與具有使用演算法400人工生成的裂紋的注射器的合成圖像602進行比較。此外,合成圖像的「真實感」可以向下延伸到像素級。圖7提供了對應於圖6的圖像600、602的像素級比較。具體地,圖像部分700A係容器圖像600中的真實世界缺陷的放大視圖,並且圖像部分702A係容器圖像602中的人工缺陷的放大視圖。圖像部分700B係圖像部分700A的進一步放大視圖,並且圖像部分702B係圖像部分702A的進一步放大視圖。如從圖像部分700B和702B可以看出,不存在藉由轉置缺陷而產生的容易觀察到的像素級偽影或其他不同之處。
在不具有這種像素級真實感的情況下,AVI神經網路在確定合成圖像有缺陷時可能會集中於「錯誤」特性(例如,像素級偽影)。雖然容器的材料(例如,玻璃或塑膠)在肉眼看來可能是同質表面,但照明和容器材料的特性(例如,容器曲率)實際上會導致像素間的變化,並且給定容器圖像上的每個替代區域在至少一些方面不同於所有其他潛在的替代區域。此外,與在捕獲「良好」容器圖像時使用的條件/材料相比,在捕獲缺陷圖像時使用的條件/材料(例如,照明和容器材料/形狀)之間的差異可能導致甚至更大的變化。這方面的一個潛在示例在圖8中示出,該圖示出了具有第一轉置缺陷802和第二轉置缺陷804的複合合成圖像800。第一轉置缺陷802係使用將缺陷圖像直接疊加在原始容器圖像上的常規簡單技術創建的,而第二轉置缺陷804係使用算術轉置演算法400創建的。如圖8所示,可以清楚地看到與第一轉置缺陷802相對應的缺陷圖像的邊界。使用具有諸如第一轉置缺陷802等缺陷的合成圖像訓練的AVI神經網路可能會在檢查容器時簡單地尋找類似的邊界,例如,這可能會導致大量的假陰性和/或其他不準確。
圖9A描繪了使用算術轉置演算法400的實施方式生成的添加了缺陷的各種其他合成圖像,標記為900至910。在每種情況下,無論是在宏觀級別還是像素級查看圖像,描繪缺陷的注射器圖像部分都與圖像的周圍部分無縫融合。
圖9B描繪了示例裂紋缺陷圖像920的集合,其中任何圖像都可以用作算術轉置演算法400的輸入。在一些實施方式中,如上所述,算術轉置演算法400可以包括在執行演算法400的其餘部分之前對給定缺陷圖像(或對應的數值矩陣)進行旋轉和/或調整大小。在需要旋轉的情況下,瞭解與原始缺陷圖像相對應的旋轉通常很重要。例如,在示例裂紋缺陷圖像920中,在檔案名本身中包括了與原始圖像相對應的旋轉/角度(在圖9B中顯示在每個圖像的正下方)。因此,例如,「250_裂紋0002」可以是旋轉250度的特定裂紋(這樣將裂紋定位在期望旋轉180度的位置需要將裂紋逆時針旋轉70度),「270_裂紋0003」可以是旋轉270度的另一個裂紋(這樣將裂紋定位在期望旋轉180度的位置需要逆時針旋轉90度),依此類推。庫擴展模組124可以基於該指示的原始旋轉和期望旋轉(例如,與缺陷被轉置到的替代區域的角位置相對應的旋轉)來計算要應用的旋轉度數。
算術轉置演算法400可以以大多數高階語言實施,如C++、.NET環境等。取決於處理單元110的處理能力,演算法400可以潛在地在15分鐘或更短的時段內生成數千個合成圖像,但旋轉和/或調整大小通常會增加該等時間。然而,執行時間通常不是重要問題(即使執行旋轉和/或調整大小),因為大多數應用不需要即時生成訓練圖像。
如美國臨時專利申請案號63/020,232中所述,可以使用各種圖像處理技術來測量每個可用圖像的關鍵指標,從而允許精心管理訓練圖像庫,如訓練圖像庫140。在上述算術轉置演算法400的開發期間,發現對某些參數的精心控制可能是關鍵的。例如,當考慮1 ml玻璃注射器時,圖像中液體彎月面和柱塞(例如,橡膠柱塞)的定位可能是關鍵屬性,其可能因圖像而異。如果合成圖像皆為使用相同的「良好」容器圖像(或使用太小和/或太相似的一組良好容器圖像)創建的,則深度學習AVI模型的後續訓練可能會受到因圖像缺乏可變性而引起的偏差的影響。
藉由使用關鍵圖像指標,人們可以精心選擇要增強的「良好」圖像庫(例如,使用演算法400),從而減少或避免該等偏差。這樣的指標還可以用於混合訓練圖像庫,使得所得的複合庫不僅包含真實圖像和合成圖像的適當平衡,而且還顯示每個關鍵指標的自然分佈。
為了評估使用演算法400生成的合成圖像的品質,包括評估在這樣的圖像上訓練的AVI深度學習模型的穩健性,進行了各種實驗。對於該等實驗,使用了四個資料集,每個資料集大約有300個圖像:(1) 「真實無缺陷(Real No Defect)」圖像集,其係在實驗室環境中由基於笛卡爾機器人的系統捕獲的無可見缺陷的注射器的真實圖像;(2) 「真實缺陷(Real Defect)」圖像集,其係在不同位置具有不同大小裂紋的注射器的真實圖像,並且也是在實驗室環境中由基於笛卡爾機器人的系統捕獲的;(3) 「合成無缺陷(Synthetic No Defect)」圖像集,其係在不改變柱塞和彎月面定位的情況下,消除真實缺陷圖像中所描繪的裂紋而創建的合成圖像;以及 (4) 「合成缺陷(Synthetic Defect)」圖像集,其係藉由在x方向和y方向上隨機放置將裂紋描繪添加到真實無缺陷圖像而創建的合成圖像。合成缺陷圖像係使用算術轉置演算法400的實施方式生成的。真實無缺陷圖像和真實缺陷圖像中的注射器具有不同定位的彎月面。
AVI深度學習模型使用來自真實資料集和增強資料集的不同的圖像百分比組合(0%、50%或100%)進行訓練。對於每個組合,混合了兩個圖像庫:良好(無缺陷)圖像庫和缺陷圖像庫,每個圖像庫大約300個圖像。在訓練期間,將這兩個庫中的每一個分為三個部分,70%的圖像用於訓練,20%用於驗證,並且10%用於測試資料集。預訓練的ResNet50演算法用於使用HALCON®軟體將輸入圖像分類為缺陷類或無缺陷類來訓練模型。在訓練深度學習模型之後,使用測試資料集評價其性能。觀察到,當使用0%的真實圖像(即,100%合成圖像)訓練模型時,增強測試集的準確度高於真實資料集。當使用100%真實圖像(即,0%合成圖像)訓練模型時,真實資料集的準確度高於增強資料集。當使用50%的真實圖像和50%的合成圖像訓練模型時,真實資料集和增強資料集的準確度相似且很高。從該等實驗中得出的結論係,隨著訓練資料集中真實或合成圖像的百分比增加,相應資料集(真實或增強)的深度學習模型的準確度也相應提高。
當使用100%真實圖像訓練模型時合成/增強測試圖像的模型準確度較低的一個可能原因可能是訓練圖像集和測試圖像集的注射器中的彎月面不同。使用0%真實圖像訓練並僅使用真實圖像測試的模型有時會由於不同的彎月面而錯誤地對測試圖像進行分類。類似地,當使用100%真實圖像訓練並僅使用合成圖像測試時,模型有時會由於彎月面不同而錯誤地對測試圖像進行分類。藉由對使用梯度類激活圖(Grad-CAM)演算法生成的熱圖進行視覺化來評價該等錯誤分類的圖像。在美國臨時專利申請案號63/020,232中更詳細地討論了這種熱圖。在這種情況下,本文討論的圖像增強技術可以用於藉由向訓練圖像中的彎月面添加可變性來提高分類器性能。
在對模型進行訓練之後,並且在上述測試表明模型已被正確訓練之後,執行「最終測試」階段。對於該階段,再次使用了以上討論的相同一般類型的四個資料集(「真實無缺陷」、「真實缺陷」、「合成無缺陷」和「合成缺陷」),但所有圖像均來自另一個來源(即,所有圖像皆為與在訓練/驗證/測試階段所使用的產品不同的產品的圖像),並且所有圖像僅用於測試模型性能(即,所有圖像都不用於模型訓練)。該第二階段觀察到類似的趨勢,當使用更高百分比的真實圖像訓練模型時,真實「最終測試」圖像的模型準確度會提高,並且當使用更高百分比的合成圖像訓練模型時,合成「最終測試」圖像的模型準確度會提高。
圖10描繪了用於評估合成圖像的功效的各種Grad-CAM生成的熱圖1000、1002和1004。熱圖1000反映了「真陽性」,即,AVI神經網路正確識別了數位添加的裂紋。即,如圖10所示,與裂紋相關聯的像素係AVI神經網路進行「缺陷」推斷時最依賴的像素。然而,熱圖1002反映了「假陽性」,其中,AVI神經網路將合成圖像分類為缺陷圖像,但出於錯誤的原因(即,由於集中於遠離數位添加的裂紋的區域)。熱圖1004反映了「假陰性」,其中,AVI神經網路無法將合成圖像分類為有缺陷,因為模型過度集中於彎月面區域。這種錯誤分類係合成的「缺陷」訓練圖像具有類似於「無缺陷」測試圖像的彎月面的結果。當在合成圖像上運行模型之前使用100%真實圖像進行訓練時,或者在真實圖像上運行模型之前使用100%合成圖像進行訓練時,最有可能發生這種情況。如果訓練混合係大約50%的真實圖像和50%的合成圖像,則這種失敗會大大減少。
當使用真實圖像和合成圖像的不同組合作為訓練資料時,還藉由針對AVI模型生成混淆矩陣來衡量AVI神經網路的性能。當在100%合成圖像上訓練AVI模型時,對於100%合成圖像集的模型性能為:
真值:缺陷 | 真值:無缺陷 | |
預測:缺陷 | 278 | 0 |
預測:無缺陷 | 2 | 307 |
當在50%真實圖像和50%合成圖像上訓練AVI模型時,對於100%合成圖像集的模型性能為:
真值:缺陷 | 真值:無缺陷 | |
預測:缺陷 | 271 | 1 |
預測:無缺陷 | 9 | 306 |
當在100%真實圖像上訓練AVI模型時,對於100%合成圖像集的模型性能為:
真值:缺陷 | 真值:無缺陷 | |
預測:缺陷 | 97 | 307 |
預測:無缺陷 | 183 | 0 |
當在100%合成圖像上訓練AVI模型時,對於100%真實圖像集的模型性能為:
真值:缺陷 | 真值:無缺陷 | |
預測:缺陷 | 232 | 268 |
預測:無缺陷 | 104 | 32 |
當在50%真實圖像和50%合成圖像上訓練AVI模型時,對於100%真實圖像集的模型性能為:
真值:缺陷 | 真值:無缺陷 | |
預測:缺陷 | 328 | 5 |
預測:無缺陷 | 8 | 295 |
當在100%真實圖像上訓練AVI模型時,對於100%真實圖像集的模型性能為:
真值:缺陷 | 真值:無缺陷 | |
預測:缺陷 | 336 | 4 |
預測:無缺陷 | 0 | 296 |
該等結果也反映在圖11中,該圖係示出對於訓練和測試圖像集中的合成圖像和真實圖像的不同組合的AVI神經網路性能的繪圖1100。在繪圖1100中,x軸表示訓練集中的真實圖像的百分比,其餘為合成/增強圖像,並且y軸表示訓練後的AVI模型的準確度百分比。軌跡1102對應於在100%真實圖像上執行的測試,並且軌跡1104對應於在100%合成圖像上執行的測試。如從繪圖1100和上述混淆矩陣可以看出,(例如,訓練圖像庫140中的)大約50%的真實圖像和50%的合成圖像的混合看起來係最佳的(大約98%的準確度)。當然,繪圖1100中資料點的稀疏性可能意味著最佳點略高於或低於50%的真實圖像。例如,如果真實訓練圖像的百分比降低5%到10%會導致仍然非常接近98%的準確度,則可能期望接受性能的小幅下降(在真實圖像上進行測試時),以便藉由更高比例的合成圖像來節省開發訓練圖像庫的成本/時間。
上面的討論主要涉及合成「缺陷」圖像的生成,即,藉由添加人工但逼真描繪的缺陷來增強「良好」的真實圖像。然而,在一些情況下,從描繪缺陷或異常的真實圖像創建合成的「良好」圖像可能是有利的。這可以進一步擴展訓練圖像庫,同時還有助於平衡訓練圖像庫中「缺陷」圖像和「無缺陷」圖像的特性。特別地,藉由為描繪缺陷的圖像提供互補反例,缺陷消除可以減少AVI模型的非因果相關性。這進而鼓勵AVI模型集中於適當的感興趣區域,以識別在一些情況下可能非常微妙的因果相關性。
在一些實施方式中,對表現出感興趣缺陷的圖像子集執行缺陷(或其他特徵)消除,之後合成(無缺陷)圖像和對應的原始(缺陷)圖像都包括在訓練集中(例如,包括在訓練圖像庫140中)。使用與缺陷樣本無關但大約10%的訓練圖像係從缺陷圖像創建的合成「良好」圖像的良好圖像訓練的AVI分類模型已被證明匹配或超過使用完全源自缺陷樣本的良好圖像(其中缺陷偽影在圖像中不可見)訓練的AVI模型的因果預測性能。
可以利用更一般的特徵消除(而不是僅消除缺陷)來提供更集中的分類。例如,如果訓練集中的原始圖像描繪了一個或多個特定的感興趣區域(例如,外觀和定位可能不同的彎月面),則可以替換該等區域(例如,藉由消除或修改該等區域的識別特性),並將編輯後的圖像添加為互補訓練圖像。這可能比裁剪(例如,裁剪出注射器圖像的描繪彎月面的一部分)更可取,例如,如果AVI模型需要特定的輸入大小,和/或如果有多個分散的感興趣區域。
為了消除原始圖像中所描繪的缺陷或其他特徵,本文描述了不同的數位「修復」技術。在一些實施方式中,模組124藉由以下方式來消除圖像特徵:首先遮罩缺陷或其他特徵(例如,將與特徵區域相對應的所有像素統一設置為最小或最大強度),然後迭代地搜索被遮罩圖像,以藉由匹配周圍的像素統計資料來找到與孔洞(被遮罩部分)最佳「擬合」的區域。更具體地,模組124可以確定 (1) 圖像中與被遮罩區域相鄰的部分(例如,補丁)與 (2) 圖像中在被遮罩區域之外的其他部分之間的對應關係。例如,模組124可以使用PatchMatch演算法來修復被遮罩區域。如果圖像的未遮罩區域沒有表現出與被遮罩區域相同的特徵(例如,相同的缺陷),則模組124將在填充被遮罩區域時消除該特徵。
這種修復技術通常可以產生「平滑」、看上去逼真的結果。然而,該技術受到可用圖像統計資料的限制,並且也沒有圖像的主題或語義的概念。因此,一些合成圖像可能微妙地或甚至在很大程度上不能代表真正的「良好」圖像。為了解決該等問題,在一些實施方式中,使用了基於深度學習的修復。在該等技術中,神經網路用於映射輸入圖像與輸出標籤之間的複雜關係。這樣的模型能夠學習更高級的圖像主題,並且可以識別有意義的相關性,從而在增強圖像中提供連續性。
在一些深度學習實施方式中,模組124使用部分卷積模型來修復圖像。部分卷積模型在整個圖像上執行卷積,這在合成(修復)圖像中增加了像素雜訊和變化的方面,因此,甚至在修復區域之外,合成圖像也與原始圖像略有區別。使用具有這種像素雜訊/變化的合成圖像(例如,藉由AVI神經網路模組120)來訓練AVI模型可以有助於防止模型過擬合,因為附加的變化能夠防止模型得出特定於疊加的相關性。因此,AVI模型可以更好地「理解」整個圖像群體,而不僅僅是理解該群體的特定子集。結果係更高效地訓練和集中的AVI深度學習模型。
圖12描繪了模組124可以用來生成合成圖像的示例部分卷積模型1200。模型1200的一般結構(稱為「U-Net」架構)已用於圖像分割應用。在模型1200中,將輸入圖像和掩模對1202(作為具有相同維度的兩個單獨輸入)輸入到模型1200的編碼器1204。在圖12所示的示例中,輸入對1202的圖像和掩模都具有512 × 512個像素/元素,並且每個像素/元素都具有三個維度(以表示紅、綠和藍(RGB)值)。在其他實施方式中,輸入對1202的圖像和掩模的寬度和高度可以更大或更小(例如,256 × 256等),並且可以具有多於或少於三個像素維度(例如,在使用灰度圖像的情況下為一個維度)。
在訓練期間,當模組124輸入特定輸入和掩模作為輸入對1202時,模型1200用掩模點綴圖像(即,將掩模應用於圖像)以形成訓練樣本,而原始圖像(即,輸入對1202的圖像)作為靶心圖表像。在編碼器1204的第一階段,模型1200將輸入圖像的被遮罩版本和掩模本身作為單獨輸入應用於二維卷積層,該二維卷積層分別生成圖像輸出和掩模輸出。可以將每個階段的掩模輸出限制在[0,1]的範圍內。模型1200用掩模輸出來點綴圖像輸出,並將點綴的圖像輸出和掩模輸出作為單獨輸入饋送到下一個二維卷積層。模型1200迭代地重複這個過程,直到編碼器1204中沒有剩餘的卷積層。在每個相繼的卷積層,雖然像素/元素大小可能增加到某個值(圖12的示例中為512),但被遮罩圖像和掩模的大小會減小,直到達到足夠小的大小(在圖12的示例中為2 × 2)。編碼器1204具有
N個二維卷積層,其中,
N係大於一的任何合適的整數,並且是可調的超參數。模型1200的其他可調超參數可以包括內核大小、步幅和填充。
在模型1200將(被遮罩)圖像和掩模傳遞通過編碼器1204之後,模型1200將被遮罩圖像和掩模(現在更小,但具有更高的維度)傳遞通過解碼器1206的轉置卷積層。解碼器1206包括與編碼器1204相同數量的層(
N),並且將圖像和掩模恢復到它們的原始大小/維度。在解碼器1206的每個轉置層之前,模型1200將來自前一層(即,來自編碼器1204的最後一個卷積層,或來自解碼器1206的前一個轉置層)的圖像和掩模與編碼器1204中的對應卷積層的輸出級聯,如圖12所示。
解碼器1206輸出輸出對1208,該輸出對包括重建(輸出)圖像和對應的掩模。對於訓練,如上所述,原始圖像用作靶心圖表像,模組124在每次迭代時將輸出對1208的圖像與該靶心圖表像進行比較。模組124可以藉由試圖最小化六個損失來訓練模型1200:
- 有效損失:掩模外部區域的像素損失。模組124可以藉由對輸入/原始圖像與輸出/重建圖像之間的像素值差進行求和來計算該損失。
- 孔洞損失:被遮罩區域的像素損失。
- 感知損失:更高級的特徵損失,模組124可以使用單獨訓練(預訓練)的VGG16模型來計算該損失。可以對VGG16模型進行預訓練以對具有和不具有相關特徵(例如,缺陷)的樣本進行分類。在模型1200的訓練期間,模組124可以將原始圖像和重建圖像饋送到預訓練的VGG16模型中,並藉由對原始圖像和重建圖像取VGG16模型中的三個最大池化層的差來計算感知損失。
- 風格損失1:模組124可以藉由對原始圖像和重建圖像取VGG16模型中的三個最大池化層的Gram矩陣值的差(即,用於感知損失的相同差)來計算該損失,以獲得對更高級圖像特徵的總變化的衡量。
- 風格損失2:與有效損失相似的損失,但模組124使用複合圖像(包括非遮罩區域中的原始圖像和遮罩區域中的重建/輸出圖像)來計算該風格損失,而不是用於有效損失的重建/輸出圖像。
- 變化損失:重建圖像從遮罩區域到非遮罩區域的過渡的衡量。
在其他實施方式中,可以使用更多、更少和/或不同的損失類型來訓練模型1200。在每次迭代中,取決於模型1200對特定輸入/原始圖像的重建效果(如基於最小化的損失來衡量的),模組124可以調整模型1200的值或參數(例如,調整卷積權重)。
為了從原始(例如,真實)「缺陷」圖像生成合成「良好」圖像,使用良好/非缺陷圖像對模型1200進行廣泛地訓練。在一些實施方式中,模組124隨機生成在訓練期間使用的掩模(例如,應用於輸入對1202的不同實例的掩模)。例如,掩模可以完全由具有不同寬度、長度和定位/取向的線構成。作為更具體的示例,模組124可以針對256 × 256個圖像隨機生成每個包含七條線的掩模,線寬在50至100 pts之間。圖13描繪了可以由模組124生成的這種類型的兩個示例掩模1302、1304。一般來說,線太窄的掩模需要很長的訓練時間,而線太寬的掩模會導致不逼真的修復。在其他實施方式中,模組124使用其他形狀(例如,矩形、圓形、混合形狀等)隨機生成掩模,和/或從預先設計的一組掩模中進行選擇。
一旦以這種方式訓練了模型1200,模組124就可以將缺陷圖像以及遮掩缺陷的對應掩模一起輸入到模型1200。圖12示出了模組124將缺陷圖像1210(示出注射器柱塞上的異物)和遮掩缺陷的掩模1212作為輸入對1202應用於模型1200的示例。訓練模型1200然後將圖像1210重建為無缺陷圖像1214。模組124然後可以將圖像1214疊加在完整容器圖像的與輸入圖像1210的原始定位相對應的部分上。在其他實施方式中,模組124可以將整個容器(或其他物體)的圖像輸入到模型1200,並且模型1200可以輸出整個容器(或其他物體)的重建圖像。
圖14描繪了三個示例序列1402、1404、1406,其中,藉由使用類似於模型1200的部分卷積模型數位地消除真實的256 × 256圖像(圖14的左側)中的缺陷而生成合成的256 × 256圖像(圖14的右側)。如在示例序列1402、1404、1406中可見,生成了可以選擇性地遮掩注射器柱塞上或附近的缺陷的掩模。具體地,柱塞本身的缺陷在序列1402中被遮罩,而停留在柱塞上的雜質在序列1404和1406中被遮罩。例如,掩模可以手動生成,或由模組124使用物體檢測技術生成。如在序列1406中看到的,掩模可以是不規則形狀的(例如,不關於任何軸對稱)。
圖15描繪了藉由使用類似於模型1200的部分卷積模型數位地消除真實的256 × 256圖像(圖15的左側)中的缺陷而生成的合成256 × 256圖像(圖15的右側)的另一個示例,其中,差圖像(圖15中間)展示了如何修改真實圖像以達到合成圖像。差圖像展示了,雖然與真實圖像的主要變化係消除了柱塞缺陷,但也將一些雜訊添加到了真實圖像中。如上所述,這種雜訊可以有助於在訓練期間減少AVI模型(神經網路)的過度擬合。
圖16描繪了具有柱塞缺陷的注射器的真實圖像1600,以及使用類似於模型1200的部分卷積模型生成的無缺陷合成圖像1602。在該示例中,圖像1600、1602皆為251 × 1651的圖像。對於該特定示例,藉由以下方式來使重建更高效:首先裁剪圖像1600中的描繪缺陷的正方形部分,並為較小的裁剪圖像生成掩模。在使用部分卷積模型重建裁剪區域後,將重建區域插入回原始圖像1600中以獲得合成圖像1602。如圖16所示,合成圖像1602提供了無缺陷注射器的真實寫照。此外,雖然肉眼不容易看到,但合成圖像1602包含如以上所討論的可以輔助訓練過程的附加雜訊。然而,在這種情況下,由於所使用的裁剪技術,添加的雜訊沒有分佈在整個圖像1602中。在一些實施方式中,可以使用一種或多種後處理技術來確保重建區域與周圍區域之間的更真實的過渡,和/或消除或最小化任何偽影。例如,在藉由將重建區域插入回原始圖像1600中來生成合成圖像1602之後,模組124可以添加分佈在整個圖像1602中的雜訊,和/或對圖像1602執行平滑化。
在一些實施方式中,模組124還或替代地在相反方向上使用基於深度學習的修復(例如,類似於模型1200的部分卷積模型),以從原始「良好」圖像生成合成「缺陷」圖像。在第一實施方式中,這可以藉由以與上文針對添加缺陷的情況(例如,使用良好圖像作為輸入對1202)相同的方式訓練部分卷積模型(例如,模型1200)來實現。然而,為了添加缺陷,將不同的圖像輸入到訓練後的部分卷積模型。具體地,代替輸入「良好」圖像,模組124首先將期望缺陷的圖像在期望位置處添加到良好圖像。該步驟可以使用簡單的圖像處理技術,如用期望缺陷的圖像簡單地替換良好圖像的一部分。例如,模組124可以從特徵圖像庫142中取得缺陷圖像。圖17描繪了可以包括在特徵圖像庫142中的三個示例缺陷圖像1700A至1700C,其中,任何一個都可以用於替換原始圖像的一部分。可以替代地使用任何其他合適的缺陷類型(例如,以上結合圖1的特徵圖像庫142討論的任何缺陷類型,或與諸如汽車車體檢查等其他背景相關聯的缺陷)。
在一些實施方式中,在將缺陷圖像放置在期望位置之後(例如,藉由軟體工具的使用者經由圖形化使用者介面輸入,或完全由模組124輸入),模組124藉由將被遮擋區域設置為在原始圖像內具有與疊加的缺陷圖像相同的大小和定位來自動創建掩模。模組124然後可以將修改後的原始圖像(具有疊加的缺陷圖像)和掩模作為單獨輸入來輸入到部分卷積模型(例如,模型1200)。
圖18描繪了使用該技術來將缺陷添加到256 × 256的部分注射器圖像的兩個示例序列1800、1802。在序列1800中,模組124取得真實圖像1804A,在所選(例如,手動或隨機確定的)位置或預定位置疊加期望的缺陷圖像1804B,生成與真實圖像1804A的大小相匹配但具有與疊加缺陷圖像1804B的大小和定位相匹配的遮擋區域的掩模1804C,然後將修改後的真實圖像和掩模1804C作為單獨輸入應用於部分卷積模型(例如,模型1200)以生成合成圖像1804D。類似地,在序列1802中,模組124取得真實圖像1810A,在所選(例如,手動或隨機確定的)位置或預定位置疊加期望的缺陷圖像1810B,生成與真實圖像1810A的大小相匹配但具有與疊加缺陷圖像1810B的大小和定位相匹配的遮擋區域的掩模1810C,然後將修改後的真實圖像和掩模1810C作為單獨輸入應用於部分卷積模型(例如,模型1200)以生成合成圖像1810D。16 pts的掩模線寬用於生成合成圖像1804D、1810D。如圖18所示,該技術使用所應用的缺陷來修復被遮罩區域,並提供具有逼真外觀的平滑過渡區域。圖19中示出了另一個示例,使用這種相同的技術來增強真實的251 × 1651圖像1900,以獲得合成缺陷圖像1902。
在其他實施方式中,模組124使用諸如模型1200等部分卷積模型來向原始圖像添加缺陷,但以不同方式訓練模型以支援隨機缺陷生成。在該實施方式中,在訓練期間,模組124將每個缺陷圖像(例如,真實缺陷圖像)饋送到部分卷積模型,以用作靶心圖表像。訓練樣本係相同的缺陷圖像,但具有(當應用於缺陷圖像時)遮罩缺陷的掩模。藉由針對大量缺陷圖像重複該操作,模組124訓練部分卷積模型以使用缺陷來修復每個掩模/孔洞區域。一旦訓練了部分卷積模型,模組124就可以將良好/非缺陷圖像以及期望缺陷位置處的掩模用作輸入對。
在該等實施方式中,如果期望多種缺陷類型,則針對不同的缺陷類型訓練單獨的部分卷積模型可能是有利的。例如,模組124可以訓練第一部分卷積模型以藉由添加斑點來增強良好的圖像,並且可以訓練第二部分卷積模型以藉由添加畸形柱塞肋來增強圖像,等等。這通常提供對缺陷修復的更多控制,並允許獨立地訓練不同的模型(例如,使用不同的超參數來考慮與每種缺陷類型相關聯的不同複雜性)。這也可以生成更「純」的缺陷(即,明顯在單個缺陷類內),例如,如果合成圖像將用於訓練識別不同缺陷類的電腦視覺系統,這可能會有所幫助。圖20描繪了使用該技術向注射器圖像添加缺陷的三個示例序列2000、2002、2004。在每個序列中,模組124取得真實圖像(圖20的左側),生成遮擋真實圖像的一部分(將在該部分處添加缺陷)的掩模(圖20的中間),並將真實圖像和掩模作為單獨輸入應用於訓練後的部分卷積模型(類似於模型1200)以生成合成圖像(圖20的右側)。圖21中示出了另一個示例,使用這種相同的技術來增強真實的251 × 1651圖像2100,以獲得合成缺陷圖像2102。
在一些實施方式中,模組124還或替代地使用基於深度學習的修復(例如,類似於模型1200的部分卷積模型)來修改在原始(例如,真實)圖像中描繪的特徵(例如,移動和/或改變其外觀)。例如,模組124可以移動和/或改變(例如,注射器中的)彎月面的外觀。在該等實施方式中,模組124可以使用以上在使用部分卷積模型(例如,模型1200)添加缺陷的背景下描述的這兩種技術中的任一者:(1) 使用「良好」圖像作為靶心圖表像來訓練模型,然後將原始圖像與描繪期望特徵外觀/定位的特徵圖像(例如,來自特徵圖像庫142)疊加以生成合成圖像;或 (2) 使用表現出期望特徵外觀/定位的圖像(以及遮掩特徵的對應掩模)來訓練模型,然後在期望特徵位置遮罩原始圖像以生成合成圖像。圖22中示出了使用這兩個替代方案中的後者來生成合成圖像的示例序列2200。如圖22所示,可以是不規則形狀的掩模應當遮擋原始圖像中的描繪相關特徵的部分(在此為彎月面),以及特徵將被轉置到的原始圖像中的部分。圖23中示出了另一個示例,使用這種相同的技術來增強真實的251 × 1651圖像2300,以獲得合成圖像2302(具體地,藉由將彎月面移動到新位置並「整形」彎月面)。類似於圖16中的重建,藉由以下方式來使重建更高效:首先裁剪圖像2300中的描繪彎月面的正方形部分,然後為較小的裁剪圖像生成掩模。在使用部分卷積模型重建裁剪區域後,將重建區域插入回原始圖像2300中以獲得合成圖像2302。
模組124還可以或替代地使用這種技術來移動/改變其他特徵,如柱塞(藉由沿著筒數位地移動柱塞)、凍乾的小瓶內容物(例如,藉由數位地改變小瓶的填充水平)等等。在使用描繪期望特徵定位/外觀的靶心圖表像(即,以上討論的這兩種技術中的後者)來訓練部分卷積模型的實施方式中,模組124可以針對每種特徵類型來訓練和使用不同的模型。對於給定的部分卷積模型,可以藉由控制訓練樣本之間的變化來調整由模型人工生成的特徵(例如,彎月面)的範圍和變化。通常,將諸如彎月面等特徵增強到標準狀態可以藉由防止特徵中的變化(例如,不同的彎月面定位)使分類器「分散注意力」來説明訓練AVI分類模型,這進而有助於分類器僅集中於缺陷。
使用部分卷積模型進行修復可以非常高效。例如,對於彎月面增強,取決於(例如,處理單元110的)可用處理能力,可以使用單個基礎掩模在幾分鐘內生成數千個圖像。缺陷生成也可以同樣高效。對於缺陷消除,其中為每個圖像繪製一個掩模以覆蓋缺陷(每個圖像可能需要大約一秒鐘),輸出可能會較慢(例如,每小時數千個圖像,具體取決於每個掩模的創建速度)。然而,所有該等過程都比在真實樣本中手動創建和消除缺陷要快得多,並且成本也低得多。
在一些實施方式中,處理能力的約束可能會限制要增強的圖像的大小(例如,大約512 × 512個像素或更小的圖像),這可能進而使得有必要在增強之前裁剪圖像,然後重新插入增強的圖像裁剪。這需要額外的時間,並可能產生其他不希望的後果(例如,對於基於深度學習的修復技術,無法實現如以上結合圖16所述之向整個圖像而不是僅僅較小/裁剪部分添加輕微雜訊/變化的好處)。在一些實施方式中,模組124藉由使用ResNet特徵提取器而不是VGG特徵提取器來解決這個問題。諸如這樣的特徵提取器用於計算在訓練期間調整修復模型的權重所使用的損失。取決於圖像尺寸和期望的訓練速度,模組124可以使用任何合適版本的ResNet特徵提取器(例如,ResNet50、ResNet101、ResNet152等)。
此外,在一些實施方式中,模組124可以對合成圖像應用後處理以減少不希望的偽影。例如,模組124可以向每個合成圖像添加雜訊,對每個合成圖像執行濾波/平滑,和/或對每個合成圖像執行快速傅裡葉變換(FFT)頻譜分析和操縱。這樣的技術可以幫助減輕任何偽影,並且通常使圖像更逼真。作為另一個示例,模組124可以將每個合成圖像傳遞通過改良器(refiner),其中,藉由將改良器與鑒別器配對來訓練改良器。在訓練期間,改良器和鑒別器都被饋送合成圖像和真實圖像(例如,藉由模組124)。鑒別器的目標係在真實圖像與合成圖像之間進行區分,而改良器的目標係將合成圖像改良到鑒別器無法再區分合成圖像與真實圖像的程度。因此,改良器和鑒別器係彼此的對手,並且以類似於生成式對抗網路(GAN)的方式工作。在訓練的多個循環之後,改良器可以變得非常擅長改良圖像,因此模組124可以使用訓練後的改良器消除要添加到訓練圖像庫140的合成圖像中的偽影。以上描述的任何技術還可以用於處理/改善不使用深度學習技術生成的合成圖像,如使用上面討論的演算法400生成的合成圖像。
執行了各種測試以表明從原始圖像生成互補合成圖像(例如,針對真實「良好」圖像的合成「缺陷」圖像,或針對真實「缺陷」圖像的合成「良好」圖像)可以顯著改進對AVI深度學習模型(例如,圖像分類器)的訓練,並指導AVI模型精確定位缺陷。在一個這樣的測試中,在兩個訓練樣本集上對用於注射器的ResNet50缺陷分類器進行訓練。第一個訓練樣本集由270個有缺陷的原始圖像和270個無缺陷的原始圖像構成。在第二個訓練樣本集中,非缺陷樣本由270個原始圖像和270個合成圖像(由原始缺陷樣本生成,其中使用修復工具消除了缺陷)構成,而缺陷樣本由270個原始圖像(其用於生成合成非缺陷圖像)和270個合成圖像(其由270個原始缺陷圖像生成,並使用修復工具生成並且不使用掩模)。這兩種情況下的測試樣本皆為混合了有缺陷和無缺陷的60個原始圖像。值得注意的是,測試樣本並不獨立於訓練樣本,因為測試樣本係來自與訓練樣本相同的注射器的圖像,並且僅因旋轉而有所不同。
下表總結了該等訓練樣本集的細節,該等樣本集用於訓練兩種不同的AVI圖像分類模型(「分類器1」和「分類器2」):
分類器 1 | |
非缺陷 | 缺陷 |
270個原始圖像 | 270個原始圖像 |
分類器 2 | |
非缺陷 | 缺陷 |
270個原始圖像(A) 270個合成圖像(C)[從(B)生成] | 270個原始圖像(B) 270個合成圖像(D)[從(B)生成] |
分類器1和分類器2分別使用Adam優化器訓練八個epoch(代),其中學習率為0.0001。圖24A示出了針對黑白污漬缺陷分別使用分類器1和分類器2生成的Grad-CAM圖像2400、2402。雖然分類器1和分類器2都針對所使用的測試樣本提供了100%的準確度,但從圖24A中可以看出,分類器2比分類器1提供了大幅改進。具體地,分類器2集中於樣本圖像的正確區域(柱塞肋),而分類器1替代地集中於不存在缺陷的彎月面區域。此外,分類器1僅由於如上所述圖像藉由旋轉與分類器在訓練期間已經看到的樣本相關而提供正確的分類(「缺陷」)。圖24B示出了另一個示例,其示出了針對斑點缺陷分別使用分類器1和分類器2生成的Grad-CAM圖像2410、2412。同樣,分類器2集中於正確的區域,而分類器1集中於錯誤的區域。對於所測試的其他三個缺陷類別也是如此。因此,在訓練樣本集中包含50%的合成圖像大幅提高了所有測試案例中的分類器性能。
為了確保正確訓練AVI模型(例如,圖像分類模型),明智的做法係在一個或多個階段包括品質控制措施。這在製藥背景下尤為重要,因為必須藉由確保安全可靠的藥物產品來保護患者安全。在一些實施方式中,執行「預處理」和「後處理」品質檢查兩者(例如,藉由圖像/庫評估模組126)。通常,該等預處理和後處理品質檢查可以利用各種圖像處理技術來分析和/或比較每個像素的資訊。
由於圖像通常是在嚴格控制的條件下捕獲的,因此來自同一資料集的任意兩個圖像之間通常只有細微的差異。雖然在整個資料集中測量圖像參數的可變性可能是勞動密集型的,但快速且直觀地評估這樣的可變性的能力可以節省時間(例如,藉由避免測量錯誤的屬性),並且可以用於圖像捕獲條件的初始品質檢查。出於以下兩個原因,瞭解這種可變性可能是有用的。首先,某些屬性(例如,柱塞定位)的可變性可能會壓倒來自實際缺陷的信號,並且因此導致錯誤的分類,因為演算法可能與缺陷本身相比對可變屬性更重地加權。其次,出於圖像增強的目的,瞭解給定屬性的可變性範圍可能是有用的,以便在創建群體代表性的合成圖像時將該等屬性限制在該範圍內。
圖25描繪了用於生成可以用於快速評價圖像集中的多樣性的視覺化的示例過程2500。過程2500可以由圖像/庫評估模組126(也簡稱為「模組126」)執行。在過程2500中,模組126將圖像集2502轉換成一組相應的數值矩陣2504,每個數值矩陣針對來自圖像集2502的對應圖像中的每個像素恰好具有一個矩陣元素。模組126然後確定在每個矩陣位置(
i,
j)處所有數值矩陣2504的最大值,並使用最大值填充最大值矩陣2506中的對應定位(
i,
j)。模組126然後將最大值矩陣2506轉換為最大可變性複合(點陣圖)圖像2508。可替代地,模組126可以避免創建新的最大值矩陣2506,而是更新集合2504中的特定數值矩陣(例如,藉由將該數值矩陣的每個元素值依次與所有其他數值矩陣2504的對應元素值進行比較,並在發現更大的值時更新)。
電腦系統104然後可以在顯示器上呈現所得的複合圖像2508,以允許資料集可變性的快速視覺化。圖26A描繪了一個這樣的示例視覺化2600。在該示例中,可以看到柱塞向左移動到點2602。這可能可接受,也可能不可接受,具體取決於期望的約束。例如,模組124然後可以使用點2602作為柱塞上最左邊的邊界(例如,當創建具有不同柱塞定位的合成圖像時)。在一些實施方式中,模組124藉由確定連續幾列的一階導數超過某個閾值的點(例如,像素定位)來更精確地確定該邊界。
視覺化2600的其他變體也是可能的。例如,模組126可以確定最小圖像(即,在每個矩陣定位處取所有數值矩陣2504的最小元素值)或平均圖像(即,在每個矩陣定位處取所有數值矩陣2504的平均值)等。示例平均圖像視覺化2604在圖26B中示出。在該等實施方式中的任何一個中,該技術可以用於顯示可變性作為品質檢查,和/或確定合成圖像必須遵守的屬性/特徵邊界。
圖27描繪了用於評估合成圖像與圖像集之間的相似程度之示例過程2700。例如,過程2700可以由圖像/庫評估模組126執行,以評估由庫擴展模組124生成的合成圖像。除了一種或多種其他技術之外,模組126還可以使用過程2700(例如,在將合成圖像添加到訓練集之前和之後評估AVI模型性能)。然而,過程2700被以更有針對性的方式使用以確保每個合成圖像與原始真實圖像沒有根本不同。
在過程2700的框2702處,針對真實圖像集中的每個圖像,模組126計算相對於真實圖像集中的每個其他圖像的均方誤差(MSE)。任意兩個圖像之間的MSE係每個定位處的像素值(例如,對應矩陣元素值)的平方差的平均值。例如,對於
i×
j個圖像,MSE係所有
i×
j個像素/元素位置的平方差之和除以數量
i×
j。因此,模組126計算真實圖像集中的每個可能的圖像對的MSE。真實圖像集可以包括所有可用的真實圖像,或者更大的真實圖像集的子集。
在框2704處,模組126從在框2702處計算的所有MSE中確定最高MSE,並將上限設置為等於該最高MSE。例如,該上限可以用作合成圖像與真實圖像集之間的最大允許差異量。下限必然為零。
在框2706處,模組126計算所考慮的合成圖像與真實圖像集中的每個圖像之間的MSE。此後,在框2708處,模組126確定在框2706處計算的最大MSE是否大於在框2704處設置的上限。如果係,則在框2710處,模組126生成合成圖像相對於真實圖像集不相似的指示。例如,模組126可以使得顯示上限被超過的指示符、或者生成表明不應將合成圖像添加到訓練圖像庫140的標誌等。如果在框2706處計算的最大MSE不大於在框2704處設置的上限,則在框2712處模組126不生成不相似的指示。例如,模組126可以使得顯示上限未被超過的指示符、或者生成表明應當或可以將合成圖像添加到訓練圖像庫140的標誌等。
在一些實施方式中,過程2700在一個或多個方面與圖27中所示的不同。例如,在框2708處,模組126可以替代地確定在框2706處計算的所有MSE的平均值是否超過上限。作為另一示例,在一些實施方式中,代替執行框2708、2710或框2708、2712(或除此之外),模組126生成在框2706處計算的MSE的長條圖。圖28中示出了一個這樣的長條圖2800的示例。示例長條圖2800的x軸示出了MSE,而y軸示出了在合成圖像與真實圖像的比較期間MSE出現的次數。雖然使用MSE作為品質代理存在一些固有的局限性,但該指標可以提供一種合理之方法來補充AVI模型性能的分析。
在一些實施方式中,除了或代替以上討論的技術(例如,過程2700),電腦系統104確定一個或多個其他圖像品質指標(例如,以確定給定合成圖像與其他圖像之間的相似程度,或衡量圖像集的多樣性等)。例如,為此目的,電腦系統104可以使用美國臨時專利申請案號63/020,232中描述的任何技術。
圖29至圖32描繪了與上述各種技術相對應的示例方法的流程圖。首先參考圖29,例如,用於藉由將特徵轉移到原始圖像上來生成合成圖像之方法2900可以由圖1的模組124執行(例如,當處理單元110執行存儲在記憶體單元114中的模組124的指令時)。
在框2902處,接收或生成特徵矩陣。特徵矩陣係描繪特徵的特徵圖像的數值表示。特徵可以是與容器(例如,注射器、小瓶、藥筒等)或容器的內容物(例如,流體或凍乾藥物產品)相關聯的缺陷,如例如裂紋、缺口、污漬、異物等。可替代地,特徵可以是與另一物體相關聯的缺陷(例如,汽車車身中的劃痕或凹痕、房屋壁板上的凹痕或裂紋、玻璃窗中的裂紋、氣泡或雜質等)。例如,框2902可以包括執行圖4A中的框404的缺陷圖像轉換。在一些實施方式中,框2902包括對特徵矩陣進行旋轉和/或調整大小,或者對從中匯出特徵矩陣的圖像(例如,如上文結合圖4A針對「特徵」係缺陷的更具體的情況所討論的)進行旋轉和/或調整大小。如果特徵圖像被旋轉和/或調整大小,則該步驟發生在生成特徵矩陣之前,以確保特徵矩陣反映出旋轉。在框2902包括旋轉特徵矩陣或特徵圖像的情況下,方法2900可以包括將特徵矩陣或特徵圖像旋轉基於以下兩者的量:(1) 特徵圖像中描繪的特徵的旋轉和 (2) 特徵圖像中描繪的特徵的期望旋轉。例如,方法2900可以包括基於特徵將被轉移到的區域的定位來確定該「期望」旋轉。框2902還可以或替代地包括調整特徵矩陣或特徵圖像的大小。
在框2904處,接收或生成替代區域矩陣。替代區域矩陣係特徵將被轉移/轉置到的原始圖像內的區域的數值表示。例如,框2904可以類似於圖4A的框410。
在框2906處,相對於特徵矩陣的不代表所描繪特徵的一部分對特徵矩陣進行標準化。例如,框2906可以包括圖4A的框412。
在框2908處,基於替代區域矩陣和標準化特徵矩陣來生成合成圖像。例如,框2908可以包括圖4A的框414、416、418、420、422和424。
應當理解,方法2900的框不需要嚴格按照所示的順序發生。例如,框2906和2908可以並行發生,框2904可以在框2902處之前發生,等等。
接下來參考圖30,例如,用於藉由消除原始圖像中描繪的缺陷來生成合成圖像之方法3000可以由圖1的模組124執行(例如,當處理單元110執行存儲在記憶體單元114中的模組124的指令時)。
在框3002處,遮罩原始圖像中的描繪缺陷的部分。例如,可以自動應用掩模(例如,藉由首先使用物體檢測來檢測缺陷),或者可以響應於標識適當遮罩區域的使用者輸入來應用掩模。
在框3004處,計算對應關係指標。該指標反映了像素統計資料,其指示原始圖像的與被遮罩部分相鄰的部分與原始圖像的其他部分之間的對應關係。
在框3006處,使用在框3004處計算的對應關係指標用無缺陷圖像部分填充原始圖像的被遮罩部分。例如,可以以試圖模擬原始圖像內的其他圖案的方式來填充/修復被遮罩部分。
在框3008處,使用合成圖像(例如,以及多個其他真實圖像和合成圖像)來訓練神經網路以用於自動視覺檢查。例如,AVI神經網路可以是圖像分類神經網路或物體檢測(例如,卷積)神經網路等。
應當理解,方法3000的框不需要嚴格按照所示的順序發生。
接下來參考圖31,例如,用於藉由消除或修改原始圖像中描繪的缺陷或藉由將所描繪特徵添加到原始圖像上來生成合成圖像之方法3100可以由圖1的模組124執行(例如,當處理單元110執行存儲在記憶體單元114中的模組124的指令時)。
在框3102處,訓練部分卷積模型(例如,類似於模型1200)。部分卷積模型包括具有一系列卷積層的編碼器和具有一系列轉置卷積層的解碼器。框3102包括,針對訓練圖像集中的每個圖像,將訓練圖像和對應的掩模作為單獨輸入應用於部分卷積模型。
在框3104處,生成合成圖像。框3104包括,針對該等原始圖像中的每一個,將原始圖像(或原始圖像的修改版本)和對應的掩模作為單獨輸入應用於訓練後的部分卷積模型。例如,在將修改後的原始圖像和對應的掩模作為輸入應用於訓練後的部分卷積模型之前,可以首先藉由疊加要添加的特徵(例如,缺陷)的裁剪圖像來修改原始圖像。
在框3106處,使用合成圖像(並且可能還使用原始圖像)來訓練用於自動視覺檢查的神經網路。例如,AVI神經網路可以是圖像分類神經網路或物體檢測(例如,卷積)神經網路等。
應當理解,方法3100的框不需要嚴格按照所示的順序發生。
接下來參考圖32,例如,用於評估可能在訓練圖像庫中使用的合成圖像之方法3200可以由圖1的模組124執行(例如,當處理單元110執行存儲在記憶體單元114中的模組124的指令時)。
在框3202處,基於圖像的像素值計算指示 (1) 圖像集(例如,真實圖像)中的每個圖像與 (2) 圖像集中的每個其他圖像之間的差異的指標。例如,框3202可以類似於圖27的框2702。
在框3204處,基於在框3202處計算的指標生成閾值差值(例如,圖27的「上限」)。例如,框3204可以類似於圖27的框2704。
在框3206處,對合成圖像中的每一個重複各種操作。具體地,在框3208處,基於合成圖像的像素值計算合成圖像指標,並且在框3210處,基於合成圖像指標和閾值差值確定合成圖像的可接受性。例如,框3208可以類似於圖27的框2706,並且框3210可以包括圖27的框2708以及框2710或框2712。在一些實施方式中,框3206包括一個或手動步驟(例如,基於所顯示的與圖28中所示的長條圖2800相似的長條圖手動確定可接受性)。
應當理解,方法3200的框不需要嚴格按照所示的順序發生。
儘管已經根據示例性實施方式描述了系統、方法、裝置及其部件,但是它們不限於此。詳細描述僅被解釋為係示例性的並且未描述本發明之每個可能的實施方式,因為描述每個可能的實施方式將是不實際的,即使有可能的話。可以使用當前技術或在本專利申請日之後開發的技術來實施許多替代性實施方式,該等實施方式仍然落入限定本發明之請求項之範圍內。
熟悉該項技術者將瞭解到,在不脫離本發明之範圍的情況下,關於上文描述的實施方式可以做出各種各樣的修改、改變和組合,並且可以將這樣的修改、改變和組合視為在本發明構思之範圍內。
104:電腦系統
110:處理單元
114:記憶體單元
120:AVI神經網路模組
122:VIS控制模組
124:庫擴展模組
126:圖像/庫評估模組
140:訓練圖像庫
142:缺陷圖像庫
102:視覺檢查系統
200:視覺檢查系統
206:光源
208:光源
202:相機
204:鏡頭
210:背光源
212:攪拌機構
214:容器
300:注射器
302:中空筒
304:凸緣
306:柱塞
308:針頭護罩
310:肩部
312:間隙
314:液體
316:彎月面
318:氣隙
320:藥筒
322:中空筒
324:凸緣
326:活塞
328:魯爾鎖
330:液體
332:彎月面
334:氣隙
340:小瓶
342:中空瓶身
346:肩部
348:跟部
350:卷邊
352:翻蓋
354:液體
356:彎月面
358:氣隙
技術人員將理解,本文描述之附圖係出於說明之目的而包括的,而非限制本揭露。附圖不一定係按比例繪製,而是將重點放在說明本揭露之原理上。應理解,在一些情況下,所描述的實施方式的不同方面可以被擴大或放大,以有助於理解所描述之實施方式。
[圖1]係示例系統之簡化框圖,該示例系統可以實施本文描述之與自動視覺檢查(AVI)圖像庫的開發和/或評估相關的各種技術。
[圖2]描繪了可以在諸如圖1的系統等系統中使用之示例視覺檢查系統。
[圖3A至圖3C]描繪了可以使用諸如圖2的視覺檢查系統等視覺檢查系統來檢查之各種示例容器類型。
[圖4A]描繪了可以用於以像素級真實感向圖像添加特徵之算術轉置演算法。
[圖4B和圖4C]描繪了可以在圖4A之算術轉置演算法期間生成之示例缺陷矩陣長條圖。
[圖5]描繪了其中將特徵圖像轉換為數值矩陣之示例操作。
[圖6]將具有手動生成的真實世界裂紋的注射器之圖像與具有數位生成的裂紋之注射器的合成圖像進行比較,其中,該合成圖像係使用圖5之算術轉置演算法生成的。
[圖7]係對應於圖6的圖像之像素級比較。
[圖8]將使用常規技術合成的缺陷與使用圖5之算術轉置演算法合成的缺陷進行比較。
[圖9A]描繪了具有使用圖5之算術轉置演算法生成的缺陷之各種合成圖像。
[圖9B]描繪了示例裂紋缺陷圖像之集合,其中每個圖像都可以用作圖5之算術轉置演算法的輸入。
[圖10]描繪了用於評估增強圖像的功效之熱圖。
[圖11]係示出對於訓練和測試圖像集中的合成圖像和真實圖像的不同組合的AVI神經網路性能之繪圖。
[圖12]描繪了示例部分卷積模型,其可以用於藉由添加、消除或修改所描繪的特徵來生成合成圖像。
[圖13]描繪了可以隨機生成以在訓練部分卷積模型時使用的示例掩模。
[圖14]描繪了三個示例序列,其中,藉由使用部分卷積模型數位地消除真實圖像中的缺陷來生成合成圖像。
[圖15]描繪了藉由使用部分卷積模型數位地消除真實圖像中的缺陷而生成的合成圖像之另一示例,以及展示了真實圖像如何被修改的差圖像。
[圖16]描繪了有缺陷注射器的真實圖像和無缺陷注射器之合成圖像,其中,該合成圖像係使用部分卷積模型基於真實圖像生成的。
[圖17]描繪了三個示例缺陷圖像,該等缺陷圖像可以與部分卷積模型一起使用以根據第一技術以向注射器圖像數位地添加缺陷。
[圖18]描繪了根據第一技術使用部分卷積模型向注射器圖像添加缺陷之兩個示例序列。
[圖19]描繪了無缺陷注射器之真實圖像和有缺陷注射器之合成圖像,其中,該合成圖像係使用部分卷積模型和第一技術基於真實圖像生成的。
[圖20]描繪了根據第二技術使用部分卷積模型向注射器圖像添加缺陷之三個示例序列。
[圖21]描繪了無缺陷注射器的真實圖像和有缺陷注射器之合成圖像,其中,該合成圖像係使用部分卷積模型和第二技術基於真實圖像生成的。
[圖22]描繪了根據第二技術使用部分卷積模型來修改注射器圖像中的彎月面之示例序列。
[圖23]描繪了注射器的真實圖像和其中已經數位地改變了彎月面之合成圖像,其中,該合成圖像係使用部分卷積模型和第二技術基於真實圖像生成的。
[圖24A和圖24B]描繪了示例熱圖,其指示由使用和不使用合成訓練圖像訓練的AVI深度學習模型做出的預測下之因果關係。
[圖25]描繪了用於生成可以用於評價圖像集中的多樣性的視覺化之示例過程。
[圖26A]描繪了藉由圖25的過程生成之示例視覺化。
[圖26B]描繪了可以用於使用另一過程評價一組圖像中的多樣性之示例視覺化。
[圖27]描繪了用於評估合成圖像與圖像集之間的相似程度之示例過程。
[圖28]係使用圖27的過程生成之示例長條圖。
[圖29]係用於藉由將特徵轉移到原始圖像上來生成合成圖像的示例方法之流程圖。
[圖30]係用於藉由消除原始圖像中描繪的缺陷來生成合成圖像的示例方法之流程圖。
[圖31]係用於藉由消除或修改原始圖像中描繪的特徵或者藉由將描繪的特徵添加到原始圖像來生成合成圖像的示例方法之流程圖。
[圖32]係用於評估在訓練圖像庫時使用的合成圖像的示例方法之流程圖。
無
104:電腦系統
110:處理單元
114:記憶體單元
120:AVI神經網路模組
122:VIS控制模組
124:庫擴展模組
126:圖像/庫評估模組
140:訓練圖像庫
142:缺陷圖像庫
102:視覺檢查系統
Claims (102)
- 一種藉由將特徵轉移到原始圖像上來生成合成圖像之方法,該方法包括: 接收或生成特徵矩陣,該特徵矩陣係描繪該特徵的特徵圖像的數值表示,其中,該特徵矩陣的每個元素與該特徵圖像的不同像素相對應; 接收或生成替代區域矩陣,該替代區域矩陣係該特徵將被轉移到的該原始圖像內的區域的數值表示,其中,該替代區域矩陣的每個元素與該原始圖像的不同像素相對應; 相對於該特徵矩陣中的不表示該特徵的部分對該特徵矩陣進行標準化;以及 基於 (i) 該替代區域矩陣和 (ii) 該標準化特徵矩陣來生成該合成圖像。
- 如請求項1所述之方法,其中: 該原始圖像係容器的圖像;並且 該特徵係與該容器或該容器內容物相關聯的缺陷。
- 如請求項2所述之方法,其中: 該容器係注射器;並且 該特徵係與該注射器的筒、該注射器的柱塞、該注射器的針頭護罩或該注射器內的流體相關聯的缺陷。
- 如請求項2所述之方法,其中: 該容器係小瓶;並且 該特徵係與該小瓶的壁、該小瓶的蓋、該小瓶的卷邊或該小瓶內的流體或凍乾餅相關聯的缺陷。
- 如請求項1-4中任一項所述之方法,其中,對該特徵矩陣進行標準化包括逐行或逐列地對該特徵矩陣進行標準化。
- 如請求項5所述之方法,其中,逐行或逐列地對該特徵矩陣進行標準化包括,針對該特徵矩陣的每一行或每一列: 生成該特徵矩陣的行或列的元素值的特徵行長條圖。
- 如請求項6所述之方法,其中,逐行或逐列地對該特徵矩陣進行標準化進一步包括,針對該特徵矩陣的每一行或每一列: 識別該特徵行長條圖的峰值部分,該峰值部分與該特徵矩陣的行或列的不表示該特徵的部分相對應;以及 針對該特徵矩陣的行或列的每個元素,從該元素的值中減去該峰值部分的中心值。
- 如請求項7所述之方法,其中,從該元素的值中減去該峰值部分的中心值包括從 (ii) 該元素的值中減去 (i) 該行或列中與該峰值部分相對應的所有值的平均值。
- 如請求項1-4中任一項所述之方法,進一步包括: 針對該替代區域矩陣的每一行或每一列, 生成替代區域行長條圖, 識別該替代區域行長條圖的峰值部分,以及 確定代表該替代區域行長條圖的峰值部分的寬度的數字範圍, 其中,生成該合成圖像包括基於 (i) 該特徵矩陣的每一行或每一列的數字範圍和 (ii) 該標準化特徵矩陣來生成該合成圖像。
- 如請求項9所述之方法,其中,生成該合成圖像包括,針對該特徵矩陣的每一行或每一列: 針對該特徵矩陣的行或列的每個元素,確定該特徵矩陣的元素是否具有該數字範圍內的值;以及 藉由以下任一方式修改作為該原始圖像的數值表示的原始圖像矩陣:(i) 當該特徵矩陣的元素的值在該數字範圍內時,保留該原始圖像矩陣中的對應元素的原始值,或 (ii) 當該特徵矩陣的元素的值不在該數字範圍內時,將該原始圖像矩陣中的對應元素設置為等於該原始值與該特徵矩陣中的元素值之和。
- 如請求項10所述之方法,其中,生成該合成圖像包括將修改後的原始圖像矩陣轉換為點陣圖圖像。
- 如請求項1-4中任一項所述之方法,其中,接收或產生該特徵矩陣包括旋轉該特徵矩陣或該特徵圖像。
- 如請求項12所述之方法,其中,旋轉該特徵矩陣或該特徵圖像包括將該特徵矩陣或該特徵圖像旋轉基於以下各項的量:(i) 該特徵圖像中描繪的特徵的旋轉和 (ii) 該特徵圖像中描繪的特徵的期望旋轉。
- 如請求項13所述之方法,進一步包括: 基於該特徵將被轉移到的區域的定位來確定該期望旋轉。
- 如請求項1-4中任一項所述之方法,其中,接收或產生該特徵矩陣包括調整該特徵矩陣或該特徵圖像的大小。
- 如請求項1-4中任一項所述之方法,進一步包括: 針對與特徵庫中的不同特徵相對應的多個特徵中的每一個重複該方法。
- 如請求項1-4中任一項所述之方法,進一步包括: 藉由針對多個原始圖像中的每一個重複該方法來生成多個合成圖像。
- 如請求項17所述之方法,進一步包括: 使用該多個合成圖像和該多個原始圖像來訓練用於自動視覺檢查的神經網路。
- 如請求項18所述之方法,進一步包括: 使用訓練後的神經網路檢查多個圖像是否存在所描繪的缺陷。
- 一種系統,包括: 一個或多個處理器;以及 一個或多個非暫態電腦可讀介質,該一個或多個非暫態電腦可讀介質存儲有指令,該等指令當由該一個或多個處理器執行時,使該系統執行以下操作 接收或生成特徵矩陣,該特徵矩陣係描繪特徵的特徵圖像的數值表示,其中,該特徵矩陣的每個元素與該特徵圖像的不同像素相對應; 接收或生成替代區域矩陣,該替代區域矩陣係該特徵將被轉移到的原始圖像內的區域的數值表示,其中,該替代區域矩陣的每個元素與該原始圖像的不同像素相對應; 相對於該特徵矩陣中的不表示該特徵的部分對該特徵矩陣進行標準化;以及 基於 (i) 該替代區域矩陣和 (ii) 該標準化特徵矩陣來生成合成圖像。
- 如請求項20所述之系統,其中,對該特徵矩陣進行標準化包括逐行或逐列地對該特徵矩陣進行標準化。
- 如請求項21所述之系統,其中,逐行或逐列地對該特徵矩陣進行標準化包括,針對該特徵矩陣的每一行或每一列: 生成該特徵矩陣的行或列的元素值的特徵行長條圖。
- 如請求項22所述之方法,其中,逐行或逐列地對該特徵矩陣進行標準化進一步包括,針對該特徵矩陣的每一行或每一列: 識別該特徵行長條圖的峰值部分,該峰值部分與該特徵矩陣的行或列的不表示該特徵的部分相對應;以及 針對該特徵矩陣的行或列的每個元素,從該元素的值中減去該峰值部分的中心值。
- 如請求項23所述之系統,其中,從該元素的值中減去該峰值部分的中心值包括從 (ii) 該元素的值中減去 (i) 該行或列中與該峰值部分相對應的所有值的平均值。
- 如請求項20-24中任一項所述之系統,其中,該等指令進一步使該系統執行以下操作: 針對該替代區域矩陣的每一行或每一列, 生成替代區域行長條圖, 識別該替代區域行長條圖的峰值部分,以及 確定代表該替代區域行長條圖的峰值部分的寬度的數字範圍, 其中,生成該合成圖像包括基於 (i) 該特徵矩陣的每一行或每一列的數字範圍和 (ii) 該標準化特徵矩陣來生成該合成圖像。
- 如請求項25所述之系統,其中,生成該合成圖像包括: 針對該特徵矩陣的每一行或每一列, 針對該特徵矩陣的行或列的每個元素,確定該特徵矩陣的元素是否具有該數字範圍內的值;以及 藉由以下任一方式修改作為該原始圖像的數值表示的原始圖像矩陣:(i) 當該特徵矩陣的元素的值在該數字範圍內時,保留該原始圖像矩陣中的對應元素的原始值,或 (ii) 當該特徵矩陣的元素的值不在該數字範圍內時,將該原始圖像矩陣中的對應元素設置為等於該原始值與該特徵矩陣中的元素值之和;以及 將修改後的原始圖像矩陣轉換為點陣圖圖像。
- 如請求項20-24中任一項所述之系統,其中,接收或產生該特徵矩陣包括旋轉該特徵矩陣或該特徵圖像。
- 如請求項27所述之系統,其中,旋轉該特徵矩陣或該特徵圖像包括將該特徵矩陣或該特徵圖像旋轉基於以下各項的量:(i) 該特徵圖像中描繪的特徵的旋轉和 (ii) 該特徵圖像中描繪的特徵的期望旋轉。
- 如請求項28所述之系統,其中,該等指令進一步使該系統執行以下操作: 基於該特徵將被轉移到的區域的定位來確定該期望旋轉。
- 如請求項20-24中任一項所述之系統,其中,接收或產生該特徵矩陣包括調整該特徵矩陣或該特徵圖像的大小。
- 一種藉由消除原始圖像中描繪的缺陷來生成合成圖像之方法,該方法包括: 遮罩該原始圖像中的描繪該缺陷的部分; 至少部分地藉由以下各項生成該合成圖像 計算對應關係指標,該對應關係指標指示 (i) 該原始圖像的與被遮罩部分相鄰的部分與 (ii) 該原始圖像的其他部分之間的對應關係,以及 使用所計算的對應關係指標用無缺陷的圖像部分填充該原始圖像的被遮罩部分;以及 使用該合成圖像來訓練用於自動視覺檢查的神經網路。
- 如請求項31所述之方法,其中,計算該對應關係指標包括: 針對該原始圖像的與被遮罩部分相鄰的多個相鄰部分中的每一個計算第一統計資料; 針對該原始圖像的在 (i) 該被遮罩部分和 (ii) 該多個相鄰部分兩者之外的多個部分中的每一個計算第二統計資料;以及 基於該等第一統計資料和該等第二統計資料來計算該對應關係指標。
- 如請求項31或32所述之方法,其中: 該原始圖像係容器的圖像;並且 該缺陷與該容器或該容器內容物相關聯。
- 如請求項33所述之方法,其中: 該容器係注射器;並且 該缺陷與該注射器的筒、該注射器的柱塞、該注射器的針頭護罩或該注射器內的流體相關聯。
- 如請求項33所述之方法,其中: 該容器係小瓶;並且 該缺陷與該小瓶的壁、該小瓶的蓋、該小瓶的卷邊或該小瓶內的流體或凍乾餅相關聯。
- 如請求項31或32所述之方法,進一步包括: 藉由針對多個原始圖像中的每一個重複該方法來生成多個合成圖像, 其中,訓練用於自動視覺檢查的神經網路包括使用該多個合成圖像來訓練該神經網路。
- 如請求項36所述之方法,其中,訓練用於自動視覺檢查的神經網路包括使用該多個合成圖像和該多個原始圖像來訓練該神經網路。
- 如請求項31或32所述之方法,進一步包括: 使用訓練後的神經網路檢查多個圖像是否存在缺陷。
- 一種系統,包括: 一個或多個處理器;以及 一個或多個非暫態電腦可讀介質,該一個或多個非暫態電腦可讀介質存儲有指令,該等指令當由該一個或多個處理器執行時,使該系統執行以下操作 遮罩原始圖像中的描繪缺陷的部分; 至少部分地藉由以下各項生成合成圖像 計算對應關係指標,該對應關係指標指示 (i) 該原始圖像的與被遮罩部分相鄰的部分與 (ii) 該原始圖像的其他部分之間的對應關係,以及 使用所計算的對應關係指標用無缺陷的圖像部分填充該原始圖像的被遮罩部分;以及 使用該合成圖像來訓練用於自動視覺檢查的神經網路。
- 如請求項39所述之系統,其中,計算該對應關係指標包括: 針對該原始圖像的與被遮罩部分相鄰的多個相鄰部分中的每一個計算第一統計資料; 針對該原始圖像的在 (i) 該被遮罩部分和 (ii) 該多個相鄰部分兩者之外的多個部分中的每一個計算第二統計資料;以及 基於該等第一統計資料和該等第二統計資料來計算該對應關係指標。
- 如請求項39或40所述之系統,其中: 該原始圖像係容器的圖像;並且 該缺陷與該容器或該容器內容物相關聯。
- 如請求項41所述之系統,其中: 該容器係注射器;並且 該缺陷與該注射器的筒、該注射器的柱塞、該注射器的針頭護罩或該注射器內的流體相關聯。
- 如請求項41所述之系統,其中: 該容器係小瓶;並且 該缺陷與該小瓶的壁、該小瓶的蓋、該小瓶的卷邊或該小瓶內的流體或凍乾餅相關聯。
- 一種藉由消除或修改原始圖像中描繪的特徵、或藉由將描繪的特徵添加到該等原始圖像來生成合成圖像之方法,該方法包括: 針對多個訓練圖像中的每一個,至少藉由將該訓練圖像和對應的訓練掩模作為單獨輸入應用於該部分卷積模型來訓練部分卷積模型,該部分卷積模型包括 (i) 具有一系列卷積層的編碼器和 (ii) 具有一系列轉置卷積層的解碼器; 針對該等原始圖像中的每一個,至少藉由將 (i) 該原始圖像或該原始圖像的修改版本和 (ii) 對應的掩模作為單獨輸入應用於訓練後的部分卷積模型來生成該等合成圖像;以及 使用該等合成圖像來訓練用於自動視覺檢查的神經網路。
- 如請求項44所述之方法,其中,該方法藉由消除該等原始圖像中描繪的缺陷來生成該等合成圖像。
- 如請求項45所述之方法,其中: 生成該等合成圖像包括針對該等原始圖像中的每一個將該原始圖像和對應的掩模作為單獨輸入應用於該訓練後的部分卷積模型; 該原始圖像係描繪對應缺陷的圖像;並且 對應的掩模當應用於該原始圖像時會遮掩對應的缺陷。
- 如請求項46所述之方法,其中,該等訓練圖像、該等原始圖像和該等合成圖像描繪了容器。
- 如請求項47所述之方法,其中,該等容器係注射器。
- 如請求項48所述之方法,其中,對應的缺陷係注射器筒缺陷、注射器柱塞缺陷或與注射器內容物相關聯的缺陷。
- 如請求項47所述之方法,其中,該等容器係小瓶。
- 如請求項50所述之方法,其中,對應的缺陷係小瓶壁缺陷、小瓶蓋缺陷、小瓶卷邊缺陷或與小瓶內容物相關聯的缺陷。
- 如請求項44所述之方法,其中,該方法藉由將描繪的缺陷添加到該等原始圖像或修改該等原始圖像中描繪的特徵來生成該等合成圖像。
- 如請求項52所述之方法,其中: 生成該等合成圖像包括針對該等原始圖像中的每一個, 藉由用特徵圖像替換該原始圖像的特定部分來修改該原始圖像,以及 將修改後的原始圖像和對應的掩模作為單獨輸入應用於該訓練後的部分卷積模型;並且 對應的掩模當應用於該修改後的原始圖像時會遮掩該原始圖像的特定部分。
- 如請求項53所述之方法,其中,生成該等合成圖像包括針對該等原始圖像中的每一個自動生成與該原始圖像的特定部分相對應的對應掩模。
- 如請求項53或54所述之方法,其中,該等訓練圖像、該等原始圖像和該等合成圖像描繪了容器。
- 如請求項55所述之方法,其中,該等容器係注射器。
- 如請求項56所述之方法,其中: 該方法藉由將描繪的缺陷添加到原始圖像來生成該等合成圖像;並且 該特徵圖像係注射器筒缺陷、注射器柱塞缺陷或與注射器內容物相關聯的缺陷的圖像。
- 如請求項55所述之方法,其中,該等容器係小瓶。
- 如請求項58所述之方法,其中: 該方法藉由將描繪的缺陷添加到原始圖像來生成該等合成圖像;並且 該特徵圖像係小瓶壁缺陷、小瓶蓋缺陷、小瓶卷邊缺陷或與小瓶內容物相關聯的缺陷的圖像。
- 如請求項53或54所述之方法,其中: 該方法藉由修改該等原始圖像中描繪的特徵來生成該等合成圖像;並且 該特徵圖像係彎月面的圖像。
- 如請求項52所述之方法,其中: 對應的訓練掩模當應用於該訓練圖像時會遮掩該訓練圖像中描繪的對應特徵;並且 生成該等合成圖像包括針對該等原始圖像中的每一個將該原始圖像和對應的掩模作為單獨輸入應用於該訓練後的部分卷積模型。
- 如請求項61所述之方法,其中,該等訓練圖像、該等原始圖像和該等合成圖像描繪了容器。
- 如請求項62所述之方法,其中,該等容器係注射器。
- 如請求項63所述之方法,其中: 該方法藉由將描繪的缺陷添加到原始圖像來生成該等合成圖像;並且 對應的特徵係注射器筒缺陷、注射器柱塞缺陷或與注射器內容物相關聯的缺陷。
- 如請求項62所述之方法,其中,該等容器係小瓶。
- 如請求項63所述之方法,其中: 該方法藉由將描繪的缺陷添加到原始圖像來生成該等合成圖像;並且 對應的特徵係小瓶壁缺陷、小瓶蓋缺陷、小瓶卷邊缺陷或與小瓶內容物相關聯的缺陷。
- 如請求項61-66中任一項所述之方法,其中: 訓練該部分卷積模型包括訓練該部分卷積模型以添加特定類型的缺陷;並且 對應的特徵對應於特定類型的缺陷。
- 如請求項61所述之方法,其中: 該方法藉由修改該等原始圖像中描繪的特徵來生成該等合成圖像;並且 對應的特徵係彎月面。
- 如請求項44-54、61-66及68中任一項所述之方法,其中,訓練該部分卷積模型包括最小化多個損失,該多個損失至少包括有效損失、孔洞損失、感知損失、風格損失和變化損失。
- 一種系統,包括: 一個或多個處理器;以及 一個或多個非暫態電腦可讀介質,該一個或多個非暫態電腦可讀介質存儲有指令,該等指令當由該一個或多個處理器執行時,使該系統執行以下操作 針對多個訓練圖像中的每一個,至少藉由將該訓練圖像和對應的訓練掩模作為單獨輸入應用於該部分卷積模型來訓練部分卷積模型,該部分卷積模型包括 (i) 具有一系列卷積層的編碼器和 (ii) 具有一系列轉置卷積層的解碼器; 針對多個原始圖像中的每一個,至少藉由將 (i) 該原始圖像或該原始圖像的修改版本和 (ii) 對應的掩模作為單獨輸入應用於訓練後的部分卷積模型來生成多個合成圖像;以及 使用該等合成圖像來訓練用於自動視覺檢查的神經網路。
- 如請求項70所述之系統,其中,該系統藉由消除該等原始圖像中描繪的缺陷來生成該等合成圖像。
- 如請求項71所述之系統,其中: 生成該等合成圖像包括針對該等原始圖像中的每一個將該原始圖像和對應的掩模作為單獨輸入應用於該訓練後的部分卷積模型; 該原始圖像係描繪對應缺陷的圖像;並且 對應的掩模當應用於該原始圖像時會遮掩對應的缺陷。
- 如請求項72所述之系統,其中,該等訓練圖像、該等原始圖像和該等合成圖像描繪了容器。
- 如請求項70所述之系統,其中,該系統藉由將描繪的缺陷添加到該等原始圖像或修改該等原始圖像中描繪的特徵來生成該等合成圖像。
- 如請求項74所述之系統,其中: 生成該等合成圖像包括針對該等原始圖像中的每一個, 藉由用特徵圖像替換該原始圖像的特定部分來修改該原始圖像,以及 將修改後的原始圖像和對應的掩模作為單獨輸入應用於該訓練後的部分卷積模型;並且 對應的掩模當應用於該修改後的原始圖像時會遮掩該原始圖像的特定部分。
- 如請求項75所述之系統,其中,該等訓練圖像、該等原始圖像和該等合成圖像描繪了容器。
- 如請求項75或76所述之系統,其中: 該系統藉由將描繪的缺陷添加到原始圖像來生成該等合成圖像;並且 該特徵圖像係缺陷的圖像。
- 如請求項75或76所述之系統,其中: 該系統藉由修改該等原始圖像中描繪的特徵來生成該等合成圖像;並且 該特徵圖像係彎月面的圖像。
- 如請求項74所述之系統,其中: 對應的訓練掩模當應用於該訓練圖像時會遮掩該訓練圖像中描繪的對應特徵;並且 生成該等合成圖像包括針對該等原始圖像中的每一個將該原始圖像和對應的掩模作為單獨輸入應用於該訓練後的部分卷積模型。
- 如請求項79所述之系統,其中,該等訓練圖像、該等原始圖像和該等合成圖像描繪了容器。
- 如請求項79或80所述之系統,其中: 該系統藉由將描繪的缺陷添加到原始圖像來生成該等合成圖像;並且 對應的特徵係該訓練圖像中描繪的缺陷。
- 如請求項81所述之系統,其中: 訓練該部分卷積模型包括訓練該部分卷積模型以添加特定類型的缺陷;並且 對應的特徵對應於特定類型的缺陷。
- 如請求項79或80所述之系統,其中: 該系統藉由修改該等原始圖像中描繪的特徵來生成該等合成圖像;並且 對應的特徵係彎月面。
- 如請求項70-76、79及80中任一項所述之系統,其中,訓練該部分卷積模型包括最小化多個損失,該多個損失至少包括有效損失、孔洞損失、感知損失、風格損失和變化損失。
- 一種評估在訓練圖像庫時使用的合成圖像之方法,該方法包括: 基於圖像集的像素值計算指示 (i) 該圖像集中的每個圖像與 (ii) 該圖像集中的每個其他圖像之間的差異的指標; 基於計算的指標生成閾值差值;以及 針對多個合成圖像中的每一個, 基於該合成圖像的像素值計算合成圖像指標,以及 基於該合成圖像指標和該閾值差值來確定該合成圖像的可接受性。
- 如請求項85所述之方法,進一步包括: 針對該多個合成圖像中的每一個,基於該合成圖像的可接受性,要麼將該合成圖像添加到該訓練圖像庫,要麼從該訓練圖像庫中省去該合成圖像。
- 如請求項86所述之方法,進一步包括: 在添加或省去該等合成圖像中的每一個之後,使用該訓練圖像庫來訓練用於自動視覺檢查的神經網路。
- 如請求項87所述之方法,進一步包括: 使用訓練後的神經網路檢查多個容器圖像是否存在所描繪的缺陷。
- 如請求項85-88中任一項所述之方法,其中,計算指示每個圖像與每個其他圖像之間的差異的指標包括: 計算 (i) 該圖像集中的每個圖像的像素值與 (ii) 該圖像集中的每個其他圖像的像素值之間的均方誤差。
- 如請求項89所述之方法,其中,生成該閾值差值包括: 從針對由該圖像集形成的圖像對計算的均方誤差中確定最大均方誤差。
- 如請求項89所述之方法,其中,計算該合成圖像指標包括: 計算多個合成圖像均方誤差,每個合成圖像均方誤差係 (i) 該合成圖像的像素值與 (ii) 該圖像集中的相應圖像的像素值之間的均方誤差。
- 如請求項91所述之方法,其中,確定該合成圖像的可接受性係基於 (i) 該等合成圖像均方誤差中的最大值和 (ii) 該最大均方誤差。
- 如請求項91所述之方法,其中,確定該合成圖像的可接受性係基於 (i) 該等合成圖像均方誤差的平均值和 (ii) 該最大均方誤差。
- 如請求項91所述之方法,其中,確定該合成圖像的可接受性包括: 在顯示器上呈現表示該等合成圖像的合成圖像均方誤差的長條圖。
- 如請求項85-88中任一項所述之方法,其中,該圖像集係未經數位改變的容器圖像集,並且該等合成圖像係經過數位改變的容器圖像。
- 一種系統,包括: 一個或多個處理器;以及 一個或多個非暫態電腦可讀介質,該一個或多個非暫態電腦可讀介質存儲有指令,該等指令當由該一個或多個處理器執行時,使該系統執行以下操作 基於圖像集的像素值計算指示 (i) 該圖像集中的每個圖像與 (ii) 該圖像集中的每個其他圖像之間的差異的指標; 基於計算的指標生成閾值差值;以及 針對多個合成圖像中的每一個, 基於該合成圖像的像素值計算合成圖像指標,以及 基於該合成圖像指標和該閾值差值來確定該合成圖像的可接受性。
- 如請求項96所述之系統,其中,計算指示每個圖像與每個其他圖像之間的差異的指標包括: 計算 (i) 該圖像集中的每個圖像的像素值與 (ii) 該圖像集中的每個其他圖像的像素值之間的均方誤差。
- 如請求項97所述之系統,其中,生成該閾值差值包括: 從針對由該圖像集形成的圖像對計算的均方誤差中確定最大均方誤差。
- 如請求項97或98所述之系統,其中,計算該合成圖像指標包括: 計算多個合成圖像均方誤差,每個合成圖像均方誤差係 (i) 該合成圖像的像素值與 (ii) 該圖像集中的相應圖像的像素值之間的均方誤差。
- 如請求項99所述之系統,其中,確定該合成圖像的可接受性基於: 該等合成圖像均方誤差中的最大值和該最大均方誤差;或者 該等合成圖像均方誤差的平均值和該最大均方誤差。
- 如請求項99所述之系統,其中,該等指令進一步使該系統執行以下操作: 在顯示器上呈現表示該等合成圖像的合成圖像均方誤差的長條圖。
- 如請求項96-98中任一項所述之系統,其中,該圖像集係未經數位改變的容器圖像集,並且該等合成圖像係經過數位改變的容器圖像。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202063120508P | 2020-12-02 | 2020-12-02 | |
US63/120,508 | 2020-12-02 |
Publications (1)
Publication Number | Publication Date |
---|---|
TW202240546A true TW202240546A (zh) | 2022-10-16 |
Family
ID=79025147
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW110144774A TW202240546A (zh) | 2020-12-02 | 2021-12-01 | 用於自動視覺檢查之圖像增強技術 |
Country Status (13)
Country | Link |
---|---|
US (1) | US20240095983A1 (zh) |
EP (1) | EP4256524A1 (zh) |
JP (1) | JP2023551696A (zh) |
KR (1) | KR20230116847A (zh) |
CN (1) | CN116830157A (zh) |
AR (1) | AR124217A1 (zh) |
AU (1) | AU2021392638A1 (zh) |
CA (1) | CA3203163A1 (zh) |
CL (1) | CL2023001575A1 (zh) |
IL (1) | IL303112A (zh) |
MX (1) | MX2023006357A (zh) |
TW (1) | TW202240546A (zh) |
WO (1) | WO2022119870A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024035640A2 (en) * | 2022-08-12 | 2024-02-15 | Saudi Arabian Oil Company | Probability of detection of lifecycle phases of corrosion under insulation using artificial intelligence and temporal thermography |
-
2021
- 2021-12-01 CA CA3203163A patent/CA3203163A1/en active Pending
- 2021-12-01 US US18/039,898 patent/US20240095983A1/en active Pending
- 2021-12-01 AR ARP210103331A patent/AR124217A1/es unknown
- 2021-12-01 TW TW110144774A patent/TW202240546A/zh unknown
- 2021-12-01 EP EP21831181.9A patent/EP4256524A1/en active Pending
- 2021-12-01 WO PCT/US2021/061309 patent/WO2022119870A1/en active Application Filing
- 2021-12-01 KR KR1020237021712A patent/KR20230116847A/ko unknown
- 2021-12-01 AU AU2021392638A patent/AU2021392638A1/en active Pending
- 2021-12-01 MX MX2023006357A patent/MX2023006357A/es unknown
- 2021-12-01 IL IL303112A patent/IL303112A/en unknown
- 2021-12-01 JP JP2023532732A patent/JP2023551696A/ja active Pending
- 2021-12-01 CN CN202180092354.1A patent/CN116830157A/zh active Pending
-
2023
- 2023-06-01 CL CL2023001575A patent/CL2023001575A1/es unknown
Also Published As
Publication number | Publication date |
---|---|
IL303112A (en) | 2023-07-01 |
KR20230116847A (ko) | 2023-08-04 |
EP4256524A1 (en) | 2023-10-11 |
CL2023001575A1 (es) | 2023-11-10 |
JP2023551696A (ja) | 2023-12-12 |
CA3203163A1 (en) | 2022-06-09 |
CN116830157A (zh) | 2023-09-29 |
AU2021392638A1 (en) | 2023-06-22 |
AR124217A1 (es) | 2023-03-01 |
WO2022119870A1 (en) | 2022-06-09 |
US20240095983A1 (en) | 2024-03-21 |
MX2023006357A (es) | 2023-06-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9773302B2 (en) | Three-dimensional object model tagging | |
TWI626440B (zh) | 缺陷檢測裝置、缺陷檢測方法及程式產品 | |
US20230196096A1 (en) | Deep Learning Platforms for Automated Visual Inspection | |
JP2017049974A (ja) | 識別器生成装置、良否判定方法、およびプログラム | |
CN111507976B (zh) | 基于多角度成像的缺陷检测方法及系统 | |
CN110596120A (zh) | 玻璃边界缺陷检测方法、装置、终端及存储介质 | |
JP7489240B2 (ja) | 自動表面評価のためのシステム及び方法 | |
KR102559021B1 (ko) | 불량 이미지 생성 장치 및 방법 | |
CN114170227B (zh) | 产品表面缺陷检测方法、装置、设备及存储介质 | |
Bonfiglioli et al. | The eyecandies dataset for unsupervised multimodal anomaly detection and localization | |
TW202240546A (zh) | 用於自動視覺檢查之圖像增強技術 | |
CN116542963A (zh) | 一种基于机器学习的浮法玻璃缺陷检测系统及检测方法 | |
KR20220111214A (ko) | 인공지능 기반 제품 결함 검사 방법, 장치 및 컴퓨터 프로그램 | |
WO2022241574A1 (en) | Texture mapping to polygonal models for industrial inspections | |
KR20230036650A (ko) | 영상 패치 기반의 불량 검출 시스템 및 방법 | |
JP2007057705A (ja) | 表示パネルの検査方法および検査装置 | |
JP2021174194A (ja) | 学習用データ処理装置、学習装置、学習用データ処理方法、およびプログラム | |
JP2006145228A (ja) | ムラ欠陥検出方法及び装置 | |
JP7273358B2 (ja) | 画像処理装置、学習済みモデル、コンピュータプログラム、および、属性情報の出力方法 | |
US20220413476A1 (en) | Offline Troubleshooting and Development for Automated Visual Inspection Stations | |
CN114820428A (zh) | 图像处理方法以及图像处理装置 | |
JP2023162652A (ja) | 学習用画像生成プログラム、学習用画像生成装置、及び学習用画像生成方法 | |
CN116601665A (zh) | 用于对图像进行分类的方法和用于对物体进行光学检查的方法 | |
CN116797602A (zh) | 一种用于工业产品检测的表面缺陷鉴定方法和装置 | |
CN115984845A (zh) | 一种物体识别方法、系统及电子设备 |