(57)【要約】  画像処理に関連する装置および方法が提供される。コンピューティングデバイスは、カメラによって撮像される画像のような画像の第１の画像エリアを決定し得る。コンピューティングデバイスは、画像についてのワーピングメッシュを決定し得、ワーピングメッシュの第１の部分は第１の画像エリアに関連付けられる。コンピューティングデバイスは、ワーピングメッシュについてのコスト関数を決定し得、ワーピングメッシュについてのコスト関数を決定することは、ワーピングメッシュの第１の部分に関連付けられる第１のコストであって、幾何学的歪みを補正するよう、第１の画像エリアの顔関連変換に関連付けられるコストを含む第１のコストを決定することと、ワーピングメッシュに関連付けられる第２のコストであって、画像のエッジの直線性を保存するためのエッジ関連変換のコストを含む第２のコストを決定することとによって行われる。コンピューティングデバイスは、コスト関数を最適化することに基づいて、最適化メッシュを決定し得る。コンピューティングデバイスは、最適化メッシュに基づいて第１の画像エリアを修正し得る。
2021523455.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータによって実現される方法であって、
画像における第１の対象領域に対応する第１の画像エリアを決定することと、
前記画像についてのワーピングメッシュを決定することと、
前記第１の画像エリアに関連付けられる前記ワーピングメッシュの第１の部分を決定することと、
前記ワーピングメッシュについてのコスト関数を決定することとを含み、
前記ワーピングメッシュについてのコスト関数を決定することは、
前記ワーピングメッシュの前記第１の部分に関連付けられる第１のコストであって、前記画像において表されるような前記第１の対象領域の１つ以上の幾何学的歪みを補正するよう、少なくとも前記第１の画像エリアの１つ以上の顔関連変換に関連付けられるコストを含む第１のコストを決定することと、
前記ワーピングメッシュに関連付けられる第２のコストであって、少なくとも前記１つ以上の顔関連変換によって修正される前記画像のエッジの直線性を保存するための１つ以上のエッジ関連変換のコストを含む第２のコストを決定することと
によって行われ、
前記コンピュータによって実現される方法はさらに、
前記ワーピングメッシュについての前記コスト関数の最適化に基づいて、最適化メッシュを決定することと、
前記最適化メッシュに基づいて、前記画像の前記第１の画像エリアを修正することと
を含む、コンピュータによって実現される方法。
【請求項２】
前記第１の対象領域は、第１の人間の顔を表す、請求項１に記載のコンピュータによって実現される方法。
【請求項３】
前記画像における第２の対象領域の位置に対応し、前記第１の画像エリアとは異なる第２の画像エリアを決定することと、
前記第２の画像エリアに関連付けられる前記ワーピングメッシュの第２の部分を決定することと
をさらに含む、請求項１または２のいずれか１項に記載のコンピュータによって実現される方法。
【請求項４】
前記ワーピングメッシュについての前記コスト関数を決定することは、前記ワーピングメッシュの前記第２の部分に関連付けられる付加的な第１のコストを決定することをさらに含み、前記付加的な第１のコストは、前記第２の対象領域の１つ以上の幾何学的歪みを補正するよう、少なくとも前記第２の画像エリアの１つ以上の顔関連変換に関連付けられるコストを含む、請求項３に記載のコンピュータによって実現される方法。
【請求項５】
前記画像についての前記ワーピングメッシュを決定することは、
前記第１の画像エリアがしきい値画像エリアよりも大きい面積を有するか否かを決定することと、
前記第１の画像エリアがしきい値画像エリアより大きい面積を有すると決定した後、前記ワーピングメッシュを決定することと
を含む、請求項１〜４のいずれか１項に記載のコンピュータによって実現される方法。
【請求項６】
前記ワーピングメッシュは、複数の頂点を含み、
前記ワーピングメッシュに関連付けられる前記第２のコストを決定することは、
前記画像のエッジに関連付けられる前記ワーピングメッシュの各頂点について頂点毎のエッジコストを割り当てることと、
前記ワーピングメッシュの境界に関連付けられる前記ワーピングメッシュの各頂点について境界コストを割り当てることと
を含む、請求項１〜５のいずれか１項に記載のコンピュータによって実現される方法。
【請求項７】
前記画像のエッジに関連付けられる前記ワーピングメッシュの各頂点について前記頂点毎のエッジコストを割り当てることは、
前記ワーピングメッシュの少なくとも第１のエッジ頂点に関連付けられる前記画像の第１のエッジについて第１のエッジ正則化項を決定することと、
前記画像の前記第１のエッジについて第１のエッジ曲げ項を決定することと、
前記第１のエッジ正則化項および前記第１のエッジ曲げ項に基づいて、前記第１のエッジ頂点について前記頂点毎のエッジコストを決定することと
を含む、請求項６に記載のコンピュータによって実現される方法。
【請求項８】
前記ワーピングメッシュの境界に関連付けられる前記ワーピングメッシュの各頂点について前記境界コストを割り当てることは、
前記ワーピングメッシュの第１の境界頂点についての境界コスト値を決定することを含み、前記第１の境界頂点は、前記ワーピングメッシュの第１の境界に関連付けられており、前記境界コスト値は、前記第１の境界頂点と前記ワーピングメッシュの境目との間の距離に基づく、請求項６または請求項７に記載のコンピュータによって実現される方法。
【請求項９】
前記最適化メッシュに基づいて、前記画像の前記第１の画像エリアを修正することは、
前記最適化メッシュのサンプリングを計算することと、
前記最適化メッシュの前記サンプリングに基づいて、少なくとも前記画像の前記第１の画像エリアを修正することと
を含む、請求項１〜８のいずれか１項に記載のコンピュータによって実現される方法。
【請求項１０】
前記画像における前記第１の対象領域に対応する前記第１の画像エリアを決定することは、カメラから前記画像を取得することを含む、請求項１〜９のいずれか１項に記載のコンピュータによって実現される方法。
【請求項１１】
前記第１の対象領域は、第１の顔を表し、
前記第１の画像エリアを決定することは、
前記第１の顔について第１の顔ボックスを決定することと、
前記第１の顔ボックスが、前記第１の顔を表す前記画像のすべてのピクセルを囲むかどうかを決定することと、
前記第１の顔ボックスが、前記第１の顔を表す前記画像のすべてのピクセルを囲むと決定した後、前記第１の顔ボックスを前記第１の画像エリアとして使用することと、
を含む、請求項１〜１０のいずれか１項に記載のコンピュータによって実現される方法。
【請求項１２】
前記第１の画像エリアを決定することは、
第３の対象領域について第２の顔ボックスを決定することと、
前記第２の顔ボックスが、前記第３の対象領域において第３の顔を表す前記画像のすべてのピクセルを囲まないかどうかを決定することと、
前記第２の顔ボックスが、前記第３の顔を表す前記画像のすべてのピクセルを囲まないことを決定した後、
前記第３の顔を表す前記画像のすべてのピクセルを含むように前記第２の顔ボックスを拡張することと、
拡張された前記第２の顔ボックスを、前記第３の顔に対応する画像エリアとして使用することと、
を含む、請求項１〜１１のいずれか１項に記載のコンピュータによって実現される方法。
【請求項１３】
前記ワーピングメッシュの前記第１の部分に関連付けられる前記第１のコストを決定することは、
第１の変換を使用して前記第１の画像エリアを第１の空間にマッピングすることと、
第２の変換を使用して前記第１の画像エリアを第２の空間にマッピングすることと、
前記第１の画像エリアについて、前記第２の空間の面積に対する前記第１の空間の面積の比に基づく第１のアスペクト比を決定することと、
前記第１のアスペクト比に基づいて、前記ワーピングメッシュの前記第１の部分に関連付けられる前記第１のコストを決定することと
を含む、請求項１〜１２のいずれか１項に記載のコンピュータによって実現される方法。
【請求項１４】
前記第１の変換は透視変換を含み、前記第２の変換はステレオ変換を含む、請求項１３に記載のコンピュータによって実現される方法。
【請求項１５】
前記ワーピングメッシュは、複数の頂点を含み、
前記ワーピングメッシュの前記第１の部分に関連付けられる前記第１のコストを決定することは、
前記ワーピングメッシュの前記第１の部分における第１の頂点の第１のコストを、前記第１の頂点での前記第１の変換に関連付けられる第１の変換値と、前記第１の頂点での前記第１の変換に関連付けられる第２の変換値との補間に関連付けられる値に初期化することを含む、請求項１３または請求項１４に記載のコンピュータによって実現される方法。
【請求項１６】
少なくとも前記第１の画像エリアの前記１つ以上の顔関連変換は、前記第１の画像エリアの回転、前記第１の画像エリアの平行移動、および／または、前記第１の画像エリアのスケーリングを含み、
前記画像について前記ワーピングメッシュを決定することは、
前記画像について、第３の複数の頂点を含む第３のメッシュを決定することと、
前記第３のメッシュに基づいて前記ワーピングメッシュを決定することと
を含み、
前記第３のメッシュに基づいて前記ワーピングメッシュを決定することは、少なくとも、
前記第３のメッシュの１つ以上の辺を決定することと、
前記第３のメッシュの前記１つ以上の辺の各辺について、
所定の数の付加的な頂点を前記第３のメッシュの前記辺に加えることと、
前記所定の数の付加的な頂点を前記第３のメッシュの前記辺に加えた後、前記第３のメッシュの前記辺に関連付けられ前記第３のメッシュの境界頂点に関連付けられる前記第３のメッシュの境界を決定することと、
前記第３のメッシュの前記境界頂点の次元を前記画像の境界に垂直になるように決定することと
によって行われる、請求項１〜１５のいずれか１項に記載のコンピュータによって実現される方法。
【請求項１７】
前記コスト関数の前記最適化は、前記コスト関数の最小化を含み、
前記コスト関数の前記最適化に基づいて、前記最適化メッシュを決定することは、
前記ワーピングメッシュに適用される前記コスト関数の前記最小化を実行することによって前記最適化メッシュを決定することと、
前記最適化メッシュの左の境目の頂点のコストのうちの最大のものとして、左部最大コストを決定することと、
前記最適化メッシュの右の境目の頂点のコストのうちの最小のものの右部最小コストを決定することと、
前記最適化メッシュの上部境目の頂点のコストのうちの最大のものとして上部最大コストを決定することと、
前記最適化メッシュの底部境目の頂点のコストのうちの最小のものの底部最小コストを決定することと、
前記左部最大コスト、前記右部最小コスト、前記上部最大コストおよび前記底部最小コストに基づいて、前記最適化メッシュを修正することと
を含む、請求項１〜１６のいずれか１項に記載のコンピュータによって実現される方法。
【請求項１８】
前記左部最大コスト、前記右部最小コスト、前記上部最大コストおよび前記底部最小コストに基づいて、前記最適化メッシュを修正することは、
前記画像の幅と、前記右部最小コストと前記左部最大コストとの間の差とに基づいて、前記画像についての幅スケールを決定することと、
前記画像の高さと、前記底部最小コストと前記上部最大コストとの間の差とに基づいて、前記画像についての高さスケールを決定することと、
前記幅スケールおよび前記高さスケールに基づいて、前記最適化メッシュの数学的スケーリングを実行することと
を含む、請求項１７に記載のコンピュータによって実現される方法。
【請求項１９】
前記画像は、複数のピクセルを含み、
前記最適化メッシュに基づいて、前記画像の前記第１の画像エリアを修正することは、
前記最適化メッシュをサンプリングすることによって、複数のサンプリングされた頂点を含むサンプリングされたメッシュを決定することと、
前記複数のピクセルのうちの特定のピクセルについて、前記特定のピクセルを修正することとを含み、
前記特定のピクセルを修正することは、少なくとも、
前記特定のピクセルに近接する複数のサンプリングされた頂点の１つ以上の近接頂点を決定することと、
前記１つ以上の近接頂点に基づいて、前記複数のピクセルのうちの再サンプリングされたピクセルについての座標を決定することと、
前記再サンプリングされたピクセルについての前記座標に基づいて、前記複数のピクセルのうちの１つ以上のピクセルをサンプリングすることによって、前記再サンプリングされたピクセルについてのピクセル値を決定することと、
前記再サンプリングされたピクセルについての前記ピクセル値に基づいて、前記特定のピクセルを修正することと
によって行われる、請求項１〜１８のいずれか１項に記載のコンピュータによって実現される方法。
【請求項２０】
コンピューティングデバイスであって、
１つ以上のプロセッサと、
コンピュータ読取可能命令が格納されている１つ以上のコンピュータ読取可能媒体とを含み、前記コンピュータ読取可能命令は、前記１つ以上のプロセッサによって実行されると、前記コンピューティングデバイスに、請求項１〜１９のいずれか１項に記載のコンピュータによって実現される方法を含む機能を実行させる、コンピューティングデバイス。
【請求項２１】
請求項１〜１９のいずれか１項に記載のコンピュータによって実現される方法を実行するための手段を含む、コンピューティングデバイス。
【請求項２２】
コンピュータ読取可能命令が格納されている１つ以上のコンピュータ読取可能媒体を含む製造物であって、前記コンピュータ読取可能命令は、コンピューティングデバイスの１つ以上のプロセッサによって実行されると、前記コンピューティングデバイスに、請求項１〜１９のいずれか１項に記載のコンピュータによって実現される方法を含む機能を実行させる、製造物。
【請求項２３】
前記１つ以上のコンピュータ読取可能媒体は、１つ以上の一時的でないコンピュータ読取可能媒体を含む、請求項２２に記載の製造物。
【発明の詳細な説明】
【背景技術】
【０００１】
背景
携帯電話、パーソナルコンピュータおよびタブレットを含む多くの現代のコンピューティングデバイスは、スチルカメラおよび／またはビデオカメラといった撮像デバイスを含む。撮像デバイスは、人々、動物、風景および／または対象物を含む画像のような画像を撮像し得る。
【０００２】
いくつかの撮像デバイスおよび／またはコンピューティングデバイスは、撮像された画像を補正し得る。たとえば、いくつかの撮像デバイスは、フラッシュ照明などの明るい光を使用して撮像された画像内に存在し得る人々および動物の赤く見える目のようなアーチファクトを除去する「赤目」補正を提供し得る。撮像された画像が補正された後、当該補正された画像は、保存され、表示され、送信され、紙に印刷され、および／または、他の態様で利用され得る。
【発明の概要】
【０００３】
概要
１つの局面では、コンピュータによって実現される方法が提供される。画像を表す画像データが受け取られる。画像における第１の対象領域に対応する第１の画像エリアが決定される。画像についてのワーピングメッシュが決定される。第１の画像エリアに関連付けられるワーピングメッシュの第１の部分が決定される。ワーピングメッシュについてのコスト関数が決定される。ワーピングメッシュについてのコスト関数を決定することは、ワーピングメッシュの第１の部分に関連付けられる第１のコストであって、画像において表されるような第１の対象領域の１つ以上の幾何学的歪みを補正するよう、少なくとも第１の画像エリアの１つ以上の顔関連変換に関連付けられるコストを含む第１のコストを決定することと、ワーピングメッシュに関連付けられる第２のコストであって、少なくとも１つ以上の顔関連変換によって修正される画像のエッジの直線性を保存するための１つ以上のエッジ関連変換のコストを含む第２のコストを決定することとによって行われる。ワーピングメッシュについてのコスト関数の最適化に基づいて最適化メッシュが決定される。最適化メッシュに基づいて画像の第１の画像エリアが修正される。
【０００４】
別の態様では、コンピューティングデバイスが提供される。コンピューティングデバイスは、１つ以上のプロセッサと、コンピュータ読取可能命令が格納されている１つ以上のコンピュータ読取可能媒体とを含み、コンピュータ読取可能命令は、１つ以上のプロセッサによって実行されると、コンピューティングデバイスに、機能を実行させる。上記機能は、画像を表す画像データを受け取ることと、画像における第１の対象領域に対応する第１の画像エリアを決定することと、画像についてのワーピングメッシュを決定することと、第１の画像エリアに関連付けられるワーピングメッシュの第１の部分を決定することと、ワーピングメッシュについてのコスト関数を決定することとを含み、ワーピングメッシュについてのコスト関数を決定することは、ワーピングメッシュの第１の部分に関連付けられる第１のコストであって、画像において表されるような第１の対象領域の１つ以上の幾何学的歪みを補正するよう、少なくとも第１の画像エリアの１つ以上の顔関連変換に関連付けられるコストを含む第１のコストを決定することと、ワーピングメッシュに関連付けられる第２のコストであって、少なくとも１つ以上の顔関連変換によって修正される画像のエッジの直線性を保存するための１つ以上のエッジ関連変換のコストを含む第２のコストを決定することとによって行われ、上記機能はさらに、ワーピングメッシュについてのコスト関数の最適化に基づいて、最適化メッシュを決定することと、最適化メッシュに基づいて、画像の第１の画像エリアを修正することとを含む。
【０００５】
別の局面では、コンピューティングデバイスが提供される。コンピューティングデバイスは、画像を表す画像データを受け取るための手段と、画像における第１の対象領域に対応する第１の画像エリアを決定するための手段と、画像についてのワーピングメッシュを決定するための手段と、第１の画像エリアに関連付けられるワーピングメッシュの第１の部分を決定するための手段と、ワーピングメッシュについてのコスト関数を決定するための手段とを含み、ワーピングメッシュについてのコスト関数を決定することは、ワーピングメッシュの第１の部分に関連付けられる第１のコストであって、画像において表されるような第１の対象領域の１つ以上の幾何学的歪みを補正するよう、少なくとも第１の画像エリアの１つ以上の顔関連変換に関連付けられるコストを含む第１のコストを決定することと、ワーピングメッシュに関連付けられる第２のコストであって、少なくとも１つ以上の顔関連変換によって修正される画像のエッジの直線性を保存するための１つ以上のエッジ関連変換のコストを含む第２のコストを決定することとによって行われ、コンピューティングデバイスはさらに、ワーピングメッシュについてのコスト関数の最適化に基づいて、最適化メッシュを決定するための手段と、最適化メッシュに基づいて、画像の第１の画像エリアを修正するための手段とを含む。
【０００６】
別の態様では、製造物が提供される。製造物は、コンピュータ読取可能命令が格納されている１つ以上のコンピュータ読取可能媒体を含み、コンピュータ読取可能命令は、コンピューティングデバイスの１つ以上のプロセッサによって実行されると、コンピューティングデバイスに、機能を実行させる。上記機能は、画像を表す画像データを受け取ることと、画像における第１の対象領域に対応する第１の画像エリアを決定することと、画像についてのワーピングメッシュを決定することと、第１の画像エリアに関連付けられるワーピングメッシュの第１の部分を決定することと、ワーピングメッシュについてのコスト関数を決定することとを含み、ワーピングメッシュについてのコスト関数を決定することは、ワーピングメッシュの第１の部分に関連付けられる第１のコストであって、画像において表されるような第１の対象領域の１つ以上の幾何学的歪みを補正するよう、少なくとも第１の画像エリアの１つ以上の顔関連変換に関連付けられるコストを含む第１のコストを決定することと、ワーピングメッシュに関連付けられる第２のコストであって、少なくとも１つ以上の顔関連変換によって修正される画像のエッジの直線性を保存するための１つ以上のエッジ関連変換のコストを含む第２のコストを決定することとによって行われ、上記機能はさらに、ワーピングメッシュについてのコスト関数の最適化に基づいて、最適化メッシュを決定することと、最適化メッシュに基づいて、画像の第１の画像エリアを修正することとを含む。
【０００７】
上記の概要は、単に例示であって、如何なる態様でも限定を意図していない。上に記載した例示的な局面、実施形態および特徴に加えて、さらに別の局面、実施形態および特徴が、図および以下の詳細な説明ならびに添付の図面を参照することによって明らかになるであろう。
【図面の簡単な説明】
【０００８】
【図１】例示的な実施形態に従った方法のフローチャートである。
【図２】例示的な実施形態に従った、顔ボックスおよび拡張顔ボックスを有する入力画像を示す図である。
【図３】例示的な実施形態に従った、図２の入力画像についての画像マスクを示す図である。
【図４】例示的な実施形態に従った、図２の入力画像についてのワーピングメッシュを示す図である。
【図５】例示的な実施形態に従った、図２の入力画像についての最適化メッシュを示す図である。
【図６】例示的な実施形態に従った、図２の入力画像の顔補正を含む出力画像を示す図である。
【図７】例示的な実施形態に従った方法のフローチャートである。
【図８】例示的な実施形態に従った方法のフローチャートである。
【図９】例示的な実施形態に従った方法のフローチャートである。
【図１０】例示的な実施形態に従った方法のフローチャートである。
【図１１】例示的な実施形態に従った方法のフローチャートである。
【図１２】例示的な実施形態に従った方法のフローチャートである。
【図１３】例示的な実施形態に従った方法のフローチャートである。
【図１４】例示的な実施形態に従った、２つの顔を表す入力画像について、対応する出力画像において両方の顔が補正されるシナリオを示す図である。
【図１５】例示的な実施形態に従った、４つの顔を表す入力画像について、対応する出力画像において４つの顔のうち３つの顔が補正されるシナリオを示す図である。
【図１６】例示的な実施形態に従った、コンピューティングデバイスが、入力画像と、制御部とを表示するシナリオを示す図であって、当該制御部は、選択されると、入力画像において表される顔の補正を含む対応する出力画像１５５０をコンピューティングデバイスに生成させる図である。
【図１７】例示的な実施形態に従った分散コンピューティングアーキテクチャを示す図である。
【図１８】例示的な実施形態に従った例示的なコンピューティングデバイスの機能ブロック図である。
【図１９】例示的な実施形態に従った方法のフローチャートである。
【発明を実施するための形態】
【０００９】
詳細な説明
対象物を撮影すると、３次元環境が２次元画像として再現される。これにより、空間における３次元点が２次元座標系に投影される。このような投影の結果として、さまざまな歪みが生じ得る。たとえば、射影歪み（perspective distortion）は、画像が撮像された画角が画像を見る画角と異なる場合に発生し得、撮像デバイスからさまざまな距離にある対象物の相対的な外観に歪みをもたらし得る。射影歪みのアーチファクトは、広視野（ＷＦＯＶ: Wide Field of View）撮像システムの使用において特に顕著であり得る。広視野撮像システムは、ＷＦＯＶレンズおよび／またはＷＦＯＶセンサを含み得る。したがって、たとえば、スマートフォン、折り畳み式電話（flip phone）、タブレットといったモバイルコンピューティングデバイスまたは他のデバイス上にしばしば存在するＷＦＯＶ撮像システムの利点は、画像忠実度における欠点にしばしば関連付けられる。このような影響は、画像の周辺部にある対象物についてしばしば特に顕著になる。
【００１０】
結果として、人間の顔および／または他の対象物が撮影されると、特に、得られる写真または他の画像の周辺領域において、人間の顔および／または他の対象物は、射影歪みの結果として、伸張および傾斜した特徴を示す場合がある。これは、撮像システムの技術的結果であり、画像忠実度の点で不利であり得、画像品質の低減を引き起こし得る。詳細には、人間の顔の歪みは、特に目立ち得るので、そのような歪みが相対的に小さい場合であっても、画質の大幅な劣化を表すことになる。すなわち、射影歪みは、人間の顔の不快な歪みを引き起こ得し、ユーザ体験に悪影響を及ぼし得る。射影歪みは、人間の顔の不快な歪みを引き起こし、ユーザ体験に悪影響を及ぼし得る。
【００１１】
したがって、人間の顔を含む顔などの対象物の射影歪みアーチファクトとともに撮像された画像（たとえば、写真、ビデオ録画における画像）には問題がある。本明細書では、写真および／または他の画像におけるこれらの射影歪みアーチファクトを補正するための技術および関連する装置が記載される。本明細書において記載される技術および関連する装置は、１つ以上の投影を使用してこれらのアーチファクトを補正することを補助し得る。より詳細には、１つ以上の入力画像の顔領域、すなわち、顔を表す入力画像の領域は、第１の投影を用いて局所的に補正され得、顔領域の外側の入力画像の領域は、第２の投影を用いて補正され得る。たとえば、第１の投影はステレオ投影（stereographic projection）であり得、第２の投影は透視投影（perspective projection）であり得る。第１の投影および／または第２の投影はメッシュで具現化され得る。さらに、メッシュ、第１の投影および／または第２の投影を使用して１つ以上の入力画像に対して行われた補正を反映する１つ以上の補正画像が、生成、表示、送信、および／または他の態様で作り出され得、いくつかの場合では、補正画像は、対応する入力画像のピクセルのすべてではないにしてもほとんどにメッシュ、第１の投影および／または第２の投影を使用して行われた補正を反映し得る。例として、本明細書において記載されるこれらの技術は、モバイルコンピューティングデバイスのソフトウェアアプリケーションにおいて具現化され得る。
【００１２】
画像を補正するために他の技術が使用されてきた。いくつかの場合では、射影歪みアーチファクトを補正するために、画像をグローバルにマッピングするよう魚眼レンズおよび／または関連するソフトウェアが利用される。しかしながら、魚眼レンズおよび／または関連するソフトウェアは、直線を作り出すことができず、得られる画像に曲線状の外観をレンダリングする。本明細書において記載される技術および関連する装置は、画像内の直線を維持しながら射影歪みアーチファクトを補正し得、これにより、射影歪み補正された画像内に付加的なアーチファクトが、もしあったとしても、ほとんど生成されない。さらに、本明細書に記載の技術をモバイルコンピューティングデバイス上でソフトウェアアプリケーションが効率的に実行し得る。
【００１３】
特に、本明細書において記載される技術は、画像の顔領域上において正角図法（conformal projection）を局所的にブレンドするという概念に依拠している。顔領域は、１つ以上の顔を表す画像の領域である。正角図法は、曲線が交わる角度を保ちながら球を平面に投影するステレオ投影のような角度保存投影を含み得る。画像の残り、すなわち、顔領域の外側の画像の部分は、直線を保つ透視投影を用いてレンダリングされ得る。しかしながら、画像全体に適用される正角図法は、画像全体における剛性の対象物の形状および曲率を歪ませる。対象物の形状および曲率のこれらの歪みを避けるために、本明細書において記載される技術は、顔の領域に局所的に正角図法を適用する。次いで、顔領域の外側の形状／曲率歪みに対処するために、直線性保存透視変換が画像の残りに対して使用される。結果として得られる画像補正技術は、画像の顔領域に対する正角図法と、画像の残りに対する透視投影とを組み合わせる。
【００１４】
いくつかの例では、本明細書において記載される技術は、最小限のユーザ入力により利用され得るか、または、ユーザ入力なしで利用され得る。たとえば、本明細書において記載される技術は、ユーザが画像の顔領域、線または他の局面を識別することを要求することなく、かつ、本明細書において記載される技術の計算において利用される項（term）のユーザの特定を要求することなく、利用され得る。むしろ、以下で論じるように、本明細書において記載される技術は、画像の局面に対するそのようなユーザ入力なしで、かつ、本明細書において記載される計算において使用される項に対するそのようなユーザ入力なしで、利用され得、したがって、自動画像補正アプリケーションにおいて利用され得る。さらに、本明細書において記載される技術は、ビデオ録画における一連の画像といった一連の画像を補正するために、ユーザ入力なしで利用され得る。したがって、本明細書において記載される技術は、ユーザ入力を必要とすることなく、静止画および／またはビデオ録画の画像における顔領域を補正するために有益に利用され得る。もちろん、何らかのユーザ入力を伴う本明細書において記載される技術の変形例も同様に可能である。
【００１５】
画像における射影歪みを補正するための技術および装置
メッシュ最適化問題は、画像の顔領域に対する正角図法と画像の残りに対する透視投影を組み合わせるよう、ワーピングメッシュ（warping mesh）上で解決され得る。次いで、メッシュ最適化問題を解決する最適化メッシュを使用して、射影歪みを有する関連する入力画像をワーピングすることによって、出力画像がレンダリングされ得る。
【００１６】
いくつかの例では、対応する入力画像Ｉにおける射影歪みのいくつかまたはすべてを補正する補正出力画像Ｏを生成するために、図１の文脈において以下で論じられる方法１００に関連する以下の手順が使用され得る。
【００１７】
１．入力画像Ｉのトリガ条件がチェックされ得る。たとえば、そのようなトリガ条件は、顔（たとえば、人間の顔、動物の顔）および／または他の対象物の表示、そのような顔および／または対象物の表示のサイズ、ならびに、顔および／または対象物の表示に関連する正角性コストに関し得る。他のトリガ条件も同様に可能である。
【００１８】
２．画像Ｉの顔領域に対応する１つ以上の顔マスクが決定され得る。顔領域に対応する画像Ｉの部分の組み合わせとして顔マスクの統合が使用され得る。顔以外の対象物のアーチファクトが補正されるべきであるいくつかの例では、顔マスクおよび対応する顔領域は、顔以外の対象物についての１つ以上のマスクおよび／または顔以外の対象物についての画像Ｉの１つ以上の対応する対象物領域により置き換えられ、および／または、増強され得る。
【００１９】
３．顔領域に関連するスケールファクタが推定され得る。たとえば、画像Ｉの顔領域が第１のタイプの変換または他の処理技術に関連付けられ得、画像Ｉの非顔領域が第２のタイプの変換または他の処理技術に関連付けられ得る。スケールファクタは、第２のタイプの変換により処理される画像Ｉの部分Ｐの面積に対する第１のタイプの変換により処理される画像Ｉの部分Ｐの面積の比を表し得る（または逆も同様である）。他のスケールファクタも同様に可能である。
【００２０】
４．メッシュ最適化問題は、ワーピングメッシュｖにおいてエネルギー項（energy term）を有する最適化式として公式化され得る。たとえば、メッシュ最適化問題は、ワーピングメッシュｖにおいて表されるエネルギー項を最小化する最小化問題であり得る。他のメッシュ最適化問題も同様に可能である。
【００２１】
５．ワーピングメッシュｖに境界条件が課され得る。いくつかの例では、境界条件は課されない。
【００２２】
６．ワーピングメッシュｖに対するメッシュ最適化問題が数値的に解かれ得、その解は、最適なメッシュｖ′を得るために正規化され得る。
【００２３】
７．最適なメッシュｖ′は、逆メッシュｚを生成するために再サンプリングされ得る。
８．出力画像Ｏは、逆メッシュｚを用いて生成される座標に基づいて入力画像Ｉのピクセルをサンプリングすることにより生成され得る。出力画像Ｏは、入力画像Ｉにおいて射影歪みに関連するアーチファクトを低減または除去することによって、入力画像Ｉを補正し得る。
対応する入力画像Ｉにおける射影歪みのいくつかまたはすべてを補正する補正出力画像Ｏを生成する際に使用する他の手順が可能である。
【００２４】
図１は、例示的な実施形態に従った方法１００のフローチャートである。上で記載された手順に関連する方法１００は、対応する入力画像Ｉにおける射影歪みを補正する補正出力画像Ｏを生成し得る。方法１００は、以下に記載されるコンピューティングデバイス１８００のようなコンピューティングデバイスによって実行され得る。
【００２５】
方法１００は、ブロック１１０において開始され得る。ブロック１１０において、コンピューティングデバイスは、幅Ｗ（Ｉ）および高さＨ（Ｉ）を有する入力画像Ｉを受け取り得る。さらに、コンピューティングデバイスは、サイズがしきい値サイズよりも大きい、画像Ｉによって表される顔の数であるＮを決定し得る。ブロック１１０に関連する詳細な手順は、図７の文脈において以下に記載される。
【００２６】
ブロック１２０において、コンピューティングデバイスは、入力画像ＩにおけるＮ個の顔についてＮ個の顔ボックスＦＢｋを決定し得る。ｋは１〜Ｎの範囲である。画像についての顔ボックスは、人間の顔のような顔を表す画像の領域を示し得る。いくつかの例では、顔ボックスは、正方形または長方形の形状を有し得る。他の例では、顔ボックスは、たとえば、長円形または楕円形の形状、三角形の形状、六角形の形状といった、正方形または長方形とは異なる形状を有し得る。
【００２７】
コンピューティングデバイスは、ｋ番目の顔の顔ランドマークを含むように、必要に応じてＮ個の顔ボックスの各顔ボックスＦＢｋ（１≦ｋ≦Ｎ）を拡張し得る。顔の顔ランドマークは、顔上における顔の特定の特徴の位置を示し得る。顔のそのような特徴は、当該顔のある頭部の上部、顔の髪、顔の額、顔の目、顔の鼻、顔の鼻孔、顔の唇、顔の口、顔の顎、顔の舌、顔の歯、顔の表情、顔の上におけるえくぼ、顔上におけるほくろ（beauty mark）および／または他のマーク、ならびに、顔を保持する首を含み得るが、これらに限定されない。ブロック１２０に関連する詳細な手順は、図８の文脈において以下に記載される。
【００２８】
ブロック１２０に関連する例として、図２は、壁２４０の前にある顔２１０を含む例示的な入力画像２００を示す。顔２１０は、画像２００の右縁部の近傍に位置している。図２は、顔２１０が初期顔ボックス２１２によって部分的に囲まれていることを示す。すなわち、図２に示される入力画像２００の例では、Ｎは１に等しく、顔ボックス２１２は、拡張前のＦＢ１であると考えられ得る。次いで、画像２００において顔ランドマークが検出され得る。そのような顔ランドマークは、図２において白丸として示されており、顔２１０の上部の近傍の顔ランドマーク２２０と、顔２１０の右下における顔ランドマーク２２２とを含む。顔ボックス２１２は、顔ランドマーク２２２を含むが、顔ランドマーク２２０を含まない。したがって、ブロック１２０において、コンピューティングデバイスは、顔２１０について発見されるすべての顔ランドマークを含むように顔ボックス２１２を拡張し得る。結果として得られる拡張顔ボックスが、拡張顔ボックス２３０として図２に示される。
【００２９】
ブロック１３０において、コンピューティングデバイスは、Ｎ個の顔ボックスのうちの各顔ボックスＦＢｋ（１≦ｋ≦Ｎ）について、入力画像ＩにおけるセグメンテーションマスクＭｋを計算し得る。次いで、コンピューティングデバイスは、画像マスクＭを、すべてのセグメンテーションマスクＭｋの統合として決定し得る。
【００３０】
ブロック１３０に関連する例として、図３は、拡張顔ボックスＦＢ１のためのセグメンテーションマスクＭ１を表す画像マスク３００を示す。セグメンテーションマスクＭ１はセグメンテーションマスク３１０として表され、拡張顔ボックスＦＢ１は拡張顔ボックス２３０として表される。セグメンテーションマスク３１０は、顔ランドマーク２２０および２２２を含む顔２１０の顔ランドマークによって示されるような顔２１０を表すマスクである。
【００３１】
いくつかの例では、ブロック１３０において、コンピューティングデバイスは、入力画像Ｉがレンズ歪みを含むか否かを決定し得る。画像Ｉがレンズ歪みを含む場合、画像マスクＭをワーピングすることにより、レンズ歪みが補正され得る。
【００３２】
ブロック１４０において、コンピューティングデバイスは、画像ＩについてＮＲ×ＮＣ個の頂点を有する少なくとも１つのワーピングメッシュｖを作成し得る。ＮＲおよびＮＣの各々は０より大きい。ブロック１４０に関連する例として、図４は、ワーピングメッシュ４００を示す。ＮＲ＝７５＝ワーピングメッシュ４００の行数であり、ＮＣ＝１００＝ワーピングメッシュ４００の列数である。
【００３３】
ブロック１５０において、コンピューティングデバイスは、マスクＭに対応するメッシュｖの位置において、画像ＩにおけるＮ個の顔について１つ以上の顔関連変換を実行することに関連付けられるコストにより、ワーピングメッシュｖをアップデートし得る。たとえば、１つ以上の顔関連変換を実行することに関連付けられるコストは、顔関連コストと称され得る。顔関連変換は、Ｎ個の顔のうちの少なくとも１つの１つ以上の幾何学的歪みを補正し得る。ブロック１５０に関連する詳細な手順は、図９の文脈において以下に記載される。
【００３４】
ブロック１６０において、コンピューティングデバイスは、少なくとも１つ以上の顔関連変換によって修正される画像のエッジの直線性を保存するための１つ以上のエッジ関連変換を実行することに関連付けられるコストと、ワーピングメッシュｖの境界についてのコストとにより、メッシュｖをアップデートし得る。たとえば、１つ以上のエッジ関連変換を実行することに関連付けられるコストは、エッジ関連コストと称され得る。ブロック１６０に関連する詳細な手順は、図１０の文脈において以下に記載される。いくつかの例では、１つ以上の投影変換は、１つ以上の顔関連変換と１つ以上のエッジ関連変換との両方を組み合わせ得る。これらの例のいくつかでは、顔関連コストおよびエッジ関連コストは、（組み合わされた投影変換に対応する）投影コストとして組み合わされ得る。
【００３５】
ブロック１７０において、コンピューティングデバイスは、ブロック１５０および１６０においてアップデートされたワーピングメッシュｖの頂点のコスト項の最小化などの数値最適化に基づいて最適化メッシュｖ′を決定し得る。ブロック１７０に関連する詳細な手順は、図１１の文脈において以下に記載される。
【００３６】
ブロック１７０に関連する例として、図５は、顔２１０、拡張顔ボックス２３０およびセグメンテーションマスク３１０に関連付けられる顔関連メッシュ部分５１０によりアップデートおよび最適化されるワーピングメッシュ４００を示す最適化メッシュ５００を示す。顔関連メッシュ部分５１０は、入力画像２００における顔２１０について顔関連変換を実行することに関連付けられるコストによりアップデートされている。さらに、顔関連変換を実行することに関連付けられるコストが最適化されており、たとえば、数値最適化を用いて最小化されている。顔関連変換は、顔関連メッシュ部分５１０内の最適化メッシュ５００の変形として図５に反映されている。ワーピングメッシュ４００と同様に、最適化メッシュ５００は、行数ＮＲ＝７５、列数ＮＣ＝１００を有する。
【００３７】
ブロック１８０において、コンピューティングデバイスは、最適化メッシュｖ′を再サンプリングすることによって逆メッシュｚを決定し得る。ブロック１８０に関連する詳細な手順は、図１２の文脈において以下に記載される。
【００３８】
ブロック１９０において、コンピューティングデバイスは、少なくとも、画像Ｏの各ピクセルＰ（Ｏ）について、逆メッシュｚに基づいて決定されるサンプリング座標において取得される画像Ｉのサンプルに基づいてＰ（Ｏ）をアップデートすることにより、出力画像Ｏを決定し得る。ブロック１９０に関連する詳細な手順は、図１３の文脈において以下に記載される。
【００３９】
出力画像Ｏが決定された後、コンピューティングデバイスは、画像Ｏを出力し得る。たとえば、画像Ｏの部分またはすべてを表示し得、画像Ｏの部分またはすべてを揮発性および／または不揮発性メモリに格納し得、画像Ｏの部分またはすべてを１つ以上の他のコンピューティングデバイスに通信し得、画像Ｏを紙に印刷するなどし得る。
【００４０】
ブロック１９０に関連する例として、図６は、入力画像２００を補正する出力画像６００を示す。特に、出力画像６００における顔６１０は、入力画像２００の顔２１０と比較して回転およびスケーリングされており、顔６１０は、少なくともブロック１５０の文脈において上で論じた顔関連変換によって回転およびスケーリングされている。出力画像６００はさらに、直線が保存されていることを示している。たとえば、出力画像６００において表されるような壁６４０に対してドア、ドアフレームなどを輪郭とする直線も、入力画像２００において表される壁２４０に対する直線として示される。拡張顔ボックス２３０の外側の他の直線および直線間の角度は、入力画像２００および出力画像６００の両方において同じである。したがって、出力画像６００は、拡張顔ボックス２３０内の射影歪みを補正するために入力画像２００をワーピングすることを伴う方法１００の手順によってレンダリングされている。さらに、画像２００および６００を比較することによって示されるように、方法１００は、出力画像６００を生成する間、（少なくとも）直線に関連する視覚的アーチファクトを入力画像２００に加えなかった。
【００４１】
方法１００は、方法１００によって処理される画像において顔が存在する１人以上の人のプライバシーを保証するためにプライバシーコントロールを有するように構成され得る。たとえば、コンピューティングデバイスは、顔が顔ボックスＦＢｋによって表わされる各人から明示的な許可を取得し得る。コンピューティングデバイスは、恐らく顔ボックスがブロック１２０において拡張された後、顔ボックスＦＢｋ（ｋは１〜Ｎの範囲である）における顔を提示し得る。次いで、方法１００の残りに進む前に、顔が顔ボックスＦＢｋ内に存在する各人から、入力画像Ｉを処理する許可が取得され得る。すなわち、コンピューティングデバイスは、表示された顔ボックス内に顔が存在する各人からの承認を要求するよう、顔ボックスＦＢｋを表示し得る。
【００４２】
他の例では、顔が画像内に存在する１人以上の人は、ブロック１１０において入力画像Ｉが受け取られる前に、方法１００を実行するための事前承認を与え得、コンピューティングデバイスは、方法１００を実行する前に、必要に応じてその承認を照合し得る。さらに他の例では、そのような許可は暗黙的であり得る。たとえば、コンピューティングデバイスの所有者が、「セルフィー（selfie）」画像において自分の顔および自分の顔のみを撮像し、次いで方法１００を使用する画像補正を要求する場合、自身の顔のみについて方法１００を実行するように進める所有者の許可は、当該セルフィーに対する画像補正についての要求によって推測され得る。これらのプライバシー関連技術および／または入力画像Ｉおよび／または他の画像において顔が撮像されている人のプライバシーを保証するための他の技術の組み合わせも可能である。
【００４３】
図７は、例示的な実施形態に従った、方法１００のブロック１１０の手順についての方法のフローチャートである。たとえば、方法１００を実行するコンピューティングデバイスは、方法１００のブロック１２０の手順を実行する間、ブロック７１０，７２０，７３０，７４０，７５０，７６０，７７０，７７２，７７４，７７６，７８０，７８２，７８４および７９０の手順のうちの少なくともいくつかを実行し得る。
【００４４】
ブロック７１０において、コンピューティングデバイスは、幅Ｗ（Ｉ）および高さＨ（Ｉ）を有する入力画像Ｉを受け取り得る。コンピューティングデバイスは、画像Ｉによって表される人の顔の数（顔の数はこれに限定されない）などの顔の数であるＮを決定し得る。たとえば、図２の入力画像２００は、Ｎ＝１人の人間の顔を表す。コンピューティングデバイスは、顔についての最小正角性コストＣＣｍｉｎを決定し得る。顔についての正角性コストは、少なくともブロック７７４および７７６の文脈において以下により詳細に論じられる。コンピューティングデバイスは、値Ｎ１をＮに等しくし得る。
【００４５】
ブロック７２０において、コンピューティングデバイスは、Ｎ個の顔について顔ボックスＦＢｋ（１≦ｋ≦Ｎ）を決定し得る。Ｎおよび／または顔ボックスＦＢ１、ＦＢ２...ＦＢＮのいくつかもしくはすべてを決定するために、コンピューティングデバイスは、顔検出ソフトウェアを利用し得る。顔検出ソフトウェアは、画像Ｉにおいて顔を特定および／もしくはカウントし、ならびに／または、画像Ｉにおいて検出される顔についての顔ボックスを計算する。コンピューティングデバイスは、値ｋを１に等しくし得る。
【００４６】
ブロック７３０において、コンピューティングデバイスは、顔ボックスＦＢｋのサイズ（たとえば、面積）が顔ボックスのしきい値サイズＴＳより大きいか否かを決定し得る。コンピューティングデバイスは、顔ボックスＦＢｋのサイズがＴＳより大きいと決定すると、ブロック７５０に進み得る。そうでなければ、コンピューティングデバイスは、顔ボックスＦＢｋのサイズがＴＳ以下であると決定し得、ブロック７４０に進み得る。
【００４７】
ブロック７４０において、コンピューティングデバイスは、顔ボックスＦＢｋを廃棄し得る。顔ボックスＦＢｋを廃棄することによって、コンピューティングデバイスは、顔として顔ボックスＦＢｋに関連付けられる画像の顔部分をもはや実質的に処理しなくなる。次いで、コンピューティングデバイスは、Ｎの値を１だけデクリメントし得る。すなわち、コンピューティングデバイスは、Ｎ＝Ｎ−１とし得る。
【００４８】
ブロック７５０において、コンピューティングデバイスは、ｋの値を１だけインクリメントし得る。すなわち、コンピューティングデバイスは、ｋ＝ｋ＋１とし得る。
【００４９】
ブロック７６０において、コンピューティングデバイスは、ｋがＮ１より大きいか否かを決定し得る。コンピューティングデバイスは、ｋがＮ１より大きいと決定した場合、ブロック７７０に進み得る。そうでなければ、コンピューティングデバイスは、ｋがＮ１以下であると決定し得、ブロック７３０に進み得る。
【００５０】
ブロック７７０において、コンピューティングデバイスは、Ｎが０以下であるか否かを決定し得る。Ｎが０以下であるとコンピューティングデバイスが決定した場合、画像Ｉ内の顔は、しきい値サイズＴＳを超える対応する顔ボックスを有さないので、コンピューティングデバイスは、ブロック７９０に進み得る。そうでなければ、コンピューティングデバイスは、Ｎが０より大きいと決定し得、ブロック７７２に進み得る。
【００５１】
ブロック７７２において、コンピューティングデバイスは、ｋの値を１に等しく設定し得る。
【００５２】
ブロック７７４において、コンピューティングデバイスは、顔ボックスＦＢｋの４つのコーナーＣ１、Ｃ２、Ｃ３およびＣ４の最大正角性コストＣＣｋを決定し得る。顔ボックスＦＢｋについての正角性コストＣＣｋは、顔ボックスＦＢｋのコーナーＣ１、Ｃ２、Ｃ３およびＣ４の座標の差の二乗の加重和として決定され得る。少なくとも１次元におけるコーナーの座標の差が、顔ボックスＦＢｋの面積に基づく値によってさらに加重される。
【００５３】
ブロック７７６において、コンピューティングデバイスは、顔ボックスＦＢｋについての正角性コストＣＣｋが最小正角性コストＣＣｍｉｎ未満であるか否かを決定し得る。ＣＣｋがＣＣｍｉｎ未満であるとコンピューティングデバイスが決定した場合、コンピューティングデバイスは、ブロック７８２に進み得る。そうでなければ、コンピューティングデバイスは、ＣＣｋがＣＣｍｉｎ以上であると決定し得、コンピューティングデバイスは、ブロック７８０に進み得る。
【００５４】
ブロック７８０において、コンピューティングデバイスは、方法１００の残りに進み得る。すなわち、方法１００のブロック１１０の手順を完了し得、方法１００のブロック１２０の手順の実行を開始することによって方法１００を継続し得る。
【００５５】
ブロック７８２において、コンピューティングデバイスは、ｋの値を１だけインクリメントし得る。すなわち、コンピューティングデバイスは、ｋ＝ｋ＋１とし得る。
【００５６】
ブロック７８４において、コンピューティングデバイスは、ｋがＮより大きいか否かを決定し得る。ｋがＮより大きいとコンピューティングデバイスが決定した場合、コンピューティングデバイスはブロック７９０に進み得る。そうでなければ、コンピューティングデバイスは、ｋがＮ以下であると決定し得、ブロック７７４に進み得る。
【００５７】
ブロック７９０において、コンピューティングデバイスは、入力画像Ｉを出力画像Ｏにコピーし得る。すなわち、入力画像Ｉのコピーを出力画像Ｏとして生成し得る。コンピューティングデバイスは、画像Ｏが方法１００の出力である場合、方法１００を終了し得る。
【００５８】
図８は、例示的な実施形態に従った、方法１００のブロック１２０の手順についての方法のフローチャートである。たとえば、方法１００を実行するコンピューティングデバイスは、方法１００のブロック１２０の手順を実行する間、ブロック８００，８１０，８２０，８３０，８４０，８５０および８６０の手順のいくつかまたはすべてを実行し得る。
【００５９】
ブロック８００において、コンピューティングデバイスは、値ｋを１に等しくおよび／または初期化し得る。
【００６０】
ブロック８１０において、コンピューティングデバイスは、画像Ｉにおける顔ｋについて１つ以上の顔ランドマークＦＬｋを決定し得る。
【００６１】
ブロック８２０において、コンピューティングデバイスは、顔ｋについての顔ボックスＦＢｋが顔ランドマークＦＬｋのすべてを含むか否かを決定し得る。たとえば、コンピューティングデバイスは、各顔ランドマークＦＬの座標が顔ボックスＦＢｋの内側または外側であるかを決定し得る。顔ランドマークＦＬｋのすべての座標が顔ボックスＦＢｋの内側である場合、コンピューティングデバイスは、顔ボックスＦＢｋが顔ランドマークＦＬｋのすべてを含むので顔ｋを表す画像Ｉのエリアを取り囲むと決定し得、コンピューティングデバイスはブロック８４０に進み得る。そうでなければ、コンピューティングデバイスは、顔ボックスＦＢｋが顔ランドマークＦＬｋのすべてを含まないと決定し得、ブロック８３０に進み得る。
【００６２】
ブロック８３０において、コンピューティングデバイスは、顔ランドマークＦＬｋのすべてを含むように顔ボックスＦＢｋを拡張し得る。したがって、ブロック８３０での拡張の後、顔ボックスＦＢｋは、顔ｋを表す画像Ｉのエリアを取り囲む。
【００６３】
ブロック８４０において、コンピューティングデバイスは、ｋの値を１だけインクリメントし得る。すなわち、コンピューティングデバイスは、ｋ＝ｋ＋１とし得る。
【００６４】
ブロック８５０において、コンピューティングデバイスは、ｋがＮより大きいか否かを決定し得る。ｋがＮより大きいとコンピューティングデバイスが決定した場合、コンピューティングデバイスはブロック８６０に進み得る。そうでなければ、コンピューティングデバイスは、ｋがＮ以下であると決定し得、ブロック８１０に進み得る。
【００６５】
ブロック８６０において、コンピューティングデバイスは、方法１００の残りに進み得る。すなわち、方法１００のブロック１２０の手順を完了し得、方法１００のブロック１３０の手順の実行を開始することによって方法１００を継続し得る。
【００６６】
図９は、例示的な実施形態に従った、方法１００のブロック１５０の手順についての方法のフローチャートである。たとえば、方法１００を実行するコンピューティングデバイスは、方法１００のブロック１５０の手順を実行する間、ブロック９００，９１０，９２０，９３０，９４０，９５０，９６０，９７０および９８０の手順のいくつかまたはすべてを実行し得る。
【００６７】
ブロック９００において、コンピューティングデバイスは、値ｋを１に等しくおよび／または初期化し得る。
【００６８】
ブロック９１０において、コンピューティングデバイスは、ステレオ空間にマッピングされた顔ボックスＦＢｋの面積ＳＡｋを計算し、透視空間にマッピングされた顔ボックスＦＢｋの別の面積ＰＡｋを計算し得る。次いで、コンピューティングデバイスは、顔ｋについてのネイティブスケールファクタＮＳＦｋを、ＮＳＦｋ＝ＳＡｋ／ＰＡｋとして計算し得る。ネイティブスケールファクタＮＳＦｋは、顔ボックスＦＢｋによって囲まれる顔ｋのサイズがステレオ投影後にどのように変化するかを示し得る。
【００６９】
ブロック９２０において、コンピューティングデバイスは、ワーピングメッシュｕおよびｖを作成し得る。ワーピングメッシュｕおよびｖの各々はＮＲ×ＮＣ個の頂点を有する。ＮＲ＝行数は０より大きく、ＮＣ＝列数は０より大きい。たとえば、ＮＲ＝１００およびＮＣ＝７５であり、この例では、メッシュｕおよびｖの各々は、ＮＲ×ＮＣ＝７５００個の頂点を有する。ワーピングメッシュｖは、おそらく画像Ｉがレンズ補正された後の画像Ｉにわたる（頂点の）メッシュであり得る。ワーピングメッシュｕは、画像Ｉのステレオ投影にわたる（頂点の）ワーピングメッシュであり得る。ワーピングメッシュｕおよび／またはワーピングメッシュｖの他の例も同様に可能である。
【００７０】
ブロック９３０において、コンピューティングデバイスは、メッシュｖにおける各頂点を、顔ｋについての顔スケールコスト項ＦＳＣＴｋに関連付け得る。顔スケールコスト項ＦＳＣＴｋは、画像Ｉにおいて表わされるような顔ｋの歪みを修正するために行なわれる顔ｋについてのスケーリングの量を表わし得る。ＦＳＣＴｋは、ＦＳＣＴｋ＝Ｗｆ×｜ａｋ−１／ＮＳＦｋ｜２として計算され得る。Ｗｆは、顔のスケーリングについての加重項であり、ＮＳＦｋは、ブロック９１０の文脈で上で論じた顔ｋについてのネイティブスケールファクタ項であり、ａｋは、以下において直ちに論じられる変換行列Ｓｋによって提供される顔ｋのスケーリングを表わす。
【００７１】
ブロック９４０において、コンピューティングデバイスは、顔ｋについて、変換行列Ｓｋおよび平行移動ベクトルｔｋという２つの暗黙的な変数を設定および／または初期化し得る。Ｓｋは、顔ｋのスケーリングおよび／または回転を表す変換行列を含み得、ｔｋは、顔ｋの平行移動を表す平行移動ベクトルを含み得る。たとえば、Ｓｋは、顔毎の剛体変換行列（per-face rigid transformation matrix）［ａｋ＿ｂｋ；−ｂｋａｋ］を含み得る。顔毎の形状保存変換行列は、顔ｋについてスケーリング変換ａｋおよび回転変換ｂｋの組み合わせを表す。ｔｋは、顔毎の平行移動ベクトル［ｔｘｋ，ｔｙｋ］を含み得、ｔｘｋおよびｔｙｋは、顔ｋのそれぞれのｘ座標の平行移動およびｙ座標の平行移動を表す。行列Ｓｋおよびベクトルｔｋによって表される顔ｋのスケーリング、回転および／または平行移動は、アフィン変換（affine transformation）のような、画像Ｉによって表されるような顔ｋの１つ以上の幾何学的歪みを補正し得る変換であり得る。
【００７２】
ブロック９５０において、コンピューティングデバイスは、（１）メッシュｕにおいて対応する頂点Ｕを決定する機能と、（２）頂点Ｖを顔変換コスト項ＦＴＣＴｋに関連付ける機能とを実行することによって、ワーピングメッシュｖｋにおける各頂点Ｖについてのコストを表し得る。変換コスト項ＦＴＣＴｋは、画像Ｉにおいて表わされるような顔ｋの歪みを補正するために行なわれる顔ｋについての変換の量を表わし得る。ＦＴＣＴｋは、ＦＴＣＴｋ＝Ｗｓ×｜Ｖ−Ｓｋ×Ｕ−ｔｋ｜２として計算され得、Ｗｓは顔の変換についての加重項であり、Ｓｋは、ブロック９４０の文脈において上で論じた暗黙的な変数および変換行列であり、ｔｋは、ブロック９４０の文脈において上で論じた暗黙的な変数および平行移動ベクトルである。
【００７３】
ブロック９６０において、コンピューティングデバイスは、ｋの値を１だけインクリメントし得る。すなわち、コンピューティングデバイスは、ｋ＝ｋ＋１とし得る。
【００７４】
ブロック９７０において、コンピューティングデバイスは、ｋがＮより大きいか否かを決定し得る。ｋがＮより大きいとコンピューティングデバイスが決定した場合、コンピューティングデバイスは、ブロック９８０に進み得る。そうでなければ、コンピューティングデバイスは、ｋがＮ以下であると決定し得、ブロック９１０に進み得る。
【００７５】
ブロック９８０において、コンピューティングデバイスは、方法１００の残りに進み得る。すなわち、方法１００のブロック１５０の手順を完了し得、方法１００のブロック１６０の手順の実行を開始することによって方法１００を継続し得る。
【００７６】
図１０は、例示的な実施形態に従った、方法１００のブロック１６０の手順についての方法のフローチャートである。たとえば、方法１００を実行するコンピューティングデバイスは、方法１００のブロック１６０の手順を実行する間、ブロック１０００，１０１０，１０２０，１０３０，１０４０，１０４２，１０５０，１０６０，１０７０，１０８０および１０９０の手順のいくつかまたはすべてを実行し得る。
【００７７】
ブロック１０００において、コンピューティングデバイスは、値ｅを１に等しくおよび／または初期化し、値ＮＥを画像Ｉにおいて表されるエッジおよび／または他の線の数に等しくおよび／または初期化し得る。たとえば、画像Ｉにおいて表されるエッジおよび／または他の線を検出するよう、線検出アルゴリズムが使用され得、値ＮＥは、画像Ｉにおいて検出されるエッジおよび／または他の線の数に設定され得る。値ＮＥを決定するための他の技術も同様に可能である。
【００７８】
ブロック１０１０において、コンピューティングデバイスは、画像Ｉのエッジｅに等しくなるように値Ｅを設定し得る。Ｅはメッシュｖにおける頂点ＶｉおよびＶｊに関連付けられ、ｉ≠ｊである。
【００７９】
ステップ１０２０において、コンピューティングデバイスは、エッジＥをエッジコスト項ＥＣＴに関連付け得る。エッジコスト項ＥＣＴは、エッジＥを維持することに関連付けられるコストを表す。ＥＣＴは、ＥＣＴ＝Ｗｒ×｜Ｅ｜２として算出され得る。｜Ｅ｜２は、エッジＥの長さを表し、Ｗｒは、正則化加重項である。
【００８０】
ブロック１０３０において、コンピューティングデバイスは、エッジＥをエッジ曲げ項ＥＢ（Ｅ）に関連付け得る。エッジ曲げ項ＥＢ（Ｅ）は、エッジＥが変換された後にエッジＥを曲げることに関連付けられるコストを表す。ＥＢ（Ｅ）は、エッジＥの水平方向の向きまたは垂直方向の向きに依存して、２つの値のうちの１つに等しくなり得る。より具体的には、ＥＢ（Ｅ）は、以下のうちのいずれかのように決定され得る。
【００８１】
エッジＥが水平である場合、ＥＢ（Ｅ）＝Ｗｂ×｜Ｖｉ，ｙ＋Ｖｊ，ｙ｜２、または、
エッジＥが垂直である場合、ＥＢ（Ｅ）＝Ｗｂ×｜Ｖｉ，ｘ＋Ｖｊ，ｘ｜２
式中、Ｗｂは曲げ加重項であり得る。
【００８２】
ブロック１０４０において、コンピューティングデバイスは、ｅの値を１だけインクリメントし得る。すなわち、コンピューティングデバイスは、ｅ＝ｅ＋１とし得る。
【００８３】
ブロック１０４２において、コンピューティングデバイスは、ｅがＮＥより大きいか否かを決定し得る。ｅがＮＥより大きいとコンピューティングデバイスが決定した場合、コンピューティングデバイスは、ブロック１０５０に進み得る。そうでなければ、コンピューティングデバイスは、ｅがＮＥ以下であると決定し得、ブロック１０１０に進み得る。
【００８４】
ブロック１０５０において、コンピューティングデバイスは、メッシュｖの境目上の各頂点Ｖｂを境界コスト項ＢＣＴに関連付け得る。ＢＣＴは、ＢＣＴ＝Ｗｂ×ｄ（Ｖｂ）として計算され得、ｄ（Ｖｂ）は、頂点Ｖｂとメッシュｖの境目との間の垂直距離であり、Ｗｂは、ブロック１０３０の文脈において上で論じた曲げ加重項であり得る。
【００８５】
ブロック１０６０において、コンピューティングデバイスは、メッシュｖを、各辺上の頂点の数ＮＢＤＲＹ（ＮＢＤＲＹ＞０）だけ拡張し得る。たとえば、ＮＢＤＲＹは、１、２、３、４といった整数値または別の整数値であり得る。ＮＢＤＲＹ個の頂点によってメッシュを拡張することによってワーピングメッシュｖに加えられる各頂点について、コンピューティングデバイスは、画像Ｉの境目に垂直になるように頂点の次元（dimension）を固定し得る。次いで、コンピューティングデバイスは、ＮＢＤＲＹに基づいてメッシュｖの行数ＮＲおよび列数ＮＣをアップデートし得る。たとえば、ＮＲ＝ＮＲ＋ＮＢＤＲＹおよびＮＣ＝ＮＣ＋ＮＢＤＲＹとする。
【００８６】
ブロック１０７０において、コンピューティングデバイスは、非対称コストが方法１００において使用されるべきか否かを決定し得る。たとえば、非対称コストが方法１００において使用される場合、変数、値、フラグまたは他の同様のデータ項目ＡＣＦＬＡＧが、第１の値（たとえば、１）に設定され得、非対称コストが方法１００において使用されない場合、第２の値（たとえば、０）に設定され得る。次いで、コンピューティングデバイスは、ＡＣＦＬＡＧの値を確認し、非対称コストが方法１００において使用されるべきか否かを決定し得る。非対称コストが方法１００において使用されるべきであるとコンピューティングデバイスが決定した場合、コンピューティングデバイスは、ブロック１０８０に進み得る。そうでなければ、コンピューティングデバイスは、非対称コストが方法１００において使用されるべきではないと決定し得、ブロック１０９０に進み得る。
【００８７】
ブロック１０８０において、コンピューティングデバイスは、メッシュｖにおいて元々存在する各頂点Ｖｉ（すなわち、ブロック１０６０において追加されなかったメッシュｖの頂点）について、頂点Ｖｉをメッシュ外インジケータ関数（outside-mesh indicator function）ＯＭＩ（Ｖｉ）＝０に関連付け得る。元々メッシュｖに存在しない各頂点Ｖｊ（すなわち、ブロック１０６０において追加されたメッシュｖの頂点）について、コンピューティングデバイスは、Ｖｊをメッシュ外インジケータ関数ＯＭＩ（Ｖｊ）＝１に関連付け得る。
【００８８】
ブロック１０９０において、コンピューティングデバイスは、方法１００の残りに進み得る。すなわち、方法１００のブロック１６０の手順を完了し得、方法１００のブロック１７０の手順の実行を開始することによって方法１００を継続し得る。
【００８９】
図９および図１０の文脈において記載されたもの以外のコスト関数も同様に可能である。さらに、いくつかの例では、コスト関数の相対的な重みが修正され得、および／または、ワーピングメッシュｕを作成する際に使用されるステレオ投影が１つ以上の他の投影に置き換えられ得る。
【００９０】
図１１は、例示的な実施形態に従った、方法１００のブロック１７０の手順についての方法のフローチャートである。たとえば、方法１００を実行するコンピューティングデバイスは、方法１００のブロック１７０の手順を実行する間、ブロック１１００，１１１０，１１２０，１１３０，１１４０，１１５０，１１６０，１１７０および１１８０の手順のいくつかまたはすべてを実行し得る。
【００９１】
ブロック１１００において、コンピューティングデバイスは、非対称コストが方法１００において使用されるべきか否かを決定し得る。非対称コストが方法１００において使用されるべきか否かを決定するための技術は、ブロック１０７０の文脈において上で論じられている。非対称コストが方法１００において使用されるべきであるとコンピューティングデバイスが決定した場合、コンピューティングデバイスは、ブロック１１１０に進み得る。そうでなければ、コンピューティングデバイスは、非対称コストが方法１００において使用されるべきではないと決定し得、ブロック１１２０に進み得る。
【００９２】
ブロック１１１０において、コンピューティングデバイスは、最適化メッシュｖ′を初期化するために、ＬｅｖｅｌＮｕｍレベル（ＬｅｖｅｌＮｕｍ＞１）を伴うコース・ツー・ファイン（coarse-to-fine）技術を使用し得る。当該コース・ツー・ファイン技術を実行するために、コンピューティングデバイスは、（ａ）最も粗いレベル（たとえば、レベル１）では、各顔ボックスＦＢｋ（１≦ｋ≦Ｎ）についてステレオ投影および透視投影の補間に基づいて、最適化メッシュＶ′を初期化し得、（ｂ）より微細なレベルＮの各々（２≦Ｎ≦ＬｅｖｅｌＮｕｍ）について、初期化されたメッシュＶ′をレベルＮ−１からアップサンプリングし得る。
【００９３】
ブロック１１２０において、コンピューティングデバイスは、ワーピングメッシュＶを最適化メッシュＶ′にコピーすることによって最適化メッシュＶ′を初期化し得る。
【００９４】
ブロック１１３０において、コンピューティングデバイスは、最適化メッシュＶ′を取得し得、初期化されたメッシュＶ′の頂点に関連付けられるコストの合計の数値最小化を実行することによって、暗黙的な変数Ｓｋおよびｔｋについての値を決定し得る。Ｓｋは、少なくともブロック９４０の文脈において上で論じた暗黙的な変数および変換行列であり、ｔｋは、少なくともブロック９４０の文脈において上で論じた暗黙的な変数および平行移動ベクトルである。
【００９５】
初期化されたメッシュＶ′の頂点に関連付けられるコストの合計の数値最小化を実行するために使用され得る例示的な数値ソルバは、インターネット上においてCeres-solver.orgに記載されているCeres Solverである。
【００９６】
ブロック１１４０において、コンピューティングデバイスは、メッシュＶ′のｄｈｍａｘ値，ｄｈｍｉｎ値，ｄｖｍａｘ値，ｄｖｍｉｎ値を計算またはそうでなければ決定し得る。ｄｈｍａｘ値は、メッシュＶ′の左の境目上の頂点ｖ′ｉ間においてｄｈｍａｘ＝ｍａｘ（ｖ′ｉ，ｘ）として決定され得る。ｄｈｍｉｎ値は、メッシュＶ′の右の境目上の頂点ｖ′ｉ間においてｄｈｍｉｎ＝ｍｉｎ（ｖ′ｉ，ｘ）として決定され得る。ｄｖｍａｘ値は、メッシュＶ′の上部境目上の頂点ｖ′ｉ間においてｄｖｍａｘ＝ｍａｘ（ｖ′ｉ，ｘ）として決定され得る。ｄｖｍｉｎ値は、メッシュＶ′の底部境目上の頂点ｖ′ｉ間においてｄｖｍｉｎ＝ｍｉｎ（ｖ′ｉ，ｘ）として決定され得る。
【００９７】
ブロック１１５０において、コンピューティングデバイスはスケールベクトルｓＶ′を決定し得る。スケールベクトルｓＶ′＝［ｓｘ，ｓｙ］＝［Ｗ（Ｉ），Ｈ（Ｉ）］／［ｄｈｍｉｎ−ｄｈｍａｘ，ｄｖｍｉｎ−ｄｖｍａｘ］であり、Ｗ（Ｉ）は画像Ｉの幅であり得、Ｈ（Ｉ）は画像Ｉの高さであり得る。
【００９８】
ブロック１１６０において、コンピューティングデバイスは、オフセットベクトルｏＶ′を決定し得る。オフセットベクトルｏＶ′＝［ｏｘ，ｏｙ］＝［ｄｈｍａｘ，ｄｖｍａｘ］である。
【００９９】
ブロック１１７０において、コンピューティングデバイスは、ｖ′Ｉ＝ｓＶ′×（ｖ′Ｉ−ｏＶ′）を決定することによってメッシュＶ′の各頂点ｖ′Ｉを調整し得る。
【０１００】
ブロック１１８０において、コンピューティングデバイスは、方法１００の残りに進み得る。すなわち、方法１００のブロック１７０の手順を完了し得、方法１００のブロック１８０の手順の実行を開始することによって方法１００を継続し得る。
【０１０１】
図１２は、例示的な実施形態に従った、方法１００のブロック１８０の手順についての方法のフローチャートである。たとえば、方法１００を実行するコンピューティングデバイスは、方法１００のブロック１８０の手順を実行する間、ブロック１２００，１２１０，１２２０，１２３０，１２４０，１２５０，１２６０，１２７０，１２８０および１２９０の手順のいくつかまたはすべてを実行し得る。図１２のフローチャートは、逆メッシュｚを作り出すために最適なメッシュｖ′を再サンプリングするための２パスアルゴリズム（two-pass algorithm）を示す。２パスアルゴリズムの第１のパスは、ブロック１２００，１２１０，１２２０，１２３０および１２４０によって示されるような最適化メッシュｖ′の行を伴う。２パスアルゴリズムの第２のパスは、ブロック１２５０，１２６０，１２７０，１２８０および１２９０によって示されるような最適化メッシュｖ′の列を伴う。逆メッシュｚを形成するための他の再サンプリング技術も同様に可能である。
【０１０２】
ステップ１２００において、コンピューティングデバイスは、値ＲＮｕｍを１に等しくおよび/または初期化し得、値ＣＮｕｍを１に等しくおよび/または初期化し得る。コンピューティングデバイスはさらに、値ＮＲＶを最適化メッシュｖ′における行数に等しくおよび/または初期化し得、値ＮＣＶを最適化メッシュｖ′における列数に等しくおよび/または初期化し得る。
【０１０３】
ブロック１２１０において、コンピューティングデバイスは、ｖ′のＲＮｕｍ番目の行をバッファＢＵＦに格納し得る。
【０１０４】
ブロック１２２０において、コンピューティングデバイスは、ＢＵＦに格納されたＲＮｕｍ番目の行について列座標を補間し得る。
【０１０５】
ブロック１２３０において、コンピューティングデバイスは、ＲＮｕｍの値を１だけインクリメントし得る。すなわち、コンピューティングデバイスは、ＲＮｕｍ＝ＲＮｕｍ＋１とし得る。
【０１０６】
ブロック１２４０において、コンピューティングデバイスは、ＲＮｕｍ値がＮＲＶより大きいか否かを決定し得る。ＮＲＶの値は、最適化メッシュｖ′における行の数である。ＲＮｕｍ値がＮＲＶより大きいとコンピューティングデバイスが決定した場合、コンピューティングデバイスは、ブロック１２５０に進み得る。そうでなければ、コンピューティングデバイスは、ＲＮｕｍ値がＮＲＶ以下であると決定し得、ブロック１２１０に進み得る。
【０１０７】
ブロック１２５０において、コンピューティングデバイスは、バッファＢＵＦのＣＮｕｍ番目の列を最適化メッシュｖ′のＣＮｕｍ番目の列にコピーし得る。
【０１０８】
ブロック１２６０において、コンピューティングデバイスは、ｖ′のＣＮｕｍ番目の列について行座標を補間し得る。
【０１０９】
ブロック１２７０において、コンピューティングデバイスは、ＣＮｕｍの値を１だけインクリメントし得る。すなわち、コンピューティングデバイスは、ＣＮｕｍ＝ＣＮｕｍ＋１とし得る。
【０１１０】
ブロック１２８０において、コンピューティングデバイスは、ＣＮｕｍ値がＮＣＶより大きいか否かを決定し得る。ＮＣＶの値は、最適化メッシュｖ′における列の数である。コンピューティングデバイスが、ＣＮｕｍ値がＮＣＶより大きいと決定した場合、コンピューティングデバイスは、ブロック１２９０に進み得る。そうでなければ、コンピューティングデバイスは、ＲＮｕｍ値がＮＲＶ以下であると決定し得、ブロック１２５０に進み得る。
【０１１１】
ブロック１２９０において、コンピューティングデバイスは、方法１００の残りに進み得る。すなわち、方法１００のブロック１８０の手順を完了し得、方法１００のブロック１９０の手順の実行を開始することによって方法１００を継続し得る。
【０１１２】
図１３は、例示的な実施形態に従った、方法１００のブロック１９０の手順についての方法のフローチャートである。
【０１１３】
たとえば、方法１００を実行するコンピューティングデバイスは、方法１００のブロック１９０の手順を実行する間、ブロック１３００，１３１０，１３２０，１３３０，１３４０，１３５０，１３６０および１３７０の手順のいくつかまたはすべてを実行し得る。
【０１１４】
ブロック１３００において、コンピューティングデバイスは、値Ｐｉｘを１に等しくおよび／または初期化し得、値ＮｕｍＰｉｘを出力画像Ｏにおけるピクセルの数に等しくし得る。
【０１１５】
ブロック１３１０において、コンピューティングデバイスは、Ｐ（Ｏ）を画像ＯにおけるＰｉｘ番目のピクセルとし得、Ｚｉを逆メッシュｚにおけるＰ（Ｏ）に最も近いものの数ＮｕｍＮｂｒとし得る。ＮｕｍＮｂｒは０より大きい整数である。たとえば、ＮｕｍＮｂｒは、１、２、３、４に等しいか、または、別の正の整数に等しくあり得る。
【０１１６】
ブロック１３２０において、コンピューティングデバイスは、透視空間におけるピクセルＰ（Ｏ）の座標であるＣｏｏｒｄ（Ｐ（Ｏ））を、ＺｉのＮｕｍＮｂｒ値の補間に等しくなるように設定し得る。
【０１１７】
ブロック１３３０において、コンピューティングデバイスは、座標ＩｎＣｏｏｒｄｓ（Ｐ（Ｏ））を求めるために、レンズ補正モデルを使用してレンズ歪み空間上においてＣｏｏｒｄ（Ｐ（Ｏ））をルックアップし得る。
【０１１８】
ブロック１３４０において、コンピューティングデバイスは、Ｐ（Ｏ）を、ＩｎＣｏｏｒｄｓ（Ｐ（Ｏ））によって表される座標における入力画像Ｉの再サンプリングに等しくし得る。次いで、コンピューティングデバイスは、画像ＯにおけるＰｉｘ番目のピクセルをＰ（Ｏ）に等しく設定し得る。
【０１１９】
ブロック１３５０において、コンピューティングデバイスは、Ｐｉｘの値を１だけインクリメントし得る。すなわち、コンピューティングデバイスは、Ｐｉｘ＝Ｐｉｘ＋１とし得る。
【０１２０】
ブロック１３６０において、コンピューティングデバイスは、ＰｉｘがＮｕｍＰｉｘより大きいか否かを決定し得る。ＰｉｘがＮｕｍＰｉｘより大きいとコンピューティングデバイスが決定した場合、コンピューティングデバイスはブロック１３７０に進み得る。そうでなければ、コンピューティングデバイスは、ＰｉｘがＮｕｍＰｉｘ以下であると決定し得、ブロック１３１０に進み得る。
【０１２１】
ブロック１３７０において、コンピューティングデバイスは、画像Ｏが方法１００の出力である場合、方法１００を終了し得る。
【０１２２】
メッシュｕ、ｖ、ｖ′および／またはｚのような１つ以上のメッシュを利用して画像Ｉのような画像をワープして画像Ｏのような出力画像を形成する他の技術も同様に可能である。
【０１２３】
図１４は、例示的な実施形態に従った、２つの顔１４２０，１４３０を表す入力画像１４１０について、対応する出力画像１４５０において両方の顔が補正されるシナリオ１４００を示す。シナリオ１４００は、たとえばカメラを有するスマートフォンといった、カメラを備えたコンピューティングデバイスが、カメラを使用して入力画像１４１０を撮像することにより開始し得る。図１４の上部に示すように、入力画像１４１０は、仕事環境における２人の人の画像である。したがって、入力画像１４１０は、２人の人の２つの顔１４２０，１４３０を表す。入力画像１４１０はさらに、仕事環境における天井の領域１４４０を表す。領域１４４０は、天井またはその近傍においてさまざまな角度にて一緒に現れる対象物を示す。
【０１２４】
シナリオ１４００は、コンピューティングデバイスがカメラから入力画像１４１０を受け取り、上で論じた方法１００の技術を使用して入力画像１４１０を補正し、その結果、出力画像１４５０を生成するように継続する。特に、入力画像１４１０の顔１４２０，１４３０は、方法１００の文脈において上で論じたように、アフィン変換および／またはステレオ変換を使用して出力画像１４５０のそれぞれの顔１４７０，１４８０となるように補正される。たとえば、入力画像１４１０に表される顔１４２０，１４３０の各々は、出力画像１４５０のそれぞれの顔１４７０，１４８０において示されるように、より自然な形状を有するように回転および伸長（スケーリング）されている。
【０１２５】
さらに、出力画像１４５０を生成している間、入力画像１４１０の領域１４４０は補正されない。特に、入力画像１４１０の領域１４４０における直線は、出力画像１４５０の対応する領域１４９０において真っ直ぐのままである。さらに、入力画像１４１０の領域１４４０においてさまざまな角度で交差する線は、出力画像１４５０の領域１４９０において、同じさまざまな角度で交差する線として示されている。したがって、シナリオ１４００は、コンピューティングデバイスが、入力画像１４１０の顔領域における直線および角度を除いて、入力画像１４１０と出力画像１４５０との間の直線を変更することなく、入力画像１４１０のような画像における顔を補正するために方法１００を使用し得ることを示す。
【０１２６】
図１５は、例示的な実施形態に従った、４つの顔１５２０，１５２２，１５２４，１５２６を表す入力画像１５１０について、対応する出力画像１５５０において４つの顔のうち３つの顔が補正されるシナリオ１５００を示す。シナリオ１５００は、コンピューティングデバイスがカメラから入力画像１５１０を受け取ることにより開始する。図１５の上部に示すように、入力画像１５１０は、仕事環境における少なくとも４人の画像である。したがって、入力画像１５１０は、少なくとも４人の人の少なくとも４つの顔１５２０，１５２２，１５２４，１５２６を表す。
【０１２７】
シナリオ１５００は、コンピューティングデバイスが、上で論じた方法１００の技術を使用して入力画像１５１０を補正し、その結果、出力画像１５５０を生成するように継続する。シナリオ１５００では、顔１５２２は、少なくとも図１および図７の文脈において上で論じたしきい値サイズＴＳより小さい拡張顔ボックスを有する。したがって、コンピューティングデバイスは、対応する顔１５７２を有する出力画像１５５０を生成する間、顔１５２２を補正しない。さらに、入力画像１５１０における顔１５２０、１５２４および１５２６の拡張顔ボックスの各々は、しきい値サイズＴＳより大きい。シナリオ１５００は、コンピューティングデバイスが、たとえば、出力画像１５５０を生成するために方法１００の手順を使用することの部分として、アフィン変換および／またはステレオ変換を使用して入力画像１５１０のこれらの３つの顔１５２０，１５２４，１５２６のみを補正するように進む。
【０１２８】
入力画像１５１０の顔１５２０，１５２４，１５２６の補正は、対応する顔１５７２を有する出力画像１５５０を生成する間、たとえば３つの顔１５２０、１５２４、１５２６といった３つの顔が出力画像１５５０のそれぞれの顔１５７０，１５７４，１５７６になるように変換する。さらに、たとえば、入力画像１５１０に示される天井から吊り下げられた対象物の角度といった、入力画像１５１０における直線および直線間の交差角度（入力画像１５１０の顔領域における直線および角度を除く）は、出力画像１５５０において変更されない。したがって、シナリオ１５００は、出力画像１５５０を生成することの部分として、入力画像１５１０（入力画像１５１０の顔領域における直線および角度の外側）における直線を変更することなく、すべての顔ではなくいくつかの顔を補正するための方法１００の使用を示す。
【０１２９】
図１６は、例示的な実施形態に従った、コンピューティングデバイス１６１０が、出力画像１５５０を生成することの部分として入力画像１５１０を補正するよう方法１００を使用するシナリオ１６００を示す。図１６の上部は、コンピューティングデバイス１６１０が、カメラから入力画像１５１０を受け取り、次いで、入力画像１５１０および制御部１６２０を表示することによりシナリオ１６００が開始することを示す。制御部１６２０は、「顔補正を適用」とラベル付けされたボタンを含む。制御部１６２０は、選択されると、コンピューティングデバイス１６１０に、たとえば出力画像１５５０といった出力画像を生成することの部分として、たとえば入力画像１５１０といった入力画像を補正するために方法１００を使用させる。他のシナリオでは、制御部１６２０は、たとえばアイコン、ダイアログといった、ボタン以外のグラフィカルユーザインターフェイス（ＧＵＩ）のグラフィカルオブジェクトによって表され得る。さらに他のシナリオでは、制御部１６２０を使用して制御される顔補正機能は、たとえば、キーボード上のキー、コマンドラインインターフェイスのコマンドといった１つ以上の非ＧＵＩオブジェクトを使用して制御され得る。
【０１３０】
シナリオ１６００は、たとえば、マウスを使用して制御部１６２０をクリックすること、タッチスクリーン上の制御部１６２０に対応する位置を押すことといった、コンピューティングデバイス１６１０のユーザが制御部１６２０を選択することによって進む。制御部１６２０が選択された後、コンピューティングデバイス１６１０は、少なくとも図１および図１５の文脈においてより詳細に上で論じたように、出力画像１５５０を生成するよう方法１００を使用する。出力画像１５５０を生成した後、シナリオ１６００は、図１６の下部に示されるように、コンピューティングデバイス１６１０が出力画像１５５０を表示するように継続する。出力画像１５５０において、入力画像１５１０の顔のすべてでなくいくつかは、入力画像１５１０における顔領域の直線および角度の外側の直線を変更することなく補正されている。
【０１３１】
いくつかのシナリオでは、入力画像１４１０、入力画像１５１０および／または他の入力画像を撮像するために使用されるカメラは、相対的に近接した位置からのあるシーンの撮像を容易にするために、広視野（ＷＦＯＶ）（または広角）レンズおよび／またはＷＦＯＶセンサを備え得る。
【０１３２】
例示的なデータネットワーク
図１７は、例示的な実施形態に従った分散コンピューティングアーキテクチャ１７００を示す。分散コンピューティングアーキテクチャ１７００は、ネットワーク１７０６を介して、プログラマブルデバイス１７０４ａ，１７０４ｂ，１７０４ｃ，１７０４ｄ，１７０４ｅと通信するように構成されるサーバデバイス１７０８，１７１０を含み得る。ネットワーク１７０６は、ＬＡＮ、ワイドエリアネットワーク（ＷＡＮ: wide area network）、企業イントラネット、公衆インターネット、または、ネットワーク接続されたコンピューティングデバイス同士間の通信経路を提供するように構成される任意の他のタイプのネットワークに対応し得る。ネットワーク１７０６はさらに、１つ以上のＬＡＮ、ＷＡＮ、企業イントラネットおよび／または公衆インターネットの組み合わせに対応し得る。
【０１３３】
図１７は５つのプログラマブルデバイスのみを示しているが、分散アプリケーションアーキテクチャは、数十、数百、または数千のプログラマブルデバイスを提供してもよい。さらに、プログラマブルデバイス１７０４ａ，１７０４ｂ，１７０４ｃ，１７０４ｄ，１７０４ｅ（または任意の付加的なプログラマブルデバイス）は、通常のラップトップコンピュータ、デスクトップコンピュータ、ウェアラブルコンピューティングデバイス、モバイルコンピューティングデバイス、ヘッドマウントデバイス、ネットワーク端末、および、ワイヤレス通信デバイス（たとえば、スマートフォンまたは携帯電話）などといった任意の種類のコンピューティングデバイスであり得る。いくつかの実施形態では、プログラマブルデバイス１７０４ａ，１７０４ｂ，１７０４ｃにより示されるように、プログラマブルデバイスは、ネットワーク１７０６に直接的に接続され得る。他の実施形態では、プログラマブルデバイス１７０４ｄによって示されるように、プログラマブルデバイスは、プログラマブルデバイス１７０４ｃのような関連付けられるコンピューティングデバイスを介してネットワーク１７０６に間接的に接続され得る。この例では、プログラマブルデバイス１７０４ｃは、プログラマブルデバイス１７０４ｄとネットワーク１７０６との間で電子通信を通すように、関連付けられたコンピューティングデバイスとして動作し得る。さらに他の実施形態では、プログラマブルデバイス１７０４ｅにおいて示されるように、コンピューティングデバイスは、たとえば、自動車、トラック、バス、ボートまたは船舶、飛行機などといった車両の部分であり得、および／または、車両内部に存在し得る。図１７に示されていないさらに別の実施形態では、プログラマブルデバイスは、ネットワーク１７０６に直接的および間接的の両方で接続され得る。
【０１３４】
サーバデバイス１７０８，１７１０は、プログラマブルデバイス１７０４ａ〜１７０４ｅによって要求されると、１つ以上のサービスを実行するように構成され得る。たとえば、サーバデバイス１７０８および／または１７１０は、プログラマブルデバイス１７０４ａ〜１７０４ｅにコンテンツを提供し得る。コンテンツは、ウェブページ、ハイパーテキスト、スクリプト、コンパイルされたソフトウェアのようなバイナリデータ、画像、オーディオ、および／または、ビデオを含み得るが、これらに限定されない。コンテンツは、圧縮コンテンツおよび／または非圧縮コンテンツを含み得る。コンテンツは暗号化され得、および／または、非暗号化され得る。他のタイプのコンテンツも同様に可能である。
【０１３５】
別の例として、サーバデバイス１７０８および／または１７１０は、データベース、検索、計算、グラフィカル、オーディオ、ビデオ、ワールドワイドウェブ／インターネット利用、および／または他の機能のためのソフトウェアへのアクセスをプログラマブルデバイス１７０４ａ〜１７０４ｅに提供し得る。サーバデバイスの多くの他の例も同様に可能である。
【０１３６】
コンピューティングデバイスアーキテクチャ
図１８は、例示的な実施形態に従った、例示的なコンピューティングデバイス１８００の機能ブロック図である。特に、図１８に示されるコンピューティングデバイス１８００は、入力画像２００、画像マスク３００、ワーピングメッシュ４００、最適化メッシュ５００、出力画像６００、コンピューティングデバイス１６１０、分散コンピューティングアーキテクチャ１７００、プログラマブルデバイス１７０４ａ，１７０４ｂ，１７０４ｃ，１７０４ｄ，１７０４ｅ、ネットワーク１７０６、および／もしくは、サーバデバイス１７０８，１７１０の少なくとも１つの機能を実行するように構成され得、ならびに／または、方法１００、シナリオ１４００、シナリオ１５００、シナリオ１６００および／もしくは方法１９００に関連する少なくとも１つの機能を実行するように構成され得る。
【０１３７】
コンピューティングデバイス１８００は、ユーザインターフェイスモジュール１８０１と、ネットワーク通信インターフェイスモジュール１８０２と、１つ以上のプロセッサ１８０３と、データストレージ１８０４と、１つ以上のセンサ１８２０とを含み得、これらのすべては、システムバス、ネットワークまたは他の接続メカニズム１８０５を介して一緒になるようにリンクされ得る。
【０１３８】
ユーザインターフェイスモジュール１８０１は、外部ユーザ入力／出力デバイスへデータを送信するように動作可能であり得、および／または、外部ユーザ入力／出力デバイスからデータを受信するように動作可能であり得る。たとえば、ユーザインターフェイスモジュール１８０１は、タッチスクリーン、コンピュータマウス、キーボード、キーパッド、タッチパッド、トラックボール、ジョイスティック、カメラ、音声認識モジュールおよび／または他の同様のデバイスといったユーザ入力デバイスとの間でデータを送信および／または受信するように構成され得る。ユーザインターフェイスモジュール１８０１はさらに、１つ以上の陰極線管（ＣＲＴ: cathode ray tube）、液晶ディスプレイ、発光ダイオード（ＬＥＤ: light emitting diode）、デジタル光処理（ＤＬＰ: digital light processing）技術を使用するディスプレイ、プリンタ、電球、および／または、現在公知であるかもしくは後に開発される他の同様のデバイスといったユーザディスプレイデバイスに出力を提供するように構成され得る。ユーザインターフェイスモジュール１８０１はさらに、スピーカ、スピーカジャック、オーディオ出力ポート、オーディオ出力デバイス、イヤホン、および／または他の同様のデバイスなどのように可聴出力を生成するように構成され得る。ユーザインターフェイスモジュール１８０１はさらに、振動ならびに／またはコンピューティングデバイス１８００とのタッチおよび／もしくは物理的接触によって検出可能な他の出力といった、触覚出力を生成し得る１つ以上の触覚デバイスを有するように構成され得る。いくつかの実施形態では、ユーザインターフェイスモジュール１８０１は、コンピューティングデバイス１８００を利用するためのグラフィカルユーザインターフェイスを提供するために使用され得る。
【０１３９】
ネットワーク通信インターフェイスモジュール１８０２は、ネットワークを介して通信するように構成可能な１つ以上のワイヤレスインターフェイス１８０７および／または１つ以上の有線インターフェイス１８０８を含み得る。ワイヤレスインターフェイス１８０７は、ブルートゥース（登録商標）トランシーバ、Ｚｉｇｂｅｅ（登録商標）トランシーバ、Ｗｉ−Ｆｉ（登録商標）トランシーバ、ＷｉＭＡＸ（登録商標）トランシーバ、および／または、ワイヤレスネットワークを介して通信するように構成可能な他の同様のタイプのワイヤレストランシーバといった１つ以上のワイヤレス送信機、受信機および／またはトランシーバを含み得る。有線インターフェイス１８０８は、イーサネット（登録商標）トランシーバ、ユニバーサルシリアルバス（ＵＳＢ: Universal Serial Bus）トランシーバ、または、ツイストペアワイヤ、同軸ケーブル、光ファイバリンクもしくは有線ネットワークへの同様の物理的接続を介して通信するように構成可能な同様のトランシーバといった１つ以上の有線送信機、受信機および／またはトランシーバを含み得る。
【０１４０】
いくつかの実施形態では、ネットワーク通信インターフェイスモジュール１８０２は、信頼でき、セキュアで、および／または、認証された通信を提供するように構成され得る。本明細書において記載される各通信について、信頼できる通信（すなわち、メッセージ送達の保証）を確実にするための情報が、おそらくメッセージヘッダおよび／またはフッタの部分として提供され得る（たとえば、パケット／メッセージシーケンシング情報、エンカプシュレーションヘッダおよび／またはフッタ、サイズ／時間情報、ならびに、巡回冗長検査（ＣＲＣ: cyclic redundancy check）および／またはパリティ検査値（parity check value）といった送信照合情報）。通信は、１つ以上の暗号プロトコルおよび／またはアルゴリズムを使用してセキュアにされ（たとえば、エンコードもしくは暗号化され）、および／または、復号化／デコードされ得る。当該暗号プロトコルおよび／またはアルゴリズムの例としては、データ暗号化標準（ＤＥＳ: Data Encryption Standard）、高度暗号化標準（ＡＥＳ: Advanced Encryption Standard）、リベスト・シャミア・エーデルマン（ＲＳＡ: Rivest-Shamir-Adelman）アルゴリズム、ディフィー・ヘルマン（Diffie-Hellman）アルゴリズム、セキュアソケットレイヤー（ＳＳＬ: Secure Sockets Layer）もしくはトランスポートレイヤーセキュリティ（ＴＬＳ: Transport Layer Security）といったセキュアソケットプロトコル、および／または、デジタルシグネチャーアルゴリズム（ＤＳＡ: Digital Signature Algorithm）が挙げられるが、これらに限定されない。通信をセキュアに（次いで、復号化／デコード）するために、他の暗号プロトコルおよび／またはアルゴリズムが、同様に、または、本明細書に列挙したものに加えて使用され得る。
【０１４１】
１つ以上のプロセッサ１８０３は、１つ以上の汎用プロセッサおよび／または１つ以上の専用プロセッサ（たとえば、デジタル信号プロセッサ、グラフィック処理ユニット、特定用途向け集積回路など）を含み得る。１つ以上のプロセッサ１８０３は、データストレージ１８０４に含まれるコンピュータ読取可能プログラム命令１８０６および／または本明細書において記載されるような他の命令を実行するように構成され得る。
【０１４２】
データストレージ１８０４は、１つ以上のプロセッサ１８０３のうちの少なくとも１つによって読み取りおよび／またはアクセスされ得る１つ以上のコンピュータ読取可能記憶媒体を含み得る。１つ以上のコンピュータ読取可能記憶媒体は、１つ以上のプロセッサ１８０３のうちの少なくとも１つと全体的にまたは部分的に統合され得る、光学メモリ、磁気メモリ、有機メモリもしくは他のメモリ、または、ディスクストレージといった揮発性および／または不揮発性ストレージコンポーネントを含み得る。いくつかの実施形態では、データストレージ１８０４は、単一の物理デバイス（たとえば、１つの光学メモリ、磁気メモリ、有機メモリもしくは他のメモリ、または、ディスクストレージユニット）を使用して実現され得るが、他の実施形態では、データストレージ１８０４は、２つ以上の物理デバイスを使用して実現され得る。
【０１４３】
データストレージ１８０４は、コンピュータ読取可能プログラム命令１８０６およびおそらく付加的なデータを含み得る。いくつかの実施形態では、データストレージ１８０４は、本明細書において記載される方法、シナリオおよび技術の少なくとも部分、ならびに／または、本明細書において記載されるデバイスおよびネットワークの機能の少なくとも部分を実行するために必要とされるストレージをさらに含み得る。
【０１４４】
いくつかの実施形態では、コンピューティングデバイス１８００は、１つ以上のセンサ１８２０を含み得る。センサ１８２０は、コンピューティングデバイス１８００の環境における状態を測定し、その環境に関するデータを提供するように構成され得る。たとえば、センサ１８２０は、（ｉ）他の対象物および／またはデバイスを識別する識別センサと、（ｉｉ）コンピューティングデバイス１８００の位置および／または動きを測定するセンサと、（ｉｉｉ）コンピューティングデバイス１８００の環境を示すデータを取得する環境センサと、（ｉｖ）コンピューティングデバイス１８００に関して作用する１つ以上の力（例えば慣性力および／またはＧ力）を測定する力センサとのうちの１つ以上を含み得る。識別センサの例としては、無線周波数識別（ＲＦＩＤ： Radio Frequency Identification）リーダ、近接センサ、１次元バーコードリーダ、２次元バーコード（たとえば、クイックレスポンス（ＱＲ： Quick Response）コード）リーダ、および、レーザトラッカが挙げられるがこれらに限定されない。識別センサは、ＲＦＩＤタグ、バーコード、ＱＲコード（登録商標）、ならびに／または、読み取られるとともに少なくとも識別情報を提供するように構成される他のデバイスおよび／もしくはオブジェクトといったような識別子を読み取るように構成され得る。コンピューティングデバイス１８００の位置および／または動きを測定するセンサの例としては、チルトセンサ、ジャイロスコープ、加速度計、ドップラーセンサ、グローバルポジショニングシステム（ＧＰＳ： Global Positioning System）デバイス、ソナーセンサ、レーダデバイス、レーザ変位センサおよびコンパスが挙げられるがこれらに限定されない。環境センサの例としては、赤外線センサ、光学センサ、光センサ、カメラ、バイオセンサ、容量センサ、タッチセンサ、温度センサ、ワイヤレスセンサ、無線センサ、動きセンサ、マイクロフォン、サウンドセンサ、超音波センサおよび／または煙センサが挙げられるが、これらに限定されない。力センサの例としては、１つ以上の次元における力、トルク、重力（ground force）、摩擦を測定する１つ以上のセンサ、ならびに／または、ＺＭＰおよび／もしくはＺＭＰの位置を識別するゼロモーメントポイント（ＺＭＰ： zero moment point）センサが挙げられるが、これらに限定されない。センサ１８２０の多くの他の例も同様に可能である。
【０１４５】
動作の例示的な方法
図１９は、例示的な実施形態に従った方法１９００のフローチャートである。方法１９００は、コンピュータによって実現される方法であり得る。たとえば、方法１９００は、コンピューティングデバイス１８００のようなコンピューティングデバイスによって実行され得る。
【０１４６】
図１９は、方法１９００がブロック１９１０において開始し得ることを示す。ブロック１９１０において、少なくとも図１、図２、図７、図８、図１４、図１５および図１６の文脈において上で論じたように、コンピューティングデバイスは、画像における第１の対象領域に対応する第１の画像エリアを決定し得る。
【０１４７】
いくつかの例では、少なくとも図１、図２、図７、図８、図１４、図１５および図１６の文脈において上で論じたように、第１の対象領域は、第１の人間の顔を表し得る。他の例では、少なくとも図１４、図１５および図１６の文脈において上で論じたように、画像における第１の対象領域に対応する第１の画像エリアを決定することは、カメラから画像を取得することを含み得る。
【０１４８】
さらに他の例では、少なくとも図１、図２、図７および図８の文脈において上で論じたように、第１の対象領域は第１の顔を表し得、第１の画像エリアを決定することは、第１の顔について第１の顔ボックスを決定することと、第１の顔ボックスが第１の顔を表す画像のすべてのピクセルを囲むかどうかを決定することと、第１の顔ボックスが第１の顔を表す画像のすべてのピクセルを囲むと決定した後、第１の画像エリアとして第１の顔ボックスを使用することとを含み得る。
【０１４９】
さらに他の例では、少なくとも図１、図２、図７および図８の文脈において上で論じたように、第１の画像エリアを決定することは、第３の対象領域について第２の顔ボックスを決定することと、第２の顔ボックスが、第３の対象領域において第３の顔を表す画像のすべてのピクセルを囲まないかどうかを決定することと、第２の顔ボックスが、第３の顔を表す画像のすべてのピクセルを囲まないことを決定した後、第３の顔を表す画像のすべてのピクセルを含むように第２の顔ボックスを拡張することと、拡張された第２の顔ボックスを、第３の顔に対応する画像エリアとして使用することとを含み得る。
【０１５０】
ブロック１９２０において、少なくとも図１、図４および図９の文脈において上で論じたように、コンピューティングデバイスは、画像についてのワーピングメッシュを決定し得る。
【０１５１】
いくつかの例では、少なくとも図１、図７および図９の文脈において上で論じたように、画像についてのワーピングメッシュを決定することは、第１の画像エリアがしきい値画像エリアよりも大きい面積を有するか否かを決定することと、第１の画像エリアがしきい値画像エリアより大きい面積を有すると決定した後、ワーピングメッシュを決定することとを含み得る。
【０１５２】
他の例では、少なくとも図１、図９および図１０の文脈において上で論じたように、少なくとも第１の画像エリアの１つ以上の顔関連変換は、第１の画像エリアの回転、第１の画像エリアの平行移動、および／または、第１の画像エリアのスケーリングを含み得、画像についてワーピングメッシュを決定することは、画像について、第３の複数の頂点を含む第３のメッシュを決定することと、第３のメッシュに基づいてワーピングメッシュを決定することとを含み、第３のメッシュに基づいてワーピングメッシュを決定することは、少なくとも、第３のメッシュの１つ以上の辺を決定することと、第３のメッシュの１つ以上の辺の各辺について、所定の数の付加的な頂点を第３のメッシュの辺に加えることと、所定の数の付加的な頂点を第３のメッシュの辺に加えた後、第３のメッシュの辺に関連付けられ第３のメッシュの境界頂点に関連付けられる第３のメッシュの境界を決定することと、第３のメッシュの境界頂点の次元を画像の境界に垂直になるように決定することとによって行われる。
【０１５３】
ブロック１９３０において、少なくとも図１、図５および図９の文脈において上で論じたように、コンピューティングデバイスは、第１の画像エリアに関連付けられるワーピングメッシュの第１の部分を決定し得る。
【０１５４】
ブロック１９４０において、少なくとも図１、図９、および図１０に関連して上で論じたように、コンピューティングデバイスは、ワーピングメッシュについてのコスト関数を決定し得、ワーピングメッシュについてのコスト関数を決定することは、ワーピングメッシュの第１の部分に関連付けられる第１のコストであって、画像において表されるような第１の対象領域の１つ以上の幾何学的歪みを補正するよう、少なくとも第１の画像エリアの１つ以上の顔関連変換に関連付けられるコストを含む第１のコストを決定することと、ワーピングメッシュに関連付けられる第２のコストであって、少なくとも１つ以上の顔関連変換によって修正される画像のエッジの直線性を保存するための１つ以上のエッジ関連変換のコストを含む第２のコストを決定することとによって行われる。
【０１５５】
いくつかの例では、少なくとも図１、図９および図１０の文脈において上で論じたように、ワーピングメッシュについてのコスト関数を決定することは、ワーピングメッシュの第２の部分に関連付けられる付加的な第１のコストを決定することをさらに含み得、付加的な第１のコストは、第２の対象領域の１つ以上の幾何学的歪みを補正するよう、少なくとも第２の画像エリアの１つ以上の顔関連変換に関連付けられるコストを含む。
【０１５６】
他の例では、少なくとも図１０の文脈において上で論じたように、ワーピングメッシュは、複数の頂点を含み得、ワーピングメッシュに関連付けられる第２のコストを決定することは、画像のエッジに関連付けられるワーピングメッシュの各頂点について頂点毎のエッジコストを割り当てることと、ワーピングメッシュの境界に関連付けられるワーピングメッシュの各頂点について境界コストを割り当てることとを含み得る。これらの例のいくつかでは、少なくとも図１０の文脈において上で論じたように、画像のエッジに関連付けられるワーピングメッシュの各頂点について頂点毎のエッジコストを割り当てることは、ワーピングメッシュの少なくとも第１のエッジ頂点に関連付けられる画像の第１のエッジについて第１のエッジ正則化項を決定することと、画像の第１のエッジについて第１のエッジ曲げ項を決定することと、第１のエッジ正則化項および第１のエッジ曲げ項に基づいて、第１のエッジ頂点について頂点毎のエッジコストを決定することとを含み得る。これらの例の他の例において、少なくとも図１０の文脈において上で論じたように、ワーピングメッシュの境界に関連付けられるワーピングメッシュの各頂点について境界コストを割り当てることは、ワーピングメッシュの第１の境界頂点についての境界コスト値を決定することを含み得、第１の境界頂点は、ワーピングメッシュの第１の境界に関連付けられており、境界コスト値は、第１の境界頂点とワーピングメッシュの境目との間の距離に基づく。
【０１５７】
さらに他の例では、少なくとも図９の文脈において上で論じたように、ワーピングメッシュの第１の部分に関連付けられる第１のコストを決定することは、第１の変換を使用して第１の画像エリアを第１の空間にマッピングすることと、第２の変換を使用して第１の画像エリアを第２の空間にマッピングすることと、第１の画像エリアについて、第２の空間の面積に対する第１の空間の面積の比に基づく第１のアスペクト比を決定することと、第１のアスペクト比に基づいて、ワーピングメッシュの第１の部分に関連付けられる第１のコストを決定することとを含み得る。これらの例のいくつかでは、少なくとも図９の文脈で上で議論したように、第１の変換は透視変換を含み得、第２の変換はステレオ変換を含み得る。これらの例の他の例において、少なくとも図１１の文脈において上で論じたように、ワーピングメッシュは、複数の頂点を含み得、ワーピングメッシュの第１の部分に関連付けられる第１のコストを決定することは、ワーピングメッシュの第１の部分における第１の頂点の第１のコストを、第１の頂点での第１の変換に関連付けられる第１の変換値と、第１の頂点での第１の変換に関連付けられる第２の変換値との補間に関連付けられる値に初期化することを含み得る。
【０１５８】
ブロック１９５０において、少なくとも図１、図５、図１０および図１１の文脈において上で論じたように、コンピューティングデバイスは、ワーピングメッシュについてのコスト関数の最適化に基づいて、最適化メッシュを決定し得る。
【０１５９】
いくつかの例では、少なくとも図１０および図１１の文脈において上で論じたように、コスト関数の最適化は、コスト関数の最小化を含み得、コスト関数の最適化に基づいて、最適化メッシュを決定することは、ワーピングメッシュに適用されるコスト関数の最小化を実行することによって最適化メッシュを決定することと、最適化メッシュの左の境目の頂点のコストのうちの最大のものとして、左部最大コストを決定することと、最適化メッシュの右の境目の頂点のコストのうちの最小のものの右部最小コストを決定することと、最適化メッシュの上部境目の頂点のコストのうちの最大のものとして上部最大コストを決定することと、最適化メッシュの底部境目の頂点のコストのうちの最小のものの底部最小コストを決定することと、左部最大コスト、右部最小コスト、上部最大コストおよび底部最小コストに基づいて、最適化メッシュを修正することとを含む。
【０１６０】
これらの例のいくつかでは、少なくとも図１１の文脈において上で論じたように、左部最大コスト、右部最小コスト、上部最大コストおよび底部最小コストに基づいて、最適化メッシュを修正することは、画像の幅と、右部最小コストと左部最大コストとの間の差とに基づいて、画像についての幅スケールを決定することと、画像の高さと、底部最小コストと上部最大コストとの間の差とに基づいて、画像についての高さスケールを決定することと、幅スケールおよび高さスケールに基づいて、最適化メッシュの数学的スケーリングを実行することとを含み得る。
【０１６１】
ブロック１９６０において、少なくとも図１、図６、図１２、図１３、図１４、図１５および図１６の文脈において上で論じたように、コンピューティングデバイスは、最適化メッシュに基づいて画像の第１の画像エリアを修正し得る。いくつかの例では、少なくとも図１、図１２、および図１３の文脈において上で論じたように、最適化メッシュに基づいて、画像の第１の画像エリアを修正することは、最適化メッシュのサンプリングを計算することと、最適化メッシュのサンプリングに基づいて、少なくとも画像の第１の画像エリアを修正することとを含み得る。他の例では、少なくとも図１および図１３の文脈において上で論じたように、画像は複数のピクセルを含み得、最適化メッシュに基づいて、画像の第１の画像エリアを修正することは、最適化メッシュをサンプリングすることによって、複数のサンプリングされた頂点を含むサンプリングされたメッシュを決定することと、複数のピクセルのうちの特定のピクセルについて、特定のピクセルを修正することとを含み得、特定のピクセルを修正することは、少なくとも、特定のピクセルに近接する複数のサンプリングされた頂点の１つ以上の近接頂点を決定することと、１つ以上の近接頂点に基づいて、複数のピクセルのうちの再サンプリングされたピクセルについての座標を決定することと、再サンプリングされたピクセルについての座標に基づいて、複数のピクセルのうちの１つ以上のピクセルをサンプリングすることによって、再サンプリングされたピクセルについてのピクセル値を決定することと、再サンプリングされたピクセルについてのピクセル値に基づいて、特定のピクセルを修正することとによって行われる。
【０１６２】
いくつかの例では、少なくとも図１、図７、図１４、図１５および図１６の文脈において上で論じたように、方法１９００は、画像における第２の対象領域の位置に対応し、第１の画像エリアとは異なる第２の画像エリアを決定することと、第２の画像エリアに関連付けられるワーピングメッシュの第２の部分を決定することとをさらに含み得る。
【０１６３】
いくつかの例では、コンピューティングデバイスが提供され得る。コンピューティングデバイスは、１つ以上のプロセッサと、１つ以上のコンピュータ読取可能媒体とを含む。１つ以上のコンピュータ読取可能媒体は、コンピュータ読取可能命令を格納し得、コンピュータ読取可能命令は、１つ以上のプロセッサによって実行されると、コンピューティングデバイスに、方法１９００を含む機能を実行させる。
【０１６４】
他の例では、コンピューティングデバイスが提供され得る。コンピューティングデバイスは、方法１９００を実行するための手段を含む。
【０１６５】
さらに他の例では、製造物が提供され得る。製造物は、コンピュータ読取可能命令を格納した１つ以上のコンピュータ読取可能媒体を含み得、コンピュータ読取可能命令は、コンピューティングデバイスの１つ以上のプロセッサによって実行されると、コンピューティングデバイスに、方法１９００を含む機能を実行させる。これらの例のいくつかでは、１つ以上のコンピュータ読取可能媒体は、１つ以上の一時的でないコンピュータ読取可能媒体を含み得る。
【０１６６】
上記の詳細な説明は、添付の図面を参照して、開示されるシステム、デバイスおよび方法のさまざまな特徴および機能を記載している。図面において、文脈が別の態様を示していなければ、同様の記号は典型的には同様のコンポーネントを識別する。詳細な説明、図面および請求の範囲に記載される例示的な実施形態は、限定を意図していない。本明細書に提示される主題の精神または範囲から逸脱することがなければ、他の実施形態が利用され得、他の変更が行われ得る。本開示の局面は、本明細書において一般的に記載されるとともに図に示されるように、多種多様な異なる構成で配置、置換、組み合わせ、分離、および設計され得、そのすべては本明細書において明示的に企図されることが容易に理解されるであろう。
【０１６７】
図面におけるラダー図、シナリオおよびフローチャートのいずれかまたはすべてに関して、本明細書において論じられるように、各ブロックおよび／または通信は、例示的な実施形態に従った情報の処理および／または情報の送信を表し得る。代替的な実施形態は、これらの例示的な実施形態の範囲内に含まれる。これらの代替的な実施形態では、たとえば、ブロック、送信、通信、要求、応答、および／またはメッセージとして記載される機能は、関係する機能に依存して、図示または論じられた順序とは異なる順序で実行され得る、当該順序は、実質的に同時または逆の順序を含む。さらに、より多いまたはより少ないブロックおよび／または機能が、本明細書において論じられるラダー図、シナリオ、およびフローチャートのいずれかとともに使用されてもよく、これらのラダー図、シナリオ、およびフローチャートは、部分的または全体的に、互いに組み合わせられてもよい。
【０１６８】
情報の処理を表すブロックは、本明細書において記載される方法または技術の特定の論理機能を実行するように構成され得る回路に対応し得る。代替的または付加的には、情報の処理を表すブロックは、（関連するデータを含む）プログラムコードのモジュール、セグメント、または部分に対応し得る。プログラムコードは、当該方法または技術において特定の論理機能またはアクションを実現するためにプロセッサによって実行可能な１つ以上の命令を含み得る。プログラムコードおよび／または関連するデータは、ディスクもしくはハードドライブを含むストレージデバイスまたは他の記憶媒体のような任意のタイプのコンピュータ読取可能媒体に格納され得る。
【０１６９】
コンピュータ読取可能媒体はさらに、レジスタメモリ、プロセッサキャッシュ、およびランダムアクセスメモリ（ＲＡＭ: random access memory）のような、短期間の間、データを格納する一時的でないコンピュータ読取可能媒体のような一時的でないコンピュータ読取可能媒体を含み得る。コンピュータ読取可能媒体はさらに、たとえば、リードオンリメモリ（ＲＯＭ: read only memory）、光学または磁気ディスク、コンパクトディスクリードオンリメモリ（ＣＤ−ＲＯＭ: compact-disc read only memory）のような二次的または永続的長期ストレージといった、より長期間、プログラムコードおよび／またはデータを格納する一時的でないコンピュータ読取可能媒体を含み得る。コンピュータ読取可能媒体は、任意の他の揮発性または不揮発性ストレージシステムであってもよい。コンピュータ読取可能媒体は、たとえば、コンピュータ読取可能記憶媒体または有形のストレージデバイスと考えられ得る。
【０１７０】
さらに、１つ以上の情報伝送を表すブロックは、同じ物理デバイス内のソフトウェアモジュールおよび／またはハードウェアモジュール間の情報伝送に対応し得る。しかしながら、他の情報伝送は、異なる物理デバイスにおけるソフトウェアモジュールおよび／またはハードウェアモジュール間で行われ得る。
【０１７１】
上で参照したアプローチの変形例は、当業者には明らかであろう。たとえば、上記の記載は、画像における顔の歪みに対する補正の特定の開示を提供するが、当該アプローチは、他の対象領域または対象物にも適用されてもよい。したがって、上記開示において、（たとえば、「顔領域（facial region）」または「顔変換（facial transformation）」というフレーズにおける）形容詞「顔（facial）」が言及される場合、当業者は、そのような形容詞が必要とされない代替的なアプローチが採用され得ることを理解するであろう。同様に、「顔関連コスト」、「顔関連変換」または他の「顔関連」特徴への言及は、代替的な実現例では、「対象物関連」または「領域関連」としてより一般的に考えられ得る。
【０１７２】
さまざまな局面および実施形態が本明細書に開示されているが、他の局面および実施形態が当業者には明白であろう。本明細書に開示されるさまざまな局面および実施形態は、説明目的のために提供されるものであり、限定することを意図するものではなく、真の範囲は、添付の請求の範囲によって示される。
【図１】
2021523455.tif 000003
【図２】
2021523455.tif 000004
【図３】
2021523455.tif 000005
【図４】
2021523455.tif 000006
【図５】
2021523455.tif 000007
【図６】
2021523455.tif 000008
【図７】
2021523455.tif 000009
【図８】
2021523455.tif 000010
【図９】
2021523455.tif 000011
【図１０】
2021523455.tif 000012
【図１１】
2021523455.tif 000013
【図１２】
2021523455.tif 000014
【図１３】
2021523455.tif 000015
【図１４】
2021523455.tif 000016
【図１５】
2021523455.tif 000017
【図１６】
2021523455.tif 000018
【図１７】
2021523455.tif 000019
【図１８】
2021523455.tif 000020
【図１９】
2021523455.tif 000021
【手続補正書】
【提出日】令和3年2月18日(2021.2.18)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
コンピュータによって実現される方法であって、
画像における第１の対象領域に対応する第１の画像エリアを決定することと、
前記画像についてのワーピングメッシュを決定することと、
前記第１の画像エリアに関連付けられる前記ワーピングメッシュの第１の部分を決定することと、
前記ワーピングメッシュについてのコスト関数を決定することとを含み、
前記ワーピングメッシュについてのコスト関数を決定することは、
前記ワーピングメッシュの前記第１の部分に関連付けられる第１のコストであって、前記画像において表されるような前記第１の対象領域の１つ以上の幾何学的歪みを補正するよう、少なくとも前記第１の画像エリアの１つ以上の顔関連変換に関連付けられるコストを含む第１のコストを決定することと、
前記ワーピングメッシュに関連付けられる第２のコストであって、少なくとも前記１つ以上の顔関連変換によって修正される前記画像のエッジの直線性を保存するための１つ以上のエッジ関連変換のコストを含む第２のコストを決定することと
によって行われ、
前記コンピュータによって実現される方法はさらに、
前記ワーピングメッシュについての前記コスト関数の最適化に基づいて、最適化メッシュを決定することと、
前記最適化メッシュに基づいて、前記画像の前記第１の画像エリアを修正することと
を含む、コンピュータによって実現される方法。
【請求項２】
前記第１の対象領域は、第１の人間の顔を表す、請求項１に記載のコンピュータによって実現される方法。
【請求項３】
前記画像における第２の対象領域の位置に対応し、前記第１の画像エリアとは異なる第２の画像エリアを決定することと、
前記第２の画像エリアに関連付けられる前記ワーピングメッシュの第２の部分を決定することと
をさらに含む、請求項１または２のいずれか１項に記載のコンピュータによって実現される方法。
【請求項４】
前記ワーピングメッシュについての前記コスト関数を決定することは、前記ワーピングメッシュの前記第２の部分に関連付けられる付加的な第１のコストを決定することをさらに含み、前記付加的な第１のコストは、前記第２の対象領域の１つ以上の幾何学的歪みを補正するよう、少なくとも前記第２の画像エリアの１つ以上の顔関連変換に関連付けられるコストを含む、請求項３に記載のコンピュータによって実現される方法。
【請求項５】
前記画像についての前記ワーピングメッシュを決定することは、
前記第１の画像エリアがしきい値画像エリアよりも大きい面積を有するか否かを決定することと、
前記第１の画像エリアがしきい値画像エリアより大きい面積を有すると決定した後、前記ワーピングメッシュを決定することと
を含む、請求項１〜４のいずれか１項に記載のコンピュータによって実現される方法。
【請求項６】
前記ワーピングメッシュは、複数の頂点を含み、
前記ワーピングメッシュに関連付けられる前記第２のコストを決定することは、
前記画像のエッジに関連付けられる前記ワーピングメッシュの各頂点について頂点毎のエッジコストを割り当てることと、
前記ワーピングメッシュの境界に関連付けられる前記ワーピングメッシュの各頂点について境界コストを割り当てることと
を含む、請求項１〜５のいずれか１項に記載のコンピュータによって実現される方法。
【請求項７】
前記画像のエッジに関連付けられる前記ワーピングメッシュの各頂点について前記頂点毎のエッジコストを割り当てることは、
前記ワーピングメッシュの少なくとも第１のエッジ頂点に関連付けられる前記画像の第１のエッジについて第１のエッジ正則化項を決定することと、
前記画像の前記第１のエッジについて第１のエッジ曲げ項を決定することと、
前記第１のエッジ正則化項および前記第１のエッジ曲げ項に基づいて、前記第１のエッジ頂点について前記頂点毎のエッジコストを決定することと
を含む、請求項６に記載のコンピュータによって実現される方法。
【請求項８】
前記ワーピングメッシュの境界に関連付けられる前記ワーピングメッシュの各頂点について前記境界コストを割り当てることは、
前記ワーピングメッシュの第１の境界頂点についての境界コスト値を決定することを含み、前記第１の境界頂点は、前記ワーピングメッシュの第１の境界に関連付けられており、前記境界コスト値は、前記第１の境界頂点と前記ワーピングメッシュの境目との間の距離に基づく、請求項６または請求項７に記載のコンピュータによって実現される方法。
【請求項９】
前記最適化メッシュに基づいて、前記画像の前記第１の画像エリアを修正することは、
前記最適化メッシュのサンプリングを計算することと、
前記最適化メッシュの前記サンプリングに基づいて、少なくとも前記画像の前記第１の画像エリアを修正することと
を含む、請求項１〜８のいずれか１項に記載のコンピュータによって実現される方法。
【請求項１０】
前記画像における前記第１の対象領域に対応する前記第１の画像エリアを決定することは、カメラから前記画像を取得することを含む、請求項１〜９のいずれか１項に記載のコンピュータによって実現される方法。
【請求項１１】
前記第１の対象領域は、第１の顔を表し、
前記第１の画像エリアを決定することは、
前記第１の顔について第１の顔ボックスを決定することと、
前記第１の顔ボックスが、前記第１の顔を表す前記画像のすべてのピクセルを囲むかどうかを決定することと、
前記第１の顔ボックスが、前記第１の顔を表す前記画像のすべてのピクセルを囲むと決定した後、前記第１の顔ボックスを前記第１の画像エリアとして使用することと、
を含む、請求項１〜１０のいずれか１項に記載のコンピュータによって実現される方法。
【請求項１２】
前記第１の画像エリアを決定することは、
第３の対象領域について第２の顔ボックスを決定することと、
前記第２の顔ボックスが、前記第３の対象領域において第３の顔を表す前記画像のすべてのピクセルを囲まないかどうかを決定することと、
前記第２の顔ボックスが、前記第３の顔を表す前記画像のすべてのピクセルを囲まないことを決定した後、
前記第３の顔を表す前記画像のすべてのピクセルを含むように前記第２の顔ボックスを拡張することと、
拡張された前記第２の顔ボックスを、前記第３の顔に対応する画像エリアとして使用することと、
を含む、請求項１〜１１のいずれか１項に記載のコンピュータによって実現される方法。
【請求項１３】
前記ワーピングメッシュの前記第１の部分に関連付けられる前記第１のコストを決定することは、
第１の変換を使用して前記第１の画像エリアを第１の空間にマッピングすることと、
第２の変換を使用して前記第１の画像エリアを第２の空間にマッピングすることと、
前記第１の画像エリアについて、前記第２の空間の面積に対する前記第１の空間の面積の比に基づく第１のアスペクト比を決定することと、
前記第１のアスペクト比に基づいて、前記ワーピングメッシュの前記第１の部分に関連付けられる前記第１のコストを決定することと
を含む、請求項１〜１２のいずれか１項に記載のコンピュータによって実現される方法。
【請求項１４】
前記第１の変換は透視変換を含み、前記第２の変換はステレオ変換を含む、請求項１３に記載のコンピュータによって実現される方法。
【請求項１５】
前記ワーピングメッシュは、複数の頂点を含み、
前記ワーピングメッシュの前記第１の部分に関連付けられる前記第１のコストを決定することは、
前記ワーピングメッシュの前記第１の部分における第１の頂点の第１のコストを、前記第１の頂点での前記第１の変換に関連付けられる第１の変換値と、前記第１の頂点での前記第１の変換に関連付けられる第２の変換値との補間に関連付けられる値に初期化することを含む、請求項１３または請求項１４に記載のコンピュータによって実現される方法。
【請求項１６】
少なくとも前記第１の画像エリアの前記１つ以上の顔関連変換は、前記第１の画像エリアの回転、前記第１の画像エリアの平行移動、および／または、前記第１の画像エリアのスケーリングを含み、
前記画像について前記ワーピングメッシュを決定することは、
前記画像について、第３の複数の頂点を含む第３のメッシュを決定することと、
前記第３のメッシュに基づいて前記ワーピングメッシュを決定することと
を含み、
前記第３のメッシュに基づいて前記ワーピングメッシュを決定することは、少なくとも、
前記第３のメッシュの１つ以上の辺を決定することと、
前記第３のメッシュの前記１つ以上の辺の各辺について、
所定の数の付加的な頂点を前記第３のメッシュの前記辺に加えることと、
前記所定の数の付加的な頂点を前記第３のメッシュの前記辺に加えた後、前記第３のメッシュの前記辺に関連付けられ前記第３のメッシュの境界頂点に関連付けられる前記第３のメッシュの境界を決定することと、
前記第３のメッシュの前記境界頂点の次元を前記画像の境界に垂直になるように決定することと
によって行われる、請求項１〜１５のいずれか１項に記載のコンピュータによって実現される方法。
【請求項１７】
前記コスト関数の前記最適化は、前記コスト関数の最小化を含み、
前記コスト関数の前記最適化に基づいて、前記最適化メッシュを決定することは、
前記ワーピングメッシュに適用される前記コスト関数の前記最小化を実行することによって前記最適化メッシュを決定することと、
前記最適化メッシュの左の境目の頂点のコストのうちの最大のものとして、左部最大コストを決定することと、
前記最適化メッシュの右の境目の頂点のコストのうちの最小のものの右部最小コストを決定することと、
前記最適化メッシュの上部境目の頂点のコストのうちの最大のものとして上部最大コストを決定することと、
前記最適化メッシュの底部境目の頂点のコストのうちの最小のものの底部最小コストを決定することと、
前記左部最大コスト、前記右部最小コスト、前記上部最大コストおよび前記底部最小コストに基づいて、前記最適化メッシュを修正することと
を含む、請求項１〜１６のいずれか１項に記載のコンピュータによって実現される方法。
【請求項１８】
前記左部最大コスト、前記右部最小コスト、前記上部最大コストおよび前記底部最小コストに基づいて、前記最適化メッシュを修正することは、
前記画像の幅と、前記右部最小コストと前記左部最大コストとの間の差とに基づいて、前記画像についての幅スケールを決定することと、
前記画像の高さと、前記底部最小コストと前記上部最大コストとの間の差とに基づいて、前記画像についての高さスケールを決定することと、
前記幅スケールおよび前記高さスケールに基づいて、前記最適化メッシュの数学的スケーリングを実行することと
を含む、請求項１７に記載のコンピュータによって実現される方法。
【請求項１９】
前記画像は、複数のピクセルを含み、
前記最適化メッシュに基づいて、前記画像の前記第１の画像エリアを修正することは、
前記最適化メッシュをサンプリングすることによって、複数のサンプリングされた頂点を含むサンプリングされたメッシュを決定することと、
前記複数のピクセルのうちの特定のピクセルについて、前記特定のピクセルを修正することとを含み、
前記特定のピクセルを修正することは、少なくとも、
前記特定のピクセルに近接する複数のサンプリングされた頂点の１つ以上の近接頂点を決定することと、
前記１つ以上の近接頂点に基づいて、前記複数のピクセルのうちの再サンプリングされたピクセルについての座標を決定することと、
前記再サンプリングされたピクセルについての前記座標に基づいて、前記複数のピクセルのうちの１つ以上のピクセルをサンプリングすることによって、前記再サンプリングされたピクセルについてのピクセル値を決定することと、
前記再サンプリングされたピクセルについての前記ピクセル値に基づいて、前記特定のピクセルを修正することと
によって行われる、請求項１〜１８のいずれか１項に記載のコンピュータによって実現される方法。
【請求項２０】
コンピューティングデバイスであって、
１つ以上のプロセッサと、
コンピュータ読取可能命令が格納されている１つ以上のコンピュータ読取可能媒体とを含み、前記コンピュータ読取可能命令は、前記１つ以上のプロセッサによって実行されると、前記コンピューティングデバイスに、請求項１〜１９のいずれか１項に記載のコンピュータによって実現される方法を含む機能を実行させる、コンピューティングデバイス。
【請求項２１】
請求項１〜１９のいずれか１項に記載のコンピュータによって実現される方法を実行するための手段を含む、コンピューティングデバイス。
【請求項２２】
請求項１〜１９のいずれか１項に記載の方法をコンピュータに実行させる、プログラム。
【国際調査報告】
2021523455.tif 000022
2021523455.tif 000023
2021523455.tif 000024