以下に、図面を参照しながら本開示の様々な例示的な実施例、特徴および方面を詳細に説明する。図面における同じ符号は同じまたは類似する機能の要素を示す。図面において実施例の様々な方面を示したが、特に断らない限り、比例に従って図面を描く必要がない。
ここでの用語「例示的」とは、「例、実施例として用いられることまたは説明的なもの」を意味する。ここで「例示的」に説明されるいかなる実施例は他の実施例より好ましいまたは優れるものであると理解すべきではない。
本明細書における用語「及び/又は」は、単に関連対象との関連関係を記述するものであり、3つの関係が存在可能であることを示し、例えば、A及び/又はBは、Aのみが存在し、AとBの両方が存在し、Bのみが存在するという3つの場合を示してもよい。また、本明細書における用語「少なくとも1つ」は複数のうちのいずれか1つ、又は複数のうちの少なくとも2つの任意の組み合わせを示し、例えば、A、B、Cのうちの少なくとも1つを含むことは、A、B及びCからなる集合から選択されたいずれか1つ又は複数の要素を含むことを示してもよい。
また、本開示をより効果的に説明するために、以下の具体的な実施形態において様々な具体的な詳細を示す。当業者であれば、本開示は何らかの具体的な詳細がなくても同様に実施できると理解すべきである。いくつかの実施例では、本開示の趣旨を強調するために、当業者が熟知している方法、手段、要素および回路について詳細な説明を行わない。
図1は、本開示の実施例に係るキーポイント検出方法のフローチャートを示し、図1に示すように、前記方法は、1つ又は複数の領域を含む被処理画像の複数の画素の位置する領域、及び複数の画素の、その位置する領域のキーポイントを指す第1方向ベクトルを決定するステップS11と、前記画素の位置する領域及び前記領域中の複数の画素の第1方向ベクトルに基づいて、前記領域中のキーポイントの位置を決定するステップS12とを含む。
本開示の実施例のキーポイント検出方法によれば、複数の画素の位置する領域、及び複数の画素の、その位置する領域のキーポイントを指す第1方向ベクトルを得、第1方向ベクトルに基づいて領域中のキーポイントの位置を決定することによって、目標領域が遮られること又は画像の撮影範囲を出ることによる影響が避けられ、キーポイント検出のロバスト性が向上し、検出の正確率が上がる。
可能な一実現形態では、ステップS11で、ニューラルネットワークを利用して被処理画像の複数の画素の位置する領域及び位置する領域のキーポイントを指す第1方向ベクトルを取得するようにしてもよい。前記ニューラルネットワークは畳み込みニューラルネットワークであってよもよく、本開示ではニューラルネットワークのタイプが限定されない。例示的に、1つ又は複数の目標対象物を含む被処理画像を前記ニューラルネットワークに入力し処理して、被処理画像の複数の画素の位置する領域に関連するパラメータ、及び複数の画素の、複数の画素の位置する領域のキーポイントを指す第1方向ベクトルを得るようにしてもよい。又は、他の方法を用いて被処理画像の複数の画素の位置する領域を取得してもよく、例えば、セマンティックセグメンテーション等の方法によって被処理画像中の少なくとも1つの領域を得る。本開示では被処理画像の複数の画素の位置する領域を得る方式が限定されない。
例示的に、被処理画像にA及びBの2つの目標対象物がある場合に、被処理画像は3つの領域、即ち、目標対象物Aの位置する領域A、目標対象物Bの位置する領域B及び背景領域Cに分けて、領域の任意のパラメータを用いて画素の位置する領域を示すことができる。例えば、座標(10、20)の画素が領域Aに位置し、当該画素を(10、20、A)と示し、座標(50、80)の画素が背景領域に位置し、当該画素を(50、80、C)と示すようにしてもよい。
もう一例として、画素の位置する領域を画素がある領域に位置する確率で示し、例えば、画素はA領域に属する確率が60%であり、B領域に属する確率が10%であり、D領域に属する確率が15%であり、背景領域に属する確率が15%である場合に、当該画素がA領域に属すると決定するようにしてもよい。又は、画素の位置する領域を数値の区間で示し、例えば、ニューラルネットワークからある画素の位置する領域を示すパラメータxを出力し、0≦x<25である場合に、当該画素がA領域に属し、25≦x<50である場合に、当該画素がB領域に属し、50≦x<75である場合に、当該画素がD領域に属し、75≦x≦100である場合に、当該画素が背景領域に属するようにしてもよい。本開示では画素の位置する領域を示すパラメータが限定されない。例示的に、複数の領域は1つの目標対象物の複数の領域であってもよく、例えば、目標対象物は人間の顔であり、領域Aは額の領域で、Bは頬の領域であるなどようにしてもよい。本開示では領域が限定されない。
例示的に、前記ニューラルネットワークは、画素から当該画素の位置する領域のキーポイントを指す方向ベクトルをさらに取得するようにしてもよい。例えば、前記方向ベクトルは単位ベクトルであってもよく、次の式(1)によって決定されることができる。
ここで、vk(p)は前記第1方向ベクトルであり、pはk(kは正の整数)番目の領域中の任意の1つの画素であり、xkはpの位置するk番目の領域のキーポイントであり、‖xk−p‖2はベクトルxk−pのノルムであり、即ち、前記第1方向ベクトルvk(p)は単位ベクトルである。
例示的に、画素の位置する領域及び第1方向ベクトルを前記画素の座標に添えて示してもよく、例えば、(10、20、A、0.707、0.707)の場合、(10、20)は画素の座標であり、Aは画素の位置する領域がA領域であることを示し、(0.707、0.707)は前記画素のA領域のキーポイントを指す第1方向ベクトルである。
可能な一実現形態では、ステップS11は、処理画像に対して特徴抽出処理を行って、予め設定された解像度の第1特徴マップを得ることと、前記第1特徴マップに対してアップサンプリング処理を行って、被処理画像と解像度が同じの第2特徴マップを得ることと、前記第2特徴マップに対して第1畳み込み処理を行って、複数の画素の位置する領域、及び複数の画素の、その位置する領域のキーポイントを指す第1方向ベクトルを決定することとを含む。
可能な一実現形態では、ニューラルネットワークによって被処理画像の複数の画素の位置する領域、及び複数の画素の、その位置する領域のキーポイントを指す第1方向ベクトルを決定するようにしてもよい。前記ニューラルネットワークは、少なくともダウンサンプリングサブネットワーク、アップサンプリングサブネットワーク、及び特徴決定サブネットワークを含む。
可能な一実現形態では、被処理画像に対して特徴抽出処理を行って、予め設定された解像度の第1特徴マップを得ることは、被処理画像に対して第2畳み込み処理を行って、予め設定された解像度の第3特徴マップを得ることと、前記第3特徴マップに対して拡張畳み込み処理を行って、前記第1特徴マップを得ることとを含む。
可能な一実現形態では、前記ダウンサンプリングサブネットワークによって被処理画像に対してダウンサンプリング処理を行うようにしてもよい。前記ダウンサンプリングサブネットワークは第2畳み込み層と、拡張畳み込み層とを含み、ダウンサンプリングサブネットワークの第2畳み込み層は被処理画像に対して第2畳み込み処理を行うようにしてもよい。前記第2畳み込み層はプーリング層をさらに含み、被処理画像に対してプーリング等の処理を行うようにしてもよい。第2畳み込み層による処理後、予め設定された解像度の第3特徴マップが得られる。例示的に、前記第3特徴マップは予め設定された解像度の特徴マップであり、例えば、被処理画像の解像度はH×W(H及びWは正の整数)であり、予め設定された解像度はH/8×W/8であり、本開示では予め設定された解像度が限定されない。
可能な一実現形態では、予め設定された解像度の第3特徴マップを得た後、処理精度が下がらないように、プーリング等のダウンサンプリング処理を行わず、拡張畳み込み層を利用して特徴抽出処理を行うようにしてもよい。予め設定された解像度の第3特徴マップを前記拡張畳み込み層に入力して拡張畳み込み処理を行って、前記第1特徴マップを得るようにしてもよい。前記拡張畳み込み層により、解像度が下がることなく第3特徴マップ対する受容野が拡大され、処理精度が上がる。
例示的に、インターバルサンプリング等の方式で被処理画像に対してダウンサンプリングを行って、予め設定された解像度の第1特徴マップを得るようにしてもよく、本開示では予め設定された解像度の第1特徴マップを得る方式が限定されない。
このような方式で予め設定された解像度の第3特徴マップを得ることによって、処理精度への影響が小さく、拡張畳み込み処理により受容野を拡大させることによって、処理精度を損なうことなく、特徴抽出工程の処理精度を向上することができる。
可能な一実現形態では、前記アップサンプリングサブネットワークによって第1特徴マップに対してアップサンプリング処理を行い、即ち、第1特徴マップを前記アップサンプリングサブネットワークに入力してアップサンプリング処理を行って、被処理画像と解像度が同じの第2特徴マップを得るようにしてもよい(例えば、第2特徴マップの解像度はH×Wである)。例示的に、アップサンプリングサブネットワークは逆畳み込み層を含み、逆畳み込み処理によって第1特徴マップのアップサンプリングを行うようにしてもよい。例示的に、補間等の処理によって第1特徴マップのアップサンプリングを行ってもよく、本開示ではアップサンプリング処理の方式が限定されない。
可能な一実現形態では、特徴決定サブネットワークによって第2特徴マップに対して第1畳み込み処理を行い、例示的に、前記特徴決定サブネットワークは第1畳み込み層を含み、前記第1畳み込み層によって前記第2特徴マップに対して第1畳み込み処理を行って、複数の画素の位置する領域、及び複数の画素の、その位置する領域のキーポイントを指す第1方向ベクトルを決定するようにしてもよい。
可能な一実現形態では、第2特徴マップは被処理画像と解像度が同じであり、全結合処理を行わなくてもよく、即ち、特徴決定サブネットワークは全結合層を含まなくてもよい。前記特徴決定サブネットワークは1つ又は複数の1×1畳み込みカーネルを有する第1畳み込み層を含み、第1畳み込み層によって第2特徴マップに対して第1畳み込み処理を行って、第2特徴マップの複数の画素の位置する領域及びキーポイントを指す第1方向ベクトルを得るようにしてもよい。第2特徴マップは被処理画像と解像度が同じであるため、第2特徴マップの複数の画素の位置する領域、及び複数の画素の、その位置する領域のキーポイントを指す第1方向ベクトルを、被処理画像の複数の画素の位置する領域、及び複数の画素の、その位置する領域のキーポイントを指す第1方向ベクトルとして決定するようにしてもよい。例えば、第2特徴マップ中の座標(10、20)の画素に対して特徴決定サブネットワークによって処理して得らた出力である(10、20、A、0.707、0.707)は、座標(10、20)の画素の位置する領域がA領域であり、当該画素のA領域のキーポイントを指す第1方向ベクトルが(0.707、0.707)であることを表す。当該出力で、被処理画像における座標(10、20)の画素の位置する領域及び当該画素のその位置する領域のキーポイントを指す第1方向ベクトルを表すことができ、即ち、被処理画像中の座標(10、20)の画素の位置する領域がA領域であり、当該画素のA領域のキーポイントを指す第1方向ベクトルが(0.707、0.707)である。
このような方式で、被処理画像と解像度が同じの第2特徴マップを得た後、第2特徴マップに対して畳み込み処理を行うことによって、処理量を減少し、処理効率を向上することができる。
可能な一実現形態では、ステップS12で、前記画素の位置する領域及び複数の領域中の複数の画素の第1方向ベクトルに基づいて、複数の領域中のキーポイントの位置、即ち、複数の領域中のキーポイント座標を決定するようにしてもよい。ステップS12は、前記画素の位置する領域及び前記第1方向ベクトルに基づいて、前記1つ又は複数の領域の任意の1つである目標領域中のキーポイントの推定座標及びキーポイントの推定座標の重み値を決定することと、前記キーポイントの推定座標の重み値に基づいて、目標領域中のキーポイントの推定座標に対して加重平均処理を行って、目標領域中のキーポイントの位置を得ることとを含むようにしてもよい。
例示的に、第1方向ベクトルの指す方位に基づいてキーポイントの位置を決定してもよく、本開示ではキーポイント位置の決定方式が限定されない。
可能な一実現形態では、前記画素の位置する領域及び前記第1方向ベクトルに基づいて、目標領域中のキーポイントの推定座標及びキーポイントの推定座標の重み値を決定することは、前記画素の位置する領域に基づいて、被処理画像の複数の画素をスクリーニングして、前記目標領域に属する複数の目標画素を決定することと、任意の2つの目標画素の第1方向ベクトルの交点の座標をキーポイントの推定座標の1つとして決定することと、キーポイントの推定座標及び前記目標領域中の画素に基づいて、前記キーポイントの推定座標の重み値を決定することとを含むようにしてもよい。
可能な一実現形態では、目標領域の全ての画素を前記目標画素として選出してもよい。例えば、複数の画素の位置する領域に関する前記ニューラルネットワークの出力に基づいて、目標領域の全ての画素を選出するようにしてもよい。例示的に、目標領域は領域Aであり、被処理画像の全ての画素から、ニューラルネットワークの出力が領域Aである画素を全て選出し、これらの画素からなる領域は領域Aである。本開示では目標領域が限定されない。
可能な一実現形態では、目標領域(例えば、領域A)の、前記第1方向ベクトルを有し、且つ第1方向ベクトルが目標領域のキーポイントを指す任意の2つの目標画素を選択し、2つの第1方向ベクトルの交点を決定し、当該交点をキーポイントの推定位置、即ち、キーポイントの推定座標とするようにしてもよい。例示的に、各目標画素の第1方向ベクトルに誤差が含まれ得るため、キーポイントの推定座標は一意のものではなく、即ち、2つの目標画素の第1方向ベクトルの交点に基づいて決定されるキーポイントの推定座標と別の2つ目標画素の第1方向ベクトルの交点に基づいて決定されるキーポイントの推定座標は異なり得る。このような方式で、任意の2つの目標画素の第1方向ベクトルの交点を複数回得ることによって、キーポイントの推定座標を得るようにしてもよい。
可能な一実現形態では、キーポイントの推定座標の重み値を決定するようにしてもよい。キーポイントの推定座標及び前記目標領域中の画素に基づいて、前記キーポイントの推定座標の重み値を決定することは、前記キーポイントの推定座標及び目標領域中の複数の画素の座標に基づいて、前記目標領域中の複数の画素のキーポイントの推定座標を指す第2方向ベクトルをそれぞれ決定することと、前記目標領域中の複数の画素の第2方向ベクトルと第1方向ベクトルの内積を決定することと、前記目標領域中の複数の画素のうち、内積が所定の閾値以上となる画素の目標数量を決定することと、前記目標数量に基づいて、前記キーポイントの推定座標の重み値を決定することとを含む。
可能な一実現形態では、キーポイントの推定座標に対し、当該キーポイントの推定座標の重み値を決定するようにしてもよい。キーポイントの推定座標の位置する領域の複数の画素の、当該キーポイントの推定座標を指す第2方向ベクトルを取得する。前記第2方向ベクトルは単位ベクトルであってもよい。目標領域中の複数の目標画素の当該キーポイントの推定座標を指す第2方向ベクトルと、複数の目標画素の目標領域中のキーポイントを指す第1方向ベクトルを利用して、キーポイントの推定座標の重み値を決定するようにしてもよい。
可能な一実現形態では、前記目標領域中の複数の画素の第2方向ベクトル及び第1方向ベクトルに基づいて、当該キーポイントの推定座標の重み値を決定するようにしてもよい。目標領域中の複数の画素の第2方向ベクトルと第1方向ベクトルの内積を決定し、複数の画素に対応する内積と所定の閾値を比較し、内積が所定の閾値より大きい画素の目標数量を決定してもよい。例えば、画素の内積が所定の閾値より大きい場合に1とマークし、そうでない場合に0とマークし、目標領域中の全ての画素に対してマークした後、全ての画素のマークを加算して目標数量を決定する。
可能な一実現形態では、前記目標数量に基づいて、当該キーポイントの推定座標の重み値を決定してもよい。例示的に、次の式(2)によって当該キーポイントの推定座標の重み値を決定するようにしてもよい。
ここで、w
k,iはk番目の領域(例えば、領域A)中のi番目のキーポイント(例えば、当該キーポイント)推定座標の重み値であり、Oは当該領域中の全ての画素であり、p’は当該領域中の任意の1つの画素であり、h
k,iは当該領域中のi番目のキーポイントの推定座標であり、
はp’のh
k,iを指す第2方向ベクトルであり、v
k(p’)はp’の第1方向ベクトルであり、θは所定の閾値であり、例示的に、θの値は0.99である。本開示では所定の閾値が限定されない。IIは活性化関数であり、
とv
k(p’)の内積が所定の閾値θ以上である場合に、IIの値は1であり(即ち、1とマークする)、そうでない場合に、IIの値は0である(即ち、0とマークする)。式(2)は目標領域中の全ての画素の活性化関数の値(即ち、マーク)を加算して得る結果、即ちキーポイントの推定座標h
k,iの重み値を表すことができる。本開示では内積が所定の閾値以上である場合の活性化関数の値が限定されない。
可能な一実現形態では、キーポイントの推定座標及びキーポイントの推定座標の重み値を決定する上記の処理を繰り返し実行することにより、目標領域内の複数のキーポイントの推定座標及びキーポイントの推定座標の重み値を得るようにしてもよい。
可能な一実現形態では、前記キーポイントの推定座標の重み値に基づいて、目標領域中のキーポイントの推定座標に対して加重平均処理を行って、目標領域中のキーポイントの位置を得るようにしてもよい。例示的に、次の式(3)によって目標領域中のキーポイントの位置を決定するようにしてもよい。
ここで、μkはk番目の領域(例えば、領域A)中のN(Nは正の整数)個のキーポイントの推定座標に対して加重平均処理を行って得られた座標、即ち、k番目の領域中のキーポイントの位置座標である。
可能な一実現形態では、最尤推定法によって、キーポイントに対応する共分散行列、即ち、目標領域中のキーポイントの推定座標とキーポイントの位置座標との共分散行列に対して加重平均処理を行って得られた行列を決定してもよい。例示的に、次の式(4)でキーポイントに対応する共分散行列Σ
kを示すようにしてもよい。
可能な一実現形態では、キーポイントの位置座標及びキーポイントに対応する共分散行列は、目標領域中におけるキーポイントが存在し得る位置の確率分布を示すために用いられることができる。
可能な一実現形態では、目標領域のキーポイントの位置を得る上記の処理を繰り返し実行することによって、被処理画像の複数の領域中のキーポイントの位置を得るようにしてもよい。
このような方式で目標領域中のキーポイントの推定座標を検出し、各目標領域に対してキーポイントの推定座標を決定することによって、異なる領域間の相互の影響が低減され、キーポイント検出の正確率が上がる。さらに、第2方向ベクトルに基づいてキーポイントの推定座標を決定し、第1方向ベクトルと第2方向ベクトルの内積に基づいてキーポイントの推定座標の重み値を決定し、キーポイントの推定座標に対して加重平均処理を行ってキーポイントの位置を得ることによって、キーポイントの位置の確率分布を得て、キーポイントの位置決定の精度を向上することができる。
可能な一実現形態では、ニューラルネットワークを利用して複数の画素の位置する領域及びキーポイントを指す第1方向ベクトルを取得する前に、前記ニューラルネットワークをトレーニングするようにしてもよい。
図2は、本開示の実施例に係るキーポイント検出方法のフローチャートを示す。図2に示すように、前記方法は、領域ラベル及びキーポイントラベルが付けられた複数のサンプル画像によって前記ニューラルネットワークをトレーニングするステップS13をさらに含む。
なお、ステップ11及びステップ12が実行されるたびにステップ13を実行するわけではなく、ニューラルネットワークのトレーニングが完了したら、ニューラルネットワークを用いて第1サンプル方向ベクトル及び領域区分結果を決定し、即ち、ニューラルネットワークのトレーニングが完了したら、ニューラルネットワークを利用してステップ11及びステップ12の機能を何回も実現することができる。
可能な一実現形態では、任意の1つのサンプル画像をニューラルネットワークに入力し処理し、当該サンプル画像の複数の画素の第1サンプル方向ベクトル及び複数の画素の位置する領域の領域区分結果を得るようにしてもよい。第1サンプル方向ベクトル及び前記領域区分結果はニューラルネットワークの出力であり、誤差を含み得る。
可能な一実現形態では、キーポイントラベルによって、複数の領域中のキーポイントの第1方向ベクトルを決定ようにしてもよい。例えば、ある領域中のラベルが付けられたキーポイントの座標は(10,10)である場合に、座標(5,5)の画素のキーポイントを指す第1方向ベクトルは(0.707,0.707)である。
可能な一実現形態では、第1方向ベクトルと第1サンプル方向ベクトルの差異、及び領域区分結果と領域ラベルの差異に基づいて、ニューラルネットワークのネットワーク損失を決定するようにしてもよい。例示的に、第1方向ベクトルと第1サンプル方向ベクトルの差異、及び領域区分結果と領域ラベルの差異に基づいて、複数の画素のクロスエントロピー損失関数を決定し、トレーニングの過程で過剰適合が生じないように前記クロスエントロピー損失関数に対して正則化処理を行うようにしてもよい。正則化処理されたクロスエントロピー損失関数を前記ニューラルネットワークのネットワーク損失として決定するようにしてもよい。
可能な一実現形態では、前記ネットワーク損失によってニューラルネットワークのネットワークパラメータを調整してもよい。例示的に、ネットワーク損失が最小になる方向に前記ネットワークパラメータを調整し、例えば、勾配降下法に基づくネットワーク損失の逆伝播により、ニューラルネットワークのネットワークパラメータを調整するようにしてもよい。ニューラルネットワークがトレーニング条件を満たすと、トレーニング後のニューラルネットワークを得る。前記トレーニング条件は調整の回数であり、ニューラルネットワークのネットワークパラメータを所定の回数調整するようにしてもよい。もう一例として、トレーニング条件はネットワーク損失の大きさ又は収束・発散であり、ネットワーク損失が所定の程度に下がり又は所定の閾値に収束したら、調整を停止してトレーニング後のニューラルネットワークを得るようにしてもよい。トレーニング後のニューラルネットワークは、被処理画像の複数の画素の位置する領域及びキーポイントを指す第1方向ベクトルを取得する処理に使用可能である。
本開示の実施例のキーポイント検出方法によれば、ニューラルネットワークを利用して複数の画素の位置する領域を得、目標領域中のキーポイントの推定座標を検出することができる。前記ニューラルネットワークの拡張畳み込み層による受容野の拡大により、処理精度を損なうことなく、特徴抽出工程の処理精度が上がる。さらに、被処理画像と解像度が同じの第2特徴マップを得た後、第2特徴マップに対して畳み込み処理を行うことによって、処理量を減少し、処理効率を向上することができる。各目標領域に対してキーポイントの推定座標を決定することによって、異なる領域間の相互の影響が低減される。キーポイントの推定座標に対して加重平均処理を行ってキーポイントの位置を得ることによって、キーポイントの位置の確率分布を得て、キーポイントの位置決定の精度を向上することができる。さらに、目標領域が遮られること又は画像の撮影範囲を出ることによる影響が避けられ、キーポイント検出のロバスト性が向上し、検出の正確率が上がる。
図3は、本開示の実施例に係るキーポイント検出方法の適用の模式図を示す。図3に示すように、被処理画像を予めトレーニングされたニューラルネットワークに入力し処理して、被処理画像の複数の画素の位置する領域及びキーポイントを指す第1方向ベクトルを得るようにしてもよい。例示的に、ニューラルネットワークのダウンサンプリングサブネットワークによって被処理画像に対して特徴抽出処理を行って、即ち、ダウンサンプリングサブネットワークの第2畳み込み層によって第2畳み込み処理を行い、拡張畳み込み層によって拡張畳み込み処理を行って、予め設定された解像度の第1特徴マップを得るようにしてもよい。第1特徴マップに対してアップサンプリング処理を行って、被処理画像と解像度が同じの第2特徴マップを得うようにしてもよい。第2特徴マップを特徴決定サブネットワークの第1畳み込み層(1つ又は複数の1×1畳み込みカーネルを有する)に入力し第1畳み込み処理を行って、複数の画素の位置する領域及びキーポイントを指す第1方向ベクトルを得るようにしてもよい。
可能な一実現形態では、目標領域の複数の画素について、任意の2つ画素の第1方向ベクトルの交点をキーポイントの推定座標として決定するようにしてもよい。このような方式で、目標領域中のキーポイントの推定座標を決定することができる。
可能な一実現形態では、キーポイントの推定座標の重み値を決定するようにしてもよい。例示的に、目標領域中の複数の画素の、あるキーポイントの推定座標を指す第2方向ベクトルを決定し、複数の画素の第2方向ベクトルと第1方向ベクトルの内積を決定し、式(2)によって活性化関数を利用して当該キーポイントの推定座標の重み値を決定し、即ち、前記内積が所定の閾値以上である場合に活性化関数の値を1にし、そうでない場合に0にし、さらに、目標領域中の複数の画素の活性化関数の値を加算して当該キーポイントの推定座標の重み値を得るようにしてもよい。このような方式で、目標領域中のキーポイントの推定座標の重み値を決定することができる。
可能な一実現形態では、目標領域中のキーポイントの推定座標に対して加重平均処理を行って、目標領域のキーポイントの位置座標を得るようにしてもよい。このような方式で、各領域中のキーポイントの位置座標を決定することができる。
図4は、本開示の実施例に係るキーポイント検出装置のブロック図を示す。図4に示すように、前記装置は、1つ又は複数の領域を含む被処理画像の複数の画素の位置する領域、及び複数の画素の、その位置する領域のキーポイントを指す第1方向ベクトルを決定する第1決定モジュール11と、前記画素の位置する領域及び前記領域中の複数の画素の第1方向ベクトルに基づいて、前記領域中のキーポイントの位置を決定する第2決定モジュール12とを含む。
可能な一実現形態では、前記第2決定モジュールは、さらに、前記画素の位置する領域及び前記第1方向ベクトルに基づいて、前記1つ又は複数の領域の任意の1つである目標領域中のキーポイントの推定座標及びキーポイントの推定座標の重み値を決定し、前記キーポイントの推定座標の重み値に基づいて、目標領域中のキーポイントの推定座標に対して加重平均処理を行って、目標領域中のキーポイントの位置を得るように構成される。
可能な一実現形態では、前記第2決定モジュール、さらに、前記画素の位置する領域に基づいて、被処理画像の複数の画素をスクリーニングして、前記目標領域に属する複数の目標画素を決定し、任意の2つの目標画素の第1方向ベクトルの交点の座標をキーポイントの推定座標として決定し、キーポイントの推定座標及び前記目標領域中の画素に基づいて、前記キーポイントの推定座標の重み値を決定するように構成される。
可能な一実現形態では、前記第2決定モジュール、さらに、前記キーポイントの推定座標及び目標領域中の複数の画素の座標に基づいて、前記目標領域中の複数の画素のキーポイントの推定座標を指す第2方向ベクトルをそれぞれ決定し、前記目標領域中の複数の画素の第2方向ベクトルと第1方向ベクトルの内積を決定し、前記目標領域中の複数の画素のうち、内積が所定の閾値以上となる画素の目標数量を決定し、前記目標数量に基づいて、前記キーポイントの推定座標の重み値を決定するように構成される。
可能な一実現形態では、前記第1決定モジュール、さらに、被処理画像に対して特徴抽出処理を行って、予め設定された解像度の第1特徴マップを得、前記第1特徴マップに対してアップサンプリング処理を行って、被処理画像と解像度が同じの第2特徴マップを得、前記第2特徴マップに対して第1畳み込み処理を行って、複数の画素の位置する領域及びキーポイントを指す第1方向ベクトルを決定するように構成される。
可能な一実現形態では、前記第1決定モジュール、さらに、被処理画像に対して第2畳み込み処理を行って、予め設定された解像度の第3特徴マップを得、前記第3特徴マップに対して拡張畳み込み処理を行って、前記第1特徴マップを得るように構成される。
可能な一実現形態では、前記第1決定モジュール、さらに、ニューラルネットワークによって被処理画像の複数の画素の位置する領域及び複数の画素の、その位置する領域のキーポイントを指す第1方向ベクトルを決定するように構成され、前記ニューラルネットワークは領域ラベル及びキーポイントラベルが付けられた複数のサンプル画像を利用してトレーニングされる。
本開示で言及される上記各方法の実施例は、原理と論理に違反しない限り、相互に組み合わせて実施例を形成することができることが理解すべきである。紙数に限りがあるので、本開示では詳細な説明を省略する。
さらに、本開示では、キーポイント検出装置、電子機器、コンピュータ可読記憶媒体、プログラムが提供される。これらはいずれも本開示に係るキーポイント検出方法のいずれか1つを実現するために利用できる。対応する技術的解決手段と説明は、方法の対応する記載を参照すればよく、詳細な説明を省略する。
また、当業者であれば、具体的な実施形態に係る上記の方法では、各ステップの記載順序は、実行順序を厳密に限定して実施の過程を限定するものではなく、各ステップの実行順序がその機能と内部の論理によって具体的に決定されることが理解すべきである。
いくつかの実施例では、本開示の実施例に係る装置が備える機能又はモジュールは、上述した方法の実施例に説明される方法を実行するために利用でき、その具体的な実現について、上述した方法の実施例の説明を参照すればよく、簡素化のために、ここで詳細な説明を省略する。
本開示の実施例では、コンピュータプログラム命令が記憶されているコンピュータ可読記憶媒体であって、前記コンピュータプログラム命令はプロセッサによって実行されると、上記の方法を実現させるコンピュータ可読記憶媒体がさらに提供される。コンピュータ可読記憶媒体は、不揮発性のコンピュータ可読記憶媒体であってもよい。
本開示の実施例では、コンピュータ可読コードを含むコンピュータプログラム製品であって、当該コンピュータ可読コードは機器において動作すると、機器のプロセッサに上述したいずれかの実施例に係るキーポイント検出方法を実現するための命令を実行させるコンピュータプログラム製品がさらに提供される。
本開示の実施例では、コンピュータ可読命令が記憶されているコンピュータプログラム製品であって、命令は実行されると、コンピュータに上述したいずれかの実施例に係るキーポイント検出方法の動作を実行させる別のコンピュータプログラム製品がさらに提供される。
当該コンピュータプログラム製品は、ハードウェア、ソフトウェア、又はそれらの組み合わせによって具体的に実現できる。選択可能的な一実施例では、前記コンピュータプログラム製品はコンピュータ記憶媒体として具現化される。選択可能的な別の実施例では、コンピュータプログラム製品はソフトウェア製品、例えば、ソフトウェア開発キット(Software Development Kit、略称SDK)等として具現化される。
本開示の実施例では、プロセッサと、プロセッサにより実行可能な命令を記憶するメモリと、を含み、前記プロセッサは、上記の方法を実行するように構成される電子機器がさらに提供される。
電子機器は、端末、サーバ又は他の形態の機器として提供されてもよい。
図5は、例示的な一実施例の電子機器800のブロック図を示す。例えば、電子機器800は携帯電話、コンピュータ、デジタル放送端末、メッセージ送受信機器、ゲームコンソール、タブレット型機器、医療機器、フィットネス機器、パーソナル・デジタル・アシスタント等の端末であってもよい。
図5を参照すると、電子機器800は、処理コンポーネント802、メモリ804、電源コンポーネント806、マルチメディアコンポーネント808、オーディオコンポーネント810、入力/出力(I/O)のインタフェース812、センサコンポーネント814、および通信コンポーネント816のうちの一つ以上を含んでもよい。
処理コンポーネント802は通常、電子機器800の全体的な動作、例えば表示、電話の呼び出し、データ通信、カメラ動作および記録動作に関連する動作を制御する。処理コンポーネント802は、上記方法の全てまたは一部のステップを実行するために、命令を実行する一つ以上のプロセッサ820を含んでもよい。また、処理コンポーネント802は、他のコンポーネントとのインタラクションのための一つ以上のモジュールを含んでもよい。例えば、処理コンポーネント802は、マルチメディアコンポーネント808とのインタラクションのために、マルチメディアモジュールを含んでもよい。
メモリ804は電子機器800での動作をサポートするための様々なタイプのデータを記憶するように構成される。これらのデータは、例として、電子機器800において操作するあらゆるアプリケーションプログラムまたは方法の命令、連絡先データ、電話帳データ、メッセージ、ピクチャー、ビデオなどを含む。メモリ804は、例えば静的ランダムアクセスメモリ(SRAM)、電気的消去可能プログラマブル読み取り専用メモリ(EEPROM)、消去可能なプログラマブル読み取り専用メモリ(EPROM)、プログラマブル読み取り専用メモリ(PROM)、読み取り専用メモリ(ROM)、磁気メモリ、フラッシュメモリ、磁気ディスクまたは光ディスクなどの様々なタイプの揮発性または不揮発性記憶装置またはそれらの組み合わせによって実現できる。
電源コンポーネント806は電子機器800の各コンポーネントに電力を供給する。電源コンポーネント806は電源管理システム、一つ以上の電源、および電子機器800のための電力生成、管理および配分に関連する他のコンポーネントを含んでもよい。
マルチメディアコンポーネント808は前記電子機器800とユーザとの間で出力インタフェースを提供するスクリーンを含む。いくつかの実施例では、スクリーンは液晶ディスプレイ(LCD)およびタッチパネル(TP)を含んでもよい。スクリーンがタッチパネルを含む場合、ユーザからの入力信号を受信するタッチスクリーンとして実現してもよい。タッチパネルは、タッチ、スライドおよびタッチパネルでのジェスチャーを検知するように、一つ以上のタッチセンサを含む。前記タッチセンサはタッチまたはスライド動きの境界を検知するのみならず、前記タッチまたはスライド操作に関連する持続時間および圧力を検出するようにしてもよい。いくつかの実施例では、マルチメディアコンポーネント808は前面カメラおよび/または背面カメラを含む。電子機器800が動作モード、例えば撮影モードまたは撮像モードになる場合、前面カメラおよび/または背面カメラは外部のマルチメディアデータを受信するようにしてもよい。各前面カメラおよび背面カメラは、固定された光学レンズ系、または焦点距離および光学ズーム能力を有するものであってもよい。
オーディオコンポーネント810はオーディオ信号を出力および/または入力するように構成される。例えば、オーディオコンポーネント810は、一つのマイク(MIC)を含み、マイク(MIC)は、電子機器800が動作モード、例えば呼び出しモード、記録モードおよび音声認識モードになる場合、外部のオーディオ信号を受信するように構成される。受信されたオーディオ信号はさらにメモリ804に記憶されるか、または通信コンポーネント816を介して送信されてもよい。いくつかの実施例では、オーディオコンポーネント810はさらに、オーディオ信号を出力するためのスピーカーを含む。
I/Oインタフェース812は処理コンポーネント802と周辺インタフェースモジュールとの間でインタフェースを提供し、上記周辺インタフェースモジュールはキーボード、クリックホイール、ボタンなどであってもよい。これらのボタンはホームボタン、音量ボタン、スタートボタンおよびロックボタンを含んでもよいが、これらに限定されない。
センサコンポーネント814は電子機器800の各方面の状態評価のために一つ以上のセンサを含む。例えば、センサコンポーネント814は電子機器800のオン/オフ状態、例えば電子機器800の表示装置およびキーパッドのようなコンポーネントの相対的位置決めを検出でき、センサコンポーネント814はさらに、電子機器800または電子機器800のあるコンポーネントの位置の変化、ユーザと電子機器800との接触の有無、電子機器800の方位または加減速および電子機器800の温度変化を検出できる。センサコンポーネント814は、いかなる物理的接触もない場合に近傍の物体の存在を検出するように構成される近接センサを含んでもよい。センサコンポーネント814はさらに、CMOSまたはCCDイメージセンサのような、イメージングアプリケーションにおいて使用するための光センサを含んでもよい。いくつかの実施例では、該センサコンポーネント814はさらに、加速度センサ、ジャイロセンサ、磁気センサ、圧力センサまたは温度センサを含んでもよい。
通信コンポーネント816は電子機器800と他の機器との有線または無線通信を実現するように構成される。電子機器800は通信規格に基づく無線ネットワーク、例えばWiFi、2Gまたは3G、またはそれらの組み合わせにアクセスできる。一例示的実施例では、通信コンポーネント816は放送チャネルを介して外部の放送管理システムからの放送信号または放送関連情報を受信する。一例示的実施例では、前記通信コンポーネント816はさらに、近距離通信を促進させるために、近距離無線通信(NFC)モジュールを含む。例えば、NFCモジュールは、無線周波数識別(RFID)技術、赤外線データ協会(IrDA)技術、超広帯域(UWB)技術、ブルートゥース(登録商標/BT)技術および他の技術によって実現できる。
例示的な実施例では、電子機器800は一つ以上の特定用途向け集積回路(ASIC)、デジタル信号プロセッサ(DSP)、デジタルシグナルプロセッサ(DSPD)、プログラマブルロジックデバイス(PLD)、フィールドプログラマブルゲートアレイ(FPGA)、コントローラ、マイクロコントローラ、マイクロプロセッサまたは他の電子要素によって実現され、上記方法を実行するために用いられることができる。
例示的な実施例では、さらに、不揮発性コンピュータ可読記憶媒体、例えばコンピュータプログラム命令を含むメモリ804が提供され、上記コンピュータプログラム命令は、電子機器800のプロセッサ820によって実行されと、上記方法を実行させることができる。
図6は、例示的な一実施例の電子機器1900のブロック図を示す。例えば、電子機器1900はサーバとして提供されてもよい。図6を参照すると、電子機器1900は、一つ以上のプロセッサを含む処理コンポーネント1922、および、処理コンポーネント1922によって実行可能な命令例えばアプリケーションプログラムを記憶するための、メモリ1932を代表とするメモリ資源を含む。メモリ1932に記憶されているアプリケーションプログラムは、それぞれが1つの命令群に対応する一つ以上のモジュールを含んでもよい。また、処理コンポーネント1922は命令を実行することによって上記方法を実行するように構成される。
電子機器1900はさらに、電子機器1900の電源管理を実行するように構成される電源コンポーネント1926、電子機器1900をネットワークに接続するように構成される有線または無線ネットワークインタフェース1950、および入出力(I/O)インタフェース1958を含んでもよい。電子機器1900はメモリ1932に記憶されているオペレーティングシステム、例えばWindows(登録商標) ServerTM、Mac OS XTM、UnixTM、LinuxTM、FreeBSDTMまたは類似するものに基づいて動作できる。
例示的な実施例では、さらに、不揮発性コンピュータ可読記憶媒体、例えばコンピュータプログラム命令を含むメモリ1932が提供され、上記コンピュータプログラム命令は、電子機器1900の処理コンポーネント1922によって実行されと、上記方法を実行させることができる。
本開示はシステム、方法および/またはコンピュータプログラム製品であってもよい。コンピュータプログラム製品は、プロセッサに本開示の各方面を実現させるためのコンピュータ可読プログラム命令を有しているコンピュータ可読記憶媒体を含んでもよい。
コンピュータ可読記憶媒体は、命令実行機器に使用される命令を保存および記憶可能な有形装置であってもよい。コンピュータ可読記憶媒体は例えば、電気記憶装置、磁気記憶装置、光記憶装置、電磁記憶装置、半導体記憶装置、または上記の任意の適当な組み合わせであってもよいが、これらに限定されない。コンピュータ可読記憶媒体のさらに具体的な例(非網羅的リスト)としては、携帯型コンピュータディスク、ハードディスク、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、消去可能プログラマブル読み取り専用メモリ(EPROMまたはフラッシュメモリ)、静的ランダムアクセスメモリ(SRAM)、携帯型コンパクトディスク読み取り専用メモリ(CD−ROM)、デジタル多用途ディスク(DVD)、メモリスティック、フロッピーディスク、例えば命令が記憶されているせん孔カードまたはスロット内突起構造のような機械的符号化装置、および上記の任意の適当な組み合わせを含む。ここで使用されるコンピュータ可読記憶媒体は、瞬時信号自体、例えば無線電波または他の自由に伝播される電磁波、導波路または他の伝送媒体を経由して伝播される電磁波(例えば、光ファイバーケーブルを通過するパルス光)、または電線を経由して伝送される電気信号と解釈されるものではない。
ここで記述したコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体から各計算/処理機器にダウンロードされてもよいし、またはネットワーク、例えばインターネット、ローカルエリアネットワーク、広域ネットワークおよび/または無線ネットワークを介して外部のコンピュータまたは外部記憶装置にダウンロードされてもよい。ネットワークは銅伝送ケーブル、光ファイバー伝送、無線伝送、ルーター、ファイアウォール、交換機、ゲートウェイコンピュータおよび/またはエッジサーバを含んでもよい。各計算/処理機器内のネットワークアダプタカードまたはネットワークインタフェースはネットワークからコンピュータ可読プログラム命令を受信し、該コンピュータ可読プログラム命令を転送し、各計算/処理機器内のコンピュータ可読記憶媒体に記憶させる。
本開示の動作を実行するためのコンピュータプログラム命令はアセンブリ命令、命令セットアーキテクチャ(ISA)命令、機械語命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、またはSmalltalk、C++などのオブジェクト指向プログラミング言語、および「C」言語または類似するプログラミング言語などの一般的な手続き型プログラミング言語を含める一つ以上のプログラミング言語の任意の組み合わせで書かれたソースコードまたは目標コードであってもよい。コンピュータ可読プログラム命令は、完全にユーザのコンピュータにおいて実行されてもよく、部分的にユーザのコンピュータにおいて実行されてもよく、スタンドアロンソフトウェアパッケージとして実行されてもよく、部分的にユーザのコンピュータにおいてかつ部分的にリモートコンピュータにおいて実行されてもよく、または完全にリモートコンピュータもしくはサーバにおいて実行されてもよい。リモートコンピュータに関与する場合、リモートコンピュータは、ローカルエリアネットワーク(LAN)または広域ネットワーク(WAN)を含む任意の種類のネットワークを経由してユーザのコンピュータに接続されてもよく、または、(例えばインターネットサービスプロバイダを利用してインターネットを経由して)外部コンピュータに接続されてもよい。いくつかの実施例では、コンピュータ可読プログラム命令の状態情報を利用して、例えばプログラマブル論理回路、フィールドプログラマブルゲートアレイ(FPGA)またはプログラマブル論理アレイ(PLA)などの電子回路をパーソナライズし、該電子回路によりコンピュータ可読プログラム命令を実行することにより、本開示の各方面を実現するようにしてもよい。
ここで本開示の実施例に係る方法、装置(システム)およびコンピュータプログラム製品のフローチャートおよび/またはブロック図を参照しながら本開示の各態様を説明したが、フローチャートおよび/またはブロック図の各ブロックおよびフローチャートおよび/またはブロック図の各ブロックの組み合わせは、いずれもコンピュータ可読プログラム命令によって実現できることを理解すべきである。
これらのコンピュータ可読プログラム命令は、汎用コンピュータ、専用コンピュータまたは他のプログラマブルデータ処理装置のプロセッサへ提供され、これらの命令がコンピュータまたは他のプログラマブルデータ処理装置のプロセッサによって実行されると、フローチャートおよび/またはブロック図の一つ以上のブロックにおいて指定された機能/動作を実現ように、装置を製造してもよい。これらのコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体に記憶され、コンピュータ、プログラマブルデータ処理装置および/または他の機器を特定の方式で動作させるようにしてもよい。これにより、命令が記憶されているコンピュータ可読記憶媒体は、フローチャートおよび/またはブロック図の一つ以上のブロックにおいて指定された機能/動作の各方面を実現する命令を有する製品を含む。
コンピュータ可読プログラム命令は、コンピュータ、他のプログラマブルデータ処理装置、または他の機器にロードされ、コンピュータ、他のプログラマブルデータ処理装置または他の機器に一連の動作ステップを実行させることにより、コンピュータにより実施なプロセスを生成するようにしてもよい。このようにして、コンピュータ、他のプログラマブルデータ処理装置、または他の機器において実行される命令により、フローチャートおよび/またはブロック図の一つ以上のブロックにおいて指定された機能/動作を実現する。
図面のうちフローチャートおよびブロック図は、本開示の複数の実施例に係るシステム、方法およびコンピュータプログラム製品の実現可能なシステムアーキテクチャ、機能および動作を示す。この点では、フローチャートまたはブロック図における各ブロックは一つのモジュール、プログラムセグメントまたは命令の一部分を代表することができ、前記モジュール、プログラムセグメントまたは命令の一部分は指定された論理機能を実現するための一つ以上の実行可能命令を含む。いくつかの代替としての実現形態では、ブロックに表記される機能は、図面に付した順序と異なって実現してもよい。例えば、連続的な二つのブロックは実質的に並列に実行してもよく、また、係る機能によって、逆な順序で実行してもよい。なお、ブロック図および/またはフローチャートにおける各ブロック、およびブロック図および/またはフローチャートにおけるブロックの組み合わせは、指定される機能または動作を実行するハードウェアに基づく専用システムによって実現してもよいし、または専用ハードウェアとコンピュータ命令との組み合わせによって実現してもよいことにも注意すべきである。
以上、本開示の各実施例を記述したが、上記説明は例示的なものに過ぎず、網羅的なものではなく、かつ披露された各実施例に限定されるものでもない。当業者にとって、説明された各実施例の範囲および精神から逸脱することなく、様々な修正および変更が自明である。本明細書に選ばれた用語は、各実施例の原理、実際の適用または既存技術に対する改善を好適に解釈するか、または他の当業者に本文に披露された各実施例を理解させるためのものである。
本開示は、2018年12月25日に中国国家知識産権局に提出された、出願番号が201811593614.Xで、発明の名称が「キーポイント検出方法、装置、電子機器及び記憶媒体」である中国特許出願の優先権を主張し、その全ての内容は援用することによって本開示に組み込まれる。