A.実施形態:
A−1.装置構成:
図1は、本実施形態におけるひび割れ検出装置100の構成を概略的に示す説明図である。ひび割れ検出装置100は、例えばパーソナルコンピュータやタブレット型端末、スマートフォン等の汎用コンピュータである。ひび割れ検出装置100は、記憶部110と、表示部(ディスプレイ)120と、入力部130と、インターフェース部140と、制御部170とを備える。これらの各部は、バス190を介して互いに通信可能に接続されている。
表示部120は、例えば液晶ディスプレイ等により構成され、各種の画像や情報を表示する。入力部130は、例えばキーボードやマウス、マイク等により構成され、ユーザの操作や音声による指示を受け付ける。インターフェース部140は、例えば、LANインターフェースやUSBインターフェース等により構成され、有線または無線により他の装置(例えば、撮像装置320)との通信を行う。
記憶部110は、例えばハードディスクドライブ(HDD)等により構成され、各種のプログラムやデータを記憶する。例えば、記憶部110には、後述するひび割れ検出処理を実行するためのひび割れ検出プログラムCPが格納されている。ひび割れ検出プログラムCPは、例えば、CD−ROMやDVD−ROM、USBメモリ等のコンピュータ読み取り可能な記録媒体(図示しない)に格納された状態で提供され、ひび割れ検出装置100にインストールすることにより記憶部110に格納される。
また、記憶部110には、画像データIdが格納されている。画像データIdは、例えば、対象物(本実施形態では、建築物310の壁)を、デジタルスチルカメラ等の撮像装置320で撮像することにより生成されたものである。画像データIdは、インターフェース部140を介してひび割れ検出装置100に入力され、記憶部110に格納される。
制御部170は、例えばCPUやROM、RAM等により構成され、記憶部110から読み出したコンピュータプログラムを実行することにより、ひび割れ検出装置100の動作を制御する。例えば、制御部170は、ひび割れ検出プログラムCPを読み出して実行することにより、後述のひび割れ検出処理を実行するひび割れ検出処理部200として機能する。ひび割れ検出処理部200は、表示制御部210と、候補検出処理部220と、候補確認処理部230とを含む。また、候補検出処理部220は、二値画像取得部222と、候補判定部224と、候補領域設定部226とを含む。また、候補確認処理部230は、矩形算出部232と、確認判定部234とを含む。これら各部の機能については、後述のひび割れ検出処理の説明に合わせて説明する。
A−2.ひび割れ検出処理:
次に、ひび割れ検出装置100により実行されるひび割れ検出処理について説明する。ひび割れ検出処理は、対象物を撮像した画像に対する画像処理を行うことにより、該画像からひび割れ(クラック)を検出する処理である。一般に、対象物に発生するひび割れは、線分の成分(すなわち、細長く、かつ、直線的に伸びる成分)を含んでいる。本実施形態では、このようなひび割れの特徴を利用して、精度の高いひび割れ検出処理を実現している。なお、本実施形態では、ひび割れ検出処理の対象物は、建築物310のタイル張りの壁(すなわち、壁状の構造物)である。
図2は、ひび割れ検出処理の実行時に表示部120に表示される画面(以下、「処理時画面S1」という)の一例を示す説明図である。処理時画面S1は、表示制御部210によって表示部120に表示される。処理時画面S1は、画像選択領域R1と、手法選択領域R2と、画像表示領域R3とを含んでいる。画像選択領域R1は、ひび割れ検出処理の対象となる対象画像IOを選択するための領域である。手法選択領域R2は、ひび割れ検出処理に使用する手法(アルゴリズム)を選択するための領域である。画像表示領域R3は、対象画像IO等を表示するための領域である。
処理時画面S1の画像選択領域R1には、記憶部110に記憶された画像データId(図1参照)の表す画像の識別子(ファイル名やサムネイル等)が、選択肢として表示される。画像選択領域R1に表示された画像の選択肢の中から、ユーザが入力部130を介して所望の画像(例えば、「画像1」)を選択すると、選択された画像が対象画像IOとして設定され、画像表示領域R3に表示される。なお、画像選択領域R1には、ひび割れ検出処理により検出されたひび割れの個数を表示する個数表示欄R11が含まれている。
また、処理時画面S1の手法選択領域R2には、ひび割れ検出処理を構成する後述の各処理(ひび割れ候補検出処理、ひび割れ候補確認処理)に使用する手法(アルゴリズム)の選択肢が表示される。手法選択領域R2に表示された複数の手法の中から、ユーザが入力部130を介して各処理についての所望の手法(例えば、ひび割れ候補検出処理の「手法A」、および、ひび割れ候補確認処理の「手法H」)を選択し、「実行」ボタンB1を選択すると、選択された手法を用いたひび割れ検出処理が開始される。なお、図2に示すように、本実施形態では、対象画像IOは、建築物310のタイル張りの壁が写った画像であり、画像を構成する各画素が256階調の濃度で表現されたグレースケール画像である。また、対象画像IOには、ひび割れを表す画素(以下、「ひび割れ画素Pc」という)や、ひび割れではないが、ひび割れの濃度に近い濃度を有する部分(例えば、対象物の表面の汚れ等)を表す画素(以下、「ノイズ画素Pn」という)が含まれている。
図3は、ひび割れ検出処理の流れを示すフローチャートである。まず、ひび割れ検出処理部200は、必要により対象画像IOに対する前処理を実行する(S120)。前処理としては、例えば、対象画像IOの濃度を補正する処理や、対象画像IOからタイルを表す画像領域(以下、「タイル領域」という)を抽出し、タイル領域以外の画像領域(目地の領域等)をひび割れ検出の対象範囲から除外する処理等が挙げられる。なお、タイル領域を抽出する処理は、公知の手法を用いて実行することができる。また、対象画像IOにおけるひび割れ検出の対象範囲が予め定められている場合には、タイル領域を抽出する処理が実行される必要はない。
次に、候補検出処理部220は、ひび割れ候補検出処理を実行する(S130)。ひび割れ候補検出処理は、対象画像IOから、ひび割れを表す画素である蓋然性の高いひび割れ候補画素Pccを含むひび割れ候補領域CCを検出する処理である。ひび割れ候補検出処理の内容については、後に詳述する。
次に、ひび割れ検出処理部200は、ひび割れ候補検出処理(S130)において、少なくとも1つのひび割れ候補領域CCが検出されたか否かを判定する(S140)。ひび割れ候補領域CCが検出されたと判定された場合には(S140:YES)、候補確認処理部230が、ひび割れ候補確認処理を実行する(S150)。ひび割れ候補確認処理は、対象画像IOから検出されたひび割れ候補領域CCが、真にひび割れを表す画像領域であるひび割れ領域CRであるか否かを確認する処理である。ひび割れ候補確認処理の内容については、後に詳述する。また、ひび割れ候補検出処理においてひび割れ候補領域CCが検出されなかったと判定された場合には(S140:NO)、ひび割れ候補確認処理(S150)はスキップされる。
次に、表示制御部210は、ひび割れ検出処理の結果を表示部120に表示させる(S160)。図4は、ひび割れ検出処理の結果を含む処理時画面S1の一例を示す説明図である。図4に示す処理時画面S1の例では、画像表示領域R3に表示された対象画像IO上に、検出されたひび割れ領域CRを示す画像(すなわち、ひび割れ候補画素Pccの少なくとも一部を示す画像)が表示されている。また、処理時画面S1の画像選択領域R1の個数表示欄R11には、対象画像IOから検出されたひび割れ領域CRの個数(例えば、1個)が示されている。ユーザは、ひび割れ検出処理の結果を示す処理時画面S1を通じて、対象画像IOに表された対象物(例えば、建築物310の壁)におけるひび割れの発生状況を把握することができる。
A−3.ひび割れ候補検出処理:
次に、ひび割れ候補検出処理(図3のS130)について詳細に説明する。上述したように、ひび割れ候補検出処理は、対象画像IOから、ひび割れを表す画素である蓋然性の高いひび割れ候補画素Pccを含むひび割れ候補領域CCを検出する処理である。図5は、ひび割れ候補検出処理の流れを示すフローチャートである。
はじめに、候補検出処理部220の二値画像取得部222は、対象画像(原画像)IOに対して二値化処理を実行し、二値画像(以下、「第1の二値画像」という)Ib(1)を取得する(S210)。図6は、第1の二値画像Ib(1)の一例を示す説明図である。図6には、第1の二値画像Ib(1)の一部分(図2のX1部に相当する部分)の構成が拡大して示されている。第1の二値画像Ib(1)は、対象物を、黒色を表す濃度値(本実施形態では、0)と、白色を表す濃度値(本実施形態では、255)との2階調で表現する画像である。すなわち、第1の二値画像Ib(1)は、黒色画素Pkと白色画素Pwとから構成された画像である。黒色を表す濃度値は、特許請求の範囲における第1の濃度値に相当し、白色を表す濃度値は、特許請求の範囲における第2の濃度値に相当する。なお、図6では、黒色画素Pkにハッチングを付している。
対象画像IOに対する二値化処理は、任意の公知の手法(例えば、判別分析法に従って画像のヒストグラムを参照した閾値決定を行い、該閾値を用いて画像を二値化する手法等)を用いて実行することができるが、本実施形態では、二値化処理として以下の処理を実行する。すなわち、グレースケール画像である対象画像(原画像)IOを構成する画素の中から注目画素を順次選択し、注目画素の濃度値を、注目画素の周辺に位置する複数の周辺画素の濃度値の平均値と比較する。なお、周辺画素の範囲は任意に設定することができ、例えば、注目画素の周りを取り囲む8つの画素とすることができる。複数の周辺画素の濃度値の平均値に対して注目画素の濃度値が小さい場合(すなわち、白色を表す濃度値(255)に対する黒色を表す濃度値(0)の大小関係と一致する場合)には、注目画素の濃度値を、黒色を表す濃度値(すなわち、0)に変換する。また、複数の周辺画素の濃度値の平均値に対して注目画素の濃度値が大きい場合(すなわち、白色を表す濃度値(255)に対する黒色を表す濃度値(0)の大小関係と一致しない場合)には、注目画素の濃度値を、白色を表す濃度値(すなわち、255)に変換する。これにより、白色画素Pwと黒色画素Pkとにより構成された第1の二値画像Ib(1)が生成される。なお、対象画像IOに対して二値化処理を行った二値画像Ibは、必ずしも画像として表示される必要はない。
グレースケール画像である対象画像IOにおいて、ひび割れを表すひび割れ画素Pcの濃度値は、黒の濃度値に近い。そのため、対象画像IOの二値化処理により生成された第1の二値画像Ib(1)においては、ひび割れ画素Pcは黒色画素Pkとなる。ただし、第1の二値画像Ib(1)における黒色画素Pkが、すべてひび割れ画素Pcであるとは限らない。すなわち、対象画像IOに含まれる、ひび割れではないが、ひび割れの濃度に近い濃度を有する部分(例えば、対象物の表面の汚れ等)を表すノイズ画素Pnも、第1の二値画像Ib(1)において黒色画素Pkとなる場合がある。図6に示す例では、第1の二値画像Ib(1)中に、ひび割れ画素Pcである黒色画素Pkに加えて、ノイズ画素Pnである黒色画素Pkが含まれている。
次に、候補検出処理部220の候補判定部224は、第1の二値画像Ib(1)を対象として、第1のハーフラインフィルタ処理を実行する(S220)。図7は、第1のハーフラインフィルタ処理の流れを示すフローチャートである。また、図8は、第1のハーフラインフィルタ処理の概要を示す説明図である。図8では、ひび割れ画素Pcにより構成される領域、および、ノイズ画素Pnにより構成される領域が太い破線で示されている(図9,10,13においても同様)。
まず、候補判定部224は、第1の二値画像Ib(1)を構成する画素の1つを注目画素SPとして選択する(S221)。なお、本実施形態では、注目画素SPを、第1の二値画像Ib(1)を構成する黒色画素Pkの中から選択する。ただし、注目画素SPを、第1の二値画像Ib(1)を構成するすべての画素の中から選択するとしてもよい。図8には、3つの注目画素SP(SP(1),SP(2),SP(3))が例示されている。なお、実際には、複数の画素が注目画素SPとして同時に選択されることはなく、各画素が1つずつ順番に注目画素SPとして選択される。
次に、候補判定部224は、第1の二値画像Ib(1)上に、注目画素SPを端点とし、所定の長さL1を有し、互いに異なる所定の傾きを有する複数の仮想線分SLを設定する(S222)。図8には、各注目画素SPについて、45度ずつ傾きが異なる8本の仮想線分SLが例示されており、各仮想線分SLの長さL1は5画素分とされているが、仮想線分SLの本数や長さは、任意に設定可能である。
候補判定部224は、各仮想線分SLについて、「仮想線分SL上に位置する画素の内の所定の割合RA1以上の画素の濃度値が黒色画素Pkの濃度値に一致する(すなわち、所定の割合RA1以上の画素が黒色画素Pkに該当する)」という条件(以下、「第1の条件」という)を満たすか否かを判定する(S223)。このときの所定の割合RA1は、例えば、80%〜100%の範囲内の1つの値に設定される。例えば、図8に示された注目画素SP(1)について設定された2つの仮想線分SL(仮想線分SL(1)およびSL(2))については、仮想線分SL上に位置する画素のすべてが黒色画素Pkに該当するため、上記第1の条件を満たすと判定される。一方、図8に示された注目画素SP(1)について設定された他の仮想線分SL(3)については、仮想線分SL上に位置する画素の内、黒色画素Pkに該当する画素の割合が低い(RA1未満である)ため、上記第1の条件を満たさないと判定される。
また、候補判定部224は、上記第1の条件を満たす仮想線分SLの中に、傾きが互いに180度異なる(すなわち、注目画素SPを通る1つの仮想的な直線上に位置する)2つの仮想線分SLの組(以下、「条件満足線分対」という)が存在するか否かを判定する(S224)。この判定は、換言すれば、複数の仮想線分SLの内、傾きが互いに180度異なる2つの仮想線分SLの両方について、仮想線分SL上に位置する画素の内の所定の割合RA1以上の画素の濃度値が黒色画素Pkの濃度値に一致する、という第1の条件が満たされるか否かの判定である。
候補判定部224は、条件満足線分対が存在すると判定した場合には(S224:YES)、現在選択されている注目画素SPを、ひび割れを表す画素である蓋然性の高いひび割れ候補画素(以下、「第1次ひび割れ候補画素」という)Pcc1に設定する(S225)。一方、候補判定部224は、条件満足線分対が存在しないと判定した場合には(S224:NO)、注目画素SPを第1次ひび割れ候補画素Pcc1に設定する処理(S225)をスキップする。例えば、図8に示された注目画素SP(1)について設定された2つの仮想線分SL(仮想線分SL(1)およびSL(2))は、傾きが互いに180度異なる2つの仮想線分SLの組であり、かつ、両方が上記第1の条件を満たしている。そのため、条件満足線分対が存在すると判定され、このときの注目画素SP(1)が第1次ひび割れ候補画素Pcc1に設定される。なお、図8に示された他の注目画素SP(2)についても、同様に、条件満足線分対が存在すると判定され、第1次ひび割れ候補画素Pcc1に設定される。一方、図8に示された他の注目画素SP(3)については、条件満足線分対が存在しないと判定され、第1次ひび割れ候補画素Pcc1には設定されない。
候補検出処理部220は、対象となる画素のすべてについて注目画素SPとしての選択が完了したか否かを判定し(S226)、注目画素SPの選択が完了していない(すなわち、未選択の対象画素がある)と判定した場合には(S226:NO)、S221に戻って上述の処理を繰り返す。一方、候補検出処理部220は、対象となる画素のすべてについて注目画素SPとしての選択が完了したと判定した場合には(S226:YES)、第1のハーフライン処理を終了する。
図9は、第1のハーフラインフィルタ処理の結果の一例を示す説明図である。図9では、第1のハーフラインフィルタ処理において第1次ひび割れ候補画素Pcc1に設定された画素にハッチングが付されている。上述したように、一般に、ひび割れは、線分の成分を含んでいる。そのため、第1のハーフラインフィルタ処理では、仮想線分SLの長さの2倍分の線分上に位置する画素の内の一定割合以上が黒色画素Pkであれば、そのときの注目画素SPはひび割れを表す画素である蓋然性が高いひび割れ候補画素であると判定している。図9に示された例では、真にひび割れを表すひび割れ画素Pcの大部分が、第1次ひび割れ候補画素Pcc1に設定されている。また、図9の左上付近に示されたノイズ画素Pnはすべて、第1次ひび割れ候補画素Pcc1には設定されていない。すなわち、これらのノイズ画素Pnが誤ってひび割れとして検出される誤検出の発生が防止されている。ただし、図9の右下付近に示されたノイズ画素Pnは、比較的細長い一群の領域を構成しているため、該ノイズ画素Pnの一部は、誤って第1次ひび割れ候補画素Pcc1に設定されている。
なお、上述した内容の第1のハーフラインフィルタ処理は、実際には、フィルタを用いた画像処理により実現される。後述する第2のハーフラインフィルタ処理についても同様である。
第1のハーフラインフィルタ処理(図5のS220)の完了後、候補検出処理部220は、拡張処理を実行する(S230)。上述した第1のハーフラインフィルタ処理では、真にひび割れを表すひび割れ画素Pcの一部、具体的には、一群のひび割れ画素Pcにより構成される領域の縁部(特に、ひび割れの長手方向の縁部)に位置するひび割れ画素Pcが、第1次ひび割れ候補画素Pcc1に設定されないことがある。そのため、候補検出処理部220は、第1のハーフラインフィルタ処理により設定された一群の第1次ひび割れ候補画素Pcc1により構成される領域を拡張し、拡張された領域に含まれる画素の内、第1のハーフラインフィルタ処理において第1次ひび割れ候補画素Pcc1として設定されなかった画素を、第1次ひび割れ候補画素Pcc1に修正する。このような拡張処理は、例えば、モルフォロジー(morphology)演算により実現することができる。
候補検出処理部220は、第1の二値画像Ib(1)を基に、拡張処理の完了時における第1次ひび割れ候補画素Pcc1の濃度値を、黒色を表す濃度値(すなわち、0)に変換し、それ以外の画素の濃度値を、白色を表す濃度値(すなわち、255)に変換することにより、変換後の二値画像(以下、「第2の二値画像」という)Ib(2)を生成する。なお、第2の二値画像Ib(2)は、第1の二値画像Ib(1)における(拡張処理前の)第1次ひび割れ候補画素Pcc1の濃度値が黒色を表す濃度値に変換され、(拡張処理前の)第1次ひび割れ候補画素Pcc1以外の画素の少なくとも一部の濃度値が白色を表す濃度値に変換された二値画像であると言える。
図10は、拡張処理の結果の一例を示す説明図である。図10には、第2の二値画像Ib(2)上において、第1次ひび割れ候補画素Pcc1に設定された画素にハッチングが付されている。図10を図9と比較すると明らかなように、拡張処理の実行前から第1次ひび割れ候補画素Pcc1として設定されていた画素により構成される領域は、拡張処理によって拡張される。なお、拡張処理の完了時における第1次ひび割れ候補画素Pcc1により構成される領域は、ひび割れ画素Pcにより構成される領域と完全に一致するとは限らないが、両者は概ね一致する。
次に、候補判定部224は、第2の二値画像Ib(2)を対象として、第2のハーフラインフィルタ処理を実行する(図5のS240)。図11は、第2のハーフラインフィルタ処理の流れを示すフローチャートである。また、図12は、第2のハーフラインフィルタ処理の概要を示す説明図である。図12では、第1次ひび割れ候補画素Pcc1により構成される領域が太い一点鎖線で示されている。
まず、候補判定部224は、第2の二値画像Ib(2)を構成する第1次ひび割れ候補画素Pcc1の1つを注目画素SPとして選択する(S241)。図12には、2つの注目画素SP(SP(1),SP(2))が例示されている。なお、実際には、複数の画素が注目画素SPとして同時に選択されることはなく、各画素が1つずつ順番に注目画素SPとして選択される。
次に、候補判定部224は、第2の二値画像Ib(2)上に、注目画素SPを端点とし、所定の長さL2を有し、互いに異なる所定の傾きを有する複数の仮想線分SLを設定する(S242)。図12には、各注目画素SPについて、45度ずつ傾きが異なる8本の仮想線分SLが例示されており、各仮想線分SLの長さL2は10画素分とされているが、仮想線分SLの本数や長さは、任意に設定可能である。ただし、第2のハーフラインフィルタ処理において設定される仮想線分SLの長さL2は、第1のハーフラインフィルタ処理において設定される仮想線分SLの長さL1より長い(L2>L1)。長さL2は、長さL1の2倍以上であることが好ましい。
候補判定部224は、各仮想線分SLについて、「仮想線分SL上に位置する画素の内の所定の割合RA2以上の画素の濃度値が黒色画素Pkの濃度値に一致する(すなわち、所定の割合RA2以上の画素が黒色画素Pkに該当する)」という条件(以下、「第2の条件」という)を満たすか否かを判定する(S243)。このときの所定の割合RA2は、第1のハーフラインフィルタ処理における上記割合RA1より低く、例えば、60%〜80%の範囲内の1つの値に設定される。
候補判定部224は、上記第2の条件を満たす仮想線分SL(以下、「条件満足線分」という)が存在するか否かを判定し(S244)、条件満足線分が存在すると判定した場合には(S244:YES)、現在選択されている注目画素SPを、新たなひび割れ候補画素(以下、「第2次ひび割れ候補画素」という)Pcc2に設定する(S245)。すなわち、第2次ひび割れ候補画素Pcc2は、第1のハーフラインフィルタ処理においてひび割れ候補画素(第1次ひび割れ候補画素Pcc1)であると判定された画素の内、第2のハーフラインフィルタ処理においてもひび割れ候補画素(第2次ひび割れ候補画素Pcc2)であると判定された画素であり、更新されたひび割れ候補画素であると言える。一方、候補判定部224は、条件満足線分が存在しないと判定した場合には(S244:NO)、注目画素SPを第2次ひび割れ候補画素Pcc2に設定する処理(S245)をスキップする。すなわち、この場合には、第1のハーフラインフィルタ処理においてひび割れ候補画素(第1次ひび割れ候補画素Pcc1)であると判定された画素であっても、第2のハーフラインフィルタ処理においてひび割れ候補画素(第2次ひび割れ候補画素Pcc2)ではないと判定される。例えば、図12に示された注目画素SP(1)については、該注目画素SP(1)について設定された仮想線分SL(1)上に位置する画素のすべてが黒色画素Pkに該当することから、該仮想線分SL(1)が条件満足線分に該当するため、該注目画素SP(1)は第2次ひび割れ候補画素Pcc2に設定される。一方、図12に示された他の注目画素SP(2)については、条件満足線分が存在しないため、該注目画素SP(2)は第2次ひび割れ候補画素Pcc2には設定されない。
候補検出処理部220は、対象となる画素のすべてについて注目画素SPとしての選択が完了したか否かを判定し(S246)、注目画素SPの選択が完了していない(すなわち、未選択の対象画素がある)と判定した場合には(S246:NO)、S241に戻って上述の処理を繰り返す。一方、候補検出処理部220は、対象となる画素のすべてについて注目画素SPとしての選択が完了したと判定した場合には(S246:YES)、第2のハーフライン処理を終了する。
第2のハーフラインフィルタ処理(図5のS240)の完了後、候補検出処理部220の候補領域設定部226は、第2のハーフラインフィルタ処理において設定された第2次ひび割れ候補画素Pcc2を含む画像領域を、ひび割れを表す画像領域である蓋然性の高いひび割れ候補領域CCとして設定する(S250)。なお、ひび割れ候補領域CCは、第2次ひび割れ候補画素Pcc2のみから構成されるとしてもよいし、第2次ひび割れ候補画素Pcc2ではない画素を僅かに含んでいてもよい。例えば、一群の第2次ひび割れ候補画素Pcc2により囲まれた領域の内側に、第2次ひび割れ候補画素Pcc2ではない画素が僅かに存在する場合に、そのような第2次ひび割れ候補画素Pcc2ではない画素を含めてひび割れ候補領域CCを設定するものとしてもよい。
図13は、ひび割れ候補領域CCの設定結果の一例を示す説明図である。図13では、第2のハーフラインフィルタ処理において第2次ひび割れ候補画素Pcc2に設定された画素(ひび割れ候補領域CC)に、ハッチングが付されている。上述したように、一般に、ひび割れは、線分の成分を含んでいる。そのため、第2のハーフラインフィルタ処理では、注目画素SPを端点とする長さL2の仮想線分SL上に位置する画素の内の一定割合以上が黒色画素Pkであれば、該注目画素SPはひび割れを表す画素である蓋然性が高いひび割れ候補画素であると判定している。
なお、第2のハーフラインフィルタ処理では、仮想線分SLの長さ(L2)を、第1のハーフラインフィルタ処理における仮想線分SLの長さ(L1)より長くしている。そのため、ノイズ画素Pnを誤って第2次ひび割れ候補画素Pcc2に設定する誤検出の発生を抑制することができる。例えば、図13に示された例では、真にひび割れを表すひび割れ画素Pcの大部分が、第2次ひび割れ候補画素Pcc2として設定されている一方、図13の右下付近に示されたノイズ画素Pnは、第2次ひび割れ候補画素Pcc2に設定されていない。すなわち、これらのノイズ画素Pnが誤ってひび割れとして検出される誤検出の発生が防止されている。
また、第2のハーフラインフィルタ処理では、上記第2の条件(仮想線分SL上に位置する画素の内の所定の割合RA2以上の画素の濃度値が黒色画素Pkの濃度値に一致する)における所定の割合RA2が、第1のハーフラインフィルタ処理において用いられる上記第1の条件(仮想線分SL上に位置する画素の内の所定の割合RA1以上の画素の濃度値が黒色画素Pkの濃度値に一致する)における所定の割合RA1より低く設定されている。そのため、真にひび割れを表すひび割れ画素Pcが第2次ひび割れ候補画素Pcc2に設定されない検出漏れの発生を抑制することができる。
以上説明したひび割れ候補検出処理により、対象画像IOから、ひび割れを表す画素である蓋然性の高いひび割れ候補画素(第2次ひび割れ候補画素Pcc2)を含むひび割れ候補領域CCが検出される。
A−4.ひび割れ候補確認処理:
次に、ひび割れ候補確認処理(図3のS150)について詳細に説明する。上述したように、ひび割れ候補確認処理は、対象画像IOから検出されたひび割れ候補領域CCが、真にひび割れを表す画像領域であるひび割れ領域CRであるか否かを確認する処理である。図14は、ひび割れ候補確認処理の流れを示すフローチャートである。また、図15は、ひび割れ候補確認処理の概要を示す説明図である。
はじめに、候補確認処理部230は、1つのひび割れ候補領域CCを選択する(S310)。図15には、選択された1つのひび割れ候補領域CCが示されている。上述したように、本実施形態では、ひび割れ候補領域CCは、第2次ひび割れ候補画素Pcc2から構成された画像領域である。
次に、候補確認処理部230の矩形算出部232は、選択されたひび割れ候補領域CCを内包する最小矩形REを算出する(S320)。図15には、選択されたひび割れ候補領域CCを内包する最小矩形REが示されている。
次に、候補確認処理部230の確認判定部234は、最小矩形REの幅Wrに対する長さLr(ただし、Lr≧Wr)の比(以下、「アスペクト比(Lr/Wr)」という)が、所定の閾値Th1以上であるか否かを判定する(S330)。なお、最小矩形REの幅Wrは、ひび割れ候補領域CCの幅に相当し、最小矩形REの長さLrは、ひび割れ候補領域CCの長さに相当する。
確認判定部234は、最小矩形REのアスペクト比(Lr/Wr)が閾値Th1以上である場合には(S330:YES)、選択されたひび割れ候補領域CCは、真にひび割れを表すひび割れ領域CRであると判定する(S340)。一方、確認判定部234は、最小矩形REのアスペクト比(Lr/Wr)が閾値Th1未満である場合には(S330:NO)、選択されたひび割れ候補領域CCは、真にひび割れを表すひび割れ領域CRではなく、ひび割れではないものが誤って検出されたもの(誤検出)であると判定する(S350)。上述したように、対象物に発生するひび割れは線分の成分を含んでいるため、真にひび割れを表すひび割れ領域CRのアスペクト比は、ある程度大きい値となる。そのため、本実施形態では、ひび割れ候補領域CC(を内包する最小矩形RE)のアスペクト比が比較的大きい場合に、該ひび割れ候補領域CCは真のひび割れ領域CRであると判定し、ひび割れ候補領域CC(を内包する最小矩形RE)のアスペクト比が比較的小さい場合に、該ひび割れ候補領域CCは真のひび割れ領域CRではないと判定するものとしている。
候補確認処理部230は、すべてのひび割れ候補領域CCの選択が完了したか否かを判定し(S360)、未選択のひび割れ候補領域CCが存在すると判定した場合には(S360:NO)、S310に戻って上述の処理を繰り返す。一方、候補確認処理部230は、未選択のひび割れ候補領域CCが存在しないと判定した場合には(S360:YES)、ひび割れ候補確認処理を終了する。
以上説明したひび割れ候補確認処理により、ひび割れ候補検出処理において対象画像IOから検出された各ひび割れ候補領域CCが、真にひび割れを表すひび割れ領域CRであるか否かが確認される。ひび割れ候補確認処理により確認されたひび割れ領域CRは、上述したように、処理時画面S1の画像表示領域R3に表示された対象画像IO上に示される(図4参照)。
A−5.本実施形態の効果:
以上説明したように、本実施形態のひび割れ検出装置100は、二値画像取得部222と、候補判定部224とを備える。二値画像取得部222は、対象物(例えば、建築物310の壁)を、黒色を表す濃度値(例えば、0)と白色を表す濃度値(例えば、255)との2階調で表現する二値画像Ib(第1の二値画像Ib(1))を取得する。
また、候補判定部224は、第1のハーフラインフィルタ処理を実行する。すなわち、候補判定部224は、二値画像Ib(第1の二値画像Ib(1))を構成する画素を注目画素SPとして順次選択し、二値画像Ib上に、注目画素SPを端点とし、所定の長さL1を有し、互いに異なる所定の傾きを有する複数の仮想線分SLを設定する。候補判定部224は、複数の仮想線分SL分の内、傾きが互いに180度異なる2つの仮想線分SLの両方について、仮想線分SL上に位置する画素の内の所定の割合RA1以上の画素の濃度値が、黒色を表す濃度値に一致する、という第1の条件が満たされるときの注目画素SPを、ひび割れを表す画素である蓋然性の高いひび割れ候補画素(第1次ひび割れ候補画素Pcc1)に設定する。
さらに、候補判定部224は、第2のハーフラインフィルタ処理を実行する。すなわち、候補判定部224は、二値画像Ib(第1の二値画像Ib(1))におけるひび割れ候補画素(第1次ひび割れ候補画素Pcc1)の濃度値が黒色を表す濃度値に変換され、ひび割れ候補画素以外の画素の少なくとも一部の濃度値が白色を表す濃度値に変換された変換後の二値画像Ib(第2の二値画像Ib(2))からひび割れ候補画素(第1次ひび割れ候補画素Pcc1)を注目画素SPとして順次選択し、第2の二値画像Ib(2)上に、注目画素SPを端点とし、所定の長さL2(ただし、L2>L1)を有し、互いに異なる所定の傾きを有する複数の仮想線分SLを設定する。候補判定部224は、複数の仮想線分SLの内の少なくとも1つについて、仮想線分SL上に位置する画素の内の所定の割合RA2以上の画素の濃度値が、黒色を表す濃度値に一致する、という第2の条件が満たされるときの注目画素SPを、更新されたひび割れ候補画素(第2次ひび割れ候補画素Pcc2)に設定する。
ここで、一般に、対象物に発生するひび割れは、線分の成分(すなわち、細長く、かつ、直線的に伸びる成分)を含んでいる。本実施形態のひび割れ検出装置100では、候補判定部224が、第1のハーフラインフィルタ処理において、仮想線分SLの長さの2倍分の線分上に位置する画素の内の一定割合以上の画素の濃度値が黒色を表す濃度値に一致すれば、そのときの注目画素SPはひび割れを表す画素である蓋然性が高いひび割れ候補画素であると判定する。そのため、本実施形態のひび割れ検出装置100によれば、一定以上の長さの線分の成分を構成するような画素を、ひび割れを表す画素である蓋然性が高いひび割れ候補画素であると判定することができるため、ひび割れではないが、ひび割れの濃度に近い濃度を有する部分(例えば、対象物の表面の汚れ等)を誤ってひび割れとして検出する誤検出や、実際に存在するひび割れを検出できない検出漏れが発生することを抑制することができ、画像処理を用いたひび割れ検出の精度を向上させることができる。
また、本実施形態のひび割れ検出装置100では、候補判定部224が、第2のハーフラインフィルタ処理において、注目画素SPを端点とする長さL2の仮想線分SL上に位置する画素の内の一定割合以上が黒色画素Pkであれば、該注目画素SPはひび割れを表す画素である蓋然性が高いひび割れ候補画素であると判定する。このときの仮想線分SLの長さL2は、第1のハーフラインフィルタ処理における仮想線分SLの長さL1より長い。そのため、第2のハーフラインフィルタ処理における判定には、上記第1のハーフラインフィルタ処理における判定と比較して、より多くの画素についての濃度値の判定が伴う。そのため、本実施形態のひび割れ検出装置100によれば、ひび割れの濃度に近い濃度を有する部分を誤ってひび割れとして検出する誤検出の発生を効果的に抑制することができ、画像処理を用いたひび割れ検出の精度を効果的に向上させることができる。
また、本実施形態のひび割れ検出装置100では、第2のハーフラインフィルタ処理における上記所定の割合RA2が、第1のハーフラインフィルタ処理における上記所定の割合RA1より低く設定されている。そのため、本実施形態のひび割れ検出装置100によれば、誤検出の発生を効果的に抑制しつつ、検出漏れの発生を効果的に抑制することができ、画像処理を用いたひび割れ検出の精度を極めて効果的に向上させることができる。
また、本実施形態のひび割れ検出装置100では、二値画像取得部222が、対象物を3階調以上(例えば、256階調)の濃度値で表現した対象画像(原画像)IOを構成する画素の中から順次選択された注目画素SPの濃度値を、注目画素SPの周辺に位置する複数の周辺画素の濃度値の平均値と比較し、複数の周辺画素の濃度値の平均値に対する注目画素SPの濃度値の大小関係が、白色を表す濃度値(例えば、255)に対する黒色を表す濃度値(例えば、0)の大小関係と一致する場合に、注目画素SPの濃度値を黒色を表す濃度値(例えば、0)に変換し、一致しない場合には、注目画素SPの濃度値を白色を表す濃度値(例えば、255)に変換することにより、二値画像Ib(第1の二値画像Ib(1))を取得する。そのため、本実施形態のひび割れ検出装置100によれば、対象画像IOにおけるひび割れを表す各画素の濃度値を、二値画像Ibにおいて黒色を表す濃度値と白色を表す濃度値とのいずれか一方に精度良く変換することができる。すなわち、対象画像IOにおけるひび割れを表す画素の一部の濃度値が黒色を表す濃度値に変換され、対象画像IOにおけるひび割れを表す画素の他の一部の濃度値が白色を表す濃度値に変換されるという事態の発生を抑制することができる。従って、本実施形態のひび割れ検出装置100によれば、二値化処理の精度の低さに起因するひび割れ検出の精度の低下を抑制することができる。
また、本実施形態のひび割れ検出装置100は、さらに、ひび割れ候補画素(第2次ひび割れ候補画素Pcc2)を示す画像を表示部120に表示させる表示制御部210を備える。そのため、本実施形態のひび割れ検出装置100によれば、ユーザに、対象物におけるひび割れの発生状況を把握させることができる。
また、本実施形態のひび割れ検出装置100では、ひび割れ検出処理の対象物は、建築物310のタイル張りの壁、すなわち壁状の構造物である。壁状の構造物は、ひび割れの発生が問題になりやすい対象物であり、かつ、比較的広い範囲でひび割れの検出を行う必要がある対象物である。本実施形態のひび割れ検出装置100によれば、そのような対象物のひび割れの検出を、効率的に、かつ、精度良く実行することができる。
B.変形例:
本明細書で開示される技術は、上述の実施形態に限られるものではなく、その要旨を逸脱しない範囲において種々の形態に変形することができ、例えば次のような変形も可能である。
上記実施形態におけるひび割れ検出装置100の構成は、あくまで一例であり、種々変形可能である。例えば、ひび割れ検出装置100が撮像部を備え、ひび割れ検出処理部200が、該撮像部による対象物の撮像により生成された画像を対象として、ひび割れ検出処理を実行するとしてもよい。
また、上記実施形態では、処理時画面S1等がひび割れ検出装置100の表示部120に表示されるとしているが、処理時画面S1等がひび割れ検出装置100の備える表示部120ではなく、外部のディスプレイに表示されるとしてもよい。なお、この場合には、ひび割れ検出装置100が表示部120を備える必要は無い。
また、上記実施形態では、ひび割れを表す画素の濃度値が白色よりも黒色の濃度値に近い画像が対象画像IOとして用いられているが、反対に、ひび割れを表す画素の濃度値が黒色よりも白色の濃度値に近い画像が対象画像IOとして用いられてもよい。この場合には、白色を表す濃度値が特許請求の範囲における第1の濃度値に相当し、黒色を表す濃度値が特許請求の範囲における第2の濃度値に相当する。
また、上記実施形態におけるひび割れ検出処理の内容は、あくまで一例であり、種々変形可能である。例えば、上記実施形態におけるひび割れ検出処理(図3)では、ひび割れ候補確認処理(S150)が実行されるとしているが、ひび割れ候補確認処理は必ずしも実行される必要はない。ひび割れ候補確認処理が実行されない場合には、ひび割れ候補検出処理(S130)において検出されたひび割れ候補領域CCが、そのまま、ひび割れ領域CRに設定される。
また、上記実施形態におけるひび割れ候補検出処理(図5)では、第1のハーフラインフィルタ処理(S220)と第2のハーフラインフィルタ処理(S240)とが実行されるとしているが、第2のハーフラインフィルタ処理は必ずしも実行される必要はない。第2のハーフラインフィルタ処理が実行されない場合には、第1のハーフラインフィルタ処理により検出されたひび割れ候補画素(第1次ひび割れ候補画素Pcc1)を含む画像領域が、ひび割れ候補領域CCに設定される。なお、上述したように、上記実施形態における第1のハーフラインフィルタ処理では、仮想線分SLの長さの2倍分の線分上に位置する画素の内の一定割合以上の画素の濃度値が黒色を表す濃度値に一致すれば、そのときの注目画素SPがひび割れ候補画素(第1次ひび割れ候補画素Pcc1)に設定される。そのため、第2のハーフラインフィルタ処理が実行されず、第1のハーフラインフィルタ処理のみが行われる形態であっても、誤検出や検出漏れが発生することを抑制することができ、画像処理を用いたひび割れ検出の精度を向上させることができる。
また、上記実施形態におけるひび割れ候補検出処理(図5)では、第1のハーフラインフィルタ処理(S220)と第2のハーフラインフィルタ処理(S240)との間に拡張処理(S230)が実行されるとしているが、拡張処理は必ずしも実行される必要はない。
また、上記実施形態では、第2のハーフラインフィルタ処理における上記所定の割合RA2が、第1のハーフラインフィルタ処理における上記所定の割合RA1より低いとしているが、2つの割合RA1,RA2の関係は必ずしもこのような関係である必要はない。
また、上記実施形態では、ひび割れ検出処理の対象物は、建築物310のタイル張りの壁であるとしているが、それ以外の壁状の構造物(例えば、建築物のコンクリートの壁や土木構造物の壁面等)であってもよいし、壁状の構造物以外の物体であってもよい。