(57)【要約】【課題】対象物の二次元画像から奥行き方向の形状が反映された画像を生成する。【解決手段】特定部１ａは、対象物２が描画された三面図のうち正面図３から閉領域３ａを特定する。判定部１ｂは、三面図のうち平面図４から閉領域３ａに対応する対応部分４ａ，４ｂを特定し、正面図３の奥行き方向に対応する平面図４の方向Ｄに対して、対応部分４ａ，４ｂがどの位置にあるかに基づいて、方向Ｄに対する閉領域３ａの位置を判定する。生成部１ｃは、正面図３における閉領域３ａを、方向Ｄの位置の範囲ごとに定義された色のうち、判定された閉領域３ａの位置に対応する色を用いて塗りつぶした出力画像５を生成する。【選択図】図１
2018101227.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに、
対象物が描画された三面図のうち第１の図から閉領域を特定し、
前記三面図のうち第２の図から前記閉領域に対応する対応部分を特定し、
前記第１の図の奥行き方向に対応する前記第２の図の特定方向に対して、前記対応部分がどの位置にあるかに基づいて、前記特定方向に対する前記閉領域の位置を判定し、
前記第１の図における前記閉領域を、前記特定方向の位置の範囲ごとに定義された色のうち、判定された前記閉領域の位置に対応する色を用いて塗りつぶした出力画像を生成する、
処理を実行させる画像生成プログラム。
【請求項２】
前記閉領域の特定では、さらに、前記第１の図における第１座標軸の方向に対する前記閉領域の両端部を特定し、前記第１座標軸は、前記第２の図の座標軸のうち前記特定方向と交差する第２座標軸と同じ方向を示す座標軸であり、
前記対応部分の特定では、前記第２の図において前記両端部に対応する部分を特定する、
請求項１記載の画像生成プログラム。
【請求項３】
前記対応部分の特定では、
前記第２の図を示す画像から、前記特定方向に延びるエッジを検出し、
前記エッジとして検出された画素の中から、前記第２座標軸の方向に対する位置が前記両端部の位置と一致する対応画素を、前記対応部分として特定し、
前記判定では、
前記対応画素のうち、前記特定方向における所定の基準位置から前記特定方向に位置する画素の計数値と、前記基準位置から前記特定方向とは逆方向に位置する画素の計数値とに基づいて、前記閉領域の位置が前記特定方向に対して前記基準位置のどちら側にあるかを判定する、
請求項２記載の画像生成プログラム。
【請求項４】
前記出力画像の生成では、
前記出力画像として、前記対象物を前記特定方向における所定の基準位置から前記特定方向に投影した第１出力画像と、前記対象物を前記基準位置から前記特定方向とは逆方向に投影した第２出力画像とを生成し、
前記第２出力画像においては、前記閉領域の位置が前記基準位置より前記特定方向側にある場合には、前記閉領域を前記対象物の投影領域を示す第１の色で塗りつぶし、前記閉領域の位置が前記基準位置より前記逆方向側にある場合には、前記閉領域を背景領域を示す第２の色で塗りつぶす、
請求項１または２記載の画像生成プログラム。
【請求項５】
前記出力画像の生成では、さらに、前記第２出力画像における前記閉領域を前記第２の色で塗りつぶし、かつ、前記第１の図に前記閉領域を取り囲む他の閉領域が存在する場合、前記他の閉領域も前記第２の色で塗りつぶす、
請求項１乃至４のいずれか１項に記載の画像生成プログラム。
【請求項６】
前記コンピュータに、
前記出力画像から第１特徴量を算出し、
三次元モデルと第２特徴量とのペアが複数登録されたデータベースを参照し、前記第１特徴量と前記各ペアに含まれる前記第２特徴量との類似度を判定することにより、前記データベースから、前記対象物と類似する類似対象物を描画するための前記三次元モデルを検索する、
処理をさらに実行させる請求項１乃至５のいずれか１項に記載の画像生成プログラム。
【請求項７】
コンピュータが、
対象物が描画された三面図のうち第１の図から閉領域を特定し、
前記三面図のうち第２の図から前記閉領域に対応する対応部分を特定し、
前記第１の図の奥行き方向に対応する前記第２の図の特定方向に対して、前記対応部分がどの位置にあるかに基づいて、前記特定方向に対する前記閉領域の位置を判定し、
前記第１の図における前記閉領域を、前記特定方向の位置の範囲ごとに定義された色のうち、判定された前記閉領域の位置に対応する色を用いて塗りつぶした出力画像を生成する、
画像生成方法。
【請求項８】
対象物が描画された三面図のうち第１の図から閉領域を特定する特定部と、
前記三面図のうち第２の図から前記閉領域に対応する対応部分を特定し、前記第１の図の奥行き方向に対応する前記第２の図の特定方向に対して、前記対応部分がどの位置にあるかに基づいて、前記特定方向に対する前記閉領域の位置を判定する判定部と、
前記第１の図における前記閉領域を、前記特定方向の位置の範囲ごとに定義された色のうち、判定された前記閉領域の位置に対応する色を用いて塗りつぶした出力画像を生成する生成部と、
を有する画像生成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像生成プログラム、画像生成方法および画像生成装置に関する。
【背景技術】
【０００２】
近年、設計分野では三次元ＣＡＤ（Computer−Aided Design）の普及が進み、図面の作成に三次元モデルを用いることが多くなっている。しかし、高精度な三次元モデルの設計には多大なコストがかかってしまう。このため、既存の三次元モデルを効率よく利用することが重要となる。
【０００３】
そこで、類似する三次元モデルを効率よく検索するための次のような技術が提案されている。この技術では、三次元モデルに基づいて、類似判定を行うための中間的な複数の二次元画像が生成される。これらの複数の二次元画像では、三次元モデルの要素が投影された領域と背景領域とが別の色で塗り分けられるとともに、奥行き方向における三次元モデルの形状が反映された状態になる。
【０００４】
次に、生成された複数の二次元画像に基づいて特徴量が算出され、算出された特徴量が三次元モデルとともにデータベースに登録される。そして、特徴量同士の類似判定によって、類似する三次元モデルが検索される。
【０００５】
なお、図面に関する技術の例として、三面図を用いて三次元形状のソリッドモデルを合成する技術が提案されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００９−８０７９６号公報
【特許文献２】特開平８−９６１６４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ところで、既存の資産として、三次元モデルだけでなく二次元ＣＡＤによる二次元図面も活用することで、三次元モデルの設計や製品の開発をさらに効率化できると考えられる。例えば、二次元図面として三面図が広く利用され、蓄積されており、それらの三面図には、設計に関するノウハウなどが含まれている。このため、それらの三面図は、三次元モデルの設計や製品の開発に役立つ貴重な資産であると言える。しかし、三次元モデルと二次元図面とを統合的に管理し、検索できるようなシステムの開発は難しい。
【０００８】
例えば、三面図を前述の三次元モデルの検索技術に適用する場合、三面図に含まれる各図は線画であるので、これらの図を類似判定に直接用いることはできない。また、三面図から、上記の中間的な複数の二次元画像を生成する場合には、二次元画像上に奥行き方向における対象物の形状を反映させる方法がない点に課題がある。
【０００９】
１つの側面では、本発明は、対象物の二次元画像から奥行き方向の形状が反映された画像を生成可能な画像生成プログラム、画像生成方法および画像生成装置を提供することを目的とする。
【課題を解決するための手段】
【００１０】
１つの案では、コンピュータに次のような処理を実行させる画像生成プログラムが提供される。コンピュータは、この画像生成プログラムにしたがって、対象物が描画された三面図のうち第１の図から閉領域を特定し、三面図のうち第２の図から閉領域に対応する対応部分を特定し、第１の図の奥行き方向に対応する第２の図の特定方向に対して、対応部分がどの位置にあるかに基づいて、特定方向に対する閉領域の位置を判定し、第１の図における閉領域を、特定方向の位置の範囲ごとに定義された色のうち、判定された閉領域の位置に対応する色を用いて塗りつぶした出力画像を生成する。
【００１１】
また、１つの案では、上記の画像生成プログラムにしたがって実行される処理と同様の処理が実行される画像生成方法が提供される。
さらに、１つの案では、上記の画像生成プログラムにしたがって実行される処理と同様の処理を実行する画像生成装置が提供される。
【発明の効果】
【００１２】
１つの側面では、対象物の二次元画像から奥行き方向の形状が反映された画像を生成できる。
【図面の簡単な説明】
【００１３】
【図１】第１の実施の形態に係る画像生成装置の構成例および処理例を示す図である。
【図２】第２の実施の形態に係るＣＡＤデータ検索装置のハードウェア構成例を示す図である。
【図３】ＣＡＤデータ検索装置が備える処理機能の構成例を示すブロック図である。
【図４】３Ｄモデルから変換画像を生成する方法を説明するための図である。
【図５】３Ｄモデルから生成された変換画像の例を示す図である。
【図６】三面図から変換画像を生成する方法の比較例を示す図である。
【図７】同一形状の対象物を示す３Ｄモデルと三面図の例を示す図である。
【図８】３Ｄモデルに基づく変換画像の例および三面図に基づく変換画像の比較例を示す図である。
【図９】三面図変換部の内部構成例を示すブロック図である。
【図１０】エッジ検出処理について説明するための図である。
【図１１】位置判定部の処理例を示す図である。
【図１２】塗りつぶし処理の例を示す図である。
【図１３】生成された変換画像の例を示す図である。
【図１４】三面図の登録処理例を示すフローチャート（その１）である。
【図１５】三面図の登録処理例を示すフローチャート（その２）である。
【図１６】三面図を用いた検索処理例を示すフローチャートである。
【発明を実施するための形態】
【００１４】
以下、本発明の実施の形態について図面を参照して説明する。
〔第１の実施の形態〕
図１は、第１の実施の形態に係る画像生成装置の構成例および処理例を示す図である。図１に示す画像生成装置１は、特定部１ａ、判定部１ｂおよび生成部１ｃを有する。特定部１ａ、判定部１ｂおよび生成部１ｃの処理は、例えば、画像生成装置１が備えるプロセッサが所定のプログラムを実行することで実現される。
【００１５】
特定部１ａは、対象物２が描画された三面図のうちの第１の図から、閉領域を特定する。図１の例では、第１の図として正面図３が用いられ、特定部１ａは、正面図３から閉領域３ａを特定する（ステップＳ１）。
【００１６】
判定部１ｂは、上記の三面図のうちの第２の図から、閉領域３ａに対応する対応部分を特定する。図１の例では、第２の図として平面図４が用いられ、判定部１ｂは、平面図４から対応部分４ａ，４ｂを特定する（ステップＳ２）。この特定処理は、例えば、次のような手順で行われる。
【００１７】
正面図３と平面図４との間では、図１中の横方向の位置が一致するという関係がある。このため、特定された閉領域３ａのうち、図１中の縦方向に向かう線の領域３ｂ，３ｃについては、それらに対応する対応部分４ａ，４ｂが、平面図４において横方向に対して同じ位置に存在する可能性が高いと考えられる。そこで、判定部１ｂは、例えば、閉領域３ａからまず領域３ｂ，３ｃを抽出し、平面図４から領域３ｂ，３ｃにそれぞれ対応する対応部分４ａ，４ｂを特定する。これにより、対応部分の判定精度が向上する。
【００１８】
次に、判定部１ｂは、正面図３の奥行き方向に対応する平面図４の方向Ｄを認識し、特定された対応部分４ａ，４ｂが、方向Ｄに対してどの位置にあるかを判定する。そして、判定部１ｂは、その判定結果に基づいて、方向Ｄに対する閉領域３ａの位置を判定する（ステップＳ３）。このステップＳ３の処理により、閉領域３ａが正面図３の奥行き方向に対してどの位置に存在するかが推定される。
【００１９】
ステップＳ３の判定処理では、例えば、判定部１ｂは、特定された対応部分４ａ，４ｂの、平面図４における方向Ｄに対する分布状況に基づいて、方向Ｄに対する閉領域３ａの位置を判定する。具体的な例としては、平面図４における方向Ｄに対する中心位置（重心）に基準位置４ｃが設定される。判定部１ｂは、特定された対応部分４ａ，４ｂの画素が、基準位置４ｃを挟んでどちら側に多く分布しているかによって、閉領域３ａが基準位置４ｃより方向Ｄ側にあるか、または方向Ｄの逆側にあるかを判定できる。この場合、正面図３の奥行き方向に対して、閉領域３ａが対象物２の中心より奥側の部位か、または手前側の部位かが判定されることになる。
【００２０】
次に、生成部１ｃは、正面図３における閉領域３ａを、方向Ｄにおける位置の範囲ごとにあらかじめ定義された色のうち、判定部１ｂによって判定された閉領域３ａの位置に対応する色を用いて塗りつぶした出力画像５を生成する（ステップＳ４）。上記のように、判定部１ｂの判定結果は、閉領域３ａが正面図３の奥行き方向に対してどの位置に存在するかを示す。このため、出力画像５は、対象物２の外形より内側の形状が反映された画像となる。
【００２１】
以上の手順により、画像生成装置１によれば、対象物２を描画した三面図、すなわち二次元画像から、奥行き方向における対象物２の形状が反映された画像を生成できる。生成された画像は、例えば、対象物２と形状が類似する三次元モデルを検索するために利用することができる。
【００２２】
〔第２の実施の形態〕
次に、第２の実施の形態として、図１に示した画像生成装置１の機能を備えるＣＡＤデータ検索装置について説明する。
【００２３】
図２は、第２の実施の形態に係るＣＡＤデータ検索装置のハードウェア構成例を示す図である。第２の実施の形態に係るＣＡＤデータ検索装置１００は、例えば、図２に示すようなコンピュータとして実現される。
【００２４】
ＣＡＤデータ検索装置１００は、プロセッサ１０１によって装置全体が制御されている。プロセッサ１０１は、マルチプロセッサであってもよい。プロセッサ１０１は、例えばＣＰＵ（Central Processing Unit）、ＭＰＵ（Micro Processing Unit）、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ（Application Specific Integrated Circuit）、またはＰＬＤ（Programmable Logic Device）である。またプロセッサ１０１は、ＣＰＵ、ＭＰＵ、ＤＳＰ、ＡＳＩＣ、ＰＬＤのうちの２以上の要素の組み合わせであってもよい。
【００２５】
プロセッサ１０１には、バス１０８を介して、ＲＡＭ（Random Access Memory）１０２と複数の周辺機器が接続されている。
ＲＡＭ１０２は、ＣＡＤデータ検索装置１００の主記憶装置として使用される。ＲＡＭ１０２には、プロセッサ１０１に実行させるＯＳ（Operating System）プログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ１０２には、プロセッサ１０１による処理に必要な各種データが格納される。
【００２６】
バス１０８に接続されている周辺機器としては、ＨＤＤ（Hard Disk Drive）１０３、グラフィック処理装置１０４、入力インタフェース１０５、読み取り装置１０６および通信インタフェース１０７がある。
【００２７】
ＨＤＤ１０３は、ＣＡＤデータ検索装置１００の補助記憶装置として使用される。ＨＤＤ１０３には、ＯＳプログラム、アプリケーションプログラム、および各種データが格納される。なお、補助記憶装置としては、ＳＳＤ（Solid State Drive）などの他の種類の不揮発性記憶装置を使用することもできる。
【００２８】
グラフィック処理装置１０４には、表示装置１０４ａが接続されている。グラフィック処理装置１０４は、プロセッサ１０１からの命令にしたがって、画像を表示装置１０４ａに表示させる。表示装置１０４ａとしては、液晶ディスプレイや有機ＥＬ（Electroluminescence）ディスプレイなどがある。
【００２９】
入力インタフェース１０５には、入力装置１０５ａが接続されている。入力インタフェース１０５は、入力装置１０５ａから出力される信号をプロセッサ１０１に送信する。入力装置１０５ａとしては、キーボードやポインティングデバイスなどがある。ポインティングデバイスとしては、マウス、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
【００３０】
読み取り装置１０６には、可搬型記録媒体１０６ａが脱着される。読み取り装置１０６は、可搬型記録媒体１０６ａに記録されたデータを読み取ってプロセッサ１０１に送信する。可搬型記録媒体１０６ａとしては、光ディスク、光磁気ディスク、半導体メモリなどがある。
【００３１】
通信インタフェース１０７は、ネットワーク１０７ａを介して他の装置との間でデータの送受信を行う。例えば、通信インタフェース１０７には、ユーザによって操作される端末装置５０が接続されている。端末装置５０は、例えば、ユーザの操作に応じて、ＣＡＤデータの登録要求やＣＡＤデータの検索要求をＣＡＤデータ検索装置１００に送信し、登録結果や検索結果を表示情報などによってユーザに提示する。
【００３２】
以上のようなハードウェア構成によって、ＣＡＤデータ検索装置１００の処理機能を実現することができる。
図３は、ＣＡＤデータ検索装置が備える処理機能の構成例を示すブロック図である。ＣＡＤデータ検索装置１００は、ＣＡＤデータが蓄積されるデータベース１２０を有する。データベース１２０に蓄積されるＣＡＤデータとしては、三次元ＣＡＤによって作成された三次元モデル（以下「３Ｄモデル」と記載する）のデータと、二次元ＣＡＤによって作成された三面図のデータとが含まれる。また、ＣＡＤデータは、類似するＣＡＤデータの検索を可能とするための特徴量が付加された状態でデータベース１２０に登録される。ここで言う「類似するＣＡＤデータ」とは、類似する形状の対象物を描画するためのＣＡＤデータを示す。
【００３３】
ＣＡＤデータ検索装置１００は、端末装置５０からＣＡＤデータの登録要求を受け付け、そのＣＡＤデータに基づいて特徴量を算出し、ＣＡＤデータと特徴量とをデータベース１２０に登録する機能を有する。さらに、ＣＡＤデータ検索装置１００は、端末装置５０から検索クエリとして入力されたＣＡＤデータと類似するＣＡＤデータを、データベース１２０から検索する機能も有する。この検索では、ＣＡＤデータ検索装置１００は、入力されたＣＡＤデータに基づいて特徴量を算出し、算出された特徴量と、データベース１２０に登録された各ＣＡＤデータに付加された特徴量とを比較することで、ＣＡＤデータ間の類似度を算出する。そして、ＣＡＤデータ検索装置１００は、データベース１２０の中から類似度が高いＣＡＤデータを特定して端末装置５０に通知する。
【００３４】
なお、データベース１２０は、例えばＨＤＤ１０３など、ＣＡＤデータ検索装置１００が備える記憶装置に格納される。あるいは、データベース１２０は、ＣＡＤデータ検索装置１００の外部に接続された記憶装置に格納されていてもよい。
【００３５】
ＣＡＤデータ検索装置１００は、ＣＡＤデータの登録や検索を実行するための処理機能として、データ入力部１３１、３Ｄモデル変換部１３２、三面図変換部１３３、特徴量算出部１３４、登録部１３５および検索部１３６を有する。なお、データ入力部１３１、３Ｄモデル変換部１３２、三面図変換部１３３、特徴量算出部１３４、登録部１３５および検索部１３６の処理は、例えば、プロセッサ１０１が所定のアプリケーションプログラムを実行することで実現される。
【００３６】
データ入力部１３１、３Ｄモデル変換部１３２、三面図変換部１３３および特徴量算出部１３４は、データベース１２０への登録またはデータベース１２０の検索を行うために、入力されたＣＡＤデータに対応する特徴量を算出するための処理機能である。
【００３７】
データ入力部１３１は、登録の対象として、または検索クエリとして端末装置５０から送信されたＣＡＤデータを受信する。データ入力部１３１は、ＣＡＤデータとして３Ｄモデルのデータを受信した場合、３Ｄモデルのデータを３Ｄモデル変換部１３２に出力する。一方、データ入力部１３１は、ＣＡＤデータとして三面図のデータを受信した場合、三面図のデータを三面図変換部１３３に出力する。なお、データ入力部１３１は、特徴量が未算出のＣＡＤデータをデータベース１２０から取得して、３Ｄモデル変換部１３２と三面図変換部１３３のいずれかに出力することもできる。
【００３８】
３Ｄモデル変換部１３２は、データ入力部１３１からの３Ｄモデルを、特徴量を算出するための中間的な複数の二次元画像に変換する。以下、変換された複数の二次元画像を「変換画像」と記載する場合がある。後述するように、３Ｄモデル変換部１３２は、３Ｄモデルの領域のうち、３Ｄモデル上の基準点から三次元座標系の各軸に沿って一方向側に存在する領域と他方向側に存在する領域とを個別に投影した６枚の変換画像を生成する。
【００３９】
三面図変換部１３３は、データ入力部１３１からの三面図を、特徴量を算出するための複数の二次元画像、すなわち変換画像に変換する。三面図変換部１３３は、３Ｄモデル変換部１３２が出力する６枚の変換画像と同様の性質を有する６枚の変換画像を、三面図から生成する。これにより、入力された三面図のデータを、他の三面図のデータだけでなく３Ｄモデルのデータとの間でも高精度な類似判定をできるようにする。
【００４０】
特徴量算出部１３４は、３Ｄモデル変換部１３２または三面図変換部１３３によって生成された変換画像から、特徴量を算出する。
ＣＡＤデータの登録が要求されている場合、特徴量算出部１３４は、データ入力部１３１に入力されたＣＡＤデータを、算出された特徴量とともに登録部１３５に出力する。登録部１３５は、ＣＡＤデータに特徴量を付加してデータベース１２０に登録する。
【００４１】
一方、ＣＡＤデータの検索が要求されている場合、特徴量算出部１３４は、データ入力部１３１に入力されたＣＡＤデータを、算出された特徴量とともに検索部１３６に出力する。検索部１３６は、算出された特徴量を、データベース１２０内の各ＣＡＤデータに付加された特徴量と比較することで、入力されたＣＡＤデータとデータベース１２０内の各ＣＡＤデータとの類似度を算出する。そして、検索部１３６は、データベース１２０内のＣＡＤデータの中から、入力されたＣＡＤデータと類似度が高いＣＡＤデータを特定する。
【００４２】
次に、３Ｄモデルから変換画像を生成する方法について説明する。本実施の形態では、３Ｄモデル変換部１３２は、特開２００９−８０７９６号公報に記載の方法を用いて、３Ｄモデルから変換画像を生成する。
【００４３】
図４は、３Ｄモデルから変換画像を生成する方法を説明するための図である。図４では、３Ｄモデル２０１を例示するとともに、３Ｄモデル２０１を正面図２０２および平面図２０３として描画した例も示している。
【００４４】
３Ｄモデル変換部１３２は、入力された３Ｄモデル２０１の回転や平行移動を行うことで、３Ｄモデル２０１の主軸をシステム座標系の３つの座標軸ｘ，ｙ，ｚと一致させ、さらに３Ｄモデル２０１の重心をシステム座標系の原点と一致させる。次に、３Ｄモデル変換部１３２は、３Ｄモデル２０１を一様に標本化し、３Ｄモデル２０１上の多数の標本点を求める。
【００４５】
次に、３Ｄモデル変換部１３２は、３Ｄモデル２０１を座標軸ｘ，ｙ，ｚのそれぞれの正方向、負方向にそれぞれ投影し、各軸について２枚、合計６枚の変換画像を生成する。各変換画像においては、３Ｄモデル２０１の領域のうち、対応する座標軸方向に対して重心２０４を境界とした片側領域に含まれる標本点のみが利用される。
【００４６】
例えば、図４の正面図２０２を参照すると、３Ｄモデル２０１の標本点のうち、重心２０４からｚ軸の正方向Ｄ１に存在する標本点をｚ軸の正方向Ｄ１に投影することで、変換画像の１つとして「上面画像」が生成される。一方、３Ｄモデル２０１の標本点のうち、重心２０４からｚ軸の負方向Ｄ２に存在する標本点をｚ軸の負方向Ｄ２に投影することで、変換画像の１つとして「底面画像」が生成される。
【００４７】
また、図４の平面図２０３を参照すると、３Ｄモデル２０１の標本点のうち、重心２０４からｙ軸の正方向Ｄ３に存在する標本点をｙ軸の正方向Ｄ３に投影することで、変換画像の１つとして「背面画像」が生成される。一方、３Ｄモデル２０１の標本点のうち、重心２０４からｙ軸の負方向Ｄ４に存在する標本点をｙ軸の負方向Ｄ４に投影することで、変換画像の１つとして「正面画像」が生成される。
【００４８】
また、３Ｄモデル２０１の標本点のうち、重心２０４からｘ軸の正方向Ｄ５に存在する標本点をｘ軸の正方向Ｄ５に投影することで、変換画像の１つとして「右側面画像」が生成される。一方、３Ｄモデル２０１の標本点のうち、重心２０４からｘ軸の負方向Ｄ６に存在する標本点をｘ軸の負方向Ｄ６に投影することで、変換画像の１つとして「左側面画像」が生成される。
【００４９】
各変換画像においては、３Ｄモデル２０１の標本点を含む領域が対象物領域を示す白で塗りつぶされ、それ以外の領域が背景領域を示す黒で塗りつぶされる。なお、対象物領域と背景領域は、白と黒に限らず、異なる色で塗り分けられる、あるいは異なる輝度値が割り当てられるなど、区別可能な状態とされればよい。
【００５０】
図５は、３Ｄモデルから生成された変換画像の例を示す図である。上記手順により、図４の３Ｄモデル２０１から、図５に示すような上面画像２１１、底面画像２１２、正面画像２１３、背面画像２１４、左側面画像２１５および右側面画像２１６が生成される。
【００５１】
３Ｄモデル変換部１３２によって生成された変換画像からは、特徴量算出部１３４によって特徴量が検出される。検出された特徴量は、ＣＡＤデータの検索の際に類似性を判定するために利用される。
【００５２】
生成された変換画像に基づく特徴量を用いて３Ｄモデルの検索が行われる場合には、３Ｄモデル間で直接的に類似判定を行うのでなく、３Ｄモデルから変換された二次元画像間で類似判定を行うことによって、類似する３Ｄモデルが検索される。これにより、類似判定の処理負荷を軽減し、その処理時間を短縮することができる。また、３Ｄモデル変換部１３２による変換画像の生成手順によって、対象物の外形だけでなく、奥行き方向における対象物の形状も反映された二次元画像が生成される。このような二次元画像が類似判定に用いられることで、検索精度を向上させることができる。
【００５３】
次に、三面図変換部１３３による三面図からの変換画像の生成方法について説明する。以下の説明では、まず、三面図からの変換画像の生成方法の比較例を図６に示し、図７、図８を用いて比較例の問題点を説明する。そして、図９〜図１３を用いて、本実施の形態での変換画像生成方法を説明する。
【００５４】
三面図は線画であるので、そのままでは３Ｄモデルから生成された変換画像と比較することはできない。そこで、本実施の形態では、三面図変換部１３３を用いて、３Ｄモデルから生成された変換画像と同等の性質を有する変換画像が３面図から生成される。
【００５５】
三面図から変換画像を生成する方法としては、例えば、三面図を３Ｄモデルに変換した上で、３Ｄモデル変換部１３２と同じ方法によって変換画像を生成する方法が考えられる。しかし、二次元画像である三面図を３Ｄモデルに精度よく変換することは難しく、計算負荷も高いので、現実的ではない。そこで、他の方法として、次の図６に示すように、三面図のシルエットを投影することで変換画像を生成する方法が考えられる。
【００５６】
図６は、三面図から変換画像を生成する方法の比較例を示す図である。この図６では、図４に示した３Ｄモデル２０１によって描画されるものと同じ形状の対象物についての三面図２２０を示す。この三面図２２０には、正面図２２１、平面図２２２および側面図２２３が含まれる。
【００５７】
ここで、正面図２２１、平面図２２２および側面図２２３のそれぞれにおける対象物のシルエットを、白で塗りつぶし、それ以外の領域を黒で塗りつぶす。これにより、正面図２２１、平面図２２２および側面図２２３から、図６に示す画像２３１，２３２，２３３がそれぞれ生成される。
【００５８】
このような画像２３１〜２３３と、図５に示した変換画像とをマッチングした場合を考える。この場合、例えば、画像２３１と正面画像２１３、画像２３２と底面画像２１２、画像２３３と右側面画像２１６とが、それぞれ一致すると判定される。このため、類似検索により、三面図２２０と類似するＣＡＤデータとして３Ｄモデル２０１を抽出できる可能性はある。
【００５９】
しかしながら、上記の方法では、次の図７に示す例のように、対象物の形状によっては類似検索精度が大きく低下する場合がある。
図７は、同一形状の対象物を示す３Ｄモデルと三面図の例を示す図である。図７では例として、凹部を有する対象物を示す３Ｄモデル２４０および三面図２５０を示している。なお、三面図２５０には、正面図２５１、平面図２５２および側面図２５３が含まれる。
【００６０】
図８は、３Ｄモデルに基づく変換画像の例および三面図に基づく変換画像の比較例を示す図である。図８に示す上面画像２６１、底面画像２６２、正面画像２６３、背面画像２６４、左側面画像２６５および右側面画像２６６は、図７に示した３Ｄモデル２４０に基づいて生成された変換画像である。
【００６１】
一方、図８に示す上面画像２７１、底面画像２７２、正面画像２７３、背面画像２７４、左側面画像２７５および右側面画像２７６は、図６に示した比較例の方法を用いて生成された変換画像の例である。すなわち、上面画像２７１および底面画像２７２は、図７の平面図２５２に基づくシルエット画像である、正面画像２７３および背面画像２７４は、図７の正面図２５１に基づくシルエット画像である。左側面画像２７５および右側面画像２７６は、図７の側面図２５３に基づくシルエット画像である。なお、ここでは、上面画像２７１と底面画像２７２、正面画像２７３と背面画像２７４、左側面画像２７５と右側面画像２７６は、それぞれ同一の画像として擬似的に生成されている。
【００６２】
図８において、３Ｄモデル２４０に基づく変換画像では、上面画像２６１および正面画像２６３において、対象物の凹部の内側の形状が現れている。一方、三面図２５０に基づく変換画像では、いずれの画像にも凹部の形状は現れないため、単純な直方体に基づいて生成された変換画像と区別できない。このため、三面図２５０に基づく変換画像を用いて類似判定を行った場合、形状が大きく異なる対象物を描画するための３Ｄモデルとの類似度が高くなってしまい、検索精度が低下するという問題がある。
【００６３】
そこで、本実施の形態では、三面図を基に、凹部の形状など、奥行き方向における対象物の形状が反映された変換画像を生成できるようにする。
図９は、三面図変換部の内部構成例を示すブロック図である。三面図変換部１３３は、変換制御部１３３ａ、ラベリング部１３３ｂ、エッジ検出部１３３ｃ、位置判定部１３３ｄおよび塗りつぶし部１３３ｅを有する。なお、ラベリング部１３３ｂ、位置判定部１３３ｄ、塗りつぶし部１３３ｅは、それぞれ図１に示した特定部１ａ、判定部１ｂ、生成部１ｃの一例である。
【００６４】
変換制御部１３３ａは、三面図に基づく変換画像の生成処理全般を統括的に制御する。ラベリング部１３３ｂは、正面図、平面図、側面図のそれぞれから、線で囲まれた閉領域を検出する。この処理では、つながった線で囲まれた１つの閉領域内の各画素に、固有のラベル番号が割り当てられる。エッジ検出部１３３ｃは、正面図、平面図、側面図のそれぞれから、所定の方向に対するエッジを検出する。
【００６５】
位置判定部１３３ｄは、正面図、平面図、側面図のそれぞれから検出された閉領域の奥行き方向の位置を判定する。塗りつぶし部１３３ｅは、位置判定部１３３ｄによる判定結果に基づいて、正面図、平面図、側面図に対して塗りつぶし処理を施す。これにより、６つの変換画像が生成される。
【００６６】
次に、三面図変換部１３３の処理の詳細について説明する。以下の説明では、例として、図７に示した三面図２５０が入力されるものとする。
三面図変換部１３３は、変換処理の対象（処理対象）として正面図２５１を選択することで、正面画像と背面画像を生成する。このとき、参照図として平面図２５２と側面図２５３の少なくとも一方が参照される。また、三面図変換部１３３は、処理対象として平面図２５２を選択することで、上面画像と底面画像を生成する。このとき、参照図として正面図２５１と側面図２５３の少なくとも一方が参照される。さらに、三面図変換部１３３は、処理対象として側面図２５３を選択することで、左側面画像と右側面画像を生成する。このとき、参照図として正面図２５１と平面図２５２の少なくとも一方が参照される。
【００６７】
参照図は、処理対象の図に現れている対象物の領域が、その図の奥行き方向におけるどの位置にあるものなのかを推定するために参照される。以下、例として、処理対象として正面図２５１を選択し、参照図として平面図２５２を選択することで、正面画像と背面画像を生成する処理について説明する。
【００６８】
なお、本実施の形態では例として、三面図２５０に含まれる各図の画像では、白の背景領域に黒の線が描画されているものとする。また、各図の画像における座標（ｘ，ｙ）の画素の輝度を、ｐ（ｘ，ｙ）と表す。
【００６９】
＜ラベリング処理＞
まず、ラベリング処理に先立ち、ラベリング部１３３ｂは、正面図２５１の画像を２値化する。例えば、輝度の最大値が「２５５」の場合、ラベリング部１３３ｂは、各画素の輝度ｐ（ｘ，ｙ）を所定の閾値（例えば「１２８」）と比較する。ラベリング部１３３ｂは、輝度ｐ（ｘ，ｙ）が閾値以上の場合には輝度ｐ（ｘ，ｙ）を「２５５」に置き換え、閾値未満の場合には輝度ｐ（ｘ，ｙ）を「０」に置き換える。
【００７０】
次に、ラベリング部１３３ｂは、正面図２５１に対してラベリング処理を行う。ラベリング処理は、特定の同じ画素値を有する連続画素に対して固有のラベル番号を割り当てる処理である。本実施の形態では背景領域が白（輝度「２５５」）であるので、ラベリング部１３３ｂは、連続する黒画素に対して固有のラベル番号を割り当てる。ラベリング部１３３ｂは、黒画素に対しては「１」以上のラベル番号を割り当て、その他の画素（白画素）に対してはレベル番号「０」を割り当てる。この処理により、正面図２５１の画像から、「１」以上の同一のラベル番号が割り当てられた画素の領域が、線で囲まれた閉領域として検出される。
【００７１】
＜エッジ検出処理＞
図１０は、エッジ検出処理について説明するための図である。エッジ検出部１３３ｃは、参照図として選択された平面図２５２の画像から、特定の方向のエッジを検出する。このエッジ検出は、正面図２５１から検出された閉領域の一部に対応する可能性が高い画素を、参照図である平面図２５２から抽出するために実行される。
【００７２】
正面図２５１の座標軸の１つと平面図２５２の座標軸の１つは、対象物が存在する空間上の同じ方向を示す。図１０の例では横方向の座標軸（ｘ軸）がこれに相当する。そして、正面図２５１と平面図２５２との間では、ｘ軸方向の位置が一致するという関係がある。
【００７３】
このような関係から、正面図２５１において縦方向（ｙ軸方向）に延びている線は、平面図２５２でも、ｘ軸上の同じ座標の位置において縦方向（ｙ軸方向）に延びる線として現れる。換言すると、正面図２５１においてｙ軸方向に延びる線に対応する部分は、平面図２５２でもｙ軸方向に延びる線として特定できる。一方、正面図２５１においてｘ軸方向に延びている線は、平面図２５２上のどの線に対応するのかを判別できない。
【００７４】
そこで、エッジ検出部１３３ｃは、正面図２５１上の線に対応する部分の候補として、平面図２５２からｙ軸方向に延びるエッジを検出する。図１０のエッジ画像２５４は、平面図２５２の画像から検出されたエッジを白画素として表したものである。
【００７５】
ｙ軸方向に延びるエッジの検出方法としては、例えば、モルフォロジ手法を用いる方法がある。モルフォロジの演算としては、膨張処理、縮小処理、オープニング、クロージング、トップハットがある。膨張処理をＤｉｌａｔａｔｉｏｎ（ｐ，Ｒ）、縮小処理をＥｒｏｓｉｏｎ（ｐ，Ｒ）、オープニングをＯｐｅｎ（ｐ，Ｒ）、クロージングをＣｌｏｓｅ（ｐ，Ｒ）、トップハットをＴｏｐＨａｔ（ｐ，Ｒ）とすると、これらは次の式（１）〜（５）によって表される。
【００７６】
【数１】
2018101227.tif 000003
【００７７】
ここで、ｐは処理対象の画素を示し、Ｒは演算を行う範囲を示す。例えば、処理対象の画素とその上下左右における各１画素（合計９画素）を演算範囲とする場合、Ｒ＝１と指定される。
【００７８】
膨張処理では、暗い画素の範囲が広がり、縮小処理では、暗い画素の範囲が狭まる。オープニングでは、局所的に明るい画素が除去され、クロージングでは、局所的に暗い画素が除去される。トップハットでは、縮小処理後に膨張処理が実行されることで、ベースとなる低い画素値が求められるとともに、その画素がベース値から大きくなっているかが求められる。
【００７９】
上記演算を用いた場合、横方向の差分が大きい画素は、次の式（６）によって求められる。
Ｐe（ｘ，ｙ）＝ＴｏｐＨａｔ（ｐ，Ｒe）      ・・・（６）
ここで、Ｒeは、演算を行う範囲を示す。横方向の変化が大きい部分を求めるためには、例えば、ｙ軸方向が１画素、ｘ軸方向が５画素に設定される。この画素数は、画像サイズの違いなどに応じて、ｙ軸方向の方が大きくなるという条件下で変更することができる。
【００８０】
また、例えば、ある程度の長さのエッジを検出したい場合には、次の式（７）を用いて、縦方向のエッジのつながりを検出することもできる。
Ｐv（ｘ，ｙ）＝Ｃｌｏｓｅ（ｐ，Ｒv）      ・・・（７）
ここで、Ｒvは、演算を行う範囲を示す。縦方向のつながりを求める場合、例えば、ｙ軸方向が７画素、ｘ軸方向が１画素に設定される。この画素数は、ｙ軸方向の方が大きくなるという条件下で変更することができる。クロージングは膨張処理後に縮小処理を実行するので、ある程度の画素が欠けている場合でもエッジをつなげることができる。
【００８１】
以上の処理により、平面図２５２に基づくエッジ画像２５４として、エッジ部分が白（画素値「２５５」）、それ以外の部分が黒（画素値「０」）となる画像が生成される。
＜閉領域の奥行き方向の位置判定＞
図１１は、位置判定部の処理例を示す図である。以下、図１０と図１１を用いて位置判定部１３３ｄの処理を説明する。
【００８２】
位置判定部１３３ｄは、図１１に示す処理を、正面図２５１から検出された閉領域ごとに実行する。これにより、位置判定部１３３ｄは、正面図２５１の奥行き方向に対する各閉領域の位置が手前側か奥側かを判定する。
【００８３】
図１１に示すように、位置判定部１３３ｄは、まず、正面図２５１から検出された閉領域の左端、右端（すなわち、ｘ軸方向の両端）の座標を特定する（ステップＳ１１）。次に、位置判定部１３３ｄは、平面図２５２から検出されたエッジの画素のうち、ｘ座標が閉領域の左端と同じ画素を、ｙ軸方向に対して手前側、奥側のそれぞれについてカウントする（ステップＳ１２ａ）。これとともに、位置判定部１３３ｄは、平面図２５２から検出されたエッジの画素のうち、ｘ座標が閉領域の右端と同じ画素を、ｙ軸方向に対して手前側、奥側のそれぞれについてカウントする（ステップＳ１２ｂ）。
【００８４】
例えば、図１０の正面図２５１から検出された閉領域２５１ａについては、ｘ座標として、左端の座標Ｘ１と右端の座標Ｘ２が特定される。また、エッジ画像２５４には、座標Ｘ１のエッジ部２５４ａと座標Ｘ２のエッジ部２５４ｂが存在する。
【００８５】
ステップＳ１２ａ，１２ｂでは、エッジの画素のｙ座標が、所定の閾値未満の場合に手前側と判定され、閾値以上の場合に奥側と判定される。閾値は、エッジ画像２５４のｙ軸方向に対する大きさの１／２に設定される。したがって、図１０においては、エッジ画像２５４におけるｙ軸方向の中央位置２５４ｃに対して、下側にあるエッジが手前側と判定され、上側にあるエッジが奥側と判定される。図１０に例示されるエッジ部２５４ａ，２５４ｂに含まれるエッジの画素は、いずれも奥側と判定される。
【００８６】
ここで、ラベル番号ｉの閉領域におけるｘ座標の最小値をＭｉｎＸ（ｉ）、ｘ座標の最大値をＭａｘＸ（ｉ）とする。また、エッジ画像２５４の画素の座標をｅ（ｘ，ｙ）、エッジ画像２５４のｘ方向の幅をＷ、ｙ方向の高さをＤとする。このとき、閉領域の左端に対応する手前側のエッジ画素数Ｅmin（ｉ）Front、奥側のエッジ画素数Ｅmin（ｉ）Back、右端に対応する手前側のエッジ画素数Ｅmax（ｉ）Front、奥側のエッジ画素数Ｅmax（ｉ）Backは、次の式（８）〜（１１）で表される。
【００８７】
【数２】
2018101227.tif 000004
【００８８】
次に、位置判定部１３３ｄは、エッジ画素数のカウント値に基づいて、閉領域が手前側か奥側かを判定する（ステップＳ１３）。ここではまず、位置判定部１３３ｄは、閉領域の左端、右端のそれぞれについて手前側か奥側かを判定する。
【００８９】
例えば、左端の判定では、位置判定部１３３ｄは、手前側のエッジ画素数Ｅmin（ｉ）Frontが奥側のエッジ画素数Ｅmin（ｉ）Backより十分大きい場合、左端が手前側にあると判定する。一方、位置判定部１３３ｄは、奥側のエッジ画素数Ｅmin（ｉ）Backが手前側のエッジ画素数Ｅmin（ｉ）Frontより十分大きい場合、左端が奥側にあると判定する。なお、「十分大きい」ことの判定方法としては、例えば、重みａ，ｂ（ａ＞０，ｂ＞０）を用い、値Ａ，ＢについてＡ＞Ｂ・（ａ＋ｂ）の場合にＡがＢより十分大きいと判定する方法を用いることができる。
【００９０】
また、手前側と奥側の各エッジ画素数に十分な差がない場合には、左端の対応部分が手前側と奥側の両方に存在するケースと、手前側にも奥側にも存在しない（例えば、対応部分が存在しない）ケースとが考えられる。そこで、位置判定部１３３ｄは、例えば、閾値Ｔmin，Ｔmax（Ｔmin＜Ｔmax）を用いて次のように判定する。
【００９１】
位置判定部１３３ｄは、Ｅmin（ｉ）Front≧ＴmaxかつＥmin（ｉ）Back≧Ｔmaxの場合、左端が手前側と奥側の両方にあると判定する。また、位置判定部１３３ｄは、Ｅmin（ｉ）Front≦ＴminかつＥmin（ｉ）Back≦Ｔminの場合、左端が手前側と奥側のどちらにもないと判定する。位置判定部１３３ｄは、それ以外の場合は、不明と判定する。
【００９２】
このような判定により、左端の状態は、「手前側にある」「奥側にある」「両方にある」「不明」という４つの状態のいずれかとして判定される。なお、ここでは、手前側と奥側のどちらでもない状態も、「不明」の状態に含めることとする。
【００９３】
位置判定部１３３ｄは、右端についても上記と同様の手順で判定を行う。そして、位置判定部１３３ｄは最終的に、左端、右端の判定結果から、閉領域が手前側か奥側かを判定する。このとき、位置判定部１３３ｄは、左端、右端の判定結果が同一であれば、その判定結果をそのまま閉領域の判定結果とする。一方、判定結果が異なる場合には、例えば、次のように判定される。
【００９４】
位置判定部１３３ｄは、例えば、左端、右端の一方が手前側と判定され、他方が奥側と判定された場合、閉領域を両方と判定する。また、位置判定部１３３ｄは、左端、右端の一方が手前側または奥側と判定され、他方が両方と判定された場合、閉領域を両方と判定する。また、位置判定部１３３ｄは、左端、右端の一方が不明と判定されていても、他方の判定結果が不明以外と判定されていれば、他方の判定結果を閉領域の判定結果とする。
【００９５】
また、位置判定部１３３ｄは、左端、右端の両方が不明と判定された場合には、現在の処理対象の閉領域の周囲を取り囲む他の閉領域の判定結果を、そのまま用いてもよい。ここで、ある領域ｒが他の領域ａを取り囲んでいることの判定は、例えば、次のような手順で行うことができる。ここでは、領域ｒが、領域ａの周囲のどれだけの角度を取り囲んでいるかを判定するものとする。
【００９６】
領域ａの画素の座標を（ｘ，ｙ）とし、領域ｒの画素の座標を（ｘ’，ｙ’）とすると、画素間を結ぶ線分の角度はｔａｎ-1（ｙ−ｙ’）／（ｘ−ｘ’）と求められる。領域ａのすべての画素と領域ｒのすべての画素との間で上記角度を求め、これらの分布から取り囲んでいる角度が求められる。ただし、処理の高速化のために、例えば、領域ａについては全画素を使用せず、領域ａの中心画素のみ用いてもよい。
【００９７】
また、角度の分布を求める際には、例えば、４５度単位で判定を行うことで、計算量をさらに抑制できる。例えば、Ｄｘ＝ｘ’−ｘ、Ｄｙ＝ｙ’−ｙとした場合、「Ｄｘ≧０かつＤｙ≧Ｄｘ」「Ｄｙ＜Ｄｘかつｙ≧０」「ｙ＜０かつＤｙ≧−Ｄｘ」「Ｄｙ＜−ＤｘかつＤｘ＞０」「Ｄｘ＜０かつＤｙ＜Ｄｘ」「Ｄｙ≧ＤｘかつＤｙ＜０」「Ｄｙ≧０かつＤｙ＜−Ｄｘ」「Ｄｙ≧−ＤｘかつＤｘ＜０」の８つに分類できる。これにより、角度を４５度単位で取り扱うことができる。
【００９８】
以上の手順により、領域ｒと領域ａとの画素間の角度の幅が一定の角度以上（例えば、１８０度以上）ある場合に、領域ｒが領域ａを取り囲むと判定することができる。
なお、以上の図１０、図１１では、処理対象として正面図２５１を選択し、参照図として平面図２５２を選択した場合について説明した。しかし、参照図として平面図２５２の代わりに側面図２５３を選択し、正面図２５１上の各閉領域が手前側か奥側かを判定することもできる。この場合、側面図２５３からｘ軸方向のエッジが検出されることでエッジ画像が生成される。また、エッジ画像から、閉領域のｙ軸方向の両端（上端、下端）に対応するエッジの画素が抽出され、抽出された画素のうち、ｙ軸方向の中央部より左側の画素数と右側の画素数とがカウントされる。そして、それらのカウント数に基づいて、閉領域が手前側か奥側かが判定される。
【００９９】
また、参照図として平面図２５２と側面図２５３の両方が選択されてもよい。この場合、平面図２５２と側面図２５３をそれぞれ用いて上記の処理が実行され、両方で得られた判定結果を突き合わせることで、閉領域が手前側か奥側かが最終的に判定されればよい。
【０１００】
＜塗りつぶし処理＞
図１２は、塗りつぶし処理の例を示す図である。塗りつぶし部１３３ｅは、平面図２５２の画像から、正面画像と背面画像とを生成する。まず、正面画像を生成する場合、塗りつぶし部１３３ｅは、平面図２５２から検出された閉領域のうち、手前側と判定された領域と両方と判定された領域とを、対象物の領域を示す白で塗りつぶす。また、塗りつぶし部１３３ｅは、その他の閉領域と閉領域の外側の領域とを、背景を示す黒で塗りつぶす。
これにより、対象物の領域のうち、奥行き方向に対する中間部から手前側の領域のみが投影された正面画像が得られる。
【０１０１】
図１２では例として、正面図２５１の画像における閉領域２５１ａの塗りつぶしを行う場合を示している。この例では、閉領域２５１ａは奥側と判定されるので、塗りつぶし部１３３ｅは、閉領域２５１ａを黒で塗りつぶす（ステップＳ２１）。また、塗りつぶし部１３３ｅは、例えば、奥側と判定された閉領域の周囲を、他の閉領域が取り囲んでいる場合には、他の閉領域も奥側と判定してもよい。図１２の例では、塗りつぶし部１３３ｅは、閉領域２５１ａを取り囲む閉領域２５１ｂも、黒で塗りつぶす。一方、この例では、閉領域２５１ｃは手前側または両方と判定されるので、塗りつぶし部１３３ｅは、閉領域２５１ｃを白で塗りつぶす。これにより、正面画像２５５が生成される（ステップＳ２２）。
【０１０２】
また、背景画像を生成する場合、塗りつぶし部１３３ｅは、平面図２５２から検出された閉領域のうち、奥側と判定された領域と両方と判定された領域とを、対象物の領域を示す白で塗りつぶす。また、塗りつぶし部１３３ｅは、その他の閉領域と閉領域の外側とを、背景を示す黒で塗りつぶす。あるいは、塗りつぶし部１３３ｅは、すべての閉領域を白で塗りつぶしてもよい。これは、三面図を作成する場合、重要な構造が見える方向から見た図が作成される可能性が高いため、後ろ側には特別な構造がないと見なすことができるからである。
【０１０３】
なお、塗りつぶし部１３３ｅは、不明と判定された閉領域のうち、エッジ画像２５４から対応するエッジ画素が見つからなかった閉領域については、その閉領域に接している他の閉領域が１つしかない場合、穴であると判定して、黒で塗りつぶしてもよい。
【０１０４】
また、塗りつぶし部１３３ｅは、閉領域と閉領域との境界線についても、どちらかの閉領域と同じ色で塗りつぶすことで、境界線のない正面画像および背面画像を生成する。
図１３は、生成された変換画像の例を示す図である。図７に示した三面図２５０からは、例えば、図１３に示すような上面画像２８１、底面画像２８２、正面画像２８３、背面画像２８４、左側面画像２８５および右側面画像２８６が生成される。図１３からわかるように、上面画像２８１や正面画像２８３では、対象物の凹部の形状が現れている。また、上面画像２８１ではさらに、凹部の内側に存在する構造物の形状も現れている。
【０１０５】
以上の手順により、三面図変換部１３３は、画像の奥行き方向における対象物の形状が反映された画像を含む、３Ｄモデル変換部１３２によって生成されるものと同等の性質を有する６枚の変換画像を生成することができる。
【０１０６】
＜フローチャート＞
次に、ＣＡＤデータ検索装置１００の処理についてフローチャートを用いて説明する。
図１４、図１５は、三面図の登録処理例を示すフローチャートである。
【０１０７】
［ステップＳ３１］このステップＳ３１の処理は、データ入力部１３１が、三面図のデータとその登録要求とを端末装置５０から受信すると開始される。データ入力部１３１は、受信した三面図のデータを三面図変換部１３３に出力する。三面図変換部１３３において、変換制御部１３３ａは、三面図の中から処理対象の図を選択する。
【０１０８】
［ステップＳ３２］ラベリング部１３３ｂは、三面図から閉領域を検出する。
［ステップＳ３３］変換制御部１３３ａは、検出された閉領域のうち、位置判定が実施されていない閉領域の中から、１つを選択する。
【０１０９】
［ステップＳ３４］変換制御部１３３ａは、三面図から、処理対象の図と左右方向（ｘ軸方向）の位置が一致する図を、参照図として特定する。例えば、処理対象が正面図の場合、参照図として平面図が特定される。処理対象が平面図の場合、参照図として正面図が特定される。処理対象が側面図の場合、参照図として平面図が特定される。
【０１１０】
なお、処理対象が側面図で参照図が平面図の場合、以下のステップＳ３５，Ｓ３６の処理では、平面図における座標軸は９０度回転される。
［ステップＳ３５］エッジ検出部１３３ｃは、参照図から縦方向（ｙ軸方向）のエッジを検出する。
【０１１１】
［ステップＳ３６］位置判定部１３３ｄは、選択された閉領域の左端と右端を特定する。位置判定部１３３ｄは、検出されたエッジの画素のうち、左端に対応する画素を、処理対象の図の奥行き方向に対して手前側と奥側のそれぞれについてカウントする。左端に対応する画素とは、左端と同じｘ座標の画素である。これとともに、位置判定部１３３ｄは、検出されたエッジの画素のうち、右端に対応する画素を、処理対象の図の奥行き方向に対して手前側と奥側のそれぞれについてカウントする。右端に対応する画素とは、右端と同じｘ座標の画素である。
【０１１２】
［ステップＳ３７］変換制御部１３３ａは、三面図から、処理対象の図と上下方向（ｙ軸方向）の位置が一致する図を、参照図として特定する。例えば、処理対象が正面図の場合、参照図として側面図が特定される。処理対象が平面図の場合、参照図として側面図が特定される。処理対象が側面図の場合、参照図として正面図が特定される。
【０１１３】
なお、処理対象が平面図で参照図が側面図の場合、以下のステップＳ３８，Ｓ３９の処理では、側面図における座標軸は９０度回転される。
［ステップＳ３８］エッジ検出部１３３ｃは、参照図から横方向（ｘ軸方向）のエッジを検出する。
【０１１４】
［ステップＳ３９］位置判定部１３３ｄは、選択された閉領域の上端と下端を特定する。位置判定部１３３ｄは、検出されたエッジの画素のうち、上端に対応する画素を、処理対象の図の奥行き方向に対して手前側と奥側のそれぞれについてカウントする。上端に対応する画素とは、上端と同じｙ座標の画素である。これとともに、位置判定部１３３ｄは、検出されたエッジの画素のうち、下端に対応する画素を、処理対象の図の奥行き方向に対して手前側と奥側のそれぞれについてカウントする。下端に対応する画素とは、下端と同じｙ座標の画素である。
【０１１５】
なお、図１４では例として、ステップＳ３４〜Ｓ３６の処理とステップＳ３７〜Ｓ３９の処理が並列に実行されているが、例えば、各処理のうちの一方が先に実行され、他方がその後に実行されてもよい。
【０１１６】
［ステップＳ４０］位置判定部１３３ｄは、ステップＳ３６，Ｓ３９の判定結果に基づいて、選択された閉領域が奥行き方向に対して手前側か奥側かを判定する。
［ステップＳ４１］位置判定部１３３ｄは、ステップＳ４０で奥側と判定され、かつ、選択された閉領域を取り囲む他の閉領域がある場合には、他の閉領域も奥側と判定する。この場合、判定された他の閉領域は、ステップＳ３３で選択済みの閉領域として取り扱われる。なお、ステップＳ４１の処理は必須ではないが、この処理によって、閉領域１つ分のエッジ検出処理やエッジ画素のカウント処理が省略され、変換画像の生成時間を短縮できる可能性が生じる。
【０１１７】
この後、図１５の処理が実行される。
［ステップＳ５１］塗りつぶし部１３３ｅは、変換画像のうちの手前側画像において、選択された閉領域に対して判定結果に基づく塗りつぶし処理を行う。具体的には、塗りつぶし部１３３ｅは、閉領域が手前側または両方と判定された場合、閉領域を対象物の領域を示す白で塗りつぶし、判定結果がそれ以外の場合、閉領域を背景を示す黒で塗りつぶす。また、塗りつぶし部１３３ｅは、ステップＳ４１で他の閉領域も奥側と判定された場合、この閉領域を黒で塗りつぶす。
【０１１８】
なお、側面図が右側面図であるものとすると、手前側画像とは、正面図が処理対象の場合、正面画像であり、平面図が処理対象の場合、上面画像であり、側面図が処理対象の場合、右側面画像である。
【０１１９】
［ステップＳ５２］塗りつぶし部１３３ｅは、変換画像のうちの奥側画像において、選択された閉領域に対して塗りつぶし処理を行う。具体的には、塗りつぶし部１３３ｅは、閉領域を白で塗りつぶす。あるいは、塗りつぶし部１３３ｅは、閉領域が奥側または両方と判定された場合、白で塗りつぶし、判定結果がそれ以外の場合、閉領域を黒で塗りつぶしてもよい。
【０１２０】
なお、側面図が右側面図であるものとすると、奥側画像とは、正面図が処理対象の場合、背面画像であり、平面図が処理対象の場合、底面画像であり、側面図が処理対象の場合、左側面画像である。
【０１２１】
なお、図１５では例として、ステップＳ５１，５２の各処理が並列に実行されているが、例えば、各処理のうちの一方が先に実行され、他方がその後に実行されてもよい。
［ステップＳ５３］変換制御部１３３ａは、処理対象の図から検出されたすべての閉領域を選択済みかを判定する。変換制御部１３３ａは、未選択の閉領域がある場合、ステップＳ３３の処理を実行し、すべての閉領域を選択済みの場合、処理をステップＳ５４に進める。
【０１２２】
［ステップＳ５４］塗りつぶし部１３３ｅは、生成された手前側画像、奥側画像を特徴量算出部１３４に出力する。
［ステップＳ５５］変換制御部１３３ａは、三面図に含まれるすべての図を処理対象として選択済みかを判定する。変換制御部１３３ａは、未選択の図がある場合、ステップＳ３１の処理を実行する。一方、変換制御部１３３ａは、すべての図を選択済みの場合、処理をステップＳ５６に進める。この場合、６枚の変換画像すべてが生成されたことになる。
【０１２３】
［ステップＳ５６］特徴量算出部１３４は、各変換画像から特徴量を算出する。特徴量としては、例えば、回転および反転に対して不変のツェルニケモーメントを利用することができる。あるいは、フーリエ変換を用いた特徴量算出や、曲率尺度空間に基づく特徴量算出を利用してもよい。
【０１２４】
［ステップＳ５７］登録部１３５は、三面図のデータと、各変換画像から算出された特徴量とのセットを、データベース１２０に登録する。
以上の処理によれば、三面図変換部１３３は、二次元図面である三面図から、画像の奥行き方向における対象物の形状が反映された変換画像を生成することができる。これにより、三面図変換部１３３は、３Ｄモデル変換部１３２によって生成されるものと同等の性質を有する６枚の変換画像を生成することができる。したがって、このような変換画像から算出された特徴量を三面図のデータとともにデータベース１２０に登録することで、三面図のデータと３Ｄモデルのデータを同等に扱って、精度の高い類似検索を実行できるようになる。
【０１２５】
図１６は、三面図を用いた検索処理例を示すフローチャートである。
［ステップＳ６１］このステップＳ６１の処理は、データ入力部１３１が、三面図のデータと検索要求とを端末装置５０から受信すると開始される。データ入力部１３１は、受信した三面図のデータを三面図変換部１３３に出力する。三面図変換部１３３は、図１４のステップＳ３１〜Ｓ４１および図１５のステップＳ５１〜Ｓ５５の処理を実行して、６枚の変換画像を生成する。
【０１２６】
［ステップＳ６２］特徴量算出部１３４は、各変換画像から特徴量を算出する。この処理の内容は、図１５のステップＳ５６と同様である。
［ステップＳ６３］検索部１３６は、算出された特徴量と、データベース１２０に登録されたＣＡＤデータごとの特徴量とを比較することで、受信した三面図に描かれた対象物と形状が類似する対象物を描くためのＣＡＤデータをデータベース１２０から検索する。
【０１２７】
［ステップＳ６４］検索部１３６は、検索結果を端末装置５０に送信する。例えば、最も類似するＣＡＤデータを示す情報、あるいは、類似する所定数のＣＡＤデータを示す情報が、端末装置５０に送信される。端末装置５０は、表示装置などを通じて検索結果をユーザに通知する。
【０１２８】
なお、図１６は、端末装置５０から三面図を送信して検索を実行させる例を示した。この他に例えば、端末装置５０から、データベース１２０に登録されたＣＡＤデータを指定させ、ＣＡＤデータ検索装置１００が、指定されたＣＡＤデータに類似するＣＡＤデータをデータベース１２０から検索してもよい。
【０１２９】
なお、上記の各実施の形態に示した装置（例えば、画像生成装置１およびＣＡＤデータ検索装置１００）の処理機能は、コンピュータによって実現することができる。その場合、各装置が有すべき機能の処理内容を記述したプログラムが提供され、そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープなどがある。光ディスクには、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ（Compact Disc-Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）などがある。光磁気記録媒体には、ＭＯ（Magneto-Optical disk）などがある。
【０１３０】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０１３１】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムまたはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムにしたがった処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムにしたがった処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムにしたがった処理を実行することもできる。
【符号の説明】
【０１３２】
１  画像生成装置
１ａ  特定部
１ｂ  判定部
１ｃ  生成部
２  対象物
３  正面図
３ａ  閉領域
３ｂ，３ｃ  領域
４  平面図
４ａ，４ｂ  対応部分
４ｃ  基準位置
５  出力画像
【図１】
2018101227.tif 000005
【図２】
2018101227.tif 000006
【図３】
2018101227.tif 000007
【図４】
2018101227.tif 000008
【図５】
2018101227.tif 000009
【図６】
2018101227.tif 000010
【図７】
2018101227.tif 000011
【図８】
2018101227.tif 000012
【図９】
2018101227.tif 000013
【図１０】
2018101227.tif 000014
【図１１】
2018101227.tif 000015
【図１２】
2018101227.tif 000016
【図１３】
2018101227.tif 000017
【図１４】
2018101227.tif 000018
【図１５】
2018101227.tif 000019
【図１６】
2018101227.tif 000020