(57)【特許請求の範囲】
【請求項１】
２つの魚眼レンズが互いに背中合わせに配置された撮像手段から、当該２つの魚眼レンズそれぞれにより撮影された２つの画像を平面座標系の第１の画像として取得する取得手段と、
前記２つの画像を、前記第１の画像の中心を回転軸にして、設定された角度だけ互いに反対方向に回転させて第２の画像として取得する回転手段と、
前記第１の画像として２つの画像を球面座標系へ変換して１つの第１の変換画像を取得し、前記第２の画像として互いに反対方向に回転された２つの画像を前記球面座標系へ変換して１つの第２の変換画像を取得する変換手段と、
前記第１の変換画像及び前記第２の変換画像に対してオブジェクトの検出処理を行う検出手段と、
を有することを特徴とする画像処理装置。
【請求項２】
前記検出手段は、前記第１の変換画像及び前記第２の変換画像の中の設定された領域に対して顔検出処理を行うことを特徴とする請求項１記載の画像処理装置。
【請求項３】
前記検出手段は、前記第１の変換画像から得られた顔検出結果と、前記第２の変換画像から得られた前記顔検出結果とを統合することを特徴とする請求項１又は２記載の画像処理装置。
【請求項４】
前記回転手段は、前記第１の画像を、前記第１の画像の中心を回転軸にして、９０度、設定された方向に回転させて前記第２の画像を取得することを特徴とする請求項１乃至３何れか１項記載の画像処理装置。
【請求項５】
前記回転手段は、更に、前記第１の画像を、前記第１の画像の中心を回転軸にして、０度より大きく９０度より小さい設定された角度、設定された方向に回転させた第３の画像を取得し、
前記変換手段は、更に、前記第３の画像を前記球面座標系へ変換して第３の変換画像を取得し、
前記検出手段は、前記第１の変換画像、前記第２の変換画像及び前記第３の変換画像に対してオブジェクトの検出処理を行うことを特徴とする請求項４記載の画像処理装置。
【請求項６】
２つの魚眼レンズが互いに背中合わせに配置された撮像手段から、当該２つの魚眼レンズそれぞれにより撮影された２つの画像を平面座標系の第１の画像として取得する取得ステップと、
前記２つの画像を、前記第１の画像の中心を回転軸にして、設定された角度だけ互いに反対方向に回転させて第２の画像として取得する回転ステップと、
前記第１の画像として２つの画像を球面座標系へ変換して１つの第１の変換画像を取得し、前記第２の画像として互いに反対方向に回転された２つの画像を前記球面座標系へ変換して１つの第２の変換画像を取得する変換ステップと、
前記第１の変換画像及び前記第２の変換画像に対してオブジェクトの検出処理を行う検出ステップと、
を含むことを特徴とする画像処理装置の制御方法。
【請求項７】
コンピュータに、
２つの魚眼レンズが互いに背中合わせに配置された撮像手段から、当該２つの魚眼レンズそれぞれにより撮影された２つの画像を平面座標系の第１の画像として取得する取得ステップと、
前記２つの画像を、前記第１の画像の中心を回転軸にして、設定された角度だけ互いに反対方向に回転させて第２の画像として取得する回転ステップと、
前記第１の画像として２つの画像を球面座標系へ変換して１つの第１の変換画像を取得するとともに、前記第２の画像として互いに反対方向に回転された２つの画像を前記球面座標系へ変換して１つの第２の変換画像を取得する変換ステップと、
前記第１の変換画像及び前記第２の変換画像に対してオブジェクトの検出処理を行う検出ステップと、
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、魚眼レンズで撮影した画像に対してオブジェクトの検出を行うための画像処理装置、画像処理装置の制御方法及びプログラムに関する。
【背景技術】
【０００２】
近年、複数個のレンズや、１８０度以上の画角を撮影できる魚眼レンズを２個用いて、３６０度の画角を一度のレリーズで撮影できる全球面カメラが開発されてきている。再生時には、地球儀を回すような感覚で、撮影した画像を回転して閲覧することができるものもある。
現状の全球面カメラは静止画撮影に特化したものとなっており、いずれは動画撮影や静止画ライブビューに対しても需要が出てくると考えられる。その際、撮影した画像に含まれる被写体の顔等のオブジェクトの領域を検出し、オブジェクトの領域に対し自動露出やオートホワイトバランスのような補正を行うことが想定される。
特許文献１に記載の撮像装置は、２個の魚眼レンズを用いて撮影された２つの画像を、横軸３６０度、縦軸１８０度の球面座標系フォーマットに変換し、球面座標系フォーマットの画像を用いて顔検出を行っている。球面座標系フォーマットへの変換方法としては、地球儀を地図へ投影する投影法であるメルカトル図法等の方法が用いられている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１３−１９８０６２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
球面座標系には、高緯度になるほど距離や面積が拡大される特徴を有するものがある。例えば、メルカトル図法により座標変換された球面座標系では、緯度６０度において、距離は２倍、面積は４倍になる。したがって、魚眼レンズによる撮影画像の高緯度に相当する領域に写った被写体は、大きく歪んでしまうことになる。
したがって、特許文献１に記載の技術では、撮影者の写りこむ可能性の高い領域を限定して顔検出処理を施すようにしている。即ち、被写体の歪みが比較的少ない低緯度の領域を顔検出の対象領域としている。しかし、特許文献１に記載の技術では、撮影者以外の顔検出については考慮されておらず、歪みが大きい高緯度の領域では、オブジェクトを検出することができなかった。
そこで本発明は、魚眼レンズを用いて撮影された画像から、広範囲にわたってオブジェクトを検出できるようにすることを目的とする。
【課題を解決するための手段】
【０００５】
本発明の画像処理装置は、２つの魚眼レンズが互いに背中合わせに配置された撮像手段から、当該２つの魚眼レンズそれぞれにより撮影された２つの画像を平面座標系の第１の画像として取得する取得手段と、前記２つの画像を、前記第１の画像の中心を回転軸にして、設定された角度だけ互いに反対方向に回転させて第２の画像として取得する回転手段と、前記第１の画像として２つの画像を球面座標系へ変換して１つの第１の変換画像を取得し、前記第２の画像として互いに反対方向に回転された２つの画像を前記球面座標系へ変換して１つの第２の変換画像を取得する変換手段と、前記第１の変換画像及び前記第２の変換画像に対してオブジェクトの検出処理を行う検出手段と、を有することを特徴とする。
【発明の効果】
【０００６】
本発明によれば、魚眼レンズを用いて撮影された画像から、広範囲にわたってオブジェクトを検出することができる。
【図面の簡単な説明】
【０００７】
【図１】撮像装置のハードウェア構成の一例を示す図である。
【図２】魚眼レンズと撮像素子との関係を説明する図である。
【図３】顔検出処理を説明する図である。
【図４】顔検出処理の一例を示すフローチャートである。
【図５】回転角度を整数回に等分した場合の顔検出処理を説明する図である。
【図６】顔検出処理の一例を示すフローチャートである。
【図７】顔の傾きの探索範囲について説明する図である。
【図８】顔検出処理の一例を示すフローチャートである。
【発明を実施するための形態】
【０００８】
以下、本発明の実施形態について図面に基づいて説明する。以下の説明では、オブジェクトの一例として人物の顔を検出する例について説明する。
【０００９】
＜実施形態１＞
図１を用いて、本実施形態における撮像装置１００のハードウェア構成について説明する。撮像装置１００は、第１の魚眼レンズ１０１、第２の魚眼レンズ１０２、撮像素子１０３、Ａ／Ｄ変換回路１０４、信号処理回路１０５、バス１０６、ＤＲＡＭ１０７、メモリコントローラ１０８、及びＣＰＵ１０９を含む。更に、撮像装置１００は、回転回路１１１、変換回路１１２、及び顔検出回路１１３を含む。また、撮像装置１００は、各種プログラムや設定データ等を記憶するＲＯＭ等の記憶装置１１４を含む。撮像装置１００は、画像処理装置の一例である。
第１の魚眼レンズ１０１及び第２の魚眼レンズ１０２は、１８０度以上の画角を有する魚眼レンズである。
【００１０】
撮像素子１０３は、光学像を電気信号に変換するＣＣＤやＣＭＯＳ素子等で構成される撮像素子である。
Ａ／Ｄ変換回路１０４は、撮像素子１０３から出力されるアナログ画像信号をデジタル画像信号に変換するＡ／Ｄ変換回路である。
【００１１】
信号処理回路１０５は、デジタル画像信号に補間処理や色変換処理、特定のサイズへ変倍する変倍処理等の画像処理を施す信号処理回路である。
バス１０６は、各モジュールを接続するバスである。信号処理回路１０５、メモリコントローラ１０８、ＣＰＵ１０９、回転回路１１１、変換回路１１２、顔検出回路１１３及び記憶装置１１４は、バス１０６を介して相互に接続されており、相互に通信することができる。
【００１２】
ＤＲＡＭ１０７は、画像処理された画像データを一時記憶するＤＲＡＭである。
メモリコントローラ１０８は、各モジュールによるＤＲＡＭ１０７へのアクセスの仲介を行うメモリコントローラである。
【００１３】
ＣＰＵ１０９は、信号処理回路１０５、回転回路１１１、変換回路１１２、顔検出回路１１３等の各回路を制御するＣＰＵである。
回転回路１１１は、画像に対して回転処理を施す回転回路である。
変換回路１１２は、メルカトル図法を用いた座標変換及び逆座標変換処理を、魚眼レンズを用いて撮影された画像に対して施すことにより、顔検出用画像や表示画像を作成する変換回路である。
【００１４】
顔検出回路１１３は、変換回路１１２により作成された顔検出用画像に対して顔検出処理を行い、顔の位置座標及びサイズを含む顔検出結果を得る顔検出回路である。本実施形態では、顔検出回路１１３は、画像中の人物の顔を検出することとするが、人物の上半身や全身、動物の全身や顔等の他のオブジェクトを検出することとしてもよい。
ＣＰＵ１０９が、撮像装置１００の記憶装置１１４に記憶されたプログラムを実行することで、撮像装置１００の機能及び図４、６、８で後述するフローチャートの処理が実現される。
【００１５】
図１、図２及び図３を用いて、撮像装置１００の顔検出処理について説明する。撮像装置１００の顔検出処理は、ＣＰＵ１０９が各モジュールを制御することによって実現される。
図２（ａ）は、第１の魚眼レンズ１０１及び第２の魚眼レンズ１０２の配置の一例を示す図である。図２（ａ）では、第１の魚眼レンズ１０１及び第２の魚眼レンズ１０２は、背中合わせに配置されている。図２（ａ）に示すように、第１の魚眼レンズ１０１及び第２の魚眼レンズ１０２は、入射する被写体の光信号を撮像素子１０３に結像させる。
【００１６】
また、図２（ｂ）は、図２（ａ）のように第１の魚眼レンズ１０１及び第２の魚眼レンズ１０２が配置されたレンズユニットを一眼レフカメラに装着した様子を示す図である。図２（ｂ）のように、レンズユニットを装着された一眼レフカメラは、撮像装置１００の一例である。図２（ｂ）のように撮像装置１００を構えた状態で、撮像装置１００は、被写体を撮影できる。なお、図２（ｂ）の撮像装置１００は、あくまで一例である。撮像装置１００は、既存のカメラにレンズユニットを装着したもの以外にも、図２（ａ）のように配置された第１の魚眼レンズ１０１及び第２の魚眼レンズ１０２を内部に含む単一の撮像装置であってもよい。
【００１７】
図２（ｃ）は、図２（ａ）のように第１の魚眼レンズ１０１及び第２の魚眼レンズ１０２が配置されたレンズユニットを装着したカメラである撮像装置１００により、撮像された画像の一例を示す図である。１８０度以上の画角を有する第１の魚眼画像２０１及び第２の魚眼画像２０２が隣り合った画像データ２０３が得られる。画像データ２０３は、複数の人物が写っている様子を示している。第１の魚眼画像２０１は、第１の魚眼レンズ１０１により結像された画像であり、第２の魚眼画像２０２は、第２の魚眼レンズ１０２により結像された画像である。
【００１８】
撮像素子１０３は、結像した光信号を光電変換し、アナログ電気信号としてＡ／Ｄ変換回路１０４へ出力する。Ａ／Ｄ変換回路１０４は、撮像素子１０３から出力されたアナログの電気信号をデジタル信号へ変換し、信号処理回路１０５に出力する。信号処理回路１０５は、Ａ／Ｄ変換回路１０４から出力されたデジタル信号に対応する画像に対して、補間処理及び色変換処理や、動画記録サイズへの変倍処理等の画像処理を行い、画像データ２０３を取得する。そして、信号処理回路１０５は、取得した画像データ２０３を、メモリコントローラ１０８を介してＤＲＡＭ１０７へ格納する。
回転回路１１１は、ＤＲＡＭ１０７に格納された画像データ２０３を読み出し、一方の魚眼レンズに対応する魚眼画像をある方向へ設定された角度だけ回転させ、他方の魚眼レンズに対応する魚眼画像を反対方向に同じ角度だけ回転させる。
変換回路１１２は、ＤＲＡＭ１０７に格納された画像データ２０３、及び、回転回路１１１によって回転された画像データを読み出し、図３等で後述する座標変換を行って球面座標画像を作成する。
【００１９】
ＣＰＵ１０９は、変換回路１１２により座標変換された球面座標画像のうち、顔検出処理を施す領域を決定し、決定した領域を顔検出回路１１３へ通知する。
顔検出回路１１３は、変換回路１１２により座標変換された球面座標画像のうち、ＣＰＵ１０９から通知された顔検出領域に対して顔検出処理を施すことにより、顔検出結果を出力する。ＣＰＵ１０９は、複数の画像に対する顔検出結果を統合して、全球面画像全体の顔検出結果を作成する。顔検出結果の統合方法の詳細な説明は、図３及び図４を用いて後述する。
ＣＰＵ１０９は、顔検出回路１１３によって出力された顔検出結果に基づいて、表示画像や記録画像の顔領域に顔検出枠を、表示部に表示させたり、表示部に表示させた画像の自動露出やオートホワイトバランス等の処理を行ったりする。なお、表示処理や記録処理については本発明の本質ではないため説明を省略する。
【００２０】
次に、回転回路１１１、変換回路１１２及び顔検出回路１１３の処理について、図３を用いて具体的に説明する。
図３（ａ）は、第１の魚眼レンズ１０１及び第２の魚眼レンズ１０２によって得られた第１の魚眼画像２０１及び第２の魚眼画像２０２のそれぞれに経線と緯線とが引かれた様子を示す図である。第１の魚眼画像２０１及び第２の魚眼画像２０２のそれぞれに経線と緯線とが引かれた図を、それぞれ第３の魚眼画像３０１、第４の魚眼画像３０２とする。
【００２１】
図３（ｂ）は、回転回路１１１によって、画像の中心点を回転軸に回転された第１の魚眼画像２０１及び第２の魚眼画像２０２に経線と緯線とが引かれた様子を示す図である。回転回路１１１によって回転された第１の魚眼画像２０１及び第２の魚眼画像２０２に経線と緯線とが引かれた図を、それぞれ第５の魚眼画像３０３、第６の魚眼画像３０４とする。図３（ｂ）の例では、回転回路１１１は、第１の魚眼画像２０１の中心点を回転軸とし、第１の魚眼画像２０１を９０度回転させるものとする。回転角度は、正の値であれば反時計回りとし、負の値であれば時計回りであるものとする。
また、回転回路１１１は、第２の魚眼画像２０２を、第２の魚眼画像２０２の中心点を回転軸とし、−９０度だけ回転させる。なお、回転回路１１１が第２の魚眼画像２０２を第１の魚眼画像２０１と逆方向に回転させる理由は、以下の通りである。即ち、第１の魚眼画像２０１及び第２の魚眼画像２０２を撮影した第１の魚眼レンズ１０１及び第２の魚眼レンズ１０２が背中合わせになっており、空間的にそれぞれ対称となっているためである。
【００２２】
図３（ｃ）は、第３の魚眼画像３０１及び第４の魚眼画像３０２が変換回路１１２によって、メルカトル図法に基づいて、平面座標系フォーマットから球面座標系フォーマットに変換された画像同士を結合した第１の球面座標画像３０７を示す図である。変換回路１１２は、第３の魚眼画像３０１及び第４の魚眼画像３０２をそれぞれ、球面座標系フォーマットに変換し、変換した画像同士を結合し、第１の球面座標画像３０７を取得する。平面座標系は、第１の座標系の一例である。球面座標系は、第２の座標系の一例である。変換回路１１２により魚眼画像が球面座標系に変換された画像は、変換画像の一例である。
ＣＰＵ１０９は、変換回路１１２によって取得された第１の球面座標画像３０７のうち、歪みの影響が軽微な緯度の領域を切り出し、切り出した領域の画像を第１の顔検出用画像３０８とする。撮像装置１００の記憶装置１１４は、予め、球面座標系フォーマットに変換された画像のうち、歪みの影響が軽微である緯度の範囲の情報を、設定ファイル等の形式で記憶している。ＣＰＵ１０９は、撮像装置１００の記憶装置１１４からその緯度の範囲を示す情報を取得し、第１の球面座標画像３０７のうち、取得した情報に対応する緯度の範囲を、顔検出用の領域として切り出し、第１の顔検出用画像３０８を取得する。また、ＣＰＵ１０９は、ユーザによる撮像装置１００の操作部を介した操作に基づいて、撮像装置１００の記憶装置１１４に記憶されている歪みの影響が軽微である緯度の範囲の情報の内容を更新することができる。
【００２３】
図３（ｄ）は、変換回路１１２によって平面座標系フォーマットである第５の魚眼画像３０３及び第６の魚眼画像３０４がメルカトル図法に基づいて球面座標系フォーマットに変換された画像同士を結合した第２の球面座標画像３０９を示す図である。
ＣＰＵ１０９は、変換回路１１２によって取得された第２の球面座標画像３０９のうち、歪みの影響が軽微な低緯度領域を切り出し、第２の顔検出用画像３１０とする。例えば、ＣＰＵ１０９は、撮像装置１００の記憶装置１１４から、予め記憶されている歪みの影響が軽微な緯度の範囲を示す情報を取得する。そして、ＣＰＵ１０９は、第２の球面座標画像３０９のうち、取得した情報に対応する緯度の範囲を、顔検出用の領域として切り出し、第２の顔検出用画像３１０を取得する。
【００２４】
変換回路１１２は、画像を平面座標系フォーマットから球面座標系フォーマットへ変換する際に例えば、以下の式を利用する。
平面座標系における経度α、緯度βとしたときの座標（α、β）が、球面座標系における座標（ｘ，ｙ）に写されるものとする。ただし、−１８０度≦α≦１８０度、−９０度≦β≦９０度である。
ｘ＝α
ｙ＝ｌｏｇ（ｔａｎ（π／４＋β／２））
【００２５】
ここで、第１の顔検出用画像３０８及び第２の顔検出用画像３１０の切り出し範囲の決定方法の例について説明する。
例えば、撮像装置１００の記憶装置１１４は、予め、歪みの影響が軽微であるかを示す緯度の範囲として、緯度が−４５度〜４５度の範囲の情報を記憶することとする。ＣＰＵ１０９は、撮像装置１００の記憶装置１１４からその緯度の範囲を示す情報を取得し、緯度が−４５度〜４５度の範囲である領域を、顔検出用の領域として切り出すことで、第１の顔検出用画像３０８及び第２の顔検出用画像３１０を取得する。
このように、ＣＰＵ１０９が予め記憶装置１１４に記憶された情報を利用することで、顔検出回路１１３は、撮像装置１００の操作部を介したユーザの操作に基づいて、歪みの影響が軽微な緯度の範囲の情報の入力を受付けなくてもよい。そのため、撮像装置１００は、顔検出の処理時間や処理負荷を削減することができる。
【００２６】
また、顔が顔検出用画像の境界をまたぐと検出できないことを考慮して、例えば、撮像装置１００の記憶装置１１４は、予め、歪みの影響が軽微であるかを示す緯度の範囲として、緯度が−６０度〜６０度の範囲の情報を記憶することとしてもよい。その場合、ＣＰＵ１０９は、撮像装置１００の記憶装置１１４からその緯度の範囲を示す情報を取得し、緯度が−６０度〜６０度の範囲である領域を、顔検出用の領域として切り出すことで、第１の顔検出用画像３０８及び第２の顔検出用画像３１０を取得する。緯度が−６０度〜６０度の範囲である領域を切り出すことで、第１の顔検出用画像３０８及び第２の顔検出用画像３１０の画像に含まれる範囲が重複することになる。このように緯度の範囲を広げることにより、ＣＰＵ１０９は、歪みの影響が軽微である顔をより確実に検出することができる。
また、ＣＰＵ１０９は、処理時間や処理負荷に余裕がある等の場合は、第１の球面座標画像３０７及び第２の球面座標画像３０９の全面を顔検出用の画像としてもよい。
【００２７】
顔検出回路１１３は、ＣＰＵ１０９から入力された第１の顔検出用画像３０８及び第２の顔検出用画像３１０に対して、顔検出を行う。図３（ｃ）の顔枠３１１、３１２及び３１３は、第１の顔検出用画像３０８から検出された顔を示す。また、図３（ｄ）の顔枠３１４、３１５及び３１６は、第２の顔検出用画像３１０から検出された顔を示す。
図３（ｄ）に示すように、顔検出回路１１３は、第１の顔検出用画像３０８から検出されなかった顔枠３１５、３１６に該当する人物の顔を検出することができる。また、図３（ｃ）に示すように、顔検出回路１１３は、第２の顔検出用画像３１０から検出されなかった顔枠３１２、３１３に該当する人物の顔を検出することができる。
【００２８】
次に、ＣＰＵ１０９は、顔検出回路１１３による、第１の顔検出用画像３０８及び第２の顔検出用画像３１０に対する顔検出処理の結果を平面座標系にマッピングして統合する。
図３（ｅ）は、顔枠３１１、３１２及び３１３を含む第１の球面座標画像３０７を、変換回路１１２により平面座標系の第３の魚眼画像３０１及び第４の魚眼画像３０２に逆変換した結果を示す図である。
【００２９】
図３（ｆ）は、顔枠３１４、３１５及び３１６を含む第２の球面座標画像３０９を、変換回路１１２により平面座標系の第５の魚眼画像３０３及び第６の魚眼画像３０４に逆変換した結果を示す図である。
図３（ｇ）は、図３（ｅ）の第３の魚眼画像３０１及び第４の魚眼画像３０２と、図３（ｆ）の第５の魚眼画像３０３及び第６の魚眼画像３０４をそれぞれ、−θ度、θ度回転させた画像と、を統合した結果を示す図である。図３（ｇ）には、第３の魚眼画像３０１及び第４の魚眼画像３０２上に第１の顔検出用画像３０８及び第２の顔検出用画像３１０のそれぞれから検出された顔を示す顔枠が示されている。
【００３０】
ここで、ＣＰＵ１０９が実行する顔検出結果を平面座標系にマッピングして統合する処理について説明する。
ＣＰＵ１０９は、第２の顔検出用画像３１０から得られた球面座標系の顔検出結果の各座標（ｘ、ｙ）を、図３（ｆ）の平面座標系における経度α、緯度βとしたときの座標（α、β）へ逆座標変換する。
ＣＰＵ１０９は、この逆座標変換を以下の式を用いて行う。ただし、−１８０度≦α≦１８０度、−９０度≦β≦９０度である。
α＝ｘ
β＝２ｔａｎ-1（ｅｘｐ（ｙ））−π／２
【００３１】
次に、ＣＰＵ１０９は、平面座標系上の座標（α、β）を−θ回転させた座標を求める。回転後の座標を座標（α'、β'）とすると、以下の式が成り立つ。
α'＝αｃｏｓθ−βｓｉｎθ
β'＝αｓｉｎθ＋βｃｏｓθ
更に、顔枠３１１及び３１４のように、第１の顔検出用画像３０８及び第２の顔検出用画像３１０の両方に含まれる顔枠の対処について説明する。例えば、ＣＰＵ１０９は、ある顔枠同士のサイズの差が設定された閾値以下であり、顔枠同士の座標の差が設定された閾値以下である場合、その顔枠同士を同じ顔の検出結果として、どちらか一方の情報のみを保持するようにしてもよい。ＣＰＵ１０９は、顔枠３１４をθ度回転させた結果が、顔枠３１１と比べ、位置座標の差が設定された閾値以下で、かつ、サイズの差が設定された閾値以下であれば、顔枠３１４の情報を削除し、顔枠３１１の情報を採用する。または、ＣＰＵ１０９は、顔枠３１４の情報を採用し、顔枠３１１の情報を削除することとしてもよいし、顔枠３１１と顔枠３１４との平均をとり、顔枠の採用情報としてもよい。また、ＣＰＵ１０９は、設定された優先順位に基づいて、顔検出用画像３０８から検出された顔枠と、顔検出用画像３１０から検出された顔枠と、の何れを採用するかを決定してもよい。
これにより、図３（ｇ）に示すように、撮像装置１００は、第３の魚眼画像３０１及び第４の魚眼画像３０２における全領域に写りこんだ人物の顔を重複なく検出することができる。
【００３２】
次に、図４を用いて、顔検出処理について説明する。図４の処理は、ＣＰＵ１０９が各モジュールによる顔検出処理を制御することによって実現される。
Ｓ４０１において、ＣＰＵ１０９は、第１の魚眼レンズ１０１及び第２の魚眼レンズ１０２、撮像素子１０３等を介して、第１の魚眼画像及び第２の魚眼画像を撮像する。第１の魚眼レンズ１０１に対応する画像が第１の魚眼画像であり、第２の魚眼レンズ１０２に対応する画像が第２の魚眼画像である。そして、ＣＰＵ１０９は、第１の魚眼画像及び第２の魚眼画像に経線、緯線を追加した第３の魚眼画像及び第４の魚眼画像を取得する。また、ＣＰＵ１０９は、第１の魚眼画像及び第２の魚眼画像に経線、緯線を追加せずに、そのままの画像で、以下の処理を行うこととしてもよい。
Ｓ４０２において、ＣＰＵ１０９は、回転回路１１１を介して、第３の魚眼画像をθの角度、また、第４の魚眼画像を−θの角度だけ回転させ、第５の魚眼画像、第６の魚眼画像を取得する。本実施形態では、θは、９０度とする。
【００３３】
Ｓ４０３において、ＣＰＵ１０９は、変換回路１１２を介して、第３の魚眼画像〜第６の魚眼画像を平面座標系から球面座標系へ座標変換する。そして、ＣＰＵ１０９は、座標変換された第３の魚眼画像及び第４の魚眼画像を結合し、第１の球面座標画像を取得し、座標変換された第５の魚眼画像及び第６の魚眼画像を結合し、第２の球面座標画像を取得する。また、ＣＰＵ１０９は、画像同士を結合せずに、それぞれの画像毎に顔検出処理を行うようにしてもよい。
Ｓ４０４において、ＣＰＵ１０９は、ＣＰＵ１０９は、第１の球面座標画像及び第２の球面座標画像から、歪の影響の軽微な領域を切り出し、第１の顔検出用画像及び第２の顔検出用画像を取得する。例えば、ＣＰＵ１０９は、図３（ｃ）で説明した方法で顔検出用の画像を取得する。即ち、ＣＰＵ１０９は、撮像装置１００の記憶装置１１４から、予め記憶されている歪みの影響が軽微な緯度の範囲を示す情報を取得する。そして、ＣＰＵ１０９は、第１の球面座標画像及び第２の球面座標画像のうち、取得した情報に対応する緯度の範囲を、顔検出用の領域として切り出し、第１の顔検出用画像及び第２の顔検出用画像を取得する。
【００３４】
Ｓ４０５において、ＣＰＵ１０９は、顔検出回路１１３を介して、第１の顔検出用画像及び第２の顔検出用画像に対して顔検出処理を行い、検出結果を得る。本実施形態では、ＣＰＵ１０９は、顔検出結果として、検出した顔を囲む顔枠を第１の球面座標画像及び第２の球面座標画像に追加する。
Ｓ４０６において、ＣＰＵ１０９で、Ｓ４０５で顔枠を追加された第１の球面座標画像及び第２の球面座標画像をＳ４０３で結合した前の画像に分離する。そして、ＣＰＵ１０９は、変換回路１１２を介して、分離した各画像を、球面座標系から平面座標系へ逆変換する。即ち、ＣＰＵ１０９は、Ｓ４０５で顔枠を追加された第１の球面座標画像から分離された画像を変換し、第３の魚眼画像及び第４の魚眼画像を取得する。また、ＣＰＵ１０９は、Ｓ４０５で顔枠を追加された第２の球面座標画像から分離された画像を変換し、第５の魚眼画像及び第６の魚眼画像を取得する。
【００３５】
Ｓ４０７において、ＣＰＵ１０９は、回転回路１１１を介して、Ｓ４０６で取得した第５の魚眼画像及び第６の魚眼画像を、Ｓ４０２で回転した方向と逆方向に同じ角度だけ回転させる。即ち、ＣＰＵ１０９は、第５の魚眼画像を−θ度、第６の魚眼画像をθ度回転させる。
Ｓ４０８において、ＣＰＵ１０９は、Ｓ４０６で取得した第３の魚眼画像とＳ４０７で回転させた第５の魚眼画像とを統合させる。より具体的には、ＣＰＵ１０９は、第３の魚眼画像及び第５の魚眼画像内に含まれる全ての顔枠を１つの画像に含ませるようにする。例えば、ＣＰＵ１０９は、第３の魚眼画像に、第５の魚眼画像３０３に存在するが第３の魚眼画像にはない顔枠を追加する。同様に、ＣＰＵ１０９は、Ｓ４０６で取得した第４の魚眼画像とＳ４０７で回転させた第６の魚眼画像とを統合させる。例えば、ＣＰＵ１０９は、第４の魚眼画像に、第６の魚眼画像に存在するが第４の魚眼画像にはない顔枠を追加する。
【００３６】
以上、本実施形態の処理では、撮像装置１００は、魚眼レンズを用いて撮像された画像及びその画像を設定された角度回転させた画像を、球面座標系に変換し、変換した画像に対して顔検出処理を行った。魚眼レンズを用いて撮像され、球面座標系に変換された画像は、緯度が大きくなる程、歪みの影響が甚大になり、顔検出ができなくなる。しかし、撮像装置１００は、撮像した画像を回転させて座標変換することで、撮像した画像の歪みの影響が甚大な部分についても顔検出を行うことができるようになる。これにより、撮像装置１００は、より広範囲にわたってオブジェクトを検出することを可能にする。
本実施形態では、撮像装置１００は、第１の魚眼レンズ１０１及び第２の魚眼レンズ１０２の２つのレンズを用いて２つの画像を取得することとした。しかし、撮像装置１００は、１つの魚眼レンズを用いて１つの画像を取得することとしてもよい。その場合、ＣＰＵ１０９は、撮像された画像を設定された角度回転させた画像を生成する。そして、ＣＰＵ１０９は、撮像された画像及び生成した画像を平面座標系から球面座標系に変換し、変換した画像それぞれについて、顔検出を行う。そして、ＣＰＵ１０９は、それぞれの画像に顔検出の結果を示す顔枠を追加し、再度、平面座標系に変換する。ＣＰＵ１０９は、平面座標系に変換された回転された画像を、以前に回転された角度だけ逆方向に回転させる。ＣＰＵ１０９は、一方の画像に、他方の画像の顔枠を加え、顔枠を加えた画像を出力する。
【００３７】
＜実施形態２＞
実施形態１では、回転回路１１１は、Ｓ４０２において画像を、θ＝９０度だけ、１回のみ回転させることとした。
実施形態１のように画像を９０度、１回のみ回転させた場合、歪みの影響が中度程度である緯度の範囲に存在する顔を検出できない場合がある。
そこで、撮像装置１００は、更に、画像を０度より大きく９０度より小さい設定された角度だけ回転させ、回転させた画像を球面座標系に変換し、変換した画像に顔検出処理を行う。これにより、撮像装置１００は、回転させない画像及び９０度回転させた画像からでは、検出できない顔を検出できるようになる。
【００３８】
本実施形態では、回転回路１１１は、画像を、θ＝９０／Ｎずつ、Ｎ回回転させる場合の処理について説明する。なお、Ｎは、２以上の整数とする。
本実施形態の撮像装置１００は、ハードウェア構成等の詳細において、実施形態１と同様である。
【００３９】
本実施形態においては、Ｎ＝２、θ＝４５度とする。本実施形態の顔検出処理について、図５、６を用いて説明する。
図５（ａ）は、本実施形態の撮像装置１００により撮像された第３の魚眼画像５０１及び第４の魚眼画像５０４を示す図である。第３の魚眼画像５０１は、第１の魚眼レンズ１０１により撮像された画像である。第４の魚眼画像５０４は、第２の魚眼レンズ１０２により撮像された画像である。
【００４０】
図５（ｂ）は、回転回路１１１によって、第３の魚眼画像５０１が４５度回転された第７の魚眼画像５０２、及び第４の魚眼画像が−４５度回転された第８の魚眼画像５０５を示す図である。
図５（ｃ）は、回転回路１１１によって、第３の魚眼画像が９０度回転された第５の魚眼画像５０３、及び第４の魚眼画像が−９０度回転された第６の魚眼画像５０６を示す図である。
【００４１】
図５（ｄ）は、変換回路１１２によって平面座標系から球面座標系へ座標変換された、第３の魚眼画像５０１及び第４の魚眼画像５０４が結合された第１の球面座標画像５０７を示す図である。また、ＣＰＵ１０９は、歪みの影響が軽微な領域として、第１の球面座標画像５０７から第１の顔検出用画像５０８を切り出すこととする。
図５（ｅ）は、変換回路１１２によって平面座標系から球面座標系へ座標変換された、第７の魚眼画像５０２及び第８の魚眼画像５０５が結合された第３の球面座標画像５０９を示す図である。また、ＣＰＵ１０９は、歪みの影響が軽微な領域として、第３の球面座標画像５０９から第３の顔検出用画像５１０を切り出すこととする。
【００４２】
図５（ｆ）は、変換回路１１２によって平面座標系から球面座標系へ座標変換された、第５の魚眼画像５０３及び第６の魚眼画像５０６が結合された第２の球面座標画像５１１を示す図である。また、ＣＰＵ１０９は、歪みの影響が軽微な領域として、第２の球面座標画像５１１から第２の顔検出用画像５１２を切り出すこととする。
図５（ｄ）及び図５（ｆ）に示す例のように、人物の顔が第１の顔検出用画像５０８及び第２の顔検出用画像５１２の領域外にある場合や、歪みによって検出できない場合がある。これに対して、図５（ｅ）に示す例では、人物の顔が歪みの影響が軽微な領域に含まれるため顔検出が可能となる。
【００４３】
本実施形態における顔検出処理について、図５（ａ）〜図５（ｆ）に示した画像を例に、図６を用いて説明する。
実施形態１と異なる点について説明する。図６の処理のうち、図４と同じ処理については同じ番号を付してある。
Ｓ４０１において、ＣＰＵ１０９は、第１の魚眼レンズ１０１、第２の魚眼レンズ１０２、撮像素子１０３等を介して、それぞれの魚眼レンズに対応する２つの画像（第１の魚眼画像及び第２の魚眼画像）を取得する。そして、ＣＰＵ１０９は、撮像した画像に経線、緯線を追加した第３の魚眼画像及び第４の魚眼画像を取得する。
【００４４】
Ｓ６０２において、ＣＰＵ１０９は、回転回路１１１を介して、第３の魚眼画像をθの角度、第４の魚眼画像を−θの角度だけ回転させた魚眼画像を取得する。次に、ＣＰＵ１０９は、第３の魚眼画像をθ×２の角度、第４の魚眼画像を−θ×２の角度だけ回転させた魚眼画像を取得する。以下同様に繰り返し、ＣＰＵ１０９は、最終的に第３の魚眼画像をθ×Ｎ＝９０度回転させた第５の魚眼画像、及び第４の魚眼画像を−θ×Ｎ＝−９０度回転させた第６の魚眼画像までを取得する。図５に示す例の場合では、Ｎ＝２であるため、第５の魚眼画像５０３、第６の魚眼画像５０６、第７の魚眼画像５０２及び第８の魚眼画像５０５を取得することになる。
【００４５】
Ｓ６０３において、ＣＰＵ１０９は、変換回路１１２を介して、Ｓ４０１及びＳ６０２で取得した２×（Ｎ＋１）個の魚眼画像を平面座標系から球面座標系へ座標変換する。そして、ＣＰＵ１０９は、同時に撮影された画像同士を結合させ、球面座標系における球面座標画像を（Ｎ＋１）個、生成する。図５に示す例の場合は、第１の球面座標画像５０７、第２の球面座標画像５１１及び第３の球面座標画像５０９の３つを生成する。
Ｓ６０４において、ＣＰＵ１０９で、Ｓ６０３で生成した（Ｎ＋１）個の球面座標画像から、歪みの影響の軽微な緯度の範囲の領域を切り出し、（Ｎ＋１）個の顔検出用画像を取得する。歪みの影響の軽微な緯度の範囲の領域の切り出しの方法は、図３（ｃ）で説明した実施形態１に係る方法と同様である。
【００４６】
Ｓ６０５において、ＣＰＵ１０９は、顔検出回路１１３を介して、Ｓ６０４で取得した（Ｎ＋１）個の顔検出用画像に対して顔検出を行い、それぞれ顔検出結果を得る。本実施形態では、ＣＰＵ１０９は、実施形態１と同様に検出した顔を囲む顔枠をＳ６０３で生成した球面座標画像に追加することで、検出結果を出力する。
Ｓ６０６において、ＣＰＵ１０９は、Ｓ６０５で顔枠を追加された（Ｎ＋１）個の球面座標画像をＳ６０３で得られた結合前の魚眼画像に分離して、球面座標系から平面座標系へ逆変換する。
【００４７】
Ｓ６０７において、ＣＰＵ１０９は、Ｓ６０６で逆変換された魚眼画像のうち、Ｓ６０２で得られた２×Ｎ個の魚眼画像を、Ｓ６０２で回転した方向と逆方向に同じ角度だけ回転させる。
Ｓ６０８において、ＣＰＵ１０９は、回転していない魚眼画像から得られた顔検出結果と、回転した２×Ｎ個の魚眼画像から得られた顔検出結果とを統合する。例えば、ＣＰＵ１０９は、回転していない魚眼画像に対して、回転した２×Ｎ個の魚眼画像に含まれる顔枠のうち、回転していない魚眼画像に含まれない顔枠を追加する。
【００４８】
以上、本実施形態の処理では、撮像装置１００は、画像を０度から９０度まで、複数回に分けて、回転し、回転した画像それぞれについて、座標変換し、顔検出を行った。これにより、撮像装置１００は、０度よりも大きく９０度よりも小さい角度で回転させた魚眼画像からも顔を検出することで、回転させない魚眼画像及び９０度回転させた魚眼画像から検出できない顔についても検出できるようになる。
【００４９】
＜実施形態３＞
本実施形態においては、顔検出処理における顔の傾きの探索範囲を限定することにより、顔検出処理の処理時間や処理負荷の軽減を行うための方法について説明する。
本実施形態の撮像装置１００は、ハードウェア構成等の詳細において、実施形態１と同様である。
本実施形態では、顔検出回路１１３は、検出可能な顔の傾きを設定された範囲内に限定しており、以下では、その範囲を、顔の傾きの探索範囲とする。顔の傾きとは、画像中の顔の顎と頭頂部とを通る直線と、画像内の座標軸とがなす角度である。本実施形態では、顔の傾きは、画像中の顔の顎と頭頂部とを通る直線と、画像内の緯線とがなす角度であるとするが、画像中の顔の顎と頭頂部とを通る直線と、画像内の経線とがなす角度としてもよい。
【００５０】
図７（ａ）は、本実施形態の撮像装置１００により撮像された第３の魚眼画像７０１及び第４の魚眼画像７０２を示す図である。第３の魚眼画像７０１は、第１の魚眼レンズ１０１により撮像された画像である。第４の魚眼画像７０２は、第２の魚眼レンズ１０２により撮像された画像である。第３の魚眼画像７０１及び第４の魚眼画像７０２には、直立した人物がそれぞれ写っているものとする。このとき、矢印７０５及び矢印７０６に示した傾きの範囲が、顔検出回路１１３の顔の傾きの探索範囲であるとする。例えば、矢印７０５が７０度〜１１０度の範囲を示す場合、顔検出回路１１３は、顔の傾きが７０度〜１１０度である顔を検出する処理を行い、その他の傾きの顔を検出する処理を行わないことになる。矢印７０５、７０６等の検出を行う顔の傾きの範囲の情報は、予め、撮像装置１００の記憶装置１１４に、設定ファイル等の形式で記憶されているものとする。ＣＰＵ１０９は、撮像装置１００の操作部を介したユーザの操作に基づいて、記憶装置１１４に記憶されている、検出を行う顔の傾きの範囲の情報の内容を更新することができる。
【００５１】
図７（ｂ）は、回転回路１１１によって、第３の魚眼画像７０１が９０度回転された第５の魚眼画像７０３、及び第４の魚眼画像７０２が−９０度回転された第６の魚眼画像７０４を示す図である。顔の傾きの探索範囲も９０度及び−９０度それぞれ傾き、矢印７０７及び矢印７０８で示す範囲のようになる。例えば、矢印７０５が７０度〜１１０度の範囲を示す場合、矢印７０７は、１６０度〜２００度の範囲を示すことになる。即ち、顔検出回路１１３は、顔の傾きが１６０度〜２００度である顔を検出する処理を行い、その他の傾きの顔を検出する処理を行わないことになる。
【００５２】
図７（ｃ）は、変換回路１１２によって平面座標系から球面座標系へ座標変換された、第３の魚眼画像７０１及び第４の魚眼画像７０２が結合された第１の球面座標画像７０９を示す図である。顔検出領域は、第３の魚眼画像７０１及び第４の魚眼画像７０２それぞれに相当する領域毎に独立である。ＣＰＵ１０９は、図３（ｃ）で説明した方法と同様の方法で、第１の球面座標画像７０９から顔検出用画像を切り出す。そして、ＣＰＵ１０９は、切り出した顔検出用画像のうち第３の魚眼画像７０１に相当する領域を第１の顔検出用画像７１０ａ、第４の魚眼画像７０２に相当する領域を第１の顔検出用画像７１０ｂとする。顔検出回路１１３は、第１の顔検出用画像７１０ａについては顔の傾きの探索範囲を矢印７０５に示す範囲として顔検出を行い、第１の顔検出用画像７１０ｂについては矢印７０６に示す範囲で顔検出を行う。
【００５３】
図７（ｄ）は、変換回路１１２によって平面座標系から球面座標系へ座標変換された、第５の魚眼画像７０３及び第６の魚眼画像７０４が結合された第２の球面座標画像７１２を示す図である。ＣＰＵ１０９は、図３（ｃ）で説明した方法と同様の方法で、第２の球面座標画像７１２から顔検出用画像を切り出す。そして、ＣＰＵ１０９は、切り出した顔検出用画像のうち第５の魚眼画像７０３に相当する領域を第２の顔検出用画像７１３ａ、第６の魚眼画像７０４に相当する領域を第２の顔検出用画像７１３ｂとする。顔検出回路１１３は、第２の顔検出用画像７１３ａについては顔の傾きの探索範囲を矢印７０７に示す範囲として顔検出を行い、第２の顔検出用画像７１３ｂについては矢印７０８に示す範囲で顔検出を行う。
【００５４】
ここで、本実施形態における前提条件について、図２（ｂ）を用いて説明する。
実空間上において、図２（ｂ）の通りに撮像装置１００を鉛直方向に構えて撮影すると、撮像素子１０３の撮像面も鉛直方向になる。この場合、図７（ａ）に示すように、直立している人物は鉛直方向に写ることになる。
これに対して、撮像装置１００を水平方向に構えて撮影すると、撮像素子１０３の撮像面も水平方向になる。この場合、図７（ｂ）に示すように、直立している人物は９０度傾いて写ることになる。即ち、撮像装置１００を傾けて撮影された画像に含まれる顔の傾きが実空間と異なってしまうため、実空間を想定した顔の探索範囲と不一致となってしまう。
【００５５】
そのため、顔検出処理における顔の傾きの探索範囲を限定するため、撮像装置１００は、撮像装置１００の傾きがある場合、撮像装置１００を鉛直方向に構えて撮影した場合と同様の画像になるよう、画像の傾きを補正してから顔検出処理を行う必要がある。より具体的には、撮像装置１００は、画像の傾きを補正して第１の球面座標画像７０９及び第２の球面座標画像７１２を生成する必要がある。画像の傾きを補正する方法には、例えば、特開２０１３−２１４９４７号公報等がある。
なお、本実施形態においては、撮像装置１００は、顔検出処理を行う画像に対して、鉛直方向付近の傾きの顔に対してのみを検出対象として限定することにより、顔検出処理の処理時間や処理負荷を軽減するものとする。
【００５６】
次に、本実施形態における顔検出処理について、図８を用いて説明する。
図８の処理のうち、実施形態１と異なる点について説明するものとし、図４と同じ処理については同じ番号を付してある。
Ｓ４０１において、ＣＰＵ１０９は、第１の魚眼レンズ１０１、第２の魚眼レンズ１０２、撮像素子１０３等を介して、それぞれの魚眼レンズに対応する２つの画像（第１の魚眼画像及び第２の魚眼画像）を取得する。そして、ＣＰＵ１０９は、撮像した画像に経線、緯線を追加した第３の魚眼画像及び第４の魚眼画像を取得する。
Ｓ４０２において、ＣＰＵ１０９は、回転回路１１１を介して、第３の魚眼画像を９０度、また、第４の魚眼画像を−９０度だけ回転させ、第５の魚眼画像及び第６の魚眼画像を取得する。
【００５７】
Ｓ８０３において、変換回路１１２を介して、第３の魚眼画像〜第６の魚眼画像を平面座標系から球面座標系へ座標変換する。そして、第３の魚眼画像及び第４の魚眼画像を結合し、第１の球面座標画像を生成し、第５の魚眼画像及び第６の魚眼画像を結合し、第２の球面座標画像を生成する。そして、ＣＰＵ１０９は、例えば、特開２０１３−２１４９４７号公報の方法で、撮像が行われた際の撮像装置１００の傾きに応じて、第１の球面座標画像及び第２の球面座標画像の傾きを補正する。
Ｓ８０５において、ＣＰＵ１０９は、１つの球面座標画像から、２つの顔検出用画像を切り出し、それぞれの顔検出用画像に対して、それぞれの顔の傾きの探索範囲を限定した顔検出処理を行う。より具体的には、まず、ＣＰＵ１０９は、撮像装置１００の記憶装置１１４から顔の傾きの探索範囲の情報を取得する。そして、ＣＰＵ１０９は、２つの顔検出用画像から、取得した情報に対応する探索範囲について顔検出を行う。
【００５８】
以上、本実施形態の処理では、撮像装置１００は、顔検出処理において顔の傾きの探索範囲を限定することにより、顔検出処理の処理時間や処理負荷を軽減することができる。
【００５９】
＜その他の実施形態＞
実施形態１〜３においては、１８０度の視野を持つ魚眼レンズ２個を背中合わせに撮影する構成で説明したが、魚眼レンズ１個に対しても、これらの実施形態の処理を適用できる。
また、１８０度の視野を持つ魚眼レンズ２個を用いた方法でなくても、図２（ｃ）に示したような、第１の魚眼画像２０１と第２の魚眼画像２０２の全周囲の端が合致、または重なるような画像データ２０３を取得できれば、これらの実施形態の処理を適用できる。
以上述べたように、本発明によれば、画像を回転した画像と回転しない画像に対して顔検出することにより、魚眼画像のあらゆる位置に配置されている顔について、顔検出可能になる。
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサがプログラムを読み出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００６０】
１００  撮像装置
１０９  ＣＰＵ
【図１】
0006732509.tif 000002
【図２】
0006732509.tif 000003
【図３】
0006732509.tif 000004
【図４】
0006732509.tif 000005
【図５】
0006732509.tif 000006
【図６】
0006732509.tif 000007
【図７】
0006732509.tif 000008
【図８】
0006732509.tif 000009