マシンビジョンでは、画像中の「エッジ」(物体と背景または物体同士の境界)を検出することが非常に重要です。
特にFA(ファクトリーオートメーション)現場では、ワークの寸法測定や位置決め、外観検査などにエッジ検出が多用されます。
エッジ検出は、画像の階調(輝度)の急激な変化部分を抽出する手法であり、画像処理の基本的な工程です。本コラムでは、まずエッジ検出の基本的な考え方と代表的な手法を解説し、その上で実務的なポイントや応用例、注意点を詳しく紹介します。
エッジ検出の基本
エッジとは「画像内の濃淡(明るさ)の変化が急激に起こる部分」で、物体の輪郭や段差などに対応します。数学的には濃淡値の一階微分(勾配)が大きい点を指し、変化が大きいほどエッジがはっきりします。
画像はピクセル単位の輝度値の集合なので、隣接するピクセル間の差分(傾き)を計算することでエッジを検出します。
エッジ検出の基本的な処理は「畳み込み演算」によるもので、中心画素とその周辺画素に対して所定のフィルタを掛け合わせて出力画素を計算します。
一般的なエッジ検出フィルタは縦横方向の成分を別々に検出し、最後に合成して輪郭線を強調します。
雑音・微小な凹凸への対策
実際の撮像ではノイズやワーク表面の微細な凹凸で不要なエッジが混じることがあります。
そのため、エッジ検出前に平滑化(ぼかし)フィルタをかけてノイズを低減させることが一般的です。
例えばメディアンフィルタやガウシアンフィルタを適用することで、小さな凹凸やゴミによる誤検出を抑え、目的とするエッジを明瞭にします。
また、ピクセルの階調幅を増やしたり、カメラの露光を適切に調整してコントラストを確保することも重要です。
代表的なエッジ検出手法
エッジ検出にはさまざまなアルゴリズムがありますが、FA分野でよく用いられる代表例を紹介します。
ソーベルフィルタ (Sobel)
3×3の微分フィルタで、左右(横方向)と上下(縦方向)の2種類のカーネルを用い、各方向の勾配を計算します。
両方向の結果を合成してエッジ強度を得ます。
ソーベルフィルタは平滑化効果も若干あるためノイズに多少強く、実装も簡単なため広く利用されています。ただし高周波ノイズにはやや弱いので事前にぼかしが必要です。
プレウィットフィルタ (Prewitt)
ソーベルに似た一次微分フィルタです。
プレウィットはソーベルとほぼ同様の構造で、やや大雑把な傾向があります。
ラプラシアンフィルタ (Laplacian)
画像の二次微分を用いるフィルタで、どちらの方向でもエッジに同じ感度を持ちます。
縦横の変化だけでなく斜め方向も検出するのが特徴です。
ラプラシアンはエッジで符号が変わる(ゼロクロス)地点を探す処理になります。
ノイズに敏感なため、前処理でガウシアンぼかし(Laplacian of Gaussian, LoG)を併用することが多いです。
LoGはガウスぼかし+二次微分で、比較的滑らかなエッジを得られます。
キャニー法 (Canny)
エッジ検出アルゴリズムの定番手法で、複数ステップからなります。
まずガウシアンフィルタで画像を平滑化し、次にソーベル等で一次微分(勾配)とその方向を求めます。
その後、勾配マップ上で非最大値抑制(NMS)を行いエッジを1画素幅まで細くします。
最後に二つの閾値による二値化とヒステリシス処理で信頼度の高いエッジを残します。
Canny法は多段階の処理によって高精度・低ノイズのエッジを検出できますが、処理負荷は高めです。
これら以外にも、差分二値化やモルフォロジーを用いた簡易的な輪郭検出手法、ディジタル微分(ロバーツ法)などがありますが、現場では上記のフィルタ・アルゴリズムが基本となります。
エッジ検出の結果は勾配大きさマップや二値化画像などで得られ、必要に応じて輪郭抽出(座標点列へ変換)や形状マッチングへつなげます。
実務上の前処理と調整ポイント
現場でエッジ検出を活用する際には、フィルタ選択の他にも様々な前処理・パラメータ調整が重要です。
ノイズ対策と平滑化
画像のランダムノイズや粒状感、ワーク表面の細かい凹凸は誤検出の原因です。
ガウシアンぼかしやメディアンフィルタ、ボックスフィルタなどで事前に平滑化し、エッジとは関係ない小さな変化を除去します。
例:溶接ビードや塗装の凹凸などがある場合、メディアンフィルタで平滑化すると主要な輪郭だけが浮かび上がり、寸法測定や位置決めが安定します。
閾値設定
多くの手法で、検出結果から輪郭を抽出する際に閾値による二値化を行います。
閾値が低すぎるとノイズが大量にエッジとして検出され、高すぎると目的の輪郭が抜けてしまいます。
単純な固定閾値のほか、局所的に輝度が変動する場合は適応閾値やブロックごとに異なる閾値を用いることもあります。
現場ではまずは試験画像で最適な閾値を探り、さらに照明変動に強いパラメータ設定や自動調整機能を組み込むことが求められます。
ROI(Region of Interest)活用
全画像を対象にすると計算コストが増え、無関係な部分のエッジも多数検出されます。
ワークが移動するライン上では、物体が写る領域だけをROIとして絞り込むことで検出精度と処理速度が向上します。
特に高速ラインや高解像度カメラではROIを設定し、対象以外のバックグラウンドを除外するのが常識です。
ROIは固定領域でもよいですが、前フレーム結果から動的に追従させる方法(トラッキング)もあります。
エッジ後処理
検出したエッジ輪郭には途切れやギザギザが生じることがあります。
必要に応じて膨張/収縮処理(モルフォロジー演算)で穴埋めしたり細い線をつなげたりします。また、輪郭線を滑らかにするためにポリラインフィッティングやサブピクセル補間を行う場合もあります。
これらは主に寸法測定や輪郭マッチングで精度を上げる用途です。
照明・撮像条件のポイント
エッジ検出の精度は撮像条件に大きく依存します。
照明とカメラの設定を適切にすることで、エッジがクッキリ撮れ、誤検出が減ります。
照明方式
対象物と背景のコントラストが高くなる照明方式を選びます。
例えば、対象物の輪郭を得るには背景を強く透過(バックライト)させてシルエット状に撮る透過照明が有効です。
また、エッジ部分にだけ光があたらよう斜め方向からのリング照明やローアングル照射も、チップ部品や凹凸がある被写体で輪郭を際立たせるのに適しています。
平面物の表面キズ検査では同軸落射(正反射光)が傷に対する反射を捉えます。
照明の選定では被写体の形状・材質・色・表面状態を踏まえ、正反射・拡散照射・透過光のいずれかを選びます。
影と反射
点光源や硬い光源は影を作り、影のエッジが偽エッジとして検出されてしまいます。
均一な拡散光や複数光源で影を減らすのが一般的です。
逆に、本当に検出したいエッジにのみ陰影をつけるために、リング照明で光を回り込ませて凹部の縁だけ浮かび上がらせる使い方もあります。
光沢や金属反射であまりにも強いハイライトが出る場合は、偏光フィルターや赤外光など波長選択を工夫することもあります。
ピントと露光
エッジはシャープに撮る必要があります。
ピントが外れるとエッジがぼやけて検出困難になり、露光オーバーやアンダーでも階調が壊れてエッジが薄れてしまいます。
FAシステムではオートフォーカス機能付きのインラインカメラや、一定の距離をキープできる機械的フォーカス設定を行います。
シャッタースピードを早くしてモーションブラーを防ぐのも大事です。
リアルタイム処理の考慮点
FA現場では高速ラインでリアルタイム処理することも多く、エッジ検出でも計算負荷と速度のバランスを考慮します。
まず、ROIや解像度の絞り込みで処理する画素数を減らすことが重要です。
次に、ソーベルなどの比較的軽量なフィルタを選んでハードウェアアクセラレーション(GPUやFPGA)の利用を検討します。
複数フレームのタイミング同期が必要な場合は、カメラのトリガ機能やバッファリングを活用します。
また、設定した閾値やパラメータが照明変動やライン速度のばらつきでずれないよう、システム立ち上げ時にキャリブレーションしておくか、リアルタイムに調整するアルゴリズムを組み込みます。
特にコの字の歪み補正やスケール補正が必要な場合は、あらかじめ幾何補正を施すこともあります。
FAにおける活用事例
エッジ検出はFA業界の多くの場面で役立っています。以下に代表的な例を挙げます。
位置決め/アライメント
ロボットアームやステージの基準位置を決める際、部品のエッジ位置を検出してワークの位置・姿勢を合わせます。
例えば基板のコネクタ位置や部品の外形エッジを捉えて、次工程の搬送や組付け方向を決定します。エッジ検出結果はパターンマッチングの前段階としても使われます。
寸法測定
ワークの幅や穴の径などを測るには、対象物の左右エッジを検出してその距離や角度を計算します。エッジ検出による寸法検査は高速かつ非接触で行え、コンベア上を流れる部品の品質チェックに適しています。
例えば円板ワークの内径や外径を、輪郭のピーク間距離として算出します。
投影処理(エッジ検出方向に沿って輝度を積分する手法)と組み合わせると、ノイズや不均一な明暗の影響を減らしながら寸法精度を高められます。
外観検査
部品表面の傷やヒビ、欠け、型崩れなどはエッジとして表れることがあります。
エッジ検出で輪郭を得た後、基準形状と照合して異常な突出や欠損を見つけます。
たとえば透明容器の口の欠け検査や電子部品リードの曲がり検出では、エッジベースの手法が高速処理で利用されています。
パターン認識の補助
テンプレートマッチングや機械学習による検出の前処理として、エッジ情報を用いる例があります。物体の輪郭を白黒化して特徴量を算出すると、照明のばらつきを抑制し安定した認識につながります。
製造ラインでは形状やマークの輪郭を抽出して、機械学習モデルの入力とすることで、ノイズに強い判別が可能になります。
ピック&プレース
ばら積み部品の吸着位置検出にエッジ情報を使うこともあります。
特にワークの縁の形が一定の場合、輪郭を高速検出することでエッジから吸着位置までの距離を計算し、ロボットアームの動作精度を上げられます。
応用上の注意点・限界
エッジ検出は汎用性が高い反面、いくつかの課題や限界があります。現場で注意すべきポイントを列挙します。
低コントラスト領域
対象物と背景の明暗差が小さい場合、エッジ信号が弱くなり検出失敗の原因となります。
類似した色や照度の背景では、対象の縁が目立たずノイズに埋もれてしまいます。
この対策には照明でコントラストを強めるか、カラーチャンネルを切り替える(赤外や特殊波長照明など)、さらにはテクスチャなど別の特徴量を併用する方法があります。
エッジの消失
被写体が曲面状であったり焦点が外れていると、エッジがぼやけて「ない」ように見えます。
ワーク表面の油膜や指紋、光沢のムラなどで局所的にエッジが途切れることもあります。
また、透過物体や半透明物は内部構造で誤検出する場合があります。複数の角度から照明を当てたり、カメラのピントをこまめにチェックすることで対応します。
過検出(誤検出)
細かい模様や文字、汚れ、凹凸など本来無視すべき微小構造までエッジとして抽出されてしまうことがあります。
画像全体に多数のエッジがあると後処理が煩雑になります。
解決策として、検出後に面積や長さで不要な輪郭をフィルタリングしたり、形状に合わない線分を除去する工夫が考えられます。
また、閾値を厳しめに設定して微弱なエッジをカットする手法も有効です。
環境変化への弱さ
エッジ検出は撮影条件に依存しやすいため、明るさの変動や温度変化によるカメラノイズの変動で結果がぶれることがあります。
現場では定期的な校正や、安定光源を使用して環境影響を抑えます。
また、完全な自動化環境では、常に同じ照明・カメラ設定に保つことが基本になります。
おわりに
FA現場での画像処理において、エッジ検出は極めて基本的かつ応用範囲の広い技術です。
適切なフィルタ選択や前処理、照明設計によって得られるエッジ情報は、位置決め、寸法測定、外観検査など多彩なタスクで有用です。
一方で、照明やワーク性状によってはエッジが不安定になりやすく、実務では「どのエッジを捉えるか」を十分に検討する必要があります。
エッジ検出技術をうまく活用するには、理論だけでなく現場ごとの条件把握が不可欠です。