JP5408376B2 - 気泡率演算方法及び気泡率演算装置 - Google Patents
気泡率演算方法及び気泡率演算装置 Download PDFInfo
- Publication number
- JP5408376B2 JP5408376B2 JP2013076299A JP2013076299A JP5408376B2 JP 5408376 B2 JP5408376 B2 JP 5408376B2 JP 2013076299 A JP2013076299 A JP 2013076299A JP 2013076299 A JP2013076299 A JP 2013076299A JP 5408376 B2 JP5408376 B2 JP 5408376B2
- Authority
- JP
- Japan
- Prior art keywords
- bubble
- pixel
- image
- pixels
- region
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Analysing Materials By The Use Of Radiation (AREA)
Description
本発明は、放熱基板と半導体素子とを接合してなる半導体装置の接合領域の気泡率を算出する気泡率演算方法及び気泡率演算装置に関する。
例えば電子部品として用いられる半導体素子は、放熱経路を確保するために、熱伝導率が高い銅製又はアルミ製等の放熱基板に接合される。このとき、例えば矩形状の半導体素子の一面と放熱基板の一面とは、半田又は接着剤等の接合材を介して接合されるため、接合材中に気泡が混入することがある。
半導体素子と放熱基板との間に多量の気泡(ボイド)が介在している場合、半導体素子から放熱基板への熱伝導性が低下して放熱が阻害される。この結果、半導体素子が自己発熱による過度の高温に曝されて、半導体素子が劣化したり、破壊されたりする虞がある。
半導体素子と放熱基板との間に多量の気泡(ボイド)が介在している場合、半導体素子から放熱基板への熱伝導性が低下して放熱が阻害される。この結果、半導体素子が自己発熱による過度の高温に曝されて、半導体素子が劣化したり、破壊されたりする虞がある。
従って、半導体素子及び放熱基板を備える半導体装置を製造する場合に、例えば製造工程の最終段階で、半導体素子と放熱基板との接合領域の面積に対する気泡の面積の割合(即ち気泡率)を求め、求めた気泡率が許容値を越える半導体装置を排除する必要がある。
従来の気泡率演算装置は、気泡率を求めるために、放熱基板に直交するようX線を照射して半導体装置を撮影し、得られたX線画像の濃淡に基づいて気泡の有無を検出するよう構成されている。半導体装置において、気泡が存在する領域は、存在しない領域(即ち接合材が存在する領域)よりもX線の透過率が高いため、接合領域の内、X線画像に淡く映っている部分は気泡と看做すことができる。従って、多値のX線画像を適宜の1種類の閾値で2値化し、気泡に相当する画素の画素数を、接合領域全体の画素数で除算することによって、容易に気泡率を求めることができる。
ところが、材質及び厚さ等が一定ではない放熱基板、例えば導電層及び絶縁層を積層してなる積層体に、スルーホール、ビアホール等、内面が金属メッキされている穴が形成されてなる放熱基板を半導体装置が備える場合、放熱基板自身の各部位のX線透過率が、各部位の材質及び厚さ等に応じて変化するため、多値のX線画像を2値化する際の閾値を設定することが困難である。
従来の基板検査方法では、プリント基板の両面に電子部品が実装されている領域及びスルーホールが開口している領域等、X線透過画像の解析を困難にし、検査結果に悪影響を及ぼす領域が、検査除外領域としてマスキングされる(特許文献1参照)。
また、従来の接合検査方法では、検査対象の厚さとX線透視画像の濃淡との関係を示す較正情報に基づいて、厚さの影響を除去すべくX線透視画像が補正される(特許文献2参照)。
また、従来の接合検査方法では、検査対象の厚さとX線透視画像の濃淡との関係を示す較正情報に基づいて、厚さの影響を除去すべくX線透視画像が補正される(特許文献2参照)。
しかしながら、特許文献1に記載の基板検査方法では、検査除外領域以外の領域について気泡の有無が正確に検出されたとしても、検査除外領域については何も考慮されていない。一方、特許文献2に記載の接合検査方法では、放熱基板の厚さのみを考慮し、しかも、検査対象の厚さとX線透視画像の濃淡との関係を近似的に示す対数曲線に基づいてX線透視画像を補正しているため、正確な補正が行なわれない虞がある。
以上の結果、従来の手法では、検出された気泡の画素数を、接合領域全体の画素数で除算することによって、不正確な気泡率が算出されてしまうという問題がある。
以上の結果、従来の手法では、検出された気泡の画素数を、接合領域全体の画素数で除算することによって、不正確な気泡率が算出されてしまうという問題がある。
本発明は斯かる事情に鑑みてなされたものであり、その主たる目的は、半導体素子と放熱基板との接合領域に存在する気泡の有無を正確に検出して、接合領域全体の正確な気泡率を求めることができる気泡率演算方法及び気泡率演算装置を提供することにある。
本発明に係る気泡率演算方法は、半導体素子と内面がメッキされた穴が形成されている放熱基板の一面とを接合してなる半導体装置の接合領域を、前記一面に向けてX線を照射して撮影してなる多値画像を用いて、前記接合領域に存在する気泡の前記接合領域に対する割合を演算する気泡率演算方法において、前記多値画像に含まれている前記穴のメッキ部分、及び、該メッキ部分を除く前記接合領域を、異なる閾値で2値化して2値画像を生成し、生成した2値画像に基づいて、前記接合領域に位置する接合気泡の有無を検出し、検出した接合気泡の画素数の前記接合領域の画素数に対する割合を、接合領域全体の気泡率として算出することを特徴とする。
本発明に係る気泡率演算装置は、半導体素子と内面がメッキされた穴が形成されている放熱基板の一面とを接合してなる半導体装置の接合領域を、前記一面に向けてX線を照射して撮影してなる多値画像を用いて、前記接合領域に存在する気泡の前記接合領域に対する割合を演算する気泡率演算装置において、前記多値画像に含まれている前記穴のメッキ部分、及び、該メッキ部分を除く前記接合領域を、異なる閾値で2値化して2値画像を生成する異閾値2値化手段と、該異閾値2値化手段が生成した2値画像に基づいて、前記接合領域に位置する接合気泡の有無を検出する接合気泡検出手段と、該接合気泡検出手段が検出した接合気泡の画素数の前記接合領域の画素数に対する割合を、接合領域全体の気泡率として算出する接合気泡率算出手段とを備えることを特徴とする。
本発明の気泡率演算方法及び本発明の気泡率演算装置による場合、放熱基板を、内面がメッキされた穴の内側及び外側と、メッキ部分とに分けて考慮することができる。このとき、穴の内側及び外側(即ちメッキ部分を除く接合領域)に位置する気泡の有無と、メッキ部分に位置する気泡の有無とを、複数種類の閾値を用いた2値化によって容易且つ正確に検出することができる。つまり、半導体素子と放熱基板との接合領域全体に存在する気泡の有無を正確に検出して、接合領域全体の正確な気泡率を求めることができる。
以下、本発明を、その実施の形態を示す図面に基づいて詳述する。
実施の形態 1.
図1は、本発明の実施の形態1に係る気泡率演算装置の外観を示す斜視図である。
図中3は気泡率演算装置であり、気泡率演算装置3は、パーソナルコンピュータを用いてなる演算装置1と、演算装置1に制御されて撮影を開始し、撮影したX線画像を演算装置1へ出力する撮影装置2とを備える。
図2は、気泡率演算装置3の要部構成を示すブロック図である。図3は、気泡率演算装置3が気泡の有無を検出すべき半導体装置の模式的な構成を示す縦断面図である。
図中4は半導体装置であり、半導体装置4は、半導体素子41と放熱基板42とが接合されてなる。
図1は、本発明の実施の形態1に係る気泡率演算装置の外観を示す斜視図である。
図中3は気泡率演算装置であり、気泡率演算装置3は、パーソナルコンピュータを用いてなる演算装置1と、演算装置1に制御されて撮影を開始し、撮影したX線画像を演算装置1へ出力する撮影装置2とを備える。
図2は、気泡率演算装置3の要部構成を示すブロック図である。図3は、気泡率演算装置3が気泡の有無を検出すべき半導体装置の模式的な構成を示す縦断面図である。
図中4は半導体装置であり、半導体装置4は、半導体素子41と放熱基板42とが接合されてなる。
まず、半導体装置4の構成を説明する。
半導体素子41は矩形板状であり、例えば図示しない電動パワーステアリングシステムに組み込まれて、モータの駆動を制御する機能を有する。
放熱基板42は、作動中の半導体素子41が発した熱を放熱する。このために、放熱基板42は、ヒートシンクとして機能する金属基板424と、半導体素子41から金属基板424へ熱を伝達する機能、及び、半導体素子41が実装される回路基板としての機能を有する積層体423とを備える。
半導体素子41は矩形板状であり、例えば図示しない電動パワーステアリングシステムに組み込まれて、モータの駆動を制御する機能を有する。
放熱基板42は、作動中の半導体素子41が発した熱を放熱する。このために、放熱基板42は、ヒートシンクとして機能する金属基板424と、半導体素子41から金属基板424へ熱を伝達する機能、及び、半導体素子41が実装される回路基板としての機能を有する積層体423とを備える。
積層体423は矩形板状であり、導電層421と絶縁層422とを熱圧着によって交互に積層してなる。導電層421は銅製の回路パターンである。絶縁層422は、ガラス繊維とエポキシ樹脂との合成物(いわゆるプリプレグ)を用いてなり、1W/m・K以上の高い熱伝導性を有する。
また、積層体423は、一面(図中上面)側が導電層421、他面(図中下面)側が絶縁層422であって、積層体423の上面に、図示しないニッケルメッキ層及び金メッキ層を介して、半導体素子41の一面(図中下面)が半田付けされる。図中43は、半導体素子41と積層体423の一面(即ち放熱基板42の一面)とを接合している半田層であり、半田層43には、半田付けの際に気泡が混入することがある。本実施の形態の気泡率演算方法は、半田層43に混入している気泡の有無を検出し、検出した気泡の気泡率を演算するものである。
また、積層体423は、一面(図中上面)側が導電層421、他面(図中下面)側が絶縁層422であって、積層体423の上面に、図示しないニッケルメッキ層及び金メッキ層を介して、半導体素子41の一面(図中下面)が半田付けされる。図中43は、半導体素子41と積層体423の一面(即ち放熱基板42の一面)とを接合している半田層であり、半田層43には、半田付けの際に気泡が混入することがある。本実施の形態の気泡率演算方法は、半田層43に混入している気泡の有無を検出し、検出した気泡の気泡率を演算するものである。
積層体423の下面には、アルミニウムを用いてなる矩形状の金属基板424が熱圧着されている。
また、積層体423には、積層方向(図中上下方向)に、図中最下層の導電層421から最上層の絶縁層422までを貫通することによって、ビアホール(穴)44,44,…が形成されている。各ビアホール44には、内面に銅メッキが施されてからプリプレグが充填されることによって、メッキ部分45及び樹脂部分46が形成されている。メッキ部分45は、最上層の絶縁層422から最下層の導電層421からへの熱伝導性を向上させている。また、メッキ部分45は、導電層421,421,…同士を電気的に接続している。なお、導電層421,421,…同士を電気的に接続しないメッキ部分45が設けられていてもよい。
また、積層体423には、積層方向(図中上下方向)に、図中最下層の導電層421から最上層の絶縁層422までを貫通することによって、ビアホール(穴)44,44,…が形成されている。各ビアホール44には、内面に銅メッキが施されてからプリプレグが充填されることによって、メッキ部分45及び樹脂部分46が形成されている。メッキ部分45は、最上層の絶縁層422から最下層の導電層421からへの熱伝導性を向上させている。また、メッキ部分45は、導電層421,421,…同士を電気的に接続している。なお、導電層421,421,…同士を電気的に接続しないメッキ部分45が設けられていてもよい。
積層体423にビアホール44,44,…が形成されているため、積層体423の層方向(図中左右方向)の各位置について、積層方向の材質及び及び各材質を有する部分の厚さは一定ではない。具体的には、銅製の部分の厚さ(上下方向の矢符で図示。以下、銅厚という)に関し、ビアホール44の中央部42aは、積層体423を積層方向に貫いて樹脂部分46が形成されているため、銅厚が非常に薄い。ところが、ビアホール44の内周部42bは、積層体423を積層方向に貫いてメッキ部分45が形成されているため、銅厚が非常に厚い。また、ビアホール44,44,…の外部42cは、絶縁層422,422,…を介在して導電層421,421,…が積層されているため、銅厚がビアホール44の中央部42a及び内周部42b夫々に係る厚さの中間程度である。
この結果、放熱基板41の一面に直交する方向、即ち積層体423の積層方向にX線を照射した場合、ビアホール44の中央部42a、内周部42b、及び外部42cの夫々におけるX線吸収率(又はX線透過率)は異なる。
次に、気泡率演算装置3の構成について説明する。
図1及び図2に示すように、演算装置1は、CPU10、ROM11、RAM12、表示部13、操作部14、HDD(ハードディスク)15、外部記憶部16及びI/F部17を備え、これらの装置各部はバス、信号線等を介して適宜に接続されている。
I/F部17は、演算装置1と撮影装置2とを電気的に接続するためのインタフェースである。
外部記憶部16は、例えばCD−ROMドライブを用いてなり、可搬性を有する記録媒体(例えば本実施の形態のコンピュータプログラムが記録されているCD−ROM30)からコンピュータプログラム及び/又はデータを読み込む。
図1及び図2に示すように、演算装置1は、CPU10、ROM11、RAM12、表示部13、操作部14、HDD(ハードディスク)15、外部記憶部16及びI/F部17を備え、これらの装置各部はバス、信号線等を介して適宜に接続されている。
I/F部17は、演算装置1と撮影装置2とを電気的に接続するためのインタフェースである。
外部記憶部16は、例えばCD−ROMドライブを用いてなり、可搬性を有する記録媒体(例えば本実施の形態のコンピュータプログラムが記録されているCD−ROM30)からコンピュータプログラム及び/又はデータを読み込む。
HDD15は気泡率演算装置3の補助記憶部であり、HDD15に対して、各種のコンピュータプログラム及びデータが読み書きされる。更に詳細には、HDD15には、本実施の形態の気泡率演算方法を、コンピュータのハードウェア要素を用いてソフトウェア的に実現させるコンピュータプログラムが記憶されている。また、HDD15には、本実施の形態の気泡率演算方法を実行する場合に必要なデータとして、後述するマスク画像が記憶されている。
HDD15に対して読み書きされるコンピュータプログラム及びデータは、外部記憶部16を用いて記録媒体から読み込んだものであってもよく、LANを介して受信したものであってもよく、演算装置1で生成されたものであってもよい。
HDD15に対して読み書きされるコンピュータプログラム及びデータは、外部記憶部16を用いて記録媒体から読み込んだものであってもよく、LANを介して受信したものであってもよく、演算装置1で生成されたものであってもよい。
CPU10は、気泡率演算装置3の制御中枢であり、主記憶部であるRAM12を作業領域として用い、ROM11並びにHDD15に記憶されたコンピュータプログラム及びデータに従って装置各部を制御し、各種処理を実行する。例えばCPU10は、I/F部17を介して、撮影装置2の動作を制御するための制御信号を撮影装置2へ出力する。
表示部13は、例えば液晶ディスプレイを用いてなり、CPU10に制御されて、気泡率演算装置3の作動状態を示すメッセージ、ユーザに対する各種の指示を示すメッセージ等を表示する。操作部14は、例えばキーボード及びマウスを用いてなる。
表示部13は、例えば液晶ディスプレイを用いてなり、CPU10に制御されて、気泡率演算装置3の作動状態を示すメッセージ、ユーザに対する各種の指示を示すメッセージ等を表示する。操作部14は、例えばキーボード及びマウスを用いてなる。
撮影装置2は、装置内部に対して半導体装置4を出し入れするための開口部2aを筐体側面に有する。
撮影装置2は、X線源21、X線コントローラ22、カメラ23、及び画像処理部24を備える。X線源21は、演算装置1から制御信号が入力されたX線コントローラ22に動作制御されて、撮影装置2の内部に載置された半導体装置4に対し、半導体素子41側から放熱基板42に対して垂直にX線21aを照射する。
撮影装置2は、X線源21、X線コントローラ22、カメラ23、及び画像処理部24を備える。X線源21は、演算装置1から制御信号が入力されたX線コントローラ22に動作制御されて、撮影装置2の内部に載置された半導体装置4に対し、半導体素子41側から放熱基板42に対して垂直にX線21aを照射する。
カメラ23及び画像処理部24も、夫々演算装置1から制御信号が入力された場合に作動する。カメラ23は、半導体装置4を透過したX線21aを受光して、受光結果であるアナログ信号を画像処理部24へ出力する。画像処理部24は、カメラ23から入力されたアナログ信号に、A/D変換、歪み補正等の画像処理を施し、画像処理の結果として、多値のX線画像を演算装置1へ出力する。
撮影装置2から演算装置1に入力されるX線画像には、半導体装置4の半導体素子41と放熱基板42の一面とが接合されている接合領域の状態を示す画像(以下、領域画像という)が含まれており、半田層43に気泡が混入している場合、領域画像には、接合領域に存在する気泡を示す画像が含まれる。
気泡率演算装置3のユーザは、開口部2aを通して撮影装置2の内部に半導体装置4を載置し、表示部13を視認しながら操作部14を操作することによってX線撮影を開始させる。撮影結果であるX線画像は表示部13に表示され、また、気泡演算結果である気泡率も表示部13に表示される。ユーザは表示部13に表示された気泡率を参照して、半導体装置4の合否を判断する。
なお、X線画像は、気泡率演算装置3とは別体のX線撮影装置で撮影されたものが演算装置1に入力される構成でもよい。この場合、気泡率演算装置3は撮影装置2を備えている必要はない。また、演算装置1が有する撮影装置2の動作制御機能、及び気泡の有無を検出して気泡率を算出する気泡率演算機能等を、撮影装置2が有している構成でもよい。この場合、気泡率演算装置3は演算装置1を備えている必要はない。
図4及び図5は、気泡率演算装置3で実行される気泡演算処理の手順を示すフローチャートである。CPU10は、操作部14を用いたユーザの操作に従って、気泡演算処理の実行を開始する。
まずCPU10は、X線撮影を開始させる制御信号を撮影装置2へ出力することによって、半導体装置4をX線撮影する(S11)。
次いで、CPU10は、撮影装置2から入力されたX線画像をHDD15に記憶させる(S12)。
以下では、X線画像の主走査方向をx軸の順方向、副走査方向をy軸の順方向とする。
まずCPU10は、X線撮影を開始させる制御信号を撮影装置2へ出力することによって、半導体装置4をX線撮影する(S11)。
次いで、CPU10は、撮影装置2から入力されたX線画像をHDD15に記憶させる(S12)。
以下では、X線画像の主走査方向をx軸の順方向、副走査方向をy軸の順方向とする。
図6は、気泡率演算装置3で撮影されたX線画像の一例を示す模式図である。
図中60は領域画像であり、領域画像60は、撮影装置2から演算装置1に入力されたX線画像600に含まれている。X線画像600の各画素は、“0.00”以上“1.00”以下の多値の画素値を有する。図中、縦9マス、横12マス(108マス)の正方形夫々は、領域画像60に含まれている個々の画素を示す。ここで、領域画像60の外形状(即ち領域画像60の周縁画素によって形成される形状)は、放熱基板42の外形状(即ち放熱基板42の周縁部の形状)を示す。
図中60は領域画像であり、領域画像60は、撮影装置2から演算装置1に入力されたX線画像600に含まれている。X線画像600の各画素は、“0.00”以上“1.00”以下の多値の画素値を有する。図中、縦9マス、横12マス(108マス)の正方形夫々は、領域画像60に含まれている個々の画素を示す。ここで、領域画像60の外形状(即ち領域画像60の周縁画素によって形成される形状)は、放熱基板42の外形状(即ち放熱基板42の周縁部の形状)を示す。
右上がりの細かいハッチングで示した画素群601,602夫々は、例えば画素値“0.20”を有し、右上がりの粗いハッチングで示した画素群603,604夫々は画素値“0.60”を有し、右下がりの粗いハッチングで示した画素群605は画素値“0.70”を有し、白抜きで示した画素群606,607,608夫々は画素値“0.90”を有し、右下がりの細かいハッチングで示した画素群609は画素値“0.80”を有する。また、X線画像600の領域画像60以外の画素は、画素値“1.00”を有する。
つまり、例えば所定の閾値(例えば“0.95”)と各画素値とを比較し、閾値未満の画素値を有する画素を領域画像60の画素とすることによって、領域画像60と領域画像60以外とを区別し、この結果、放熱基板42の外形状を得ることができる。なお、例えば後述するパターン図データを用いてX線画像中の領域画像を特定する構成でもよい。
ただし、領域画像60については、以下の説明を簡単にするために、画素値及び画素値の配置が極端な例が示されている。
ただし、領域画像60については、以下の説明を簡単にするために、画素値及び画素値の配置が極端な例が示されている。
図4に示すS12の処理終了後、CPU10は、HDD15に記憶してあるX線画像のコピーを読み出してRAM12に展開し、X線画像中の領域画像を特定する(S13)。このとき、X線画像中の領域画像以外をマスキングすることが望ましい。
S13の処理終了後、CPU10は、S13で特定された領域画像を2値化する(S14)。
S14における2値化は、S13で特定された領域画像全体を所定の閾値(例えば“0.30”)で単純に2値化するものであり、閾値以上の画素値を有する画素を画素値“1”とし、閾値未満の画素値を有する画素を画素値“0”とする。S14の処理で2値化が施された領域画像(以下、領域2値画像という)を直接的に用いて気泡の有無を検出することはない。
S14における2値化は、S13で特定された領域画像全体を所定の閾値(例えば“0.30”)で単純に2値化するものであり、閾値以上の画素値を有する画素を画素値“1”とし、閾値未満の画素値を有する画素を画素値“0”とする。S14の処理で2値化が施された領域画像(以下、領域2値画像という)を直接的に用いて気泡の有無を検出することはない。
図7は、気泡率演算装置3で求められる領域2値画像の一例を示す模式図である。
図中61は領域2値画像であり、領域2値画像61は、図6に示す領域画像60を、閾値“0.30”で2値化したものである。図中、縦9マス、横12マス(108マス)の正方形夫々は、領域画像60に含まれている個々の画素であり、各画素は、画素値“0”又は画素値“1”を有する。
図中61は領域2値画像であり、領域2値画像61は、図6に示す領域画像60を、閾値“0.30”で2値化したものである。図中、縦9マス、横12マス(108マス)の正方形夫々は、領域画像60に含まれている個々の画素であり、各画素は、画素値“0”又は画素値“1”を有する。
ハッチングで示した画素群611,612夫々に含まれる各画素は、画素値“0”を有し、画素群611,612以外の画素群に含まれる各画素は、画素値“1”を有する。つまり、画素群611,612は、領域画像60において閾値“0.30”未満の画素値を有している画素群601,602に対応する。また、画素群611,612以外の画素群は、領域画像60において閾値“0.30”以上の画素値を有している画素群603〜609に対応する。
次いで、CPU10は、HDD15からマスク画像を読み出して(S15)、RAM12に展開する。マスク画像は2値画像であり、各ビアホール44の半径及びメッキ部分45の厚さ(以下、メッキ厚という)、並びに放熱基板42の寸法等夫々の値を有するビア設計図データと、放熱基板42にx−y座標系を対応させた場合の放熱基板42の周縁部の座標値及び各ビアホール44の中心座標値等を有するパターン図データとを用いて生成されたものである。
本実施の形態においては、メッキ厚は数百μmである。
本実施の形態においては、メッキ厚は数百μmである。
図8は、気泡率演算装置3で用いられるマスク画像の一例を示す模式図である。
図中62はマスク画像であり、マスク画像62は、演算装置1のHDD15に予め記憶されている。
図中、縦9マス、横12マス(108マス)の正方形夫々は、マスク画像62に含まれている個々の画素であり、各画素は、画素値“0”又は画素値“1”を有する。
ハッチングで示した画素群621,622夫々は、画素値“0”を有し、画素群621,622以外の画素は、画素値“1”を有する。
図中62はマスク画像であり、マスク画像62は、演算装置1のHDD15に予め記憶されている。
図中、縦9マス、横12マス(108マス)の正方形夫々は、マスク画像62に含まれている個々の画素であり、各画素は、画素値“0”又は画素値“1”を有する。
ハッチングで示した画素群621,622夫々は、画素値“0”を有し、画素群621,622以外の画素は、画素値“1”を有する。
画素群621,622夫々は、画素値“0”を有する8個の画素であり、画素値“1”を有する1個の画素を囲繞してロ字状に配されている。画素群621,622夫々には、2個のビアホール44,44夫々の設計上の半径、メッキ厚、及び中心座標が反映されている。
例えば、画素群621に囲まれた領域の中心に位置する画素の座標(3,5)は、ビアホール44の設計上の中心座標を示している。図8及び後述する図9〜図12、図15、図16、図19〜図24、及び図27に示す画素の内、内部に「・」が含まれている画素は、ビアホール44,44夫々の中心座標に対応する座標の画素(以下、中心画素という)を示している。
また、図8に示すように、中心画素から画素群621に含まれる画素の何れか1つまでの画素数は、ビアホール44の設計上の半径(以下、ビア半径という)を示しており、具体的には画素数“1”である。更に、画素群621のビア半径方向の画素数は、設計上のメッキ厚を示しており、具体的には画素数“1”である。
また、図8に示すように、中心画素から画素群621に含まれる画素の何れか1つまでの画素数は、ビアホール44の設計上の半径(以下、ビア半径という)を示しており、具体的には画素数“1”である。更に、画素群621のビア半径方向の画素数は、設計上のメッキ厚を示しており、具体的には画素数“1”である。
更にまた、画素群621,622に囲まれた領域夫々の内部の画素値“1”の画素は、ビアホール44,44夫々の中央部42a(即ち樹脂部分46を含む積層に相当する部分)を示している。画素群621,622は、ビアホール44,44夫々の内周部42b(即ちメッキ部分45に相当する部分)を示している。画素群621,622に囲まれた領域夫々の外部の画素値“1”の画素は、ビアホール44,44夫々の外部42cを示している。
マスク画像62の外形状は、放熱基板42の外形状を示している。
マスク画像62の外形状は、放熱基板42の外形状を示している。
マスク画像62は、設計上の理想的な接合領域を示している。放熱基板42が、ビア設計図及びパターン図に基づいて正確無比に製造された場合、半導体素子41が接合されていない放熱基板42をX線撮影してなる領域画像を2値化したものからマスク画像62を減算すると、減算結果の画像に含まれている各画素の画素値は全て“0”になる。換言すれば、2枚の2値画像が完全に重なる。
従って、図6に示す領域画像60において、図8に示すマスク画像62における画素群621,622に相当する画素をマスキングすることによって、領域画像60に含まれているメッキ部分45,45,…をマスキングすることができる。
従って、図6に示す領域画像60において、図8に示すマスク画像62における画素群621,622に相当する画素をマスキングすることによって、領域画像60に含まれているメッキ部分45,45,…をマスキングすることができる。
しかしながら、実際の放熱基板42には、積層体423の歪み、及びビアホール44,44,…の開口位置のズレ等が生じている。従って、撮影装置2で撮像された半導体装置4が実際に備えている放熱基板42の状態に応じて、マスク画像62を補正する必要がある。
図4に示すS15の処理終了後、CPU10は、領域画像とマスク画像との相対位置を調整した上で、領域画像の各画素の画素値から、マスク画像の対応する画素の画素値を減算して(S16)、後述する中心座標補正値を求め、マスク画像を補正する(S17)。以下では、補正されたマスク画像をマスク補正画像という。
図7に示す領域2値画像61、及び図8に示すマスク画像62の場合、領域2値画像61とマスク画像62との相対位置を調整するために、CPU10は、まず、領域2値画像61及びマスク画像62夫々に含まれる放熱基板42の外形状を基準に、領域2値画像61に設定されるx−y座標系の原点とマスク画像62に設定されるx−y座標系の原点とを一致させる。
次に、例えばマスク画像62の画素群621に対応するビアホール44を注目ビアホールとし、領域2値画像61に対するマスク画像62の相対位置を、x軸方向に“xn ”及びy軸方向に“yn ”夫々ずらした状態で、領域2値画像61からマスク画像62を減算する。
ただし、注目ビアホールのビア半径に相当する画素数を“N”とすると、位置ズレ量(xn ,yn )は、−N≦xn ,yn ≦Nの整数であり、xn ≠yn の場合もxn =yn の場合もある。位置ズレ量(0,0)の場合、領域2値画像61に対するマスク画像62の相対位置は変更されず、領域2値画像61とマスク画像62との原点が一致した状態のままである。
ただし、注目ビアホールのビア半径に相当する画素数を“N”とすると、位置ズレ量(xn ,yn )は、−N≦xn ,yn ≦Nの整数であり、xn ≠yn の場合もxn =yn の場合もある。位置ズレ量(0,0)の場合、領域2値画像61に対するマスク画像62の相対位置は変更されず、領域2値画像61とマスク画像62との原点が一致した状態のままである。
ここで、位置ズレ量の最大値を注目ビアホールのビア半径までに制限する理由は、注目ビアホールの設計上の開口位置と実際の開口位置とが、大幅に異なることは考えられないからである。仮に、位置ズレ量の最大値を無駄に大きく設定した場合、演算時間が長くなるという問題が生じる。
領域2値画像61から位置ズレ量(xn ,yn )のマスク画像62を減算してなる減算画像の各画素は、画素値“0”、画素値“1”又は画素値“−1”を有する。CPU10は、領域2値画像61における注目ビアホールの中心画素を中心とする縦{4N+1}画素、横{4N+1}画素の範囲(即ち、注目ビアホールの中心画素から注目ビアホールの直径分の画素までの範囲)について、画素値“1”の画素の個数と画素値“−1”の画素の個数との合計数を求め、求めた合計数が最も小さい位置ズレ量(xn ,yn )を、注目ビアホールの中心座標補正値とする。
図9は、気泡率演算装置3で用いられる減算画像の一例を示す模式図である。
図中63は減算画像であり、減算画像63は、図7に示す領域2値画像61から位置ズレ量(0,0)のマスク画像62(図8参照)を減算してなる。図中、右下がりの粗いハッチングで示した画素は画素値“0”を有し、白抜きで示した画素は画素値“1”を有し、右上がりの細かいハッチングで示した画素は画素値“−1”を有する。
図中63は減算画像であり、減算画像63は、図7に示す領域2値画像61から位置ズレ量(0,0)のマスク画像62(図8参照)を減算してなる。図中、右下がりの粗いハッチングで示した画素は画素値“0”を有し、白抜きで示した画素は画素値“1”を有し、右上がりの細かいハッチングで示した画素は画素値“−1”を有する。
位置ズレ量(0,0)の場合、マスク画像62の画素群621に対応するビアホール44(以下、左上のビアホール44という)が注目ビアホールであるとき、座標(3,5)を中心とする5画素×5画素の範囲(以下、25画素という)について、減算結果の合計数は“11”である。
一方、マスク画像62の画素群622に対応するビアホール44(以下、右下のビアホール44という)が注目ビアホールであるとき、座標(8,3)を中心とする25画素について、減算結果の合計数は“5”である。
同様に、位置ズレ量(−1,1)の場合、左上のビアホール44が注目ビアホールであるとき、座標(3,5)を中心とする25画素について、減算結果の合計数は“1”である。
一方、マスク画像62の画素群622に対応するビアホール44(以下、右下のビアホール44という)が注目ビアホールであるとき、座標(8,3)を中心とする25画素について、減算結果の合計数は“5”である。
同様に、位置ズレ量(−1,1)の場合、左上のビアホール44が注目ビアホールであるとき、座標(3,5)を中心とする25画素について、減算結果の合計数は“1”である。
一方、右下のビアホール44が注目ビアホールであるとき、座標(8,3)を中心とする25画素について、減算結果の合計数は“17”である。
位置ズレ量(0,1)の場合、左上のビアホール44に係る減算結果の合計数は“9”である。一方、右下のビアホール44に係る減算結果の合計数は“11”である。
位置ズレ量(1,1)の場合、左上のビアホール44に係る減算結果の合計数は“11”である。一方、右下のビアホール44に係る減算結果の合計数は“17”である。
位置ズレ量(0,1)の場合、左上のビアホール44に係る減算結果の合計数は“9”である。一方、右下のビアホール44に係る減算結果の合計数は“11”である。
位置ズレ量(1,1)の場合、左上のビアホール44に係る減算結果の合計数は“11”である。一方、右下のビアホール44に係る減算結果の合計数は“17”である。
位置ズレ量(−1,0)の場合、左上のビアホール44に係る減算結果の合計数は“7”である。一方、右下のビアホール44に係る減算結果の合計数は“13”である。
位置ズレ量(1,0)の場合、左上のビアホール44に係る減算結果の合計数は“11”である。一方、右下のビアホール44に係る減算結果の合計数は“11”である。
位置ズレ量(−1,−1)の場合、左上のビアホール44に係る減算結果の合計数は“9”である。一方、右下のビアホール44に係る減算結果の合計数は“13”である。
位置ズレ量(1,0)の場合、左上のビアホール44に係る減算結果の合計数は“11”である。一方、右下のビアホール44に係る減算結果の合計数は“11”である。
位置ズレ量(−1,−1)の場合、左上のビアホール44に係る減算結果の合計数は“9”である。一方、右下のビアホール44に係る減算結果の合計数は“13”である。
位置ズレ量(0,−1)の場合、左上のビアホール44に係る減算結果の合計数は“11”である。一方、右下のビアホール44に係る減算結果の合計数は“7”である。
位置ズレ量(1,−1)の場合、左上のビアホール44に係る減算結果の合計数は“13”である。一方、右下のビアホール44に係る減算結果の合計数は“7”である。
以上の結果、CPU10は、左上のビアホール44について、合計数が“1”である位置ズレ量(−1,1)を中心座標補正値(xr ,yr )とし、右下のビアホール44について、合計数が“5”である位置ズレ量(0,0)を中心座標補正値(xr ,yr )とする。
位置ズレ量(1,−1)の場合、左上のビアホール44に係る減算結果の合計数は“13”である。一方、右下のビアホール44に係る減算結果の合計数は“7”である。
以上の結果、CPU10は、左上のビアホール44について、合計数が“1”である位置ズレ量(−1,1)を中心座標補正値(xr ,yr )とし、右下のビアホール44について、合計数が“5”である位置ズレ量(0,0)を中心座標補正値(xr ,yr )とする。
複数の位置ズレ量について、最小の合計数が同数である場合、CPU10は、複数の位置ズレ量の中から中心座標補正値をランダムに選んでもよく、例えば他のビアホール44の中心座標補正値を参照して適宜の中心座標補正値を選んでもよい。
図10は、気泡率演算装置3で求められるマスク補正画像の一例を示す模式図である。
図中64はマスク補正画像であり、マスク補正画像64は、各ビアホール44の中心座標補正値(xr ,yr )に基づいて、図8に示すマスク画像62を補正してなる。
図中、縦9マス、横12マス(108マス)の正方形夫々は、マスク補正画像64に含まれている個々の画素であり、各画素は、“0”及び“1”の何れかの値を有する画素値を有する。
ハッチングで示した画素群641,642夫々は、画素値“0”を有し、画素群641,642以外の画素は、画素値“1”を有する。
図中64はマスク補正画像であり、マスク補正画像64は、各ビアホール44の中心座標補正値(xr ,yr )に基づいて、図8に示すマスク画像62を補正してなる。
図中、縦9マス、横12マス(108マス)の正方形夫々は、マスク補正画像64に含まれている個々の画素であり、各画素は、“0”及び“1”の何れかの値を有する画素値を有する。
ハッチングで示した画素群641,642夫々は、画素値“0”を有し、画素群641,642以外の画素は、画素値“1”を有する。
画素群641は、マスク画像62において、左上のビアホール44に対応する画素群621を、中心座標補正値(−1,1)に基づいて補正したものであり、画素群621の中心画素が座標(3,5)であるため、マスク補正画像64における画素群641の中心画素は座標(2,6)である。換言すれば、図中白抜矢符で示したように、中心画素を座標(3,5)から座標(2,6)へ移動させたかたちとなる。
画素群642は、マスク画像62において、右下のビアホール44に対応する画素群622を、中心座標補正値(0,0)に基づいて補正したものであり、画素群621の中心画素が座標(8,3)であるため、マスク補正画像64における画素群642の中心画素も座標(8,3)である。
画素群642は、マスク画像62において、右下のビアホール44に対応する画素群622を、中心座標補正値(0,0)に基づいて補正したものであり、画素群621の中心画素が座標(8,3)であるため、マスク補正画像64における画素群642の中心画素も座標(8,3)である。
以上のように、CPU10は、領域画像を用いて、マスク画像を補正する。ところで、本実施の形態における気泡率演算装置3では、半導体素子41が接合された放熱基板42をX線撮影してなる領域画像が用いられているが、これに限らず、半導体素子41が接合されていない放熱基板42をX線撮影してなる領域画像が用いられてもよい。この場合、半導体装置41、半田層43、及び半田層43に混入した気泡等の影響を受けないため、より正確にマスク画像を補正することができる。
図4に示すS17の処理終了後、CPU10は、領域画像において、マスク補正画像の画素値“0”を有する画素群に相当する画素をマスキングすることによって、領域画像に含まれているメッキ部分45,45,…をマスキングする(S18)。以下では、マスク補正画像に基づいてマスキングされた領域画像をマスキング画像という。
図11は、気泡率演算装置3で求められるマスキング画像の一例を示す模式図である。
図中65はマスキング画像であり、マスキング画像65は、図10に示すマスク補正画像64に基づいて、図6に示す領域画像60をマスキングしてなる。
図中、交差するハッチングで示した画素群651,652夫々は、マスキングされた画素を有し、右上がりの細かいハッチングで示した画素群650は画素値“0.20”を有し、右上がりの粗いハッチングで示した画素群653,654夫々は画素値“0.60”を有し、右下がりの粗いハッチングで示した画素群655は画素値“0.70”を有し、白抜きで示した画素群656,657,658夫々は画素値“0.90”をし、右下がりの細かいハッチングで示した画素群659は画素値“0.80”を有する。
図中65はマスキング画像であり、マスキング画像65は、図10に示すマスク補正画像64に基づいて、図6に示す領域画像60をマスキングしてなる。
図中、交差するハッチングで示した画素群651,652夫々は、マスキングされた画素を有し、右上がりの細かいハッチングで示した画素群650は画素値“0.20”を有し、右上がりの粗いハッチングで示した画素群653,654夫々は画素値“0.60”を有し、右下がりの粗いハッチングで示した画素群655は画素値“0.70”を有し、白抜きで示した画素群656,657,658夫々は画素値“0.90”をし、右下がりの細かいハッチングで示した画素群659は画素値“0.80”を有する。
マスキングされた画素群651は、左上のビアホール44のメッキ部分45に対応し、画素群652は、右下のビアホール44のメッキ部分45に対応する。このように、マスキングされた画素(以下、マスク画素という)夫々は、何れかひとつのビアホール44のメッキ部分45に対応する。このため、画素群651に囲まれた領域は左上のビアホール44の内側の領域に対応し、画素群652に囲まれた領域は右下のビアホール44の内側の領域に対応し、画素群651,652を除き、画素群651,652の何れにも囲まれていない領域は、ビアホール44,44の外側の領域に対応する。
図4に示すS18の処理終了後、CPU10は、マスキング画像を2値化して2値画像を生成する(S19)。
S19の処理で実行される2値化は、例えば図11に示すマスキング画像65を、マスキングされている画素群651,652を除いて、所定の閾値で2値化するものであり、閾値以上の画素値を有する画素を画素値“1”とし、閾値未満の画素値を有する画素を画素値“0”とする。
S19の処理で実行される2値化は、例えば図11に示すマスキング画像65を、マスキングされている画素群651,652を除いて、所定の閾値で2値化するものであり、閾値以上の画素値を有する画素を画素値“1”とし、閾値未満の画素値を有する画素を画素値“0”とする。
ただし、画素群651,652夫々に囲まれている画素(具体的には座標(2,6),(8,3)の画素)を2値化する閾値Iと、この画素以外の画素を2値化する閾値Oとは、異なるものが用いられる。つまり、ビアホール44の内側の領域と外側の領域とで異なる閾値が用いられる。何故ならば、図3に示すように、ビアホール44の中央部42aにおいては銅厚が薄く、外部42cにおいては銅厚が厚いからである。このため、ビアホール44の内側の領域(即ち透過率が高い領域)に適用される閾値Iは、ビアホール44の外側の領域(即ち透過率が低い領域)に適用される閾値Oよりも大きい値に設定される。つまり、閾値O<閾値Iである。
なお、閾値I,Oが同値であってもよい。ただし、1種類の閾値で2値化するためには、ビアホール44の内側及び外側夫々のX線透過率の差異を、マスキング画像65上で補正してから2値化する必要がある。
また、S14の処理で用いられる閾値とS19の処理で用いられる閾値とは、同値であっても異なっていてもよい。
また、S14の処理で用いられる閾値とS19の処理で用いられる閾値とは、同値であっても異なっていてもよい。
図12は、図11に示すマスキング画像65を2値化して求められる2値画像の一例を示す模式図である。
図中68は2値画像であり、2値画像68は、図11に示すマスキング画像65に基づいて、画素群651,652夫々に囲まれている画素に対して閾値I=“0.85”を適用し、この画素以外の画素に対して閾値O=“0.75”を適用して2値化してなる。
図12中、交差するハッチングで示した画素群681,682夫々は、マスキングされた画素を示し、右上がりのハッチングで示した画素群683に含まれる各画素は画素値“0”を有し、白抜きで示した画素群686,687,688夫々に含まれる各画素は画素値“1”を有する。
図中68は2値画像であり、2値画像68は、図11に示すマスキング画像65に基づいて、画素群651,652夫々に囲まれている画素に対して閾値I=“0.85”を適用し、この画素以外の画素に対して閾値O=“0.75”を適用して2値化してなる。
図12中、交差するハッチングで示した画素群681,682夫々は、マスキングされた画素を示し、右上がりのハッチングで示した画素群683に含まれる各画素は画素値“0”を有し、白抜きで示した画素群686,687,688夫々に含まれる各画素は画素値“1”を有する。
ところで、図11に示すマスキング画像65について、ビアホール44の内側の領域である座標(2,6)の画素は、気泡の画素ではない。しかしながら、仮に、マスキング画像65を閾値Oのみで2値化した場合、座標(2,6)の画素は画素値が“1”になるため、後述するS20の処理で、気泡の画素であると判定されてしまう。何故ならば、ビアホール44の中央部42aは、半田層43に気泡が混入していなくてもX線の透過率が高いためである。逆に、マスキング画像65を閾値Iのみで2値化した場合、ビアホール44の外部42cは、半田層43に気泡が混入していても透過率が低いため、ビアホール44の外側の領域について、気泡の画素が、気泡の画素ではないと判定されてしまう。
S19の処理終了後、CPU10は、メッキ部分45,45,…を除く接合領域に位置する気泡(以下、領域気泡という)の有無を検出する領域気泡検出を行なう(S20)。
具体的には、CPU10は、マスキングされた画素群を除いて、各画素の画素値が“1”であるか“0”であるかを判定し、画素値が“1”であると判定された画素の座標値をRAM12に記憶させ、更に、この画素の画素数を計数する。この画素数は、領域気泡の画素数である。何故ならば、画素値“1”を有する画素とは領域気泡の画素(以下、気泡画素という)であり、気泡画素が0個であれば、領域気泡は存在せず、気泡画素が1個以上であれば、領域気泡が存在するからである。
具体的には、CPU10は、マスキングされた画素群を除いて、各画素の画素値が“1”であるか“0”であるかを判定し、画素値が“1”であると判定された画素の座標値をRAM12に記憶させ、更に、この画素の画素数を計数する。この画素数は、領域気泡の画素数である。何故ならば、画素値“1”を有する画素とは領域気泡の画素(以下、気泡画素という)であり、気泡画素が0個であれば、領域気泡は存在せず、気泡画素が1個以上であれば、領域気泡が存在するからである。
図12に示す2値画像68の場合、画素群686,687,688夫々に含まれる各画素が領域気泡に相当し、この領域気泡の画素数は“7”である。
仮に、この時点で気泡率を算出する場合、検出された領域気泡の画素数“7”を、2値画像68の全画素数“108”(=12×9)で除算するため、気泡率は約6.48%である。しかしながら、この時点ではメッキ部分45,45に位置する気泡(以下、部分気泡という)の画素数が全く考慮されていないため、正確な気泡率は得られない。
仮に、この時点で気泡率を算出する場合、検出された領域気泡の画素数“7”を、2値画像68の全画素数“108”(=12×9)で除算するため、気泡率は約6.48%である。しかしながら、この時点ではメッキ部分45,45に位置する気泡(以下、部分気泡という)の画素数が全く考慮されていないため、正確な気泡率は得られない。
図4に示すS20の処理終了後、CPU10は、図5に示すように、領域気泡が存在するか否かを判定し(S21)、存在する場合(S21でYES)、S22以降の処理を実行する。
図13及び図14は、気泡率演算装置3が検出すべき気泡の一例を示す模式図である。図13及び図14夫々には、ビアホール44の中心座標を原点とするx−y座標系の第1象限が示されている。
図13に示す気泡71は、ビアホール44の外側及びメッキ部分45に亘っている楕円形状であり、ビアホール44の内側には到達していない。一方、気泡72は、ビアホール44の内側及びメッキ部分45に亘っている円形状であり、ビアホール44の外側には到達していない。また、図14に示す気泡73は、ビアホール44の外側、メッキ部分45、及びビアホール44の内側に亘っている涙滴状である。
図13に示す気泡71は、ビアホール44の外側及びメッキ部分45に亘っている楕円形状であり、ビアホール44の内側には到達していない。一方、気泡72は、ビアホール44の内側及びメッキ部分45に亘っている円形状であり、ビアホール44の外側には到達していない。また、図14に示す気泡73は、ビアホール44の外側、メッキ部分45、及びビアホール44の内側に亘っている涙滴状である。
メッキ部分45はマスキングされるため、図13及び図14に示す気泡71〜73夫々の内、メッキ部分45に重ならない部分は、S20の処理が実行されることによって、領域気泡として検出される。しかしながら、メッキ部分45に重なる部分は、S20の処理が実行されても領域気泡として検出されないため、別途検出する必要がある。
ところで、半田の表面張力によって、半田層43に混入した気泡は、円形状、楕円形状、又は涙滴状等の丸い形をなすことが多い。本実施の形態の気泡率演算方法は、このような性質を利用して、メッキ部分45に位置する部分気泡の有無を検出するものである。
ところで、半田の表面張力によって、半田層43に混入した気泡は、円形状、楕円形状、又は涙滴状等の丸い形をなすことが多い。本実施の形態の気泡率演算方法は、このような性質を利用して、メッキ部分45に位置する部分気泡の有無を検出するものである。
図13に示す気泡71は、メッキ部分45のビアホール44の周方向の同一位置におけるビアホール44の外側のみに接している。
このような気泡71については、気泡71の気泡周縁部とメッキ部分45との交点711,712を通るメッキ部分45の法線713,714が求められる。法線713(法線714)は、ビアホール44の中心点と交点711(交点712)とを結ぶ直線である。
また、交点711,712を通る気泡71の気泡周縁部の接線715,716が求められる。
このような気泡71については、気泡71の気泡周縁部とメッキ部分45との交点711,712を通るメッキ部分45の法線713,714が求められる。法線713(法線714)は、ビアホール44の中心点と交点711(交点712)とを結ぶ直線である。
また、交点711,712を通る気泡71の気泡周縁部の接線715,716が求められる。
そして、法線713,714及び接線715,716の内、気泡71の気泡周縁部とメッキ部分45との交点を同一としない(即ち、交点が互いに異なる位置に存在する)2本の直線の組み合わせが選択される。この場合、法線713,714の組み合わせと、法線713及び接線716の組み合わせと、法線714及び接線715の組み合わせと、接線715,716の組み合わせとが選択され、交点711で交差する法線713及び接線715の組み合わせと、交点712で交差する法線714及び接線716の組み合わせとは除外される。
選択された2本の直線で囲まれ、且つ、メッキ部分45に位置する領域の内、最も面積が小さい領域は、法線713及び接線716の組み合わせに係る領域(縦ハッチングで示されている領域)である。従って、この領域が部分気泡であると認定される。何故ならば、この領域の形状が、メッキ部分45に位置する気泡71の形状に最も類似しているからである。
一方、気泡72は、メッキ部分45のビアホール44の周方向の同一位置におけるビアホール44の内側のみに接している。
このような気泡72については、気泡72の気泡周縁部とメッキ部分45との交点721,722を通るメッキ部分45の法線723,724が求められる。法線723(法線724)は、ビアホール44の中心点と交点721(交点722)とを結ぶ直線である。
また、交点721,722を通る気泡72の気泡周縁部の接線725,726が求められる。
このような気泡72については、気泡72の気泡周縁部とメッキ部分45との交点721,722を通るメッキ部分45の法線723,724が求められる。法線723(法線724)は、ビアホール44の中心点と交点721(交点722)とを結ぶ直線である。
また、交点721,722を通る気泡72の気泡周縁部の接線725,726が求められる。
そして、法線723,724及び接線725,726の内、気泡72の気泡周縁部とメッキ部分45との交点を同一としない2本の直線の組み合わせが選択される。この場合、法線723,724の組み合わせと、法線723及び接線726の組み合わせと、法線724及び接線725の組み合わせと、接線725,726の組み合わせとが選択され、交点721で交差する法線723及び接線725の組み合わせと、交点722で交差する法線724及び接線726の組み合わせとは除外される。
選択された2本の直線で囲まれ、且つ、メッキ部分45に位置する領域の内、最も面積が小さい領域は、法線723,724の組み合わせに係る領域(横ハッチングで示されている領域)である。従って、この領域が部分気泡であると認定される。何故ならば、この領域の形状が、メッキ部分45に位置する気泡72の形状に最も類似しているからである。
図14に示す気泡73は、メッキ部分45のビアホール44の周方向の同一位置におけるビアホール44の外側及び内側の両方に接している。
このような気泡73については、メッキ部分45にビアホール44の外側から接する気泡73の気泡周縁部とメッキ部分45との外側交点731,732が求められ、また、メッキ部分45にビアホール44の内側から接する気泡73の気泡周縁部とメッキ部分45との内側交点733,734が求められる。
このような気泡73については、メッキ部分45にビアホール44の外側から接する気泡73の気泡周縁部とメッキ部分45との外側交点731,732が求められ、また、メッキ部分45にビアホール44の内側から接する気泡73の気泡周縁部とメッキ部分45との内側交点733,734が求められる。
次いで、外側交点731,732の何れかと、内側交点733,734の何れかとを通る直線のうち、外側交点731,732及び内側交点733,734で囲まれる領域(以下、交点囲繞領域という)の外部で交差する2本の直線735,736が求められる。ここで、直線735は外側交点731及び内側交点733を通り、直線736は外側交点732及び内側交点734を通る。
ここで、外側交点731及び内側交点734を通る直線737と、外側交点732及び内側交点733を通る直線738との組み合わせは、交点囲繞領域の内部で交差し、直線735と直線737との組み合わせは、外側交点731で交差し、直線736と直線738との組み合わせは、外側交点732で交差するため、夫々除外される。同様に、直線735と直線738との組み合わせは、内側交点733で交差し、直線736と直線737との組み合わせは、内側交点734で交差するため、夫々除外される。
ところで、外側交点731,732を通る直線、及び、内側交点733,734を通る直線は、当然除外される。
ところで、外側交点731,732を通る直線、及び、内側交点733,734を通る直線は、当然除外される。
最後に、演算された2本の直線735,736で囲まれ、且つ、メッキ部分45に位置する領域(ハッチングで示されている領域)領域が、部分気泡であると認定される。何故ならば、この領域の形状が、メッキ部分45に位置する気泡73の形状に最も類似しているからである。
図13及び図14では、気泡71〜73夫々の形状が予め判明している場合を例示して説明した。しかしながら、実際の気泡演算処理においては、S21の処理でYESと判定された段階では、図13及び図14に示すメッキ部分45に位置する気泡71〜73夫々の形状は判明していない。
ここで、気泡画素が上下左右に連続している領域は、一塊の気泡であると容易に判定することができる。
ここで、気泡画素が上下左右に連続している領域は、一塊の気泡であると容易に判定することができる。
ビアホール44に接していない一塊の気泡は、単一の気泡であると容易に判定することができるが、ビアホール44に外側(又は内側)から接する気泡は、単一の気泡なのか、ビアホール44に内側(又は外側)から接する他の気泡も含めて単一の気泡なのかを判定する必要がある。
このために、気泡の気泡周縁部とメッキ部分との交点を通るメッキ部分の法線で囲まれるメッキ部分(以下、法線囲繞部分という)が、他の気泡に係る法線囲繞部分に重なっている(即ち、一の法線囲繞部分に含まれる画素が、他の法線囲繞部分にも含まれている)か否かが判定される。
図13の場合、交点711,712を通るメッキ部分45の法線713,714で囲まれる法線囲繞部分と、交点721,722を通るメッキ部分45の法線723,724で囲まれる法線囲繞部分とは、他の法線囲繞部分とは重なっていない。従って、ビアホール44に外側から接する気泡及び内側から接する気泡は、夫々単一の気泡(即ち気泡71,72)であると判定される。
図13の場合、交点711,712を通るメッキ部分45の法線713,714で囲まれる法線囲繞部分と、交点721,722を通るメッキ部分45の法線723,724で囲まれる法線囲繞部分とは、他の法線囲繞部分とは重なっていない。従って、ビアホール44に外側から接する気泡及び内側から接する気泡は、夫々単一の気泡(即ち気泡71,72)であると判定される。
図14の場合、外側交点731,732を通るメッキ部分45の法線73a,73bで囲まれる法線囲繞部分と、内側交点733,734を通るメッキ部分45の法線73c,73dで囲まれる法線囲繞部分とは、部分的に重なっている。従って、ビアホール44に外側から接する気泡及び内側から接する気泡は、両方を合わせて単一の気泡(即ち気泡73)である。
以上のようにして部分気泡を求める手順を、デジタルデータを用いた画像処理に適用する場合は、例えば、後述する図15、図16及び図19〜図24に示すような手順となる。
以上のようにして部分気泡を求める手順を、デジタルデータを用いた画像処理に適用する場合は、例えば、後述する図15、図16及び図19〜図24に示すような手順となる。
図15は、気泡率演算装置3で生成される2値画像の一例を示す模式図である。
図中66は2値画像であり、2値画像66は、S19の処理でマスキング画像を2値化してなる。図中、右上がりのハッチングで夫々示した18個の画素661,661,…はマスク画素であり、白抜きで夫々示した25個の画素662,662,…は、画素値“1”を有し、右下がりのハッチングで夫々示した画素663,663,…は、画素値“0”を有する。従って、画素662,662,…は、夫々気泡画素である。
図中66は2値画像であり、2値画像66は、S19の処理でマスキング画像を2値化してなる。図中、右上がりのハッチングで夫々示した18個の画素661,661,…はマスク画素であり、白抜きで夫々示した25個の画素662,662,…は、画素値“1”を有し、右下がりのハッチングで夫々示した画素663,663,…は、画素値“0”を有する。従って、画素662,662,…は、夫々気泡画素である。
マスク画素661,661,…は、このマスク画素661,661,…に対応するビアホール44のメッキ部分45の1/4分に相当し、図15には、このビアホール44の中心座標を原点とするx−y座標系の第1象限が示されている。ここで、中心画素は座標(0,0)の画素663とする。以下では、この画素663を中心画素660という。
図16は、気泡率演算装置3で生成される2値画像の他の一例を示す模式図である。
図中67は2値画像であり、2値画像67は、S19の処理でマスキング画像を2値化してなる。18個のマスク画素671,671,…は右上がりのハッチングで図示され、画素値“1”を有する25個の気泡画素672,672,…及び8個の気泡画素678,678,…が白抜きで図示され、画素値“0”を有する中心画素670及び画素673,673,…は右下がりのハッチングで図示されている。
マスク画素671,671,…は、このマスク画素671,671,…に対応するビアホール44のメッキ部分45の1/4分に相当し、図16には、このビアホール44の中心座標を原点とするx−y座標系の第1象限が示されている。
図中67は2値画像であり、2値画像67は、S19の処理でマスキング画像を2値化してなる。18個のマスク画素671,671,…は右上がりのハッチングで図示され、画素値“1”を有する25個の気泡画素672,672,…及び8個の気泡画素678,678,…が白抜きで図示され、画素値“0”を有する中心画素670及び画素673,673,…は右下がりのハッチングで図示されている。
マスク画素671,671,…は、このマスク画素671,671,…に対応するビアホール44のメッキ部分45の1/4分に相当し、図16には、このビアホール44の中心座標を原点とするx−y座標系の第1象限が示されている。
図5に示すS21でYESの場合、CPU10は、S20の処理で検出された領域気泡の内、各メッキ部分45に接している気泡(以下、接触気泡という)の有無を検出する(S22)。
S20では、1個以上の気泡画素の座標値がRAM12に記憶されるか、又は、座標値が記憶されない。従って、気泡画素の座標値がRAM12に記憶されていない場合、領域気泡が存在しないため、接触気泡は存在しないものとし、1個以上の気泡画素の座標値がRAM12に記憶されている場合、接触気泡が存在する可能性があるものとする。
S20では、1個以上の気泡画素の座標値がRAM12に記憶されるか、又は、座標値が記憶されない。従って、気泡画素の座標値がRAM12に記憶されていない場合、領域気泡が存在しないため、接触気泡は存在しないものとし、1個以上の気泡画素の座標値がRAM12に記憶されている場合、接触気泡が存在する可能性があるものとする。
S22の処理終了後、CPU10は、接触気泡が存在するか否かを判定し(S23)、存在する場合(S23でYES)、接触気泡の範囲を求める(S24)。
S23におけるCPU10は、RAM12に記憶されている各気泡画素を注目画素とした周囲8画素の少なくとも1画素がマスク画素であるか否かを判定し、周囲8画素の少なくとも1画素がマスク画素であると判定された注目画素を、マスク画素に接する気泡画素(以下、接触気泡画素という)としてRAM12に記憶させる。
S23におけるCPU10は、RAM12に記憶されている各気泡画素を注目画素とした周囲8画素の少なくとも1画素がマスク画素であるか否かを判定し、周囲8画素の少なくとも1画素がマスク画素であると判定された注目画素を、マスク画素に接する気泡画素(以下、接触気泡画素という)としてRAM12に記憶させる。
このように、接触気泡画素は、接触気泡に含まれる画素であり、マスク画素と少なくとも一点で接触する。換言すれば、接触気泡画素は、4個の頂点の内の少なくとも1個を、マスク画素と共有する。なお、注目画素の周囲4画素の少なくとも1画素がマスク画素であるか否かを判定する構成でもよい。この場合、接触気泡画素は、マスク画素と少なくとも1辺で接触する。
以下では、接触気泡画素ではない気泡画素(マスク画素に接していない気泡画素)を非接触気泡画素といい、接触気泡画素と非接触気泡画素とを区別しない場合に、単に気泡画素という。
以下では、接触気泡画素ではない気泡画素(マスク画素に接していない気泡画素)を非接触気泡画素といい、接触気泡画素と非接触気泡画素とを区別しない場合に、単に気泡画素という。
例えば図15に示す座標(4,6)の気泡画素662、並びに、図16に示す座標(4,6)の気泡画素672及び座標(1,3)の気泡画素678は、夫々接触気泡画素である。S24では、これらのような接触気泡画素を含む1個の接触気泡を求める。
具体的には、S24におけるCPU10は、各接触気泡画素について、この接触気泡画素が、この接触気泡画素に接触しているマスク画素に対応するビアホール44の外側に位置するか内側に位置するか判定する。
具体的には、S24におけるCPU10は、各接触気泡画素について、この接触気泡画素が、この接触気泡画素に接触しているマスク画素に対応するビアホール44の外側に位置するか内側に位置するか判定する。
次いで、各ビアホール44の外側に位置する接触気泡画素夫々について、S24におけるCPU10は、この接触気泡画素を注目画素とした周囲8画素に気泡画素が含まれているか否かを判定し、含まれていると判定した場合は、この気泡画素を注目画素とした周囲8画素に気泡画素が含まれているか否かを判定することを繰り返す。例えば、図15に示す座標(4,6)の接触気泡画素662を注目画素とした場合、座標(4,5)、座標(4,7)、座標(3,5)〜座標(3,7)、及び座標(5,5)〜座標(5,7)夫々の画素が気泡画素であるか否かが判定され、座標(4,5)、座標(5,5)及び座標(5,6)夫々の画素が気泡画素であるため、次は、例えば座標(5,6)の非接触気泡画素662が注目画素となる。なお、注目画素の周囲4画素に気泡画素が含まれているか否かを判定する構成でもよい。
このようにして、CPU10は、接触気泡画素を出発点としてx軸方向及びy軸方向に気泡画素が連続する領域を求め、求めた領域を、ビアホール44の外側に位置する接触気泡であると認定する。ここで、求めた接触気泡に他の接触気泡画素が含まれている場合、この接触気泡画素を含む気泡画素を新たに求める必要はない。
以上のようにして、図15に示す気泡画素662,662,…、及び図16に示す気泡画素672,672,…は、夫々ビアホール44の外側に位置する接触気泡であると認定される。
以上のようにして、図15に示す気泡画素662,662,…、及び図16に示す気泡画素672,672,…は、夫々ビアホール44の外側に位置する接触気泡であると認定される。
また、各ビアホール44の内側に位置する接触気泡画素夫々についても、CPU10は、同様にして求めた領域を、ビアホール44の内側に位置する接触気泡であると認定する。このため、図16に示す気泡画素678,678,…は、ビアホール44の内側に位置する接触気泡であると認定される。
図5に示すS24の処理完了後、CPU10は、S24で求めた接触気泡夫々について、各接触気泡の気泡周縁部と、この接触気泡が接触しているメッキ部分45との交点画素を演算し(S25)、演算した交点画素を通るメッキ部分45の法線に基づいて、この接触気泡に係る法線囲繞部分を演算する(S26)。更にCPU10は、S26で演算した法線囲繞部分に基づき、S24で求めた各接触気泡が、ビアホール44の外側のみに接している接触気泡であるか、ビアホール44の内側のみに接している接触気泡であるか、又はビアホール44の外側及び内側の両方に接している接触気泡であるか分類する(S27)。
まず、S25におけるCPU10は、例えば図15に示す2値画像66の場合、接触気泡の接触気泡画素662,662,…の内、x座標の座標値が最小且つy座標の座標値が最大の画素を1個目の交点画素とし、x座標の座標値が最大且つy座標の座標値が最小の画素を2個目の交点画素とする。この場合、1個目の交点画素は座標(4,6)の接触気泡画素662であり、2個目の交点画素は座標(7,2)の接触気泡画素662である。
同様に、図16に示す2値画像67の場合、中心画素670を含み、マスク画素671,671,…に囲まれた領域(即ちビアホール44)の外側からマスク画素671,671,…(即ちメッキ部分45)に接している接触気泡について、1個目の交点画素は座標(4,6)の接触気泡画素672であり、2個目の交点画素は座標(7,2)の接触気泡画素672である。また、ビアホール44の内側からマスク画素671,671,…に接している接触気泡について、1個目の交点画素は座標(1,3)の接触気泡画素672であり、2個目の交点画素は座標(3,1)の接触気泡画素672である。
次に、S26におけるCPU10は、例えば図15に示す2値画像66の場合、S25で演算した座標(4,6)の交点及び座標(7,2)の交点夫々と、中心画素660とを通る直線(即ちS25で演算した交点を通るメッキ部分45の法線)を求め、求めた法線(図15中の破線)に囲まれるマスク画素661,661,…(即ち法線囲繞部分という)を演算する。
一方、例えば図16に示す2値画像67の場合、S26におけるCPU10は、ビアホール44の外側からマスク画素671,671,…に接している接触気泡に関して、S25で演算した座標(4,6)の交点及び座標(7,2)の交点夫々と、中心画素670とを通る直線(即ち法線)を求め、求めた法線(図16中の破線)に囲まれるマスク画素671,671,…を演算する。同様に、CPU10は、ビアホール44の内側からマスク画素671,671,…に接している接触気泡に関して、S25で演算した座標(1,3)の交点及び座標(3,1)の交点夫々と、中心画素670とを通る直線(即ち法線)を求め、求めた法線(図16中の二点鎖線)に囲まれるマスク画素671,671,…を演算する。
更に、例えば図15に示す2値画像66の場合、S26で演算した法線囲繞部分に含まれるマスク画素661,661,…が、他の接触気泡に係る法線囲繞部分には含まれないため、S27におけるCPU10は、気泡画素662,662,…が属する接触気泡を、メッキ部分45のビアホール44の周方向の同一位置におけるビアホール44の外側のみに接している接触気泡であると分類する。
一方、図16に示す2値画像67の場合、ビアホール44の外側の接触気泡に係るS26で演算した法線囲繞部分に含まれる一部のマスク画素671,671,…が、ビアホール44の内側の接触気泡に係る法線囲繞部分に含まれるため、CPU10は、気泡画素672,672,…及び気泡画素678,678,…が属する接触気泡を、ビアホール44の外側及び内側の両方に接している接触気泡であると分類する。
以上のような接触気泡の分類に基づき、S27におけるCPU10は、適宜の気泡分類テーブルを生成してRAM12に記憶させる。
以上のような接触気泡の分類に基づき、S27におけるCPU10は、適宜の気泡分類テーブルを生成してRAM12に記憶させる。
図5に示すS27の処理終了後、CPU10は、変数Kを“0”にリセットし(S28)、ビアホール44,44,…の何れか1つを選択し(S29)、選択したビアホール44のメッキ部分45に接している接触気泡の形状に基づいて、この接触気泡の形状の特徴を示す仮想線を求め、求めた仮想線で囲まれ、且つこのメッキ部分45に位置する領域であって、気泡として認定すべき領域の有無を検出する部分気泡検出を行なう(S30)。S30の処理で、CPU10は、部分気泡検出処理を行なうサブルーチン(後述する図17及び図18参照)を呼び出し、実行する。
図17及び図18は、気泡率演算装置3で実行される部分気泡検出処理手順のサブルーチンを示すフローチャートである。
まず、CPU10は、S19の処理で生成された2値画像において、S29で選択したビアホール44(以下、選択ビアホールという)の中心座標に基づいて、選択ビアホールのメッキ部分45に対応するマスク画素を抽出する(S41)。S41の処理では、例えば図15に示す2値画像66の場合、マスク画素661,661,…が抽出され、図16に示す2値画像67の場合、マスク画素671,671,…が抽出される。
まず、CPU10は、S19の処理で生成された2値画像において、S29で選択したビアホール44(以下、選択ビアホールという)の中心座標に基づいて、選択ビアホールのメッキ部分45に対応するマスク画素を抽出する(S41)。S41の処理では、例えば図15に示す2値画像66の場合、マスク画素661,661,…が抽出され、図16に示す2値画像67の場合、マスク画素671,671,…が抽出される。
次に、CPU10は、S27で生成した気泡分類テーブルを参照し、S41で抽出したマスク画素に接する接触気泡が存在するか否かを判定し(S42)、存在しない場合は(S42でNO)、部分気泡検出処理を終了して元のルーチンへ戻す。
S41で抽出したマスク画素に接する接触気泡が存在する場合(S42でYES)、CPU10は、S41で抽出したマスク画素661,661,…に接する接触気泡の内の1個を選択し(S43)、選択した接触気泡が、選択ビアホールの外側及び内側の両方に接している接触気泡であるか否かを判定する(S44)。
S43で選択した気泡が、選択ビアホールの外側又は内側のみに接している接触気泡である場合(S44でNO)、CPU10は、この接触気泡に連続する部分気泡の有無を検出すべく、S46以下の処理を実行する。
S43で選択した気泡が、選択ビアホールの外側又は内側のみに接している接触気泡である場合(S44でNO)、CPU10は、この接触気泡に連続する部分気泡の有無を検出すべく、S46以下の処理を実行する。
以下では、選択ビアホールの中心画素を原点とするx−y座標系の第1象限に、選択ビアホールの外側のみに接している接触気泡が存在する場合(図15参照)について例示する。なお、第2象限〜第4象限の何れかに接触気泡が存在する場合、接触気泡が存在する象限を原点回りに回転させるか、又はx軸若しくはy軸を中心に反転させて、座標軸を第1象限に対応させることによって、同様の処理で部分気泡の有無を検出することが可能である。また、1個の接触気泡が複数の象限に亘って存在する場合であっても、接触気泡と座標軸とが重なる部分を気泡周縁部と看做して複数の象限夫々に同様の処理を施すことによって、部分気泡の有無を検出することが可能である。この場合、マスク領域の法線の1本と接触気泡の接線の1本とが、気泡周縁部と看做された座標軸に一致する。
図19は、図15に示す2値画像66における2本の法線で囲まれる領域を示す模式図である。図20は、2値画像66における一の法線及び接線で囲まれる領域を示す模式図であり、図21は、2値画像66における他の法線及び接線で囲まれる領域を示す模式図である。図22は、2値画像66における2本の接線で囲まれる領域を示す模式図である。
図17に示すS44でNOの場合、CPU10は、S43で選択した接触気泡(以下、選択気泡という)の気泡周縁部と選択ビアホールのメッキ部分45とのS25で演算した交点画素(図19〜図22においては、1個目の交点画素は座標(4,6)の接触気泡画素662、2個目の交点画素は座標(7,2)の接触気泡画素662)を用いて、S46以下の処理を実行する。
図17に示すS44でNOの場合、CPU10は、S43で選択した接触気泡(以下、選択気泡という)の気泡周縁部と選択ビアホールのメッキ部分45とのS25で演算した交点画素(図19〜図22においては、1個目の交点画素は座標(4,6)の接触気泡画素662、2個目の交点画素は座標(7,2)の接触気泡画素662)を用いて、S46以下の処理を実行する。
CPU10は、S25で求めた交点画素が1個のみであるか否かを判定する(S46)。交点画素が1個のみである場合(S46でYES)、選択気泡に連続する部分気泡は存在しない(即ち選択気泡に連続する部分気泡として認定すべき領域の画素数は“0”)と看做すことができるため、処理を後述するS52へ移す。
S25で求めた交点画素が2個以上である場合(S46でNO)、CPU10は、選択ビアホールのメッキ部分45の法線の内、S25で求めた2個の交点画素夫々を通る法線を演算する(S47)。
図15に示す2値画像66の場合、S47におけるCPU10は、選択ビアホールの中心画素(0,0)と、座標(4,6)の交点画素及び座標(7,2)の交点画素夫々とを結ぶ直線を演算する。この結果、図19〜図21に示す法線664,665が求められる。
図15に示す2値画像66の場合、S47におけるCPU10は、選択ビアホールの中心画素(0,0)と、座標(4,6)の交点画素及び座標(7,2)の交点画素夫々とを結ぶ直線を演算する。この結果、図19〜図21に示す法線664,665が求められる。
図17に示すS47の処理終了後、CPU10は、選択気泡の気泡周縁部の接線の内、S25で求めた2個の交点画素夫々を通る接線を演算する(S48)。
図15に示す2値画像66の場合、S48におけるCPU10は、S25で求めた1個目の交点画素に接する接触気泡画素662,662,…の内、x座標の座標値が最小且つy座標の座標値が最大の画素を第1追加画素とし、2個目の交点画素に接する接触気泡画素662,662,…の内、x座標の座標値が最大且つy座標の座標値が最小の画素を第2追加画素とする。
図15に示す2値画像66の場合、S48におけるCPU10は、S25で求めた1個目の交点画素に接する接触気泡画素662,662,…の内、x座標の座標値が最小且つy座標の座標値が最大の画素を第1追加画素とし、2個目の交点画素に接する接触気泡画素662,662,…の内、x座標の座標値が最大且つy座標の座標値が最小の画素を第2追加画素とする。
図19〜図22においては、第1追加画素は座標(4,5)の接触気泡画素662であり、第2追加画素は座標(6,2)の接触気泡画素662である。更に、CPU10は、S25で求めた1個目の交点画素と、第1追加画素とを結ぶ直線、及び、S25で求めた2個目の交点画素と、第2追加画素とを結ぶ直線を演算する。この結果、図20〜図22に示す接線666,667が求められる。
ところで、選択気泡が選択ビアホールの内側のみに接している接触気泡であっても、S48におけるCPU10は、1個目の交点画素に接する接触気泡画素662,662,…の内、x座標の座標値が最小且つy座標の座標値が最大の画素を第1追加画素とし、2個目の交点画素に接する接触気泡画素662,662,…の内、x座標の座標値が最大且つy座標の座標値が最小の画素を第2追加画素とする。
図17に示すS48の処理終了後、CPU10は、各2本の法線及び接線の内、選択気泡の気泡周縁部とメッキ部分45との交点を同一としない2本の直線の組み合わせを選択する(S49)。
図15〜図22に示す2値画像66の場合、法線664,665及び接線666,667夫々が通る画素の内、座標値が同一の交点画素を含む組み合わせが除外される。この結果、法線664,665の組み合わせと、法線664及び接線667の組み合わせと、法線665及び接線666の組み合わせと、接線666,667の組み合わせとが選択され、互いに座標(4,6)の交点画素を通る法線664及び接線666の組み合わせと、互いに座標(7,2)の交点画素を通る法線665及び接線667の組み合わせとは除外される。
図15〜図22に示す2値画像66の場合、法線664,665及び接線666,667夫々が通る画素の内、座標値が同一の交点画素を含む組み合わせが除外される。この結果、法線664,665の組み合わせと、法線664及び接線667の組み合わせと、法線665及び接線666の組み合わせと、接線666,667の組み合わせとが選択され、互いに座標(4,6)の交点画素を通る法線664及び接線666の組み合わせと、互いに座標(7,2)の交点画素を通る法線665及び接線667の組み合わせとは除外される。
ところで、S25で求めた交点画素が1個のみである場合、この交点画素を通る接線及び法線は、座標値が同一の気泡画素662(即ち交点画素)を通る。このため、仮に、S25で求めた交点画素が1個のみである場合にS47及びS48の処理を実行したとしても、求められた接線及び法線の組み合わせは、S49で除外されるため、後述するS50以降の処理を実行する意味がない。
次いで、CPU10は、S49で選択した2本の直線の組み合わせ夫々について、選択した2本の直線で囲まれたマスク画素661,661,…の画素数を計数し(S50)、最も小さい計数結果Cを、変数Kに加算する(S51)。つまり、変数Kとは、選択気泡に連続する部分気泡として認定すべき領域の画素数の合計である。
図19に右上がりの細かいハッチングで示されているマスク画素661,661,…は、法線664,665に囲まれたマスク画素661,661,…であり、画素数は“7”である。ここで、法線664を示す直線はy={3/2}xであり、法線665を示す直線はy={2/7}xである。法線664,665に囲まれるマスク画素661,661,…とは、夫々y≦{3/2}x且つy≧{2/7}xを満たす。従って、例えば座標(3,5)のマスク画素661は、法線664が通っているが、選択した2本の直線で囲まれたマスク画素661として計数されない。
図20に右上がりの細かいハッチングで示されているマスク画素661,661,…は、法線664及び接線667に囲まれたマスク画素661,661,…であり、画素数は“7”である。
図20に右上がりの細かいハッチングで示されているマスク画素661,661,…は、法線664及び接線667に囲まれたマスク画素661,661,…であり、画素数は“7”である。
図21に右上がりの細かいハッチング示されているマスク画素661,661,…は、法線665及び接線666に囲まれたマスク画素661,661,…であり、画素数は“5”である。
図22に右上がりの細かいハッチングで示されているマスク画素661,661,…は、接線666,667に囲まれたマスク画素661,661,…であり、画素数は“5”である。
以上の結果、S49で選択した2本の直線で囲まれたマスク画素661,661,…の画素数の内、最小画素数は“5”である。
図22に右上がりの細かいハッチングで示されているマスク画素661,661,…は、接線666,667に囲まれたマスク画素661,661,…であり、画素数は“5”である。
以上の結果、S49で選択した2本の直線で囲まれたマスク画素661,661,…の画素数の内、最小画素数は“5”である。
図17に示すS51の処理終了後、CPU10は、S41で抽出したマスク画素に接する接触気泡をS43で全て選択し終えたか否かを判定し(S52)、まだ選択されていない接触気泡が存在する場合(S52でNO)、処理をS43へ戻し、全て選択し終えた場合は(S52でYES)、部分気泡検出処理を終了して元のルーチンへ戻す。
図17に示すS43で選択した接触気泡が、選択ビアホールの外側及び内側の両方に接している接触気泡である場合(S44でYES)、CPU10は、この接触気泡に連続する部分気泡の有無を検出すべく、図18に示すS53以下の処理を実行する。
以下では、選択ビアホールの中心画素を原点とするx−y座標系の第1象限に、選択ビアホールの外側及び内側の両方に接している接触気泡が存在する場合(図16参照)について例示する。
以下では、選択ビアホールの中心画素を原点とするx−y座標系の第1象限に、選択ビアホールの外側及び内側の両方に接している接触気泡が存在する場合(図16参照)について例示する。
図17に示すS44でYESの場合、CPU10は、図17に示すように、選択ビアホールの外側に接している選択気泡の気泡周縁部と選択ビアホールのメッキ部分45との外側交点画素を演算し、また、選択ビアホールの内側に接している選択気泡の気泡周縁部と選択ビアホールのメッキ部分45との内側交点画素を演算する(S53)。
図23は、図16に示す2値画像67における4本の直線を示す模式図である。図24は、2値画像67における2本の直線で囲まれる領域を示す模式図である。
図23に示すように、2値画像67の場合、S53におけるCPU10は、選択ビアホールの外側に接している選択気泡の接触気泡画素672,672,…の内、x座標の座標値が最小且つy座標の座標値が最大の画素を1個目の外側交点画素とし、x座標の座標値が最大且つy座標の座標値が最小の画素を2個目の外側交点画素とする。また、選択ビアホールの内側に接している選択気泡の接触気泡画素678,678,…の内、x座標の座標値が最小且つy座標の座標値が最大の画素を1個目の内側交点画素とし、x座標の座標値が最大且つy座標の座標値が最小の画素を2個目の内側交点画素とする。
この結果、2値画像67の場合、1個目の外側交点画素は座標(4,6)の接触気泡画素672であり、2個目の外側交点画素は座標(7,2)の接触気泡画素672であり、1個目の内側交点画素は座標(1,3)の接触気泡画素672であり、2個目の内側交点画素は座標(3,1)の接触気泡画素672である。
図18に示すS53の処理終了後、CPU10は、S53で求めた外側交点画素及び内側交点画素の合計が4個以上であるか否かを判定する(S54)。S53で求めた各種交点画素の合計が2個又は3個のみである場合(S54でNO)、選択気泡に連続する部分気泡は存在しない(即ち選択気泡に連続する部分気泡として認定すべき領域の画素数は“0”)と看做すことができるため、処理をS52へ移す。
S53で求めた各種交点画素の合計が4個以上である場合(S54でYES)、CPU10は、2個の外側交点画素の何れかと、2個の内側交点画素の何れかとの交点を通る直線を演算する(S55)。外側交点画素同士を結ぶ直線、及び内側交点画素同士を結ぶ直線は演算されない。
この結果、図23に示すように、2値画像67の場合、直線674〜677が得られる。
この結果、図23に示すように、2値画像67の場合、直線674〜677が得られる。
図18に示すS55の処理終了後、CPU10は、4本の直線の内、各2個の外側交点画素及び内側交点画素で囲まれる領域(即ち交点囲繞領域)679の外部で交差する2本の直線の組み合わせを選択する(S56)。
図23に示すように、2値画像67の場合、同一の外側交点画素又は同一の内側交点画素を通る組み合わせと、交点囲繞領域679の内部の同一の画素を通る組み合わせとが除外される。この結果、直線674,675の組み合わせが選択され、互いに座標(4,6)の外側交点画素を通る直線674,676の組み合わせと、互いに座標(7,2)の外側交点画素を通る直線675,677の組み合わせと、互いに座標(3,3)のマスク画素671を通る直線676,677の組み合わせと、互いに座標(1,3)の内側交点画素を通る直線674,677の組み合わせと、互いに座標(3,1)の交点画素を通る直線675,676の組み合わせとは除外される。
ところで、S53で求めた各種交点画素が2個のみである場合、これらの交点画素を通る直線は1本きりであるため、S56の処理を実行することができない。また、S53で求めた各種交点画素が3個のみである場合、これらの交点画素を通る2本の直線は同一の交点画素を通るため、S56の処理で除外される。従って、後述するS57以降の処理を実行する意味がない。
次いで、CPU10は、S56で選択した2本の直線で囲まれたマスク画像の画素数を計数し(S57)、処理をS51へ移して、計数結果Cを、変数Kに加算する。
図24に示すように、2値画像67の場合、S57におけるCPU10は、直線674,675で囲まれたマスク画素671,671,…、即ち右上がりの細かいハッチングで示されたマスク画素671,671,…の画素数“9”を計数する。
図24に示すように、2値画像67の場合、S57におけるCPU10は、直線674,675で囲まれたマスク画素671,671,…、即ち右上がりの細かいハッチングで示されたマスク画素671,671,…の画素数“9”を計数する。
図5に示すS29の処理が繰り返されることによって、ビアホール44,44,…の全てが選択され、S30の処理が繰り返されることによって、メッキ部分45,45,…に位置する部分気泡の画素数が計数される。
S30の処理終了後、CPU10は、ビアホール44,44,…の全てを選択し終えたか否かを判定し(S31)、まだ選択していない気泡がある場合は(S31でNO)、処理をS29へ戻す。
S30の処理終了後、CPU10は、ビアホール44,44,…の全てを選択し終えたか否かを判定し(S31)、まだ選択していない気泡がある場合は(S31でNO)、処理をS29へ戻す。
ビアホール44,44,…の全てを選択し終えた場合(S31でYES)、CPU10は、部分気泡と領域気泡とを合計した気泡率[%]を算出する(S32)。S32の処理では、CPU10は、S30で検出した全ての部分気泡の画素数Kと、S20で検出した全ての領域気泡の画素数との合計を、接合領域全体の画素数で除算した百分率を算出する。
図24に示すように、2値画像67の場合、S32の処理を実行した結果、気泡率38.89(={25+8+9}/{12×9}×100)[%]が算出される。仮に、部分気泡の存在を無視し、領域気泡のみで気泡率を算出した場合、気泡率30.56[%]が算出される。つまり、部分気泡の存在を考慮することによって、より正確な気泡率を得ることができる。
図24に示すように、2値画像67の場合、S32の処理を実行した結果、気泡率38.89(={25+8+9}/{12×9}×100)[%]が算出される。仮に、部分気泡の存在を無視し、領域気泡のみで気泡率を算出した場合、気泡率30.56[%]が算出される。つまり、部分気泡の存在を考慮することによって、より正確な気泡率を得ることができる。
S32の処理終了後、CPU10は、S32で算出した気泡率と、HDD15に記憶してあるX線画像とを、気泡演算結果として表示部13に表示して(S33)、気泡演算処理を終了する。
領域気泡が存在しない場合(S21でNO)、CPU10は、処理をS33へ移し、気泡率0%と、HDD15に記憶してあるX線画像とを、気泡演算結果として表示部13に表示して、気泡演算処理を終了する。つまり、本実施の形態においては、領域気泡が存在しない場合は接触気泡が存在しないため、部分気泡も存在しないと看做して気泡率が算出される。
接触気泡が存在しない場合(S23でNO)、CPU10は、S20で検出した領域気泡の画素数を、接合領域全体の画素数で除算した百分率を算出することによって、気泡率[%]を算出し(S34)、処理をS33へ移して、S34で算出した気泡率[%]と、HDD15に記憶してあるX線画像とを、気泡演算結果として表示部13に表示して、気泡演算処理を終了する。つまり、本実施の形態においては、接触気泡が存在しない場合、部分気泡も存在しないと看做して気泡率が算出される。
以上のような気泡率演算装置3は、放熱基板42のメッキ部分45,45,…に位置する部分気泡の有無と、メッキ部分45,45,…を除く接合領域に位置する領域気泡の有無とを容易且つ正確に検出して、接合領域全体の正確な気泡率を求めることができる。
また、複雑な曲線形状である気泡を、法線、接線等の直線で近似しているため、演算時間を短縮することができる。
また、複雑な曲線形状である気泡を、法線、接線等の直線で近似しているため、演算時間を短縮することができる。
なお、S51の処理で、CPU10は、最も大きい計数結果を変数Kに加算してもよい。これは、S49で選択した2本の直線で囲まれるマスク画素の画素数の内、最大画素数を部分気泡の画素数と認定することに等しい。この場合、図19〜図22に示す2値画像66においては、画素数“7”が選択される。
一般に、半田層43に混入した気泡は、円形状、楕円形状、涙滴状等、真円度が高い形状を有する。従って、図13に示すように、法線713及び接線716の組み合わせに係る領域や、法線723,724の組み合わせに係る領域が部分気泡であると認定される。
一般に、半田層43に混入した気泡は、円形状、楕円形状、涙滴状等、真円度が高い形状を有する。従って、図13に示すように、法線713及び接線716の組み合わせに係る領域や、法線723,724の組み合わせに係る領域が部分気泡であると認定される。
しかしながら、例えば、半導体装置4の量産開始直後は、半導体素子41と放熱基板42とを半田付けする工程の能力が安定しない。故に、半田層43に混入する気泡の形状が不安定になり、真円度が低くなり易い。このため、本実施の形態のように最小画素数に基づいて検出した部分気泡は、実際よりも面積が狭く見積もられている可能性がある。この結果、気泡率が実際よりも小さく算出されるため、不良品が良品と判断されて流出する虞がある。
そこで、最大画素数に基づいて部分気泡を検出することによって、気泡率が実際よりも小さく算出されることを抑制することができ、この結果、不良品の流出を抑制することができる。
そこで、最大画素数に基づいて部分気泡を検出することによって、気泡率が実際よりも小さく算出されることを抑制することができ、この結果、不良品の流出を抑制することができる。
最小画素値を用いて部分気泡を検出するか、最大画素値を用いて部分気泡を検出するかを自動的に決定するためには、例えば、CPU10が、領域気泡の気泡率、又は扁平率等を算出し、算出結果に基づいて、最小画素値及び最大画素値の何れを用いるかを判定する。領域気泡の扁平率を用いる場合、CPU10は、例えばS43で選択した接触気泡の中心画素からの最大径と最小径とを求め、最小径を最大径で除算した値(即ち扁平率)が所定の範囲以内にあるときは、S51の処理で最小画素値を用いる。
実施の形態 2.
図25は、本発明の実施の形態2に係る気泡率演算装置3で実行される気泡演算処理の手順を示すフローチャートである。
本実施の形態の気泡率演算装置3のハードウェア構成は、実施の形態1の気泡率演算装置3のハードウェア構成と同様であり、本実施の形態の気泡率演算装置3が気泡の有無を検出すべき半導体装置4は、実施の形態1の半導体装置4の構成と同様である。このため、実施の形態1に対応する部分には同一符号を付してそれらの説明を省略する。
また、図25に示すS11〜S21の処理は、図4に示すS11〜S20及び図5に示すS21の処理と同様であるため、説明を省略する。
図25は、本発明の実施の形態2に係る気泡率演算装置3で実行される気泡演算処理の手順を示すフローチャートである。
本実施の形態の気泡率演算装置3のハードウェア構成は、実施の形態1の気泡率演算装置3のハードウェア構成と同様であり、本実施の形態の気泡率演算装置3が気泡の有無を検出すべき半導体装置4は、実施の形態1の半導体装置4の構成と同様である。このため、実施の形態1に対応する部分には同一符号を付してそれらの説明を省略する。
また、図25に示すS11〜S21の処理は、図4に示すS11〜S20及び図5に示すS21の処理と同様であるため、説明を省略する。
領域気泡が存在する場合(S21でYES)、CPU10は、S61以降の処理を実行する。
CPU10は、メッキ部分45,45,…を除く接合領域の画素数を計数する(S61)。
図12に示す2値画像68の場合、画素群681,682以外の画素群が、メッキ部分45,45,…を除く接合領域に相当し、この領域の画素数は“92”である。また、画素群686,687,688が領域気泡に相当し、この領域気泡の画素数は“7”である。
CPU10は、メッキ部分45,45,…を除く接合領域の画素数を計数する(S61)。
図12に示す2値画像68の場合、画素群681,682以外の画素群が、メッキ部分45,45,…を除く接合領域に相当し、この領域の画素数は“92”である。また、画素群686,687,688が領域気泡に相当し、この領域気泡の画素数は“7”である。
S61の処理終了後、CPU10は、S20で検出した領域気泡の画素数を、S61で計数したメッキ部分45,45,…を除く接合領域の画素数で除算した百分率を算出することによって、気泡率[%]を算出する(S62)。図12に示す2値画像68の場合、気泡率は7.61%である。
最後に、CPU10は、S62で算出した気泡率と、HDD15に記憶してあるX線画像とを、気泡演算結果として表示部13に表示して(S63)、気泡演算処理を終了する。
最後に、CPU10は、S62で算出した気泡率と、HDD15に記憶してあるX線画像とを、気泡演算結果として表示部13に表示して(S63)、気泡演算処理を終了する。
領域気泡が存在しない場合(S21でNO)、CPU10は、処理をS63へ移し、気泡率0%と、HDD15に記憶してあるX線画像とを、気泡演算結果として表示部13に表示して、気泡演算処理を終了する。つまり、本実施の形態においては、領域気泡が存在しない場合は、部分気泡も存在しないと看做して気泡率が算出される。
以上のような気泡率演算装置3は、放熱基板42を、メッキ部分45,45,…と、ビアホール44,44,…の内側及び外側(即ちメッキ部分45,45,…を除く接合領域)とに分けて考慮することができる。このとき、メッキ部分45,45,…を除く接合領域に位置する気泡(即ち領域気泡)の有無は、2値化によって容易且つ正確に検出することができる。また、メッキ部分45,45,…を除く接合領域における気泡率を、メッキ部分45,45,…の気泡率として適用することによって、領域気泡の、メッキ部分45,45,…を除く接合領域に対する割合を、接合領域全体の正確な気泡率と認定することができる。
また、メッキ部分45,45,…における気泡率を推定値で補うため、演算時間を短縮することができる。
また、メッキ部分45,45,…における気泡率を推定値で補うため、演算時間を短縮することができる。
実施の形態 3.
図26は、本発明の実施の形態3に係る気泡率演算装置3で実行される気泡演算処理の手順を示すフローチャートである。
本実施の形態の気泡率演算装置3のハードウェア構成は、実施の形態1,2の気泡率演算装置3のハードウェア構成と同様であり、本実施の形態の気泡率演算装置3が気泡の有無を検出すべき半導体装置4は、実施の形態1,2の半導体装置4の構成と同様である。このため、実施の形態1,2に対応する部分には同一符号を付してそれらの説明を省略する。
また、図26に示すS11〜S17の処理は、図4及び図25に示すS11〜S17の処理と同様であるため、説明を省略する。
図26は、本発明の実施の形態3に係る気泡率演算装置3で実行される気泡演算処理の手順を示すフローチャートである。
本実施の形態の気泡率演算装置3のハードウェア構成は、実施の形態1,2の気泡率演算装置3のハードウェア構成と同様であり、本実施の形態の気泡率演算装置3が気泡の有無を検出すべき半導体装置4は、実施の形態1,2の半導体装置4の構成と同様である。このため、実施の形態1,2に対応する部分には同一符号を付してそれらの説明を省略する。
また、図26に示すS11〜S17の処理は、図4及び図25に示すS11〜S17の処理と同様であるため、説明を省略する。
S17の処理終了後、CPU10は、マスク補正画像を参照し、領域画像に含まれているメッキ部分45,45,…の画素を特定する(S81)。
図6に示す領域画像60の場合、S81におけるCPU10は、図10に示すマスク補正画像64を参照し、マスク補正画像64の画素値“0”を有する画素群に相当する画素群をメッキ部分45,45の画素群であるものとする。
図6に示す領域画像60の場合、S81におけるCPU10は、図10に示すマスク補正画像64を参照し、マスク補正画像64の画素値“0”を有する画素群に相当する画素群をメッキ部分45,45の画素群であるものとする。
図26に示すS81の処理終了後、CPU10は、領域画像を複数種類の閾値で2値化する(S82)。S83におけるCPU10は、異閾値2値化手段として機能する。
更に詳細には、S82におけるCPU10は、S81で特定したメッキ部分45,45,…に含まれる画素の画素値を閾値Pで2値化し、メッキ部分45,45,…を除く接合領域の内、ビアホール44,44,…の内側に含まれる画素の画素値を、閾値Pとは異なる閾値Iで2値化し、ビアホール44,44,…の外側に含まれる画素の画素値を、閾値P,Iの何れとも異なる閾値Oで2値化する。
更に詳細には、S82におけるCPU10は、S81で特定したメッキ部分45,45,…に含まれる画素の画素値を閾値Pで2値化し、メッキ部分45,45,…を除く接合領域の内、ビアホール44,44,…の内側に含まれる画素の画素値を、閾値Pとは異なる閾値Iで2値化し、ビアホール44,44,…の外側に含まれる画素の画素値を、閾値P,Iの何れとも異なる閾値Oで2値化する。
実施の形態1と同様に、閾値Iは、ビアホール44の中央部42aのX線透過率に応じて予め設定され、閾値Oは、ビアホール44の外部42cのX線透過率に応じて予め閾値Iよりも小さい値に設定されている。一方、閾値Pは、ビアホール44の内周部42bのX線透過率に応じて予め閾値Oよりも小さい値に設定されている。つまり、閾値P<閾値O<閾値Iである。
なお、閾値I,Oは同値であってもよい。ただし、閾値O=閾値Iとするためには、2値化の前に、ビアホール44の内側及び外側夫々のX線透過率の差異を、領域画像上で補正する必要がある。
図27は、気泡率演算装置3で求められる2値画像の一例を示す模式図である。
図中69は2値画像であり、2値画像69は、図6に示す領域画像60を2値化してなる。更に詳細には、領域画像60について、図10に示す画素群641,642夫々に相当する画素群に含まれている第1の画素(即ちS81で特定したメッキ部分45,45に含まれている画素)の画素値が閾値P=“0.30”で2値化されている。また、図10に示す画素群641,642夫々に相当する画素群に囲まれている第2の画素(即ち座標(2,6),(8,3)の各画素)の画素値が閾値I=“0.85”で2値化されている。更に、第1及び第2の画素以外の画素の画素値が閾値O=“0.75”で2値化されている。
図中69は2値画像であり、2値画像69は、図6に示す領域画像60を2値化してなる。更に詳細には、領域画像60について、図10に示す画素群641,642夫々に相当する画素群に含まれている第1の画素(即ちS81で特定したメッキ部分45,45に含まれている画素)の画素値が閾値P=“0.30”で2値化されている。また、図10に示す画素群641,642夫々に相当する画素群に囲まれている第2の画素(即ち座標(2,6),(8,3)の各画素)の画素値が閾値I=“0.85”で2値化されている。更に、第1及び第2の画素以外の画素の画素値が閾値O=“0.75”で2値化されている。
図27中、白抜きで示した画素群695,696,697,698夫々は画素値“1”を有し、右上がりの細かいハッチングで示した画素群は画素値“0”を有する。
図12に示す2値画像68と図27に示す2値画像69とを比較した場合、2値画像69では、2値画像68のマスキングされた画素群である画素群681,682夫々に相当する画素群に、気泡であることを示す画素値“1”の画素(座標(3,7),(8,4)の各画素)が含まれていることがわかる。このように、本実施の形態では、メッキ部分45,45を除く接合領域のみならず、メッキ部分45,45に存在する気泡も検出される。
図6に示す領域画像60について、メッキ部分45に位置する座標(3,7)の画素は気泡に相当するが、仮に、メッキ部分45を閾値O又は閾値Iで2値化した場合、この画素は気泡ではないと判定されてしまう。何故ならば、メッキ部分45は気泡が存在していても透過率が低いためである。
S83の処理終了後、CPU10は、接合領域に位置する気泡(以下、接合気泡という)の有無を検出する気泡有無検出を行なう(S83)。S83におけるCPU10は、接合気泡検出手段として機能する。
具体的には、CPU10は、図27に示す2値画像69について、各画素の画素値が“1”であるか“0”であるかを判定し、画素値が“1”であると判定された画素の画素数Jを計数する。画素数Jが0個である場合、接合領域に接合気泡が存在しないことが検出され、画素数Jが1個以上である場合、接合領域に接合気泡が存在することが検出される。
具体的には、CPU10は、図27に示す2値画像69について、各画素の画素値が“1”であるか“0”であるかを判定し、画素値が“1”であると判定された画素の画素数Jを計数する。画素数Jが0個である場合、接合領域に接合気泡が存在しないことが検出され、画素数Jが1個以上である場合、接合領域に接合気泡が存在することが検出される。
S83の処理終了後、CPU10は、接合気泡の気泡率[%]を算出する(S84)。S84の処理では、CPU10は、S83で検出した接合気泡の画素数Jを、接合領域全体の画素数で除算した百分率を算出する。S84におけるCPU10は、接合気泡率算出手段として機能する。
図27に示す2値画像69の場合、画素数Jは画素群695,696,697,698に含まれる画素の個数9個であり、接合領域全体の画素数は108(=12×9)個であるため、気泡率は8.33%である。
S84の処理終了後、CPU10は、S84で算出した気泡率と、HDD15に記憶してあるX線画像とを、気泡演算結果として表示部13に表示して(S85)、気泡演算処理を終了する。
図27に示す2値画像69の場合、画素数Jは画素群695,696,697,698に含まれる画素の個数9個であり、接合領域全体の画素数は108(=12×9)個であるため、気泡率は8.33%である。
S84の処理終了後、CPU10は、S84で算出した気泡率と、HDD15に記憶してあるX線画像とを、気泡演算結果として表示部13に表示して(S85)、気泡演算処理を終了する。
以上のような気泡率演算装置3は、放熱基板42のメッキ部分45,45,…に位置する部分気泡の有無と、メッキ部分45,45,…を除く接合領域に位置する領域気泡の有無とを、同時的に、しかも容易且つ正確に検出して、接合領域全体の正確な気泡率を求めることができる。
なお、閾値I,O,Pを全て同値とする場合は、2値化の前に、ビアホール44の内側、外側、及びメッキ部分45夫々のX線透過率の差異を、領域画像上で補正する必要がある(実施の形態4参照)。
また、閾値Iと閾値Pとが同値であり、閾値Oのみがこれらとは異なる(又は、閾値Oと閾値Pとが同値であり、閾値Iのみがこれらとは異なる)ものとする場合は、ビアホール44の内側及びメッキ部分45夫々のX線透過率の差異を、領域画像上で補正する必要がある。同様に、閾値Oと閾値Pとが同値であり、閾値Iのみがこれらとは異なるものとする場合は、ビアホール44の外側及びメッキ部分45夫々のX線透過率の差異を、領域画像上で補正する必要がある。
また、閾値Iと閾値Pとが同値であり、閾値Oのみがこれらとは異なる(又は、閾値Oと閾値Pとが同値であり、閾値Iのみがこれらとは異なる)ものとする場合は、ビアホール44の内側及びメッキ部分45夫々のX線透過率の差異を、領域画像上で補正する必要がある。同様に、閾値Oと閾値Pとが同値であり、閾値Iのみがこれらとは異なるものとする場合は、ビアホール44の外側及びメッキ部分45夫々のX線透過率の差異を、領域画像上で補正する必要がある。
実施の形態 4.
図28は、本発明の実施の形態4に係る気泡率演算装置3で実行される気泡検出処理の手順を示すフローチャートである。
本実施の形態の気泡率演算装置3のハードウェア構成は、実施の形態1〜3の気泡率演算装置3のハードウェア構成と同様であり、本実施の形態の気泡率演算装置3が気泡の有無を検出すべき半導体装置4は、実施の形態1〜3の半導体装置4の構成と同様である。このため、実施の形態1〜3に対応する部分には同一符号を付してそれらの説明を省略する。
また、図28に示すS11及びS12の処理は、図4に示すS11及びS12の処理と同様であるため、説明を省略する。
図28は、本発明の実施の形態4に係る気泡率演算装置3で実行される気泡検出処理の手順を示すフローチャートである。
本実施の形態の気泡率演算装置3のハードウェア構成は、実施の形態1〜3の気泡率演算装置3のハードウェア構成と同様であり、本実施の形態の気泡率演算装置3が気泡の有無を検出すべき半導体装置4は、実施の形態1〜3の半導体装置4の構成と同様である。このため、実施の形態1〜3に対応する部分には同一符号を付してそれらの説明を省略する。
また、図28に示すS11及びS12の処理は、図4に示すS11及びS12の処理と同様であるため、説明を省略する。
図29は、気泡率演算装置3で撮影されたX線画像の一例を示す模式図である。
図中810はX線画像であり、X線画像810は、撮影装置2から入力されて、S12の処理でHDD15に記憶されたものである。X線画像810の各画素は、“0.00”以上“1.00”以下の多値の画素値を有する。図中、縦20マス、横25マス(500マス)の正方形夫々は、X線画像810に含まれている個々の画素である。
図中810はX線画像であり、X線画像810は、撮影装置2から入力されて、S12の処理でHDD15に記憶されたものである。X線画像810の各画素は、“0.00”以上“1.00”以下の多値の画素値を有する。図中、縦20マス、横25マス(500マス)の正方形夫々は、X線画像810に含まれている個々の画素である。
図29に右下がりの粗いハッチングで示した画素811,811,…夫々は、画素値P1 (=0.20)を有する。また、白抜きで示した画素812,812,…夫々は、画素値P2 (=0.80)を有する。更に、右上がりの粗いハッチングで示した画素813,813,…夫々は、画素値P3 (=0.40)を有する。交差する粗いハッチングで示した画素814,814,…夫々は、画素値P4 (=0.70)を有する。更にまた、白抜きで示した画素815,815,…夫々は、画素値P5 (=1.00)を有する。画素値P5 を有する画素815,815,…夫々は、明らかに放熱基板42(即ち半導体装置4)が存在しない部分に対応する。
右下がりの細かいハッチングで示した画素816,816,…夫々は、画素値P6 (=0.32)を有する。また、右上がりの細かいハッチングで示した画素817,817,…夫々は、画素値P7 (=0.16)を有する。交差する細かいハッチングで示した画素818,818,…夫々は、画素値P8 (=0.08)を有する。
各画素811〜813は、半田層43に混入した気泡を示す画素の例であり、各画素816〜818は、半田層43を示す画素の例である。
各画素811〜813は、半田層43に混入した気泡を示す画素の例であり、各画素816〜818は、半田層43を示す画素の例である。
図28に示すS12の処理終了後、CPU10は、後述する係数画像をHDD15から読み出して(S71)、RAM12に展開する。
図2に示すHDD15には、本実施の形態の気泡演算方法を実行する場合に必要なデータとして、係数画像が記憶されている。
図2に示すHDD15には、本実施の形態の気泡演算方法を実行する場合に必要なデータとして、係数画像が記憶されている。
係数画像は多値画像であり、実施の形態1のビア設計図データ及びパターン図データと、放熱基板42の各部の材質について、X線が透過するX線透過率を示すX線透過テーブルと、半導体素子41が接合されていない放熱基板42を、半導体装置4をX線撮影する場合と同様にして撮影装置2で撮影してなる多値のX線画像の各画素値とを用いて生成されたものである。なお、X線透過率ではなく、X線吸収率であってもよい。
係数画像の各画素値は、X線画像から、放熱基板42を構成する各部の材質及び厚さの影響を除去するための補正係数である。
係数画像の各画素値は、X線画像から、放熱基板42を構成する各部の材質及び厚さの影響を除去するための補正係数である。
本実施の形態の気泡検出方法は、放熱基板42を構成する各部の材質及び厚さと、放熱基板42そのもののX線画像とに基づいて、半導体素子41と放熱基板42との接合領域を示す領域画像を補正する。この結果、放熱基板42の厚さのみを考慮した近似曲線を用いて領域画像を補正する従来の気泡検出方法に比べて、正確な補正が行なわれる。
以下では、説明を簡単にするために、接合領域において気泡の透過率が100%であり、半田層43の透過率が40%である場合を例示する。
以下では、説明を簡単にするために、接合領域において気泡の透過率が100%であり、半田層43の透過率が40%である場合を例示する。
図30は、気泡率演算装置3で用いられる係数画像の一例を示す模式図である。
図中820は係数画像であり、係数画像820は、演算装置1のHDD15に予め記憶されている。
図中、縦20マス、横25マス(500マス)の正方形夫々は、係数画像820に含まれている個々の画素であり、各画素は、“0.00”以上“1.00”以下の多値の画素値を有する。各画素の画素値は、撮影装置2から演算装置1に入力されるX線画像の対応する画素の補正係数を示す。
以下、図3及び図30を参照して説明する。
図中820は係数画像であり、係数画像820は、演算装置1のHDD15に予め記憶されている。
図中、縦20マス、横25マス(500マス)の正方形夫々は、係数画像820に含まれている個々の画素であり、各画素は、“0.00”以上“1.00”以下の多値の画素値を有する。各画素の画素値は、撮影装置2から演算装置1に入力されるX線画像の対応する画素の補正係数を示す。
以下、図3及び図30を参照して説明する。
図30に右上がりのハッチングで示した画素群821,821,…夫々は、補正係数R1 (=0.20)を有する各12個の画素である。各画素群821は、白抜きで示した画素群822を囲繞してロ字状に配されている。各画素群822は4個の画素であり、夫々補正係数R2 (=0.80)を有する。
各画素群821は、ビアホール44の内周部42bに対応し、画素群822は、ビアホール44の中央部42aに対応する。画素群821,821,…には、千鳥配置されている6個のビアホール44,44,…夫々の設計上の半径、メッキ厚、及び中心座標が反映されている。
各画素群821は、ビアホール44の内周部42bに対応し、画素群822は、ビアホール44の中央部42aに対応する。画素群821,821,…には、千鳥配置されている6個のビアホール44,44,…夫々の設計上の半径、メッキ厚、及び中心座標が反映されている。
右下がりのハッチングで示した画素群823は、補正係数R3 (=0.40)を有する322個の画素であり、ビアホール44,44,…の外部42cに対応する。従って、画素群823の外形状が、半導体素子41と放熱基板42との接合領域(換言すれば、半田層43)の外形状を示す。
また、交差するハッチングで示した画素群824は、補正係数R4 (=0.70)を有する27個の画素であり、例えば積層体423に圧着されている金属基板424に対応する。従って、画素群823,824の外形状が、放熱基板42の外形状を示す。
また、交差するハッチングで示した画素群824は、補正係数R4 (=0.70)を有する27個の画素であり、例えば積層体423に圧着されている金属基板424に対応する。従って、画素群823,824の外形状が、放熱基板42の外形状を示す。
更に、白抜きで示した画素群825は、補正係数R5 (=1.00)を有する55個の画素であり、放熱基板42(即ち半導体装置4)が存在しない部分に対応する。
従って、半導体素子41と放熱基板42との接合領域に対応する領域係数画像82は、係数画像820の画素群824,825を除いた部分である。
従って、半導体素子41と放熱基板42との接合領域に対応する領域係数画像82は、係数画像820の画素群824,825を除いた部分である。
図28に示すS71の処理終了後、CPU10は、HDD15に記憶してあるX線画像のコピーを読み出してRAM12に展開し、S71で読み出した係数画像に基づき、X線画像において接合領域を示す領域画像を特定する(S72)。
X線画像810及び係数画像820を用いる場合、CPU10は、まず、X線画像810の各画素値を所定の閾値(例えば“0.90”)とを比較し、閾値以上の画素値を有する画素をマスキングすることによって、X線画像810における放熱基板42の外形状を得る。更に、CPU10は、係数画像820において接合領域以外の領域を示す画素群824の外形状及び補正係数R4 とに基づき、X線画像810において補正係数R4 に等しい画素値を有する画素814,814,…をマスキングすることによって、領域画像81を特定する。
なお、例えばパターン図データを用いてX線画像中の領域画像を特定する構成でもよい。
なお、例えばパターン図データを用いてX線画像中の領域画像を特定する構成でもよい。
図28に示すS72の処理終了後、CPU10は、X線画像及び係数画像夫々に含まれる接合領域の外形状を基準に、領域画像に設定されるx−y座標系の原点と領域係数画像に設定されるx−y座標系の原点とを一致させ(S73)、領域画像の各画素値を、領域係数画像の対応する画素値で補正して補正後領域画像を生成する(S74)。
X線画像810及び係数画像820を用いる場合、まず、CPU10は、X線画像810及び係数画像820と夫々に含まれる接合領域の外形状を基準に、領域画像81に設定されるx−y座標系の原点と領域係数画像82に設定されるx−y座標系の原点とを一致させる。
X線画像810及び係数画像820を用いる場合、まず、CPU10は、X線画像810及び係数画像820と夫々に含まれる接合領域の外形状を基準に、領域画像81に設定されるx−y座標系の原点と領域係数画像82に設定されるx−y座標系の原点とを一致させる。
更に、CPU10は、領域画像81の各画素値を、領域係数画像82の対応する画素値で除算した除算結果を画素値とする補正後領域画像83を生成する(後述する図31参照)。
図31は、気泡率演算装置3で生成される補正後領域画像の一例を示す模式図である。
図中83は補正後領域画像であり、補正後領域画像83は、S74でX線画像810の領域画像81が補正されてなる補正後X線画像830に含まれている。図中、縦20マス、横25マス(500マス)の正方形夫々は、補正後X線画像830に含まれている個々の画素である。
図31は、気泡率演算装置3で生成される補正後領域画像の一例を示す模式図である。
図中83は補正後領域画像であり、補正後領域画像83は、S74でX線画像810の領域画像81が補正されてなる補正後X線画像830に含まれている。図中、縦20マス、横25マス(500マス)の正方形夫々は、補正後X線画像830に含まれている個々の画素である。
補正後領域画像83の各画素は、“0.00”以上“1.00”以下の多値の画素値を有する。白抜きで示した97個の画素831,831,…は、夫々画素値“1.00”を有し、交差する細かいハッチングで示した321個の画素832,832,…は、夫々画素値“0.40”を有する。
一方、右上がりの粗いハッチングで示した82個の画素833,833,…は、夫々マスキングされている。
一方、右上がりの粗いハッチングで示した82個の画素833,833,…は、夫々マスキングされている。
補正後領域画像83において、領域画像81の画素811に対応する画素831は、補正後の画素値B1 を有する。領域画像81の画素811には領域係数画像82の画素群821に含まれる画素が対応するため、画素値B1 は、画素値P1 及び補正係数R1 に基づいて、下記のように算出される。
B1 =P1 /R1 =0.20/0.20=1.00 (1)
同様に、補正後領域画像83において、領域画像81の画素812に対応する画素831は、補正後の画素値B2 を有する。領域画像81の画素812には領域係数画像82の画素群822に含まれる画素が対応するため、画素値B2 は、画素値P2 及び補正係数R2 に基づいて、下記のように算出される。
B2 =P2 /R2 =0.80/0.80=1.00 (2)
B1 =P1 /R1 =0.20/0.20=1.00 (1)
同様に、補正後領域画像83において、領域画像81の画素812に対応する画素831は、補正後の画素値B2 を有する。領域画像81の画素812には領域係数画像82の画素群822に含まれる画素が対応するため、画素値B2 は、画素値P2 及び補正係数R2 に基づいて、下記のように算出される。
B2 =P2 /R2 =0.80/0.80=1.00 (2)
補正後領域画像83において、領域画像81の画素813に対応する画素831は、補正後の画素値B3 を有する。領域画像81の画素813には領域係数画像82の画素群823に含まれる画素が対応するため、画素値B3 は、画素値P3 及び補正係数R3 に基づいて、下記のように算出される。
B3 =P3 /R3 =0.40/0.40=1.00 (3)
補正後領域画像83において、領域画像81の画素816に対応する画素832は、補正後の画素値B6 を有する。領域画像81の画素816には領域係数画像82の画素群822に含まれる画素が対応するため、画素値B6 は、画素値P6 及び補正係数R2 に基づいて、下記のように算出される。
B6 =P6 /R2 =0.32/0.80=0.40 (4)
B3 =P3 /R3 =0.40/0.40=1.00 (3)
補正後領域画像83において、領域画像81の画素816に対応する画素832は、補正後の画素値B6 を有する。領域画像81の画素816には領域係数画像82の画素群822に含まれる画素が対応するため、画素値B6 は、画素値P6 及び補正係数R2 に基づいて、下記のように算出される。
B6 =P6 /R2 =0.32/0.80=0.40 (4)
補正後領域画像83において、領域画像81の画素817に対応する画素832は、補正後の画素値B7 を有する。領域画像81の画素817には領域係数画像82の画素群823に含まれる画素が対応するため、画素値B7 は、画素値P7 及び補正係数R3 に基づいて、下記のように算出される。
B7 =P7 /R3 =0.16/0.40=0.40 (5)
補正後領域画像83において、領域画像81の画素818に対応する画素832は、補正後の画素値B8 を有する。領域画像81の画素818には領域係数画像82の画素群821に含まれる画素が対応するため、画素値B8 は、画素値P1 及び補正係数R1 に基づいて、下記のように算出される。
B8 =P8 /R1 =0.08/0.20=0.40 (6)
B7 =P7 /R3 =0.16/0.40=0.40 (5)
補正後領域画像83において、領域画像81の画素818に対応する画素832は、補正後の画素値B8 を有する。領域画像81の画素818には領域係数画像82の画素群821に含まれる画素が対応するため、画素値B8 は、画素値P1 及び補正係数R1 に基づいて、下記のように算出される。
B8 =P8 /R1 =0.08/0.20=0.40 (6)
以上のようにして求められた補正後領域画像83からは、放熱基板42を構成する各部の材質及び厚さの影響が除去されているため、画素値“1.00”を有する画素831は、メッキ部分45に位置するか否かを問わず、接合領域に位置する気泡を示す。
図32は、気泡率演算装置3が気泡の有無を検出すべき半導体装置の模式的な構成を示す縦断面図であり、半田層43近傍の拡大図を示している。
図中P1 〜P9 は、放熱基板42における対応する位置の画素値であり、図中R1 〜R3 は、放熱基板42における対応する位置の補正係数である。
気泡Aと半田層43との境界においては、半田層43の厚みが徐々に変化することが多いため、画素値P9 を補正係数R2 で除算した結果は“0.40”〜“1.00”の中間の値になる。
従って、補正後領域画像83に基づいて直接的に気泡の有無を判定せず、まず、補正後領域画像83を2値化して、気泡Aと半田層43との境界における半田層43の厚みの変化の影響を除去する必要がある。
図中P1 〜P9 は、放熱基板42における対応する位置の画素値であり、図中R1 〜R3 は、放熱基板42における対応する位置の補正係数である。
気泡Aと半田層43との境界においては、半田層43の厚みが徐々に変化することが多いため、画素値P9 を補正係数R2 で除算した結果は“0.40”〜“1.00”の中間の値になる。
従って、補正後領域画像83に基づいて直接的に気泡の有無を判定せず、まず、補正後領域画像83を2値化して、気泡Aと半田層43との境界における半田層43の厚みの変化の影響を除去する必要がある。
図28に示すS74の処理終了後、CPU10は、S74で生成した補正後領域画像を2値化して2値画像を生成する(S75)。
補正後領域画像83の場合、S75の処理で実行される2値化は、補正後領域画像83を、マスキングされている画素833,833,…を除いて、所定の閾値で2値化するものであり、閾値以上の画素値を有する画素を画素値“1”とし、閾値未満の画素値を有する画素を画素値“0”とする。例えば閾値が“0.50”である場合、画素831,831,…の各画素値は“1”になり、画素832,832,…の各画素値は“0”になる。
補正後領域画像83の場合、S75の処理で実行される2値化は、補正後領域画像83を、マスキングされている画素833,833,…を除いて、所定の閾値で2値化するものであり、閾値以上の画素値を有する画素を画素値“1”とし、閾値未満の画素値を有する画素を画素値“0”とする。例えば閾値が“0.50”である場合、画素831,831,…の各画素値は“1”になり、画素832,832,…の各画素値は“0”になる。
S75の処理終了後、CPU10は、接合領域全体について、気泡の有無を検出する気泡有無検出を行なう(S76)。
具体的には、CPU10は、マスキングされている画素833,833,…を除いて、各画素の画素値が“1”であるか“0”であるかを判定し、画素値が“1”であると判定された画素の画素数Jを計数する。画素数Jが0個である場合、接合領域に気泡が存在しないことが検出され、画素数Jが1個以上である場合、接合領域に気泡が存在することが検出される。
具体的には、CPU10は、マスキングされている画素833,833,…を除いて、各画素の画素値が“1”であるか“0”であるかを判定し、画素値が“1”であると判定された画素の画素数Jを計数する。画素数Jが0個である場合、接合領域に気泡が存在しないことが検出され、画素数Jが1個以上である場合、接合領域に気泡が存在することが検出される。
S76の処理終了後、CPU10は、接合領域全体の気泡率[%]を算出する(S77)。S77の処理では、CPU10は、S76で検出した気泡の画素数Jを、接合領域全体の画素数で除算した百分率を算出する。
補正後領域画像83の場合、画素数Jは画素831,831,…の個数97個であり、接合領域全体の画素数は418(=19×22)個であるため、気泡率は23.21%である。
S77の処理終了後、CPU10は、S77で算出した気泡率と、HDD15に記憶してあるX線画像とを、気泡演算結果として表示部13に表示して(S78)、気泡演算処理を終了する。
補正後領域画像83の場合、画素数Jは画素831,831,…の個数97個であり、接合領域全体の画素数は418(=19×22)個であるため、気泡率は23.21%である。
S77の処理終了後、CPU10は、S77で算出した気泡率と、HDD15に記憶してあるX線画像とを、気泡演算結果として表示部13に表示して(S78)、気泡演算処理を終了する。
以上のような気泡率演算装置3は、放熱基板42のメッキ部分45,45,…と、メッキ部分45,45,…を除く接合領域とを区別することなく、接合領域全体に位置する気泡の有無とを容易且つ正確に検出して、接合領域全体の正確な気泡率を求めることができる。
また、係数画像は、放熱基板42のX線画像を用いてなるため、係数画像に含まれるメッキ部分45,45,…に対応する画素と、半導体装置4をX線撮影してなるX線画像に含まれるメッキ部分45,45,…に対応する画素とが位置ズレを生じている可能性は少ないため、実施の形態1のS17で実行したマスク画像の補正のような処理を係数画像に対して実行する必要はない。この結果、演算時間を短縮することができる。
また、係数画像は、放熱基板42のX線画像を用いてなるため、係数画像に含まれるメッキ部分45,45,…に対応する画素と、半導体装置4をX線撮影してなるX線画像に含まれるメッキ部分45,45,…に対応する画素とが位置ズレを生じている可能性は少ないため、実施の形態1のS17で実行したマスク画像の補正のような処理を係数画像に対して実行する必要はない。この結果、演算時間を短縮することができる。
実施の形態 5.
図33は、本発明の実施の形態5に係る気泡率演算装置3が気泡の有無を検出すべき半導体装置の模式的な構成を示す縦断面図である。
本実施の形態の気泡率演算装置3のハードウェア構成は、実施の形態1〜4の気泡率演算装置3のハードウェア構成と同様である。
一方、本実施の形態の気泡率演算装置3が気泡の有無を検出すべき半導体装置4は、実施の形態1〜4の半導体装置4とは異なり、半導体素子41と放熱基板42との間に、熱伝播基板47が接合されている。
その他、実施の形態1〜4に対応する部分には同一符号を付してそれらの説明を省略する。
図33は、本発明の実施の形態5に係る気泡率演算装置3が気泡の有無を検出すべき半導体装置の模式的な構成を示す縦断面図である。
本実施の形態の気泡率演算装置3のハードウェア構成は、実施の形態1〜4の気泡率演算装置3のハードウェア構成と同様である。
一方、本実施の形態の気泡率演算装置3が気泡の有無を検出すべき半導体装置4は、実施の形態1〜4の半導体装置4とは異なり、半導体素子41と放熱基板42との間に、熱伝播基板47が接合されている。
その他、実施の形態1〜4に対応する部分には同一符号を付してそれらの説明を省略する。
まず、半導体装置4の構成を説明する。
熱伝播基板47は、銅を用いてなる矩形状であり、積層体423の一面には、図示しないニッケルメッキ層及び金メッキ層を介して、熱伝播基板47の一面(図中下面)が半田付けされている。また、熱伝播基板47の他面(図中上面)には、半導体素子41の一面(図中下面)が半田付けされている。
このため、作動中の半導体素子41が発した熱は、熱伝播基板47を介して放熱基板42へ伝播する。
熱伝播基板47は、銅を用いてなる矩形状であり、積層体423の一面には、図示しないニッケルメッキ層及び金メッキ層を介して、熱伝播基板47の一面(図中下面)が半田付けされている。また、熱伝播基板47の他面(図中上面)には、半導体素子41の一面(図中下面)が半田付けされている。
このため、作動中の半導体素子41が発した熱は、熱伝播基板47を介して放熱基板42へ伝播する。
図中431は、半導体素子41と熱伝播基板47とを接合している半田層であり、半田層431には、半田付けの際に気泡が混入することがある。また、図中432は、熱伝播基板47と積層体423の一面(即ち放熱基板42の一面)とを接合している半田層であり、半田層432には、半田付けの際に気泡が混入することがある。半田層431は、半田層432よりも高温で形成される。
半導体装置4は、半導体素子41と熱伝播基板47とを半田で接合してから、半導体素子41が接合された熱伝播基板47と放熱基板42とを半田で接合することによって製造される。
半導体装置4は、半導体素子41と熱伝播基板47とを半田で接合してから、半導体素子41が接合された熱伝播基板47と放熱基板42とを半田で接合することによって製造される。
半田層431に混入している気泡の気泡率は、従来の気泡率演算方法で求めればよい。
即ち、気泡率演算装置3のユーザは、半導体素子41と熱伝播基板47とを半田で接合してなる接合体を撮影装置2の内部に載置する。このとき、放熱基板42はまだ接合体に接合されていない。
撮影装置2は、半導体素子41側から熱伝播基板47に対して垂直にX線21aを照射することによって、多値のX線画像を撮影して、演算装置1へ出力する。
即ち、気泡率演算装置3のユーザは、半導体素子41と熱伝播基板47とを半田で接合してなる接合体を撮影装置2の内部に載置する。このとき、放熱基板42はまだ接合体に接合されていない。
撮影装置2は、半導体素子41側から熱伝播基板47に対して垂直にX線21aを照射することによって、多値のX線画像を撮影して、演算装置1へ出力する。
演算装置1では、CPU10が、入力された多値のX線画像において領域画像を特定し、特定した領域画像を所定の閾値で2値化することによって2値画像を生成し、画素値“1”の画素数を領域画像全体の画素値で除算した百分率(即ち、半田層431に混入している気泡の気泡率)を算出する。以下では、この2値画像を接合体2値画像という。
半田層432に混入している気泡の気泡率を求める場合、気泡率演算装置3のユーザは、接合体に放熱基板42を接合してなる半導体装置4を撮影装置2の内部に載置する。
撮影装置2は、半導体素子41側から放熱基板42に対して垂直にX線21aを照射することによって、多値のX線画像を撮影して、演算装置1へ出力する。
撮影装置2は、半導体素子41側から放熱基板42に対して垂直にX線21aを照射することによって、多値のX線画像を撮影して、演算装置1へ出力する。
演算装置1では、CPU10が、入力された多値のX線画像において領域画像を特定し、特定した領域画像を、接合体2値画像に基づいてマスキングすることによって、半田層431に混入している気泡に対応する画素をマスキングする。更に詳細には、CPU10は、接合体2値画像において画素値“1”の画素に対応する領域画像の画素をマスキングする。
この後、マスキングされた領域画像を用い、マスキングされていない画素に対して、実施の形態1〜4の気泡率演算処理を適用することによって、半田層432に混入している気泡の気泡率が求められる。
この後、マスキングされた領域画像を用い、マスキングされていない画素に対して、実施の形態1〜4の気泡率演算処理を適用することによって、半田層432に混入している気泡の気泡率が求められる。
具体的には、実施の形態1〜3の気泡率演算処理を適用する場合、図4、図25、及び図26に示すS13とS14との間に、S13で特定した領域画像を、接合体2値画像に基づいてマスキングする処理が追加される。実施の形態4の気泡率演算処理を適用する場合、図28に示すS72とS73との間に、S72で特定した領域画像を、接合体2値画像に基づいてマスキングする処理が追加される。
以上のような気泡演算装置3は、実施の形態1〜4と同様の効果を奏する。
以上のような気泡演算装置3は、実施の形態1〜4と同様の効果を奏する。
実施の形態 6.
本実施の形態の気泡率演算装置3のハードウェア構成は、実施の形態1〜5の気泡率演算装置3のハードウェア構成と同様であり、本実施の形態の気泡率演算装置3が気泡の有無を検出すべき半導体装置4は、実施の形態5の半導体装置4の構成と同様である。
その他、実施の形態1〜5に対応する部分には同一符号を付してそれらの説明を省略する。
本実施の形態の気泡率演算装置3のハードウェア構成は、実施の形態1〜5の気泡率演算装置3のハードウェア構成と同様であり、本実施の形態の気泡率演算装置3が気泡の有無を検出すべき半導体装置4は、実施の形態5の半導体装置4の構成と同様である。
その他、実施の形態1〜5に対応する部分には同一符号を付してそれらの説明を省略する。
半導体装置4の半田層431に混入している気泡の気泡率は、実施の形態5と同様に、従来の気泡率演算方法で求めればよい。
即ち、気泡率演算装置3のユーザは、半導体素子41と熱伝播基板47とを半田で接合してなる接合体を撮影装置2の内部に載置する。このとき、放熱基板42はまだ接合体に接合されていない。
撮影装置2は、半導体素子41側から熱伝播基板47に対して垂直にX線21aを照射することによって、多値のX線画像を撮影して、演算装置1へ出力する。以下では、このX線画像を、接合体X線画像という。
即ち、気泡率演算装置3のユーザは、半導体素子41と熱伝播基板47とを半田で接合してなる接合体を撮影装置2の内部に載置する。このとき、放熱基板42はまだ接合体に接合されていない。
撮影装置2は、半導体素子41側から熱伝播基板47に対して垂直にX線21aを照射することによって、多値のX線画像を撮影して、演算装置1へ出力する。以下では、このX線画像を、接合体X線画像という。
演算装置1では、CPU10が、入力された多値の接合体X線画像において領域画像を特定し、特定した領域画像を所定の閾値で2値化することによって接合体2値画像を生成し、画素値“1”の画素数を領域画像全体の画素値で除算した百分率(即ち、半田層431に混入している気泡の気泡率)を算出する。
半田層432に混入している気泡の気泡率を求める場合、気泡率演算装置3のユーザは、接合体に放熱基板42を接合してなる半導体装置4を撮影装置2の内部に載置する。
撮影装置2は、半導体素子41側から放熱基板42に対して垂直にX線21aを照射することによって、多値のX線画像を撮影して、演算装置1へ出力する。
撮影装置2は、半導体素子41側から放熱基板42に対して垂直にX線21aを照射することによって、多値のX線画像を撮影して、演算装置1へ出力する。
演算装置1では、接合体X線画像に基づいて、気泡補正画像を生成する。気泡補正画像は多値画像であり、気泡補正画像の各画素値は、X線画像から、半田層431における気泡の有無の影響を除去するための補正係数である。
CPU10は、入力された多値のX線画像において、係数画像に基づいて領域画像を特定し、特定した領域画像を、係数画像及び気泡補正係数に基づいて補正する。
この後、補正された領域画像を用い、実施の形態4の気泡率演算処理を適用することによって、気泡率が求められる。
CPU10は、入力された多値のX線画像において、係数画像に基づいて領域画像を特定し、特定した領域画像を、係数画像及び気泡補正係数に基づいて補正する。
この後、補正された領域画像を用い、実施の形態4の気泡率演算処理を適用することによって、気泡率が求められる。
つまり、図28に示すS11の前に、接合体X線画像に基づいて気泡補正画像を生成する処理が追加され、S74の処理が、S72で特定した領域画像の各画素値を、係数画像及び気泡補正画像夫々の対応する画素値で補正して補正後領域画像を生成する処理に変更される。
以上のような気泡演算装置3は、実施の形態4と同様の効果を奏する。
以上のような気泡演算装置3は、実施の形態4と同様の効果を奏する。
なお、今回開示された実施の形態は、全ての点で例示であって、制限的なものではないと考えられるべきである。本発明の範囲は、上述した意味ではなく、特許請求の範囲と均等の意味及び特許請求の範囲内での全ての変更が含まれることが意図される。
また、本発明の効果がある限りにおいて、気泡率演算装置3に、実施の形態1〜6に開示されていない構成要素が含まれていてもよい。
また、本発明の効果がある限りにおいて、気泡率演算装置3に、実施の形態1〜6に開示されていない構成要素が含まれていてもよい。
10 CPU、21a X線、3 気泡率演算装置、4 半導体装置、41 半導体素子、42 放熱基板、44 ビアホール(穴)
Claims (2)
- 半導体素子と内面がメッキされた穴が形成されている放熱基板の一面とを接合してなる半導体装置の接合領域を、前記一面に向けてX線を照射して撮影してなる多値画像を用いて、前記接合領域に存在する気泡の前記接合領域に対する割合を演算する気泡率演算方法において、
前記多値画像に含まれている前記穴のメッキ部分、及び、該メッキ部分を除く前記接合領域を、異なる閾値で2値化して2値画像を生成し、
生成した2値画像に基づいて、前記接合領域に位置する接合気泡の有無を検出し、
検出した接合気泡の画素数の前記接合領域の画素数に対する割合を、接合領域全体の気泡率として算出することを特徴とする気泡率演算方法。 - 半導体素子と内面がメッキされた穴が形成されている放熱基板の一面とを接合してなる半導体装置の接合領域を、前記一面に向けてX線を照射して撮影してなる多値画像を用いて、前記接合領域に存在する気泡の前記接合領域に対する割合を演算する気泡率演算装置において、
前記多値画像に含まれている前記穴のメッキ部分、及び、該メッキ部分を除く前記接合領域を、異なる閾値で2値化して2値画像を生成する異閾値2値化手段と、
該異閾値2値化手段が生成した2値画像に基づいて、前記接合領域に位置する接合気泡の有無を検出する接合気泡検出手段と、
該接合気泡検出手段が検出した接合気泡の画素数の前記接合領域の画素数に対する割合を、接合領域全体の気泡率として算出する接合気泡率算出手段と
を備えることを特徴とする気泡率演算装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013076299A JP5408376B2 (ja) | 2013-04-01 | 2013-04-01 | 気泡率演算方法及び気泡率演算装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013076299A JP5408376B2 (ja) | 2013-04-01 | 2013-04-01 | 気泡率演算方法及び気泡率演算装置 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008285290A Division JP5417804B2 (ja) | 2008-11-06 | 2008-11-06 | 気泡率演算方法及び気泡率演算装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2013130589A JP2013130589A (ja) | 2013-07-04 |
JP5408376B2 true JP5408376B2 (ja) | 2014-02-05 |
Family
ID=48908217
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013076299A Expired - Fee Related JP5408376B2 (ja) | 2013-04-01 | 2013-04-01 | 気泡率演算方法及び気泡率演算装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5408376B2 (ja) |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4118455B2 (ja) * | 1999-06-28 | 2008-07-16 | 名古屋電機工業株式会社 | 実装部品検査方法 |
JP4660998B2 (ja) * | 2001-07-31 | 2011-03-30 | トヨタ自動車株式会社 | 接合検査装置 |
JP4962228B2 (ja) * | 2006-12-26 | 2012-06-27 | 株式会社ジェイテクト | 多層回路基板およびモータ駆動回路基板 |
-
2013
- 2013-04-01 JP JP2013076299A patent/JP5408376B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2013130589A (ja) | 2013-07-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101434484B1 (ko) | 영상 분할을 이용한 비전 검사 장치 및 비전 검사 방법 | |
JP5559551B2 (ja) | 検査装置 | |
JP2009145285A (ja) | 欠陥検出方法および欠陥検出装置 | |
WO2013069057A1 (ja) | X線検査方法及び装置 | |
TWI738232B (zh) | 基板量測系統及其方法 | |
JP5408377B2 (ja) | 気泡率演算方法及び気泡率演算装置 | |
CN115345883B (zh) | 基于线性灰度增强的pcb板偏孔异常检测方法 | |
JP6177541B2 (ja) | 文字認識装置、文字認識方法及びプログラム | |
JP5417804B2 (ja) | 気泡率演算方法及び気泡率演算装置 | |
JP6432240B2 (ja) | 導電粒子形状評価装置及び導電粒子形状評価方法 | |
JP5215545B2 (ja) | 電子部品の装着状況の検査方法 | |
JP5408376B2 (ja) | 気泡率演算方法及び気泡率演算装置 | |
JP2010027964A (ja) | 検査領域の領域設定データの作成方法および基板外観検査装置 | |
WO2007125981A1 (ja) | 境界の位置決定装置、境界の位置を決定する方法、当該装置としてコンピュータを機能させるためのプログラム、および記録媒体 | |
US8404410B2 (en) | Method of aligning photomask with base material and method of manufacturing printed circuit board | |
KR102075872B1 (ko) | 투과영상 기반의 비파괴검사 방법 및 이를 위한 장치 | |
JP5908351B2 (ja) | 穴開け位置決定装置、穴開け位置決定方法、及び、プログラム | |
JP2015176282A (ja) | 画像処理方法、画像処理装置、並びに、当該方法を実行するプログラム、及び、当該プログラムを記録する記録媒体 | |
TWI794953B (zh) | 檢查電路板之未經授權修改 | |
JP2009277971A (ja) | バンプ付き電子部品の実装装置および実装方法 | |
JP2019002888A (ja) | 電極抽出装置、電極抽出方法および電極抽出プログラム | |
JP6202739B2 (ja) | 基板の飛散半田ボール検査方法 | |
JP4862149B2 (ja) | クリームはんだ印刷の検査方法および装置 | |
JP2008298680A (ja) | 基板外観検査装置、基板外観検査方法及びそのプログラム | |
JP2010028067A (ja) | 印刷回路基板の製造方法及びその製造装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20130401 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20131008 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20131021 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5408376 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |