PCB孔位置検出におけるチェーンコードテーブルと線分テーブルの応用概要:本文は業界におけるプリント回路基板(printed circuit Board)孔の位置付けを研究し、対称PCB板パンチ機の目的を達成した。CCDで収集された画像に対して有効な前処理を行い、チェーンコードテーブルと線分テーブルを結合して、PCB穴の重心位置を正確かつ迅速に決定する。本論文の方法は重心を0.001画素レベルまで正確に検出することができる。穴の面積、周囲、形状、重心を探し出します。この方法はVC++6.0プラットフォームで成功的に実行し、プログラミング速度が速く、リアルタイム、正確、知能、ロット検査を実現でき、PCBボード検査の品質と速度を大幅に向上させた。
紹介
自動光学検出(AOI、Automated Optical Inspection)は近年出現した視覚検出方法である。CCDによって画像を取得し、コンピュータ処理と解析によって欠陥と障害を判断します。AOIのPCB生産ラインへの応用は検出速度が速く、プログラミング時間が短く、画像の大量量知能検出制御などの利点がある。工業技術の発展に伴い、PCB板の孔径寸法に対する要求はますます高くなり、機械の量産に対する要求もますます高くなっている。本文は穴計数機を生産する会社のプロジェクトに由来する。技術要求はPCB孔位置の最小半径が0.2 mmであり、各PCBには2000個までの丸孔がある。総処理時間は10 sを超えない。処理した結果。中心は0.01ピクセルレベルまで正確で、各中心とテンプレート中心の偏差は25 umを超えてはならない。80%の中心偏差がこの指標を超えると、不合格とみなされ、設備基準を調整する必要があります。
「エッジ」とは、画像中の画素の階調レベルが段階的に変化したり、屋根状に変化したりする画素の集合を意味する。ターゲットとバックグラウンド、ターゲットとターゲット、領域と領域、プリミティブとプリミティブの間に存在します。彼は画像認識と分析に非常に役立つ。エッジはターゲット物体の輪郭を描画し、観察者を一目で見ることができ、豊富な情報が含まれている[1]。そのため、穴の位置情報を得るには、まずエッジ検出と輪郭追跡を行う必要があります。freemanチェーンコードを使用してエッジの輪郭を追跡し、チェーンコードテーブルとセグメントテーブルを使用してデータを保存して処理します。
1画像収集と前処理
(1)本論文では、バックライトと高解像度カメラを用いて、高コントラストと高品質の画像を得る。画像の解像度は409*096です。画像ソースの品質は非常に重要で、それは後続の画像処理に直接影響します。
(2)ノイズの影響を最大限に低減または除去し、画質を向上させることを目的としたメジアンフィルタを用いた画像の平滑化処理。中央値フィルタリングは一定の条件下で最小二乗フィルタリング、平均値フィルタリングなどの線形フィルタによる画像細部のぼやけを克服でき、パルス干渉と画像走査ノイズのフィルタ除去に最も有効である。本明細書で扱う画像については、PCBプレート穴の詳細に欠陥があるため、中央値フィルタリングがより適切である。画像のエッジを破壊することなくノイズを除去できるという利点があります。
(3)OSTU(クラス間最大分散法)を用いた閾値分割。この方法は簡便、安定、有効である。最小関数と平法の原理を判断した上で閾値を自動的に選択する二値化方法である。その思想は画像を分割することである。ヒストグラムは一定の階調で2つのグループに分けられる。分割された2つのグループの分散が最も大きい場合は、階調レベルを最適な閾値に設定する[2]。
2画像のデータ結果を記述するためにチェーンコードテーブルとセグメントテーブル[3]を使用する
(1)フリーマンチェーンコード輪郭を用いてフリーマンチェーンコードを追跡する[4]は、8連と4連のチェーンコードに分けられる。8つの連結リンクコードは、中心画素が8つの隣接部を指す方向によって定義され、4つの連結リンクは中心画素を使用する。隣接する4つの方向を指し、値は0桁3です。本文は1つの8連鎖コードを使用して、下の図2に示すように、8連鎖コードは時計回りに回転して、時計回りに45度回転する時、鎖コードの値は1減少します;チェーンコードの値が4だけ増加すると、方向が反転し、8が追加されます。そして元の方向に戻ります。チェーンコード値が8を超えるか0を下回る場合は、モード8演算を使用して8を除去または追加します。
(2)チェーンコードテーブルの適用
PCBボード上の単一の穴の追跡には、Freemanチェーンコード法を用いて対象物体の境界チェーンコードを取得する。ポイント上でターゲットボディのグレースケールを検索すると、そのポイントがターゲットボディの境界点になります。ポイントが符号化されていない場合、ポイントは穴の位置の始点です。この点から、フリーマンチェーンコードによる輪郭追跡を行うことで、境界上の各点のチェーンコード値を追跡することができ、中心点と隣接点の座標偏差値に基づいて表1に示すことができる。各境界点の座標は始点の座標から得ることができ、始点の座標は2次元配列incとして表すことができる[8][2]。
具体的な符号化手順は、対象物体の階調をG 1、背景階調をG 2に設定する。PCBボード全体の画像を検索します。ある点aがG 1の階調レベルを満たす場合、それは境界点とみなされる。Aから始まり、穴位置の境界を時計回りに検索し、初期値は4に等しいチェーンコード値として定義されます。方向に次の点を検索します。次のポイントの階調値がG 1に等しい場合は、次の境界ポイントになります。そうでなければ、検索方向を時計回りに45度回転させ、チェーンコード値を3にしてその点を検索し続けることで、G 1に等しい階調値を満たす最初の点A点Bが常に見つかります。次に、Bを新しい境界点に設定し、トレース終了フラグを0に設定します。隣接点に境界点が見つからない場合は、孤立点であることを示すトレース終了フラグを1に設定します。
点Bを新しい境界点とします。そのチェーンコード値を開始チェーンコードの方向とします。最後の境界点がA点になるまで、上述の追跡を時計回りに繰り返します。単孔ビットマップを追跡し、領域を色で塗りつぶしてマークします。これは、検索され、追跡されたチェーンコード値がチェーンコードテーブルに格納されていることを意味します。本文はチェーンコードテーブルを1次元整数配列コード[]に格納し、下付き0と1の格納内容はそれぞれ開始境界点の座標XとYであり、チェーンコード総数は下付き2のユニットに格納する。数字Nは下付き3のユニットから始まり、第1境界点のチェーンコード値、第2境界点のチェーンコード値を格納する。最後のN番目の境界点までのチェーンコード値。
3セグメントテーブル
(1)線分テーブルの定義
チェーンコードテーブルはターゲット体の境界を表すことしかできず、境界の内外を表すことができないため、チェーンコードテーブルはターゲット体内部の画素を表すことはできないが、実際には、チェーンコードテーブルは画像の境界点と周長を得るほか、本文で得られた穴中心データと面積などの他のパラメータを得ることができ、内部画素の処理と計算を実現するためには、もう一つの構造である線分テーブルが必要である。
この領域は水平線分からなるとみなすこともできます。各線分セグメントは、2つの端点で表すことができます。スイープ平滑配置領域内のすべての水平線分に基づいた端点テーブルを線分テーブルと呼びます。セグメントテーブルの各ポイントは2つのセクションで構成されています。偶数点は左端点の座標、奇数点は右端点の座標を表す。線分テーブルを表す構造DOTが定義されている場合は、1次元配列DOT[]を使用して、iに線分を表します。この線分の左端はDOT[2*i]、右端はDOT[2*i+1]と表すことができます。
(2)線分テーブルの適用
線分テーブルは各線分と線分の端点値を取得するので、計算によって簡単に領域の内部ピクセルを取得することができ、また画像の他の重要なパラメータ、例えば本文で必要なパラメータ、計算領域の面積、重心、領域をすばやく塗りつぶす(重複検索を回避し、効率を高める)、面積の形状パラメータ、式は:F=L*L/4ルツボS
このプロジェクトの目的は円孔の中心を検出することであるため、特に領域の形状検出に重要である。上の式では、Lは周長、Sは面積です。この比率で得られた形状パラメータFは、円の形状パラメータである。1.1との差が大きいほど、円の形状との差が大きくなります。PCB孔と円心の孔数を計算するために、この形状パラメータを用いて判断することができる。1に近づくと、丸穴が処理されているように近似できます。そうしないと、結果に記録されない非丸穴カラーマーカーが直接塗りつぶされます。
(3)チェーンコードテーブルからセグメントテーブルへの変換[5]
セグメントテーブル表現を使用して画像を取得できる他の重要なパラメータを表し、チェーンコードテーブルからセグメントテーブルへの変換は表2に従って行うことができます。
具体的な手順は次のとおりです。
表の変換を経て、チェーンコードは3つのタイプを得る[6]:中点、タイプ番号0、左端、タイプ番号1、右端、タイプ番号2、特異点、タイプ番号3。チェーンコードテーブルのデータに基づいて、着信チェーンコード値と発信チェーンコード値を知ることができ、この2つの点の方向のタイプを決定することができます。プログラミングでは、表3に基づいてポイントタイプを判断することができます。左端点と右端点の場合、座標は一時アレイに格納されます。特異点は左右同じ点の重なりと見なすことができ、つまり、2回保存すべきであり、中間に点を保存しないようにしなければならない。セグメントテーブルの端点はY座標のサイズでソートされ、同じ行の端点はX座標のサイズでソートされます。
4実験結果
本実験では、本プロジェクトのPCB画像をスクリーンショットし、充填後の画像を処理、スクリーンショット、処理する。
ここでは、アルゴリズムとプログラムを使用してスクリーンショットを処理し、チェーンコードテーブルとセグメントテーブルを使用してデータを保存し、PCB穴の位置に関するパラメータ情報を得ることができます。
5結論
本文はバックライトを利用して高品質のPCB画像を獲得し、OSTU閾値分割方法を利用して安定して簡単にソース画像の二値画像を獲得し、スキャンして輪郭追跡を行い、そして右へ次の点を追跡する原理を利用する。それはもっと十分に準備されていて、時間もかかりません。チェーンコードテーブルと線分テーブルはデータとデータ処理を格納し、PCBボードの周長、面積、穴セントロイドを正確に取得するのに非常に便利で、PCBボードのパンチ時の位置決め問題を解決することに成功した。この実験はVisual C++ソフトウェアプラットフォーム上で実行され、検証されている。31 us内で216個の丸穴を検出して処理することができ、このプロジェクトに必要な速度と精度を得ることができます。結果はこの方法が実行可能であることを証明した。