(57)【要約】【課題】  変状の入力に要する工数を低減すること。【解決手段】  本発明は、入力された２つの指示点が、保持手段に保持されている１つのポリラインに含まれる２つの頂点に対応している場合には、その対応する２つの頂点の間の線分を確定状態とする。【選択図】  図１０
2018181197.tif 000002
【特許請求の範囲】
【請求項１】
対象画像に含まれる複数の変状に対応する複数のポリラインそれぞれを構成する複数の線分に対して、第１の状態または第２の状態のいずれかを示す情報を保持する保持手段と、
前記対象画像に対してユーザが指示した第１の点および第２の点を入力する入力手段と、
前記入力された第１の点および第２の点が、前記保持手段に保持されている複数のポリラインのうちの１つのポリラインに含まれる複数の頂点のうちの２つの頂点を指示しているか否かを判定する判定手段と、
前記判定手段により指示していると判定された場合に、前記１つのポリラインにおける前記２つの頂点の間の線分を第２の状態として決定する決定手段と、
を有することを特徴とする情報処理装置。
【請求項２】
前記判定手段が、前記入力された第１の点が前記１つのポリラインに含まれるいずれかの頂点を指示していると判定し、前記入力された第２の点が前記１つのポリラインに含まれるいずれの頂点も指示していないと判定した場合に、
前記決定手段は、前記１の点が指示すると判定された頂点と、前記第２の点との間の線分を第２の状態として決定することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記判定手段が、前記入力された第１の点が前記１つのポリラインに含まれるいずれかの頂点を指示していると判定し、前記入力された第２の点が前記１つのポリラインに含まれるいずれの頂点も指示していないと判定した場合に、
前記決定手段は、前記１の点が指示すると判定された頂点と前記１つのポリラインとの位置関係とに基づいて、第２の状態とする線分を決定することを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記決定手段は、前記１つのポリラインに含まれる頂点それぞれを候補点とし、前記第１の点が指示すると判定された頂点と前記候補点との距離と、前記１の点が指示すると判定された頂点と前記候補点との間の線分と前記候補点を一方の端点とする前記１つのポリラインに含まれる線分とのなす角度と、との少なくとも一方に基づいて、第２の状態とする線分を決定することを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記決定手段は、第２の状態として決定した線分で構成されるポリラインを前記保持手段に追加することを特徴とする請求項１から４のいずれか１項に記載の情報処理装置。
【請求項６】
前記決定手段は、前記保持手段に追加したポリラインに含まれる頂点から所定の距離内にある既に保持されている頂点の情報を削除することを特徴とする請求項５に記載の情報処理装置。
【請求項７】
前記所定の距離は、前記ユーザによって変更可能であることを特徴とする請求項６に記載の情報処理装置。
【請求項８】
前記判定手段は、前記入力された第１の点および第２の点が、前記１つのポリラインに含まれる複数の頂点それぞれから所定の範囲にあるか否かを判断することによって、当該第１の点および第２の点が前記２つの頂点を指示しているか否かを判定することを特徴とする請求項１から７のいずれか１項に記載の情報処理装置。
【請求項９】
前記所定の範囲は、前記ユーザによって変更可能であることを特徴とする請求項８に記載の情報処理装置。
【請求項１０】
複数のポリラインそれぞれを構成する複数の線分が前記第１の状態または第２の状態であることが区別可能なように表示部に表示する表示手段を更に有することを特徴とする請求項１から９のいずれか１項に記載の情報処理装置。
【請求項１１】
前記第１の状態は前記線分が前記変状として確定すべきものとしてユーザが決定した状態であり、前記第２の状態は前記線分が前記変状として確定すべきものとしてユーザが決定した状態であることを特徴とする請求項１から１０のいずれか１項に記載の情報処理装置。
【請求項１２】
前記変状はひびであることを特徴とする請求項１から１１のいずれか１項に記載の情報処理装置。
【請求項１３】
解析手段によって前記対象画像の変状がポリラインとして特定されていることを特徴とする請求項１から１２のいずれか１項に記載の情報処理装置。
【請求項１４】
対象画像に含まれる複数の変状に対応する複数のポリラインそれぞれを構成する複数の線分に対して、第１の状態または第２の状態のいずれかを示す情報を保持する保持手段を有する情報処理装置における情報処理方法であって、
前記対象画像に対してユーザが指示した第１の点および第２の点を入力する入力ステップと、
前記入力された第１の点および第２の点が、前記保持手段に保持されている複数のポリラインのうちの１つのポリラインに含まれる複数の頂点のうちの２つの頂点を指示しているか否かを判定する判定ステップと、
前記判定ステップにおいて指示していると判定された場合に、前記１つのポリラインにおける前記２つの頂点の間の線分を第２の状態として決定する決定ステップと、
を有することを特徴とする情報処理方法。
【請求項１５】
コンピュータを、請求項１から１３のいずれか１項に記載の情報処理装置として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、対象画像に対して変状に係る情報を入力する技術に関する。
【背景技術】
【０００２】
従来から、構造物の外観を撮影した画像に対して、検査員がマウスなどを用いて、ひび割れ等の変状の形状をポリラインとして入力することで、構造物の維持管理が実施されている。しかし、マウスなどを用いて、ひび割れ等の変状の形状をポリラインとして入力する作業に多くの工数を要している。
【０００３】
特許文献１には、変状の中でもひびの自動検出をする方法が開示されている。この方法では、ひび計測の対象となる構造物が撮影された画像データの画像領域のうち、特定されたひび探査領域を高めの閾値で２値化処理し、白画素と黒画素に分類し黒画素をひびとする。さらに、未検出のひびが存在する可能性のある画像領域を２値化された画素の占有比率に基づいて特定する。そして、その特定された領域を上記の閾値よりも低い閾値で２値化処理し、白画素と黒画素に分類し黒画素をひび割れとする。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０００−００２５２３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１の技術は、閾値処理でひび割れを検出しているが、構造物の状態によっては、検出漏れや未検出のひび割れが発生してしまう。また、検査員がマウスなどを用いて手動でひび割れを入力する際にも、本来入力されるべきひび割れを見過ごして、検出漏れのひび割れが発生することもある。そして、このような検出漏れ、未検出のひび（変状）は、人手によって追加しなければならず、その入力に工数を要してしまうという課題があった。
【０００６】
本発明は上記の課題に鑑みてなされたものであり、変状の入力に要する工数を低減することを目的とする。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明は、対象画像に含まれる複数の変状に対応する複数のポリラインそれぞれを構成する複数の線分に対して、第１の状態または第２の状態のいずれかを示す情報を保持する保持手段と、前記対象画像に対してユーザが指示した第１の点および第２の点を入力する入力手段と、前記入力された第１の点および第２の点が、前記保持手段に保持されている複数のポリラインのうちの１つのポリラインに含まれる複数の頂点のうちの２つの頂点を指示しているか否かを判定する判定手段と、前記判定手段により指示していると判定された場合に、前記１つのポリラインにおける前記２つの頂点の間の線分を第２の状態として決定する決定手段と、を有することを特徴とする。
【発明の効果】
【０００８】
本発明によれば、変状の入力に要する工数を低減することが可能になる。
【図面の簡単な説明】
【０００９】
【図１】第１の実施形態に係る情報処理装置のハードウェア構成を示すブロック図。
【図２】第１の実施形態に係る情報処理装置の機能構成を示すブロック図。
【図３】各実施形態においてポリライン保持部が保持するポリライン情報を示す図。
【図４】第１の実施形態に係るポリライン情報を２次元空間上に表示した図。
【図５】第１の実施形態に係る頂点保持リストを示す図。
【図６】第１の実施形態に係る情報処理システムの概略ブロック図。
【図７】第２の実施形態に係る情報処理装置による処理の流れを示すフローチャート。
【図８】第２の実施形態に係る経路探索の処理の流れを示すフローチャート。
【図９】第３の実施形態に係るｐｏｌｙｌｉｎｅ  ｔａｂｌｅの登録処理を示すフローチャート。
【図１０】第１の実施形態においてユーザにより指示点が入力される様子を示す図。
【図１１】第２の実施形態に係る経路の評価方法を説明する図。
【発明を実施するための形態】
【００１０】
［第１の実施形態］
以下、本発明の第１の実施形態の詳細について図面を参照しつつ説明する。まず、図６を用いて本実施形態に係る情報処理装置１００を含む情報処理システム６００について説明する。解析対象画像入力部６０１は、画像を入力する。本実施形態では入力する画像の種類に限定されないが、例えばインフラ構造物（トンネル、橋など）の表面の画像を入力する。解析対象画像入力部６０１は入力された画像を画像解析部６０２へ出力する。画像解析部６０２は画像を解析し解析結果からポリラインを検出する。検出する対象は、例えば、インフラ構造物の表面に存在するひび割れである。画像解析部６０２は、インフラ構造物の表面に存在するひび割れを検出し、ポリラインに近似してポリラインの情報として情報処理装置１００へ出力する。ただし、画像解析部６０２から出力したポリラインには誤検出されたポリラインも含まれている可能性が高い。情報処理装置１００では、解析対象画像入力部６０１から入力した画像をユーザが参照しつつ、画像解析部６０２で検出したポリラインを編集する。
【００１１】
なお、解析対象画像入力部６０１および画像解析部６０２は、図６のように情報処理装置１００とは異なる装置に構成されていてもよいし、本実施形態の情報処理装置１００と一体化され構成されていてもよい。また、本実施形態では、変状の中でもひび割れの例について説明するが、変状（インフラ構造物に現れる損傷、劣化等の異常全般）に対して適用可能なものである。また、本実施形態に係る情報処理装置１００は、画像解析部６０２によってひび割れが自動で検出された対象画像に対して、未検出、検出漏れとなったひび割れを追加で入力するものである。しかし、入力される対象画像におけるひび割れがどのように検出されているかはこれに限定されない。すなわち、検査員等の人手によってひび割れが検出された対象画像に対して、検出漏れとなったひび割れを追加で入力するものであってもよい。
【００１２】
図１は、本実施形態に係る情報処理装置１００のハードウェア構成を示すブロック図ある。情報処理装置１００は、ＣＰＵ１０１、ＲＡＭ１０２、ＲＯＭ１０３、補助記憶装置１０４、入出力インタフェース１０５、通信インタフェース１０６、表示装置１０７、バス１０８、入力コントローラ１０９、入力装置１１０を有している。
【００１３】
ＣＰＵ１０１は、情報処理装置１００が備える各機能を実行、制御する。ＲＡＭ１０２は、外部装置などから供給されるプログラムやデータを一時記憶する。ＲＯＭ１０３は、変更を必要としないプログラムや各種パラメータを格納する。表示装置１０７はＣＰＵ１０１で描画されたグラフィックスを表示する。補助記憶装置１０４は、各種情報を記憶する。入出力インタフェース１０５は、外部の機器とデータの送受信を行う。通信インタフェース１０６は、ネットワークに接続するための装置であり、ネットワークを介して外部の機器とデータの送受信を行う。バス１０８は、システムバスであり、ＣＰＵ１０１、ＲＡＭ１０２、ＲＯＭ１０３、補助記憶装置１０４、入出力インタフェース１０５、通信インタフェース１０６、表示装置１０７、入力コントローラ１０９を接続する。１０９は、後述する入力装置１１０からの入力信号を制御するコントローラである。１１０は、ユーザからの操作指示を受け付けるための外部入力装置であり、例えば、キーボード、マウスなどである。なお、後述する情報装置１００の機能や処理は、ＣＰＵ１０１がＲＯＭ１０３等に格納されているプログラムを読み出し、このプログラムを実行することにより実現する。
【００１４】
次に、図２を用いて、本実施形態に係る情報処理装置１００の機能構成について説明する。ポリライン保持部２０１は、後述するテーブル形式のポリラインの情報を保持する。以下、このテーブルはｐｏｌｙｌｉｎｅ＿ｔａｂｌｅと記す。指示点入力部２０２は、ユーザが指示した点の座標を取得しポリライン編集確定部２０３へ出力する。ユーザが指示した点の座標の取得は、入力装置１１０を用いて入力コントローラ１０９に入力されることで実現され、例えば入力装置１１０がマウスであれば、マウスのクリックにより指示点が入力されることにより取得できる。ポリライン編集確定部２０３は、指示点入力部２０２から入力された指示点の座標に基づき、判定部２０５、経路探索部２０６の機能を利用して確定状態とすべき線分を決定する。なお、確定状態とは変状として確定すべきものとしてユーザが決定した状態のことであり、必ずしも変状として確定されているわけではない。そのため、確定状態と指定されても、キャンセルして未確定状態に戻すことも可能である。また、確定状態とした線分を新たなポリラインとして追加するなど、ポリライン保持部２０１で保持しているｐｏｌｙｌｉｎｅ＿ｔａｂｌｅを適宜書き換える。表示部２０４は、画像入力部２０７から入力した画像と、ｐｏｌｙｌｉｎｅ＿ｔａｂｌｅから読み出したポリラインとを、表示装置１０７に重畳して表示する。より具体的には、表示部２０４は、ｐｏｌｙｌｉｎｅ＿ｔａｂｌｅから、各ポリラインの確定状態にある線分を実線などにより表示する。なお、未確定状態の線分については表示しないか、もしくは確定状態の線分とは区別可能なように破線で表示するなど、確定状態の線分と未確定状態の線分とが区別できるようにｐｏｌｙｌｉｎｅ＿ｔａｂｌｅから読み出したポリラインを表示する。
【００１５】
判定部２０５は、ｐｏｌｙｌｉｎｅ＿ｔａｂｌｅと、指示点入力部２０２から入力した指示点に基づいて、座標上の点がｐｏｌｙｌｉｎｅ＿ｔａｂｌｅに存在するポリラインの頂点を指示しているか否か判定する。そして、判定結果をポリライン編集確定部２０３へ出力する。経路探索部２０６は、ｐｏｌｙｌｉｎｅ＿ｔａｂｌｅと、指示点入力部２０２により取得した２点の指示点の座標とから、ｐｏｌｙｌｉｎｅ＿ｔａｂｌｅに存在するポリラインの線分を通る経路が存在するか探索する。そして経路が存在すれば、経路の有無と、経路に含まれる頂点の情報をポリライン編集確定部２０３へ出力する。画像入力部２０７は、解析対象画像入力部６０１から画像を入力する。ポリライン入力部２０８は、画像解析部６０２からポリラインの情報を入力し、ｐｏｌｙｌｉｎｅ＿ｔａｂｌｅにそのポリラインの情報を書き込む。
【００１６】
以下、図３から図５を参照しつつ、本実施形態に係るポリライン編集の処理の詳細について説明する。まず、ポリライン保持部２０１の詳細について説明する。図３は、各実施形態においてポリライン保持部２０１が保持するテーブル形式のポリライン情報（ｐｏｌｙｌｉｎｅ＿ｔａｂｌｅ）を示す図であり、図３（ａ）が本実施形態のｐｏｌｙｌｉｎｅ＿ｔａｂｌｅである。図４は、ポリライン保持部２０１で保持しているポリラインの情報を２次元空間上に表示した図である。
【００１７】
図３（ａ）において、ｐｏｌｙｌｉｎｅ＿ｔａｂｌｅのカラムは、ＩＤ３０２、頂点リスト３０３、状態リスト３０４である。また、ｐｏｌｙｌｉｎｅ＿ｔａｂｌｅの１つのレコードはポリライン１本に対応している。ここで、図３（ａ）のｐｏｌｙｌｉｎｅ＿ｔａｂｌｅは、２本のポリラインの情報３０５、３０６を有しており、ポリラインの情報３０５、３０６はそれぞれ、図４のポリライン４０２、４１０に対応している。
【００１８】
ＩＤ３０２のカラムにはｐｏｌｙｌｉｎｅ＿ｔａｂｌｅで保持しているポリラインを一意に識別可能な数値を設定する。頂点リスト３０３のカラムは、ポリラインを構成する頂点の座標を保持している。頂点リスト３０３について、ｐｏｌｙｌｉｎｅ＿ｔａｂｌｅのポリラインの情報３０５を例に説明すると、ポリラインの情報３０５の頂点リスト３０３は、図４のポリライン４０２が有している複数の頂点に対応している。ポリラインの情報３０５の頂点リスト３０３のカラムに記載されている括弧内は、座標系４０１におけるＸＹ座標の値を示している。例えば、（１６、２５）であれば、Ｘ座標１６、Ｙ座標２５の位置に頂点が配置されているということである。図３（ａ）では、ポリラインの情報３０５の頂点リスト３０３に４点の座標が保持されており、それぞれ図４の頂点４０３、４０４、４０５、４０６に対応している。
【００１９】
また、頂点４０３、４０４、４０５、４０６の間は、線分４０７、４０８、４０９で結ばれる。線分は２種類の何れかの状態を有しおり、２種類の状態とは、未確定の状態（第１の状態）と確定の状態（第２の状態）である。図３（ａ）において、ポリラインの情報３０５の状態リスト３０４の括弧内において、コンマで区切られた状態は、それぞれ線分４０７、４０８、４０９に対応している。つまり、ここでは、線分４０７、４０８、４０９はすべて未確定状態であるということである。図４では、未確定状態の線分を一点鎖線で表現している。一方、ポリラインの情報３０６は、ポリライン４１０に対応しており、ポリライン４１０を構成する線分４１１、４１２の状態は確定状態である。図４では、確定状態の線分を実線で表現している。
【００２０】
次に、ポリライン編集確定部２０３の詳細について説明する。ポリライン編集確定部２０３は、ポリライン編集のための内部データとして頂点保持リスト５０１を保持している。以下、頂点保持リスト５０１をｖｅｒｔｅｘ＿ｌｉｓｔと記す。
【００２１】
図５は、本実施形態における頂点保持リスト５０１を示している。図５において、ｖｅｒｔｅｘ＿ｌｉｓｔに記載されている括弧内は、座標系４０１におけるＸＹ座標の値を示している。ｖｅｒｔｅｘ＿ｌｉｓｔの保持形式は、ｐｏｌｙｌｉｎｅ＿ｔａｂｌｅの頂点リスト３０３と同様の形式であるため、説明を省略する。ポリライン編集確定部２０３は、トレース終了命令を入力する。トレース終了命令とは、ユーザが指示点の入力を完了したと判断したときに発する命令である。トレース終了命令を入力したときのポリライン編集確定部２０３の動作については後述する。入力装置１１０がマウスであれば、例えばマウスの右クリックにより命令を発生させることで、ポリライン編集確定部２０３はトレース終了命令を入力する。
【００２２】
次に、判定部２０５の詳細について説明する。判定部２０５は、座標上の点がポリラインの頂点を指示しているか否か判定する。この処理について、図４を用いて説明する。頂点４０３には、対応する領域、具体的には、頂点４０３から所定距離内の領域である判定領域４１３が設けられている。ここで、座標上の点４１４は、判定領域４１３内の点であるため、この点４１４をユーザがクリックなどで指示しても、それは頂点４０３を指示していると判定する。また、座標上の点４１５は、判定領域４１３の外の点であるため、この場合には頂点４０３を指示していないと判定する。なお、判定領域４１３のサイズ（範囲）は、ユーザの指示（例えば、表示装置１０７に表示されるスライドバーを操作すること）によって変更可能に構成されていてもよい。
【００２３】
次に、図７のフローチャートを用いて、本実施形態に係る情報処理装置１００による処理の流れを説明する。ここでは、図３、図５、および図１０を参照しつつ、処理の詳細について説明する。図１０は、ユーザが１００２、１００３、１００４の順番で指示点を入力した様子を示す図である。図１０では、図５のｖｅｒｔｅｘ＿ｌｉｓｔの情報が、頂点１００１、４０４、４０５、４０６を繋いだ破線で重畳表示されている。また、頂点１００１、４０４、４０５、４０６はそれぞれ、図５の頂点の情報５０２〜５０５に対応している。
【００２４】
図７のフローチャートにおいて、まずＳ７０１で、表示部２０４は、画像入力部２０７から入力した画像を表示装置１０７に表示する。さらに、ＣＰＵ１０１は、ｖｅｒｔｅｘ＿ｌｉｓｔを初期化する。ここで、初期化とは、図５のｖｅｒｔｅｘ＿ｌｉｓｔにデータが無い状態にするということであり、また、データが無い状態とは頂点の情報５０２〜５０５が追加されていない状態である。
【００２５】
Ｓ７０２において、ポリライン編集確定部２０３は、トレース終了命令があるか否かを判断する。ポリライン編集確定部２０３は、トレース終了命令があると判断すれば処理をＳ７１１へ進める。一方、トレース終了命令がなければ、処理をＳ７０３へ進める。次に、Ｓ７０３において、指示点入力部２０２は、指示点の入力があるか否かを判断し、指示点の入力があれば、処理をＳ７０４へ進める。一方、指示点の入力がなければ、処理をＳ７０２へ戻す。
【００２６】
Ｓ７０４において、ポリライン編集確定部２０３は、ポリライン保持部２０１から読み出したｐｏｌｙｌｉｎｅ＿ｔａｂｌｅと、指示点入力部２０２が入力した指示点の情報を、判定部２０５へ出力する。そして、判定部２０５は、ポリライン編集確定部２０３から入力した指示点に対応する頂点を持つポリラインがｐｏｌｙｌｉｎｅ＿ｔａｂｌｅ内に存在するか否か判定する。判定部２０５は、ポリライン編集確定部２０３から入力した指示点に対応する頂点を持つポリラインがｐｏｌｙｌｉｎｅ＿ｔａｂｌｅ内に存在すると判断すれば、処理をＳ７０５へ進める。一方、ｐｏｌｙｌｉｎｅ＿ｔａｂｌｅ内になければ、処理をＳ７０８へ進める。また、判定部２０５は、判定結果をポリライン編集確定部２０３へ出力する。
【００２７】
図１０の例では、指示点１００２には、この指示点に対応する頂点を持つポリラインがｐｏｌｙｌｉｎｅ＿ｔａｂｌｅ内に存在しない。この場合、指示点１００２が入力されたときには、処理はＳ７０８へ進む。その後、指示点１００３、１００４が入力されるが、指示点１００３、１００４にはそれぞれ、これら頂点を持つポリライン４０２がｐｏｌｙｌｉｎｅ＿ｔａｂｌｅに存在する。そのため、指示点１００３、および指示点１００４が入力されたときには、処理はＳ７０５へ進む。
【００２８】
Ｓ７０５において、ポリライン編集確定部２０３は、ｖｅｒｔｅｘ＿ｌｉｓｔに頂点の情報が存在するか否かを判定する。ｖｅｒｔｅｘ＿ｌｉｓｔに頂点の情報があれば、処理はＳ７０６へ進む。また、ｖｅｒｔｅｘ＿ｌｉｓｔに頂点の情報がなければ、処理はＳ７０８へ進む。図７のフローチャートの１回目のループでは、ｖｅｒｔｅｘ＿ｌｉｓｔはＳ７０１で初期化されているので、処理は必ずＳ７０８へ進むことになる。
【００２９】
Ｓ７０６において、ポリライン編集確定部２０３は、指示点入力部２０２から入力された指示点と、ｖｅｒｔｅｘ＿ｌｉｓｔに存在する最も新しくｖｅｒｔｅｘ＿ｌｉｓｔに登録された頂点の情報を経路探索部２０６へ出力する。同時に、ポリライン編集確定部２０３は、ｐｏｌｙｌｉｎｅ＿ｔａｂｌｅを経路探索部２０６へ出力する。ここで、図５を用いて、ｖｅｒｔｅｘ＿ｌｉｓｔに存在する最も新しくｖｅｒｔｅｘ＿ｌｉｓｔに登録された頂点の情報について説明する。図５の頂点の情報が５０２、５０３、５０４、５０５の順番で保存された場合、頂点の情報５０５がｖｅｒｔｅｘ＿ｌｉｓｔに存在する最も新しくｖｅｒｔｅｘ＿ｌｉｓｔに登録された頂点の情報となる。
【００３０】
経路探索部２０６は、ポリライン編集確定部２０３から入力したｐｏｌｙｌｉｎｅ＿ｔａｂｌｅと座標系４０１上の２点とから、ｐｏｌｙｌｉｎｅ＿ｔａｂｌｅに存在するポリラインを用いた経路が存在するか探索する。そして、経路探索部２０６は、経路の有無をポリライン編集確定部２０３へ出力するとともに、経路が有る場合は経路に含まれる頂点の情報もポリライン編集確定部２０３へ出力する。その後、処理はＳ７０７へ進む。ここで座標系４０１上の２点とは、前述した、指示点入力部２０２から入力された指示点と、ｖｅｒｔｅｘ＿ｌｉｓｔに存在する最も新しくｖｅｒｔｅｘ＿ｌｉｓｔに登録された頂点の情報のことである。
【００３１】
図１０の例を用いて、Ｓ７０６の処理について説明する。まず、指示点入力部２０２が指示点１００３を入力したときの処理について説明する。ここで、ｐｏｌｙｌｉｎｅ＿ｔａｂｌｅは、図３（ａ）の状態であるとする。図３（ａ）のｐｏｌｙｌｉｎｅ＿ｔａｂｌｅには、ポリラインの情報３０５、３０６が登録されており、図１０の例では、それぞれポリライン４０２、４１０に対応する。指示点入力部２０２が指示点１００３を入力したとき、ｖｅｒｔｅｘ＿ｌｉｓｔに存在する最も新しくｖｅｒｔｅｘ＿ｌｉｓｔに登録された頂点の情報は図５の５０２であり、図１０では頂点１００１となる。
【００３２】
経路探索部２０６は、頂点１００１と指示点１００３に対応する頂点４０４との間にｐｏｌｙｌｉｎｅ＿ｔａｂｌｅに存在するポリラインを用いた経路が存在するか探索する。ここで、経路探索は、頂点１００１と指示点１００３に対応する頂点４０４とが同一のポリライン上の頂点であるか否かを判定することで経路探索する。同一のポリライン上の頂点２点であれば、経路は存在すると判断できる。また、経路探索にはダイクストラ法をはじめとして、種々の公知の手法を採用することができ、本実施形態は、特定の経路探索の手法に限定されるものではない。このとき、ｐｏｌｙｌｉｎｅ＿ｔａｂｌｅは図３（ａ）の状態なので、ユーザにより指示された２つの指示点それぞれが、ある１つのポリラインの頂点のいずれかに対応はしていない。つまり、頂点１００１と指示点１００３に対応する頂点４０４との間にｐｏｌｙｌｉｎｅ＿ｔａｂｌｅに存在するポリラインを用いた経路は存在しない。そのため、経路探索部２０６は、経路が存在しないという結果をポリライン編集確定部２０３へ出力し、処理をＳ７０７へ進める。
【００３３】
次に、指示点入力部２０２が指示点１００４を入力したときの処理について説明する。ここでも、ｐｏｌｙｌｉｎｅ＿ｔａｂｌｅは図３（ａ）の状態であるとする。指示点入力部２０２が指示点１００４を入力したとき、ｖｅｒｔｅｘ＿ｌｉｓｔに存在する最も新しくｖｅｒｔｅｘ＿ｌｉｓｔに登録された頂点の情報は、図５の５０３であり、図１０では頂点４０４となる。経路探索部２０６は、頂点４０４と指示点１００４に対応する頂点４０６との間にｐｏｌｙｌｉｎｅ＿ｔａｂｌｅに存在するポリラインを用いた経路が存在するか探索する。ｐｏｌｙｌｉｎｅ＿ｔａｂｌｅは図３（ａ）の状態なので、頂点４０４と指示点１００４に対応する頂点４０６との間には、ｐｏｌｙｌｉｎｅ＿ｔａｂｌｅにおけるポリライン４０２の線分４０８、４０９を利用した経路が存在する。そのため、経路探索部２０６は、経路が存在するという結果と、頂点４０４と指示点１００４に対応する頂点４０６との間の経路に存在する頂点をポリライン編集確定部２０３へ出力し、処理をＳ７０７へ進める。ここでは、頂点４０４と指示点１００４に対応する頂点４０６との間の経路に存在する頂点で、且つ既にｖｅｒｔｅｘ＿ｌｉｓｔに存在している頂点４０４を除く頂点を、頂点４０５および指示点１００４に対応する頂点４０６として出力する。
【００３４】
Ｓ７０７において、経路探索部２０６がポリライン編集確定部２０３へ経路が存在しないという結果を出力した場合、処理はＳ７０８へ進む。経路探索部２０６がポリライン編集確定部２０３へ経路が存在するという結果を出力した場合は、処理はＳ７１０へ進む。
【００３５】
Ｓ７０８において、ポリライン編集確定部２０３は、ｖｅｒｔｅｘ＿ｌｉｓｔの末尾に指示点入力部２０２から入力された指示点の情報を追加し、処理をＳ７０９へ進める。例えば、指示点１００２が指示点入力部２０２から入力された場合、ポリライン編集確定部２０３は、図５のｖｅｒｔｅｘ＿ｌｉｓｔに頂点の情報５０２を追加する。
【００３６】
Ｓ７０９において、表示部２０４はポリライン編集確定部２０３が保持しているｖｅｒｔｅｘ＿ｌｉｓｔの内容を参照し表示する。ｖｅｒｔｅｘ＿ｌｉｓｔの内容を表示することでユーザは、入力中のポリラインの位置関係を確認することができる。
【００３７】
Ｓ７１０において、ポリライン編集確定部２０３は、経路探索部２０６から入力した頂点をｖｅｒｔｅｘ＿ｌｉｓｔの末尾に追加し、工程をＳ７０９へ進める。ここで、図１０の指示点１００４が指示点入力部２０２に入力された場合、上述のようにＳ７０６において経路探索部２０６から出力される頂点４０５および４０６の情報がｖｅｒｔｅｘ＿ｌｉｓｔの末尾に追加される。これは、指示点１００４の１回の入力で、頂点４０５、頂点４０６の２つの頂点の情報を入力可能であることを示しており、入力の効率が向上するという効果がある。
【００３８】
Ｓ７１１において、ポリライン編集確定部２０３は、ｖｅｒｔｅｘ＿ｌｉｓｔに登録されている全ての頂点の情報を１つのポリラインの情報として、ｐｏｌｙｌｉｎｅ＿ｔａｂｌｅの末尾に追加する。例えば図５のｖｅｒｔｅｘ＿ｌｉｓｔを図３（ａ）のｐｏｌｙｌｉｎｅ＿ｔａｂｌｅに追加した場合、図３（ａ）のｐｏｌｙｌｉｎｅ＿ｔａｂｌｅにポリラインの情報３０７が追加され、図３（ｂ）の状態になる。また、ポリラインの情報３０７の頂点間の線分の状態は確定状態で追加される。
【００３９】
Ｓ７１２において、表示部２０４はポリライン保持部２０１が保持しているｐｏｌｙｌｉｎｅ＿ｔａｂｌｅの内容を参照し表示する。ｐｏｌｙｌｉｎｅ＿ｔａｂｌｅの内容を表示することでユーザは、入力が完了したポリラインを確認することができる。また、Ｓ７１１においてｐｏｌｙｌｉｎｅ＿ｔａｂｌｅに追加されたポリラインの情報３０７は確定状態であるため実線で表示される。
【００４０】
上述の説明の通り、本実施形態では、ユーザにより入力された２つの指示点が、ｐｏｌｙｌｉｎｅ＿ｔａｂｌｅに保持されている１つのポリラインに含まれる２つの頂点に対応している場合には、その対応する２つの頂点の間の線分を確定状態とする。図１０の例では、指示点１００３と１００４は、ポリライン４０２の頂点４０４、４０６に対応し、この場合には、頂点４０４と４０６との間の線分が確定状態と決定する。
【００４１】
更に、ユーザにより入力された２つの指示点のうち１つが、ｐｏｌｙｌｉｎｅ＿ｔａｂｌｅに保持されている１つのポリラインに含まれるある頂点に対応し、もう一方の指示点がそのポリラインのどの頂点にも対応しない場合には、次のように制御される。すなわち、指示点に対応するポリラインの頂点と頂点に対応しない指示点との間の線分を確定状態とする。図１０の例では、ポリラインのどの頂点とも対応しない指示点１００２を新たな頂点１００１とし、この頂点１００１と、指示点１００３に対応するポリラインの頂点４０４と、の間の線分が確定状態と決定する。
【００４２】
また、上述の処理により、確定状態として決定した線分を単一のポリラインとし、その情報をｐｏｌｙｌｉｎｅ＿ｔａｂｌｅに追加する。
【００４３】
以上、本実施形態の情報処理装置１００は、ユーザが指示点を入力することに対応して、ユーザがひび割れであると判断したひび割れに対応するポリラインの線分の状態を確定状態に変更する。この構成により、対象画像に対してひび割れの入力を行うときに要する工数を低減できる。  ［第２の実施形態］
以下、本発明の第２の実施形態について説明する。本実施形態において、経路探索部２０６は、ｐｏｌｙｌｉｎｅ＿ｔａｂｌｅと指示点および最も新しくｖｅｒｔｅｘ＿ｌｉｓｔに登録された頂点の位置関係に基づいて評価値を導出する。そして、前記評価値に基づいて指示点と最も新しくｖｅｒｔｅｘ＿ｌｉｓｔに登録された頂点との間の経路の有無を判定するものである。なお、第１の実施形態で既に説明した構成については同一の符号を付し、その説明は省略する。
【００４４】
本実施形態の情報処理装置１００の処理の流れは、第１の実施形態と比較すると、Ｓ７０６の処理内容のみが異なる。図８は本実施形態に係る経路探索の処理の流れを示すフローチャートであり、図８のサブルーチンを参照しつつ本実施形態のＳ７０６の処理の詳細を説明する。
【００４５】
図８のＳ８０１において、ポリライン編集確定部２０３は、指示点入力部２０２が入力した指示点と、ｖｅｒｔｅｘ＿ｌｉｓｔに存在する最も新しくｖｅｒｔｅｘ＿ｌｉｓｔに登録された頂点の情報を経路探索部２０６へ出力する。同時にポリライン編集確定部２０３は、ｐｏｌｙｌｉｎｅ＿ｔａｂｌｅを経路探索部２０６へ出力する。そして、経路探索部２０６は、最も新しくｖｅｒｔｅｘ＿ｌｉｓｔに登録された頂点と、指示点入力部２０２から入力された指示点の間の経路を評価し評価値を算出する。
【００４６】
図１１は本実施形態における経路の評価方法を説明する図であり、この図を用いてＳ８０１の処理について説明する。図１１において、指示点１１０２、１１０３は、１１０２、１１０３の順番に指示点入力部２０２に入力されたとする。よって、指示点１１０３が入力された際、指示点１１０２に対応する頂点１１０１は、最も新しくｖｅｒｔｅｘ＿ｌｉｓｔに登録された頂点である。また、指示点１１０３に対応する頂点４０６はポリライン４０２上の頂点である。
【００４７】
ここで、頂点１１０１から頂点４０６が属している頂点４０６以外のポリラインの各頂点に対して仮想的に線分で繋ぎ、各線分に対応する評価値を導出する。図１１の例では、線分１１０４〜１１０６に対して評価値を算出する。評価値の算出は、下記の数式１を用いる。
【００４８】
ｖ＝α・Ｌ＋β・（１８０−Ｄ）      …（数式１）
Ｖは評価値であり、評価値が低いほど良い評価になる。Ｌは線分の長さであり、ここでの線分の長さは線分１１０４〜１１０６の座標系４０１上での長さである。また、Ｄは、線分１１０４〜１１０６につながる頂点とその頂点に繋がる線分の内、頂点４０６に近い線分とがなす角度である。例えば、線分１１０４であれば、角度１１０７である。線分１１０５であれば、角度１１０８である。線分１１０６であれば、角度１１０９である。また、Ｄの角度はｄｅｇｒｅｅで表す。またα、βは係数であり、線分の長さＬと角度Ｄのどちらを重視するかα、βの係数で決定する。もちろんα、βのどちらかを０に設定し、一方を評価しないようにしてもよい。
【００４９】
ここで、線分１１０４〜１１０６を例に評価値を算出する。座標系４０１上で線分１１０４の長さは１３、線分１１０５の長さは１５、線分１１０６の長さは１７である。また、角度１１０７は８７度、角度１１０８は１５３度、角度１１０９は、１２３度である。また、係数αが４であり係数βが１である。線分１１０４に対応する評価値は、４・１３＋１・（１８０−８７）＝１４５になる。線分１１０５に対応する評価値は、４・１５＋１・（１８０−１５３）＝８７になる。線分１１０６に対応する評価値は、４・１７＋１・（１８０−１２３）＝１２５になる。
【００５０】
Ｓ８０２において、経路探索部２０６は、Ｓ８０１で算出したそれぞれの線分に対応する評価値の中で最も低い評価値の線分を選択し、閾値以下であるか判定する。閾値以下であれば、処理はＳ８０３へ進む。閾値以下でなければ、処理はＳ８０４へ進む。本実施形態において、閾値は１００である。図１１の例において、最も低い評価値は、線分１１０５に対応する８７である。よって、この例の場合、最も低い評価値が閾値以下であるため、処理はＳ８０３へ進む。
【００５１】
Ｓ８０３において、経路探索部２０６は、経路が有るという情報と、経路に含まれる頂点の情報をポリライン編集確定部２０３へ出力し、処理は図８のサブルーチン処理を抜けてＳ７０７へ進む。図１１の例では、経路探索部２０６は、線分１１０５を含む頂点１１０１から頂点４０６までの最短経路に含まれる頂点の情報をポリライン編集確定部２０３へ出力する。具体的には、既にｖｅｒｔｅｘ＿ｌｉｓｔに存在する頂点１１０１を除く、頂点４０４、４０５、４０６の情報がポリライン編集確定部２０３へ出力され、Ｓ７１０でｖｅｒｔｅｘ＿ｌｉｓｔに追加される。これは、指示点１１０３の１回の入力で、頂点４０４、４０５、頂点４０６の３つの頂点の情報が入力されるということである。
【００５２】
Ｓ８０４において、経路探索部２０６は、経路が無いという情報をポリライン編集確定部２０３へ出力し、処理はサブルーチン処理を抜けてＳ７０７へ進む。
【００５３】
上述の説明のとおり、本実施形態は、２つの指示点のうち１つがｐｏｌｙｌｉｎｅ＿ｔａｂｌｅに保持されている１つのポリラインに含まれる頂点に対応し、他方の指示点がそのポリラインのどの頂点にも対応しない場合の処理に特徴を有するものである。つまり、このようなケースにおいて、第１の実施形態では、ユーザが入力した指示点とポリライン上の頂点とを直接結ぶ線分を確定状態としている。そのため、例えば図１１のように、ユーザによって指示点１００２および１００３が入力されたとき、第１の実施形態では、指示点１００２（頂点１００１）と指示点１００３に対応する頂点４０６とを結ぶ線分が確定状態として決定された。そのため、頂点１００１、４０４，４０５，４０６を一連のポリラインとして追加するには、第１の実施形態の場合、頂点１００１、４０４，４０６の３か所を指示、入力する必要がある。
【００５４】
これに対して、本実施形態では、上述のケースの場合に、ポリラインのどの頂点にも対応しない指示点と、指示点に対応する頂点を含むポリラインとの位置関係とに基づいて、どの線分を確定状態とするか決定するものである。より具体的には、ポリラインの各頂点を候補点とし、ポリラインのどの頂点にも対応しない指示点と候補点との距離を算出する。また、ポリラインのどの頂点にも対応しない指示点と候補点とによる線分と、その候補点を一方の端点としてポリラインに含まれる線分と、の角度を算出する。そして、この距離と角度とに基づいて、候補点の中から、ポリラインのどの頂点にも対応しない指示点と結ぶべき頂点を決定し、確定状態とする線分を決定するものである。このように、距離と角度とに基づいて確定状態とする線分を決定することにより、各頂点を都度指示、入力しなくとも、ひび割れに尤もらしい線分が確定状態として決定される。
【００５５】
以上、本実施形態の情報処理装置１００は、ユーザが指示点を入力することに対応して、ユーザがひび割れであると判断したひび割れに対応するポリラインの線分の状態を確定状態にする。この構成により、対象画像に対してひび割れの入力を行うときに要する工数を低減できる。さらに、本実施形態では、ポリラインを構成する線分と線分がなす角度に基づいて、ユーザがひび割れであると判断したひび割れに対応するポリラインの線分の状態を確定状態にする。これによって、ひび割れらしいポリラインの線分が選ばれて、確定状態になるため、ユーザによる指示点の入力する回数が減少するので頂点の入力効率を向上することができる。
【００５６】
［第３の実施形態］
以下、本発明の第３の実施形態について説明する。本実施形態では、ポリライン保持部２０１が、保持しているポリラインを構成する線分と略同一の位置に新規のポリラインを構成する線分が確定状態として追加された場合に、保持しているポリラインを構成する線分をポリライン保持部２０１から削除する。なお、第１、第２の実施形態で既に説明した構成については同一の符号を付し、その説明は省略する。
【００５７】
本実施形態の情報処理装置１００の処理の流れは、第１の実施形態と比較すると、Ｓ７１１の処理内容のみが異なる。図９は本実施形態に係るｐｏｌｙｌｉｎｅ  ｔａｂｌｅの登録処理の流れを示すフローチャートであり、図９のサブルーチンを参照しつつ本実施形態のＳ７１１の処理の詳細を説明する。
【００５８】
Ｓ９０１において、ポリライン編集確定部２０３は、ｖｅｒｔｅｘ＿ｌｉｓｔに登録されている全ての頂点の情報を１つのポリラインの情報としてｐｏｌｙｌｉｎｅ＿ｔａｂｌｅの末尾に追加する。例えば、上述した図１０の例では、ｖｅｒｔｅｘ＿ｌｉｓｔに登録されている頂点１００１、４０４、４０５、４０６で構成されるポリラインをｐｏｌｙｌｉｎｅ＿ｔａｂｌｅの末尾に追加する。追加後のｐｏｌｙｌｉｎｅ＿ｔａｂｌｅは、図３（ｂ）のようになる。ここで、追加されたポリラインの情報は３０７である。
【００５９】
Ｓ９０２において、ポリライン保持部２０１は、ｐｏｌｙｌｉｎｅ＿ｔａｂｌｅに追加された、確定状態の線分と略同一の位置にある線分を削除する。ここでは、確定状態であっても未確定状態であっても削除する。図３（ｂ）において、ｐｏｌｙｌｉｎｅ＿ｔａｂｌｅに追加された確定状態の線分はポリラインの情報３０７である。図１０において、ポリラインの情報３０７が有する線分と略同一の位置にある線分は、線分４０８、４０９である。線分４０８、４０９を構成する頂点の始点と終点の座標は、それぞれ（２０，１８）、（２２，１７）と、（２２，１７）、（２６，１０）である。よって、線分の頂点の始点と終点の座標が（２０，１８）、（２２，１７）と、（２２，１７）、（２６，１０）と略同一の位置にある線分を削除する。すなわち、ポリラインの情報３０５の線分の頂点の始点と終点の座標（２０，１８）、（２２，１７）と、（２２，１７）、（２６，１０）を削除する。結果、図３（ｃ）のようにポリラインの情報３０５からｐｏｌｙｌｉｎｅ＿ｔａｂｌｅに追加された、確定状態の線分と略同一の位置にある線分を削除された状態になる。
【００６０】
本実施形態において、略同一とは始点と終点のＸＹ座標がそれぞれ１０％異なったとしても同一の線分とみなせることである。図１０の例では、ｐｏｌｙｌｉｎｅ＿ｔａｂｌｅに追加された確定状態の線分と、削除された線分の座標は完全に同一であった。しかし、ユーザの操作感を向上させるために、ユーザが入力する指示点の精度に基づいて、線分と略同一であれば線分を削除する。なお、略同一の座標とみなせる距離に関しては、予め定められた所定の距離（１０％）を用いてもよいし、ユーザの指示（例えば、表示装置１０７に表示されるスライドバーを操作すること）によってそれを変更できるように構成されていてもよい。
【００６１】
以上、本実施形態の情報処理装置１００は、ユーザが指示点を入力することに対応して、ユーザがひび割れであると判断したひび割れに対応するポリラインの線分の状態を確定状態にする。この構成により、対象画像に対してひび割れの入力を行うときに要する工数を低減できる。さらに、本実施形態では、重複した線分の削除に要する工数を低減できるという効果もある。
【００６２】
［その他の実施形態］
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００６３】
１００  情報処理装置
２０１  ポリライン保持部
２０２  指示点入力部
２０３  ポリライン編集確定部
２０４  表示部
２０５  判定部
２０６  経路探索部
２０７  画像入力部
２０８  ポリライン入力部
【図１】
2018181197.tif 000003
【図２】
2018181197.tif 000004
【図３】
2018181197.tif 000005
【図４】
2018181197.tif 000006
【図５】
2018181197.tif 000007
【図６】
2018181197.tif 000008
【図７】
2018181197.tif 000009
【図８】
2018181197.tif 000010
【図９】
2018181197.tif 000011
【図１０】
2018181197.tif 000012
【図１１】
2018181197.tif 000013