KR20230028746A - 인쇄회로기판 어셈블리 결함 검출 - Google Patents

인쇄회로기판 어셈블리 결함 검출 Download PDF

Info

Publication number
KR20230028746A
KR20230028746A KR1020237000004A KR20237000004A KR20230028746A KR 20230028746 A KR20230028746 A KR 20230028746A KR 1020237000004 A KR1020237000004 A KR 1020237000004A KR 20237000004 A KR20237000004 A KR 20237000004A KR 20230028746 A KR20230028746 A KR 20230028746A
Authority
KR
South Korea
Prior art keywords
color image
white images
color
dimensional black
defect
Prior art date
Application number
KR1020237000004A
Other languages
English (en)
Inventor
매튜 켈리
세바스티앙 길버트
오스왈도 차콘
Original Assignee
인터내셔널 비지네스 머신즈 코포레이션
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 인터내셔널 비지네스 머신즈 코포레이션 filed Critical 인터내셔널 비지네스 머신즈 코포레이션
Publication of KR20230028746A publication Critical patent/KR20230028746A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/0002Inspection of images, e.g. flaw detection
    • G06T7/0004Industrial image inspection
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01NINVESTIGATING OR ANALYSING MATERIALS BY DETERMINING THEIR CHEMICAL OR PHYSICAL PROPERTIES
    • G01N21/00Investigating or analysing materials by the use of optical means, i.e. using sub-millimetre waves, infrared, visible or ultraviolet light
    • G01N21/84Systems specially adapted for particular applications
    • G01N21/88Investigating the presence of flaws or contamination
    • G01N21/95Investigating the presence of flaws or contamination characterised by the material or shape of the object to be examined
    • G01N21/956Inspecting patterns on the surface of objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/0464Convolutional networks [CNN, ConvNet]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/0002Inspection of images, e.g. flaw detection
    • G06T7/0004Industrial image inspection
    • G06T7/0008Industrial image inspection checking presence/absence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/11Region-based segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/90Determination of colour characteristics
    • HELECTRICITY
    • H05ELECTRIC TECHNIQUES NOT OTHERWISE PROVIDED FOR
    • H05KPRINTED CIRCUITS; CASINGS OR CONSTRUCTIONAL DETAILS OF ELECTRIC APPARATUS; MANUFACTURE OF ASSEMBLAGES OF ELECTRICAL COMPONENTS
    • H05K13/00Apparatus or processes specially adapted for manufacturing or adjusting assemblages of electric components
    • H05K13/08Monitoring manufacture of assemblages
    • H05K13/082Integration of non-optical monitoring devices, i.e. using non-optical inspection means, e.g. electrical means, mechanical means or X-rays
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01NINVESTIGATING OR ANALYSING MATERIALS BY DETERMINING THEIR CHEMICAL OR PHYSICAL PROPERTIES
    • G01N21/00Investigating or analysing materials by the use of optical means, i.e. using sub-millimetre waves, infrared, visible or ultraviolet light
    • G01N21/84Systems specially adapted for particular applications
    • G01N21/88Investigating the presence of flaws or contamination
    • G01N21/95Investigating the presence of flaws or contamination characterised by the material or shape of the object to be examined
    • G01N21/956Inspecting patterns on the surface of objects
    • G01N2021/95638Inspecting patterns on the surface of objects for PCB's
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01NINVESTIGATING OR ANALYSING MATERIALS BY DETERMINING THEIR CHEMICAL OR PHYSICAL PROPERTIES
    • G01N21/00Investigating or analysing materials by the use of optical means, i.e. using sub-millimetre waves, infrared, visible or ultraviolet light
    • G01N21/84Systems specially adapted for particular applications
    • G01N21/88Investigating the presence of flaws or contamination
    • G01N21/95Investigating the presence of flaws or contamination characterised by the material or shape of the object to be examined
    • G01N21/956Inspecting patterns on the surface of objects
    • G01N2021/95638Inspecting patterns on the surface of objects for PCB's
    • G01N2021/95646Soldering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10024Color image
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10116X-ray image
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20076Probabilistic image processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20081Training; Learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20084Artificial neural networks [ANN]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30108Industrial image inspection
    • G06T2207/30141Printed circuit board [PCB]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30108Industrial image inspection
    • G06T2207/30152Solder

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Pathology (AREA)
  • Quality & Reliability (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Chemical & Material Sciences (AREA)
  • Analytical Chemistry (AREA)
  • Biochemistry (AREA)
  • Manufacturing & Machinery (AREA)
  • Immunology (AREA)
  • Operations Research (AREA)
  • Biophysics (AREA)
  • Computing Systems (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Molecular Biology (AREA)
  • Biomedical Technology (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Analysing Materials By The Use Of Radiation (AREA)
  • Image Processing (AREA)
  • Image Analysis (AREA)
  • Investigating Materials By The Use Of Optical Means Adapted For Particular Applications (AREA)

Abstract

본 발명의 방법은 인쇄회로기판 어셈블리의 일부에 대한 복수의 2-차원 흑백 이미지들을 획득하는 단계를 포함한다. 각각의 2-차원 흑백 이미지는 각각의 상이한 위치들에서 상기 인쇄회로기판 어셈블리의 상기 일부와 교차하는 복수의 평행 평면들 중 하나에 대응된다. 상기 방법은 상기 복수의 2-차원 흑백 이미지들을 컬러 이미지로 변환하는 단계를 더 포함한다. 상기 복수의 2-차원 흑백 이미지들 각각은 상기 컬러 이미지의 각각의 컬러 채널에 대응되고 상기 컬러 이미지의 각각의 컬러 채널에 대한 입력으로서 사용된다. 상기 방법은 결함을 나타내는 컬러 변화를 검출하기 위해 상기 컬러 이미지를 분석하는 단계와, 상기 컬러 변화에 응답하여 상기 결함을 나타내는 경보를 출력하는 단계를 더 포함한다.

Description

인쇄회로기판 어셈블리 결함 검출
본 발명은 인쇄회로기판 결함 검출에 관한 것이다.
[0001] 인쇄회로기판(printed circuit board)의 어셈블리 동안, 결함들(defects)은 특히 헤드-인-필로우(head-in-pillow) 결함들과 같은 것을 형성할 수 있다. 당해 기술 분야에서 숙련된 자에게 알려져 있는 바와 같이,헤드-인-필로우 결함은 볼-그리드-어레이(ball-grid-array, BGA), 칩-스케일 패키지(chip-scale package, CSP), 또는 패키지-온-패키지(Package-on-package, PoP) 및 인쇄된 솔더 페이스트(printed solder paste) 사이에서 솔더 조인트(solder joint)의 불완전한 합체이다. 따라서, 제조들은 인쇄회로기판 어셈블리들(PCBA)에 관한 검사들을 일상적으로 수행하여 PCBA들에서 결함들을 검출하고 확인한다. PCBA들을 검사하는 종래의 한 가지 방법은 자동화된 x-레이 검사 장비(automated x-ray inspection equipment, AXI)의 사용을 수반한다. 일반적으로 AXI는 단순 선형 회귀 모델(simple linear regression model)을 사용하여 분석될 수 있는 배선들(interconnects)의 2-차원(2-d) 흑백 이미지들(gray scale images)을 캡쳐한다. 만약 선형 회귀 모델과 2-d 이미지들을 사용하여 결함이 확인되면, 두 번째로, 결함의 존재를 검증하기 위해 3-차원(3-d) x-레이 이미지를 사용하여 오프라인 검사가 수행된다. 두 번째의 검사동안, 3-d x-레이 이미지를 획득하기 위해 PCBA는 회전된다. 하지만, 두 번째의 오프라인 검사 과정은 비교적 느리고 검사를 수행하는데 많은 시간이 걸린다. 또한, 2-d x-레이 이미지들을 사용한 초기 검사는 높은 허위 양성률(false positive rate)을 가질 수 있고, 이는 결국 두 번째의 오프라인 검사 프로세스를 수행함에 있어서 불필요한 지연으로 이어진다. 또한, 두 번째의 오프라인 3-d 검사 프로세스는, 적어도 부분적으로는 많은 시간이 요구됨으로 인해, 제조에는 적합하지 않으며, 그리고 모든 결함들을 확인할 수는 없다.
[0002] 발명의 측면들은, 방법, 컴퓨터 프로그램 제품, 및 시스템을 포함할 수 있다. 상기 방법의 일 예는 인쇄회로기판 어셈블리의 일부에 대한 복수의 2-차원 흑백 이미지들을 획득하는 단계를 포함한다. 각각의 2-차원 흑백 이미지는 각각의 상이한 위치들에서 상기 인쇄회로기판 어셈블리의 상기 일부와 교차하는 복수의 평행 평면들 중 하나에 대응된다. 상기 방법은 상기 복수의 2-차원 흑백 이미지들을 컬러 이미지로 변환하는 단계를 더 포함한다. 상기 복수의 2-차원 흑백 이미지들 각각은 상기 컬러 이미지의 각각의 컬러 채널에 대응되고 상기 컬러 이미지의 각각의 컬러 채널에 대한 입력으로서 사용된다. 상기 방법은, 결함을 나타내는 컬러 변화(variation in color)를 검출하기 위해 상기 컬러 이미지를 분석하는 단계, 및 상기 컬러 변화를 검출하는 것에 응답하여 상기 검출을 나타내는 경보(alert)를 출력하는 단계를 더 포함한다.
[0003] 도면들은 단지 예시적인 실시예들을 도시한 것이지 발명의 범위를 한정하는 것으로 고려되어서는 아니된다는 것을 이해하여야 할 것이며, 상기 예시적인 실시예들은 첨부되는 도면들의 사용을 통해 더 구체적이고 상세히 설명될 것이다.
[0004] 도 1a-1c는 일 예의 인쇄회로기판 어셈블리 결함 검출 시스템의 예시적인 실시예들을 도시하는 블록 다이어그램들이다.
[0005] 도 2는 인쇄회로기판 어셈블리의 예시적인 일부의 측면 뷰를 도시한다.
[0006] 도 3은 일 예의 컬러 이미지를 형성하기 위해 결합된 예시적인 x-레이 흑백 이미지들을 도시한다.
[0007] 도 4는 일 예의 신경망(neural network)의 하나의 실시예를 도시한다.
[0008] 도 5는 일 예의 컴퓨터 디바이스의 하나의 실시예를 도시하는 블록 다이어그램이다.
[0009] 도 6은 인쇄회로기판 어셈블리에서 결함들을 검출하는 일 예의 방법의 하나의 실시예를 도시하는 플로우 챠트이다.
[0010] 도 7은 클라우드 컴퓨팅 환경의 하나의 실시예를 도시한다.
[0011] 도 8은 추상화 모델 계층들(abstration model layers)의 하나의 실시예를 도시한다.
[0012] 일반적인 관행에 따라, 설명된 다양한 특징들은 실제 크기대로 도시된 것이 아니라 예시적인 실시예들과 관련이 있는 특정 특징들을 강조하기 위해 도시되었다.
[0013] 이하의 상세한 설명에 있어서, 상세한 설명의 일부를 이루는 첨부되는 도면들에 대한 참조가 이뤄지는데, 이러한 도면들에서는 예를 통해 구체적인 실시예들이 보여진다. 하지만, 다른 실시예들이 이용될 수 있고 논리적, 기계적, 및 전기적 변화들이 이뤄질 수 있다는 것이 이해되어야 한다. 더 나아가, 도면들 및 상세한 설명에서 제공되는 방법은 개별 단계들이 수행될 수 있는 그 순서로 한정되는 것으로 해석되어서는 아니된다. 그러므로, 이하의 상세한 설명은 제한적인 의미로서 취해져서는 아니된다.
[0014] 여기에서 설명되는 실시예들은 인쇄회로기판 어셈블리들(PCBA)에서 결함들(defects)을 검출함에 있어서의 향상을 제공한다. 특히, 여기에서 설명되는 실시예들은 PCBA를 검사하는데 요구되는 시간의 양을 향상시킬 수 있고 또한 2-d 흑백 이미지들로부터 생성되는 컬러 이미지에 대한 분석을 통해 종래의 시스템들에 관한 결함들을 검출하는 것의 정확성을 향상시킬 수 있으며, 이에 관하여는 이하에서 더 상세히 설명된다. 따라서, 여기에서 설명되는 실시예들은 제조 설정용으로 사용하기에 적절하고 PCBA 검사 시스템들 및 기술들의 현재 상태 이상의 향상을 제공한다.
[0015] 도 1a는 PCBA에서 결함들을 검출하기 위한 예시적인 시스템(100)의 하나의 실시예를 도시하는 하이 레벨 블록 다이어그램이다. 시스템(100)은 x-레이 디바이스(102)와, 링크(106)를 통해 x-레이 디바이스(102)에 결합된 결함 검출 디바이스(104)를 포함한다. 링크(106)는 유선, 무선, 광학, 및/또는 통신 채널 또는 링크를 위한 다른 어떤 적절한 매체를 사용하여 구현될 수 있다. 예를 들어, 몇몇 실시예들에 있어서, 결함 검출 디바이스(104)는 x-레이 디바이스(102)와 같은 위치에 있고 케이블 또는 무선 링크를 사용하여 x-레이 디바이스(102)에 결합된다. 다른 실시예들에 있어서, 결함 검출 디바이스(104)는 x-레이 디바이스(102)로부터 원격으로 위치하고 네트워크를 통해 x-레이 디바이스(102)에 결합된다. 그래서, 이러한 실시예들에 있어서, 링크(106)는 어떤 개수의 어떤 적절한 물리적 및/또는 논리적 통신 토폴로지들을 사용하여 구현될 수 있는 네트워크를 포함한다. 상기 네트워크는 하나 또는 그 이상의 사설 또는 공중 컴퓨팅 네트워크들을 포함할 수 있다. 예를 들어, 상기 네트워크는 워크로드와 연관된 사설 네트워크(예컨대, 권한없는 외부 접근을 차단하는 방화벽을 갖는 네트워크)를 포함할 수 있다. 이와는 다르게, 또는 추가적으로, 상기 네트워크는 인터넷과 같은 공중 네트워크를 포함할 수 있다. 따라서, 상기 네트워크는, 예컨대, 근거리 통신망, 광역 통신망, 및/또는 인터넷과 같은 글로벌 통신망과 같이, 패킷 기반의 네트워크의 일부를 이룰 수 있다. 상기 네트워크는 하나 또는 그 이상의 서버들, 네트워크들, 또는 데이터베이스들을 포함할 수 있고, x-레이 디바이스(102)와 결함 검출 디바이스(104) 사이에서 데이터를 전송시키기 위해 하나 또는 그 이상의 통신 프로토콜들을 사용할 수 있다.
[0016] 도 1a에 도시된 실시예들은 단지 예를 들기 위한 것으로 제공된 것이며 시스템(100)은 다른 실시예들에서는 다르게 구현될 수 있다는 것이 이해되어야 한다. 예를 들어, 도 1a에서, 결함 검출 디바이스(104)는 이하에서 더 상세히 설명되는, 컬러 이미지 분석기(108) 및 컬러 이미지 생성기(110)를 구현하도록 구성된다. 하지만, 도 1b에 도시된 것과 같은 다른 실시예들에 있어서, x-레이 디바이스(102)는 컬러 이미지 생성기(110)를 구현하고 결함 검출 디바이스(104)는 컬러 이미지 분석기(108)를 구현도록 구성된다. 더 나아가, 도 1c에 도시된 것과 같은 다른 실시예들에 있어서, x-레이 디바이스(102)는 컬러 이미지 생성기(110)와 컬러 이미지 분석기(108) 둘 모두를 구현하도록 구성된다. 그래서, 이러한 실시예들에 있어서, x-레이 디바이스(102) 및 결함 검출 디바이스(104)는 공통 하우징(common housing)을 공유하는 하나의 디바이스로 구현된다. 즉, 하나의 디바이스가 x-레이 디바이스(102)의 기능(예컨대, x-레이 이미지들을 캡쳐하는 것)과 결함 검출 디바이스(104)의 기능을 수행할 수 있다. 하지만, 비록 이러한 실시예들에서 상기 기능들이 하나의 디바이스의 하우징 내에 포함되지만, 별도의 컴포넌트들이 여기에서 설명되는 각각의 기능(예컨대, x-레이 이미지들을 캡쳐하는 것, 컬러 이미지들을 생성하는 것, 및 컬러 이미지들을 분석하는 것)을 수행하도록 구성될 수 있다는 것이 이해되어야 한다.
[0017] x-레이 디바이스(102)는 상기 PCBA의 일부에 대한 복수의 2-차원 흑백 이미지들을 캡쳐하도록 구성된다. 상기 복수의 2-차원 흑백 이미지들은 종래의 자동화된 x-레이 검사 장비(AXI)에 의해 캡쳐된 2-차원 흑백 이미지들과 유사하다. 각각의 2-차원 흑백 이미지는 각각의 상이한 위치들에서 상기 PCBA의 상기 일부와 교차하는 복수의 평행 평면들(parallel planes) 중 하나에 대응된다. 그래서, 상기 2-d 흑백 이미지들은 여기서는 또한 이미지 슬라이스들(image slices)로도 일컬어진다. 예를 들어, 도 2는 PCBA의 일부의 횡단면(cross-section)과 교차하는 복수의 평행 평면들을 도시한다. 특히, 설명의 편의를 위해, 도 2는 볼 그리드 어레이의 하나의 솔더 배선(solder interconnect)을 도시한다. 하지만, 각각의 이미지 슬라이스는 복수의 이러한 배선들을 포함할 수 있다는 것이 이해되어야 한다.
[0018] 도 2의 예는 볼 그리드 어레이(201), 솔더 볼(205), 솔더 페이스트S(207), 패드(209), 및 인쇄회로기판(211)의 일부를 포함한다. x-레이 디바이스(102)는 평면들(203-1, 203-2, 및 203-N, 여기서 N은 평면들의 총 개수임) 각각에서 각각의 2-d 흑백 이미지를 캡쳐하도록 구성된다. 이 예에서, 상기 PCBA와 교차하는 세 개의 분리된 평행 평면들이 있으며, 이 평행 평면들에서 x-레이 디바이스(102)가 이미지들을 캡쳐한다. 하지만, 다른 실시예들에 있어서, 두 개 또는 세 개 이상의 평면들이 사용될 수 있다. 이 예에서, 평면 203-1에서의 이미지는 패키지 슬라이스 이미지(package slice image)로도 일컬어지고, 평면 203-2에서의 이미지는 중간-볼 슬라이스 이미지(mid-ball slice image)로도 일컬어지고, 평면 203-N에서의 이미지는 패드 슬라이스 이미지(pad slice image)로도 일컬어진다. 패키지 슬라이스 이미지, 중간-볼 슬라이스 이미지, 및 패드 슬라이스 이미지의 예들은 각각 이미지들(320-1, 320-2, 및 320-N)로 도시되어 있다.
[0019] 이 예에서, x-레이 디바이스(102)는 링크(106)를 통해 결함 검출 디바이스(104)로 이미지들(320-1, 320-2, 및 320-N)을 제공한다. 결함 검출 디바이스(104)는 컬러 이미지 생성기(110) 및 컬러 이미지 분석기(108)를 구현하도록 구성된다. 컬러 이미지 생성기(110)는 이미지들(320-1, 320-2, 및 320-N)을 사용하여 컬러 이미지를 생성한다. 특히, 컬러 이미지 생성기(110)는 도 3에 보여진 컬러 이미지(324)의 각각의 컬러 채널 내로의 입력으로서 각각의 이미지들(320-1, 320-2, 및 320-N) 중 하나를 사용하도록 구성된다. 예를 들어, 도 3에 보여진 실시예들에 있어서, 이미지(320-1)는 적색 채널(322-1) 내로 입력되고, 이미지(320-2는 녹색 채널(322-2) 내로 입력되고, 이미지(230-N)은 청색 채널(322-N) 내로 입력된다. 그래서, 컬러 이미지(324)는 이 예에서 적색 녹색 청색(RGB) 컬러 스페이스(space)를 사용 또는 구현한다. 즉, 컬러 이미지(324)는 RGB 컬러 이미지이다. 비록, 여기에서 논의되는 예들은 RGB 컬러 이미지에 관해 설명되지만, 다른 실시예들에서는 다른 컬러 스페이스들(이는 또한, 컬러 코드(color code) 또는 컬러 모델(color model)로도 일컬어짐)이 사용될 수 있다는 것이 이해되어야 한다. 예를 들어, 몇몇 실시예들에 있어서, 청록색 황색 자홍색 흑색(Cyan Magenta Yellow Black, CMYK) 컬러 스페이스가 사용된다. 이러한 실시예들에 있어서는, x-레이 디바이스(102)에 의해 4 개의 흑백 이미지들이 획득되며, 여기서 각각의 흑백 이미지는 그 결과로 생긴 CMYK 컬러 이미지의 해당 컬러 채널에 대한 각각의 입력으로서 사용된다.
[0020] 컬러 이미지 분석기(108)는, 컬러 이미지(324)의 분석에 기초하여 예시적인 결함(326)과 같은 결함들을 확인하도록 구성된다. 특히, 컬러 이미지 분석기(108)는 컬러 이미지(324)에서 결함들을 확인하기 위한 머신 러닝 기술들(machine learning techniques)을 구현한다. 상기 머신 러닝 기술들은, 데이터세트에 관한, 감독을 받는(supervised), 감독을 받지 않는(unsupervised), 또는 반-감독을 받는(semi-supervised), 학습(learning)을 수행함으로써 생성되는 알고리즘들 또는 모델들을 포함할 수 있고, 그 후에, 위에서 논의된 헤드-인-필로우 결함과 같은 결함들을 확인하기 위해 상기 생성된 알고리즘 또는 모델을 적용하는 것을 포함할 수 있다. 하지만, 여기에서 논의되는 기술들을 통해 확인될 수 있는 결함들의 유형들은 헤드-인-필로우 결함들로 한정되지는 않는다는 것이 이해되어야 한다. 예를 들어, 컬러 이미지 분석기(108)는 또한 무엇보다도 제1 레벨 패키징 결함들(예컨대, C4 플립 칩 범프들(flip chip bumps)), 제2 레벨 솔더 조인트 결함들, 공동(voiding) 레벨들, 솔더 프린트 품질, 일반적인 배선 형성 결함들, 언더필(underfill) 결함들(예컨대, 박리(delamination)/접착(adhesion) 결함들) 중 하나 또는 그 이상을 확인하기 위해 컬러 이미지(324)를 분석하도록 구성될 수 있다.
[0021] 몇몇 실시예들에 있어서, 컬러 이미지 분석기(108)는 콘볼루션 신경망(convolutional neural network, CNN)을 사용하여 구현된다. 콘볼루션 신경망들은 시각적 이미지(visual imagery)를 분석하기 위해 성공적으로 적용된 딥 피드-포워드 인공 신경망들(deep feed-forward artificial neural networks)의 클래스이다. 콘볼루션 신경망들은 학습가능한 가중치들과 바이어스들을 갖는 인공적 또는 뉴런-유사 구조들로 구성된다. 각각의 뉴런은 몇 개의 입력들을 받아서 내적(dot product)을 수행한다. 콘볼루션 인공 신경망 구조는 일반적으로 입력(예컨대, 단일 벡터)을 받도록 동작하는 층들(layers)의 스택(stack)을 포함하며, 일련의 히든 층들(hidden layers)을 통해 그것을 변형한다. 각각의 히든 층은 뉴런들의 세트로 구성되며, 여기서 각각의 뉴런은 학습가능한 가중치들 및 바이어스들을 가지며, 각각의 뉴런은 이전의 층(previous layer)에서 모든 뉴런들에 완전히 연결될 수 있고, 단일 층에서 뉴런들은 어떤 공유된 연결도 없이 독립적으로 기능할 수 있다. 마지막 층은 완전히 연결된 출력 층(output layer)이고 분류 설정들에서 이는 클래스 스코어들(class scores)을 나타내며, 임의의 실수값 숫자들(real-valued numbers), 또는 실수값 타겟들(real-valued targets)(예컨대, 회귀(regression)에서)일 수 있다. 여기에서 설명되는 예시적인 실시예들에 따라 사용될 수 있는 콘볼루션 신경망들을 위한 가능한 아키텍쳐를 나타내는 하나의 예는 도 4에서 보여진다.
[0022] 도 4는 여기에서 설명되는 바와 같이, 결함들을 검출하기 위해 인쇄회로기판 어셈블리의 생성된 컬러 이미지들을 분석하는 데 사용될 수 있는 일 예의 신경망(400)을 도시한다. 일 예의 신경망(400)은 하나 또는 그 이상의 사용자 디바이스들 및/또는 하나 또는 그 이상의 다른 신경망들에 통신상으로 더 연결될 수 있다. 실시예들에 있어서, 신경망(400)은 분류기-유형 신경망들(classifier-type neural networks)일 수 있다. 신경망(400)은 더 큰 신경망의 일부일 수 있다(예컨대, 더 큰 신경망의 서브-유닛일 수 있다). 예를 들어, 신경망(400)은 몇 개의 다른 신경망들에 연결된, 또는 종합적인 총 신경망의 일부로서 몇 개의 다른 신경망들에 연결된, 하나의 더 큰 신경망 내에 포함될 수 있다. 신경망(400)은 단지 예로서 제공된 것이며, 다른 실시예들에 있어서, 신경망은 다르게 구현될 수 있다는 것이 이해된다. 더 나아가, 비록 여기에서 콘볼루션 신경망이 논의되지만, 여기에서 설명되는 실시예들은, 생성된 컬러 이미지를 분석하기 위해, 콘볼루션 신경망들로 한정되지 않고, 예컨대, 순환 신경망(recurrent neural networks, RNN), 딥 콘볼루션 인버스 그래픽 네트워크(Deep Convolutional Inverse Graphics Network, DCIGN) 등과 같은 다른 유형의 신경망들을 사용하여 구현될 수 있다.
[0023] 입력들(401-1 내지 401-m)은 신경망(400)으로의 입력들(예컨대, 생성된 컬러 이미지)을 나타낸다. 이러한 실시예에 있어서, 입력들(401-1 내지 401-m)은 상이한 입력들을 나타내는 것은 아니다. 오히려 401-1 내지 401-m은 신경망(400)에서 각각의 제1 층 뉴런(뉴런들 402-1 내지 402-m)으로 보내지는 것과 동일한 입력을 나타낸다. 또한, 몇몇 실시예들에 있어서, 각각의 입력(401-1 내지 401-m)은, 상기 생성된 컬러 이미지를 따라 슬라이딩하는 입력 창(input window)에 의해 결정되는 것과 같이, 동일한 생성된 컬러 이미지의 서브셋을 나타낸다는 것이 이해되어야 한다. 몇몇 실시예들에 있어서, 입력들(401-1 내지 401-m)의 숫자(즉, m으로 표현되는 수)는 그 네트워크에서 제1 층 뉴런들의 숫자와 동일할(따라서 그 숫자에 의해 결정될) 수 있다. 다른 실시예들에 있어서, 신경망(400)은 제1 층에 1 또는 그 이상의 바이어스 뉴런들을 편입시킬 수 있는데, 이 경우, 입력들(401-1 내지 401-m)의 숫자는 그 네트워크에서의 제1 층 뉴런들의 숫자 마이너스 제1 층 바이어스 뉴런들의 숫자와 같을 수 있다. 몇몇 실시예들에 있어서, 하나의 입력(예컨대, 입력 401-1)이 상기 신경망 내에 입력될 수 있다. 이러한 실시예에 있어서, 상기 신경망의 제1 층은 하나의 뉴런을 포함할 수 있으며, 이는 그 입력을 뉴런들의 제2 층으로 전파할 수 있다.
[0024] 이 예에서, 신경망(400)은 8 층의 뉴런들을 포함한다(8 층의 뉴런들은 402, 404, 406, 408, 410, 412, 414, 및 416으로 일컬어지고, 이들은 각각 도시된 노드들 402-1 내지 402-m, 노드들 404-1 내지 404-n, 노드들 406-1 내지 406-y, 노드들 408-1 내지 408-x, 노드들 410-1 내지 410-z, 412-1 내지 412-o, 414-1 내지 414-p, 및 416-1 내지 416-t에 대응됨). 몇몇 실시예들에 있어서, 신경망(400)은 8 개보다 더 많거나 8 개보다 더 작은 층들을 가질 수 있다. 이들 8 개의 층들은 각각 다른 어떤 층과 동일한 숫자의 뉴런들로, 다른 어떤 층보다 더 많은 뉴런들로, 다른 어떤 층보다 더 적은 뉴런들로, 또는 몇몇 층들보다 더 많은 뉴런들로 그리고 다른 층들보다 더 적은 뉴런들로 구성될 수 있다. 층(416)은 타겟 이벤트가 발생할 확률을 출력하고 이 예에서 두 개의 뉴런들(뉴런들 416-1 및 416-t)을 포함한다. 다른 실시예들에 있어서, 층(416)은 2 개의 뉴런들보다 더 많거나 단지 1 개의 뉴런을 포함할 수 있다. 이 도면에서는, 신경망(400)에 아무런 바이어스 뉴런들도 보여지지 않는다. 하지만, 몇몇 실시예들에 있어서, 신경망(400)에서 각각의 층은 하나 또는 그 이상의 바이어스 뉴런들을 포함할 수 있다.
[0025] 층들(402-416)은 각각 활성화 함수(activation function)를 포함할 수 있다. 이용되는 활성화 함수는, 예를 들어, 정류 선형 유닛(rectified linear unit, ReLU) 함수, 소프트플러스(SoftPlus) 함수, 소프트 스텝(Soft step) 함수 등일 수 있다. 각각의 층은 동일한 활성화 함수를 사용할 수 있지만, 또한 그 활성화 함수에 독립적으로 또는 종속적으로 그 층의 입력 또는 출력을 변형할 수 있다. 각각의 층은 특정 함수를 위해 구성될 수 있다. 예를 들어, 도 4의 예에서, 층(402)은 출력 층이다. 층(404)은 입력 데이터를 처리하도록 구성된 콘볼루션 커널 층(convolutional kernal layer)이다. 층(406)은 입력 데이터를 간단하게 하고 불필요한 특징들을 제거하도록 구성된 풀링 층(pooling layer)이다.
[0026] 층(408)은 "드랍아웃(dropout)" 층일 수 있는데, 이는 처리로부터 제거된 몇몇 뉴런들을 갖는 이전의 층의 입력(여기서는, 입력들)을 처리할 수 있다. 이는 그 데이터의 평균을 내는 것을 도울 수 있고, 데이터의 하나의 세트 또는 유사 데이터의 몇 개의 세트들에 대한 과도한 특수화(overspecialization)를 방지할 수 있다. 드랍아웃 층들은 또한 "밀집(dense)" 층들을 위해 데이터를 준비하는 것을 도울 수 있다. 예를 들어, 층(410)은 밀집 층일 수 있다. 이 예에서, 상기 밀집 층은 예측에 기여하고 있지 않은 데이터를 제거하기 위해 특징 벡터(feature vector)(예컨대, 입력들(401-1 내지 401-m)의 벡터 부분)의 차원들(dimensions)을 처리 및 감소시킬 수 있다. 추가적인 예로서, 층(412)은 "배치 정규화(batch-normalization)" 층일 수 있다, 배치 정규화는 상기 신경망에서 학습을 가속화하기 위해 상기 배치 정규화 층의 출력들을 정규화하는 데 사용될 수 있다. 층(414)은 드랍아웃, 히든, 또는 배치 정규화 층 중 어떤 것일 수 있다. 이러한 층들은 예들일 수 있다는 것에 주목한다. 다른 실시예들에 있어서, 층들(402 내지 414) 중 어떤 것은 드랍아웃, 히든, 또는 배치 정규화 층들 중 어떤 것일 수 있다. 이는 또한 여기에 나타낸 것보다 더 많은 층들, 또는 더 적은 층들을 갖는 실시예들에 있어서도 마찬가지이다.
[0027] 예를 들어, 몇몇 실시예들에 있어서, 신경망(400)은 복수의 콘볼루션 커널 층들을 포함할 수 있으며, 각각에는 CNN의 시작에서 풀링 층 및 드랍아웃 층이 뒤따른다. 또한, CNN의 이러한 실시예의 끝에서는, 중간에 하나 또는 그 이상의 드랍아웃 층들을 갖는 두 개 또는 그 이상의 완전히 연결된 층들이 있다. 드랍아웃 층들은, 훈련 단계(training phase) 동안 모멘텀(momentum)과 학습 속도(learning rate)를 조정하는 것과 같은 다른 기술들과 결합하여 과다학습(overfitting)을 방지하고 상기 신경망 퍼포먼스들을 더 안정적으로 만드는 것을 돕는다. 몇몇 실시예들에 있어서, 신경망(400)은 생성된 훈련 이미지들에 관해 확률적 경사 하강(stochastic gradient descent)을 사용하여 훈련받을 수 있다.
[0028] 층(416)은 출력 층이다. 이 실시예에 있어서, 층(416)은 두 개의 뉴런들(416-1 및 416-t)을 포함하며, 이들은 출력들(418 및 420)을 생성해낸다. 출력들(418 및 420)은 타겟 이벤트가 발생하거나 발생하지 않을 상보적 확률들(complementary probabilities)을 나타낸다. 즉, 출력들(418 및 420)은 생성된 이미지에 결함이 존재하는 확률을 나타낸다. 예를 들어, 출력(418)은 결함이 존재하는 확률을 나타낼 수 있고, 출력(420)은 결함이 존재하지 않을 확률을 나타낼 수 있다. 몇몇 실시예들에 있어서, 출력(418 및 420)은 각각 0.0에서 0.1 사이일 수 있고, 1.0까지 추가할 수 있다. 이러한 실시예들에 있어서, 1.0의 확률은 예상되는 절대적인 확실성(pronected absolute certainty)을 나타낼 수 있다(예컨대, 만약 출력(418)이 1.0이면, 결함이 존재할 것으로 예상되는 가능성이 100%이고, 반면에 만약 출력(420)이 1.0이면, 결함이 존재하지 않을 것으로 예상되는 가능성이 100%이다). 비록 이 예에서는 두 개의 출력 뉴런들(416-1 및 416-t)이 도시되어 있지만, 다른 실시예들에서 층(416)은 다른 개수의 출력 뉴런들을 포함할 수 있다는 것이 이해되어야 한다. 예를 들어, 몇몇 실시예들에 있어서, 하나의 출력 뉴런(416)은 출력들(418 또는 420) 중 하나를 출력하는 데 사용된다. 또한, 몇몇 실시예들에 있어서, 출력 층(416)의 출력들은, 검출되는 결함(326)의 표시로 생성된 컬러 이미지(324)의 입력에 에 주석을 달기(annotate) 위해 컬러 이미지 분석기(108)에 의해 사용된다.
[0029] x-레이 디바이스(102)에 의해 캡쳐된 흑백 이미지 슬라이스들로부터 컬러 이미지를 생성함으로써, 상기 컬러 이미지는, 예컨대, CNN과 같은 신경망을 사용하여 컬러 이미지 분석기(108)에 의해 검출될 수 있는 컬러 변화들을 포함한다. CNN은 상기 검출된 컬러 변화들을 PCBA에서의 결함들과 상관시키기 위해 훈련될 수 있다. 따라서, PCBA를 분석하기 위한 이러한 새로운 기술은, 별도의 오프라인 검사를 필요로 함이 없이 PCBA에게 비교적 빠른 패스/페일 결정을 제공한다. 예를 들어, 별도의 오프라인 검사들을 수반하는 종래의 기술들에 대해서는 한 시간 또는 그 이상의 시간인 것에 반해, 여기에서 설명되는 실시예들은 초 단위로 측정된 결정을 내리기 위해 PCBA의 이미지들을 분석할 수 있다. 더욱이, 여기에서 설명되는 기술들은 제조 프로세스에 사용하기 위한 충분한 정확도를 달성하거나 백분율을 찾을 수 있다. 따라서, 여기에서 설명되는 기술들 및 시스템은 검출의 속도 및 검출의 정확도를 향상시키기 위해 제조 프로세스에서 이용가능하다.
[0030] 도 5는 일 예의 컴퓨터 디바이스(500)의 하나의 실시예를 도시하는 블록 다이어그램이다. 컴퓨터 디바이스(500)는 결함 검출 디바이스(104) 및/또는 x-레이 디바이스(102)를 구현하는 데 사용될 수 있다. 도 5에 보여진 컴퓨터 디바이스(500)의 컴포넌트들은 하나 또는 그 이상의 프로세서들(502), 메모리(504), 스토리지 인터페이스(516), 입력/출력("I/O") 디바이스 인터페이스(512), 및 네트워크 인터페이스(518)를 포함하며, 이들 모두는, 메모리 버스(506), I/O 버스(508), 버스 인터페이스 유닛("IF")(509), 및 I/O 버스 인터페이스 유닛(510)을 통해 구성요소간 통신(inter-component communication)을 위해 직접적으로 또는 간접적으로 통신상으로 결합된다.
[0031] 도 5에 보여진 실시예에 있어서, 컴퓨터 디바이스(500)는 하나 또는 그 이상의 전용 프로그램가능 중앙처리장치들(CPU들)(502A 및 502B)을 포함하며, 이는 여기서 일반적으로 프로세서(502)로 일컬어진다. 몇몇 실시예들에 있어서, 컴퓨터 디바이스(500)는 다수의 프로세서들을 포함한다. 하지만, 다른 실시예들에 있어서, 컴퓨터 디바이스(500)는 하나의 CPU 시스템이다. 각각의 프로세서(502)는 메모리(504)에 저장된 명령들을 실행한다. 또한, 비록 실시예들이 중앙처리장치 칩들에 대해 설명되었지만, 여기에서 설명되는 실시예들은 CPU 칩들에 추가로 또는 CPU 칩들 대신에 디지털 신호 처리기들(digital signal processors, DSP) 및/또는 그래픽처리장치(graphic processing unit, GPU) 칩들을 이용하여 컴퓨터 시스템에 또한 적용가능하다는 것이 이해되어야 한다. 더 나아가, 몇몇 실시예들에 있어서, 프로세서(502)는 IBM 트루노쓰(TrueNorth) 칩과 같은 신경처리장치(neural processing unit, NPU)를 사용하여 구현될 수 있다. 하지만, 신경망을 구현하기 위해 신경 처리 장치들을 이용하는 것은 요구되지 않는다. 하지만, 여기서의 프로세서 또는 처리 장치에 대한 참조는 CPU 칩들, GPU 칩들, DSP, 및/또는 NPU 칩들을 일컬을 수 있다.
[0032] 몇몇 실시예들에 있어서, 메모리(504)는, 데이터 및 프로그램들을 저장하거나 인코딩하기 위해, 랜덤-억세스 반도체 메모리, 스토리지 디바이스, 또는 스토리지 매체(휘발성 또는 비휘발성)를 포함한다. 예를 들어, 메모리(504)는 컬러 이미지 생성기 명령들(540) 및 컬러 이미지 분석기 명령들(542)을 저장한다. 프로세서(502)와 같은 프로세서에 의해 실행될 때, 컬러 이미지 생성기 명령들(540)은 프로세서(502)로 하여금 그 결과로 생겨난 컬러 이미지의 각각의 컬러 채널 내에 흑백 x-레이 이미지 슬라이스들을 입력함으로써 컬러 이미지를 생성해내는 것에 관해 위에서 논의된 함수들 및 계산들을 수행하도록 한다. 또한, 위에서 설명된 바와 같이, 프로세서(502)와 같은 프로세서에 의해 실행될 때, 컬러 이미지 분석기 명령들(542)은 프로세서(502)로 하여금 그 생성된 컬러 이미지에 관한 이미지 분석을 수행하도록 한다. 이와 같이, 컬러 이미지 분석기 명령들(542)은 컴퓨터 디바이스(500)로 하여금 컬러 이미지들을 분석하도록 구성된 콘볼루션 신경망의 적어도 일부를 구현하도록 한다.
[0033] 또한, 컬러 이미지 분석기 명령들(542)은, 위에서 설명된 바와 같이, 프로세서(502)로 하여금, 디스플레이 디바이스(526) 상에 인쇄회로기판 어셈블리에서의 확인된 결함들을 나타내기 위해, 주석이 달린 컬러 이미지 또는 다른 오디오 또는 시각적 출력과 같은 분석의 결과를 디스플레이하기 위해, 디스플레이 시스템(524)으로 명령들을 출력하게 하도록 구성될 수 있다.
[0034] 몇몇 실시예들에 있어서, 메모리(504)는 컴퓨터 디바이스(500)의 전체 가상 메모리를 나타내고 또한 네트워크를 통해 컴퓨터 디바이스(500)에 결합된 다른 컴퓨터 디바이스들의 가상 메모리를 포함할 수도 있다. 몇몇 실시예들에 있어서, 메모리(504)는 단일의 일체형(monolithic) 엔티티이지만, 다른 실시예들에 있어서, 메모리(504)는 캐시들 및 다른 메모리 디바이스들의 계층구조(hierarchy)를 포함한다. 예를 들어, 메모리(504)는 캐시들의 다수 레벨들에 존재할 수 있고, 이들 캐시들은 기능에 의해 더 나눠질 수 있으며, 그래서 하나의 캐시는 명령들을 유지하는 한편 다른 하나의 캐시는 비명령 데이터 - 이는 프로세서에 의해 사용됨 - 를 유지하도록 한다. 메모리(504)는, 예를 들어, 소위 불균일 메모리 접근(non-uniform memory access, NUMA)이라고 하는 어떤 다양한 컴퓨터 아키텍쳐들에서 알려져 있는 바와 같이, 상이한 처리 장치들 또는 처리 장치들의 세트들에 더 분산될 수 있고 이들과 더 연관될 수 있다. 그러므로, 비록 설명 목적으로 도 5에 보여진 예에서 컬러 이미지 생셩기 명령들(540) 및 컬러 이미지 분석기 명령들(542)이 동일한 메모리(504) 상에 저장되어 있지만, 다른 실시예들은 이와 다르게 구현될 수 있다는 것이 이해되어야 한다. 예를 들어, 컬러 이미지 생성기 명령들(540) 및/또는 컬러 이미지 분석기 명령들(542)은 다수의 물리적 매체들에 걸쳐 분산될 수 있다.
[0035] 도 5에 보여진 실시예에서 컴퓨터 디바이스(500)는 또한 프로세서(502), 메모리(504), 디스플레이 시스템(524), 및 I/O 버스 인터페이스 유닛(510) 사이에서 통신들을 다루기 위해 버스 인터페이스 유닛(509)을 포함한다. I/O 버스 인터페이스 유닛(510)은 다양한 I/O 유닛들로 데이터를 전송하기 위해 그리고 다양한 I/O 유닛들로부터 데이터를 전송하기 위해 I/O 버스(508)와 결합된다. 특히, I/O 버스 인터페이스 유닛(510)은 I/O 버스(508)를 통해 다수의 I/O 인터페이스 유닛들(512, 516, 및 518)과 통신할 수 있는데, 이들은 또한 I/O 프로세서들(IOP들) 또는 I/O 어댑터들(IOA들)로도 알려져 있다. 디스플레이 시스템(524)은 디스플레이 컨트롤러, 디스플레이 메모리, 또는 둘 모두를 포함한다. 디스플레이 컨트롤러는 비디오, 스틸 이미지들, 오디오, 또는 이것들의 조합을 디스플레이 디바이스(526)로 제공할 수 있다. 디스플레이 메모리는 비디오 데이터를 버퍼링하기 위한 전용 메모리일 수 있다. 디스플레이 시스템(524)은 디스플레이 디바이스(526)와 결합된다. 몇몇 실시예들에 있어서, 디스플레이 디바이스(526)는 또한 오디오를 렌더링하기 위한 하나 또는 그 이상의 스피커들을 포함한다. 이와는 다르게, 오디오를 렌더링하기 위한 하나 또는 그 이상의 스피커들은 I/O 인터페이스 유닛과 결합될 수 있다. 다른 실시예들에 있어서, 디스플레이 시스템(524)에 의해 제공되는 하나 또는 그 이상의 기능들은 또한 프로세서(502)를 포함하는 집적회로 상에 내장되어 있다. 또한, 몇몇 실시예들에 있어서, 버스 인터페이스 유닛(509)에 의해 제공되는 기능들 중 하나 또는 그 이상은 또한 프로세서(502)를 포함하는 집적회로 상에 내장되어 있다.
[0036] I/O 인터페이스 유닛들은 다양한 스토리지 및 I/O 디바이스들과의 통신을 지원한다. 예를 들어, I/O 디바이스 인터페이스 유닛(512)는 하나 또는 그 이상의 사용자 I/O 디바이스들(520)의 연결을 지원하며, 사용자 I/O 디바이스들(520)은 사용자 출력 디바이스들 및 사용자 입력 디바이스들(예컨대, 키보드, 마우스, 키패드, 터치패드, 트랙볼, 버튼들, 라이트 펜, 또는 다른 포인팅 디바이스들과 같은 것)을 포함할 수 있다. 사용자 I/O 디바이스(520)로 입력 데이터 및 명령들을 제공하기 위해, 사용자는 사용자 인터페이스를 사용하여 사용자 입력 디바이스들(520)을 조작할 수 있다. 또한, 사용자는 사용자 출력 디바이스들을 통해 출력을 받을 수 있다. 예를 들어, 사용자 인터페이스는, 디스플레이 디바이스 상에 디스플레이되는 것 또는 스피커를 통해 재생되는 것과 같이, 사용자 I/O 디바이스(520)를 통해 제공될 수 있다.
[0037] 스토리지 인터페이스(516)는 플레쉬 메모리와 같은 하나 또는 그 이상의 스토리지 디바이스들의 연결을 지원한다. 메모리(504)의 콘텐츠 또는 그것의 어떤 부분은 필요에 따라 스토리지 디바이스(528)에 저장되고 스토리지 디바이스(528)로부터 검색될 수 있다. 네트워크 인터페이스(518)는 컴퓨터 디바이스(500)에서 다른 디지털 디바이스들 및 컴퓨터 디바이스로의 하나 또는 그 이상의 통신 경로들을 제공한다. 예를 들어, 몇몇 실시예들에 있어서, 생성된 컬러 이미지는, 컬러 이미지 분석을 수행하도록 구성된 별도의 시스템으로 네트워크 인터페이스(518)를 통해 전송될 수 있다. 또한, 몇몇 실시예들에 있어서, 네트워크 인터페이스(518)는 x-레이 디바이스로부터 2-차원 흑백 이미지들을 수신하도록 구성될 수 있다. 이와는 다르게, 상기 2-차원 흑백 이미지들, 상기 생성된 컬러 이미지 및/또는 상기 경보들 또는 분석 결과들은, 네트워크 인터페이스(518)보다는 I/O 디바이스 인터페이스(512)와 같은 다른 인터페이스를 통해 통신될 수 있다.
[0038] 비록 도 5에 보여진 컴퓨터 디바이스(500)는 프로세서들(502), 메모리(504), 버스 인터페이스 유닛(509), 디스플레이 시스템(524), 및 I/O 버스 인터페이스 유닛(510) 사이의 직접적인 통신 경로를 제공하는 특정 버스 구조를 나타내지만, 다른 실시예들에 있어서, 컴퓨터 디바이스(500)는 다른 버스들 또는 통신 경로들을 포함하며, 이들은 계층구조에서 점-대-점 링크들, 스타 또는 웹 구성들, 다수의 계층구조 버스들, 병렬 및 리던던트 경로들, 또는 다른 어떤 적절한 유형의 구성과 같은, 다양한 형태들 중 어떤 것으로 마련될 수 있다. 더 나아가, I/O 버스 인터페이스 유닛(510) 및 I/O 버스(508)는 하나의 각각의 유닛들로 보여지지만, 다른 실시예들에서는 컴퓨터 디바이스(500)는 다수의 I/O 버스 인터페이스 유닛들(510) 및/또는 다수의 I/O 버스들(508)을 포함할 수 있다. 다수의 I/O 인터페이스 유닛들이 다양한 I/O 디바이스들에 대해 실행되는 다양한 통신 경로들로부터 I/O 버스(508)를 분리시키는 것으로 보여지지만, 다른 실시예들에 있어서, I/O 디바이스들 중 일부 또는 모두는 하나 또는 그 이상의 시스템 I/O 버스들에 직접적으로 연결된다.
[0039] 위에서 논의된 바와 같이, 몇몇 실시예들에 있어서, 도 5에 보여진 데이터 및 컴포넌트들 중 하나 또는 그 이상은, 여기에서 설명되는 기능들을 수행하기 위해 프로세서(502) 상에서 실행되는 명령들 또는 진술들, 또는 프로세서(502) 상에서 실행되는 명령들 또는 서술들(statements)에 의해 해석되는 명령들 또는 서술들을 포함한다. 다른 실시예들에 있어서, 도 5에 보여진 컴포넌트들 중 하나 또는 그 이상은, 프로세서 기반 시스템 대신에 또는 프로세서 기반 시스템에 추가로, 반도체 디바이스들, 칩들, 논리적 게이트들, 회로들, 회로 카드들, 및/또는 다른 물리적 하드웨어 디바이스들을 통해 하드웨어에서 구현된다. 또한, 다른 실시예들에 있어서, 도 5에 보여진 컴포넌트들 중 몇몇은 생략될 수도 있고 및/또는 다른 컴포넌트들이 포함될 수도 있다.
[0040] 도 6은 인쇄회로기판 어셈블리에서 결함들을 검출하는 일 예의 방법(600)에 관한 하나의 실시예를 도시하는 흐름도이다. 방법(600)은 x-레이 디바이스(102)와 같은 x-레이 디바이스, 및/또는 결함 검출 디바이스(104)와 같은 결함 검출 디바이스에 의해 구현될 수 있다. 이와 같이, 방법(600)에 관하여 설명된 동작들 중 하나 또는 그 이상은 상기 x-레이 디바이스 및 상기 결함 검출 디바이스 중 하나에 의해 수행될 수 있다. 몇몇 실시예들에 있어서, 방법(600)의 일부는 x-레이 디바이스에 의해 수행되고 방법(600)의 일부는 별도의 결함 검출 디바이스에 의해 수행된다. 다른 실시예들에 있어서, 방법(600)의 동작들 모두는 단일 디바이스에 의해 수행된다. 방법(600)은, 컬러 이미지 생성 명령들(540) 및/또는 컬러 이미지 분석기 명령들(542)과 같은 명령들을 실행하는 컴퓨터 디바이스(500) 내 프로세서(502)와 같은 프로세서에 의해 구현될 수 있다.
[0041] 단계(602)에서, 인쇄회로기판 어셈블리의 일부에 대한 복수의 2-차원 흑백 이미지들이 획득된다. 각각의 2-차원 흑백 이미지는, 위에서 논의된 바와 같이, 각각의 상이한 위치들에서 상기 인쇄회로기판 어셈블리의 일부와 교차하는 복수의 평행 평면들 중 하나에 대응된다. 몇몇 실시예들에 있어서, 상기 복수의 2-차원 흑백 이미지들을 획득하는 것은 상기 인쇄회로기판 어셈블리의 x-레이 이미지들을 캡쳐하도록 구성된 x-레이 디바이스로부터 상기 복수의 2-차원 흑백 이미지들을 수신하는 단계를 포함한다. 다른 실시예들에 있어서, 상기 복수의 2-차원 흑백 이미지들을 획득하는 단계는 x-레이 디바이스로 상기 2-차원 흑백 이미지들을 캡쳐하는 단계를 포함한다. 인쇄회로기판 어셈블리의 2-차원 이미지 슬라이스들을 위한 적절한 x-레이 디바이스들은 당해 기술 분야에서 숙련된 자에게 알려져 있다.
[0042] 단계(604)에서, 상기 복수의 2-차원 흑백 이미지들은 컬러 이미지로 변환된다. 특히, 상기 2-차원 흑백 이미지들 각각은 상기 컬러 이미지의 각각의 컬러 채널에 적용 또는 입력된다. 예를 들어, 몇몇 실시예들에 있어서, 상기 컬러 이미지는 적색 녹색 청색(RGB) 컬러 이미지이다. 따라서, 이러한 실시예들에 있어서, 상기 복수의 2-차원 흑백 이미지들은 세 개의 2-차원 흑백 이미지들을 포함하며, 상기 세 개의 2-차원 흑백 이미지들 각각은 상기 RGB 컬러 이미지의 적색 채널, 청색 채널, 또는 녹색 채널 각각에 대응된다.
[0043] 하지만, 위에서 논의된 바와 같이, 여기에서 설명되는 실시예들은 RGB 컬러 스페이스에서 이미지들을 사용하는 것으로 한정되는 것은 아니다. 예를 들어, 다른 실시예들에 있어서, 상기 컬러 이미지는 청록색 황색 자홍색 흑색(Cyan Yellow Magenta Black)(CMYK) 컬러 이미지이다. 따라서, 이러한 실시예들에 있어서, 상기 복수 개의 2-차원 흑백 이미지들은 네 개의 2-차원 흑백 이미지들 - 상기 네 개의 2-차원 흑백 이미지들 각각은 상기 CMYK 컬러 이미지의 청록색 채널, 황색 채널, 자홍색 채널, 및 흑색 채널 각각에 대응됨 - 을 포함한다. 위에서 논의된 바와 같이, 몇몇 실시예들에 있어서, 상기 x-레이 디바이스는 상기 컬러 이미지를 생성하도록 더 구성된다. 다른 실시예들에 있어서, 상기 x-레이 디바이스는, 상기 2-차원 흑백 이미지들로부터 상기 컬러 이미지를 생성하는 별도의 디바이스에 상기 복수의 2-차원 흑백 이미지들을 제공한다.
[0044] 단계(606)에서, 상기 컬러 이미지는 결함을 나타내는 컬러 변화를 검출하도록 분석된다. 예를 들어, 몇몇 실시예들에 있어서, 상기 컬러 변화는 볼 그리드 어레이의 솔더 볼 연결에서의 결함을 나타낼 수 있다. 하지만, 여기에서 설명되는 실시예들은 볼 그리드 어레이의 솔더 볼 연결에서의 결함들로 한정되는 것은 아니다. 예를 들어, 상기 컬러 이미지는 더 작은 칩 스케일 패키지의 연결들에서의 결함들을 확인하기 위해서 분석될 수 있다. 또한, 상기 컬러 이미지에서 컬러 변화들을 검출함으로써 확인될 수 있는 결함들은 헤드-인-필로우 결함들, 제1 레벨 패키지 결함들, 제2 레벨 솔더 조인트 결함들, 공동(voiding) 결함들, 솔더 프린트 품질, 및 언더필 결함들 등 중 하나 또는 그 이상을 포함할 수 있다. 더 나아가, 위에서 논의된 바와 같이, 상기 분석은, 결함을 나타내는 컬러 변화들을 검출하도록 구성되는 콘볼루션 신경망과 같은 신경망에 의해 수행될 수 있다. 단계(607)에서, 상기 컬러 이미지의 분석에 기초하여 결함이 확인되었는지의 여부가 결정된다.
[0045] 단계(608)에서, 컬러 변화를 검출하는 것에 기초하여 결함을 확인하는 것에 응답하여 확인된 결함을 나타내는 경보가 출력된다. 몇몇 실시예들에 있어서, 상기 경보는 확인된 컬러 변화의 위치에 대응되는 결함의 위치를 나타내는 주석이 달린 컬러 이미지를 포함할 수 있다. 다른 실시예들에 있어서, 상기 경보는 들을 수 있는 경보 또는 다른 디스플레이되는 경보일 수 있다. 더 나아가, 몇몇 실시예들에 있어서, 상기 경보는 3-차원 x-레이 분석을 위한 권고를 포함할 수 있다. 하지만, 이러한 3-차원 x-레이 분석을 위한 권고는 필수적인 것은 아니다. 또한, 몇몇 실시예들에 있어서, 상기 경보는 전체 이미지에 대한 분석이 완료된 이후에 출력된다. 따라서, 몇몇 이러한 실시예들에 있어서, 상기 경보는 확인된/검출된 결함들의 전체 숫자에 관한 보고를 포함할 수 있다.
[0046] 만약 단계(607)에서 결함이 확인되지 않으면, 단계(610)에서 아무런 결함이 확인되지 않았다는 알림(notification)이 출력된다. 예를 들어, 몇몇 실시예들에 있어서, 상기 알림은 상기 인쇄회로기판 어셈블리가 제조 프로세스의 다음 단계로 진행될 수 있다는 것을 나타낸다.
[0047] 본 발명은 통합의 어떤 가능한 기술적 상세 수준에서 시스템, 방법 및/또는 컴퓨터 프로그램 제품일 수 있다. 컴퓨터 프로그램 제품은 컴퓨터 판독가능 스토리지 매체(또는 매체들)를 포함할 수 있다. 컴퓨터 판독가능 스토리지 매체(또는 매체들)는 컴퓨터 판독가능 스토리지 매체(또는 매체들) 상에 컴퓨터 판독가능 프로그램 명령들을 가지며, 컴퓨터 판독가능 프로그램 명령들은 프로세서로 하여금 본 발명의 측면들을 수행하도록 한다.
[0048] 컴퓨터 판독가능 스토리지 매체는 명령 실행 디바이스에 의한 사용을 위한 명령들을 보유 및 저장할 수 있는 유형적인 디바이스일 수 있다. 컴퓨터 판독가능 스토리지 매체는, 예를 들어, 전자 스토리지 디바이스, 자기 스토리지 디바이스, 광 스토리지 디바이스, 전자기 스토리지 디바이스, 반도체 스토리지 디바이스, 또는 이것들의 어떤 적절한 조합일 수 있으나, 이러한 예들로 한정되는 것은 아니다. 컴퓨터 판독가능 스토리지 매체의 더 구체적인 예들의 리스트(모든 예들을 빠짐없이 총 망라한 것은 아님)는 또한 다음과 같은 것들을 포함할 수 있다. 즉, 휴대용 컴퓨터 디스켓, 하드 디스크, 랜덤 억세스 메모리(RAM), 읽기 전용 메모리(ROM), 소거가능한 프로그램가능 읽기 전용 메모리(EPROM 또는 플래쉬 메모리), 스태틱 랜덤 억세스 메모리(SRAM), 휴대용 컴팩트 디스크 읽기 전용 메모리(CD-ROM), 디지털 다용도 디스크(DVD), 메모리 스틱, 플로피 디스크, 기계적으로 인코팅된 디바이스 - 예컨대, 펀치-카드들 또는 홈 안에 기록된 명령들을 가진 그 홈에서 볼록한 구조들과 같은 것 - , 및 이것들의 어떤 적절한 조합을 포함할 수 있다. 여기에서 사용되는 것과 같이, 컴퓨터 판독가능 스토리지 매체는, 예컨대, 무선 전파들(radio waves) 또는 다른 자유롭게 전파하는 전자기 파들, 도파관 또는 다른 전송 매질을 통해 전파하는 전자기 파들(예컨대, 광섬유 케이블을 통과하는 광 펄스들), 또는 와이어를 통해 전송되는 전기적 신호들과 같은 일시적인 신호들 그 자체인 것으로 해석되는 것은 아니다.
[0049] 여기에 설명되는 컴퓨터 판독가능 프로그램 명령들은, 예를 들어, 인터넷, 근거리 통신망, 광역 통신망 및/또는 무선 통신망과 같은 네트워크를 통해 컴퓨터 판독가능 스토리지 매체로부터 각각의 컴퓨팅/처리 디바이스들로, 또는 외부 컴퓨터 또는 외부 스토리지 디바이스로 다운로드될 수 있다. 네트워크는 동선 전송 케이블, 광 전송 섬유, 무선 전송, 라우터, 방화벽, 스위치, 게이트웨이 컴퓨터 및/또는 엣지 서버를 포함할 수 있다. 각각의 컴퓨팅/처리 디바이스에서 네트워크 어댑터 카드 또는 네트워크 인터페이스는, 각각의 컴퓨팅/처리 디바이스 내에서 컴퓨터 판독가능 스토리지 매체에 저장하기 위해 네트워크로부터 컴퓨터 판독가능 프로그램 명령들을 수신하고 컴퓨터 판독가능 프로그램 명령들을 전송한다.
[0050] 본 발명의 동작들을 수행하기 위한 컴퓨터 판독가능 프로그램 명령들은 어셈블러 명령들(assembler instructions), 명령-세트-아키텍쳐(instruction-set-architecture, ISA) 명령, 머신 명령들(machine instructions), 머신 종속 명령들(machine dependent instructions), 마이크로코드, 펌웨어 명령들(firmware instructions), 상태-세팅 데이터(state-setting data), 집적된 회로부를 위한 구성 데이터, 또는 하나 또는 그 이상의 프로그래밍 언어들의 어떤 조합으로 작성된 소스 코드 또는 객체 코드(object code)일 수 있다. 상기 프로그래밍 언어들은 스몰토크(Smalltalk), C++ 등과 같은 객체 지향 프로그래밍 언어(object oriented programming language), 및 "C" 프로그래밍 언어 또는 유사 프로그래밍 언어들과 같은 절차형 프로그래밍 언어들을 포함한다. 컴퓨터 판독가능 프로그램 명령들은 독립형(stand-alone) 소프트웨어 패키지로서 사용자의 컴퓨터 상에서 전적으로, 사용자의 컴퓨터 상에서 부분적으로 실행될 수 있고, 사용자의 컴퓨터 상에서 부분적으로 그리고 원격 컴퓨터 상에서 부분적으로 실행될 수 있고, 또는 원격 컴퓨터 또는 서버 상에서 전적으로 실행될 수 있다. 후자의 시나리오에 있어서, 원격 컴퓨터는 근거리 통신망(LAN) 또는 광역 통신망(WAN)을 포함하는 어떤 유형의 통신망을 통해 사용자의 컴퓨터에 연결될 수 있고, 또는 그 연결은 외부 컴퓨터에 대해 이뤄질 수 있다(예를 들어, 인터넷 서비스 공급자(Internet Service Provider)를 사용하여 인터넷을 통해서). 몇몇 실시예들에 있어서, 본 발명의 측면들을 수행하기 위해, 예를 들어, 프로그램가능 로직 회로부(programmable logic circuitry), 필드-프로그램가능 게이트 어레이(field-programmable gate arrays, FPGA), 또는 프로그램가능 로직 어레이(Programmable logic arrays, PLA)를 포함하는 전자 회로부는 전자 회로부를 개인에게 맞추기 위해 컴퓨터 판독가능 프로그램 명령들의 상태 정보를 이용함으로써 컴퓨터 판독가능 프로그램 명령들을 실행할 수 있다.
[0051] 본 발명의 측면들은 여기서 발명의 실시예들에 따른 방법들, 장치들(시스템들), 및 컴퓨터 프로그램 제품들의 플로우챠트 설명들 및/또는 블록 다이어그램들을 참조하여 설명된다. 플로우챠트 설명들 및/또는 블록 다이어그램들에서 플로우챠트 설명들 및/또는 블록 다이어그램들의 각각의 블록, 및 블록들의 조합들은 컴퓨터 판독가능 프로그램 명령들에 의해 구현될 수 있다는 것이 이해될 것이다.
[0052] 이들 컴퓨터 판독가능 프로그램 명령들은 머신을 생성하기 위해, 범용 컴퓨터, 전용 컴퓨터, 또는 다른 프로그램가능 데이터 처리 장치의 프로세서로 제공될 수 있으며, 그리하여 컴퓨터 또는 다른 프로그램가능 데이터 처리 장치의 프로세서를 통해 실행되어, 그 명령들이 플로우챠트 및/또는 블록 다이어그램 블록 또는 블록들에 명시된 기능들/동작들을 구현하기 위한 수단을 생성하도록 한다. 이들 컴퓨터 판독가능 프로그램 명령들은 또한 컴퓨터 판독가능 스토리지 매체에 저장될 수 있으며, 컴퓨터 판독가능 스토리지 매체는 컴퓨터, 프로그램가능 데이터 처리 장치, 및/또는 다른 디바이스들이 특정 방식으로 기능하도록 지시할 수 있다. 그리하여, 내부에 저장된 명령들을 갖는 컴퓨터 판독가능 스토리지 매체가 플로우챠트 및/또는 블록 다이어그램의 블록 또는 블록들에 명시된 기능/동작의 측면들을 구현하는 명령들을 포함하는 제조 물품을 포함하도록 한다.
[0053] 컴퓨터 판독가능 프로그램 명령들은 또한 컴퓨터, 다른 프로그램가능 데이터 처리 장치, 또는 다른 다바이스 상으로 로딩되어 일련의 동작 단계들이 컴퓨터, 다른 프로그램가능 장치 또는 다른 디바이스 상에서 수행되도록 하여 컴퓨터 구현 프로세스를 생성하게 할 수 있다. 그리하여 컴퓨터, 다른 프로그램가능 장치, 또는 다른 디바이스 상에서 실행되는 명령들이 플로우챠트 및/또는 블록 다이어그램의 블록 또는 블록들에 명시된 기능들/동작들을 구현하도록 한다.
[0054] 도면들에서 플로우챠트 및 블록 다이어그램들은 본 발명의 다양한 실시예들에 따른 시스템들, 방법들, 및 컴퓨터 프로그램 제품들의 가능한 구현의 아키텍쳐, 기능, 및 동작을 보여준다. 이 점에서, 플로우챠트 또는 블록 다이어그램들에서의 각각의 블록은 모듈, 세그먼트, 또는 명령들의 일부분을 나타낼 수 있으며, 이는 명시된 논리적 기능(들)을 구현하기 위한 하나 또는 그 이상의 실행가능한 명령들을 포함한다. 몇몇 다른 구현들에 있어서, 블록들에 기재되어 있는 기능들은 도면들에 기재되어 있는 순서를 벗어나서 일어날 수도 있다. 예를 들어, 연속해서 보여지는 두 개의 블록들은, 사실상, 하나의 단계로 수행될 수 있고, 동시에 수행될 수 있고, 실질적으로 동시에 수행될 수 있고, 부분적으로 또는 전체적으로 임시로 오버랩 방식으로 수행될 수도 있으며, 또는 블록들은 때로는 관련된 기능에 의존하여 역순으로 실행될 수도 있다. 또한, 블록 다이어그램들 및/또는 플로우챠트 그림의 각각의 블록, 그리고 블록 다이어그램들 및/또는 플로우챠트 그림에서의 블록들의 조합들은 명시된 기능들 또는 동작들을 수행하거나 전용 하드웨어와 컴퓨터 명령들의 조합들을 수행하는 전용 하드웨어 기반 시스템들에 의해 구현될 수 있다는 것도 주목될 것이다.
[0055] 또한, 위에서 논의된 바와 같이, 상기 결함 검출 디바이스의 기능은, 클라우드 컴퓨팅 환경에서와 같이 상기 x-레이 디바이스로부터 원격으로 구현될 수 있다. 이러한 몇몇 실시예들에 있어서, 상기 시스템은 다수의 상이한 PCBA 제조업자들로부터 수집된 이미지들을 사용하여 모델들을 학습(learn) 및 개선(refine)할 수 있다. 하지만, 비록 이러한 개시는 클라우드 컴퓨팅 상에서의 상세한 설명을 포함하지만, 여기에서 인용되는 가르침들의 구현은 클라우드 컴퓨팅 환경으로 한정되어서는 아니된다는 것이 이해되어야 한다. 오히려, 본 발명의 실시예들은 현재 알려져 있거나 향후에 개발될 컴퓨팅 환경의 다른 어떤 유형과 함께 구현가능하다.
[0056] 클라우드 컴퓨팅은, 최소의 관리 노력 또는 서비스 공급자와의 상호작용으로 빠르게 공급 및 배포될 수 있는 구성가능한 컴퓨팅 리소스들(예컨대, 네트워크들, 네트워크 대역폭, 서버들, 처리, 메모리, 스토리지, 어플리케이션들, 가상 머신들, 및 서비스들)의 공유 풀(shared pool)에 대한 편리한 주문형 네트워크 접근(on-demand network access)을 가능하게 하기 위한 서비스 제공의 모델이다. 이러한 클라우드 모델은 적어도 다섯 개의 특징들, 적어도 세 개의 서비스 모델들, 및 적어도 네 개의 배치 모델들(deployment models)을 포함한다.
[0057] 그 특징들은 다음과 같다.
[0058] 주문형 셀프 서비스(on-demand self service) : 서비스 공급자와의 인간적 상호작용을 필요로 함이 없이 자동적으로 필요에 따라, 클라우드 소비자는 컴퓨팅 기능들 - 예컨대, 서버 시간 및 네트워크 스토리지와 같은 것들 - 을 일방적으로 공급할 수 있다.
[0059] 광범위한 네트워크 접근(broad network access) : 기능들이 네트워크를 통해 이용가능하고 이종의(heterogeneous) 씬(thin) 또는 씨크(thick) 클라이언트 플랫폼들(예컨대, 모바일 전화기들, 랩탑들, 및 PDA들)에 의한 사용을 촉진시키는 표준 메커니즘들을 통해 접근된다.
[0060] 리소스 풀링(resource pooling) : 공급자의 컴퓨팅 리소스들은 멀티 테넌트 모델(multi-tenant model)을 사용하여 다수의 소비자들에게 서비스를 제공하도록 풀링(pooling)되며, 여기서 상이한 물리적 및 가상의 리소스들은 요구에 따라 동적으로 할당 및 재할당된다. 소비자가 일반적으로 그 공급된 리소스들의 정확한 위치에 대한 어떠한 컨트롤 또는 지식도 갖지 않지만, 추상화(abstraction)의 더 높은 수준에서의 위치(예컨대, 나라, 주, 또는 데이터센터)를 특정할 수 있다는 점에서 위치 독립성(location independence)의 의미가 있다.
[0061] 빠른 탄력성(rapid elasticity) : 기능들은, 빠르게 스케일 아웃(scale out)하고 빠르게 배포되어 빠르게 스케일 인(scale in)하기 위해, 빠르게 그리고 탄력적으로, 어떤 경우들에 있어서는 자동적으로, 공급될 수 있다. 소비자에게는, 공급을 위해 이용가능한 기능들은 흔히 어느 때든 어떤 양으로든지 무한정으로 보일 수 있고 구매될 수 있다.
[0062] 측정되는 서비스(measured service) : 클라우드 시스템들은 서비스의 유형(예컨대, 스토리지, 처리, 대역폭, 및 액티브 사용자 계정들)에 적절한 추상화의 어떤 수준에서 계측 기능(metering capability)을 활용함에 의해 리소스 사용을 자동적으로 컨트롤 및 최적화할 수 있다. 리소스 사용량은, 모니터링되고, 제어되고, 보고될 수 있어, 이용된 서비스의 공급자와 소비자 둘 모두에게 투명성을 제공한다.
[0063] 서비스 모델들은 다음과 같다.
[0064] 서비스로서의 소프트웨어(Software as a Service, SaaS) : 소비자에게 제공되는 기능은 클라우드 인프라구조 상에서 실행되고 있는 공급자의 어플리케이션들을 사용하는 것이다. 어플리케이션들은 웹 브라우저(예컨대, 웹 기반 이메일)과 같은 씬 클라이언트 인터페이스를 통해 다양한 클라이언트 디바이스들로부터 접근가능한다. 소비자는, 예외적으로 제한된 사용자 전용 어플리케이션 구성 설정들이 가능한 것을 제외하고는, 네트워크, 서버들, 운영체제들, 스토리지, 또는 심지어 개인적인 어플리케이션 기능들을 포함하는 기본적인 클라우드 인프라구조를 관리 또는 제어하지는 않는다.
[0065] 서비스로서의 플랫폼(Platform as a Service, PaaS) : 소비자에게 제공되는 기능은 클라우드 인프라구조 고객 생성 또는 획득 어플리케이션들 상에 배치되는 것이다. 클라우드 인프라구조 고객 생성 또는 획득 어플리케이션들은 공급자에 의해 지원되는 프로그래밍 언어들 및 툴들을 사용하여 생성된다. 소비자는 네트워크들, 서버들, 운영체제들, 또는 스토리지를 포함하는 기본적인 클라우드 인프라구조를 관리 또는 컨트롤하지 않지만, 배치된 어플리케이션들 그리고 가능하다면 어플리케이션 호스팅 환경 구성들을 통한 컨트롤을 갖는다.
[0066] 서비스로서의 인프라구조(Infracture as a Service, IaaS) : 소비자에게 제공되는 기능은 처리, 스토리지, 네트워크들, 및 다른 근본적인 컴퓨팅 리소스들 - 소비자는 임의의 소프트웨어를 배치하고 실행할 수 있으며, 운영체제들 및 어플리케이션들을 포함할 수 있음 - 을 공급하는 것이다. 소비자는 기본적인 클라우드 인프라구조를 관리 또는 컨트롤하지 않지만 운영체제들, 스토리지, 배치된 어플리케이션들을 통한 컨트롤, 그리고 가능하다면 네트워킹 컴포넌트들(예컨대, 포스트 방화벽들)의 한정된 컨트롤을 갖는다.
[0067] 배치 모델들(deployment models)은 다음과 같다.
[0068] 사설 클라우드(Private cloud) : 클라우드 인프라구조는 오로지 조직을 위해서 운영된다. 그것은 조직 또는 제3자에 의해 관리될 수 있고 사내(on-premises) 또는 사외(off-premises)에 존재할 수 있다.
[0069] 커뮤니티 클라우드(Community cloud) : 클라우드 인프라구조는 몇 개의 조직들에 의해 공유되고 관심사들(예컨대, 임무, 보안 요구사항들, 정책, 및 준수 고려사항들)을 공유하는 특정 커뮤니티를 지원한다. 그것은 조직들 또는 제3자에 의해 관리될 수 있고 사내 또는 사외에 존재할 수 있다.
[0070] 공중 클라우드(Public cloud) : 클라우드 인프라구조는 일반적인 공중 또는 큰 산업 그룹에게 이용가능하게 만들어지고 클라우드 서비스들을 판매하는 조직에 의해 소유된다.
[0071] 하이브리드 클라우드(Hybrid cloud) : 클라우드 인프라구조는, 고유의 엔티티들을 유지하지만 데이터 및 어플리케이션 휴대성(portability)(예컨대, 클라우드들 간의 로드 밸런싱을 위한 클라우드 버스팅(bursting)을 가능하게 하는 표준화 또는 독점 기술에 의해 함께 묶여 있는 두 개 또는 그 이상의 클라우드들(사설, 커뮤니티, 또는 공중)의 구성이다.
[0072] 클라우드 컴퓨팅 환경은 국적 없음(statelessness), 낮은 결합(low coupling), 모듈 방식(modularity), 및 의미론적 상호운용성(esmaitic interopoeability)에 중점을 두도록 지향된 서비스이다. 클라우드 컴퓨팅의 핵심에는, 상호연결된 노드들의 네트워크를 포함하는 인프라구조가 있다.
[0073] 이제 도 7을 참조하면, 예시적인 클라우드 컴퓨팅 환경(50)이 도시된다. 보여진 바와 같이, 클라우드 컴퓨팅 환경(50)은 클라우드 소비자들에 의해 사용되는 로컬 컴퓨팅 디바이스들이 통신할 수 있는 하나 또는 그 이상의 클라우드 컴퓨팅 노드들(10)을 포함한다. 클라우드 소비자들에 의해 사용되는 로컬 컴퓨팅 디바이스들은, 예를 들어, 개인용 디지털 보조기기(PDA) 또는 셀룰러 전화기(54A), 데스크탑 컴퓨터(54B), 랩탑 컴퓨터(54C), 및/또는 자동차 컴퓨터 시스템(54N)이 다. 노드들(10)은 서로 간에 통신할 수 있다. 그것들은, 여기에서 위에서 설명된 바와 같이 사설(Private), 커뮤니티(Community), 공중(Public), 또는 하이브리드(Hibrid) 클라우드들과 같은 하나 또는 그 이상의 네트워크들에서 물리적으로 또는 가상으로 그룹핑될 수 있다(도면에 보여지지 않음). 이것은 클라우드 컴퓨팅 환경(50)에게 클라우드 소비자가 로컬 컴퓨팅 디바이스 상에 리소스들을 유지할 필요가 없는 서비스들로서 인프라구조, 플랫폼, 및/또는 소프트웨어를 제공가능하게 한다. 도 7에 보여진 컴퓨팅 디바이스들의 유형들(54A - 54N)은 단지 설명을 위한 것으로 의도되었으며, 컴퓨팅 노드들(10) 및 클라우드 컴퓨팅 환경(50)은 네트워크 및/또는 네트워크 주소지정 연결(예컨대, 웹 브라우저를 사용하여)의 어떤 유형을 통해 컴퓨터화된 디바이스의 어떤 유형으로 통신할 수 있다는 것이 이해된다.
[0074] 이제 도 8을 참조하면, 클라우드 컴퓨팅 환경(50, 도 5)에 의해 제공되는 기능적 추상화 계층들의 세트가 보여진다. 도 8에 보여진 컴포넌트들, 계층들, 및 기능들은 단지 설명을 위한 것으로 의도되었으며 본 발명의 실시예들은 그것으로 한정되는 것은 아니라는 것이 이해되어야 한다. 도시된 바와 같이, 다음의 계층들 및 대응되는 기능들이 제공된다.
[0075] 하드웨어 및 소프트웨어 계층(60)은 하드웨어 및 소프트웨어 컴포넌트들을 포함한다. 하드웨어 컴포넌트들의 예들은 메인프레임들(61); RISC(감소된 명령 세트 컴퓨터(Reduced Instruction Set Computer)) 아키텍쳐 기반 서버들(62); 서버들(63); 블레이드 서버들(64); 스토리지 디바이스들(65); 및 네트워크들 및 네트워킹 컴포넌트들(66)을 포함한다. 몇몇 실시예들에 있어서, 소프트웨어 컴포넌트들은 네트워크 어플리케이션 서버 소프트웨어(67) 및 데이터베이스 소프트웨어(68)를 포함한다.
[0076] 가상화 계층(70)은 가상화 엔티티들의 다음의 예들이 제공될 수 있는 추상화 계층(abstraction layer)을 제공한다. 즉 그 예들은, 가상 서버들(71); 가상 스토리지(72); 가상 네트워크들(73) - 가상 사설망들을 포함함 - ; 가상 어플리케이션들 및 운영체제들(74); 및 가상 클라이언트들(75)이다.
[0077] 하나의 예에서, 관리 계층(80)은 이하에서 설명되는 기능들을 제공할 수 있다. 리소스 프로비저닝(Resource provisioning)(81)은 컴퓨팅 리소스들 및 클라우드 컴퓨팅 환경 내에서 태스크들을 수행하기 위해 이용되는 다른 리소스들의 동적 조달(dynamic procurement)을 공급한다. 계량 및 가격 책정(Metering and Pricing)(82)은 클라우드 컴퓨팅 환경 내에서 리소스들이 이용됨에 따른 비용 추적(cost tracking), 이들 리소스들의 소비에 대한 비용청구 또는 송장발행(billing or invoicing)을 제공한다. 일 예에서, 이들 리소스들은 어플리케이션 소프트웨어 라이센스들을 포함할 수 있다. 보안(Security)은 데이터 및 다른 리소스들에 대한 보호 뿐만 아니라 클라우드 소비자들 및 태스크들에 대한 신원확인을 제공한다. 사용자 포탈(User portal)(83)은 소바자들 및 시스템 관리자들에게 클라우드 컴퓨팅 환경에 대한 접근을 제공한다. 서비스 수준 관리(Service level management)(84)는 요구되는 서비스 수준들이 충족되도록 클라우드 컴퓨팅 리소스 할당 및 관리를 제공한다. 서비스 수준 협의(Service Level Agreement, SLA) 계획 및 이행(85)은 SLA에 따라 장래의 요구가 예상되는 클라우드 컴퓨팅 리소스들에 대한 사전협의(pre-arrangement), 및 조달을 제공한다.
[0078] 워크로드들 계층(Workloads layer)(90)은 클라우드 컴퓨팅 환경이 이용될 수 있는 기능의 예들을 제공한다. 이 계층으로부터 공급될 수 있는 워크로드들 및 기능들의 예들은 맵핑 및 내비게이션(91); 소프트웨어 개발 및 수명 관리(92); 가상 교실 교육 전달(93); 데이터 분석 처리(94); 거래 처리(95); 및 2-d 흑백 x-레이 이미지들로부터 생성된 컬러 이미지들을 사용하는 PCBA 결함 검출(96)을 포함한다.
<실시예들>
[0079] 예 1은 방법을 포함한다. 상기 방법은 인쇄회로기판 어셈블리의 일부의 복수의 2-차원 흑백 이미지들을 획득하는 단계를 포함한다. 각각의 2-차원 흑백 이미지는 각각의 상이한 위치들에서 상기 인쇄회로기판 어셈블리의 상기 일부와 교차하는 복수의 평행 평면들 중 하나에 대응된다. 상기 방법은 상기 복수의 2-차원 흑백 이미지들을 컬러 이미지로 변환하는 단계를 더 포함한다. 상기 복수의 2-차원 흑백 이미지들 각각은 상기 컬러 이미지의 각각의 컬러 채널에 대응되고 상기 컬러 이미지의 각각의 컬러 채널에 대한 입력으로서 사용된다. 상기 방법은 결함을 나타내는 컬러 변화를 검출하기 위해 상기 컬러 이미지를 분석하는 단계, 및 상기 컬러 변화를 검출하는 것에 응답하여 상기 결함을 나타내는 경보를 출력하는 단계를 더 포함한다.
[0080] 예 2는 예1의 방법을 포함하며, 상기 컬러 이미지는 적색 녹색 청색(RGB) 컬러 이미지이고, 상기 복수의 2-차원 흑백 이미지들은 세 개의 2-차원 흑백 이미지들을 포함하며, 상기 세 개의 2-차원 흑백 이미지들 각각은 상기 RGB 컬러 이미지의 적색 채널, 청색 채널, 또는 녹색 채널 각각에 대응된다.
[0081] 예 3은 예 1-2 중 어느 하나의 방법을 포함하며, 결함을 나타내는 컬러 변화를 검출하기 위해 상기 컬러 이미지를 분석하는 단계는 볼 그리드 어레이의 솔더 볼 연결에서의 결함을 검출하기 위해 상기 컬러 이미지를 분석하는 단계를 포함한다.
[0082] 예 4는 예들 1 및 3 중 어느 하나의 방법을 포함하며, 상기 컬러 이미지는 청록색 황색 자홍색 흑색(CMYK) 컬러 이미지이고, 상기 복수의 2-차원 흑백 이미지들은 네 개의 2-차원 흑백 이미지들을 포함하며, 상기 네 개의 2-차원 흑백 이미지들 각각은 상기 CMYK 컬러 이미지의 청록색 채널, 황색 채널, 자홍색 채널, 및 흑색 채널 각각에 대응된다.
[0083] 예 5는 예들 1-4 중 어느 하나의 방법을 포함하며, 상기 복수의 2-차원 흑백 이미지들을 획득하는 단계는 상기 인쇄회로기판 어셈블리의 x-레이 이미지들을 캡쳐하도록 구성된 디바이스로부터 상기 복수의 2-차원 흑백 이미지들을 수신하는 단계를 포함한다.
[0084] 예 6은 예들 1-4 중 어느 하나의 방법을 포함하며, 상기 복수의 2-차원 흑백 이미지들을 획득하는 단계는, 상기 인쇄회로기판 어셈블리의 x-레이 이미지들을 캡쳐하도록 구성된 x-레이 디바이스로 상기 복수의 2-차원 흑백 이미지들을 캡쳐하는 단계를 포함하고, 상기 복수의 2-차원 흑백 이미지들을 상기 컬러 이미지로 변환하는 단계는, 상기 복수의 2-차원 흑백 이미지들을 캡쳐하도록 구성된 상기 x-레이 디바이스로 상기 복수의 2-차원 흑백 이미지들을 변환하는 단계를 포함한다.
[0085] 예 7은 예들 1-6 중 어느 하나의 방법을 포함하며, 상기 컬러 이미지를 분석하는 단계는 결함을 나타내는 상기 컬러 변화를 검출하기 위해 콘볼루션 신경망에서 상기 컬러 이미지를 처리하는 단계를 포함한다.
[0086] 예 8은 인쇄회로기판 어셈블리의 2-차원 흑백 이미지들을 캡쳐하도록 구성된 x-레이 디바이스에 통신상으로 결합되는 인터페이스, 상기 인터페이스에 통신상으로 결합되는 프로세서를 포함한다. 상기 프로세서는 상기 인쇄회로기판 어셈블리에서 결함을 나타내는 컬러 변화를 확인하기 위해 상기 x-레이 디바이스에 의해 캡쳐된 복수의 2-차원 흑백 이미지들로부터 생성된 컬러 이미지를 분석하도록 구성된다. 상기 컬러 이미지는 상기 복수의 2-차원 흑백 이미지들 각각을 상기 컬러 이미지의 각각의 컬러 채널 내에 입력함으로써 생성된다. 상기 프로세서는 상기 컬러 변화를 확인하는 것에 응답하여 상기 결함을 나타내는 경보를 출력하도록 더 구성된다.
[0087] 예 9는 예 8의 디바이스를 포함하며, 상기 프로세서는 상기 복수의 2-차원 흑백 이미지들로부터 상기 컬러 이미지를 생성하도록 더 구성된다.
[0088] 예 10은 예 8의 디바이스를 포함하며, 상기 인터페이스는 상기 x-레이 디바이스로부터 상기 컬러 이미지를 수신하도록 구성된다.
[0089] 예11은 예들 8-10 중 어느 하나의 디바이스를 포함하며, 상기 프로세서는 볼 그리드 어레이의 솔더 볼 연결에서 결함을 나타내는 컬러 변화를 검출하기 위해 상기 컬러 이미지를 분석하도록 더 구성된다.
[0090] 예 12는 예들 8-11 중 어느 하나의 디바이스를 포함하며, 상기 컬러 이미지는 적색 녹색 청색(RGB) 컬러 이미지이고, 상기 복수의 2-차원 흑백 이미지들은 세 개의 2-차원 흑백 이미지들을 포함하고, 상기 세 개의 2-차원 흑백 이미지들 각각은 상기 RGB 컬러 이미지의 적색 채널, 청색 채널, 또는 녹색 채널 각각에 대응된다.
[0091] 예 13은 예들 8-12 중 어느 하나의 디바이스를 포함하며, 상기 프로세서는 결함을 나타내는 상기 컬러 변화를 확인하기 위해 상기 컬러 이미지를 분석하도록 구성된 콘볼루션 신경망을 구현하도록 구성된다.
[0092] 예 14는 인쇄회로기판 어셈블리의 복수의 2-차원 흑백 이미지들을 캡쳐하도록 구성된 x-레이 디바이스를 포함하는 시스템을 포함한다. 각각의 2-차원 흑백 이미지는 각각의 상이한 위치들에서 상기 인쇄회로기판 어셈블리의 상기 일부와 교차하는 복수의 평행 평면들 중 하나에 대응된다. 상기 시스템은 상기 인쇄회로기판 어셈블리의 결함을 나타내는 컬러 변화를 확인하기 위해 상기 x-레이 디바이스에 의해 캡쳐된 상기 복수의 2-차원 흑백 이미지들로부터 생성되는 컬러 이미지를 분석하고 - 상기 복수의 2-차원 흑백 이미지들은 상기 컬러 이미지의 각각의 컬러 채널에 대응됨 - , 상기 컬러 변화를 확인하는 것에 응답하여 상기 결함을 나타내는 경보를 출력하도록 구성된 프로세서를 포함하는 결함 검출 디바이스를 더 포함한다.
[0093] 예 15는 예 14의 시스템을 포함하며, 상기 x-레이 디바이스는 상기 복수의 2-차원 흑백 이미지들 각각을 상기 컬러 이미지의 상기 대응되는 각각의 컬러 채널 내에 입력함으로써 상기 컬러 이미지를 생성하도록 구성된 프로세서를 더 포함한다.
[0094] 예 16은 예들 14-15 중 어느 하나의 시스템을 포함하며, 상기 컬러 이미지는 적색 녹색 청색(RGB) 컬러 이미지이고, 상기 복수의 2-차원 흑백 이미지들은 세 개의 2-차원 흑백 이미지들을 포함하고, 상기 세 개의 2-차원 흑백 이미지들 각각은 상기 RGB 컬러 이미지의 적색 채널, 청색 채널, 또는 녹색 채널 각각에 대응된다.
[0095] 예 17은 예들 14-16 중 어느 하나의 시스템을 포함하며, 상기 결함 검출 디바이스에서 상기 프로세서는 볼 그리드 어레이의 솔더 볼 연결에서의 결함을 나타내는 컬러 변화를 검출하기 위해 상기 컬러 이미지를 분석하도록 더 구성된다.
[0096] 예 18은 예들 14-17 중 어느 하나의 시스템을 포함하며, 상기 결함 검출 디바이스에서 상기 프로세서는 결함을 나타내는 상기 컬러 변화를 확인하기 위해 상기 컬러 이미지를 분석하도록 구성된 콘볼루션 신경망을 구현하도록 구성된다.
[0097] 예 19는 예들 14-18 중 어느 하나의 시스템을 포함하며, 상기 x-레이 디바이스 및 상기 결함 검출 디바이스는 공통 하우징을 공유한다.
[0098] 예 20은 컴퓨터 판독가능 스토리지 매체를 포함하는 컴퓨터 프로그램 제품을 포함하며, 상기 컴퓨터 판독가능 스토리지 매체는 그 안에 저장된 컴퓨터 판독가능 프로그램을 가지며, 상기 컴퓨터 판독가능 프로그램은, 프로세서에 의해 실행될 때, 상기 프로세서로 하여금, 컬러 이미지의 대응되는 컬러 채널 내에 복수의 2-차원 흑백 이미지들 각각을 입력함으로써 상기 복수의 2-차원 흑백 이미지들로부터 상기 컬러 이미지를 생성하고 - 2-차원 흑백 이미지 각각은 각각의 상이한 위치들에서 인쇄회로기판 어셈블리의 일부와 교차하는 복수의 평행 평면들 중 하나에 대응됨 - , 상기 인쇄회로기판 어셈블리에서의 결함을 나타내는 컬러 변화를 검출하기 위해 상기 컬러 이미지를 분석하고, 상기 컬러 변화를 검출하는 것에 응답하여 상기 결함을 나타내는 경보를 출력하게 한다.
[0099] 예 21은 예 20의 컴퓨터 프로그램 제품을 포함하며, 상기 컴퓨터 판독가능 프로그램은 상기 프로세서로 하여금 볼 그리드 어레이의 솔더 볼 연결에서의 결함을 나타내는 컬러 변화를 검출하게 하도록 더 구성된다.
[00100] 예 22는 예들 20-21 중 어느 하나의 컴퓨터 프로그램 제품이며, 상기 컴퓨터 판독가능 프로그램은 결함을 나타내는 상기 컬러 변화를 확인하기 위해 상기 컬러 이미지를 분석하도록 구성된 콘볼루션 신경망을 구현한다.
[00101] 예 23은 예들 20-22 중 어느 하나의 컴퓨터 프로그램 제품을 포함하며, 상기 컬러 이미지는 적색 녹색 청색(RGB) 컬러 이미지이고, 상기 복수의 20차원 흑백 이미지들은 세 개의 2-차원 흑백 이미지들을 포함하며, 상기 세 개의 2-차원 흑백 이미지들 각각은 상기 RGB 컬러 이미지의 적색 채널, 청색 채널, 또는 녹색 채널 각각에 대응된다.
[00102] 예 24는 예들 20-23 중 어느 하나의 컴퓨터 프로그램 제품을 포함하며, 상기 컴퓨터 판독가능 프로그램은 상기 프로세서로 하여금 상기 결함의 위치를 나타내는 주석이 달린(annotated) 컬러 이미지를 포함하는 경보를 출력하게 하도록 더 구성된다.
[00103] 예 25는 예들 20-24 중 어느 하나의 컴퓨터 프로그램 제품을 포함하며, 상기 컬러 변화는 헤드-인-필로우(head-in-pillow) 결함, 제1 레벨 패키징 결함들, 제2 레벨 솔더 조인트 결함들, 공동(voiding) 결함들, 솔더 프린트 품질, 및 언더필(underfill) 결함들 중 하나를 나타낸다.
[00104] 비록 특정 실시예들이 도시되고 여기에서 설명되었지만, 동일한 목적을 달성하도록 계산된 어떤 방식이, 보여진 특정 실시예들을 대체할 수 있다는 것은 당해 기술 분야에서 통상의 기술을 가진 자들에 의해 이해될 것이다. 그러므로, 본 발명은 단지 청구항들 및 그것의 균등범위에 의해 제한되도록 분명히 의도된다.

Claims (25)

  1. 방법으로서, 상기 방법은:
    인쇄회로기판 어셈블리의 일부에 대한 복수의 2-차원 흑백 이미지들(gray scale images)을 획득하는 단계 - 각각의 2-차원 흑백 이미지는 각각의 상이한 위치들에서 상기 인쇄회로기판 어셈블리의 상기 일부와 교차하는 복수의 평행 평면들 중 하나에 대응됨 - ;
    상기 복수의 2-차원 흑백 이미지들을 컬러 이미지(color image)로 변환하는 단계 - 상기 복수의 2-차원 흑백 이미지들 각각은 상기 컬러 이미지의 각각의 컬러 채널에 대응되고 상기 컬러 이미지의 각각의 컬러 채널에 대한 입력으로서 사용됨 - ;
    결함(defect)을 나타내는 컬러 변화(variation in color)를 검출하기 위해 상기 컬러 이미지를 분석하는 단계; 및
    상기 컬러 변화를 검출하는 것에 응답하여 상기 결함을 나타내는 경보(alert)를 출력하는 단계를 포함하는,
    방법.
  2. 청구항 1에 있어서, 상기 컬러 이미지는 적색 녹색 청색(RGB) 컬러 이미지이고,
    상기 복수의 2-차원 흑백 이미지들은 세 개의 2-차원 흑백 이미지들을 포함하며, 상기 세 개의 2-차원 흑백 이미지들은 상기 RGB 컬러 이미지의 적색 채널, 청색 채널, 또는 녹색 채널 각각에 대응되는,
    방법.
  3. 청구항 1에 있어서, 결함을 나타내는 컬러 변화를 검출하기 위해 상기 컬러 이미지를 분석하는 단계는, 볼 그리드 어레이의 솔더 볼 연결에서의 결함을 검출하기 위해 상기 컬러 이미지를 분석하는 단계를 포함하는,
    방법.
  4. 청구항 1에 있어서, 상기 컬러 이미지는 청록색 황색 자홍색 흑색(Cyan Yellow Magenta Black)(CMYK) 컬러 이미지이고,
    상기 복수의 2-차원 흑백 이미지들은 네 개의 2-차원 흑백 이미지들을 포함하며, 상기 네 개의 2-차원 흑백 이미지들 각각은, 상기 CMYK 컬러 이미지의 청록색 채널, 황색 채널, 자홍색 채널, 및 적색 채널 각각에 대응되는,
    방법.
  5. 청구항 1에 있어서, 상기 복수의 2-차원 흑백 이미지들을 획득하는 단계는, 상기 인쇄회로기판 어셈블리의 x-레이 이미지들을 캡쳐하도록 구성된 디바이스로부터 상기 복수의 2-차원 흑백 이미지들을 수신하는 단계를 포함하는,
    방법.
  6. 청구항 1에 있어서, 상기 복수의 2-차원 흑백 이미지들을 획득하는 단계는 상기 인쇄회로기판 어셈블리의 x-레이 이미지들을 캡쳐하도록 구성된 x-레이 디바이스로 상기 복수의 2-차원 흑백 이미지들을 캡쳐하는 단계를 포함하고,
    상기 복수의 2-차원 흑백 이미지들을 상기 컬러 이미지로 변환하는 단계는, 상기 복수의 2-차원 흑백 이미지들을 캡쳐하도록 구성된 상기 x-레이 디바이스로 상기 복수의 2-차원 이미지들을 상기 컬러 이미지로 변환하는 단계를 포함하는,
    방법.
  7. 청구항 1에 있어서, 상기 컬러 이미지를 분석하는 단계는 결함을 나타내는 상기 컬러 변화하기 위해 콘볼루션 신경망(convolutional neural network)에서 상기 컬러 이미지를 처리하는 단계를 포함하는,
    방법.
  8. 디바이스로서, 상기 디바이스는:
    인쇄회로기판 어셈블리의 2-차원 흑백 이미지들을 캡쳐하도록 구성된 x-레이 디바이스에 통신상으로 결합되는 인터페이스; 및
    상기 인터페이스에 통신상으로 결합되는 프로세서를 포함하고,
    상기 프로세서는,
    상기 인쇄회로기판 어셈블리에서 결함을 나타내는 컬러 변화를 확인하기 위해 상기 x-레이 디바이스에 의해 캡쳐된 복수의 2-차원 흑백 이미지들로부터 생성되는 컬러 이미지를 분석하고 - 상기 컬러 이미지는 상기 컬러 이미지의 각각의 컬러 채널 내에 상기 복수의 2-차원 흑백 이미지들 각각을 입력함으로써 생성됨 - ,
    상기 컬러 변화를 확인하는 것에 응답하여 상기 결함을 나타내는 경보를 출력하도록 구성되는,
    디바이스.
  9. 청구항 8에 있어서, 상기 프로세서는 상기 복수의 2-차원 흑백 이미지들로부터 상기 컬러 이미지를 생성하도록 더 구성되는,
    디바이스.
  10. 청구항 8에 있어서, 상기 인터페이스는 상기 x-레이 디바이스로부터 상기 컬러 이미지를 수신하도록 구성되는,
    디바이스.
  11. 청구항 8에 있어서, 상기 프로세서는 볼 그리드 어레이의 솔더 볼 연결에서 결함을 나타내는 컬러 변화를 검출하기 위해 상기 컬러 이미지를 분석하도록 더 구성되는,
    디바이스.
  12. 청구항 8에 있어서, 상기 컬러 이미지는 적색 녹색 청색(RGB) 컬러 이미지이고,
    상기 복수의 2-차원 흑백 이미지는 세 개의 2-차원 흑백 이미지들을 포함하며, 상기 세 개의 2-차원 흑백 이미지들 각각은 상기 RGB 컬러 이미지의 적색 채널, 청색 채널, 또는 녹색 채널 각각에 대응되는,
    디바이스.
  13. 청구항 8에 있어서, 상기 프로세서는 결함을 나타내는 상기 컬러 변화를 확인하기 위해 상기 컬러 이미지를 분석하도록 구성된 콘볼루션 신경망을 구현하도록 구성되는,
    디바이스.
  14. 시스템으로서, 상기 시스템은:
    인쇄회로기판 어셈블리의 복수의 2-차원 흑백 이미지들을 캡쳐하도록 구성되는 x-레이 - 각각의 2-차원 흑백 이미지는 각각의 상이한 위치들에서 상기 인쇄회로기판 어셈블리의 일부와 교차하는 복수의 평행 평면들 중 하나에 대응됨 - ;및
    프로세서를 포함하는 결함 검출 디바이스를 포함하며,
    상기 프로세서는,
    상기 인쇄회로기판 어셈블리에서 결함을 나타내는 컬러 변화를 확인하기 위해 상기 x-레이 디바이스에 의해 캡쳐된 상기 복수의 2-차원 흑백 이미지들로부터 생성되는 컬러 이미지를 분석하고 - 상기 복수의 2-차원 흑백 이미지들은 상기 컬러 이미지의 각각의 컬러 채널에 대응됨 - ,
    상기 컬러 변화를 확인하는 것에 응답하여 상기 결함을 나타내는 경보를 출력하도록 구성되는,
    시스템.
  15. 청구항 14에 있어서, 상기 x-레이 디바이스는 상기 컬러 이미지의 상기 대응되는 각각의 컬러 채널 내에 상기 복수의 2-차원 흑백 이미지들 각각을 입력함으로써 상기 컬러 이미지를 생성하도록 구성되는 프로세서를 더 포함하는,
    시스템.
  16. 청구항 14에 있어서, 상기 컬러 이미지는 적색 녹색 청색(RGB) 컬러 이미지이고,
    상기 복수 개의 2-차원 흑백 이미지들은 세 개의 2-차원 흑백 이미지들을 포함하고, 상기 세 개의 2-차원 흑백 이미지들은 상기 RGB 컬러 이미지의 적색 채널, 청색 채널, 또는 녹색 채널 각각에 대응되는,
    시스템.
  17. 청구항 14에 있어서, 상기 결함 검출 디바이스에서 상기 프로세서는 볼 그리드 어레이의 솔더 볼 연결에서의 결함을 나타내는 컬러 변화를 검출하기 위해 상기 컬러 이미지를 분석하도록 더 구성되는,
    시스템.
  18. 청구항 14에 있어서, 상기 결함 검출 디바이스에서 상기 프로세서는 결함을 나타내는 상기 컬러 변화를 확인하기 위해 상기 컬러 이미지를 분석하도록 구성된 콘볼루션 신경망을 구현하도록 구성되는,
    시스템.
  19. 청구항 14에 있어서, 상기 x-레이 디바이스 및 상기 결함 검출 디바이스는 공통 하우징을 공유하는,
    시스템.
  20. 컴퓨터 판독가능 스토리지 매체를 포함하는 컴퓨터 프로그렘 제품으로서, 상기 컴퓨터 판독가능 스토리지 매체는 그 안에 저장된 컴퓨터 판독가능 프로그램을 가지며, 상기 컴퓨터 판독가능 프로그램은, 프로세서에 의해 실행될 때, 상기 프로세서로 하여금,
    컬러 이미지의 대응되는 컬러 채널 내에 복수 개의 2-차원 흑백 이미지들 각각을 입력함으로써, 상기 복수의 2-차원 흑백 이미지들로부터 상기 컬러 이미지를 생성하고 - 2-차원 흑백 이미지 각각은 각각의 상이한 위치들에서 인쇄회로기판 어셈블리의 일부와 교차하는 복수의 평행 평면들 중 하나에 대응됨 - ,
    상기 인쇄회로기판 어셈블리에서의 결함을 나타내는 컬러 변화를 검출하기 위해 상기 컬러 이미지를 분석하고,
    상기 컬러 변화를 검출하는 것에 응답하여 상기 결함을 나타내는 경보를 출력하게 하는,
    컴퓨터 프로그램 제품.
  21. 청구항 20에 있어서, 상기 컴퓨터 판독가능 프로그램은 상기 프로세서로 하여금 볼 그리드 어레이의 솔더 볼 연결에서의 결함을 나타내는 컬러 변화를 검출하게 하도록 더 구성되는,
    컴퓨터 프로그램 제품.
  22. 청구항 20에 있어서, 상기 컴퓨터 판독가능 프로그램은 결함을 나타내는 상기 컬러 변화를 확인하기 위해 상기 컬러 이미지를 분석하도록 구성된 콘볼루션 신경망을 구현하는,
    컴퓨터 프로그램 제품.
  23. 청구항 20에 있어서, 상기 컬러 이미지는 적색 녹색 청색(RGB) 컬러 이미지이고,
    상기 복수 개의 2-차원 흑백 이미지들은 세 개의 2-차원 흑백 이미지들을 포함하고, 상기 세 개의 2-차원 흑백 이미지들 각각은 상기 RGB 컬러 이미지의 적색 채널, 청색 채널, 또는 녹색 채널 각각에 대응되는,
    컴퓨터 프로그램 제품.
  24. 청구항 20에 있어서, 상기 컴퓨터 판독가능 프로그램은 상기 프로세서로 하여금 상기 결함의 위치를 나타내는 주석이 달린(annotated) 컬러 이미지를 포함하는 경보를 출력하게 하도록 더 구성되는,
    컴퓨터 프로그램 제품.
  25. 청구항 20에 있어서, 상기 컬러 변화는, 헤드-인-필로우(head-in-pillow) 결함, 제1 레벨 패키징 결함, 제2 레벨 솔더 조인트 결함들, 공동(voiding) 결함들, 솔더 프린트 품질, 및 언더필(underfill) 결함들 중 하나를 나타내는,
    컴퓨터 프로그램 제품.
KR1020237000004A 2020-07-08 2021-06-24 인쇄회로기판 어셈블리 결함 검출 KR20230028746A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/923,120 US11423577B2 (en) 2020-07-08 2020-07-08 Printed circuit board assembly defect detection
US16/923,120 2020-07-08
PCT/IB2021/055600 WO2022009009A1 (en) 2020-07-08 2021-06-24 Printed circuit board assembly defect detection

Publications (1)

Publication Number Publication Date
KR20230028746A true KR20230028746A (ko) 2023-03-02

Family

ID=79172777

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020237000004A KR20230028746A (ko) 2020-07-08 2021-06-24 인쇄회로기판 어셈블리 결함 검출

Country Status (7)

Country Link
US (1) US11423577B2 (ko)
JP (1) JP2023532999A (ko)
KR (1) KR20230028746A (ko)
CN (1) CN115812219A (ko)
DE (1) DE112021002867T5 (ko)
GB (1) GB2612503A (ko)
WO (1) WO2022009009A1 (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11423577B2 (en) * 2020-07-08 2022-08-23 International Business Machines Corporation Printed circuit board assembly defect detection
US11544836B2 (en) * 2021-03-18 2023-01-03 Inventec (Pudong) Technology Corporation Grid clustering-based system for locating an abnormal area of solder paste printing and method thereof
US11989874B2 (en) * 2022-01-14 2024-05-21 Hewlett Packard Enterprise Development Lp Multi-tier PCBA integrity validation process
WO2024101940A1 (ko) * 2022-11-10 2024-05-16 주식회사 고영테크놀러지 결함의 유형을 결정하기 위한 장치, 방법 및 명령을 기록한 기록 매체
CN116223515B (zh) * 2023-05-05 2023-07-11 成都中航华测科技有限公司 一种用于电路板测试过程的导电图形缺陷检测方法
CN116402809B (zh) * 2023-05-31 2023-08-11 华中科技大学 一种三维砂型打印铺砂过程中的缺陷识别方法和装置
CN116500048B (zh) * 2023-06-28 2023-09-15 四川联畅信通科技有限公司 一种线缆卡具缺陷检测方法、装置、设备及介质
CN116758088B (zh) * 2023-08-22 2023-12-22 深圳市立可自动化设备有限公司 一种bga植球的芯片检测方法及植球系统

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6151380A (en) * 1998-02-11 2000-11-21 Glenbrook Technologies Inc. Ball grid array re-work assembly with X-ray inspection system
US6272204B1 (en) 1999-02-23 2001-08-07 Cr Technology, Inc. Integrated X-ray and visual inspection systems
US6675120B2 (en) * 2000-06-27 2004-01-06 Photon Dynamics, Inc. Color optical inspection system
FI110045B (fi) 2000-11-08 2002-11-15 Antti Lahtinen Menetelmä ja laite harmaasävykuvan muuntamiseksi valeharmaakuvaksi
US6847900B2 (en) 2001-12-17 2005-01-25 Agilent Technologies, Inc. System and method for identifying solder joint defects
US6993193B2 (en) 2002-03-26 2006-01-31 Agilent Technologies, Inc. Method and system of object classification employing dimension reduction
US6738450B1 (en) 2002-12-10 2004-05-18 Agilent Technologies, Inc. System and method for cost-effective classification of an object under inspection
US7202475B1 (en) * 2003-03-06 2007-04-10 Kla-Tencor Technologies Corporation Rapid defect composition mapping using multiple X-ray emission perspective detection scheme
DE102004019536A1 (de) 2004-04-22 2005-11-10 Martin Schubert Verfahren zur farbigen Wiedergabe eines Grauwertbildes unter Beachtung physiologischer Gesichtspunkte
US7245693B2 (en) 2005-06-02 2007-07-17 Agilent Technologies, Inc. X-ray inspection system having on-axis and off-axis sensors
US9013035B2 (en) 2006-06-20 2015-04-21 Broadcom Corporation Thermal improvement for hotspots on dies in integrated circuit packages
US7903864B1 (en) * 2007-01-17 2011-03-08 Matrox Electronic Systems, Ltd. System and methods for the detection of irregularities in objects based on an image of the object
JP5223876B2 (ja) 2010-03-12 2013-06-26 オムロン株式会社 X線検査装置、x線検査方法、x線検査プログラムおよびx線検査システム
GB201102614D0 (en) 2011-02-15 2011-03-30 Oxford Instr Nanotechnology Tools Ltd Material identification using multiple images
US8965102B2 (en) 2012-11-09 2015-02-24 Taiwan Semiconductor Manufacturing Company, Ltd. System and method for defect analysis of a substrate
US10134124B2 (en) 2016-08-18 2018-11-20 Dongfang Jingyuan Electron Limited Reference image contour generation
JP6436141B2 (ja) 2016-09-20 2018-12-12 オムロン株式会社 X線検査装置およびその制御方法
US10168383B2 (en) * 2017-05-12 2019-01-01 International Business Machines Corporation Testing printed circuit board assembly
CN108596871A (zh) 2018-03-08 2018-09-28 中北大学 一种基于深度学习的bga气泡缺陷图像检测方法
CN110930347B (zh) 2018-09-04 2022-12-27 京东方科技集团股份有限公司 卷积神经网络的训练方法、焊点缺陷的检测方法及装置
KR102175286B1 (ko) 2018-10-11 2020-11-06 라온피플 주식회사 결함 검출 장치 및 방법
CN111145175B (zh) 2020-01-10 2020-10-16 惠州光弘科技股份有限公司 一种基于iForest模型验证的SMT焊点缺陷检测方法
US11423577B2 (en) * 2020-07-08 2022-08-23 International Business Machines Corporation Printed circuit board assembly defect detection

Also Published As

Publication number Publication date
GB2612503A (en) 2023-05-03
DE112021002867T5 (de) 2023-03-02
CN115812219A (zh) 2023-03-17
US20220012917A1 (en) 2022-01-13
WO2022009009A1 (en) 2022-01-13
US11423577B2 (en) 2022-08-23
JP2023532999A (ja) 2023-08-01

Similar Documents

Publication Publication Date Title
US11423577B2 (en) Printed circuit board assembly defect detection
US20200287923A1 (en) Unsupervised learning to simplify distributed systems management
US11580419B2 (en) Computer environment infrastructure compliance audit result prediction
AU2021273796B2 (en) Dynamic automation of selection of pipeline artifacts
US10585717B2 (en) Hybrid acceleration in a processing environment
US10834183B2 (en) Managing idle and active servers in cloud data centers
US20200293970A1 (en) Minimizing Compliance Risk Using Machine Learning Techniques
US11972382B2 (en) Root cause identification and analysis
US20220414661A1 (en) Privacy-preserving collaborative machine learning training using distributed executable file packages in an untrusted environment
US20210117775A1 (en) Automated selection of unannotated data for annotation based on features generated during training
US20220358358A1 (en) Accelerating inference of neural network models via dynamic early exits
US20200064275A1 (en) Machine learning enhanced optical-based screening for in-line wafer testing
US20230252070A1 (en) Method and apparatus for training retrieval model, retrieval method and apparatus, device and medium
WO2022228335A1 (en) Input-encoding with federated learning
US10229318B2 (en) Activity-based robotic testing of wearable devices
JP2023537769A (ja) クラウドネイティブなアプリケーション向けの障害場所特定
US20210243069A1 (en) Alert correlating using sequence model with topology reinforcement systems and methods
WO2021007006A1 (en) Dual machine learning pipelines for transforming data and optimizing data transformation
US11499815B2 (en) Visual quality assessment augmentation employing holographic interferometry
US11327825B2 (en) Predictive analytics for failure detection
US20230281518A1 (en) Data subset selection for federated learning
US20230177355A1 (en) Automated fairness-driven graph node label classification
US11842747B2 (en) Calculating numbers of clusters in data sets using eigen response analysis
US20230274169A1 (en) Generating data slice rules for data generation
US20210124931A1 (en) Attention generation