(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】
(24)【登録日】2022-02-25
(45)【発行日】2022-03-07
(54)【発明の名称】画像処理方法、コンピュータプログラム及び画像処理装置
(51)【国際特許分類】
G06T 7/00 20170101AFI20220228BHJP
G06T 7/70 20170101ALI20220228BHJP
H04N 7/18 20060101ALI20220228BHJP
【FI】
G06T7/00 660B
G06T7/70 A
H04N7/18 K
(21)【出願番号】P 2021120339
(22)【出願日】2021-07-21
【審査請求日】2021-07-21
【早期審査対象出願】
(73)【特許権者】
【識別番号】517255566
【氏名又は名称】株式会社エクサウィザーズ
(74)【代理人】
【識別番号】100114557
【氏名又は名称】河野 英仁
(74)【代理人】
【識別番号】100078868
【氏名又は名称】河野 登夫
(72)【発明者】
【氏名】アブドゥルガニ アブドゥルラーマン
(72)【発明者】
【氏名】永安 勝
【審査官】岡本 俊威
(56)【参考文献】
【文献】国際公開第2017/094626(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/00-7/90
H04N 7/18
(57)【特許請求の範囲】
【請求項1】
カメラが撮影した歪みを含む歪曲画像を取得し、
取得した前記歪曲画像に写された対象物を囲む立体形状の枠を生成し、
生成した前記立体形状の枠に基づいて、前記歪曲画像から前記対象物を含む部分画像を抽出
し、
前記立体形状の枠は、前記対象物を囲む2つの平面形状の枠が交差した形状である、
画像処理方法。
【請求項2】
前記歪曲画像における前記対象物の2次元座標を、仮想の3次元空間における3次元座標に変換し、
前記3次元空間において前記対象物を囲む交差した2つの平面形状の枠を生成し、
生成した前記枠の3次元座標を、前記歪曲画像における2次元座標に逆変換し、
前記歪曲画像におけるサイズに基づいて前記2つの平面形状の枠のいずれか1つを選択し、
選択した平面形状の枠に基づいて、前記歪曲画像から前記対象物を含む部分画像を抽出する、
請求項
1に記載の画像処理方法。
【請求項3】
抽出した部分画像の傾きを補正する、
請求項1
又は請求項
2に記載の画像処理方法。
【請求項4】
コンピュータに、
カメラが撮影した歪みを含む歪曲画像を取得し、
取得した前記歪曲画像に写された対象物を囲む立体形状の枠を生成し、
生成した前記立体形状の枠に基づいて、前記歪曲画像から前記対象物を含む部分画像を抽出する
処理を実行させ
、
前記立体形状の枠は、前記対象物を囲む2つの平面形状の枠が交差した形状である、コンピュータプログラム。
【請求項5】
カメラが撮影した歪みを含む歪曲画像を取得する取得部と、
取得した前記歪曲画像に写された対象物を囲む立体形状の枠を生成する生成部と、
生成した前記立体形状の枠に基づいて、前記歪曲画像から前記対象物を含む部分画像を抽出する処理部と
を備え
、
前記立体形状の枠は、前記対象物を囲む2つの平面形状の枠が交差した形状である、画像処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、カメラが撮影した画像に写された対象物を検出する処理を行う画像処理方法、コンピュータプログラム及び画像処理装置に関する。
【背景技術】
【0002】
近年、機械学習及び深層学習等の技術が進歩し、カメラで撮影した画像から特定の対象物、例えば人又は車等を検出することが可能となっている。この技術は、監視カメラ及び車載カメラ等に用いられ、例えばカメラの撮影範囲内に人が存在するか否か、人がどのような行動を行っているか等の判断が可能である。監視カメラ等では、できるだけ広い範囲を撮影できることが望まれ、画角の広いレンズ(いわゆる広角レンズ)を用いた撮影が行われる場合が多い。広角レンズを用いて撮影される画像は、周辺部分ほど大きなゆがみが生じた画像となる。
【0003】
特許文献1においては、物体を撮影して生成された画像の歪み補正を行う画像処理システムが提案されている。この画像処理システムは、物体を照明する照明部と、物体上に所定パターンを投写する投写部と、照明部により照明された物体を所定パターンを含まずに撮影して第1画像データを生成し、照明部により照明された物体を所定パターンと共に撮影して第2画像データを生成する撮像部と、照明部及び撮像部を物体に対して相対的に移動させる駆動部とを有する撮像装置を備える。また画像処理システムは、第2画像データが示す第2画像における所定パターンに対応したパターン画像の歪み量を検出し、検出した歪み量に基づいて第1画像データが示す第1画像の歪み補正を行う画像処理装置を備える。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
カメラが撮影した画像から対象物を検出する処理を行った場合、検出結果をユーザに提示するために、検出した対象物を囲む長方形状の枠、いわゆるバウンディングボックスを撮影画像に重畳して表示することが行われる。しかしながら、カメラが撮影した歪みのある画像に対してバウンディングボックスを表示する場合、対象物が歪んでいることからそれを囲むバウンディングボックスのサイズが大きくなり、バウンディングボックス内に対象物以外のものが入り込むなど、バウンディングボックスの精度が低下する場合があった。カメラが例えば通常のレンズを通して撮影を行う場合にも撮影画像に歪みが生じる可能性があり、特に広角レンズを通して撮影を行う場合には画像に大きな歪みが生じる可能性がある。
【0006】
本発明は、斯かる事情に鑑みてなされたものであって、その目的とするところは、歪みのある画像に対してバウンディングボックスを利用した画像処理を行うことが期待できる画像処理方法、コンピュータプログラム及び画像処理装置を提供することにある。
【課題を解決するための手段】
【0007】
一実施形態に係る画像処理方法は、カメラが撮影した歪みを含む歪曲画像を取得し、取得した前記歪曲画像に写された対象物を囲む立体形状の枠を生成し、生成した前記立体形状の枠に基づいて、前記歪曲画像から前記対象物を含む部分画像を抽出し、前記立体形状の枠は、前記対象物を囲む2つの平面形状の枠が交差した形状である。
【発明の効果】
【0008】
一実施形態による場合は、歪みのある画像に対してバウンディングボックスを利用した画像処理を行うことが期待できる。
【図面の簡単な説明】
【0009】
【
図1】本実施の形態に係る情報処理システムの概要を説明するための模式図である。
【
図2】本実施の形態に係るサーバ装置の構成を示すブロック図である。
【
図3】本実施の形態に係る端末装置の構成を示すブロック図である。
【
図4】本実施の形態に係るサーバ装置が行うバウンディングボックス生成処理を説明するための模式図である。
【
図5】本実施の形態に係るサーバ装置が行うバウンディングボックス調整処理を説明するための模式図である。
【
図6】本実施の形態に係るサーバ装置が行うバウンディングボックス調整処理を説明するための模式図である。
【
図7】端末装置による画像の表示例を示す模式図である。
【
図8】本実施の形態に係るサーバ装置が行う処理の手順を示すフローチャートである。
【
図9】本実施の形態に係るサーバ装置が行う画像抽出用のバウンディングボックス生成処理を説明するための模式図である。
【
図10】バウンディングボックスに基づく画像抽出を説明するための模式図である。
【
図11】本実施の形態に係るサーバ装置が行う画像抽出処理の手順を示すフローチャートである。
【発明を実施するための形態】
【0010】
本発明の実施形態に係る情報処理システムの具体例を、以下に図面を参照しつつ説明する。なお、本発明はこれらの例示に限定されるものではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。
【0011】
<システム構成>
図1は、本実施の形態に係る情報処理システムの概要を説明するための模式図である。本実施の形態に係る情報処理システムは、例えば商業施設又は公共施設等に設置されたカメラ1が周辺の撮影を行い、撮影した画像からサーバ装置3が人を検出し、検出した人を囲むバウンディングボックスを撮影画像に重畳して端末装置5に表示するシステムである。
【0012】
本実施の形態に係るカメラ1は、画角が広い広角レンズを通して撮影を行うカメラであり、例えば水平方向の画角が約180°のカメラである。カメラ1は、1秒間に数回~数十回の頻度で撮影を行い、撮影により得られた画像をサーバ装置3へ送信する。カメラ1は、例えばLAN(Local Area Network)、無線LAN、携帯電話通信網又はインターネット等の有線又は無線のネットワークを介して、サーバ装置3との通信を行い、撮影画像をサーバ装置3へ送信する。なお本実施の形態においてカメラ1は広角レンズを通して撮影を行うものとするが、これに限るものではなく、広角レンズとは異なるレンズを通して撮影を行ってもよい。
【0013】
サーバ装置3は、一又は複数のカメラ1から送信される撮影画像を受信して、受信した撮影画像に写された人を検出する処理を行う。サーバ装置3は、撮影画像から検出した人に対して、この人を囲むバウンディングボックス101を生成し、元の撮影画像に生成したバウンディングボックス101を重畳した表示用の画像を生成する。サーバ装置3は、生成した表示用の画像を端末装置5へ送信する。
【0014】
端末装置5は、カメラ1を用いた監視等を行うユーザが使用する装置であり、例えばPC(パーソナルコンピュータ)、スマートフォン又はタブレット型端末装置等の汎用の情報処理装置を用いて構成され得る。端末装置5は、サーバ装置3から送信される画像を受信し、受信した画像を表示部に表示する。サーバ装置3から端末装置5へ送信されて表示部に表示される画像は、カメラ1が撮影した画像であり、画像中に人が存在する場合には、この人を囲むバウンディングボックス101が重畳された画像である。
【0015】
なお本実施の形態においては、撮影画像に写された人を検出する処理、及び、検出した人を囲むバウンディングボックス101を生成する処理等をサーバ装置3が行うものとするが、これに限るものではない。例えば、カメラ1が人を検出する処理及びバウンディングボックス101を生成する処理等を行い、バウンディングボックス101を重畳した撮影画像を、サーバ装置3を介して又はサーバ装置3を介さず直接的に、端末装置5へ送信してもよい。また本実施の形態においては、サーバ装置3がバウンディングボックス101を重畳した撮影画像を端末装置5へ送信し、これを受信した端末装置5が表示部に表示するものとするが、これに限るものではない。例えば、サーバ装置3が表示部を備える場合に、サーバ装置3の表示部にバウンディングボックス101を重畳した撮影画像を表示してもよい。また例えば、カメラ1が表示部を備える場合に、カメラ1がバウンディングボックス101の生成及び重畳を行って、自身の表示部にバウンディングボックス101を重畳した撮影画像を表示してもよい。
【0016】
<装置構成>
図2は、本実施の形態に係るサーバ装置3の構成を示すブロック図である。本実施の形態に係るサーバ装置3は、処理部31、記憶部(ストレージ)32及び通信部(トランシーバ)33等を備えて構成されている。なお本実施の形態においては、1つのサーバ装置にて処理が行われるものとして説明を行うが、複数のサーバ装置が分散して処理を行ってもよい。
【0017】
処理部31は、CPU(Central Processing Unit)、MPU(Micro-Processing Unit)又はGPU(Graphics Processing Unit)等の演算処理装置、ROM(Read Only Memory)及びRAM(Random Access Memory)等を用いて構成されている。処理部31は、記憶部32に記憶されたサーバプログラム32aを読み出して実行することにより、カメラ1が撮影した画像を取得する処理、画像に写されている人を検出する処理、検出した人を囲むバウンディングボックスを生成する処理、及び、バウンディングボックスを撮影画像に重畳して端末装置5へ送信する処理等の種々の処理を行う。
【0018】
記憶部32は、例えばハードディスク等の大容量の記憶装置を用いて構成されている。記憶部32は、処理部31が実行する各種のプログラム、及び、処理部31の処理に必要な各種のデータを記憶する。本実施の形態において記憶部32は、処理部31が実行するサーバプログラム32aを記憶すると共に、カメラ1が撮影した画像から人を検出する処理に用いられる学習済のYOLO(You Only Look Once)学習モデル32bを記憶している。
【0019】
本実施の形態においてサーバプログラム(プログラム製品)32aは、メモリカード又は光ディスク等の記録媒体99に記録された態様で提供され、サーバ装置3は記録媒体99からサーバプログラム32aを読み出して記憶部32に記憶する。ただし、サーバプログラム32aは、例えばサーバ装置3の製造段階において記憶部32に書き込まれてもよい。また例えばサーバプログラム32aは、遠隔の他のサーバ装置等が配信するものをサーバ装置3が通信にて取得してもよい。例えばサーバプログラム32aは、記録媒体99に記録されたものを書込装置が読み出してサーバ装置3の記憶部32に書き込んでもよい。サーバプログラム32aは、ネットワークを介した配信の態様で提供されてもよく、記録媒体99に記録された態様で提供されてもよい。
【0020】
YOLO学習モデル32bは、CNN(Convolutional Neural Network)をベースとする学習モデルであり、入力した画像から特定の対象物を検出し、検出した物体の種別、及び、検出した対象物を囲むバウンディングボックス等の情報を出力するように機械学習がなされた学習モデルである。本実施の形態に係るYOLO学習モデル32bは、画像に写された人の頭部を検出し、検出した人の頭部を囲むバウンディングボックスの情報を出力するように予め機械学習がなされている。なおYOLOの学習モデルは既存の技術であるため、その構造及びアルゴリズム等の詳細な説明は省略する。また本実施の形態ではYOLOの学習モデルを用いて人の頭部を検出するものとするが、これに限るものではなく、例えばR-CNN(Regions with Convolutional Neural Networks)、Faster R-CNN又はSSD(Single Shot multibox Detector)等の学習モデルが用いられてもよい。記憶部32には、YOLO学習モデル32bを構成する学習モデルの構造に関する情報、及び、機械学習により決定された内部のパラメータの情報等が記憶される。
【0021】
通信部33は、携帯電話通信網、無線LAN及びインターネット等を含むネットワークNを介して、種々の装置との間で通信を行う。本実施の形態において通信部33は、ネットワークNを介して、カメラ1及び端末装置5との間で通信を行う。通信部33は、処理部31から与えられたデータを他の装置へ送信すると共に、他の装置から受信したデータを処理部31へ与える。
【0022】
なお記憶部32は、サーバ装置3に接続された外部記憶装置であってよい。またサーバ装置3は、複数のコンピュータを含んで構成されるマルチコンピュータであってよく、ソフトウェアによって仮想的に構築された仮想マシンであってもよい。またサーバ装置3は、上記の構成に限定されず、例えば可搬型の記憶媒体に記憶された情報を読み取る読取部、操作入力を受け付ける入力部、又は、画像を表示する表示部等を含んでもよい。
【0023】
また本実施の形態に係るサーバ装置3には、記憶部32に記憶されたサーバプログラム32aを処理部31が読み出して実行することにより、画像取得部31a、人検出部31b、座標変換部31c、バウンディングボックス(
図2においてBBoxと略示する)生成部31d、座標逆変換部31e、バウンディングボックス調整部31f、画像重畳部31g及び画像送信部31h等が、ソフトウェア的な機能部として処理部31に実現される。なお本図においては、処理部31の機能部として、カメラ1が撮影した画像に対する処理を行う機能部を図示し、これ以外の処理に関する機能部は図示を省略している。
【0024】
画像取得部31aは、カメラ1が送信する画像を通信部33にて受信することで、カメラ1が撮影した画像(撮影画像)を取得する。なお本実施の形態においてカメラ1は広角レンズを通して撮影を行うものであり、画像取得部31aが取得する撮影画像は、周辺部分に歪みがある画像(歪曲画像)である。画像取得部31aは、取得した撮影画像を記憶部32に一時的に記憶する。なお画像取得部31aにより記憶部32に一時的に記憶された撮影画像は、後続の画像処理によりバウンディングボックスが重畳されて端末装置5へ送信された後、適宜のタイミングで記憶部32から消去されてよい。
【0025】
人検出部31bは、画像取得部31aがカメラ1から取得した撮影画像に写された人の頭部を検出する処理を行う。本実施の形態において人検出部31bは、記憶部32に記憶されたYOLO学習モデル32bを用いて検出処理を行う。人検出部31bは、画像取得部31aがカメラ1から取得した歪みのある撮影画像をYOLO学習モデル32bへ入力する。YOLO学習モデル32bは、入力画像に写された人の頭部を検出し、検出した人の頭部を囲むバウンディングボックスを生成し、生成したバウンディングボックスの情報を出力する。
【0026】
本実施の形態においてYOLO学習モデル32bが出力するバウンディングボックスは、検出した人の身体を囲む長方形状の枠体である。この枠体は、例えば撮影画像の2次元平面における2点の座標を用いて表される。例えば枠体は、左上角部分の座標(x1、y1)と、右下角部分の座標(x2、y2)とで表され、YOLO学習モデル32bは、この(x1、y1)及び(x2、y2)の座標をバウンディングボックスの情報として出力する。なお撮影画像に複数の人が写されている場合、YOLO学習モデル32bは、各人について頭部を囲むバウンディングボックスを生成し、各バウンディングボックスの座標を出力する。
【0027】
人検出部31bは、撮影画像の入力に対してYOLO学習モデル32bが出力するバウンディングボックスの情報を取得する。また本実施の形態において人検出部31bは、YOLO学習モデル32bから取得したバウンディングボックスの情報に基づいて、撮影画像に写された人の頭部の中心の座標を算出する。例えば、YOLO学習モデル32bがバウンディングボックスの左上角部分の座標(x1、y1)及び右下角部分の座標(x2、y2)を出力する場合、人検出部はこの2点の中点の座標を算出することで、人の頭部の中心の座標を算出する。人検出部31bは、算出した人の頭部の中心の座標を座標変換部31cへ与える。
【0028】
座標変換部31cは、人検出部31bが検出した人の頭部の中心の座標に対して、所定の座標変換処理を行う。人検出部31bから座標変換部31cへ与えられる座標は、カメラ1が撮影した歪みのある撮影画像における2次元の座標である。座標変換部31cは、この2次元の座標を、3次元仮想空間における3次元の座標に変換する処理を行う。座標変換部31cが行う座標変換処理の詳細は、後述する。
【0029】
バウンディングボックス生成部31dは、座標変換部31cにより変換された人の頭部の中心(重心)の3次元仮想空間における3次元の座標に基づいて、この人の頭部を囲む3次元のバウンディングボックスを生成する。本実施の形態においてバウンディングボックス生成部31dが生成する3次元のバウンディングボックスは、例えば直方体又は立方体の形状である。また更に本実施の形態に係るバウンディングボックス生成部31dは、この人の身体(首より下の部分)を囲む3次元のバウンディングボックスを生成する。即ちバウンディングボックス生成部31dは、撮影された画像から検出された人に対して、頭部と頭部以外の身体とをそれぞれ囲む2つの3次元のバウンディングボックスを生成する。なおバウンディングボックス生成部31dは、身体を囲むバウンディングボックスを生成する際に、対象となる人の身長が所定値(例えば160cm、170cmなど)と仮定して、バウンディングボックスの高さ(長さ)を決定する。
【0030】
座標逆変換部31eは、バウンディングボックス生成部31dが生成したバウンディングボックスの3次元の座標を、2次元の座標へ変換する処理を行う。座標逆変換部31eが行う3次元座標から2次元座標への変換処理は、座標変換部31cによる2次元座標から3次元座標への変換処理の逆変換に相当する。座標逆変換部31eにより変換処理がなされたバウンディングボックスは、カメラ1が撮影した撮影画像の2次元平面に対して、3次元のバウンディングボックスを投影して2次元化した者に相当する。座標逆変換部31eが行う座標変換処理の詳細は、後述する。
【0031】
バウンディングボックス調整部31fは、座標逆変換部31eによる3次元のバウンディングボックスの2次元座標への変換結果に基づいて、バウンディングボックスのサイズを調整する処理を行う。上述のようにバウンディングボックス生成部31dは、撮影画像に写る人の身体を囲むバウンディングボックスを生成する際に、この人の身長が所定値であると仮定してバウンディングボックスの高さを決定するが、実際の身長は仮定した身長とは異なる場合がある。このため、バウンディングボックス調整部31fは、バウンディングボックスの高さを調整する。本実施の形態においてバウンディングボックス調整部31fは、座標逆変換部31eにより2次元座標に変換された頭部を囲むバウンディングボックスと、人検出部31bがYOLO学習モデル32bを用いて生成した頭部を囲むバウンディングボックスとの大きさを比較し、この比較結果に基づいて身体を囲むバウンディングボックスの高さを調整する。
【0032】
画像重畳部31gは、画像取得部31aが取得したカメラ1の撮影画像に対して、バウンディングボックス調整部31fが高さを調整した最終的なバウンディングボックスを重畳する画像処理を行う。画像重畳部31gは、撮影画像にバウンディングボックスを重畳した画像を、画像送信部31hへ与える。
【0033】
画像送信部31hは、画像重畳部31gから与えられた画像を、通信部33にて所定の端末装置5へ送信する処理を行うことにより、端末装置5にこの画像を表示させる。なお本実施の形態においては、撮影画像にバウンディングボックスを重畳する画像処理をサーバ装置3が行っているが、これに限るものではなく、例えばサーバ装置3は撮影画像及びバウンディングボックスの情報を端末装置5へ送信し、端末装置5が撮影画像にバウンディングボックスを重畳して表示してもよい。
【0034】
図3は、本実施の形態に係る端末装置5の構成を示すブロック図である。本実施の形態に係る端末装置5は、処理部51、記憶部(ストレージ)52、通信部(トランシーバ)53、表示部(ディスプレイ)54及び操作部55等を備えて構成されている。端末装置5は、例えばカメラ1が撮影した画像に基づいて監視等の業務を行うユーザが使用する装置であり、例えばパーソナルコンピュータ、スマートフォン又はタブレット型端末装置等の情報処理装置を用いて構成され得る。
【0035】
処理部51は、CPU又はMPU等の演算処理装置、ROM及び等を用いて構成されている。処理部51は、記憶部52に記憶されたプログラム52aを読み出して実行することにより、サーバ装置3から送信されるカメラ1の撮影画像を受信して表示部に表示する等の種々の処理を行う。
【0036】
記憶部52は、例えばハードディスク又はフラッシュメモリ等の記憶装置を用いて構成されている。記憶部52は、処理部51が実行する各種のプログラム、及び、処理部51の処理に必要な各種のデータを記憶する。本実施の形態において記憶部52は、処理部51が実行するプログラム52aを記憶している。本実施の形態においてプログラム52aは遠隔のサーバ装置等により配信され、これを端末装置5が通信にて取得し、記憶部52に記憶する。ただしプログラム52aは、例えば端末装置5の製造段階において記憶部52に書き込まれてもよい。例えばプログラム52aは、メモリカード又は光ディスク等の記録媒体98に記録されたプログラム52aを端末装置5が読み出して記憶部52に記憶してもよい。例えばプログラム52aは、記録媒体98に記録されたものを書込装置が読み出して端末装置5の記憶部52に書き込んでもよい。プログラム52aは、ネットワークを介した配信の態様で提供されてもよく、記録媒体98に記録された態様で提供されてもよい。
【0037】
通信部53は、携帯電話通信網、無線LAN及びインターネット等を含むネットワークNを介して、種々の装置との間で通信を行う。本実施の形態において通信部53は、ネットワークNを介して、サーバ装置3との間で通信を行う。通信部53は、処理部51から与えられたデータを他の装置へ送信すると共に、他の装置から受信したデータを処理部51へ与える。
【0038】
表示部54は、液晶ディスプレイ等を用いて構成されており、処理部51の処理に基づいて種々の画像及び文字等を表示する。操作部55は、ユーザの操作を受け付け、受け付けた操作を処理部51へ通知する。例えば操作部55は、機械式のボタン又は表示部54の表面に設けられたタッチパネル等の入力デバイスによりユーザの操作を受け付ける。また例えば操作部55は、マウス及びキーボード等の入力デバイスであってよく、これらの入力デバイスは端末装置5に対して取り外すことが可能な構成であってもよい。
【0039】
また本実施の形態に係る端末装置5は、記憶部52に記憶されたプログラム52aを処理部51が読み出して実行することにより、画像受信部51a及び表示処理部51b等がソフトウェア的な機能部として処理部51に実現される。なおプログラム52aは、本実施の形態に係る情報処理システムに専用のプログラムであってもよく、インターネットブラウザ又はウェブブラウザ等の汎用のプログラムであってもよい。
【0040】
画像受信部51aは、サーバ装置3が送信する画像を、通信部53にて受信する処理を行う。画像受信部51aは、受信した画像を例えば記憶部52に一時的に記憶する。本実施の形態において画像受信部51aがサーバ装置3から受信する画像は、カメラ1の撮影画像にバウンディングボックスが重畳された画像である。
【0041】
表示処理部51bは、表示部54に対して種々の文字又は画像等を表示する処理を行う。本実施の形態において表示処理部51bは、画像受信部51aがサーバ装置3から受信した画像、カメラ1の撮影画像にバウンディングボックスが重畳された画像を、表示部54に表示する。なお、本実施の形態においてカメラ1は1秒間に数十回程度の頻度で撮影を繰り返し行っている、即ち動画像の撮影を行っている。サーバ装置3は、カメラ1が1秒間に数十回程度の頻度で撮影した各撮影画像に対してバウンディングボックス重畳して端末装置5へ送信し、端末装置5の表示処理部51bはサーバ装置3から受信した画像を1秒間に数十回程度の頻度で表示することにより、バウンディングボックスが重畳された動画像を表示する。
【0042】
<バウンディングボックス生成処理>
図4は、本実施の形態に係るサーバ装置3が行うバウンディングボックス生成処理を説明するための模式図である。本図において符号110を付した四角形は、カメラ1が撮影した撮影画像を示している。本実施の形態に係るカメラ1は広角レンズを通して撮影を行うものであり、撮影画像110は、レンズによる歪みを含む画像(歪曲画像)である。カメラ1から撮影画像110を取得したサーバ装置3は、YOLO学習モデル32bを用いて、この撮影画像110に含まれる人の頭部を検出する処理を行う。YOLO学習モデル32bを用いた検出処理を行うことによってサーバ装置3は、撮影画像110に含まれる人の頭部を囲むバウンディングボックス111の座標等の情報を検出結果として取得することができる。サーバ装置3は、YOLO学習モデル32bから取得したバウンディングボックス111の座標等の情報に基づいて、人の頭部の中心点112(バウンディングボックスの中心点)の座標(2次元座標)を算出する。
【0043】
次いでサーバ装置3は、撮影画像110に含まれる人の頭部の中心点112の座標を、撮影画像110から歪みを取り除いた2次元平面において対応する点113の2次元の座標に変換する。レンズによる歪みを含む画像を補正する画像処理は、従来技術であるため詳細な説明は省略するが、例えばレンズ歪みモデルを用いた以下の近似式に基づいて、歪みのある画像の点(xd,yd)と歪みのない画像の点(x,y)とを相互に変換することができる。
【0044】
【0045】
サーバ装置3は、歪みを含む撮影画像110に含まれる人の頭部の中心に相当する点112の2次元座標を、上記の(1)式に基づいて、歪みを取り除いた2次元平面における点113の2次元座標に変換する。なお本実施の形態においてサーバ装置3は、撮影画像110に含まれる全ての点について座標変換を行う必要はなく、人の頭部の中心に相当する点112の座標のみを変換すればよい。
【0046】
次いでサーバ装置3は、人の頭部の中心に相当する点113の2次元座標を、3次元仮想空間における3次元座標に変換する処理を行う。この際に行われる2次元座標から3次元座標への変換は、一般的に3次元仮想空間に仮想カメラを設定して2次元画像を生成する際に行われる変換処理の逆変換処理に相当するものである。このため、まず3次元座標から2次元座標への変換処理を説明し、その後にこの変換処理を逆方向へ適用した2次元座標から3次元座標への変換処理を説明する。
【0047】
3次元座標には、ワールド座標系とカメラ座標系との2種類が存在する。ワールド座標系は、3次元仮想空間の特定位置を原点としてXYZの座標を定めたものである。カメラ座標系は、3次元仮想空間に配置されたカメラを原点としてXYZの座標を定めたものである。ワールド座標系の座標を(Xw,Yw,Zw)とし、カメラ座標系の座標を(Xc,Yc,Zc)とすると、ワールド座標系からカメラ座標系への変換は、カメラの外部変数(extrinsic parameters)と呼ばれる定数を用いて、以下の(2)式で行うことができる。
【0048】
【0049】
更に、2次元平面における点の座標を(u,v)とすると、カメラ座標系から2次元座標への変換は、カメラの内部変数(intrinsic parameters)と呼ばれる定数を用いて、以下の(3)式で行うことができる。
【0050】
【0051】
なお、上記の(2)式及び(3)式において、カメラの内部変数及び外部変数は、カメラの特性及びカメラの位置等に基づいて決定される定数である。また(3)式の定数cは、スケール又は比率等を表す数値であり、システムの構成等に応じて決定される。上記の(2)式及び(3)式に基づいて、ワールド座標系の3次元座標から2次元平面の2次元座標への変換は、以下の(4)式で行うことができる。
【0052】
【0053】
ワールド座標系の任意の点(Xw,Yw,Zw)を上記の(4)式へ代入することで、対応する2次元座標(u,v)を一意に特定することができる。(4)式の逆演算、即ちカメラの内部変数及び外部変数の行列の逆行列と2次元座標との積を算出する演算を行う事で、2次元座標を3次元座標へ変換することが期待できるが、2次元座標から3次元座標への変換は次元数が増加するため、3次元座標を一意に特定するには情報が不足している。そこで本実施の形態に係る情報処理システムでは、撮影画像110から検出される人の身長が所定値(例えば175cm)であると仮定する。即ち、本実施の形態に係るサーバ装置3は、(4)式においてZwの値を所定値と仮定し、2次元座標(u,v)から3次元座標のXw及びYwの値を算出することで、2次元座標を3次元座標への変換を行う。
【0054】
サーバ装置3は、歪みが取り除かれた2次元平面上の点113の2次元座標を、上記の(4)式に基づいて、ワールド座標系の対応する点114の3次元座標へ変換する。なお
図4においては、2次元座標からカメラ座標系の3次元座標への変換と、カメラ座標系の3次元座標からワールド座標系の3次元座標への変換とを分けて図示しているが、サーバ装置3はこの2段階の座標変換を一括して行ってよい。
【0055】
次いでサーバ装置3は、ワールド座標系の3次元空間において、撮影画像110から検出された人の頭部を囲む3次元のバウンディングボックス115と、頭部より下の身体を囲む3次元のバウンディングボックス116とを生成する処理を行う。まずサーバ装置3は、上記の座標変換により得られた点114を人の頭部の中心(重心)であると見なし、点114を中心に所定サイズの直方体型の枠を生成することで、頭部を囲む3次元のバウンディングボックス115を生成する。本例では、頭部を囲む3次元のバウンディングボックス115を、20cm×20cm×20cmの立方体型としている。
【0056】
サーバ装置3は、頭部を囲む3次元のバウンディングボックス115の下方に、所定サイズの直方体型の枠を生成することで、身体を囲む3次元のバウンディングボックス116を生成する。本例では、人の身長を175cmとし、頭部を囲む3次元のバウンディングボックス115との間に5cmの隙間を設けて、身体を囲む3次元のバウンディングボックス116を50cm×50cm×150cmの直方体型としている。
【0057】
次いでサーバ装置3は、ワールド座標系の3次元空間において生成した3次元のバウンディングボックス115及び116を、カメラ座標系の3次元空間の3次元のバウンディングボックス117及び118へ変換し、更に2次元平面におけるバウンディングボックス119及び120へ変換する。このときにサーバ装置3は、上記の(4)式を用いて、ワールド座標系の3次元のバウンディングボックス115及び116、2次元平面におけるバウンディングボックス119及び120へ直接的に変換してよい。サーバ装置3は、3次元のバウンディングボックス115及び116に含まれる複数の頂点に対して(4)式の座標変換を行い、座標変換後の2次元平面上の複数の頂点を結んでバウンディングボックス119及び120を生成してもよく、3次元のバウンディングボックス115及び116を構成する頂点及び枠線等の全ての点について座標変換を行ってバウンディングボックス119及び120を生成してもよい。
【0058】
次いでサーバ装置3は、歪みのない2次元平面上のバウンディングボックス119及び120を、広角レンズの歪みを含む画像上のバウンディングボックス121及び122に変換する処理を行う。このときにサーバ装置3は、上記の(1)式に基づいて、バウンディングボックスの座標を変換する。サーバ装置3は、歪みのない2次元平面上のバウンディングボックス119及び120に含まれる複数の頂点に対して(1)式の座標変換を行い、座標変換後の歪みのある画像上の複数の頂点を結んでバウンディングボックス121及び122を生成してもよく、バウンディングボックス119及び120を構成する頂点及び枠線等の全ての点について座標変換を行ってバウンディングボックス121及び122を生成してもよい。
図4に示す例では、バウンディングボックスの全ての点について座標変換を行っており、これにより歪んだ線を含むバウンディングボックス121及び122が得られている。
【0059】
なお、上述の処理により生成されるバウンディングボックス121及び122は、立方体及び直方体等の立体形状の3次元のバウンディングボックス115及び116を2次元平面に投影した形状である。サーバ装置3は、この立方体及び直方体等の立体形状のバウンディングボックスを、例えば正方形又は長方形等の平面形状のバウンディングボックスに整形してもよい。
【0060】
<バウンディングボックス調整処理>
上述のバウンディングボックス生成処理にて生成されるバウンディングボックスは、撮影画像から検出された人が立っているものとし、その身長を所定値(例えば175cm)と仮定して生成したものである。人毎の身長の差異は数10cm以内に収まると考えられるが、人が座っている場合には地面から頭部までの高さは身長よりも50cm以上低くなる可能性があり、座っている人に対して生成したバウンディングボックスの高さが不適切なものとなる可能性がある。そこで本実施の形態に係るサーバ装置3は、バウンディングボックス(身体を囲むバウンディングボックス)の高さを調整する処理を行う。
【0061】
図5及び
図6は、本実施の形態に係るサーバ装置3が行うバウンディングボックス調整処理を説明するための模式図である。サーバ装置3は、カメラ1が撮影した撮影画像110に写された人の頭部に対してYOLO学習モデル32bが付与したバウンディングボックス111のサイズ(第2サイズ)と、ワールド座標系において人の頭部を囲む3次元のバウンディングボックス115に基づいて生成したバウンディングボックス121のサイズ(第1サイズ)とを比較し、比較結果に基づいて人の身体を囲むバウンディングボックス122の高さを調整する。
【0062】
図5に示す示の例では、カメラ1が撮影対象となる人よりも高い位置に設置されており、カメラ1が俯瞰する態様で周囲の撮影を行っている。カメラ1の撮影により得られる撮影画像110は、カメラ1の光軸に垂直な平面に投影された像とみなすことができ、図中では符号110を付した直線で示している。図示の状況において、カメラ1から近い位置Aに立っている人の頭部と、カメラ1から遠い位置Bに座っている人の頭部とは、撮影画像110において同じ位置に写されることとなる。ただし、カメラ1に近い位置Aの人の頭部の方が、カメラ1から遠い位置Bの人の頭部より、撮影画像110において大きく写される。
【0063】
本実施の形態に係る情報処理システムでは、バウンディングボックスを生成する際に撮影画像110から検出した人が所定の身長で立っているものと仮定している。このため撮影画像110に写された人に対して生成したバウンディングボックスは、
図5の位置Aに立っている人に適したものとなるが、実際には位置Bに座っている人が撮影画像110に写されている可能性がある。
【0064】
撮影画像110に写された人が位置Bに座っている人である場合、
図6上段に示すように、撮影画像110からYOLO学習モデル32bが検出した人の頭部を囲むバウンディングボックス111は、3次元のバウンディングボックス115に基づいて生成したバウンディングボックス121より小さい。これに対して、撮影画像110に写された人が位置Aに立っている人である場合、
図6下段に示すように、撮影画像110からYOLO学習モデル32bが検出した人の頭部を囲むバウンディングボックス111と、3次元のバウンディングボックス115に基づいて生成したバウンディングボックス121とは、略同じ大きさとなる。
【0065】
本実施の形態に係るサーバ装置3は、3次元のバウンディングボックス115に基づいて撮影画像110に重畳する2次元のバウンディングボックス121を生成した後、このバウンディングボックス121のサイズ(第1サイズ)と、YOLO学習モデル32bが検出した人の頭部を囲むバウンディングボックス111のサイズ(第2サイズ)とを比較する。サイズの比較は、例えば面積、最も長い辺の長さ、又は、対角線の長さ等の比較により行われ得る。なおサーバ装置3は、バウンディングボックス121は立体形状であるため、これを平面形状(長方形又は正方形)のバウンディングボックスに変換してサイズを比較してもよい。サーバ装置3は、例えばバウンディングボックス121を内包する最小の正方形又は長方形の枠体を生成することで、立体形状のバウンディングボックス121を平面形状へ変換することができる。2つのバウンディングボックス111,121のサイズが略同じである場合、サーバ装置3は、生成したバウンディングボックス121,122が適切なものであると判断し、これを採用する。
【0066】
3次元のバウンディングボックス115に基づいて生成したバウンディングボックス121のサイズよりYOLO学習モデル32bのバウンディングボックス111のサイズが小さい場合、サーバ装置3は、生成したバウンディングボックス121,122が不適切なものであると判断し、バウンディングボックスの調整を行う。サーバ装置3は、撮影画像110に写された人の身長(地面から頭部までの高さ)を、立っている人の所定の身長(例えば170cm)から、座っている人の地面から頭部までの所定の高さ(例えば100cm)へ変更し、上述のバウンディングボックスの生成処理を行う事で、座っている人に適した撮影画像110上のバウンディングボックス121,122を生成する。
【0067】
なお、頭部の高さの推定値を変更することによって、(4)式にて算出されるワールド座標系での3次元座標のXw,Ywの値も変化する。このため、上述のバウンディングボックスを調整する処理は、ワールド座標系における人の位置を調整する処理でもある。このため、サーバ装置3は、例えば撮影画像110に写された人の頭部の高さの推定値を増減させ、3次元のバウンディングボックス115から生成したバウンディングボックス121のサイズと、YOLO学習モデル32bのバウンディングボックス111のサイズとが一致する(差が閾値以下となる)場合の頭部の高さを探索することで、ワールド座標系における人の身長(地面から頭部までの高さ)を精度よく推定することができると共に、ワールド座標系における人の位置を精度よく推定することができる。
【0068】
また人の身長及び位置の推定は、高さの推定値の増減を繰り返して2つのバウンディングボックス121,111のサイズが一致する値を探索する方法の他に、例えば機械学習により学習がなされた学習モデルを用いる方法が採用され得る。学習モデルは、例えば2つのバウンディングボックス121,111のサイズ又は2つのバウンディングボックス121、111が付された画像を入力として受け付けて、対象となる人の高さを出力するように、予め機械学習がなされたものとすることができる。
【0069】
本実施の形態においては、地面から頭部までの高さについて170cm又は100cm等の数値を用いて演算を行っているが、これらの数値は一例であって、これに限るものではない。これらの数値は、本実施の形態に係る情報処理システムの設計者等により予め決定されて、サーバプログラム32aと共に処理のデフォルト値としてサーバ装置3の記憶部32に記憶されてよい。またこれらの数値については、サーバ装置3が処理を実施する際にユーザからの入力を受け付けてもよい。サーバ装置3は、例えばユーザが数値を入力した場合にはこの数値を用いて処理を行い、数値が入力されない場合にはデフォルト値を用いて処理を行うことができる。
【0070】
バウンディングボックス121,122の調整を終えたサーバ装置3は、得られたバウンディングボックス121,122をカメラ1による撮影画像110に重畳した画像を生成する。サーバ装置3は、生成した画像を所定の端末装置5へ送信し、この画像を端末装置5の表示部54に表示させる。これにより端末装置5を使用するユーザは、カメラ1の撮影画像110に写された人がバウンディングボックス121,122で囲まれた画像を端末装置5にて確認することができる。
【0071】
図7は、端末装置5による画像の表示例を示す模式図である。図示の表示例では、カメラ1が撮影する部屋の中に2人の人がおり、各人に対して頭部を囲むバウンディングボックスと、身体を囲むバウンディングボックスとが各人に重畳して表示されている。カメラ1は例えば1秒間に数十回程度の頻度で撮影を繰り返し行っており、端末装置5が表示する画像も同程度の頻度で更新される。即ち、本実施の形態においてカメラ1は動画像を撮影し、端末装置5は動画像を表示する。各人を囲むバウンディングボックスは、画像中において人が移動した場合に、この人の移動に追従して移動する。
【0072】
また図示の例では、端末装置5の表示部54に表示される画面の右下に設けられた正方形の領域に、検出した2人の位置関係を示す点が2つ示されている。本例においてサーバ装置3は、上述のバウンディングボックスのサイズ比較に基づく人の位置推定を行い、推定の結果得られた各人のワールド座標系における3次元座標からXYの2次元についての座標(Xw,Yw)を取得する。サーバ装置3は、各人の2次元座標(Xw,Yw)に基づいて、正方形領域に各人に対応する点をプロットすることにより、撮影画像から検出された人の位置の推定結果をユーザに提示することができる。
【0073】
<フローチャート>
図8は、本実施の形態に係るサーバ装置3が行う処理の手順を示すフローチャートである。本実施の形態に係るサーバ装置3の処理部31の画像取得部31aは、通信部33にてカメラ1との通信を行い、カメラ1が撮影した撮影画像を取得する(ステップS1)。処理部31の人検出部31bは、記憶部32に記憶されたYOLO学習モデル32bを用いて、ステップS1にて取得した撮影画像に写された人を検出する(ステップS2)。人検出部31bは、YOLO学習モデル32bが出力する人の頭部を囲むバウンディングボックスの位置等の情報に基づいて、人の頭部の中心点の座標を算出する(ステップS3)。
【0074】
処理部31の座標変換部31cは、ステップS3にて算出した撮影画像における頭部の中心点の座標を、上述の(1)式を用いた歪みを除去する演算を行うことにより、歪みが除去された2次元平面における2次元座標に変換する(ステップS4)。座標変換部31cは、検出された人が立っており且つ身長が所定値(例えば170cm)であると仮定し、上述の(4)式に基づいて、ステップS4にて変換した2次元座標をワールド座標系の3次元座標へ変換する(ステップS5)。
【0075】
処理部31のバウンディングボックス生成部31dは、ワールド座標系の3次元仮想空間において、ステップS5にて変換した3次元座標を中心として、所定サイズ(例えば20cm×20cm×20cm)の立方体形の枠体を生成することにより、検出された人の頭部を囲む3次元のバウンディングボックスを生成する(ステップS6)。バウンディングボックス生成部31dは、ステップS6にて生成した頭部を囲むバウンディングボックスの下方に、所定サイズ(例えば50cm×50cm×150cm)の直方体形の枠体を生成することにより、検出された人の身体(頭部より下の部分)を囲むバウンディングボックスを生成する(ステップS7)。
【0076】
処理部31の座標逆変換部31eは、上述の(4)式に基づいて、生成した2つのバウンディングボックスを2次元平面におけるバウンディングボックスに変換する(ステップS8)。座標逆変換部31eは、ステップS8にて変換された歪みのない2次元平面上のバウンディングボックスを、上述の(1)式を用いた歪みを付与する演算を行うことにより、歪みのある2次元平面(撮影画像)上のバウンディングボックスに変換する(ステップS9)。
【0077】
処理部31のバウンディングボックス調整部31fは、ステップS9にて変換したバウンディングボックスのうち、検出した人の頭部を囲むバウンディングボックスのサイズが、ステップS2にてYOLO学習モデル32bが出力した人の頭部を囲むバウンディングボックスのサイズと略同じ(差異が閾値以内)であるか否かを判定する(ステップS10)。両バウンディングボックスのサイズが異なる(差異が閾値を超える)場合(S10:NO)、バウンディングボックス調整部31fは、検出した人の身長、即ち地面から頭部までの高さを所定値(例えば170cm)から別の値へ変更し(ステップS11)、ステップS4へ処理を戻す。
【0078】
なお、検出した人が立っているか又は座っているかの判定ができ、高さの精度が、立っている場合と座っている場合との二通りの精度でよい場合は、ステップS11においてバウンディングボックス調整部31fは、人が座っている場合の頭部の高さとして予め定められた値(例えば100cm)に変更する。この場合に処理部31は、高さを変更してステップS4~S9の処理を行った後、ステップS10の判定は行わずに、ステップS12へ処理を進めてよい。
【0079】
これに対して、検出した人の身長及び座標等をより詳細に推定する場合には、ステップS11においてバウンディングボックス調整部31fは、人の身長の推定値を所定値(例えば1cm)ずつ増加又は減少させ、ステップS10の判定により両バウンディングボックスのサイズが略同じになるまでステップS4~S11の処理を繰り返し行う。バウンディングボックス調整部31fは、例えばステップS9にて変換したバウンディングボックスのサイズが、YOLO学習モデル32bによるバウンディングボックスのサイズより大きい場合、人の身長の推定値を減少させる。これに対してバウンディングボックス調整部31fは、ステップS9にて変換したバウンディングボックスのサイズが、YOLO学習モデル32bによるバウンディングボックスのサイズより大きい場合、人の身長の推定値を増加させる。
【0080】
両バウンディングボックスのサイズが略同じであると判定した場合(S10:YES)、処理部31の画像重畳部31gは、ステップS1にて取得した撮影画像に、ステップS9にて変換したバウンディングボックスを重畳した画像を生成する(ステップS12)。処理部31の画像送信部31hは、ステップS12にて生成した画像を、通信部33にて所定の端末装置5へ送信し(ステップS13)、処理を終了する。
【0081】
<画像抽出>
本実施の形態に係る情報処理システムでは、カメラ1の撮影画像からサーバ装置3が生成したバウンディングボックスについて、撮影画像に重畳して端末装置5に表示させる処理以外にも、種々の処理に用いることが期待できる。例えばサーバ装置3は、生成したバウンディングボックスに基づいて、撮影画像から人を含む画像領域を抽出する処理を行うことができる。
【0082】
なお、上述のバウンディングボックスの生成処理では、サーバ装置3は、撮影画像に写された人の頭部を囲むバウンディングボックスと、身体を囲むバウンディングボックスとの2つを生成した。本実施の形態に係るサーバ装置3は、画像抽出を行う際には、上記の2つのバウンディングボックスではなく、人の全身を囲む1つのバウンディングボックスを生成する。まず、この画像抽出用のバウンディングボックスの生成処理について説明する。
【0083】
図9は、本実施の形態に係るサーバ装置3が行う画像抽出用のバウンディングボックス生成処理を説明するための模式図である。サーバ装置3は、カメラ1から取得した撮影画像110について、YOLO学習モデル32bを用いた人の頭部の検出を行う。サーバ装置3は、歪みのある撮影画像における人の頭部の座標を、歪みを取り除いた2次元平面上の2次元座標、カメラ座標系の3次元空間における3次元座標、ワールド座標系の3次元空間における3次元座標へ順に変換する。なお、ここまでの座標変換処理は、
図4において説明した処理と同じであるため、詳細な説明は省略する。
【0084】
サーバ装置3は、ワールド座標系の3次元空間において、上記の座標変換処理により得られた頭部に対応する点114を囲むように、2つの長方形の平面状のバウンディングボックス141,142を生成する。1つ目のバウンディングボックス141は、例えば3次元座標のx方向に50cm、y方向に0cm、z方向に175cmの長方形の枠体とし、x方向の中心位置且つz方向の上から10cmの位置に点114が含まれるよう3次元空間に配置される。2つ目のバウンディングボックス142は、例えば3次元座標のx方向に0cm、y方向に50cm、z方向に175cmの長方形の枠体とし、y方向の中心位置且つz方向の上から10cmの位置に点114が含まれるよう3次元空間に配置される。この配置により、2つのバウンディングボックス141,142は交差(直交)する。
【0085】
なお上記の2つのバウンディングボックス141,142の形状及びサイズ等は一例であって、これに限るものではない。バウンディングボックス141,142の形状は、四角形でなくてよく、例えば三角形又は五角形以上の多角形であってよい。またバウンディングボックス141,142に関する50cm及び175cm等の数値は、適宜に変更され得る。これらの数値は、本実施の形態に係る情報処理システムの設計者等により予め決定されて、サーバプログラム32aと共に処理のデフォルト値としてサーバ装置3の記憶部32に記憶されてよい。またこれらの数値については、サーバ装置3が処理を実施する際にユーザからの入力を受け付けてもよい。サーバ装置3は、例えばユーザが数値を入力した場合にはこの数値を用いて処理を行い、数値が入力されない場合にはデフォルト値を用いて処理を行うことができる。
【0086】
またサーバ装置3は、
図5及び
図6等に示した方法で人の身長(地面から頭部まの高さ)を推定する処理を行っている場合、2つのバウンディングボックス141,142の高さ(z方向の長さ)を、推定された身長とすることができる。
【0087】
サーバ装置3は、ワールド座標系の3次元空間において生成したバウンディングボックス141,142を、カメラ座標系の3次元空間の3次元のバウンディングボックス143,144へ変換し、更に2次元平面におけるバウンディングボックス145,146へ変換する。このときにサーバ装置3は、上記の(4)式を用いて、ワールド座標系のバウンディングボックス141,142を、2次元平面におけるバウンディングボックス145,146へ直接的に変換してよい。
【0088】
サーバ装置3は、歪みのない2次元平面上のバウンディングボックス145,146を、広角レンズの歪みを含む画像上のバウンディングボックスに変換する。このときにサーバ装置3は、上記の(1)式に基づいて、バウンディングボックスの座標を変換することができる。次いでサーバ装置3は、座標変換により得られた2つのバウンディングボックスのうち、いずれか一方のバウンディングボックスを選択し、選択した一方を画像抽出用のバウンディングボックス147とする。サーバ装置3は、例えば歪みを含む画像上の2つのバウンディングボックスの幅又は面積等を比較し、幅又は面積等が大きいバウンディングボックスを選択することができる。
【0089】
サーバ装置3は、上記の手順で生成した画像抽出用のバウンディングボックス147を用いて、カメラ1から取得した歪みを含む撮影画像から、この画像に写された人を含む画像領域を抽出する処理を行う。なおサーバ装置3は、
図9に示した手順で画像抽出用のバウンディングボックス147を生成するのではなく、
図4に示した手順で生成した2つのバウンディングボックス121,122に基づいて、画像抽出用のバウンディングボックスを生成してもよい。この場合、サーバ装置3は、人の頭部を囲むバウンディングボックス121と、身体を囲むバウンディングボックス122とを統合して、画像抽出用の1つの2次元(長方形)のバウンディングボックスを生成することができる。サーバ装置3は、例えば頭部を囲むバウンディングボックス121と身体を囲むバウンディングボックス122とを内包する最小の長方形の枠体を生成することで、画像抽出用のバウンディングボックスを生成することができる。
【0090】
図10は、バウンディングボックスに基づく画像抽出を説明するための模式図である。
図10の上部には、カメラ1が撮影した撮影画像に写された人及びその周辺を拡大した画像が図示されている。カメラ1が広角レンズを通して撮影を行ったことで、図示の画像では人が地面に対して直立しておらず、斜めに傾いた(歪んだ)状態で人が画像中に写されている。この画像には、実線の長方形で示したバウンディングボックス131と、破線の長方形で示したバウンディングボックス132とが重ねて示されている。実線のバウンディングボックス131は、本実施の形態に係るサーバ装置3が、
図9に示した手順により生成した画像抽出用のバウンディングボックス131である。破線のバウンディングボックス132は、YOLOの手法により人の全体を検出してバウンディングボックスを付した場合のバウンディングボックス132である。
【0091】
サーバ装置3は、撮影画像に対して生成したバウンディングボックス131内の画像を抽出することで、歪みのある撮影画像から人が写された画像領域を抽出することができる。バウンディングボックス131に基づいて抽出された画像を、
図10の左下に示している。サーバ装置3は、撮影画像に対して傾いたバウンディングボックス131から抽出した画像に対して、傾きを補正する処理(例えば画像の回転処理など)を行う。
図10の左下には、抽出した画像に対する傾き補正後の画像が示されている。本実施の形態に係るサーバ装置3が生成したバウンディングボックス131に基づいて抽出される画像は、検出された人が画像の縦横方向(垂直方向及び水平方向)に沿って立つ画像となる。なお抽出した画像の傾きを補正する処理は、画像の回転以外の方法で行われてもよい。
【0092】
これに対してYOLOのバウンディングボックス132は、歪みのある撮影画像に対して、画像の縦横方向に沿う長方形のバウンディングボックスとなる。撮影画像からYOLOのバウンディングボックス132に基づいて画像領域を抽出した場合の画像を、
図10の右下に示している。YOLOのバウンディングボックス132に基づいて抽出される画像は、検出された人が画像内で傾いている(歪んでいる)ものとなる。また抽出された画像には、人以外のもの(例えば背景など)に属する画素の数が(バウンディングボックス131に基づいて抽出された画像と比較して)多く、人以外のものに関する情報を多く含む画像となる。
【0093】
サーバ装置3は、バウンディングボックス131に基づいて抽出した画像を、例えばこの画像に写された人が誰であるかを特定する処理、この画像に写された人の行動を認識する処理、又は、画像に写された人を追跡する処理等の種々の処理に対しての入力情報として用いることができる。本実施の形態に係るサーバ装置3が生成するバウンディングボックス131に基づいて抽出された画像は、YOLOのバウンディングボックス132に基づいて抽出された画像よりも、全画素数に対して検出された人が占める画素数の割合が高くなることが期待でき、より後続の処理の精度を高めることが期待できる。
【0094】
図11は、本実施の形態に係るサーバ装置3が行う画像抽出処理の手順を示すフローチャートである。本実施の形態に係るサーバ装置3の処理部31は、画像取得部31aにてカメラ1が撮影した撮影画像を取得し(ステップS31)、人検出部31bにてYOLO学習モデル32bを用いた人検出を行う(ステップS32)。人検出部31bは、YOLO学習モデル32bが出力する人の頭部を囲むバウンディングボックスの位置等の情報に基づいて、人の頭部の中心点の座標を算出する(ステップS33)。処理部31の座標変換部31cは、算出した頭部の中心点の座標を、歪みが除去された2次元平面における2次元座標に変換し(ステップS34)、2次元座標をワールド座標系の3次元座標へ変換する(ステップS35)。
【0095】
処理部31のバウンディングボックス生成部31dは、ワールド座標系の3次元仮想空間において、ステップS35にて変換した頭部の中心点の3次元座標を含む2つの長方形の平面状のバウンディングボックスを生成する(ステップS36)。2つのバウンディングボックスは、例えば50cm×0cm×175cmの長方形の平面形状の枠体、及び、0cm×50cm×175cmの長方形の平面形状の枠体とすることができる。
【0096】
処理部31の座標逆変換部31eは、生成した2つのバウンディングボックスを2次元平面におけるバウンディングボックスに変換する(ステップS37)。座標逆変換部31eは、ステップS37にて変換された歪みのない2次元平面上の2つのバウンディングボックスを、歪みのある2次元平面(撮影画像)上の2つのバウンディングボックスに変換する(ステップS38)。
【0097】
処理部31は、ステップS38にて生成した撮影画像上の2つのバウンディングボックスのうち、幅又は面積等が大きい一方のバウンディングボックスを画像抽出用に選択し、撮影画像から画像抽出用のバウンディングボックスで囲まれた画像領域を抽出する(ステップS39)。処理部31は、抽出した画像領域に対して、例えば回転等の処理を行う事で、傾きを補正し(ステップS40)、画像抽出処理を終了する。
【0098】
<まとめ>
以上の構成の本実施の形態に係る情報処理システムでは、広角レンズを通してカメラ1が撮影した歪みを含む撮影画像(歪曲画像)をサーバ装置3が取得し、取得した撮影画像に写された対象物(人)を検出する。サーバ装置3は、検出した人の2次元座標を仮想の3次元空間における3次元座標に変換し、3次元空間において対象物を囲む立体枠(立体形状のバウンディングボックス)を生成する。サーバ装置3は、生成した立体枠の3次元座標をカメラ1が撮影した撮影画像における2次元座標へ逆変換する。サーバ装置3は、これらにより得られた平面枠(平面形状のバウンディングボックス)を、カメラ1が撮影した歪みのある撮影画像に重畳して、端末装置5等に表示させる。これによりサーバ装置3は、歪みのある撮影画像に適したバウンディングボックスを重畳して、撮影画像からの対象物の検出結果をユーザへ提示することが期待できる。
【0099】
また本実施の形態に係るサーバ装置3は、カメラ1が撮影した歪みのある撮影画像における対象物の2次元座標を、歪みを取り除いた画像における2次元座標へ変換する。サーバ装置3は、歪みを取り除いた画像における2次元座標をカメラ1を中心とするカメラ座標系の3次元座標へ変換し、カメラ座標系の3次元座標をワールド座標系の3次元座標へ変換して、ワールド座標系において対象物を囲む立体枠を生成する。これによりサーバ装置3は、広角レンズを通して撮影された歪みのある撮影画像から、この撮影画像に写された対象物を囲む立体枠を精度よく生成することが期待できる。なお本実施の形態においてサーバ装置3は、2次元座標からカメラ座標系の3次元座標への変換と、カメラ座標系の3次元座標からワールド座標系の3次元座標への変換とを(4)式に基づいて一括して行っているが、これに限るものではなく、各座標変換を個別に行ってもよい。
【0100】
また本実施の形態に係るサーバ装置3は、歪みを含む撮影画像に写された人の頭部を検出し、人の頭部の2次元座標を3次元座標へ変換し、3次元仮想空間において人の頭部を囲む第1の立体枠を生成し、人の身体を囲む第2の立体枠を生成し、第1の立体枠及び第2の立体枠を結合して人を囲む立体枠を生成する。これにより、サーバ装置3が行う座標変換の処理負荷を低減することが期待できる。
【0101】
また本実施の形態に係るサーバ装置3は、人の頭部を囲む所定サイズの第1の立体枠を生成し、人の身体を囲む所定サイズの第2の立体枠を生成し、第1の立体枠及び第2の立体枠を結合して人を囲む立体枠を生成し、この立体枠の3次元座標を撮影画像の2次元平面における2次元座標へ変換する。サーバ装置3は、2次元座標へ変換された平面枠のうち第1の立体枠に相当する部分のサイズを算出し、歪みを含む撮影画像からの人の頭部の検出結果に基づく平面枠のサイズとの比較を行い、比較結果に基づいて第2の立体枠の高さを調整する。これによりサーバ装置3は、所定サイズとして生成した第2の立体枠を、検出した人の身長又は姿勢等に適したサイズに調整することが期待できる。
【0102】
また本実施の形態に係るサーバ装置3は、立体枠から変換された2次元の平面枠のうち第1の立体枠に相当する部分のサイズが、撮影画像からの人の頭部の検出結果に基づく平面枠のサイズより大きい場合、3次元仮想空間における第2の立体枠の高さを低減する。これによりサーバ装置3は、所定サイズとして生成した第2の立体枠を、検出した人の身長又は姿勢等に適したサイズに精度よく調整することが期待できる。
【0103】
また本実施の形態に係るサーバ装置3は、歪みを含む撮影画像に写された対象物の検出を、YOLOのアルゴリズムを用いて行う。YOLOのアルゴリズムは、画像から対象物を検出するアルゴリズムとして精度よく実績のあるものであり、検出した対象物にバウンディングボックスを付すことができるものであるため、本実施の形態に係るサーバ装置3が行う処理に適したアルゴリズムである。ただし、サーバ装置3はYOLO以外のアルゴリズムを利用して、撮影画像から対象物を検出してもよい。
【0104】
また本実施の形態に係る情報処理システムでは、広角レンズを通してカメラ1が撮影した歪みを含む撮影画像(歪曲画像)をサーバ装置3が取得し、取得した撮影画像に写された対象物(人)を囲む立体形状の枠(バウンディングボックス)を生成し、生成した立体形状の枠撮影画像に重畳して端末装置5の表示部54に表示させる。これにより情報処理システムは、歪みのある撮影画像に適したバウンディングボックスを重畳して、撮影画像に写された対象物の存在をユーザへ提示することが期待できる。
【0105】
また本実施の形態に係る情報処理システムは、生成した立体形状の枠に基づいて、歪みを含む撮影画像から対象物を含む部分画像を抽出する。これにより、抽出した部分画像に基づいて、例えば顔認証又は行動認識等の処理を精度よく行うことが期待できる。
【0106】
また本実施の形態に係る情報処理システムが生成する立体形状の枠には、対象物として撮影画像に写された人を検出し、人の頭部を囲む第1の枠と、この人の身体を囲む第2の枠とを含む。このような複数の枠を含む立体形状の枠を生成することによって、例えば顔認証又は行動認識等の処理に対して適した画像を抽出して用いることが可能となる。
【0107】
また本実施の形態に係る情報処理システムでは、サーバ装置3は、ワールド座標系の3次元の仮想空間で生成した立体のバウンディングボックスに基づいて撮影画像の2次元平面における平面枠を生成し、撮影画像からYOLO等のアルゴリズムにより直接的に生成した平面枠とのサイズ比較を行う。サーバ装置3は、この比較結果に基づいて対象物の地面からの高さ、3次元仮想空間における位置等を推定することができる。
【0108】
今回開示された実施形態はすべての点で例示であって、制限的なものではないと考えられるべきである。本発明の範囲は、上記した意味ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【0109】
1 カメラ
3 サーバ装置
5 端末装置
31 処理部
31a 画像取得部
31b 人検出部
31c 座標変換部
31d バウンディングボックス生成部
31e 座標逆変換部
31f バウンディングボックス調整部
31g 画像重畳部
31h 画像送信部
32 記憶部
32a サーバプログラム
32b YOLO学習モデル
33 通信部
51 処理部
51a 画像受信部
51b 表示処理部
52 記憶部
52a プログラム
53 通信部
54 表示部
55 操作部
98,99 記録媒体
101 バウンディングボックス
N ネットワーク
【要約】
【課題】歪みのある画像に対してバウンディングボックスを利用した画像処理を行うことが期待できる画像処理方法、コンピュータプログラム及び画像処理装置を提供する。
【解決手段】画像処理方法は、カメラが撮影した歪みを含む歪曲画像を取得し、歪曲画像に写された対象物を囲む立体形状の枠を生成し、立体形状の枠に基づいて歪曲画像から対象物を含む部分画像を抽出する。立体形状の枠は、対象物を囲む2つの平面形状の枠が交差した形状であってよい。歪曲画像における前記対象物の2次元座標を、仮想の3次元空間における3次元座標に変換し、3次元空間において対象物を囲む交差した2つの平面形状の枠を生成し、生成した枠の3次元座標を歪曲画像における2次元座標に逆変換し、歪曲画像におけるサイズに基づいて2つの平面形状の枠のいずれか1つを選択し、選択した平面形状の枠に基づいて、歪曲画像から対象物を含む部分画像を抽出してもよい。
【選択図】
図10