JP2023551696A - 自動外観検査用の画像拡張技術 - Google Patents
自動外観検査用の画像拡張技術 Download PDFInfo
- Publication number
- JP2023551696A JP2023551696A JP2023532732A JP2023532732A JP2023551696A JP 2023551696 A JP2023551696 A JP 2023551696A JP 2023532732 A JP2023532732 A JP 2023532732A JP 2023532732 A JP2023532732 A JP 2023532732A JP 2023551696 A JP2023551696 A JP 2023551696A
- Authority
- JP
- Japan
- Prior art keywords
- image
- defect
- feature
- images
- original
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000011179 visual inspection Methods 0.000 title claims abstract description 61
- 238000005516 engineering process Methods 0.000 title description 5
- 230000007547 defect Effects 0.000 claims abstract description 341
- 238000000034 method Methods 0.000 claims abstract description 192
- 239000002131 composite material Substances 0.000 claims abstract description 185
- 238000012549 training Methods 0.000 claims abstract description 139
- 238000013528 artificial neural network Methods 0.000 claims abstract description 66
- 239000011159 matrix material Substances 0.000 claims description 164
- 230000005499 meniscus Effects 0.000 claims description 31
- 230000036961 partial effect Effects 0.000 claims description 29
- 239000012530 fluid Substances 0.000 claims description 20
- 238000011049 filling Methods 0.000 claims description 4
- 230000000873 masking effect Effects 0.000 claims description 3
- 230000017105 transposition Effects 0.000 abstract description 22
- 238000013135 deep learning Methods 0.000 abstract description 18
- 238000011161 development Methods 0.000 abstract description 10
- 238000003908 quality control method Methods 0.000 abstract description 9
- 230000002950 deficient Effects 0.000 description 36
- 239000011521 glass Substances 0.000 description 31
- 238000012545 processing Methods 0.000 description 27
- 230000008569 process Effects 0.000 description 25
- 238000012360 testing method Methods 0.000 description 21
- 239000007788 liquid Substances 0.000 description 20
- 230000003190 augmentative effect Effects 0.000 description 17
- 238000010586 diagram Methods 0.000 description 14
- 238000013136 deep learning model Methods 0.000 description 11
- 239000004033 plastic Substances 0.000 description 10
- 230000008859 change Effects 0.000 description 9
- 230000018109 developmental process Effects 0.000 description 9
- 239000000825 pharmaceutical preparation Substances 0.000 description 8
- 239000002245 particle Substances 0.000 description 7
- 229940127557 pharmaceutical product Drugs 0.000 description 7
- 238000010200 validation analysis Methods 0.000 description 7
- 238000012800 visualization Methods 0.000 description 7
- 238000011156 evaluation Methods 0.000 description 6
- 239000000463 material Substances 0.000 description 6
- 230000007704 transition Effects 0.000 description 6
- 230000003416 augmentation Effects 0.000 description 5
- 230000001364 causal effect Effects 0.000 description 5
- 230000000295 complement effect Effects 0.000 description 5
- 238000001514 detection method Methods 0.000 description 5
- 239000003814 drug Substances 0.000 description 5
- 230000001747 exhibiting effect Effects 0.000 description 5
- 238000003384 imaging method Methods 0.000 description 5
- 238000007689 inspection Methods 0.000 description 5
- 238000004519 manufacturing process Methods 0.000 description 5
- 238000012805 post-processing Methods 0.000 description 5
- 239000011800 void material Substances 0.000 description 5
- 238000013145 classification model Methods 0.000 description 4
- 229940079593 drug Drugs 0.000 description 4
- 238000005286 illumination Methods 0.000 description 4
- 230000003993 interaction Effects 0.000 description 4
- 230000007246 mechanism Effects 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
- 239000005060 rubber Substances 0.000 description 4
- 238000003756 stirring Methods 0.000 description 4
- 230000009466 transformation Effects 0.000 description 4
- 238000005299 abrasion Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 239000012611 container material Substances 0.000 description 3
- 230000000694 effects Effects 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
- 238000013507 mapping Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 241001292396 Cirrhitidae Species 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 230000006870 function Effects 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
- 229910052751 metal Inorganic materials 0.000 description 2
- 239000003973 paint Substances 0.000 description 2
- 238000011176 pooling Methods 0.000 description 2
- 230000002829 reductive effect Effects 0.000 description 2
- 238000000844 transformation Methods 0.000 description 2
- ORILYTVJVMAKLC-UHFFFAOYSA-N Adamantane Natural products C1C(C2)CC3CC1CC2C3 ORILYTVJVMAKLC-UHFFFAOYSA-N 0.000 description 1
- 238000012935 Averaging Methods 0.000 description 1
- 101150049278 US20 gene Proteins 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- WYTGDNHDOZPMIW-RCBQFDQVSA-N alstonine Natural products C1=CC2=C3C=CC=CC3=NC2=C2N1C[C@H]1[C@H](C)OC=C(C(=O)OC)[C@H]1C2 WYTGDNHDOZPMIW-RCBQFDQVSA-N 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000010420 art technique Methods 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
- 230000001010 compromised effect Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000006185 dispersion Substances 0.000 description 1
- 229940126534 drug product Drugs 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000012535 impurity Substances 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 238000012804 iterative process Methods 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 150000002739 metals Chemical class 0.000 description 1
- 230000003278 mimic effect Effects 0.000 description 1
- 238000002156 mixing Methods 0.000 description 1
- 238000000465 moulding 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
- 238000009877 rendering Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000000284 resting effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 239000007787 solid Substances 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
- 239000004575 stone 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
- 230000005945 translocation Effects 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
- 238000013024 troubleshooting 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)
- Computer Vision & Pattern Recognition (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Quality & Reliability (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Biomedical Technology (AREA)
- Multimedia (AREA)
- Chemical & Material Sciences (AREA)
- Analytical Chemistry (AREA)
- Biochemistry (AREA)
- Immunology (AREA)
- Pathology (AREA)
- Image Analysis (AREA)
- Image Processing (AREA)
- Eye Examination Apparatus (AREA)
- Investigating Materials By The Use Of Optical Means Adapted For Particular Applications (AREA)
- Investigating Or Analysing Biological Materials (AREA)
Abstract
様々な技術が、画像分類用のAVIニューラルネットワークなどの自動外観検査(AVI)モデルの訓練及び/又は検証に使用され得る、画像ライブラリの開発を容易にする。一態様では、算術転置アルゴリズムを使用して、画素レベルのリアリズムで、元の画像上に特徴(例えば、欠陥)を転置することによって、元の画像から合成画像を生成する。他の態様では、元の画像から現実的な合成画像を生成するために、デジタルインペインティング技術が使用される。深層学習ベースのインペインティング技術は、欠陥又は他の示された特徴を追加、除去、及び/又は修正するために使用され得る。更に他の態様では、AVIモデルを訓練及び/若しくは検証するための画像ライブラリの適合性を評価するため、並びに/又は別個の画像がそのようなライブラリに含めるのに適しているかどうかを評価するために、品質管理技術が使用される。
Description
本出願は、概して、製薬又は他のアプリケーション用の自動外観検査システムに関し、より具体的には、そのようなシステムの開発、訓練、及び/又は検証において使用する画像ライブラリを拡張する技術に関する。
様々な背景において、品質管理手順では、サンプルに欠陥がないかを慎重に検査する必要があり、欠陥を示すいかなるサンプルも、拒絶され、廃棄され、及び/又は更に分析される。例えば、医薬製造の背景では、販売又は流通の前に、容器(例えば、シリンジ若しくはバイアル)及び/又はその内容物(例えば、液体若しくは凍結乾燥医薬品)に欠陥がないかを厳格に検査しなければならない。同様に、他の多くの産業でも、製品品質を保証するため、又は他の目的で、外観検査に依存している。ヒューマンエラーを排除し、コストを低減し、及び/又は検査時間を短縮するため(例えば、商業生産において大量の薬剤又は他のアイテムを扱うため)に、欠陥検査タスクは、ますます自動化されてきている(すなわち、「自動外観検査」又は「AVI」)。例えば、「コンピュータビジョン」又は「マシンビジョン」ソフトウェアは、医薬の背景において使用されてきた。
最近、深層学習技術が、AVI用の有望なツールとして出現している。しかしながら、一般に、これらの技術は、モデル(例えば、ニューラルネットワーク)を開発し、訓練し、且つ完全にテストするために、従来のAVIシステムよりもはるかに多くの画像を必要とする。更に、ロバストなモデル性能は、一般に、慎重に設計された画像セットに依存する。例えば、画像セットは、(例えば、異なる位置における欠陥を示し、且つ異なる形状及びサイズの範囲を有することなどによって)十分に多様な状態を示すべきである。更に、たとえ大規模で多様な訓練画像ライブラリであっても、画像セットが深層学習モデルに誤った理由に対する(例えば、無関係な画像特徴に基づく)決定を行わせる場合は、不良なAVI性能をもたらす可能性がある。これは、示された欠陥が他の(欠陥なし)画像特徴に対して小さいか又は当たり障りのないものである背景又はシナリオにおいて、特に問題となる可能性がある。
深層学習、及び更に従来の旧来の(例えば、マシンビジョン)AVIシステムの両方の場合、サンプル画像ライブラリを使用する開発及び適格化プロセスは、偽陰性又は「偽受容」(すなわち、欠陥を見逃すこと)、並びに偽陽性又は「偽拒絶」(すなわち、欠陥を誤って特定すること)が許容閾値内にあることを確実にするべきである。例えば、特定の背景(例えば、患者の安全が懸念される医薬の背景)では、偽陰性がゼロ又はゼロに近いことが必要とされ得る。偽陽性はそれほど重要ではない可能性もあるが、経済的な観点で非常にコストがかかり得、AVIシステムを開発する際に偽陰性よりも対処が困難であり得る。これら及び他の要因により、画像ライブラリの開発は、非常に複雑で、労働集約的で、且つコストがかかる、高度に反復的なプロセスとなる可能性がある。更に依然として、製品ラインの変更(例えば、新しい薬剤、新しい容器、容器内の薬剤用の新しい充填レベルなど)、又は検査プロセス自体の変更(例えば、異なるタイプのカメラレンズ、カメラの位置又は照明の変更など)により、モデルの再訓練及び/又は再適格化だけでなく、(場合によっては)画像ライブラリの部分的又は全体の再構築が必要になる可能性がある。
本明細書で説明する実施形態は、AVI用のロバストな深層学習モデルを開発、訓練、及び/又は検証するための画像ライブラリの生成及び/又は評価において支援する、自動画像拡張技術に関する。特に、本明細書で開示される様々な画像拡張技術は、(例えば、深層学習AVIアプリケーション用、又はより伝統的なコンピュータ/マシンビジョンAVIアプリケーション用の)訓練ライブラリの範囲を人工的に拡大するために、「元の」画像にデジタル変換を適用するものである。画像ライブラリの拡大のために以前に使用されてきた比較的シンプルな画像変換(例えば、反射、線形スケーリング、及び回転)とは異なり、本明細書に記載の技術は、より大きくてより多様であるだけでなく、よりバランスもとれた、「因果関係」、すなわち、無関係な画像特徴を重視するよりも、正しい理由に対して分類/決定を行う可能性が高く、したがって広範囲のサンプルにわたって良好な性能を提供する可能性が高い、ライブラリの生成を容易にすることができる。因果関係を確実にするために、本明細書に記載の実装形態は、大量の「集団代表的」合成画像(すなわち、実行時動作においてモデルによって推論される画像を十分に代表する合成画像)を生成するために使用される。
本開示の一態様では、新規の算術転置アルゴリズムを使用して、画素レベルのリアリズムで、元の画像上に特徴を転置することによって、元の画像から合成画像を生成する。算術転置アルゴリズムは、欠陥自体の画像を使用して「良好」画像(すなわち、それらの欠陥を示さない画像)を拡張することによって、合成「欠陥あり」画像(すなわち、欠陥を示す画像)を生成するために使用され得る。一例として、アルゴリズムは、欠陥のないシリンジの画像並びにシリンジの欠陥画像を使用して、亀裂、変形したプランジャ、及び/又は他の欠陥を有するシリンジの合成画像を生成することができる。別の例として、アルゴリズムは、欠陥のない本体部品の画像並びに欠陥画像を使用して、欠け、傷、凹み、及び/又は他の欠陥を有する自動車本体部品の合成画像を生成することができる。品質管理又は他の背景では、多数の他のアプリケーションもまた可能である。
本開示の他の態様では、デジタル「インペインティング」技術は、AVIモデル(例えば、深層学習ベースのAVIモデル)の訓練及び/又は検証用の画像ライブラリを補完するために、元の画像から現実的な合成画像を生成するために使用される。そのような一態様では、元の画像内に示された欠陥は、元の画像内の欠陥をマスクし、(1)マスクされた領域に隣接する元の画像の部分と、(2)マスクされた領域の外側の元の画像の他の部分との間の対応指標を計算し、且つ計算された指標に基づいて、マスクされた領域を人工的な欠陥のない部分で充填することによって、除去することができる。画像から欠陥を除去する能力は、訓練画像ライブラリに対して、微妙だが重大な影響を与える可能性がある。特に、補完的な「良好」画像及び「欠陥あり」画像は、AVIモデルを訓練する際に背景上のバイアスの影響を最小化するために、タンデムで使用することができる。
本開示の他のデジタルインペインティング技術は、部分畳み込みに基づく深層学習などの深層学習を活用する。これらの深層学習に基づくインペインティング技術のバリエーションは、元の画像から欠陥を除去するため、元の画像に欠陥を追加するため、及び/又は元の画像内の特徴を修正する(例えば、移動若しくはその外観を変更する)ために、使用することができる。例えば、これらの技術のバリエーションは、医薬品を含むシリンジの画像から亀裂、欠け、繊維、変形したプランジャ、又は他の欠陥を除去するため、欠陥がもともと示されていなかったシリンジ画像にそのような欠陥を追加するため、又は元のシリンジ画像内に示されたメニスカス若しくはプランジャを移動又は他の方法で修正するために使用することができる。これらの深層学習ベースのインペインティング技術は、訓練画像ライブラリの慎重な設計を容易にし、コスト効率の良い方法で訓練画像ライブラリを開発することが従来は困難であった多品種少量生産アプリケーションに対しても良好なソリューションを提供することができる。
一般に、本明細書に開示された画像拡張技術は、「偽受容」及び「偽拒絶」の両方に対して、AVI性能を改善することができる。示された属性/特徴(例えば、メニスカスレベル、空隙サイズ、気泡、ガラス容器壁内の小さい凹凸など)に可変性を加える画像拡張技術は、偽拒絶を低減するために特に有用であり得る。
本開示の更に他の態様では、AVI深層学習モデルを訓練及び/若しくは検証するための画像ライブラリの適合性を評価するため、並びに/又は別個の画像がそのようなライブラリに含めるのに適しているかどうかを評価するために、品質管理技術が使用される。これらは、データセットにわたる画像可変性を評価する「前処理」品質管理技術、及び合成/拡張画像と画像セット(例えば、示された特徴を追加、除去、又は修正することによって変更されていない実画像)との間の類似性の程度を評価する「後処理」品質管理技術の両方を含むことができる。
本明細書で説明する図は、説明のために含められたものであり、本開示を限定するものではないことが当業者に理解されるであろう。図面は、必ずしも縮尺通りではなく、代わりに本開示の原理を示すことに重点が置かれている。場合により、記載される実施の種々の態様は、記載される実施の理解を促進するために誇張又は拡大して示される場合があることを理解されたい。
上記で導入として説明され、以下でより詳細に論じられる様々な概念は、多くの方法のうちのいずれかで実施することができ、記載される概念は、いかなる特定の実施態様の様式にも限定されるものではない。実施態様の例は、例証を目的として提供されている。
本明細書で使用される(相互交換可能に使用される)「合成画像」及び「拡張画像」という用語は、一般に、画像がもともと示すものとは異なる何かを示すためにデジタル的に変更された画像を指し、示されたものの本質を変更しない他のタイプの画像処理(例えば、コントラストの調整、解像度の変更、切り取り、フィルタリングなど)によって生み出される出力と区別されるべきである。逆に、本明細書で言及される「実画像」とは、画像に他のタイプの画像処理が以前に適用されたかどうかにかかわらず、合成/拡張画像ではない画像を指す。本明細書で言及される「元の画像」は、合成/拡張画像を生成するためにデジタル的に修正されている画像であり、実画像又は合成画像(例えば、追加の拡張ラウンドの前に、以前に拡張された画像)であり得る。本明細書において示される「特徴」(例えば、示された「欠陥」)への言及は、画像化されたものの特徴(例えば、シリンジの画像内に示されたシリンジの亀裂若しくはメニスカス、又は構成要素の画像内に示された自動車の本体部品の傷若しくは凹みなど)への言及であり、画像化されたものの性質とは関連のない画像自体の特徴(例えば、画像の色あせた部分若しくは汚れた部分などの、画像の欠損部分若しくは損傷部分など)とは区別される。
図1は、自動外観検査(AVI)訓練及び/又は検証画像ライブラリの開発及び/又は評価に関連する本明細書に記載の様々な技術を実装することができる、例示的なシステム100の簡略ブロック図である。例えば、画像ライブラリは、AVIタスクを実行する1つ以上のニューラルネットワークを訓練するために使用され得る。いったん訓練されて適格化されると、AVIニューラルネットワークは、欠陥を検出するために、製造時の(及び/又は他の背景において)品質管理用に使用され得る。医薬の背景では、例えば、AVIニューラルネットワークは、シリンジ、バイアル、カートリッジ、又は他の容器のタイプに関連する欠陥(例えば、容器の亀裂、傷、汚れ、構成部品の欠落など)を検出し、及び/又は容器内の流体若しくは凍結乾燥医薬品に関連する欠陥(例えば、繊維及び/又は他の異物粒子の存在)を検出するために使用されてもよい。別の例として、自動車の背景では、AVIニューラルネットワークは、自動車又は他の車両の車体構造内の欠陥(例えば、亀裂、傷、凹み、汚れなど)を、製造中及び/又は(例えば、公正な再販価値を判定するのに役立つ、返却されたレンタル車両の状態をチェックするなどの)他の時点で検出するために使用されてもよい。多数の他の使用もまた、可能である。開示された技術は、画像ライブラリの構築に関連するコスト及び時間を実質的に低下させることができるため、AVIニューラルネットワークは、事実上あらゆる品質管理アプリケーション(例えば、販売前の家電機器、住宅サイディング、織物、ガラス製品などの状態のチェック)において目に見える欠陥を検出するために使用されてもよい。本明細書に提供される例は、主に医薬の背景に関するものであるが、本明細書に記載される技術は、そのようなアプリケーションに限定される必要はないことが理解されよう。更に、いくつかの実装形態では、合成画像は AVIニューラルネットワークの訓練以外の目的に使用される。例えば、画像は、深層学習を使用せずにコンピュータビジョンを使用するシステムを適格化するために、代わりに使用されてもよい。
システム100は、訓練画像及び/又は検証画像を生成するように構成された外観検査システム102を含む。具体的には、外観検査システム102は、サンプル(例えば、流体又は凍結乾燥物質を保持する容器)のデジタル画像を捕捉するよう構成されたハードウェア(例えば、搬送機構、光源、カメラなど)、並びにファームウェア及び/又はソフトウェアを含む。外観検査システム102の一例は、図2を参照して以下に説明されるが、任意の適切な外観検査システムが使用されてもよい。いくつかの実施形態では、外観検査システム102は、商業用ライン機器ステーションの重要な態様(例えば、光学系、照明など)を緊密に複製する、オフライン(例えば、実験室ベース)の「模倣ステーション」であり、それによって、商業用ライン機器の過度のダウンタイムを引き起こすことなく訓練及び/又は検証ライブラリの開発を可能にする。例示的な模倣ステーションの開発、配置、及び使用は、PCT特許出願第PCT/US20/59776号明細書(発明の名称「Offline Troubleshooting and Development for Automated Visual Inspection Stations」、2020年11月10日出願)に示されて検討されており、その全体が、参照により本書に組み込まれる。他の実施形態では、外観検査システム102は、生産中にも使用される商業用ライン機器である。
外観検査システム102は、複数のサンプル(例えば、容器)の各々を順次画像化してもよい。この目的のために、外観検査システム102は、各サンプルを画像化のための適切な位置に連続的に移動させ、次いで、いったんサンプルの画像化が完了すると、サンプルを遠ざけるように移動させる、デカルトロボット、コンベヤベルト、カルーセル、スターホイール、及び/又は他の搬送手段を含むか、又はこれらと併せて動作してもよい。図1には示していないが、外観検査システム102は、コンピュータシステム104との通信を可能にする通信インターフェース及びプロセッサを含んでいてもよい。
コンピュータシステム104は、一般に、以下で更に説明するように、外観検査システム102の動作を制御/自動化し、且つ、外観検査システム102によって捕捉/生成された画像を受信及び処理するよう構成され得る。コンピュータシステム104は、本明細書で検討する動作を実行するよう特別にプログラムされた汎用コンピュータであってもよく、又は専用コンピューティングデバイスであってもよい。図1に見られるように、コンピュータシステム104は、処理ユニット110、及びメモリユニット114を備える。しかしながら、いくつかの実施形態では、コンピュータシステム104は、互いに同じ場所に配置されているか、又は互いに離れている2つ以上のコンピュータを含む。これらの分散型実施形態では、処理ユニット110及びメモリユニット114に関連する、又は処理ユニット110がメモリユニット114に記憶された命令を実行する際に実施されるモジュールのいずれかに関連する、本明細書に記載される動作は、複数の処理ユニット及び/又は複数のメモリユニットの間で分割されてもよい。
処理ユニット110は1つ以上のプロセッサを備え、1つ以上のプロセッサのそれぞれが、メモリユニット114に記憶されたソフトウェア命令を実行して、本明細書中に説明するコンピュータシステム104の機能の一部又は全てを実行するプログラム可能なマイクロプロセッサであってもよい。処理ユニット110は、例えば、1つ以上のグラフィックス処理ユニット(GPU)、及び/又は1つ以上の中央処理ユニット(CPU)を含んでいてもよい。代替的に、又は追加的に、処理ユニット110内の1つ以上のプロセッサは、他のタイプのプロセッサ(例えば、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)など)であってもよく、本明細書中に説明するコンピュータシステム104の機能のいくつかは、代わりにハードウェアで実装されてもよい。
メモリユニット114は、1つ以上の揮発性及び/又は不揮発性メモリを含んでいてもよい。読み取り専用メモリ(ROM)、及び/又はランダムアクセスメモリ(RAM)、フラッシュメモリ、ソリッドステートドライブ(SSD)、ハードディスクドライブ(HDD)などのメモリユニット114には、任意の適切なメモリのタイプが含まれ得る。まとめて、メモリユニット114は、1つ以上のソフトウェアアプリケーション、それらのアプリケーションによって受信/用いられるデータ、及びそれらのアプリケーションによって出力/生成されるデータを記憶してもよい。
特に、メモリユニット114は、処理ユニット110によって実行されると、1つ以上のAVIニューラルネットワーク、及び/又は他のタイプのAVIソフトウェア(例えば、コンピュータビジョンソフトウェア)を訓練、検証、及び/又は適格化する目的で様々な機能を実行する様々なモジュールのソフトウェア命令を記憶する。具体的には、図1の例示的な実施形態では、メモリユニット114は、AVIニューラルネットワークモジュール120と、外観検査システム(VIS)制御モジュール122と、ライブラリ拡大モジュール124と、画像/ライブラリ評価モジュール126と、を含む。他の実施形態では、メモリユニット114は、モジュール120、122、124、及び126のうちの1つ以上を省略してもよく、並びに/又は1つ以上の追加モジュールを含んでいてもよい。上記のように、コンピュータシステム104は、分散型システムであってもよく、その場合、モジュール120、122、124、及び126のうちの1つ、いくつか、又は全てが、全体又は一部が異なるコンピューティングデバイス又はシステムによって(例えば、1つ以上の有線及び/又は無線通信ネットワークを介してコンピュータシステム104に結合されたリモートサーバによって)実装されてもよい。更に、モジュール120、122、124、及び126のいずれか1つの機能は、異なるソフトウェアアプリケーションの間で分割されてもよい。単なる一例として、コンピュータシステム104がウェブサービスにアクセスして1つ以上のAVIニューラルネットワークを訓練して使用する実施形態では、AVIニューラルネットワークモジュール120のソフトウェア命令の一部又は全部は、リモートサーバにおいて記憶及び実行されてもよい。
AVIニューラルネットワークモジュール120は、訓練画像ライブラリ140に記憶された画像を使用して1つ以上のAVIニューラルネットワークを訓練するソフトウェアを含む。訓練画像ライブラリ140は、メモリユニット114に、及び/又は別のローカル若しくはリモートメモリ(例えば、リモートライブラリサーバに結合されたメモリなど)に記憶されてもよい。いくつかの実施形態では、訓練に加えて、AVIニューラルネットワークモジュール120は、例えば、外観検査システム102(若しくは別の外観検査システム)によって新たに取得された画像を、検証、適格化、又は場合によってはランタイム動作のためにニューラルネットワークに適用することによって、訓練されたAVIニューラルネットワークを実施/実行することができる。様々な実施形態では、AVIニューラルネットワークモジュール120によって訓練されたAVIニューラルネットワークは、画像全体を分類し(例えば、欠陥あり対欠陥なし、若しくは特定のタイプの欠陥の存在若しくは不存在など)、画像を画素単位(すなわち、画像セグメンテーション)で分類し、画像内のオブジェクトを検出し(例えば、傷、亀裂、異物などの特定の欠陥タイプの存在及び位置を検出し)、又はこれらの組み合わせ(例えば、1つのニューラルネットワークが画像を分類し、別のニューラルネットワークがオブジェクト検出を実行する)を行う。いくつかの実装形態では、AVIニューラルネットワークモジュール120は、(後述する理由により)訓練されたAVIニューラルネットワークの動作に関連するヒートマップを生成する。この目的のために、AVIニューラルネットワークモジュール120は、HALCON(登録商標)からのMVTec、Cognex(登録商標)からのVidi(登録商標)、Amazon(登録商標)からのRekognition(登録商標)、TensorFlow、PyTorch、及び/又は他の適切な既製若しくはカスタマイズされた深層学習ソフトウェアなどの深層学習ソフトウェアを含んでいてもよい。AVIニューラルネットワークモジュール120のソフトウェアは、例えば、ResNet50又はVGGNet等の1つ以上の予め訓練されたネットワーク、及び/又は1つ以上のカスタムネットワークの上に構築されてもよい。
いくつかの実施形態では、VIS制御モジュール122は、サンプル画像(例えば、容器画像)を人間の相互作用をほとんど又は全く伴わずに生成することができるように、外観検査システム102の動作を制御/自動化する。VIS制御モジュール122は、(例えば、制御ライン上でパルスを生成するなどの)コマンド又は他の電子信号を所定のカメラに送信することによって、所与のカメラにサンプル画像を捕捉させてもよい。外観検査システム102は、捕捉された容器画像を、ローカル処理のために画像をメモリユニット114に記憶することができるコンピュータシステム104に送信してもよい。代替の実施形態において、外観検査システム102は、ローカルに制御されてもよく、その場合、VIS制御モジュール122は、本明細書中に説明するものより少ない機能(例えば、外観検査システム102からの画像の読み出しのみを扱う)を有していてもよく、又はメモリユニット114から完全に省略されてもよい。
ライブラリ拡大モジュール124(本明細書では単に「モジュール124」とも呼ばれる)は、外観検査システム102(及び/又は他の外観検査システム)によって生成されたサンプル画像を処理して、訓練画像ライブラリ140に含めるための追加の、合成/拡張された画像を生成する。モジュール124は、本明細書で開示される画像拡張技術のうちの任意の1つ以上を含む、1つ以上の画像拡張技術を実装することができる。後述するように、それらの画像拡張技術のいくつかは、合成画像を生成するために特徴画像ライブラリ142を利用することができる。特徴画像ライブラリ142は、メモリユニット114、及び/又は別のローカル若しくはリモートメモリ(例えば、リモートライブラリサーバに結合されたメモリなど)に記憶されてもよく、様々なタイプの欠陥(例えば、亀裂、傷、欠け、汚れ、異物など)の画像、並びに/又は各欠陥タイプのバリエーションの画像(例えば、異なるサイズ及び/若しくはパターンの亀裂、異なる形状及びサイズを有する異物など)を含む。代替的に、又は追加的に、特徴画像ライブラリ142は、欠陥を示しても示さなくてもよい、様々な他のタイプの特徴(例えば、異なるメニスカス)の画像を含んでもよい。特徴画像ライブラリ142内の画像は、例えば、各画像の実質的な部分が特徴(例えば、欠陥)を含むように、完全なサンプル画像の切り取られた部分であってもよい。
一般に、特徴画像ライブラリ142は、画像化されているサンプルに関連する事実上あらゆるタイプの特徴の画像を含むことができる。例えば、医薬の背景では、特徴画像ライブラリ142は、容器(例えば、シリンジ、カートリッジ、バイアルなど)、容器内容物(例えば、液体又は凍結乾燥医薬品)、及び/又は容器とそれらの内容物との間の相互作用(例えば、漏れなど)に関連する欠陥を含んでもよい。非限定的な例として、欠陥画像には、バレル、肩部、ネック部、又はフランジの亀裂、欠け、傷、及び/又は擦れ、破損又は変形したフランジ、バレル、肩部、ネック壁部のガラス内のエアライン、バレル、肩部、ネック部のガラス内の不連続性、バレル、肩部、ネック壁の内側又は外側(又は内部)の汚れ、バレル、肩部、ネック部上のガラスの付着、バレル、肩部、ネック壁の節、バレル、肩部、又はネック壁のガラス内部に埋め込まれた異物粒子、異質、位置ずれ、欠損、又は余分なプランジャ、プランジャの汚れ、プランジャの変形したリブ、プランジャの不完全な又は剥離したコーティング、許容できない位置にあるプランジャ、欠損、曲げ、変形した、又は破損した針シールド、針シールドから突出する針などの、シリンジの欠陥画像を含む場合がある。シリンジとシリンジ内容物との間の相互作用に関連する欠陥の実施例には、プランジャを介した液体の漏れ、プランジャのリブ内の液体、針シールドからの液体の漏れなど、を含む場合がある。後述する図3Aには、例示的なシリンジの様々な構成要素が示されている。
カートリッジに関連する欠陥の非限定的な実施例には、バレル又はフランジの亀裂、欠け、傷、及び/又は擦れ、破損又は変形したフランジ、バレル内の不連続性、バレルの内側又は外側(又は内側)の汚れ、バレルに付着した材料、バレル壁の節、異質、位置ずれ、欠損、又は余分なピストン、ピストンの汚れ、ピストンの変形したリブ、許容できない位置にあるピストン、バレル壁のフローマーク、フランジ、バレル、ルアーロックのプラスチック内の空隙、カートリッジの不完全な成形、ルアーロックのキャップの欠損、切断、位置ずれ、緩み、損傷、などを含む場合がある。カートリッジとカートリッジ内容物との間の相互作用に関連する欠陥の実施例には、ピストンを介した液体の漏れ、ピストンのリブ内の液体など、を含む場合がある。後述する図3Bには、例示的なカートリッジの様々な構成要素が示されている。
バイアルに関連する欠陥の非限定的な実施例には、本体の亀裂、欠け、傷、及び/又は擦れ、本体のガラス内のエアライン、本体のガラス内の不連続性、本体の内側又は外側(又は内部)の汚れ、本体のガラスの付着、本体壁の節、本体壁のフローマーク、クリンプの欠損、位置ずれ、緩み、突出又は損傷、フリップキャップの欠損、位置ずれ、緩み、損傷など、を含む場合がある。バイアルとバイアル内容物との間の相互作用に関連する欠陥の実施例には、クリンプ又はキャップを介した液体の漏れなど、を含む場合がある。後述する図3Cには、例示的なバイアルの様々な構成要素が示されている。
容器内容物(例えば、シリンジ、カートリッジ、バイアル、又は他の容器タイプの内容物)に関連する欠陥の非限定的な実施例には、液体内容物内に浮遊する異物、プランジャドーム、ピストンドーム、又はバイアル床面にある異物、変色した液体又はケーキ、亀裂、分散、又はその他の異常に分散/形成したケーキ、濁った液体、高い又は低い充填レベル、等。「異物」粒子は、例えば、繊維、ゴム、金属、石、プラスチックの破片、髪の毛など、を含む場合がある。いくつかの実施形態において、気泡は無害であるとみなされ、欠陥であるとはみなされない。
特徴画像ライブラリ142の画像内に示され得る他のタイプの特徴の非限定的な例には、異なる形状及び/又は異なる位置のメニスカス、異なるタイプ及び/又は異なる位置のプランジャ、異なるサイズ及び/若しくは形状、並びに/又は容器内の異なる位置の気泡、容器内の異なる空隙サイズ、ガラス又は別の半透明材料における異なるサイズ、形状、及び/又は凹凸の位置など、を含む場合がある。
動作中、コンピュータシステム104は、外観検査システム102によって(場合によってはコンピュータシステム104による切り取り及び/又は他の画像前処理の後に)収集されたサンプル画像、並びにライブラリ拡大モジュール124によって生成された合成画像、並びに場合によっては1つ以上の他のソースからの実画像及び/又は合成画像を、訓練画像ライブラリ140内に記憶する。AVIニューラルネットワークモジュール120は、次いで、訓練画像ライブラリ140内のサンプル画像の少なくともいくつかを使用してAVIニューラルネットワークを訓練し、ライブラリ140内(又は図1に示されていない別のライブラリ内)の他の画像を使用して、訓練されたAVIニューラルネットワークを検証する。本明細書で使用される場合、ニューラルネットワークを「訓練すること」、「検証すること」、又は「適格化すること」という用語は、(例えば、ニューラルネットワークを訓練するか、又は訓練されたニューラルネットワークを実行するように、リモートサーバに命令又は要求することによって)ニューラルネットワークを実行するソフトウェアを直接実行することを包含し、また、ニューラルネットワークの実行を開始することを包含する。いくつかの実施形態では、例えば、コンピュータシステム104は、AVIニューラルネットワークモジュール120を含むリモートサーバにアクセスすることによって(例えば、リモートサーバによってサポートされるウェブサービスにアクセスすることによって)、ニューラルネットワークを「訓練」してもよい。
モジュール120~126の各々の動作は、様々な他の図の要素を参照して、以下で更に詳細に検討される。
図2は、医薬のアプリケーションにおいて、図1の外観検査システム102として使用され得る、例示的な外観検査システム200を示している。外観検査システム200は、カメラ202、レンズ204、前方傾斜光源206a及び206b、後方傾斜光源208a及び208b、バックライト光源210、並びに撹拌機構212を含む。カメラ202は、容器214(例えば、シリンジ、バイアル、カートリッジ、又はその他の適切なタイプの容器)の1つ以上の画像を捕捉し、容器214は、撹拌機構212によって保持され、光源206、208、及び/又は210によって照明される(例えば、VIS制御モジュール122が、異なる画像のために異なる光源を連続的又は同時に作動させる)。外観検査システム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は、1つ以上のAVIニューラルネットワークを訓練及び/又は検証するよう容器画像を生成することに適していてもよいが、広範囲のカテゴリにわたって欠陥を検出する能力は、異なる視点を必要とする場合がある。したがって、いくつかの実装形態では、図1の外観検査システム102は、代わりに、マルチカメラシステムであってもよい。更に他の実装形態では、図1の外観検査システム102は、ラインスキャンカメラを含み、サンプル(例えば、容器)を回転させて各画像を捕捉してもよい。更に、訓練画像のはるかに大きいセットを迅速に得るために、サンプルの自動ハンドリング/搬送が望ましい場合がある。外観検査システム102は、例えば、その全体が参照により本明細書に組み込まれる(「Deep Learning Platforms for Automated Visual Inspection」と題する、2020年5月5日に出願された)米国仮特許出願第63/020,232号明細書に示され及び/若しくは説明されている外観検査のいずれか、又は任意のタイプの製品に適した任意の他の外観検査システムであってもよい。例えば、自動車の背景では、外観検査システム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を含み、2つの間の移行部が肩部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を含んでいてもよい。
例えば、ライブラリ拡大モジュール124(処理ユニット110により実行される)によって実施され得る様々な画像拡張技術が、ここで説明される。最初に図4Aを参照すると、モジュール124は、画素レベルのリアリズムで、元の(例えば、実)画像に特徴(例えば、欠陥)を追加するために、算術転置アルゴリズム400を実施することができる。図4Aは、「容器」画像を参照して、特にガラス容器を参照してアルゴリズム400を説明しているが、モジュール124は、代わりにアルゴリズム400を使用して、他のタイプのサンプル(例えば、プラスチック容器、車両本体部品など)の画像を拡張してもよいことが理解されよう。
最初に、ブロック402において、モジュール124は、欠陥画像、及び欠陥画像内に示された欠陥のない容器画像を、メモリ(例えば、メモリユニット114)内にロードする。容器画像(例えば、図3A~図3Cに示される容器のうちの1つと同様のシリンジ、カートリッジ、又はバイアル)は、例えば、図1の外観検査システム102又は図2の外観検査システム200によって捕捉された実画像であってもよい。実装形態によっては、実画像は、ブロック402の前に他の方法(例えば、切り取り、フィルタリングなど)で処理されている場合がある。欠陥画像は、例えば、モジュール124が特徴画像ライブラリ142から取得された特定のタイプの欠陥(例えば、傷、亀裂、汚れ、異物、変形したプランジャ、割れたケーキなど)であり得る。
ブロック404において、モジュール124は、欠陥画像及び容器画像を、本明細書ではそれぞれ「欠陥行列」及び「容器画像行列」と呼ばれる、それぞれの2次元の数値行列に変換する。これらの数値行列の各々は、対応する画像の各画素に対して1つの行列要素を含むことができ、各行列要素は、対応する画素の(グレースケール)強度値を表す数値を有する。例えば、8ビットフォーマットを有する典型的な産業用カメラの場合、各行列要素は、0(黒)から255(白)までの強度値を表すことができる。例えば、容器が逆光になるような実装形態では、ガラス及び透明な流体のみを示す容器画像の領域は、比較的高い強度値を有する場合がある一方で、欠陥を示す容器画像の領域は、比較的低い強度値を有する場合がある。しかしながら、アルゴリズム400は、示された欠陥の強度レベルが、欠陥なしで示されたガラス/流体領域の強度レベルとは十分に異なる限り、他のシナリオにおいて有用であり得る。他のグレースケール解像度に対して他の数値が使用されてもよく、又は(例えば、カメラが赤-緑-青(RGB)色値を生成する場合)行列が、より多くの次元を有してもよい。図5は、モジュール124がグレースケール画素502を有する特徴(亀裂)画像500を特徴行列504に変換する、例示的な動作を示している。明確にするために、図5は、特徴画像500内の画素502の一部のみを示しており、且つ対応する特徴行列504の一部のみを示している。
ブロック404において、画素サイズm×nの容器画像に対して生成される2次元行列は、以下のm×n行列として表すことができる。
例えば、C11は、容器画像の左上画素の値(例えば、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は、要素値のヒストグラムを生成する。欠陥行列の単一の行に対する例示的な欠陥ヒストグラム450が、図4Bに示されている。ヒストグラム450では、第1のピーク部分452は、欠陥自体を示す欠陥画像の領域に対する比較的低強度の画素値に対応し、第2のピーク部分454は、ガラス/流体(欠陥なし)のみを示す欠陥画像の領域に対する比較的中強度の画素値に対応し、第3のピーク部分456は、欠陥からの光の反射を示す欠陥画像の領域に対する比較的高強度の画素値に対応する。ヒストグラム450がピーク部分454を含むことを確実にするために、欠陥画像サイズの慎重な選択が重要である。特に、ブロック402においてロードされた欠陥画像は、欠陥画像の全ての行にわたって、少なくともいくつかのガラス領域(すなわち、欠陥なし)を捕捉するのに十分な大きさであるべきである。
欠陥行列の各行に対して、モジュール124はまた(ブロック412において)、欠陥なしで示されたガラスに対応するピーク部分(例えば、ヒストグラム450内のピーク部分454)を特定し、そのピーク部分の中心に対する欠陥行列のその行の要素値を正規化する。いくつかの実装では、欠陥画像の寸法は、最大のピークを有するピーク部分が欠陥画像のガラス/欠陥なし領域に対応することになるように選択される。これらの実装形態では、モジュール124は、最大のピーク値を有するピーク部分を選択することによって、示されたガラス(欠陥なし)に対応するピーク部分を特定することができる。モジュール124は、実装形態に応じて、様々な方法でピーク部分の「中心」を判定することができる。例えば、モジュール124は、ピーク部分のローサイド及びハイサイド強度値(例示的なヒストグラム450では、それぞれローサイド値(LSV)457及びハイサイド値(HSV)458として示されている)を判定し、次いで、その2つの平均(すなわち、中心=(HSV-LSV)/2)を計算することができる。或いは、モジュール124は、中央強度値、又はピーク部分のピークに対応する強度値などとして、中心を計算することができる。欠陥画像のHSV値及びLSV値は、かなり接近していてもよく、例えば、8~10グレースケールレベル離れた程度の距離である。
欠陥行列を正規化するために、モジュール124は、行内の各要素値から中心値を減算する。この例は、図4Cに示されており、ヒストグラム450を有する欠陥画像は、正規化された欠陥行列がヒストグラム460を有するように正規化されている。図4Cに見られるように、この例では、ピーク部分452は、負の値のみを含むピーク部分462に変換され、ピーク部分454は、要素値0を中心とするピーク部分464に変換され、ピーク部分456は、正の値のみを含むピーク部分466に変換されている。モジュール124は、アルゴリズム400を実行する際に必ずしもヒストグラム460を生成しないことが理解される。事実上、正規化された欠陥行列は、欠陥行列の「平坦化」バージョンであり、欠陥自体を代表する情報を保持しながら、周囲のガラス(及び場合によっては流体など)で値がキャンセルされる。全ての行に対して実行される際、正規化された欠陥行列は、以下のように表現され得る。
ブロック414において、モジュール124は、代理領域行列の各行に対して同様のヒストグラムを生成し、代理領域内に示されたガラス/流体に対応するピーク部分を特定し、そのピーク部分のローサイド値及びハイサイド値を記録する。容器画像がいかなる欠陥も示さない実装形態/シナリオでは、ヒストグラム内に1つのピークしか存在しない場合がある(例えば、LSV457とHSV458のピーク部分450と同様に)。欠陥画像及び容器画像が捕捉されるときの照明(及び場合によっては他の)条件はまったく同じではないため、ブロック414において特定されるピーク部分は、ブロック412において特定される欠陥画像ピーク部分とは少なくともいくつかの点で異なることになる。
アルゴリズム400は、上述したように行単位で実行されてもよく、又は列単位で実行されてもよいことが理解される。ブロック412及び414の動作を行単位又は列単位で実行することは、円筒形の容器がカメラに直交して配置され、容器の中心軸/長軸が容器画像にわたって水平又は垂直に延びる場合に特に有利であり得る。そのような構成では、照明のタイプや位置に応じて、外観の変化は、(容器の直径又は幅にわたる)1つの方向ではより急であり、(容器の長軸に沿った)他の方向ではより急ではない傾向があり、したがって、各行又は各列に対して(すなわち、変化のより少ない方向に対応するどちらにも)正規化などを行うことによって失われる情報は少なくなる。いくつかの実装形態では(例えば、底側からバイアルを画像化する場合)、ブロック412及び414は、代理領域行列の2次元領域(例えば、2×2、又は4×4など)内の値を平均化するなどの他の動作を伴う場合がある。
ブロック416~420において、モジュール124は、欠陥行列の各要素に対して比較を反復的に実行することによって(例えば、要素D11から始まる欠陥行列をスキャンすることによって)、容器画像行列の代理領域上に正規化された欠陥行列をマッピングする。正規化された欠陥行列の所与の要素に対して、ブロック416において、モジュール124は、代用領域行列の対応する要素の値にその要素の値を加算し、得られた合計が(それらの値がブロック414において判定されたように)対応する行のローサイド値とハイサイド値との間にあてはまるどうかを判定する。そうである場合、次いでブロック418Aにおいて、モジュール124は、容器画像行列の代理領域内の対応する要素の元の値を保持する。
そうでない場合、次いでブロック418Bにおいて、モジュール124は、容器画像行列の対応する要素の値に、正規化された欠陥行列要素値を加算する。例えば、要素N11が範囲[LSV,HSV]の外側にある場合、モジュール124は、容器画像内の対応する要素を(N11+S11)に等しく設定する。ブロック420において示されるように、モジュール124は、正規化された欠陥行列の残りの各要素に対して、ブロック416(及び必要に応じて、ブロック418A又はブロック418B)を反復する。ブロック422において、モジュール124は、修正された容器画像(少なくとも代理領域)の全ての値が有効なビットマップ値(例えば、8ビットフォーマットが使用される場合は0~255)であることを確認し、ブロック424において、モジュール124は、修正された容器画像行列をビットマップ画像に変換し、得られた「欠陥」容器画像を(例えば、訓練画像ライブラリ140に)保存する。ブロック416~420の正味の効果は、容器画像内のガラス(又は他の半透明材料)レベルよりも強度が低い(暗い)欠陥画像画素、並びにガラスレベルよりも強度が高い(明るい/白い)画素(例えば、欠陥における反射に起因)を「キャッチする」又は維持することである。
アルゴリズム400について上述した様々なブロックは、上述した様々な選択肢以外の(又はそれに加えた)方法を含む、他の実装形態において異なってもよいことが理解される。ほんの一例として、ブロック416~420のループは、最初に正規化された欠陥行列を代理面積行列と(容器画像行列について上述したように要素ごとに)マージして置換行列を形成し、次いで、(すなわち、容器画像行列全体を直接修正するのではなく)容器画像行列の対応する領域を置換行列で置換することを伴う場合がある。別の例として、ブロック416A及び416Bは代わりに、(すなわち、ブロック418Aが実行される各場合において要素値をゼロに変更することによって)正規化された欠陥行列を修正するように動作することができ、その後、正規化された欠陥行列の修正バージョンが容器画像行列の代理領域に追加される。更に、アルゴリズム400は、上述された1つ以上の動作(例えば、ブロック406)を省略することができ、及び/又は上述されていない追加の動作を含むことができる。
いくつかの実施形態及び/又はシナリオでは、アルゴリズム400は、容器画像の代理領域上に欠陥を転置する前に、欠陥画像(ブロック402においてロードされた)、又は(ブロック404において)欠陥画像から導出された数値行列を、回転及び/又はスケーリング/サイズ変更することを含む。例えば、欠陥画像又は数値行列の回転及び/又はサイズ変更は、ブロック412の前の任意の時間(例えば、ブロック410、408、406、及び404のいずれか1つの直前)に発生してもよい。回転は、例えば、欠陥画像又は数値行列の中心点又は中心画素に対して実行されてもよい。サイズ変更には、1つ又は2つの軸に沿って(例えば、欠陥画像の軸に沿って、又は示された欠陥の長軸及び短軸に沿って、など)、欠陥画像又は数値行列を拡大又は縮小することを含んでもよい。一般に、画像のスケーリング/サイズ変更には、単一の画素に画素のグループをマッピングする(縮小)、又は画素のグループに単一の画素をマッピング(拡大/伸張)することを含む。欠陥画像から導出される数値行列に対して動作を実行する場合、画素ではなく行列要素に対して同様の動作が必要であることが理解される。いったん欠陥画像又は数値行列が回転及び/又はサイズ変更されると、アルゴリズム400の残りの部分は、変更されなくてもよい(すなわち、上述したのと同じ方法で発生し、回転及び/又はサイズ変更が発生したかどうかに関しては不可知である場合がある)。
(例えば、算術転置アルゴリズム400を実装するライブラリ拡大モジュール124による)回転及び/又はサイズ変更は、特徴画像ライブラリ142のサイズ及び多様性を、そうでなければ欠陥画像の固定セットで可能であったものをはるかに超えて増加させるのに役立ち得る。回転は、(1)画像化された容器が有意な回転対称性を有し(例えば、容器が、検査中に画像化される円形又は半円形の表面を有する)、及び(2)画像化された欠陥がその対称性に依存する視覚特性を有する傾向があるタイプのものである、使用例において特に有用であり得る。例えば、ガラスバイアルの円形又は円形に近い底部では、いくつかの亀裂は、円の中心から円の周囲への方向に概ね伝播する傾向があり得、又はその逆も同様である。例えば、ライブラリ拡大モジュール124は、欠陥画像の軸が、欠陥が転置されている代理領域の回転位置と整列するように、亀裂又は他の欠陥を回転させることができる。より具体的には、回転の量は、元の欠陥画像における欠陥の回転、及び所望の回転(例えば、欠陥が転置されている代理領域に対応する回転)の両方に依存してもよい。
所望の回転及び/又はサイズ変更に必要な画素(又は行列要素)マッピングを達成するために、ニアレストネイバー、バイリニア、高品質バイリニア、バイキュービック、又は高品質バイキュービックなどの任意の適切な技術が使用されてもよい。上記で列挙した5つの例示的な技術のうち、ニアレストネイバーはより低品質の技術であり、高品質バイキュービックは最高品質の技術である。しかしながら、回転及び/又はサイズ変更された欠陥を、検査に使用されることになる画像化システム(例えば、外観検査システム102)によって提供される画像品質に非常に近い画像品質にすることが目標であることを考えると、最高品質の技術は最適でない場合がある。上記で列挙した5つなどの異なる技術の出力を比較し、定性的/主観的な意味で最良である技術を選択するために、マニュアルユーザレビューが実行されてもよい。いくつかの実装形態では、高品質バイキュービックが使用され、又はデフォルト設定として使用される。
アルゴリズム400(任意の回転及び/又はサイズ変更あり、及び/又は変更なし)は、任意の数の異なる「良好」画像及び任意の数の「欠陥あり」画像に対して、任意の所望の組み合わせで繰り返すことができる(例えば、N箇所の各々において、L個の欠陥画像の各々をM個の良好な容器画像の各々に適用して、訓練画像ライブラリ140内のM個の良好な容器画像に基づいてL×M×Nの合成画像を生成する)。したがって、例えば、10個の欠陥画像、1,000個の良好容器画像、及び欠陥タイプごとに10個の欠陥位置は、100,000個の欠陥画像をもたらし得る。任意の特定の良好容器画像に対して欠陥が転置される場所/位置は、予め判定されてもよく、又は(例えば、モジュール124によって)ランダムに判定されてもよい。
アルゴリズム400は、1つ以上の特徴による画素強度レベルのシャープなコントラスト又は移行を含む代理領域上に欠陥が転置される状況においても、非常にうまく機能することができる。例えば、アルゴリズム400は、ガラスシリンジの代理領域がメニスカス及びメニスカスの両側の領域(すなわち、それぞれ、空気及び流体)を含む場合であっても、うまく機能することができる。アルゴリズム400はまた、代理領域が欠陥画像における欠陥を取り囲む領域と非常に異なる、特定の他の状況を扱うことができる。例えば、アルゴリズム400は、透明な流体で充填されたガラスシリンジの欠陥画像から、バイアルが不透明な凍結乾燥ケーキで充填された代理領域内のバイアル画像上に、欠陥を転置する際に、うまく実行することができる。しかしながら、いくつかの使用例又はシナリオに対して、アルゴリズム400を修正することが有益である場合がある。容器画像の代理領域が2つの非常に異なる領域間(例えば、バイアル画像のガラス/空気部分と凍結乾燥ケーキ部分との間)の移行を示す場合、例えば、モジュール124は、代理領域行列を複数の部分(例えば、同じサイズ若しくは異なるサイズの2つの行列)に分割するか、又は第1の例において2以上の代理領域行列を単に形成することができる。次いで、欠陥画像の対応する部分は、上で検討したようにアルゴリズム400の異なるインスタンスを使用して、異なる代理領域上に個別に転置されてもよい。
いくつかの実装形態では、特徴画像ライブラリ142の画像内に示された欠陥及び/又は他の特徴は、モジュール124がアルゴリズム400を使用してそれらの特徴を元の画像に追加する前に、1つ以上の方法でモーフィングすることができる。このようにして、モジュール124は、特徴画像ライブラリ142のサイズ及び可変性を効果的に増加させ、したがって、訓練画像ライブラリ140のサイズ及び可変性を増加させることができる。例えば、モジュール124は、回転、(1次元又は2次元の)スケーリング/伸長、スキュー、及び/又は他の変換を適用することによって、欠陥及び/又は他の特徴をモーフィングすることができる。追加的に、又は代替的に、示された特徴は、より複雑及び/又は微妙な方法で修正されてもよい。例えば、モジュール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に示されており、第1の転置欠陥802と第2の転置欠陥804の両方を有する複合合成画像800を示している。第1の転置欠陥802は、欠陥画像を元の容器画像上に直接重畳させるという従来のシンプルな技術を使用して作成され、第2の転置欠陥804は、算術転置アルゴリズム400を使用して作成される。図8に見られるように、第1の転置欠陥802に対応する欠陥画像の境界は、明確に見ることができる。第1の転置欠陥802などの欠陥を有する合成画像を用いて訓練されたAVIニューラルネットワークは、例えば、容器を検査する際に単に同様の境界を探す場合があり、これが、多数の偽陰性及び/又は他の不正確さをもたらすかもしれない。
図9Aは、算術転置アルゴリズム400の実装形態を使用して生成された、900~910とラベル付けされた、追加された欠陥を有する様々な他の合成画像を示している。いずれの場合も、欠陥を示しているシリンジ画像の部分は、画像を巨視的レベルで見るか又は画素レベルで見るかにかかわらず、画像の周囲の部分とシームレスにブレンドされる。
図9Bは、そのいずれかが算術転置アルゴリズム400への入力として使用され得る、例示的な亀裂欠陥画像920のコレクションを示している。いくつかの実装形態では、上記のように、算術転置アルゴリズム400は、アルゴリズム400の残りの部分を実行する前に、所与の欠陥画像(又は対応する数値行列)の回転及び/又はサイズ変更を含み得る。回転が望まれる場合、一般に、元の欠陥画像に対応する回転を知ることが重要である。例えば、例示的な亀裂欠陥画像920では、元の画像に対応する回転/角度は、ファイル名自体に含まれている(図9Bでは各画像のすぐ下に示されている)。したがって、例えば、「250_crack0002」は、(180度回転を希望する場所に亀裂を位置付けるには、反時計回りに70度回転する必要があるような)250度回転における特定の亀裂であり、「270_crack0003」は、(180度の回転を希望する場所に亀裂を位置付けるには、反時計回りに90度回転する必要があるような)270度回転における別の亀裂であり得る、などである。ライブラリ拡大モジュール124は、この示された元の回転、及び所望の回転(例えば、欠陥が転置されている代理領域の角度位置に対応する回転)に基づいて、適用すべき回転の程度を計算することができる。
算術転置アルゴリズム400は、C++、.NET環境などの大部分の高級言語で実装することができる。処理ユニット110の処理能力に応じて、アルゴリズム400は、回転及び/又はサイズ変更によってこれらの時間が一般的に増加するが、潜在的には、15分以内に数千の合成画像を生成することができる。しかしながら、訓練画像は大部分のアプリケーションではリアルタイムで生成する必要がないため、実行時間は一般に、(たとえ回転及び/又はサイズ変更を伴っても)重要な問題ではない。
米国仮特許出願第63/020,232号明細書に記載されているように、様々な画像処理技術を使用して、利用可能な各画像の主要な指標を測定することができ、訓練画像ライブラリ140などの訓練画像ライブラリの慎重なキュレーションが可能になる。上述の算術転置アルゴリズム400の開発中、特定のパラメータの慎重な制御が重要であり得ることが発見された。例えば、1mlのガラスシリンジを考慮する際に、画像における液体メニスカス及びプランジャ(例えば、ゴム製プランジャ)の位置は、画像ごとに異なり得る重要な属性となる可能性がある。合成画像が全て同じ「良好」容器画像で(又は小さすぎる、及び/又は似すぎている良好な容器画像セットで)作成された場合、深層学習AVIモデルのその後の訓練は、画像の変動の欠如から生じるバイアスによって損なわれる場合がある。
主要な画像指標を使用することにより、これらのバイアスが低減又は回避されるように、(例えば、アルゴリズム400を使用して)拡張すべき「良好」画像のライブラリを慎重に選択することができる。そのような指標はまた、訓練画像ライブラリのブレンドに使用することができ、その結果、得られる合成ライブラリには、実画像と合成画像との適切なバランスが含まれるだけでなく、主要指標の各々の分散が自然に表示されることになる。
そのような画像上で訓練されたAVI深層学習モデルのロバスト性を含む、アルゴリズム400を使用して生成された合成画像の品質を評価するために、様々な実験が行われた。これらの実験に対して、各々約300個の画像を有する4つのデータセット、すなわち、(1)実験室設定において、デカルトロボットベースシステムによって捕捉された、目に見える欠陥のないシリンジの実画像である、「実欠陥なし」画像セット、(2)異なる位置に異なるサイズの亀裂があるシリンジの実画像であり、同じく実験室設定においてデカルトロボットベースシステムによって捕捉された、「実欠陥」画像セット、(3)プランジャ及びメニスカスの位置を変えることなく、実欠陥画像から示された亀裂を除去して作成された合成画像である、「合成無欠陥」画像セット、(4)実欠陥なし画像に亀裂の描写を追加し、X方向及びY方向にランダムに配置した合成画像である、「合成欠陥」画像セットが使用された。合成欠陥画像は、算術転置アルゴリズム400の実装形態を使用して生成された。実欠陥なし画像と実欠陥あり画像におけるシリンジは、異なる位置にメニスカスを有していた。
AVI深層学習モデルは、実データセット及び拡張データセットからの画像の割合の異なる組み合わせ(0%、50%、又は100%)を使用して訓練された。各組み合わせに対して、2つの画像ライブラリ、すなわち、各々約300個の画像を有する、良好(欠陥なし)画像ライブラリ及び欠陥画像ライブラリがブレンドされた。訓練中、これら2つのライブラリの各々は3つの部分に分割され、70%の画像が訓練用に、20%の画像が検証用に、10%の画像がテストデータセット用に使用された。事前訓練されたResNet50アルゴリズムを使用されて、HALCON(登録商標)ソフトウェアを使用するモデルを訓練し、入力画像を欠陥ありクラス又は無欠陥クラスに分類した。深層学習モデルの訓練後、テストデータセットを使用してその性能を評価した。モデルを0%実画像(つまり100%合成画像)で訓練した場合、拡張テストセットの精度は、実データセットの精度よりも高いことが観察された。100%実画像(すなわち、0%合成画像)でモデルを訓練した場合、実データセットの精度は、拡張データセットよりも高くなった。50%実画像及び50%合成画像を使用してモデルを学習訓練した、実データセット及び拡張データセットの両方に対して精度は同様であり、且つ高い精度であった。これらの実験から、訓練データセット内の実画像又は合成画像のいずれかの割合が増えると、それぞれの(実画像又は拡張)データセットに対する深層学習モデルの精度がそれに応じて増加すると結論付けられた。
100%実画像でモデルを訓練した場合、合成/拡張テスト画像に関してモデルの精度がより低くなる理由として1つ考えられるのは、訓練画像セット及びテスト画像セットのシリンジにおけるメニスカスが異なることであり得る。0%実画像で訓練されて、実画像のみでテストされたモデルは、メニスカスが異なるためにテスト画像を誤って分類することがあった。同様に、100%実画像で訓練されて、合成画像のみを使用してテストされた場合、メニスカスが異なるために、モデルがテスト画像を誤って分類することがあった。これらの誤って分類された画像は、グラデーションクラスアクティベーションマップ(Grad-CAM)アルゴリズムを使用して生成されたヒートマップを視覚化することによって評価された。この種のヒートマップは、米国仮特許出願第63/020,232号においてより詳細に検討されている。そのような場合、本明細書で検討した画像拡張技術を使用して、訓練画像内のメニスカスに対して可変性を追加することによって、分類器の性能を改善することができる。
モデルが訓練されて、上記のテストによりモデルが適切に訓練されたことが示された後、「最終テスト」フェーズが実行された。このフェーズに対して、前述の同じ一般的なタイプの4つのデータセット(「実欠陥なし」、「実欠陥あり」、「合成欠陥なし」、「合成欠陥あり」)が再び使用されたが、全ての画像は別のソースから入手し(すなわち、全ての画像が訓練/検証/テストフェーズで使用したものとは異なる製品のものであり)、全ての画像はモデル性能のテストのみに使用した(すなわち、いずれの画像もモデルの訓練には使用しなかった)。この第2のフェーズに対しても同様の傾向が観察され、実画像の割合が高いほど、実「最終テスト」画像に対するモデル精度が増加し、合成画像の割合が高いほど、合成「最終テスト」画像に対するモデル精度が増加している。
図10は、合成画像の有効性を評価するために使用された、様々なGrad-CAMが生成したヒートマップ1000、1002、及び1004を示している。ヒートマップ1000は、「真陽性」、すなわち、AVIニューラルネットワークがデジタル的に追加された亀裂を正しく特定した場合を反映している。すなわち、図10に見られるように、亀裂に関連する画素は、AVIニューラルネットワークが「欠陥」推論を行うときに最も依拠した画素であった。しかしながら、ヒートマップ1002は、AVIニューラルネットワークが合成画像を欠陥画像として分類したが、誤った理由に対する(すなわち、デジタル的に追加された亀裂から離れた領域にフォーカスすることによる)「偽陽性」を反映している。ヒートマップ1004は、モデルがメニスカスの領域に過度にフォーカスしているため、AVIニューラルネットワークが合成画像を欠陥画像として分類することができなかった「偽陰性」を反映している。この誤分類は、合成された「欠陥あり」訓練画像が、「欠陥なし」テスト画像と同様のメニスカスを有することの結果である。これは、100%実画像で訓練を行った後に合成画像上でモデルを実行した場合、又は100%合成画像で訓練を行った後に実画像上でモデルを実行した場合に最も発生しやすい。代わりに、50%実画像、50%合成画像程度で訓練すると、そのような不具合は劇的に減少する。
AVIニューラルネットワーク性能はまた、実画像及び合成画像の異なる組み合わせを訓練データとして使用する際に、AVIモデル用の混同行列を生成することによって測定された。100%合成画像上でAVIモデルを訓練した場合、100%合成画像セットに対するモデル性能は、以下のようになった。
50%実画像及び50%合成画像上でAVIモデルを訓練した場合、100%合成画像セットに対するモデル性能は、以下のようになった。
100%実画像上でAVIモデルを訓練した場合、100%合成画像セットに対するモデル性能は、以下のようになった。
100%合成画像上でAVIモデルを訓練した場合、100%実画像セットに対するモデル性能は、以下のようになった。
50%実画像及び50%合成画像上でAVIモデルを訓練した場合、100%実画像セットに対するモデル性能は、以下のようになった。
100%実画像上でAVIモデルを訓練した場合、100%実画像セットに対するモデル性能は、以下のようになった。
これらの結果はまた、図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は、パッチマッチアルゴリズムを使用して、マスクされた領域をインペイントすることができる。画像のマスクされていない領域がマスクされた領域と同じ特徴(例えば、同じ欠陥)を示さない場合、モジュール124は、マスクされた領域を充填する際にその特徴を除去することになる。
このインペインティング技術は、一般に、「滑らか」で現実的な外観結果をもたらすことができる。しかしながら、この技術は、利用可能な画像統計によって制限され、また、画像のテーマ又はセマンティクスに関する概念を有しない。したがって、いくつかの合成された画像は、実際の「良好」画像を微妙に、又は総体的に表現していないものであり得る。これらの懸念に対処するために、いくつかの実装形態では、深層学習ベースのインペインティングが使用される。これらの技術では、入力画像と出力ラベルとの間の複雑な関係性をマッピングするために、ニューラルネットワークが使用される。そのようなモデルは、より高いレベルの画像テーマを学習することができ、拡張画像に連続性を提供する意味のある相関関係を特定することができる。
いくつかの深層学習の実装形態では、モジュール124は、部分畳み込みモデルを使用して画像をインペイントする。部分畳み込みモデルは、画像全体にわたって畳み込みを実行し、これにより、合成(インペイント)画像に画素ノイズ及び変動の態様が追加され、したがって、たとえインペイント領域を超えても、合成画像を元のものからわずかに区別する。AVIモデルを訓練するために、(例えば、AVIニューラルネットワークモジュール120による)この画素ノイズ/変動を有する合成画像を使用することは、追加の変動によりモデルがオーバーレイ固有の相関を描くことを防ぐため、モデルのオーバーフィッティングを防止するのに役立ち得る。このため、AVIモデルは、その集団の特定のサブセットだけを理解するのではなく、総画像集団よりよく「理解」することができる。その結果、より効率的に訓練されフォーカスされたAVI深層学習モデルが得られる。
図12は、モジュール124が合成画像を生成するために使用され得る、例示的な部分畳み込みモデル1200を示している。「U-Net」アーキテクチャとして知られるモデル1200の一般的な構造は、画像セグメンテーションアプリケーションで使用されてきた。モデル1200では、入力画像及びマスクペア1202が、モデル1200のエンコーダ1204に(同じ寸法を有する2つの個別の入力として)入力される。図12に示される例では、入力ペア1202の画像及びマスクは、両方とも512×512画素/要素を有し、且つ両方とも(赤、緑、及び青(RGB)値を表現するための)画素/要素ごとに3次元を有する。他の実装形態では、入力ペア1202の画像及びマスクは、幅及び高さがより大きくても小さくてもよく(例えば、256×256など)、3つの画素次元よりも多くても少なくてもよい(例えば、グレースケール画像が使用される場合は1次元である)。
訓練中、モジュール124が入力ペア1202として特定の入力及びマスクを入力すると、モデル1200は、画像をマスクでドット化して(すなわち、画像にマスクを適用して)訓練サンプルを形成する一方で、元の画像(すなわち、入力ペア1202の画像)はターゲット画像として機能する。エンコーダ1204の第1段階において、モデル1200は、入力画像のマスクされたバージョン、及びマスク自体を、2次元畳み込み層への個別の入力として適用し、それぞれ、画像出力及びマスク出力を生成する。各段階におけるマスク出力は、範囲[0,1]にクリップされてもよい。モデル1200は、画像出力及びマスク出力をドット化し、ドット化された画像出力及びマスク出力を個別の入力として、次の2次元畳み込み層にフィードする。モデル1200は、エンコーダ1204内に畳み込み層が残らなくなるまで、このプロセスを反復的に繰り返す。各連続畳み込み層において、画素/要素の寸法はある値(図12の例では512)まで増加し得るが、マスクされた画像及びマスクのサイズは、十分に小さいサイズ(図12の例では2×2)に達するまで減少する。エンコーダ1204は、N個の2次元畳み込み層を有し、ここで、Nは1よりも大きい任意の好適な整数であり、調節可能なハイパーパラメータである。モデル1200の他の調節可能なハイパーパラメータには、カーネルサイズ、ストライド、及びパディングを含み得る。
モデル1200が(マスクされた)画像及びマスクをエンコーダ1204に通した後、モデル1200は、(今は小さいが、より高次元の)マスクされた画像及びマスクをデコーダ1206の転置畳み込み層に通す。デコーダ1206は、エンコーダ1204と同じ数(N)の層を含み、画像及びマスクをそれらの元のサイズ/寸法に復元する。デコーダ1206の各転置層の前に、モデル1200は、図12に示されるように、以前の層からの(すなわち、エンコーダ1204の最後の畳み込み層からの、又はデコーダ1206の前の転置層からの)画像及びマスクを、エンコーダ1204内の対応する畳み込み層の出力と連結させる。
デコーダ1206は、再構成された(出力)画像及び対応するマスクを含む、出力ペア1208を出力する。訓練の場合、上記のように、元の画像は、モジュール124が各反復において出力ペア1208の画像を比較する、ターゲット画像として機能する。モジュール124は、以下の6つの損失を最小化することを試みることによって、モデル1200を訓練することができる。
- 有効損失:マスクの外側の領域における画素損失。モジュール124は、入力/元の画像と出力/再構築された画像との間の画素値差を合計することによって、この損失を計算することができる。
- 穴損失:マスクされた領域における画素損失。
- 知覚損失:より高レベルの特徴損失であり、モジュール124は、個別に訓練された(事前訓練された)VGG16モデルを使用して計算することができる。VGG16モデルは、関連する特徴(例えば、欠陥)を有するサンプルと有しないサンプルとを分類するように事前訓練されてもよい。モデル1200の訓練中、モジュール124は、元の画像及び再構成された画像を事前訓練されたVGG16モデルにフィードし、元の画像及び再構成された画像のVGG16モデルにおける3つの最大プーリング層の差をとることによって、知覚損失を計算することができる。
- スタイル損失1:モジュール124は、より高いレベルの画像特徴における総変動の測定値を得るために、元の画像及び再構成された画像のVGG16モデルにおける3つの最大プーリング層のグラム行列値の差(すなわち、知覚的損失に対して使用される同じ差)をとることによって、この損失を計算することができる。
- スタイル損失2:有効損失と同様の損失であるが、モジュール124は、有効損失に使用される再構成/出力画像の代わりに、合成画像(マスクされていない領域における元の画像及びマスクされた領域における再構成/出力画像を含む)を使用して損失を計算する。
- 変動損失:再構成された画像のマスクされた領域からマスクされていない領域への移行の測定値。
- 有効損失:マスクの外側の領域における画素損失。モジュール124は、入力/元の画像と出力/再構築された画像との間の画素値差を合計することによって、この損失を計算することができる。
- 穴損失:マスクされた領域における画素損失。
- 知覚損失:より高レベルの特徴損失であり、モジュール124は、個別に訓練された(事前訓練された)VGG16モデルを使用して計算することができる。VGG16モデルは、関連する特徴(例えば、欠陥)を有するサンプルと有しないサンプルとを分類するように事前訓練されてもよい。モデル1200の訓練中、モジュール124は、元の画像及び再構成された画像を事前訓練されたVGG16モデルにフィードし、元の画像及び再構成された画像のVGG16モデルにおける3つの最大プーリング層の差をとることによって、知覚損失を計算することができる。
- スタイル損失1:モジュール124は、より高いレベルの画像特徴における総変動の測定値を得るために、元の画像及び再構成された画像のVGG16モデルにおける3つの最大プーリング層のグラム行列値の差(すなわち、知覚的損失に対して使用される同じ差)をとることによって、この損失を計算することができる。
- スタイル損失2:有効損失と同様の損失であるが、モジュール124は、有効損失に使用される再構成/出力画像の代わりに、合成画像(マスクされていない領域における元の画像及びマスクされた領域における再構成/出力画像を含む)を使用して損失を計算する。
- 変動損失:再構成された画像のマスクされた領域からマスクされていない領域への移行の測定値。
他の実施形態では、より多くの、より少ない、及び/又は異なる損失タイプが、モデル1200を訓練するために使用されてもよい。各反復において、モデル1200が特定の入力/元画像をどれだけうまく再構成したかに応じて(最小化されている損失に基づいて測定されるように)、モジュール124は、モデル1200の値又はパラメータを調整する(例えば、畳み込み重みを調整する)ことができる。
元の(例えば、実)「欠陥あり」画像から合成「良好」画像を生成するために、モデル1200は、良好/欠陥なし画像を使用して広範囲に訓練される。いくつかの実装形態では、モジュール124は、訓練中に使用されるマスク(例えば、入力ペア1202の異なるインスタンスに適用されるマスク)をランダムに生成する。マスクは、例えば、異なる幅、長さ、及び位置/向きを有する線から完全に構成され得る。より具体的な例として、モジュール124は、256×256画像に対して、50~100ポイントの線幅を有する7本の線を含むマスクを各々ランダムに生成することができる。図13は、モジュール124によって生成され得る、この種の2つの例示的なマスク1302、1304を示している。一般に、狭すぎる線を有するマスクは非常に長い訓練時間を必要とし、広すぎる線を有するマスクは非現実的なインペインティングをもたらすことになる。他の実装形態では、モジュール124は、他の形状(例えば、矩形、円、形状の混合など)を使用してマスクをランダムに生成し、及び/又は事前設計されたマスクのセットから選択する。
いったんモデル1200がこのように訓練されると、モジュール124は、欠陥を不明瞭にする対応するマスクを有する欠陥画像をモデル1200に入力することができる。図12は、モジュール124が(シリンジプランジャ上の異物を示している)欠陥画像1210、及び欠陥を不明瞭にするマスク1212を入力ペア1202としてモデル1200に適用する例を示している。訓練されたモデル1200は、次いで。画像1210を欠陥なし画像1214として再構成する。モジュール124は、次に、入力画像1210の元の位置に対応するフル容器画像の部分上に画像1214を重畳させることができる。他の実装形態では、モジュール124は、容器全体(又は他の物体)の画像をモデル1200に入力することができ、モデル1200は、容器全体(又は他の物体)の再構成された画像を出力することができる。
図14は、モデル1200と同様の部分畳み込みモデルを使用して実際の256×256画像(図14の左側)から欠陥をデジタル的に除去することによって合成の256×256画像(図14の右側)が生成される、3つの例示的シーケンス1402、1404、1406を示している。例示的なシーケンス1402、1404、1406に見られ得るように、シリンジプランジャ上又はその近くの欠陥を選択的に不明瞭にすることができるマスクが生成される。具体的には、プランジャ自体の欠陥は、シーケンス1402においてマスクされ、プランジャ上に静止している異物は、シーケンス1404及び1406においてマスクされる。マスクは、マニュアル的に生成されてもよく、例えば、物体検出技術を使用してモジュール124によって生成されてもよい。シーケンス1406に見られるように、マスクは、不規則な形状(例えば、任意の軸に対して対称でない)であり得る。
図15は、実画像をどのように修正して合成画像に至ったかを示す差分画像(図15の中央)を伴う、モデル1200と同様の部分畳み込みモデルを使用して、256×256の実画像(図15の左側)から欠陥をデジタル的に除去することによって生成された256×256の合成画像(図15の右側)の別の例を示している。差分画像には、実画像からの主な変化はプランジャの欠陥の除去であったが、実画像にもいくらかのノイズが付加されていることが示されている。上記したように、このノイズは、訓練中のAVIモデル(ニューラルネットワーク)のオーバーフィッティングを低減するのに役立ち得る。
図16は、プランジャ欠陥を有するシリンジの実画像1600、及びモデル1200と同様の部分畳み込みモデルを使用して生成された欠陥のない合成画像1602を示している。この例では、画像1600、1602は両方とも、251×1651画像である。この特定の例の場合、最初に、欠陥が示されている画像1600の正方形の部分を切り取り、より小さく切り取られた画像のマスクを生成することによって、再構成がより効率的に行われた。部分畳み込みモデルを使用して切り取られた領域を再構成した後、再構成された領域を元の画像1600内に再び挿入して合成画像1602を得た。図16に見られるように、合成画像1602は、欠陥のないシリンジの現実的な描写を提供する。更に、肉眼では容易に見えないが、合成画像1602は、上述したように訓練プロセスを支援することができる付加的なノイズを含んでいる。しかしながら、この場合、使用された切り取り技術により、付加されたノイズは、画像1602全体にわたって分散していない。いくつかの実装形態では、再構成された領域と周囲の領域との間のより現実的な移行を確実にするため、及び/又は任意のアーチファクトを除去又は最小化するために、1つ以上の後処理技術を使用されてもよい。例えば、再構成された領域を元の画像1600内に再び挿入することによって合成画像1602を生成した後、モジュール124は、画像1602全体を通じて分散されたノイズを追加し、及び/又は画像1602に対して平滑化を実行してもよい。
いくつかの実装形態では、モジュール124はまた、又は代わりに、深層学習ベースのインペインティング(例えば、モデル1200と同様の部分畳み込みモデル)を逆方向で使用して、元の「良好」画像から合成「欠陥あり」画像を生成する。第1の実施形態では、これは、(例えば、入力ペア1202に対して良好画像を使用して)欠陥を追加するケースについて上述したのと同じ方法で部分畳み込みモデル(例えば、モデル1200)を訓練することによって、達成することができる。しかしながら、欠陥を追加するために、訓練された部分畳み込みモデルに異なる画像が入力される。具体的には、「良好」画像を入力する代わりに、モジュール124は最初に、所望の位置において所望の欠陥画像を良好画像に追加する。このステップでは、良好画像の一部を所望の欠陥画像で単に置換するなどの、シンプルな画像処理技術を使用することができる。モジュール124は、例えば、特徴画像ライブラリ142から欠陥画像を取得することができる。図17は、特徴画像ライブラリ142に含まれ得る3つの例示的な欠陥画像1700A~1700Cを示しており、そのうちのいずれか1つが、元の画像の一部を置換するために使用され得る。代わりに、任意の他の適切な欠陥タイプが使用されてもよい(例えば、図1の特徴画像ライブラリ142に関連して上述した欠陥タイプのいずれか、又は自動車車体検査などの他の背景に関連する欠陥タイプなど)。
いくつかの実装形態では、(例えば、グラフィカルユーザインタフェースを介したソフトウェアツールのユーザからの入力を用いて、又はモジュール124によって完全に)欠陥画像が所望の位置に配置された後、モジュール124は、重畳された欠陥画像と同じサイズ及び元の画像内の位置を有するように閉塞領域を設定することによって、マスクを自動的に作成する。モジュール124は、次いで、部分畳み込みモデル(例えば、モデル1200)への個別の入力として、(重畳された欠陥画像を有する)修正された元の画像及びマスクを入力することができる。
図18は、この技術が256×256の部分シリンジ画像に欠陥を追加するために使用される、2つの例示的なシーケンス1800、1802を示している。シーケンス1800では、モジュール124は、実画像1804Aを取得し、選択された(例えば、マニュアル的に又はランダムに判定された)位置又は所定の位置において所望の欠陥画像1804Bを重畳させ、実画像1804Aのサイズに一致するが重畳された欠陥画像1804Bのサイズ及び位置に一致する閉塞領域を有するマスク1804Cを生成し、修正された実画像及びマスク1804Cを部分畳込みモデル(例えばモデル1200)への個別の入力として適用して合成画像1804Dを生成する。同様に、シーケンス1802では、モジュール124は、実画像1810Aを取得し、選択された(例えば、マニュアル的に又はランダムに判定された)位置又は所定の位置において所望の欠陥画像1810Bを重畳させ、実画像1810Aのサイズに一致するが重畳された欠陥画像1810Bのサイズ及び位置に一致する閉塞領域を有するマスク1810Cを生成し、修正された実画像及びマスク1810Cを部分畳み込みモデル(例えばモデル1200)への個別の入力として適用して合成画像1810Dを生成する。合成画像1804D、1810Dを生成するために、16ptのマスク線幅が使用された。図18に見られるように、この技術は、適用された欠陥でマスクされた領域を不鮮明にし、現実的な外観を有する滑らかな移行領域を提供する。別の例が、図19に示されており、ここで、この同じ技術が合成欠陥画像1902を得るために、実際の251×1651画像1900を拡張するために使用された。
他の実装形態では、モジュール124は、モデル1200などの部分畳み込みモデルを使用して元の画像に欠陥を追加するが、ランダム欠陥生成をサポートするために、異なる方法でモデルを訓練する。この実装形態では、訓練中、モジュール124は、各欠陥画像(例えば、実際の欠陥画像)を部分畳み込みモデルにフィードして、ターゲット画像として機能させる。訓練サンプルは、同じ欠陥画像であるが、(欠陥画像に適用されると)欠陥をマスクするマスクを有する。多数の欠陥画像に対してこれを繰り返すことにより、モジュール124は、欠陥を有する各マスク/穴領域をインペイントするように部分畳み込みモデルを訓練する。いったん部分畳み込みモデルが訓練されると、モジュール124は、所望の欠陥位置におけるマスクとともに、良好/欠陥なし画像を入力ペアとして適用することができる。
これらの実装形態では、複数の欠陥タイプが望まれる場合、異なる欠陥タイプに対して個別の部分畳み込みモデルを訓練することが有利であり得る。例えば、モジュール124は、スペックを追加することによって良好画像を拡張するための第1の部分畳み込みモデル、及び不正なプランジャリブなどを追加することによって画像を拡張するための第2の部分畳み込みモデルを訓練することができる。これは一般に、欠陥インペインティングに対するより多くの制御を提供し、(例えば、各欠陥タイプに関連する異なる複雑性を考慮するために異なるハイパーパラメータを用いて)異なるモデルを独立して訓練することを可能にする。これはまた、例えば、合成画像が、異なる欠陥クラスを特定するコンピュータビジョンシステムを訓練するために使用される場合に有用であり得る、(すなわち、単一の欠陥クラス内で明確に)より「純粋な」欠陥を生成することができる。図20は、この技術がシリンジ画像に欠陥を追加するために使用された、3つの例示的なシーケンス2000、2002、2004を示している。各シーケンスでは、モジュール124は、実画像を取得し(図20の左側)、欠陥が追加されるべき実画像の一部を閉塞するマスクを生成し(図20の中央)、実画像及びマスクを個別の入力として、(モデル1200と同様の)訓練された部分畳み込みモデルに適用して合成画像を生成する(図20の右側)。別の例が、図21に示されており、ここで、この同じ技術が、合成欠陥画像2102を得るために、実際の251×1651画像2100を拡張するために使用された。
いくつかの実装形態では、モジュール124はまた、又は代わりに、深層学習ベースのインペインティング(例えば、モデル1200と同様の部分畳み込みモデル)を使用して、元の(例えば、実)画像内に示されている特徴を修正する(例えば、その外観を移動及び/又は変更する)。例えば、モジュール124は、(例えば、シリンジ内の)メニスカスの外観を移動及び/又は変更することができる。これらの実装形態では、モジュール124は、部分畳み込みモデル(例えば、モデル1200)を使用して欠陥を追加するという背景で上述された、以下の2つの技術のいずれかを使用することができる。(1)「良好」画像をターゲット画像として使用してモデルを訓練し、次いで、元の画像を所望の特徴外観/位置を示す特徴画像(例えば、特徴画像ライブラリ142からの)と重畳させて合成画像を生成する、又は(2)(特徴を不明瞭にする対応するマスクを有する)所望の特徴外観/位置を示す画像を使用してモデルを訓練し、次いで、所望の特徴位置において元の画像をマスクして合成画像を生成する。これら2つの選択肢のうち後者を使用して合成画像を生成するための例示的なシーケンス2200を、図22に示している。図22に見られるように、不規則な形状とすることができるマスクは、関連する特徴(ここではメニスカス)が示された元の画像の部分、及びその特徴が転置される元の画像の部分の両方を閉塞する必要がある。別の例が図23に示されており、ここで、この同じ技術が、合成画像2302を得るために、(具体的には、メニスカスを新しい位置に移動し、メニスカスを「再形成」することによって)実際の251×1651の画像2300を拡張するために使用された。図16に示される再構成と同様に、最初に、メニスカスが示されている画像2300の正方形の部分を切り取り、次いでより小さく切り取られた画像のマスクを生成することによって、再構成がより効率的に行われた。部分畳み込みモデルを使用して切り取られた領域を再構成した後、再構成された領域を元の画像2300内に再び挿入して合成画像2302を得た。
モジュール124はまた、又は代わりに、プランジャ(バレルに沿ってプランジャをデジタル的に移動させることによって)、凍結乾燥バイアル内容物(例えば、バイアルの充填レベルをデジタル的に変更することによって)など、他の特徴を移動/変更するために、この技術を使用することができる。部分畳み込みモデルが、所望の特徴位置/外観を示すターゲット画像を用いて訓練される実装形態(すなわち、上述の2つの技術のうちの後者)では、モジュール124は、各特徴タイプに対して異なるモデルを訓練して使用することができる。所与の部分畳み込みモデルの場合、モデルが人工的に生成する特徴(例えば、メニスカス)の範囲及び変動は、訓練サンプル間の変動を制御することによって調節することができる。一般に、メニスカスなどの特徴を標準状態に拡張することにより、特徴の変動(例えば、異なるメニスカスの位置)が分類器を「混乱させる」のを防止する一方で、分類器が欠陥のみに集中するのを助けることによって、AVI分類モデルの訓練を助けることができる。
部分畳み込みモデルを使用するインペインティングは、非常に効率的であり得る。メニスカス拡張の場合、例えば、利用可能な処理能力に応じて(例えば、処理ユニット110に対して)、単一のベースマスクを使用して、数分間に数千の画像を生成することができる。欠陥の生成も同様に、効率的であり得る。欠陥をカバーするために各画像に対してマスクが描かれる欠陥除去(画像あたり約1秒かかり得る)の場合、出力は、(例えば、各マスクが作成され得る迅速さの程度に応じて、1時間あたり数千個の画像において)より遅くなり得る。しかしながら、これらのプロセスは全て、実際のサンプルにおいてマニュアル的に欠陥を作成及び除去するよりも、はるかに速く且つ低コストである。
いくつかの実装形態では、処理能力の制約により、拡張される画像のサイズ(例えば、およそ512×512画素以下の画像)が制限されることがあり、これにより、拡張の前に画像を切り取り、次いで切り取られた拡張画像を再挿入することが必要になり得る。これには余分な時間がかかり、他の望ましくない(例えば、深層学習ベースのインペインティング技術の場合、図16に関連して上述したように、小さい/切り取られた部分だけでなく、画像全体にわずかなノイズ/変動を付加するという利点を達成できない)結果が生じる可能性がある。いくつかの実装形態では、モジュール124は、VGG特徴抽出器ではなく、ResNet特徴抽出器を使用することによって、これに対処する。これらのような特徴抽出器は、訓練中にインペインティングモデルの重みを調節するように使用される、損失を計算するために使用される。モジュール124は、画像寸法及び所望の訓練速度に応じて、ResNet特徴抽出器の任意の適切なバージョン(例えば、ResNet50、ResNet101、ResNet152など)を使用してもよい。
更に、いくつかの実装形態では、モジュール124は、望ましくないアーチファクトを低減するために、合成画像に対して後処理を適用してもよい。例えば、モジュール124は、各合成画像にノイズを付加し、各合成画像にフィルタリング/スムージングを実行し、並びに/又は各合成画像に高速フーリエ変換(FFT)周波数スペクトル解析及び操作を実行することができる。そのような技術は、任意のアーチファクトを軽減するのに役立ち、一般に、画像をより現実的なものにすることができる。別の例として、モジュール124は、各合成画像を精製器に通過させることができ、精製器は、精製器を特定器とペアリングすることによって訓練されたものである。訓練中、精製器及び特定器の両方は、(例えば、モジュール124によって)合成画像及び実画像をフィードされる。特定器の目的は、実画像と合成画像との間の特定であり、精製器の目的は、特定器がもはや実画像から合成画像を区別できなくなるポイントまで合成画像を精製することである。このように、精製器と特定器は互いに敵対し、GAN(敵対的生成ネットワーク)と同様に作用する。訓練の複数のサイクル後、精製器は画像を精製することに非常に熟達することができ、したがって、モジュール124は、訓練画像ライブラリ140に追加される合成画像からアーチファクトを除去するように、訓練された精製器を使用することができる。上述の技術のいずれもまた、上述のアルゴリズム400を使用して生成された合成画像など、深層学習技術なしで生成された合成画像を処理/精製するために使用することができる。
元の画像から補完的な合成画像を生成すること(例えば、実「良好」画像に対する合成「欠陥あり」画像、又は実「欠陥あり」画像に対する合成「良好」画像)が、AVI深層学習モデル(例えば、画像分類器)の訓練を大幅に改善することができ、AVIモデルが欠陥の位置を正確に特定するように導くことを示すために、様々なテストが行われた。そのようなテストの1つでは、シリンジに対するResNet50欠陥分類器が、2つの訓練サンプルセット上で訓練された。第1の訓練サンプルセットは、欠陥のある270個の元の画像、及び欠陥のない270個の元の画像で構成された。第2の訓練サンプルセットでは、欠陥なしサンプルは270個の元の画像及び(もともと欠陥ありサンプルから生成され、インペイントツールを使用して欠陥が除去された)270個の合成画像からなり、一方、欠陥ありサンプルは(合成欠陥なし画像の生成に使用された)270個の元の画像及び(元の欠陥画像270枚から、マスクなしのインペイントツールを使用して生成された)270個の合成画像から構成された。どちらの場合も、テストサンプルは、欠陥ありと欠陥なしとが混在する60個の元の画像であった。特に、テストサンプルは訓練サンプルと同じシリンジからの画像であり、且つ回転のみが異なるため、テストサンプルは訓練サンプルから独立していなかった。
以下の表は、2つの異なるAVI画像分類モデル(「分類器1」及び「分類器2」)を訓練するために使用された、これらの訓練サンプルセットの詳細をまとめたものである。
分類器1及び分類器2は各々、学習率0.0001のAdam最適化器を使用して8つのエポックに対して、各々訓練させた。図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は、誤った領域にフォーカスしている。これはまた、テストされた3つの他の欠陥クラスに対して同様であった。このように、50%合成画像を訓練サンプルセットに含めることにより、テストされた全てのケースにおいて分類器の性能が劇的に改善された。
AVIモデル(例えば、画像分類モデル)を適切に訓練するために、1つ以上の段階において品質管理手段を含めることが賢明である。これは、安全で信頼性の高い医薬品を確実にすることによって患者の安全を保護する必要がある、医薬の背景では特に重要であり得る。いくつかの実装形態では、「処理前」及び「処理後」の両方の品質チェックが(例えば、画像/ライブラリ評価モジュール126によって)実行される。一般に、これらの処理前及び処理後の品質チェックは、様々な画像処理技術を活用して、画素単位で情報を分析及び/又は比較することができる。
画像は通常、厳密に制御された条件下で捕捉されるため、同じデータセットからの任意の2つの画像間には、しばしば微妙な差しか存在しない。データセット全体にわたる画像パラメータの変動を測定するには手間がかかるが、そのような変動を迅速且つ視覚的に評価することにより、(例えば、誤った属性の測定を回避することによって)時間を節約することができ、画像捕捉条件に対する初期品質チェックとして機能することができる。この変動を知ることは、2つの理由から有用であり得る。第1に、特定の属性(例えば、プランジャ位置)における変動は、実際の欠陥からの信号を圧倒し、その結果、アルゴリズムが欠陥自体よりも変動属性を重く評価し得るため、誤分類につながる可能性がある。第2に、画像拡張の目的で、所与の属性の変動範囲を知っておくことは、集団を代表する合成画像を作成する際に、それらの属性をその範囲に制約するのに有用であり得る。
図25は、画像セットにおける多様性を迅速に評価するために使用され得る、視覚化を生成するための例示的なプロセス2500を示している。プロセス2500は、画像/ライブラリ評価モジュール126(単に「モジュール126」とも呼ばれる)によって実行されてもよい。プロセス2500では、モジュール126は、画像セット2502を、各々が画像セット2502からの対応する画像内の各画素に対して正確に1つの行列要素を有する、それぞれの数値行列のセット2504に変換する。次いで、モジュール126は、各行列位置(i,j)における数値行列2504の全てにわたる最大値を判定し、最大値行列2506内の対応する位置(i,j)を集合するように最大値を使用する。次に、モジュール126は、最大値行列2506を最大変動複合(ビットマップ)画像2508に変換する。或いは、モジュール126は、新しい最大値行列2506の作成を回避し、代わりに(例えば、その数値行列の各要素値を全ての他の数値行列2504の対応する要素値と連続的に比較して、より大きい値が見つかるたびに更新することによって)セット2504から特定の数値行列を更新することができる。
コンピュータシステム104は、次いで、データセットの可変性を迅速に視覚化できるように、得られた複合画像2508をディスプレイ上に提示することができる。図26Aは、そのような視覚化2600の一例を示している。この例では、プランジャが点2602と同じくらい離れて左に移動していることが分かり得る。これは、所望の制約に依存して、許容されても許容されなくてもよい。モジュール124は、その後、(例えば、異なるプランジャ位置を有する合成画像を作成する際に)例えば、プランジャの左端境界として点2602を使用することができる。いくつかの実装形態では、モジュール124は、連続する列にわたる1次導関数がある閾値を超える点(例えば、画素位置)を判定することによって、この境界をより正確に判定する。
視覚化2600の他のバリエーションも可能である。例えば、モジュール126は、最小(すなわち、全ての数値行列2504にわたる各行列位置における最小要素値をとる)画像、又は平均(すなわち、全ての数値行列2504にわたる各行列位置における平均値をとる)画像などを判定してもよい。例示的な平均画像視覚化2604が、図26Bに示されている。これらの実装形態のいずれにおいても、この技術は、品質チェックとしての可変性を表示するため、及び/又は合成画像が遵守しなければならない属性/特徴境界を判定するために使用することができる。
図27は、合成画像と画像セットとの間の類似性を評価するための例示的なプロセス2700を示している。プロセス2700は、例えば、ライブラリ拡大モジュール124によって生成された合成画像を評価するために、画像/ライブラリ評価モジュール126によって実行されてもよい。モジュール126は、1つ以上の他の技術(例えば、合成画像が訓練セットに追加される前後のAVIモデル性能の評価)に加えて、プロセス2700を使用することができる。しかしながら、プロセス2700は、各合成画像が元の実画像と根本的には異ならないことを確実にするするために、より的を絞った方法で使用される。
プロセス2700のブロック2702において、実画像セット内の全ての画像に対して、モジュール126は、実画像セット内の全ての他の画像に対する平均二乗誤差(MSE)を計算する。任意の2つの画像間の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に示されるものから1つ以上の点で変化する。例えば、ブロック2708において、モジュール126は代わりに、ブロック2706において計算された全てのMSEの平均が上部境界を超えるかどうかを判定することができる。別の例として、いくつかの実装では、モジュール126は、ブロック2708、2710、又はブロック2708、2712を実行する代わりに(又はそれに加えて)、ブロック2706において計算されたMSEのヒストグラムを生成する。そのようなヒストグラム2800の一例を、図28に示す。例示的なヒストグラム2800のX軸は、MSEを示し、Y軸は、合成画像と実画像との比較中にMSEが発生した回数を示している。品質プロキシとしてMSEを使用することにはいくつかの固有の制限があるが、この指標は、AVIモデル性能の分析を補完する妥当なアプローチを提供することができる。
いくつかの実装形態では、上述した技術(例えば、プロセス2700)に加えて、又は代わりに、コンピュータシステム104は、(例えば、所与の合成画像と他の画像との間の類似性を判定するため、又は画像セットの多様性を測定するなどのため)1つ以上の他の画像品質指標を判定する。例えば、コンピュータシステム104は、この目的のために、米国仮特許出願第63/020,232号に記載されている技術のいずれかを使用することができる。
図29~図32は、上述した様々な技術に対応する例示的な方法のフロー図を示している。最初に図29を参照すると、合成画像を生成するための方法2900は、元の画像上に特徴を転送することによって、(例えば、処理ユニット110がメモリユニット114に記憶されたモジュール124の命令を実行する際に)例えば、図1のモジュール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は、元の画像内に示された欠陥を除去することによって、(例えば、処理ユニット110がメモリユニット114に記憶されたモジュール124の命令を実行する際に)例えば、図1のモジュール124によって実行されてもよい。
ブロック3002において、欠陥を示す元の画像の一部がマスクされる。マスクは、例えば、自動的に(例えば、最初にオブジェクト検出を使用して欠陥を検出することによって)適用されてもよく、又は適切なマスクされた領域を特定するユーザ入力に応じて適用されてもよい。
ブロック3004において、対応指標が計算される。この指標は、マスクされた部分に隣接する元の画像の部分と、元の画像の他の部分との間の対応関係を示す画素統計を反映している。
ブロック3006において、ブロック3004で計算された対応指標は、元の画像のマスクされた部分を欠陥なし画像部分で充填するために使用される。例えば、マスクされた部分は、元の画像内の他のパターンを模倣しようとする方法で充填/描画されてもよい。
ブロック3008において、合成画像(例えば、複数の他の実画像及び合成画像)を使用して、自動外観検査用にニューラルネットワークが訓練される。AVIニューラルネットワークは、例えば、画像分類ニューラルネットワーク、又は物体検出(例えば、畳み込み)ニューラルネットワークなどであってもよい。
方法3000のブロックは、示された順序で厳密に発生する必要はないことが理解される。
次に図31を参照すると、元の画像内に示された特徴を除去又は修正することによって、又は元の画像内に示された特徴を追加することによって、合成画像を生成するための方法3100は、(例えば、処理ユニット110がメモリユニット114に記憶されたモジュール124の命令を実行する際に)例えば、図1のモジュール124によって実行されてもよい。
ブロック3102において、部分畳み込みモデル(例えば、モデル1200と同様)が訓練される。部分畳み込みモデルは、一連の畳み込み層を有するエンコーダ、及び一連の転置畳み込み層を有するデコーダを含む。ブロック3102は、訓練画像セットの各画像に対して、訓練画像及び対応するマスクを部分畳み込みモデルへの個別の入力として適用することを含む。
ブロック3104において、合成画像が生成される。ブロック3104は、元の画像の各々に対して、元の画像(又は元の画像の修正バージョン)及び対応するマスクを、訓練された部分畳み込みモデルへの個別の入力として適用することを含む。元の画像は、例えば、訓練された部分畳み込みモデルへの入力として修正された元の画像及び対応するマスクを適用する前に、追加される特徴(例えば、欠陥)の切り取られた画像を重畳させることによって最初に修正されてもよい。
ブロック3106において、合成画像を使用して(場合によっては元の画像もまた使用して)、自動外観検査用のニューラルネットワークが訓練される。AVIニューラルネットワークは、例えば、画像分類ニューラルネットワーク、又は物体検出(例えば、畳み込み)ニューラルネットワークなどであってもよい。
方法3100のブロックは、示された順序で厳密に発生する必要はないことが理解される。
次に図32を参照すると、例えば、訓練画像ライブラリにおいて使用され得る合成画像を評価するための方法3200は、(例えば、処理ユニット110がメモリユニット114に記憶されたモジュール124の命令を実行する際に)図1のモジュール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は、1つ又はマニュアルのステップ(例えば、図28に示されるヒストグラム2800と同様の表示されたヒストグラムに基づいて、受容性をマニュアル的に判定する)を含む。
方法3200のブロックは、示された順序で厳密に発生する必要はないことが理解される。
システム、方法、デバイス及びそれらの構成要素を例示的な実施形態の観点から説明してきたが、それらは、これらの例示的な実施形態に限定されない。詳細な説明は、例としてのみ解釈されるものとし、可能な実施形態の全てを説明することは、不可能ではないにしても非現実的であることから、本発明の全ての可能な実施形態を説明しているわけではない。現在の技術又は本特許の出願日以降に開発された技術のいずれかを用いて、多くの代替的な実施形態を実施することができ、それは、本発明を定義する特許請求の範囲内に依然として含まれる。
当業者であれば、本発明の範囲から逸脱することなく、上記の実施形態に対する多様な修正形態、変形形態及び組み合わせをなすことができ、そうした修正形態、変形形態及び組み合わせが本発明の概念の範囲内であると解釈されるべきであることを理解するであろう。
Claims (102)
- 元の画像上に特徴を転送することによって合成画像を生成する方法であって、
特徴行列の各要素が特徴画像の異なる画素に対応している、前記特徴を示す前記特徴画像の数値表現である前記特徴行列を受信又は生成することと、
代理領域行列の各要素が前記元の画像の異なる画素に対応している、前記元の画像内の、前記特徴が転送される領域の数値表現である前記代理領域行列を受信又は生成することと、
前記特徴を表さない前記特徴行列の部分に対して、前記特徴行列を正規化することと、
(i)前記代理領域行列及び(ii)前記正規化された特徴行列に基づいて、前記合成画像を生成することと、
を含む、方法。 - 前記元の画像が、容器の画像であり、
前記特徴が、前記容器又は前記容器の内容物に関連する欠陥である、
請求項1に記載の方法。 - 前記容器が、シリンジであり、
前記特徴が、前記シリンジのバレル、前記シリンジのプランジャ、前記シリンジの針シールド、又は前記シリンジ内の流体に関連する欠陥である、
請求項2に記載の方法。 - 前記容器が、バイアルであり、
前記特徴が、前記バイアルの壁、前記バイアルのキャップ、前記バイアルのクリンプ、又は前記バイアル内の流体若しくは凍結乾燥ケーキに関連する欠陥である、
請求項2に記載の方法。 - 前記特徴行列を正規化することが、行単位又は列単位で前記特徴行列を正規化することを含む、請求項1~4のいずれか一項に記載の方法。
- 行単位又は列単位で前記特徴行列を正規化することが、前記特徴行列の各行又は列に対して、
前記特徴行列の前記行又は列の要素値の特徴行ヒストグラムを生成すること
を含む、請求項5に記載の方法。 - 行単位又は列単位で前記特徴行列を正規化することが、前記特徴行列の各行又は列に対して、
前記特徴を表さない前記特徴行列の前記行又は列の部分に対応する、前記特徴行ヒストグラムのピーク部分を特定することと、
前記特徴行列の前記行又は列の各要素に対して、前記要素の値から前記ピーク部分の中心値を減算することと、
を更に含む、請求項6に記載の方法。 - 前記要素の前記値から前記ピーク部分の前記中心値を減算することが、(i)前記ピーク部分に対応する前記行又は列内の全ての値の平均値を(ii)前記要素の前記値から減算することを含む、請求項7に記載の方法。
- 前記代理領域行列の各行又は列に対して、
代理領域行ヒストグラムを生成することと、
前記代理領域行ヒストグラムのピーク部分を特定することと、
前記代理領域行ヒストグラムの前記ピーク部分の幅を表す数値範囲を判定することと、
を更に含み、
前記合成画像を生成することが、(i)前記特徴行列の各行又は列に対する前記数値範囲及び(ii)前記正規化された特徴行列に基づいて、前記合成画像を生成することを含む、
請求項1~8のいずれか一項に記載の方法。 - 前記合成画像を生成することが、前記特徴行列の各行又は列に対して、
前記特徴行列の前記行又は列の各要素に対して、前記特徴行列の前記要素が前記数値範囲内の値を有しているかどうかを判定することと、
前記元の画像の数値表現である元の画像行列を、(i)前記特徴行列の前記要素が前記数値範囲内の値を有する場合、前記元の画像行列の対応する要素の元の値を保持するか、又は(ii)前記特徴行列の前記要素の前記値が前記数値範囲内にない場合、前記元の画像行列内の前記対応する要素を、前記元の値と前記特徴行列内の前記要素の前記値との合計に等しく設定するか、のいずれかによって、修正することと、
を含む、請求項9に記載の方法。 - 前記合成画像を生成することが、前記修正された元の画像行列をビットマップ画像に変換することを含む、請求項10に記載の方法。
- 前記特徴行列を受信又は生成することが、前記特徴行列又は前記特徴画像を回転させることを含む、請求項1~11のいずれか一項に記載の方法。
- 前記特徴行列又は前記特徴画像を回転させることが、(i)前記特徴画像内に示された前記特徴の回転及び(ii)前記特徴画像内に示された前記特徴の所望の回転に基づく量だけ、前記特徴行列又は前記特徴画像を回転させることを含む、請求項12に記載の方法。
- 前記特徴が転送されることになる前記領域の位置に基づいて、前記所望の回転を判定すること、
を更に含む、請求項13に記載の方法。 - 前記特徴行列を受信又は生成することが、前記特徴行列又は前記特徴画像をサイズ変更することを含む、請求項1~14のいずれか一項に記載の方法。
- 特徴ライブラリ内の異なる特徴に対応する複数の特徴の各々に対して、前記方法を繰り返すこと、
を更に含む、請求項1~15のいずれか一項に記載の方法。 - 複数の元の画像の各々に対して前記方法を繰り返すことによって、複数の合成画像を生成すること、
を更に含む、請求項1~16のいずれか一項に記載の方法。 - 前記複数の合成画像及び前記複数の元の画像を使用して、自動外観検査用のニューラルネットワークを訓練すること、
を更に含む、請求項17に記載の方法。 - 前記訓練されたニューラルネットワークを使用して、示された欠陥の複数の画像を検査すること、
を更に含む、請求項18に記載の方法。 - システムであって、
1つ以上のプロセッサと、
命令を記憶する1つ以上の非一時的コンピュータ可読媒体であって、前記命令が、前記1つ以上のプロセッサによって実行されると、前記システムに、
特徴行列の各要素が特徴画像の異なる画素に対応している、特徴を示す前記特徴画像の数値表現である前記特徴行列を受信又は生成させ、
代理領域行列の各要素が前記元の画像の異なる画素に対応している、元の画像内の、前記特徴が転送されることになる領域の数値表現である前記代理領域行列を受信又は生成させ、
前記特徴を表さない前記特徴行列の部分に対して、前記特徴行列を正規化させ、
(i)前記代理領域行列及び(ii)前記正規化された特徴行列に基づいて、前記合成画像を生成させる、
1つ以上の非一時的コンピュータ可読媒体と、
を備える、システム。 - 前記特徴行列を正規化することが、行単位又は列単位で前記特徴行列を正規化することを含む、請求項20に記載のシステム。
- 行単位又は列単位で前記特徴行列を正規化することが、前記特徴行列の各行又は列に対して、
前記特徴行列の前記行又は列の要素値の特徴行ヒストグラムを生成すること
を含む、請求項21に記載のシステム。 - 行単位又は列単位で前記特徴行列を正規化することが、前記特徴行列の各行又は列に対して、
前記特徴を表さない前記特徴行列の前記行又は列の部分に対応する、前記特徴行ヒストグラムのピーク部分を特定することと、
前記特徴行列の前記行又は列の各要素に対して、前記要素の値から前記ピーク部分の中心値を減算することと、
を更に含む、請求項22に記載のシステム。 - 前記要素の前記値から前記ピーク部分の前記中心値を減算することが、(i)前記ピーク部分に対応する前記行又は列内の全ての値の平均値を(ii)前記要素の前記値から減算することを含む、請求項23に記載のシステム。
- 前記命令が、前記システムに更に、
前記代理領域行列の各行又は列に対して、
代理領域行ヒストグラムを生成させ、
前記代理領域行ヒストグラムのピーク部分を特定させ、
前記代理領域行ヒストグラムの前記ピーク部分の幅を表す数値範囲を判定させ、
前記合成画像を生成することが、(i)前記特徴行列の各行又は列に対する前記数値範囲及び(ii)前記正規化された特徴行列に基づいて、前記合成画像を生成することを含む、
請求項20~24のいずれか一項に記載のシステム。 - 前記合成画像を生成することが、
前記特徴行列の各行又は列に対して、
前記特徴行列の前記行又は列の各要素に対して、前記特徴行列の前記要素が前記数値範囲内の値を有しているかどうかを判定することと、
前記元の画像の数値表現である元の画像行列を、(i)前記特徴行列の前記要素が前記数値範囲内の値を有する場合、前記元の画像行列の対応する要素の元の値を保持するか、又は(ii)前記特徴行列の前記要素の前記値が前記数値範囲内にない場合、前記元の画像行列の前記対応する要素を、前記元の値と前記特徴行列内の前記要素の前記値との合計に等しく設定するか、のいずれかによって、修正することと、
前記修正された元の画像行列をビットマップ画像に変換することと、
を含む、請求項25に記載のシステム。 - 前記特徴行列を受信又は生成することが、前記特徴行列又は前記特徴画像を回転させることを含む、請求項20~26のいずれか一項に記載のシステム。
- 前記特徴行列又は前記特徴画像を回転させることが、(i)前記特徴画像内に示された前記特徴の回転及び(ii)前記特徴画像内に示された前記特徴の所望の回転に基づく量だけ、前記特徴行列又は前記特徴画像を回転させることを含む、請求項27に記載のシステム。
- 前記命令が、前記システムに更に、
前記特徴が転送されることになる前記領域の位置に基づいて、前記所望の回転を判定させる、
請求項28に記載のシステム。 - 前記特徴行列を受信又は生成することが、前記特徴行列又は前記特徴画像をサイズ変更することを含む、請求項20~29のいずれか一項に記載のシステム。
- 元の画像内に示された欠陥を除去することによって合成画像を生成する方法であって、
前記欠陥を示す前記元の画像の部分をマスクすることと、
合成画像を生成することであって、少なくとも部分的に、
(i)前記マスクされた部分に隣接する前記元の画像の部分と(ii)前記元の画像の他の部分との間の対応関係を示す、対応関係指標を計算すること、及び
前記計算された対応関係指標を使用して、前記元の画像の前記マスクされた部分を欠陥なし画像部分で充填すること
によって、合成画像を生成することと、
前記合成画像を使用して、自動外観検査用のニューラルネットワークを訓練することと、
を含む、方法。 - 前記対応関係指標を計算することが、
前記マスクされた部分に隣接する前記元の画像の複数の隣接部分の各々に対して、第1の統計を計算することと、
(i)前記マスクされた部分及び(ii)前記複数の隣接部分の両方の外側にある前記元の画像の複数の部分の各々に対して、第2の統計を計算することと、
前記第1の統計及び前記第2の統計に基づいて、前記対応指標を計算することと、
を含む、請求項31に記載の方法。 - 前記元の画像が、容器の画像であり、
前記欠陥が、前記容器又は前記容器の内容物に関連している、
請求項31又は32に記載の方法。 - 前記容器が、シリンジであり、
前記欠陥が、前記シリンジのバレル、前記シリンジのプランジャ、前記シリンジの針シールド、又は前記シリンジ内の流体に関連している、
請求項33に記載の方法。 - 前記容器が、バイアルであり、
前記欠陥が、前記バイアルの壁、前記バイアルのキャップ、前記バイアルのクリンプ、又は前記バイアル内の流体若しくは凍結乾燥ケーキに関連している、
請求項33に記載の方法。 - 複数の元の画像の各々に対して前記方法を繰り返すことによって、複数の合成画像を生成すること
を更に含み、
自動外観検査用の前記ニューラルネットワークを訓練することが、前記複数の合成画像を使用して前記ニューラルネットワークを訓練することを含む、
請求項31~35のいずれか一項に記載の方法。 - 前記自動外観検査用の前記ニューラルネットワークを訓練することが、前記複数の合成画像及び前記複数の元の画像を使用して前記ニューラルネットワークを訓練することを含む、請求項36に記載の方法。
- 前記訓練されたニューラルネットワークを使用して、複数の画像を検査すること、
を更に含む、請求項31~37のいずれか一項に記載の方法。 - システムであって、
1つ以上のプロセッサと、
命令を記憶する1つ以上の非一時的コンピュータ可読媒体であって、前記命令が、前記1つ以上のプロセッサによって実行されると、前記システムに、
欠陥を示す元の画像の部分をマスクさせることと、
合成画像を生成させることであって、少なくとも部分的に、
(i)前記マスクされた部分に隣接する前記元の画像の部分と(ii)前記元の画像の他の部分との間の対応関係を示す、対応関係指標を計算すること、及び
前記計算された対応関係指標を使用して、前記元の画像の前記マスクされた部分を欠陥なし画像部分で充填すること
によって、合成画像を生成させることと、
前記合成画像を使用して、自動外観検査用のニューラルネットワークを訓練させることと、
を行わせる、1つ以上の非一時的コンピュータ可読媒体と、
を備える、システム。 - 前記対応関係指標を計算することが、
前記マスクされた部分に隣接する前記元の画像の複数の隣接部分の各々に対して、第1の統計を計算することと、
(i)前記マスクされた部分及び(ii)前記複数の隣接部分の両方の外側にある前記元の画像の複数の部分の各々に対して、第2の統計を計算することと、
前記第1の統計及び前記第2の統計に基づいて、前記対応指標を計算することと、
を含む、請求項39に記載のシステム。 - 前記元の画像が、容器の画像であり、
前記欠陥が、前記容器又は前記容器の内容物に関連している、
請求項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~55のいずれか一項に記載の方法。 - 前記対応する訓練マスクが、前記訓練画像に適用されると、前記訓練画像内に示された対応する特徴を不明瞭にし、
前記合成画像を生成することが、前記元の画像の各々に対して、前記元の画像及び前記対応するマスクを前記訓練された部分畳み込みモデルへの個別の入力として適用することを含む、
請求項52に記載の方法。 - 前記訓練画像、前記元の画像、及び前記合成画像が、容器を示している、請求項61に記載の方法。
- 前記容器が、シリンジである、請求項62に記載の方法。
- 前記方法が、示された欠陥を前記元の画像に追加することによって前記合成画像を生成し、
前記対応する特徴が、シリンジバレル欠陥、シリンジプランジャ欠陥、又はシリンジ内容物に関連する欠陥である、
請求項63に記載の方法。 - 前記容器が、バイアルである、請求項62に記載の方法。
- 前記方法が、示された欠陥を前記元の画像に追加することによって前記合成画像を生成し、
前記対応する特徴が、バイアル壁欠陥、バイアルキャップ欠陥、バイアルクリンプ欠陥、又はバイアル内容物に関連する欠陥である、
請求項63に記載の方法。 - 前記部分畳み込みモデルを訓練することが、前記部分畳み込みモデルを訓練して特定のタイプの欠陥を追加することを含み、
前記対応する特徴が、前記特定のタイプの欠陥に対応している、
請求項61~66のいずれか一項に記載の方法。 - 前記方法が、前記元の画像内に示された特徴を修正することによって前記合成画像を生成し、
前記対応する特徴が、メニスカスである、
請求項61に記載の方法。 - 前記部分畳み込みモデルを訓練することが、複数の損失を最小化することを含み、前記複数の損失が、少なくとも有効損失、穴損失、知覚損失、スタイル損失、及び変動損失を含む、請求項44~68のいずれか一項に記載の方法。
- システムであって、
1つ以上のプロセッサと、
命令を記憶する1つ以上の非一時的コンピュータ可読媒体であって、前記命令が、前記1つ以上のプロセッサによって実行されると、前記システムに、
複数の訓練画像の各々に対して、少なくとも、前記訓練画像及び対応する訓練マスクを部分畳み込みモデルへの個別の入力として適用することによって、(i)一連の畳み込み層を有するエンコーダ及び(ii)一連の転置畳み込み層を有するデコーダを含む、部分畳み込みモデルを訓練させ、
複数の元の画像の各々に対して、少なくとも、(i)前記元の画像又は前記元の画像の修正バージョンのいずれか、及び(ii)対応するマスクを、前記訓練された部分畳み込みモデルへの個別の入力として適用することによって、複数の合成画像を生成させ、
前記合成画像を使用して自動外観検査用のニューラルネットワークを訓練させる、
1つ以上の非一時的コンピュータ可読媒体と、
を備える、システム。 - 前記システムが、前記元の画像内に示された欠陥を除去することによって前記合成画像を生成する、請求項70に記載のシステム。
- 前記合成画像を生成することが、前記元の画像の各々に対して、前記元の画像及び前記対応するマスクを、前記訓練された部分畳み込みモデルへの個別の入力として適用することを含み、
前記元の画像が、対応する欠陥を示す画像であり、
前記対応するマスクが、前記元の画像に適用されると、前記対応する欠陥を不明瞭にする、
請求項71に記載のシステム。 - 前記訓練画像、前記元の画像、及び前記合成画像が、容器を示している、請求項72に記載のシステム。
- 前記システムが、示された欠陥を前記元の画像に追加すること、又は前記元の画像内に示された特徴を修正することによって、前記合成画像を生成する、請求項70に記載のシステム。
- 前記合成画像を生成することが、前記元の画像の各々に対して、
前記元の画像の特定の部分を特徴画像で置換することによって、前記元の画像を修正することと、
前記修正された元の画像及び前記対応するマスクを前記訓練された部分畳み込みモデルへの個別の入力として適用することと、
を含み、
前記対応するマスクが、前記修正された元の画像に適用されると、前記元の画像の前記特定の部分を不明瞭にする、
請求項74に記載のシステム。 - 前記訓練画像、前記元の画像、及び前記合成画像が、容器を示している、請求項75に記載のシステム。
- 前記システムが、示された欠陥を前記元の画像に追加することによって前記合成画像を生成し、
前記特徴画像が、欠陥の画像である、
請求項75又は76に記載のシステム。 - 前記システムが、前記元の画像内に示された特徴を修正することによって前記合成画像を生成し、
前記特徴画像が、メニスカスの画像である、
請求項75又は76に記載のシステム。 - 前記対応する訓練マスクが、前記訓練画像に適用されると、前記訓練画像内に示された対応する特徴を不明瞭にし、
前記合成画像を生成することが、前記元の画像の各々に対して、前記元の画像及び前記対応するマスクを前記訓練された部分畳み込みモデルへの個別の入力として適用することを含む、
請求項74に記載のシステム。 - 前記訓練画像、前記元の画像、及び前記合成画像が、容器を示している、請求項79に記載のシステム。
- 前記システムが、示された欠陥を前記元の画像に追加することによって前記合成画像を生成し、
前記対応する特徴が、前記訓練画像内に示された欠陥である、
請求項79又は80に記載のシステム。 - 前記部分畳み込みモデルを訓練することが、前記部分畳み込みモデルを訓練して特定のタイプの欠陥を追加することを含み、
前記対応する特徴が、前記特定のタイプの欠陥に対応している、
請求項81に記載のシステム。 - 前記システムが、前記元の画像内に示された特徴を修正することによって前記合成画像を生成し、
前記対応する特徴が、メニスカスである、
請求項79又は80に記載のシステム。 - 前記部分畳み込みモデルを訓練することが、複数の損失を最小化することを含み、前記複数の損失が、少なくとも有効損失、穴損失、知覚損失、スタイル損失、及び変動損失を含む、請求項70~83のいずれか一項に記載のシステム。
- 訓練画像ライブラリにおいて使用される合成画像を評価する方法であって、
画像セットの画素値に基づいて、(i)前記画像セット内の各画像と(ii)前記画像セット内の他の各画像との間の差分を示す指標を計算することと、
前記計算された指標に基づいて、閾値差分値を生成することと、
複数の合成画像の各々に対して、
前記合成画像の画素値に基づいて合成画像指標を計算することと、
前記合成画像指標及び前記閾値差分値に基づいて、前記合成画像の受容性を判定することと、
を含む、方法。 - 前記複数の合成画像の各々に対して、前記合成画像の前記受容性に基づいて、前記合成画像を前記訓練画像ライブラリに追加するか、又は前記訓練画像ライブラリから前記合成画像を省略するか、のいずれか、
を更に含む、請求項85に記載の方法。 - 前記合成画像の各々を追加又は省略した後、前記訓練画像ライブラリを使用して自動外観検査用のニューラルネットワークを訓練すること、
を更に含む、請求項86に記載の方法。 - 前記訓練されたニューラルネットワークを使用して、示された欠陥の複数の容器画像を検査すること、
を更に含む、請求項87に記載の方法。 - 各画像と他の各画像との間の差分を示す前記指標を計算することが、
(i)前記画像セット内の各画像の前記画素値と(ii)前記画像セット内の他の各画像の前記画素値との間の平均二乗誤差を計算すること、
を含む、請求項85~88のいずれか一項に記載の方法。 - 前記閾値差分値を生成することが、
前記画像セットから形成された画像ペアに対して計算された前記平均二乗誤差の中から、最大平均二乗誤差を判定すること、
を含む、請求項89に記載の方法。 - 前記合成画像指標を計算することが、
各合成画像の平均二乗誤差が(i)前記合成画像の前記画素値と(ii)前記画像セット内のそれぞれの画像の前記画素値との間の二乗平均誤差である、複数の合成画像の平均二乗誤差を計算すること、
を含む、請求項89又は90に記載の方法。 - 前記合成画像の受容性を判定することが、(i)前記合成画像の平均二乗誤差の最大値及び(ii)前記最大平均二乗誤差に基づく、請求項91に記載の方法。
- 前記合成画像の受容性を判定することが、(i)前記合成画像の平均二乗誤差の平均及び(ii)前記最大平均二乗誤差に基づく、請求項91に記載の方法。
- 前記合成画像の受容性を判定することが、
ディスプレイ上に、前記合成画像の合成画像平均二乗誤差を表すヒストグラムを提示すること、
を含む、請求項91~93のいずれか一項に記載の方法。 - 前記画像セットが、デジタル的に変更されていない容器画像セットであり、前記合成画像が、デジタル的に変更された容器画像である、請求項85~94のいずれか一項に記載の方法。
- システムであって、
1つ以上のプロセッサと、
命令を記憶する1つ以上の非一時的コンピュータ可読媒体であって、前記命令が、前記1つ以上のプロセッサによって実行されると、前記システムに、
画像セットの画素値に基づいて、(i)前記画像セット内の各画像と(ii)前記画像セット内の他の各画像との間の差分を示す指標を計算させ、
前記計算された指標に基づいて、閾値差分値を生成させ、
複数の合成画像の各々に対して、
前記合成画像の画素値に基づいて合成画像指標を計算させ、
前記合成画像指標及び前記閾値差分値に基づいて、前記合成画像の受容性を判定させる、
1つ以上の非一時的コンピュータ可読媒体と、
を備える、システム。 - 各画像と他の各画像との間の差分を示す前記指標を計算することが、
(i)前記画像セット内の各画像の前記画素値と(ii)前記画像セット内の他の各画像の前記画素値との間の平均二乗誤差を計算すること、
を含む、請求項96に記載のシステム。 - 前記閾値差分値を生成することが、
前記画像セットから形成された画像ペアに対して計算された平均二乗誤差の中から、最大平均二乗誤差を判定すること、
を含む、請求項97に記載のシステム。 - 前記合成画像指標を計算することが、
各合成画像の平均二乗誤差が(i)前記合成画像の前記画素値と(ii)前記画像セット内のそれぞれの画像の前記画素値との間の二乗平均誤差である、複数の合成画像の平均二乗誤差を計算すること、
を含む、請求項97又は98に記載のシステム。 - 前記合成画像の受容性を判定することが、
前記合成画像の平均二乗誤差及び前記最大平均二乗誤差の最大値、又は
前記合成画像の平均二乗誤差及び前記最大平均二乗誤差の平均、
に基づく、請求項99に記載のシステム。 - 前記命令が、前記システムに更に、
ディスプレイ上に、前記合成画像の前記合成画像平均二乗誤差を表すヒストグラムを提示させる、
請求項99又は100に記載のシステム。 - 前記画像セットが、デジタル的に変更されていない容器画像セットであり、前記合成画像が、デジタル的に変更された容器画像である、請求項96~101のいずれか一項に記載のシステム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202063120508P | 2020-12-02 | 2020-12-02 | |
US63/120,508 | 2020-12-02 | ||
PCT/US2021/061309 WO2022119870A1 (en) | 2020-12-02 | 2021-12-01 | Image augmentation techniques for automated visual inspection |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2023551696A true JP2023551696A (ja) | 2023-12-12 |
Family
ID=79025147
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2023532732A Pending JP2023551696A (ja) | 2020-12-02 | 2021-12-01 | 自動外観検査用の画像拡張技術 |
Country Status (13)
Country | Link |
---|---|
US (1) | US20240095983A1 (ja) |
EP (1) | EP4256524A1 (ja) |
JP (1) | JP2023551696A (ja) |
KR (1) | KR20230116847A (ja) |
CN (1) | CN116830157A (ja) |
AR (1) | AR124217A1 (ja) |
AU (1) | AU2021392638A1 (ja) |
CA (1) | CA3203163A1 (ja) |
CL (1) | CL2023001575A1 (ja) |
IL (1) | IL303112A (ja) |
MX (1) | MX2023006357A (ja) |
TW (1) | TW202240546A (ja) |
WO (1) | WO2022119870A1 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20230135102A (ko) * | 2021-02-18 | 2023-09-22 | 파라타 시스템즈, 엘엘씨 | 의약품 패키징 시스템의 특성에 기초하여 의약품 패키지콘텐츠를 검증하기 위한 방법, 시스템 및 컴퓨터 프로그램 제품 |
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 WO PCT/US2021/061309 patent/WO2022119870A1/en active Application Filing
- 2021-12-01 TW TW110144774A patent/TW202240546A/zh unknown
- 2021-12-01 IL IL303112A patent/IL303112A/en unknown
- 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 EP EP21831181.9A patent/EP4256524A1/en active Pending
- 2021-12-01 JP JP2023532732A patent/JP2023551696A/ja active Pending
- 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 CN CN202180092354.1A patent/CN116830157A/zh active Pending
- 2021-12-01 AR ARP210103331A patent/AR124217A1/es unknown
-
2023
- 2023-06-01 CL CL2023001575A patent/CL2023001575A1/es unknown
Also Published As
Publication number | Publication date |
---|---|
EP4256524A1 (en) | 2023-10-11 |
WO2022119870A1 (en) | 2022-06-09 |
IL303112A (en) | 2023-07-01 |
TW202240546A (zh) | 2022-10-16 |
CA3203163A1 (en) | 2022-06-09 |
US20240095983A1 (en) | 2024-03-21 |
CN116830157A (zh) | 2023-09-29 |
MX2023006357A (es) | 2023-06-13 |
CL2023001575A1 (es) | 2023-11-10 |
AU2021392638A1 (en) | 2023-06-22 |
KR20230116847A (ko) | 2023-08-04 |
AR124217A1 (es) | 2023-03-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111709948B (zh) | 容器瑕疵检测方法和装置 | |
US20230196096A1 (en) | Deep Learning Platforms for Automated Visual Inspection | |
CN111507976B (zh) | 基于多角度成像的缺陷检测方法及系统 | |
JP2023551696A (ja) | 自動外観検査用の画像拡張技術 | |
JP2006501532A (ja) | 欠陥検出方法及びシステム | |
Eshkevari et al. | Automatic dimensional defect detection for glass vials based on machine vision: A heuristic segmentation method | |
CN110596120A (zh) | 玻璃边界缺陷检测方法、装置、终端及存储介质 | |
KR102559021B1 (ko) | 불량 이미지 생성 장치 및 방법 | |
EP3980790A1 (en) | Automated inspection method for a manufactured article and system for performing same | |
CN112132821B (zh) | 一种基于图像处理的开口销丢失检测方法 | |
JP4279833B2 (ja) | 外観検査方法及び外観検査装置 | |
EP3904865A1 (en) | Image processing device, image processing method, and image processing program | |
CN116542963A (zh) | 一种基于机器学习的浮法玻璃缺陷检测系统及检测方法 | |
CN116612125A (zh) | 基于人工智能的食药品胶囊质量检测方法 | |
WO2022241574A1 (en) | Texture mapping to polygonal models for industrial inspections | |
JP2007057705A (ja) | 表示パネルの検査方法および検査装置 | |
KR20230036650A (ko) | 영상 패치 기반의 불량 검출 시스템 및 방법 | |
JP2021174194A (ja) | 学習用データ処理装置、学習装置、学習用データ処理方法、およびプログラム | |
JP2005165482A (ja) | 欠陥検出方法 | |
CN114820428A (zh) | 图像处理方法以及图像处理装置 | |
JP2018021817A (ja) | 検査装置及び検査方法 | |
Dai et al. | Anomaly detection and segmentation based on defect repaired image resynthesis | |
CN117576037A (zh) | X射线焊缝缺陷检测方法、装置、设备及存储介质 | |
JP2023162652A (ja) | 学習用画像生成プログラム、学習用画像生成装置、及び学習用画像生成方法 | |
CN117934369A (zh) | 二次曲面缺陷检测方法、检测装置、检测系统和存储介质 |