(57)【要約】【課題】３次元形状データが表す形状において、エッジ部の微細形状におけるノイズの発生を抑制可能な画像処理装置を提供する。【解決手段】本発明の画像処理装置は、法線情報を含む３次元形状データが表す形状における各頂点において修正対象となる修正対象頂点と当該修正対象頂点に隣接する周辺頂点とを選択する選択手段と、前記周辺頂点における法線ベクトルを回転させる回転手段と、前記周辺頂点から前記修正対象頂点の移動先の候補位置に向かうベクトルと、前記回転させたベクトルとの内積を算出する算出手段と、前記算出された内積に基づいて前記修正対象頂点の移動先の位置を決定する決定手段と、前記修正対象頂点を前記決定した移動先の位置に移動する修正手段と、を備えることを特徴とする。【選択図】図１０
2018116645.tif 000002
【特許請求の範囲】
【請求項１】
法線情報を含む３次元形状データが表す形状における各頂点において修正対象となる修正対象頂点と当該修正対象頂点に隣接する周辺頂点とを選択する選択手段と、
前記周辺頂点における法線ベクトルを回転させる回転手段と、
前記周辺頂点から前記修正対象頂点の移動先の候補位置に向かうベクトルと、前記回転させたベクトルとの内積を算出する算出手段と、
前記算出された内積に基づいて前記修正対象頂点の移動先の位置を決定する決定手段と、
前記修正対象頂点を前記決定した移動先の位置に移動する修正手段と、を備える
ことを特徴とする画像処理装置。
【請求項２】
前記回転手段は、前記法線ベクトルと前記周辺頂点から前記修正対象頂点に向かうベクトルとによって定められる平面において、前記法線ベクトルを回転させる
ことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記回転手段は、前記選択手段が前記修正対象頂点を選択する方向である主走査方向に前記法線ベクトルを回転させる
ことを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記回転手段は、前記周辺頂点の位置を中心に前記法線ベクトルを９０度回転させる
ことを特徴とする請求項２または３に記載の画像処理装置。
【請求項５】
前記修正対象頂点と前記周辺頂点とが所定の位置関係にあるか否かを判定する判定手段をさらに備え、
前記回転手段は、前記修正対象頂点と前記周辺頂点とが前記所定の位置関係にあると判定された場合に、前記周辺頂点における法線ベクトルを回転させる
ことを特徴とする請求項１から４のいずれか１項に記載の画像処理装置。
【請求項６】
前記算出手段は、前記周辺頂点から前記修正対象頂点の移動先の候補位置に向かうベクトルを正規化する演算を行い、前記正規化されたベクトルを用いて前記内積を算出する
ことを特徴とする請求項１から５のいずれか１項に記載の画像処理装置。
【請求項７】
前記算出手段は、複数の前記候補位置に対応する複数の前記内積をそれぞれ算出し、
前記決定手段は、前記算出された複数の前記内積のうち最も小さい値が算出される前記候補位置を前記修正対象頂点の移動先に決定する
ことを特徴とする請求項１から６のいずれか１項に記載の画像処理装置。
【請求項８】
前記算出手段は、前記内積以外の評価値をさらに少なくとも１つ算出し、前記内積と前記評価値とのそれぞれに重み係数をかけた値の組み合わせによって得られる総合評価値を算出し、
前記決定手段は、前記総合評価値に基づいて前記修正対象頂点の移動先を決定する
ことを特徴とする請求項１から７のいずれか１項に記載の画像処理装置。
【請求項９】
前記内積以外の評価値は、前記修正対象頂点と前記修正対象頂点近傍の頂点群との位置関係から算出可能な前記３次元形状データが表す形状の平滑度である
ことを特徴とする請求項８に記載の画像処理装置。
【請求項１０】
法線情報を含む３次元形状データが表す形状における各頂点において修正対象となる修正対象頂点と当該修正対象頂点に隣接する周辺頂点とを選択する選択ステップと、
前記周辺頂点における法線ベクトルを回転させる回転ステップと、
前記周辺頂点から前記修正対象頂点の移動先の候補位置に向かうベクトルと、前記回転させた法線ベクトルとの内積を算出する算出ステップと、
前記算出された内積に基づいて前記修正対象頂点の移動先の位置を決定する決定ステップと、
前記修正対象頂点を前記決定した移動先の位置に移動する修正ステップと、を備える
ことを特徴とする画像処理方法。
【請求項１１】
コンピュータを、請求項１から請求項９のいずれか１項に記載の画像処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、３次元形状を表す形状データの最適化技術に関する。
【背景技術】
【０００２】
同一の被写体を異なる視点から見た複数の画像（多視点画像）から、被写体の３次元表面形状（以下単に「形状」とも記す）を再現する多視点ステレオ法などの技術が知られている。また、異なる光源方向から照射される同一の被写体を同一の視点から視た複数の画像から、被写体の表面形状における法線情報を取得し、取得した法線情報に基づいて被写体の形状を再現するフォトメトリックステレオ法などの技術も知られている。近年、被写体の表面形状における法線情報を高精度に取得することができるようになり、例えば細かいレリーフ模様のように、より細かいスケールの微細形状を再現できるようになった。
【０００３】
特許文献１では、被写体の形状を表す形状データを最適化する技術が開示されている。具体的には、入力形状データが表す形状について、各頂点における法線情報と位置情報との整合性を評価し、当該評価結果に基づいて各頂点の移動先を順次探索することにより、形状の修正が実行される。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】米国特許出願公開第２０１２／０２６８５７１号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１の技術では、着目頂点と着目頂点に隣接する周辺頂点との位置関係を示すベクトルと、周辺頂点における法線ベクトルとの内積が算出され、算出された内積が大きいほど、着目頂点の位置が理想位置から離れていると評価される。つまり、算出された内積が大きい程、着目頂点近傍の形状にノイズが発生する可能性が高いと推測され、着目頂点の位置が理想位置に近付く方向に移動されるわけである。
【０００６】
しかしながら、特許文献１の技術では、入力形状データが表す形状のうち、角度変化の境界であるエッジ部における微細形状の修正が困難な場合があった。これは、着目頂点の位置が理想位置から離れているにもかかわらず、算出された内積が小さくなる場合があったからである。そのため、微細形状の修正が適切に実行されず、出力形状データが表す形状にノイズが発生してしまう場合があった。
【０００７】
上記課題に鑑み、本発明の形状修正手法は、エッジ部の微細形状におけるノイズの発生を抑制することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の画像処理装置は、法線情報を含む３次元形状データが表す形状における各頂点において修正対象となる修正対象頂点と当該修正対象頂点に隣接する周辺頂点とを選択する選択手段と、前記周辺頂点における法線ベクトルを回転させる回転手段と、前記周辺頂点から前記修正対象頂点の移動先の候補位置に向かうベクトルと、前記回転させたベクトルとの内積を算出する算出手段と、前記算出された内積に基づいて前記修正対象頂点の移動先の位置を決定する決定手段と、前記修正対象頂点を前記決定した移動先の位置に移動する修正手段と、を備えることを特徴とする。
【発明の効果】
【０００９】
本発明の形状修正手法は、エッジ部の微細形状におけるノイズの発生を抑制することができる、という効果を奏する。
【図面の簡単な説明】
【００１０】
【図１】実施形態における画像処理装置のハードウェア構成を示す図である。
【図２】実施形態における画像処理装置のソフトウェア機能構成を示す図である。
【図３】実施形態における形状修正処理の手順を示すフローチャートである。
【図４】実施形態において修正対象頂点ｓと周辺頂点ｔとの位置関係の一例を示す模式図である。
【図５】従来の評価値算出手法の原理を説明する図である。
【図６】本実施形態の評価値算出手法の原理を説明する図である。
【図７】図７（ａ）は、従来の評価値算出手法によって算出される評価値の分布図である。図７（ｂ）は、図７（ａ）の分布の傾斜をＸＹ平面上で表した勾配図である。
【図８】図８（ａ）は、本実施形態の評価値算出手法によって算出される評価値の分布図である。図８（ｂ）は、図８（ａ）の分布の傾斜をＸＹ平面上で表した勾配図である。
【図９】本実施形態において、入力形状データが表す形状の断面図の一例である。
【図１０】本実施形態の形状修正手法を適用した場合の効果を示す図である。
【発明を実施するための形態】
【００１１】
以下、本発明の実施形態について、図面を参照して説明する。なお、以下の実施形態は本発明を限定するものではなく、また、本実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。なお、同一の構成については、同じ符号を付して説明する。
【００１２】
［実施形態１］
本実施形態では、画像処理装置１００に入力される３次元形状データ（以下単に「形状データ」とも記す）に含まれる法線情報を用いて、入力形状データが表す形状（特に微細形状）を修正する実施例について説明する。
【００１３】
（ハードウェア構成）
図１は、本実施形態における画像処理装置１００のハードウェア構成を示すブロック図である。画像処理装置１００は、ＣＰＵ１０１と、ＲＡＭ１０２と、ＲＯＭ１０３と、記憶部１０４と、入力インターフェース１０５と、出力インターフェース１０６と、システムバス１０７とから構成される。ＣＰＵ１０１はプロセッサーであり、ＲＯＭ１０３に格納されたプログラムをＲＡＭ１０２に読み出して実行する。ＣＰＵ１０１がプログラムを実行することにより、後述する画像処理装置１００における様々な処理が実行される。記憶部１０４は記憶デバイスであり、画像処理装置１００における処理に用いられる画像データや、処理に用いられるパラメータなどを記憶する。記憶部１０４は、例えばＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）や光ディスクドライブ、フラッシュメモリなどの二次記憶装置が適用される。
【００１４】
入力インターフェース１０５は、例えばＵＳＢやＩＥＥＥ１３９４などのシリアルバスインターフェースである。画像処理装置１００は、入力インターフェース１０５を介して、外部メモリ１０８（例えば、メモリカード、ＣＦカード、ＳＤカード、ＵＳＢメモリ）から処理対象となる形状データや法線マップ（法線情報）などを取得することができる。あるいはまた、入力インターフェース１０５は、イーサネット（登録商標）などのネットワークインターフェースの機能を有していてもよい。この場合、画像処理装置１００は、ネットワークを介して通信可能に接続される外部装置（ＰＣなど）から、処理対象となる形状データや法線マップなどを受信することができる。出力インターフェース１０６は、例えばＵＳＢやＩＥＥＥ１３９４などのシリアルバスインターフェースである。画像処理装置１００は、出力インターフェース１０６を介して、外部メモリ１０９に所定の処理を施した形状データを出力することができる。あるいはまた、出力インターフェース１０６は、イーサネットなどのネットワークインターフェースの機能を有していてもよい。この場合、画像処理装置１００は、ネットワークを介して外部装置に所定の処理を施した形状データを送信することができる。なお、画像処理装置１００の構成要素は上記のもの以外にも存在するが、本実施形態の主眼ではないため、説明を省略する。
【００１５】
（ソフトウェア機能構成）
図２は、本実施形態における画像処理装置１００のソフトウェア機能構成を示すブロック図である。図２のブロックの機能は、ＣＰＵ１０１がＲＯＭ１０３に格納されたプログラムコードをＲＡＭ１０２に読み出して実行することにより実現される。あるいはまた、図２におけるブロックの一部または全部の機能をＡＳＩＣや電子回路等のハードウェアで実現するようにしてもよい。
【００１６】
本実施形態における画像処理装置１００において、データ取得部２０１は、形状情報と法線情報とを記憶部１０４などから読み出す。修正対象頂点選択部２０２は、読み出した形状情報および法線情報から、修正処理の対象となる着目頂点ｓ（以下「修正対象頂点ｓ」とも記す）を選択する。周辺頂点選択部２０３は、頂点群の隣接関係を示す情報に基づいて、修正対象頂点ｓと辺で隣接する周辺頂点ｔを選択する。法線回転部２０４は、周辺頂点ｔから法線方向に延びる法線ベクトルを、周辺頂点の位置を中心に所定の角度回転させる。評価値算出部２０５は、修正頂点ｔから修正対象頂点ｓの移動先の候補位置に向かうベクトルと、回転させた回転ベクトルとに基づいて、候補位置に対応する評価値を算出する。評価値比較部２０６は、候補位置に対応する評価値を比較し、算出された評価値のうち最も小さい値を抽出する。移動先決定部２０７は、抽出された最も小さい値の評価値に基づき、修正対象頂点ｓの移動先の位置を決定する。形状修正部２０８は、修正対象頂点ｓを移動先の位置に移動する。データ出力部２０９は、すべての頂点が移動（修正）された形状データを、出力形状データとして出力する。
【００１７】
（形状修正処理の手順を示すフローチャート）
図３は、本実施形態における形状修正処理の手順を示すフローチャートである。図３のフローチャートによる処理は、ＣＰＵ１０１がＲＯＭ１０３に格納されたプログラムコードをＲＡＭ１０２に読み出して実行することにより行われる。また、図３の説明における各記号Ｓは、フローチャートにおけるステップであることを意味する。
【００１８】
Ｓ３０１において、データ取得部２０１は、形状情報と法線情報とを取得する。具体的には、データ取得部２０１は、３次元空間における所定の形状を表す３次元形状データと、当該形状の各頂点、各辺、各面における法線を示す法線データとを、記憶部１０４から読み出す。あるいはまた、データ取得部２０１は、３次元形状データと法線データとを、入力インターフェース１０５を介して外部メモリ１０８から読み出してもよい。本実施形態では、形状データと法線データとを含み、画像処理装置１００で処理可能なデータであるメッシュデータが記憶部１０４から読み出される。メッシュデータは、頂点、辺、面の集合を表すデータであり、各頂点、各辺、各面は、長さ１のベクトルである法線ベクトルを有する。さらにＣＰＵ１０１は、メッシュデータを解析することにより、ある頂点がどの頂点に隣接しているかを示す頂点群の隣接関係を示すデータを取得することができる。例えば、本実施形態のメッシュデータは、点群データから表面再構築技術によって生成され、テクスチャマッピングによって各頂点、各辺、各面に法線ベクトルが付与されたデータとすることができる。本実施形態では、被写体の表面形状を表す格子状ポリゴンデータに法線ベクトルが付与されたデータを、３次元形状データとしている。
【００１９】
Ｓ３０２において、修正対象頂点選択部２０２は、読み出したメッシュデータのなかから、修正処理の対象となる着目頂点ｓを選択する。修正対象頂点選択部２０２は、Ｓ３０２において、着目頂点ｓの位置情報と、着目頂点ｓから法線方向に延びる法線ベクトルも取得する。なお、Ｓ３０２が初回に実行される初期状態では、読み出したメッシュデータが表す形状のうち最も左上の頂点の位置情報と、当該左上の頂点における法線ベクトルとが選択される。本実施形態の修正対象頂点選択部２０２は、メッシュデータに含まれる各修正対象頂点ｓを、主走査方向に順次選択する。
【００２０】
Ｓ３０３において、周辺頂点選択部２０３は、Ｓ３０２で取得した着目頂点ｓと、頂点群の隣接関係を示すデータとに基づいて、修正対象頂点ｓが辺で隣接する頂点ｔを選択する。本明細書において、このように修正対象頂点ｓと辺で隣接する頂点ｔを「周辺頂点」と記す。そして、周辺頂点選択部２０３は、メッシュデータを解析することにより、周辺頂点ｔの位置情報と、周辺頂点ｔから法線方向に延びる法線ベクトルとを取得する。本実施形態において、形状データ（メッシュデータ）は、全ての頂点から伸びる辺の数が統一され、かつ、頂点から伸びる辺によって形成される四辺形は所定の規則に従って構成されている。そのため、周辺頂点選択部２０３は、着目頂点ｓを中心として上下左右に隣接する４頂点を周辺頂点に選択する。このように、本実施形態では、着目頂点ｓを中心として上下左右に隣接する４頂点が周辺頂点に選択されるが、周辺頂点ｔの数は形状データにおけるポリゴンの定義により異なる。
【００２１】
Ｓ３０４において、法線回転部２０４は、修正対象頂点ｓの位置情報と、周辺頂点ｔの位置情報および法線ベクトルとに基づいて、周辺頂点ｔにおける法線ベクトルをθ回転させた場合の回転行列Ｒｔを算出する。この時、周辺頂点ｔにおける法線ベクトルの回転行列Ｒｔを算出する際に用いられる回転軸ｖｔは、次式により定まる。
【００２２】
【数１】
2018116645.tif 000003
【００２３】
【数２】
2018116645.tif 000004
【００２４】
ここで、ｐｓは３次元空間中における修正対象頂点ｓの位置を、ｐｔは周辺頂点ｔの位置を、ｄｔは周辺頂点ｔから修正対象頂点ｓに向かう正規化されたベクトルをそれぞれ表す。また、ｎｓは修正対象頂点ｓから法線方向に延びる正規化された法線ベクトルを、ｎｔは周辺頂点ｔから法線方向に延びる正規化された法線ベクトルをそれぞれ表す。
【００２５】
図４は、本実施形態において、修正対象頂点ｓと、修正対象頂点ｓに隣接する２つの周辺頂点ｔ１，ｔ２との位置関係の一例を模式的に示す図である。図４において、形状４０１は、３次元形状データ（メッシュデータ）が表す形状の一例である。形状４０１は、修正対象頂点ｓと、修正対象頂点ｓに隣接する２つの周辺頂点ｔ１，ｔ２とを有する。修正対象頂点ｓの位置ｐｓからは法線ベクトルｎｓが延びている。そして、周辺頂点ｔ１の位置ｐｔ１からは法線ベクトルｎｔ１と、修正対象頂点ｓの位置ｐｓに向かうベクトルｄｔ１とが延びている。同様に、周辺頂点ｔ２の位置ｐｔ２からも法線ベクトルｎｔ２と、修正対象頂点ｓの位置Ｐｓに向かうベクトルｄｔ２とが延びている。本実施形態の形状修正手法は、これら形状情報（各頂点の位置および各頂点間の位置関係を示すベクトル）と、法線情報（各頂点における法線ベクトル）とに基づいて、入力形状データが表す形状を修正することができる。なお、図４の例ではＹ軸を中心としてＸＺ平面方向を視た場合の形状４０１が示されている。
【００２６】
法線ベクトルｎｔを、式１で算出した回転軸ｖｔのまわりにθ回転させる場合、回転行列Ｒｔ（θ）は次式により定まる（ロドリゲスの公式）。
【００２７】
【数３】
2018116645.tif 000005
【００２８】
【数４】
2018116645.tif 000006
【００２９】
本実施形態において、法線ベクトルｎｔを正方向に９０度回転させる場合、回転行列Ｒｔ（θ）は次式の通りとなる。
【００３０】
【数５】
2018116645.tif 000007
【００３１】
式５を用いた演算により、法線ベクトルｎｔを９０度回転させたベクトルｎ’ｔを算出することができる。
【００３２】
【数６】
2018116645.tif 000008
【００３３】
式５を用いた演算により、法線ベクトルｎｔを９０度回転させたベクトルｎ’ｔを算出する手法について、図６を参照して説明する。図６において、修正対象頂点ｓと、修正対象頂点ｓに隣接する２つの周辺頂点ｔ１，ｔ２との位置関係は、図４と同様である。そして、図６の例では、周辺頂点ｔ２の位置ｐｔ２における法線ベクトルｎｔ２が、式５を用いた演算により９０度回転され、回転ベクトルｎ’ｔ２となっている。
【００３４】
なお、本実施形態において、周辺頂点ｔにおける法線ベクトルｎｔが回転される回転方向は、修正対象頂点ｓの位置ｐｓと周辺頂点ｔの位置ｐｔとの位置関係に応じて定まる。具体的には、周辺頂点ｔ２における法線ベクトルｎｔ２は、法線ベクトルｎｔ２と周辺頂点ｔ２から修正対象頂点ｓに向かうベクトルｄｔ２とによって定められる平面において、周辺頂点ｔ２の位置ｐｔ２を中心に回転される。本実施形態の法線回転部２０４は、修正対象頂点ｓが選択される方向である主走査方向に法線ベクトルｎｔ２を９０度回転させる。しかしながら、法線ベクトルｎｔの回転方向は、上記の実施例に限定されない。図６の通り、例えばＹ軸を中心としてＸＺ平面を基準としたとき、主走査方向において最も先に位置している周辺頂点ｔについては法線ベクトルｎｔを正方向に回転させ、最も後に位置している周辺頂点ｔについては法線ベクトルｎｔを負方向に回転させてもよい。
【００３５】
Ｓ３０５において、評価値算出部２０５は、回転ベクトルｎ’ｔと、周辺頂点ｔの位置ｐｔと、修正対象頂点ｓの位置ｐｓとに基づき、修正対象頂点ｓの修正後の候補位置ｐｓ＋σ，ｐｓ，ｐｓ−σそれぞれについて評価値χ１，χ２，χ３を算出する。修正対象頂点ｓの修正後の候補位置ｐに対応する評価値χは、以下の式で表わされる。
【００３６】
【数７】
2018116645.tif 000009
【００３７】
ここで、式７においてＡとＢとはそれぞれ定数を表す。実用上は、ＡとＢとはそれぞれ「１」としてよい。ＡとＢとにそれぞれ「１」を適用してうまくいかない場合は、式７の出力を参考にして、ＡとＢとの値をそれぞれ調整すればよい。
【００３８】
Ｓ３０６において、評価値比較部２０６は、Ｓ３０５で算出された修正対象頂点ｓの修正後の候補位置ｐｓ＋σ，ｐｓ，ｐｓ−σそれぞれに対応する評価値χ１，χ２，χ３を比較し、評価値χ１，χ２，χ３のなかから最小値を抽出する。
【００３９】
Ｓ３０７において、移動先決定部２０７は、Ｓ３０６で抽出された評価値に基づき、修正対象頂点ｓの移動先を決定する。修正対象点ｓの移動先位置ｐｓ’は以下の式により算出することができる。
【００４０】
【数８】
2018116645.tif 000010
【００４１】
Ｓ３０８において、形状修正部２０８は、修正対象頂点ｓを移動先位置ｐｓ’に移動する。
【００４２】
Ｓ３０９において、形状データに含まれるすべての頂点に対して修正が行われたか否かが判定される。すべての頂点に対して修正が行われた場合（Ｓ３０９：ＹＥＳ）、データ出力部２０９は、移動先位置ｐｓ’の各位置座標を頂点とする、修正後の３次元形状データを出力する。一方、形状データに含まれるすべての頂点に対して修正が行われていない場合（Ｓ３０９：ＮＯ）、ふたたびＳ３０２に戻り次の着目頂点ｓについての形状修正処理が繰り返される。
【００４３】
（評価値算出手法の原理）
図５は、従来の形状修正処理における評価値算出手法の原理を説明する図である。従来の評価値算出部２０５は、周辺頂点ｔにおける法線ベクトルｎｔと、周辺頂点ｔの位置ｐｔから修正対象頂点ｓの位置ｐｓに向かうベクトルｄｔとの内積を評価値として算出していた。図５において、修正対象頂点ｓと、修正対象頂点ｓに隣接する２つの周辺頂点ｔ１，ｔ２との位置関係は、図４と同様である。図５に示される通り、周辺頂点ｔ２における法線ベクトルｎｔ２と、周辺頂点ｔ２の位置ｐｔ２から修正対象頂点ｓの位置ｐｓに向かうベクトルｄｔ２との内積は「０．２５」であり、この値が評価値に用いられる。そして、従来の移動先決定部２０７は、修正対象頂点ｓの修正後の候補位置ｐｓ＋σ，ｐｓ，ｐｓ−σそれぞれに対応する評価値χ１，χ２，χ３のなかから、最も小さい評価値に対応する候補位置を移動先に決定する。例えば、図５の位置関係において、最も小さい評価値が「０．２」の場合、従来の移動先決定部２０７は、修正対象頂点ｓの位置を探索軸上の理想位置（図５）方向に移動させ、ｎｔ２とｄｔ２との内積が「０．２」となる位置を移動先の頂点に決定する。なお、図５および図６の実施例において、「探索軸」とは、理想位置と修正対象頂点ｓの位置ｐｓとによって定まる軸であり、本実施形態の評価値算出部２０５は、候補位置ｐｓ＋σ，ｐｓ，ｐｓ−σを探索軸上の位置から取得する。そして、図５および図６の実施例において、「理想位置」は、修正対象頂点ｓの位置ｐｓと周辺頂点ｔの位置ｐｔとの位置関係に応じて定まる。具体的には、法線ベクトルｎｔ２と周辺頂点ｔ２から修正対象頂点ｓに向かうベクトルｄｔ２とによって定められる平面において、ｎｔ２とｄｔ２との内積が「０」となる位置である。
【００４４】
しかしながら、従来の評価値算出手法では、角度変化の境界であるエッジ部における微細形状の修正が困難な場合があった。エッジ部の修正ができない場合の例を図５に示す。エッジ部における微細形状の修正を行う場合、選択された修正対象頂点ｓ’と、修正対象頂点ｓ’に隣接する周辺頂点ｔ１，ｔ２とが図５に示される通りに位置する場合がある。より詳細には、理想位置を基準として、修正対象頂点ｓ’が、周辺頂点ｔ２（または周辺頂点ｔ１）の法線を越えて位置する場合がある。図５の例では、理想位置を基準として、修正対象頂点ｓ’が、周辺頂点ｔ２の法線ベクトルｎｔ２方向を越えて位置している様子が示されている。この場合、法線ベクトルｎｔ２と、周辺頂点ｔ２の位置ｐｔ２から修正対象頂点ｓ’の位置ｐｓ’に向かうベクトルｄ’ｔ２との内積は「０．７５」であり、この値が評価値に用いられる。そして、修正対象頂点ｓ’の位置ｐｓ’が理想位置から離れるほど評価値は低くなる。この結果、修正対象頂点ｓ’の位置ｐｓ’は、理想位置から離れる方向（例えば、ｎｔ２とｄ’ｔ２との内積が「０．５」となる位置など）に移動されることになる。修正対象頂点ｓ’が理想位置から離れる方向に移動すると、入力形状データが表す形状に含まれていたノイズが除去されず、出力形状データが表す形状にも発生してしまうなどの不具合が生じてしまう場合がある。
【００４５】
図６は、本実施形態における評価値算出手法の原理を説明する図である。図６において、修正対象頂点ｓと、修正対象頂点ｓに隣接する２つの周辺頂点ｔ１，ｔ２との位置関係は、図４と同様である。同様に、修正対象頂点ｓ’と、修正対象頂点ｓ’に隣接する２つの周辺頂点ｔ１，ｔ２との位置関係も、図５と同様である。本実施形態の評価値算出部２０５は、法線ベクトルｎｔ２を正方向に９０度回転させた回転ベクトルｎ’ｔ２と、周辺頂点ｔ２の位置ｐｔ２から修正対象頂点ｓの位置ｐｓに向かうベクトルｄｔ２との内積を算出する。図６に示される通り、ｎ’ｔ２とｄｔ２との内積は「０．１４」であり、この値が評価値に用いられる。なお、ｎ’ｔ２とｄｔ２との内積を評価値に用いる実施例について説明したが、例えばｎ’ｔ１とｄｔ１との内積およびｎ’ｔ２とｄｔ２との内積の合算値のように、修正対象頂点ｓの各周辺頂点ｔについて算出した内積の合算値を評価値に用いてもよい。
【００４６】
一方、理想位置を基準として、修正対象頂点ｓ’が、周辺頂点ｔ２の法線方向を越えて位置している場合、算出される評価値は以下の通りとなる。本実施形態の評価値算出部２０５は、回転ベクトルｎ’ｔ２と、周辺頂点ｔ２の位置ｐｔ２から修正対象頂点ｓ’の位置ｐｓ’に向かうベクトルｄ’ｔ２との内積を算出する。図６に示される通り、回転ベクトルｎ’ｔ２とベクトルｄ’ｔ２との内積は「１．５」であり、この値が評価値に用いられる。このように、本実施形態では、回転ベクトルｎ’ｔ２を用いて評価値を算出するため、修正対象頂点ｓの位置が理想位置に近付くほど評価値は小さくなり、修正対象頂点ｓの位置が理想位置から離れるほど評価値は大きくなる。この結果、本実施形態の移動先決定部２０７は、理想位置方向に近い候補位置を、修正対象頂点ｓの移動先の頂点の位置に決定することができる。
【００４７】
図７（ａ）は、従来の評価値算出手法によって算出される評価値の分布図である。図７（ａ）のＸＹＺ座標系において、Ｘ軸、Ｙ軸、Ｚ軸はそれぞれ修正対象頂点ｓの位置ｐｓのＸ座標、Ｙ座標、Ｚ座標をそれぞれ示す座標軸である。分布７０１は、上記ＸＹＺ座標系内に示されている。図７（ａ）では、周辺頂点ｔ１の位置ｐｔ１が(−１，０，０)に、周辺頂点ｔ２の位置ｐｔ２が(１，０，０)に固定され、理想位置が（０，０，０）である場合の例が示されている。そして、位置ｐｓをＺ座標≧０の任意の位置に配置した場合に、それぞれに対応する評価値（ベクトルｎｔとベクトルｄｔとの内積）の点群が、分布７０１を構成している。
【００４８】
分布７０１の傾斜は、評価値が増加または減少することを表している。分布７０１の傾斜のうち、矢印７０２は、分布７０１における原点方向への下り傾斜であることを示している。これは、矢印７０２が示す下り傾斜を構成する評価値は、ＸＹＺ座標系の原点に近付くほど減少することを示している。つまり、矢印７０２は、下り傾斜を構成する評価値に対応する修正対象頂点の位置ｐｓ（例えば、図５で評価値が「０．２５」となる位置ｐｓ）が、従来の形状修正処理によって、理想位置に近付く方向に移動されることを意味する。
【００４９】
しかしながら、従来の評価値算出手法によって算出される評価値の分布では、原点方向とは異なる方向への下り傾斜が形成されてしまう場合がある。矢印７０３は、分布７０１において原点方向とは異なる方向への下り傾斜であることを示している。原点方向とは異なる方向への下り傾斜を構成する評価値は、ＸＹＺ座標系の原点から離れるほど減少する。つまり、矢印７０３は、上記評価値に対応する修正対象頂点の位置ｐｓ（例えば、図５で評価値が「０．７５」となる位置ｐｓ’）が、従来の形状修正処理によって、理想位置から離れる方向に移動されることを意味する。
【００５０】
図７（ｂ）は、図７（ａ）における分布７０１の傾斜を、Ｚ軸を中心としたＸＹ平面上で表した勾配図である。図７（ｂ）の勾配図に含まれる各細線矢印は、分布７０１における傾きの方向と、傾きの緩急とを表している。座標点７０４は、位置座標が（０，１，１）となる修正対象頂点の位置ｐｓを表している。従来の形状修正処理では、座標点７０４は、細線矢印で表される傾きに従って、原点方向に近付くように移動される。座標点７０５は、位置座標が（２，２，２）となる修正対象頂点の位置ｐｓを表している。従来の形状修正処理では、座標点７０５は、細線矢印で表される傾きに従って、原点方向から離れる方向に移動されることが分かる。分布７０１の下り傾斜が原点から離れる方向に形成される領域は、図７（ｂ）において斜線部分で表されている。
【００５１】
図８（ａ）は、本実施形態の評価値算出手法によって算出される評価値の分布図である。図８（ａ）のＸＹＺ座標系において、Ｘ軸、Ｙ軸、Ｚ軸それぞれの座標軸の意味と、位置ｐｓに対応する評価値の点群が分布を構成していることは、図７（ａ）と同様である。従来手法とは異なり、本実施形態の評価値算出手法によって算出される評価値の分布８０１では、すべての下り傾斜が原点方向に向かっている。図８（ａ）に示される通り、いずれの矢印８０２も、分布８０１における原点方向への下り傾斜であることを示している。つまり、修正対象頂点の位置ｐｓは、修正前の位置（例えば、図６で評価値が「０．１４」となる位置ｐｓや、評価値が「１．５」となる位置ｐｓ’など）にかかわらず、本実施形態の形状修正処理によって、理想位置に近付く方向に移動されることを意味する。
【００５２】
図８（ｂ）は、図８（ａ）における分布８０１の傾斜を、Ｚ軸を中心としたＸＹ平面上で表した勾配図である。図８（ｂ）の勾配図に含まれる細線矢印は、分布８０１における傾斜の方向と、傾斜の緩急とを表している。座標点８０３は、座標点７０４と同じ位置座標（０，１，１）となる修正対象頂点の位置ｐｓを表している。従来の形状修正処理と同様に、座標点８０３は、細線矢印で表される傾斜に従って、原点方向に近付くように移動される。座標点８０４は、座標点７０５と同じ位置座標（２，２，２）となる修正対象頂点の位置ｐｓを表している。本実施形態の形状修正処理では、座標点８０４についても、細線矢印で表される傾斜に従って、原点方向に近付くように移動される。以上説明した通り、本実施形態の形状修正手法によれば、修正対象頂点の位置ｐｓは、修正前の位置にかかわらず、理想位置に近付く方向に移動される。この結果、本実施形態の画像処理装置１００は、エッジ部における微細形状の修正を適切に実行することができ、出力形状データが表す形状にノイズが発生してしまうことを抑制することができる。
【００５３】
本実施形態の形状修正手法を適用した場合の効果について、図９および図１０を参照して説明する。図９は、本実施形態において、入力形状データが表す形状の断面図の一例である。図９に示される形状は、同一の被写体を異なる視点から見た複数の画像（多視点画像）を、多視点ステレオ法などにより再現した形状である。図９の例は、被写体から再現された「人の顔」の形状の断面図を示している。また、上記「人の顔」の形状を構成する頂点、辺、面に対応する法線情報が、図９のグラフ内において矢印で表されている。
【００５４】
図１０は、入力形状データから取得した法線情報を用いて、微細形状を修正した結果を示す図であり、図１０（ａ）は従来の形状修正手法を適用した場合の修正結果を、図１０（ｂ）は本実施形態の形状修正手法を適用した場合の修正結果をそれぞれ示している。図１０（ａ）において、修正後の形状の断面を示す実線には、急峻な角度変化が生じていることが分かる。このように、微細形状において急峻な角度変化を含む領域は、ノイズとして視認されてしまう。一方、図１０（ｂ）では、修正後の形状の断面を示す実線には、急峻な角度変化が生じていない。つまり、微細形状においてノイズの発生を抑制していることが分かる。
【００５５】
［実施形態２］
実施形態１の形状修正手法では、回転ベクトルｎ’ｔと、修正頂点ｔから修正対象頂点ｓの移動先の候補位置に向かうベクトルｄｔとの内積が算出され、算出された内積が評価値に用いられていた。しかしながら、ＣＰＵ１０１が所定のプログラムに基づき形状修正処理を実行する場合、内積以外の評価値も用いられることが多い。本実施形態では、位置情報および法線情報から算出した内積と、内積以外の他の評価値とを用いて形状の修正を行う手法について説明する。なお、本実施形態の説明において、実施形態１と同一の構成については、同一符号を付し、重複する内容については説明を省略する。
【００５６】
Ｓ３０５において、評価値算出部２０５は、回転ベクトルｎ’ｔと、周辺頂点ｔの位置ｐｔと、修正対象頂点ｓの位置ｐｓとに基づき、修正対象頂点ｓの修正後の候補位置ｐｓ＋σ，ｐｓ，ｐｓ−σそれぞれについて評価値χ１，χ２，χ３を算出する。修正対象頂点ｓの修正後の候補位置ｐに対応する評価値χは、χ（ｐ）（式７）で表わされる。
【００５７】
次いで、評価値算出部２０５は、修正対象頂点と、修正対象頂点近傍の頂点群との位置関係に基づき算出可能な、形状データが表す形状の平滑度について評価値φ（ｐ）を取得する。なお、画像処理の技術分野において、着目頂点と着目頂点近傍の頂点群との位置関係に基づいて平滑度を算出する手法は周知であるので、説明を省略する。
【００５８】
【数９】
2018116645.tif 000011
【００５９】
修正対象頂点ｓの修正後の候補位置ｐに対応する総合評価値ψ（ｐ）は、次式に従い算出することができる。
【００６０】
【数１０】
2018116645.tif 000012
【００６１】
ここで、ω１とω２とは重み係数をそれぞれ表す。このように、本実施形態の評価値算出部２０５は、回転ベクトルｎ’ｔとベクトルｄｔとの内積と、形状の平滑度についての評価値とのそれぞれに重み係数をかけた値の組み合わせによって得られる総合評価値を算出する。
【００６２】
以上説明した通り、本実施形態によれば、実施形態１による効果に加えて、形状の平滑度も考慮して入力形状データが表す形状を修正することができる。
【００６３】
［変形例］
上述の実施形態では、周辺頂点ｔにおける法線ベクトルｎｔを回転させて得られる回転ベクトルｎ’ｔを用いて内積（評価値）を算出する評価値算出手法について説明した。変形例では、３次元形状データが表す形状のうち、必要な領域に対してのみ、法線ベクトルｎｔを回転させる処理を実行してもよい。例えば、修正対象頂点ｓの位置ｐｓと、周辺頂点ｔの位置ｐｔとが、エッジ部を構成する位置関係にある場合にのみ、法線回転部２０４が法線ベクトルｎｔを回転させる処理を実行してもよい。あるいはまた、理想位置を基準として、修正対象頂点ｓが、周辺頂点ｔの法線ベクトルｎｔ方向を越えて位置している場合にのみ、法線回転部２０４が法線ベクトルｎｔを回転させる処理を実行してもよい。このように、必要な領域に対してのみ法線ベクトルｎｔを回転させ、非エッジ部などの領域に対しては法線ベクトルｎｔを回転させることなく評価値算出処理を行うことにより、画像処理装置１００の処理速度の向上や処理負担の軽減を図ることができる。
【００６４】
［その他の実施例］
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００６５】
１００・・画像処理装置
２０２・・修正対象頂点選択部
２０３・・周辺頂点選択部
２０４・・法線回転部
２０５・・評価値算出部
２０７・・移動先決定部
２０８・・形状修正部
【図１】
2018116645.tif 000013
【図２】
2018116645.tif 000014
【図３】
2018116645.tif 000015
【図４】
2018116645.tif 000016
【図５】
2018116645.tif 000017
【図６】
2018116645.tif 000018
【図７】
2018116645.tif 000019
【図８】
2018116645.tif 000020
【図９】
2018116645.tif 000021
【図１０】
2018116645.tif 000022