画像処理のあれこれ4 輝度補正処理

はじめに

こんにちは。アダコテックの伊藤です。
外観検査の自動化を実現しようと色々評価を行っていると
 1. ある欠陥は正常部分との差異が小さく検出が困難
 2. 外乱の影響(人の影とか)により照明条件が安定せず、画像ごとに輝度
       がばらついて過検出が多い
という様な色々な問題に直面する事があります。
(慎重に検証を重ねて、実環境へのシステム導入後に問題が発覚する事も、多々あります。)

こういった問題を解決するために撮像環境を見直しましょうと言うのは簡単ですが、実際に取り組むのは結構大変です。
(どう大変かは、弊社井上の記事をご覧下さい。)

そこで本記事では画像処理により、この様な課題を解決する方法を紹介したいと思います。

画像間の明るさのバラつき

照明の劣化、窓から入る日の光、ワークの微妙な凹凸の影響などにより撮影された画像の平均輝度をばらつく事あります。
例えば、下記2枚の画像は左側の画像の方がやや画像が暗い事にお気づきになるでしょうか?

画像1

ピクセル値のヒストグラムで確認すると左側の画像の方が、やや暗い事が解ります。

画像2

検出したい欠陥も目視困難な微妙なものなので、これくらいの変動でも結構誤報として検出するケースが多いです。

このような場合、正規化処理により画像間の明るさのバラつきを無くす事を考えます。
計算手順としては入力画像Iの各ピクセル座標に対するピクセル値I(x,y)から正規化係数I_minとI_maxを計算します。
計算方法としては、
 ・I_min = MIN(I(x,y))、I_max = MAX(I(x,y)
    ・I_min = μ - nσ、I_max=μ+nσ (μ = 画像Iの平均輝度、σ=画像Iの標準偏差)
などが考えられます。
正規化処理適用後のピクセル値I'(x,y)は
 I'(x,y) = MAX(MIN(255 * ((I(x,y) - I_min) / (I_max - I_min)), 255), 0)
の式で計算します。

下記は補正処理の結果です。
輝度分布のズレが無くなっていることが確認できます。

画像3

画像4

結果を見て気が付いたんですが、右上分部と左下部分の明るさにも差がありますねこの画像。

画像内の明るさムラの補正

こういった画像内の明るさのバラつきを無くす方法としてシェーディング補正と言われる方法があります。

着目ピクセルI(x,y)を中心とした、N×Nピクセルの平均値をu(x,y)としたとき、補正処理適用後の輝度値I'(x,y)は、例えば
 I'(x,y) = MAX(MIN(I(x, y) - u(x,y) + 128, 255), 0)
の式で計算できます。

シェーディング補正処理を適用するとこんな感じ、画像間と画像内の明るさを補正する事ができます。

画像5

画像6

目視確認が困難な欠陥の協調

本日、紹介した処理を組み合わせると「明るさのバラつき抑制」と「目視確認が困難な欠陥の協調」を行う事ができます。

例えば、下記画像ですが赤丸内にも欠陥がある事にお気づきになるでしょうか?

画像7

この画像に対して、
 1. シェーディング補正処理で明るさのバラつきを補正
    2. 輝度補正処理で欠陥部位の協調
の順に画像処理を適用すると、

画像8

こんな感じで赤丸内の欠陥を強調できます。

おわりに

今回は明るさを補正するための画像処理手法を紹介しました。
ガウシアンフィルタなどでノイズ除去を行う事で、より欠陥を鮮明にした画像を生成する事が可能となります。

メンバー募集中です
アダコテックは上記のような画像処理技術を使って、大手メーカーの検査ラインを自動化するソフトウェアを開発している会社です。
機械学習や画像処理の内部ロジックに興味がある方、ご連絡下さい!
我々と一緒にモノづくりに革新を起こしましょう!
https://adacotech.co.jp/recruit

この記事が気に入ったらサポートをしてみませんか?