JP2019219804A - 物体検出装置及び物体検出方法 - Google Patents
物体検出装置及び物体検出方法 Download PDFInfo
- Publication number
- JP2019219804A JP2019219804A JP2018115379A JP2018115379A JP2019219804A JP 2019219804 A JP2019219804 A JP 2019219804A JP 2018115379 A JP2018115379 A JP 2018115379A JP 2018115379 A JP2018115379 A JP 2018115379A JP 2019219804 A JP2019219804 A JP 2019219804A
- Authority
- JP
- Japan
- Prior art keywords
- image
- detection
- preprocessing
- size
- camera
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Image Processing (AREA)
- Image Analysis (AREA)
Abstract
【課題】物体検出のコスト増加を抑えつつ撮影空間の奥にある物体の検出精度を向上させることができる物体検出装置及び物体検出方法を提供する。【解決手段】人物頭部検出装置6は、入力画像に対し人物を検出する検出領域を設定する検出領域設定部35と、入力画像に対し射影変換を含む前処理を施す前処理部32と、前処理の際に用いるパラメータを生成する前処理パラメータ算出部37と、所定の検出モデル42を用いて前処理を施した画像から人物を検出する人物頭部検出部34を備える。前処理パラメータ算出部37は、人物頭部を一定のサイズと仮定してカメラの撮影時のカメラパラメータ44から算出される人物頭部の画像上のサイズと、検出モデルを用いて検出可能な人物頭部の画像上の推奨サイズに基づき、射影変換を含む前処理のパラメータを生成する。【選択図】図3
Description
本発明は、カメラ等を用いて人物等の物体を検出する物体検出装置及び物体検出方法に関する。
監視カメラにて人物等の物体を検出する際、撮影画像内での物体のサイズや向きに関わらず、物体を正しく検出できることが要求される。その手法の1つとして、特許文献1には、撮影画像に射影変換を施した後で、機械学習などの手段により物体検出を行うことが開示されている。すなわち、人物等の物体の姿勢を判定するために、特定方向から撮影した学習画像を用いて特定姿勢の所定物体の特徴を学習しておき、所定物体がとり得る複数通りの姿勢を仮定して、仮定した姿勢ごとに当該姿勢の所定物体の像を特定姿勢の像に変換する射影変換を入力画像に施す。そして、射影変換を施した入力画像に窓領域を設定し、窓領域に特定姿勢の所定物体の特徴が現れている度合いであるスコアを算出することで、スコアが最も高い姿勢の所定物体が入力画像に撮影されていると判定する構成となっている。
近年、監視カメラの解像度が向上し、畳み込みニューラルネットワーク(CNN:Convolutional Numeral Network)を代表とする深層学習を用いて、物体検出を高精度に行うことが可能になっている。CNNでは基本的に矩形画像を入力し、画像内から所定の物体の検出を行う。その際計算が複雑になるため、よく利用される深層学習のモデルでは小さい画像で学習及び検出を行う。また物体検出アルゴリズムであるSSD(Single Shot Multibox Detector)では、検出できる物体のサイズは学習時のモデルに依存し、一定サイズ以上の物体しか検出できない。つまり、検出できる物体の画像内サイズは、学習時の画像内モデルサイズに依存する(以下、最小検出サイズと呼ぶ)。
高解像度で大きな画像の場合には、撮影空間の奥の物体まで検出できるが、処理負荷(以下、検出コスト)が増大する。このため、画像を縮小してから物体検出を行うことになるが、奥にある物体は画像内サイズが最小検出サイズに近づき、検出精度が低下する。一方、撮影空間の手前にある物体は、画面内サイズが最小検出サイズに比べて非常に大きくなるので、無駄なコストを費やすことになる。このように、奥行きのある撮影空間においては、物体の検出コストの低減と検出精度の向上を両立させることは困難であった。
前記特許文献1に記載される技術は、物体の姿勢の変化に対しては有効であるものの、物体の画像内サイズの変化については特に考慮されていない。すなわち、同じ物体であっても撮影空間においてカメラからの距離に応じて画像内サイズが変化することについて、考慮されていない。また、前記特許文献1では、複数通りの姿勢を仮定してそれぞれに対応した射影変換を繰り返して行う必要があり、深層学習を用いる物体検出ではコストが増大するという課題がある。
本発明の目的は、物体検出のコスト増加を抑えつつ撮影空間の奥にある物体の検出精度を向上させる物体検出装置及び物体検出方法を提供することである。
本発明の物体検出装置は、入力画像に対し物体を検出する検出領域を設定する検出領域設定部と、入力画像に対し射影変換を含む前処理を施す前処理部と、前処理の際に用いるパラメータを生成する前処理パラメータ算出部と、所定の検出モデルを用いて前処理を施した画像から物体を検出する物体検出部と、を備える。ここに前処理パラメータ算出部は、物体を一定のサイズと仮定してカメラの撮影時のカメラパラメータから算出される物体の画像上のサイズと、検出モデルを用いて検出可能な物体の画像上の推奨サイズに基づき、射影変換を含む前処理のパラメータを生成する。
また本発明の物体検出方法は、入力画像に対し前記物体を検出する検出領域を設定するステップと、入力画像に対し射影変換を含む前処理を施すステップと、前処理の際に用いるパラメータを生成する前処理パラメータの算出ステップと、所定の検出モデルを用いて前処理を施した画像から物体を検出するステップと、を備える。ここに前処理パラメータの算出ステップでは、物体を一定のサイズと仮定してカメラの撮影時のカメラパラメータから物体の画像上のサイズを算出し、検出モデルを用いて検出可能な物体の画像上の推奨サイズと比較して、射影変換を含む前処理のパラメータを生成する。
本発明によれば、物体検出のコスト増加を抑えつつ撮影空間の奥にある物体の検出精度を向上させることが可能となる。
以下、本発明の物体検出装置の実施形態として、人物の頭部を検出する人物頭部検出装置と、これを用いて道路等を通行する人物の数を計測する人数計測システムについて説明する。
図1は、人数計測システムの全体の構成を示す図である。人数計測システム1は、道路等の特定の領域2を通行する人物3を検出し、検出した人数の結果を時刻順に保存するシステムである。人数計測システム1は、特定の領域2を撮影する監視カメラ4と、LAN(Local Area Network)、WAN(Wide Area Network)、VPN(Virtual Private Network)などのネットワーク5と、ネットワーク5を介して監視カメラ4の画像を受信し、画像内に写っている人物3の頭部を検出し、検出した人数を計測する人物頭部検出装置6と、を有する。さらに、監視カメラ4の画像及び人物頭部検出装置6による検出結果をリアルタイムに表示する映像表示装置7と、検出した人数情報を時刻ごとに蓄積する人数履歴蓄積装置8と、を備えて構成される。このシステムでは人数の計測を目的としているため、人物頭部検出装置6では人物3の頭部を検出する方式として処理効率を上げている。以下、人物頭部検出装置6の詳細を説明する。
図2は、人物頭部検出装置6のハードウェア構成を示す図である。人物頭部検出装置6は、CPU(Central Processing Unit)11、ストレージ部12、メモリ20、入出力部21、通信部22と、これらを接続するバス19を含んで構成される。
CPU11は、各種演算を実行するユニットである。CPU11は、ストレージ部12からメモリ20にロードした所定のプログラムを実行することにより、各種処理を実行する。メモリ20には、CPU11により実行されるプログラムや、プログラムの実行に必要なデータが一時保存される。
ストレージ部12は、デジタル情報を記憶可能なハードディスク(Hard Disk Drive)やSSD(Solid State Drive)、あるいはフラッシュメモリなどの不揮発性記憶装置である。ストレージ部12には、以下のプログラムやデータが格納されている。
人数計測プログラム13は、人数計測に係わる全てのコンピュータに対する命令を記述したものである。CPU11は人数計測プログラム13をメモリ20に展開して、人数計測の各種処理を行う。
人数計測プログラム13は、人数計測に係わる全てのコンピュータに対する命令を記述したものである。CPU11は人数計測プログラム13をメモリ20に展開して、人数計測の各種処理を行う。
検出モデルDB(データベース)14は、物体を識別するためのパラメータを格納する。例えば、SVM(Support Vector Machine)識別器を用いて物体検出を行う場合、検出モデルDB14には、当該物体と他の物体の特徴量を区別するサポートベクターが格納されている。CNNを用いて物体検出を行う場合、検出モデルDB14には、CNNネットワークの構造を示すパラメータ及びCNNネットワークの学習済みモデルの初期化数値が格納されている。本実施例では、CNNネットワークのモデル情報が蓄積されている場合を想定して説明する。
検出モデル属性DB15は、検出モデルDB14に格納されているモデルについての、入力可能な画像サイズや検出可能な頭部サイズなどの属性を格納する。
検出モデル属性DB15は、検出モデルDB14に格納されているモデルについての、入力可能な画像サイズや検出可能な頭部サイズなどの属性を格納する。
カメラパラメータDB16は、監視カメラ4の高さ、俯角などの設置情報、及び画角や焦点距離などのカメラの撮影パラメータを格納する。
検出領域設定DB17は、特定領域2において人物3を検出したい領域を設定するための情報を格納する。
検出領域設定DB17は、特定領域2において人物3を検出したい領域を設定するための情報を格納する。
前処理パラメータDB18は、監視カメラ4からの入力画像に対して、検出精度を向上させるために射影変換などの前処理を行うためのパラメータを格納する。
入出力部21は、ユーザの操作を入力したり、外部装置と送受信する画像やデータの信号変換を行う。例えば入出力部21には、グラフィックボードやビデオカードなどが含まれ、監視カメラ4の画像や人数計測の結果などを映像表示装置7で表示可能な信号に変換する。
通信部22は、ネットワーク5を介して監視カメラ4の画像を受信し、人物検出結果を映像表示装置7や人数履歴蓄積装置8に送信する。
入出力部21は、ユーザの操作を入力したり、外部装置と送受信する画像やデータの信号変換を行う。例えば入出力部21には、グラフィックボードやビデオカードなどが含まれ、監視カメラ4の画像や人数計測の結果などを映像表示装置7で表示可能な信号に変換する。
通信部22は、ネットワーク5を介して監視カメラ4の画像を受信し、人物検出結果を映像表示装置7や人数履歴蓄積装置8に送信する。
図3は、人物頭部検出装置6のシステム構成を示す図である。人物頭部検出装置6は、画像入力部31、前処理部32、特徴量抽出部33、人物頭部検出部34、検出領域設定部35、画面上頭部サイズ算出部36、前処理パラメータ算出部37、検出結果統合部38、操作入力部39、出力制御部40、及びプログラム動作用データ41からなる。
まず、プログラム動作用データ41から説明すると、CPU11によりストレージ部12からロードされたもので、以下のデータが含まれる。検出モデル42は検出モデルDB14のデータであり、検出モデル属性43は検出モデル属性DB15のデータである。カメラパラメータ44はカメラパラメータDB16のデータであり、検出領域情報45は検出領域設定DB17のデータである。前処理パラメータ46は前処理パラメータDB18のデータである。
画像入力部31は、ネットワーク5を介して監視カメラ4から符号化された画像データを受信し、これを復号化してフレーム単位の画像に変換する。
前処理部32は、画像入力部31のカメラ画像(入力画像とも呼ぶ)に対して、前処理パラメータ46を用いて、画像の切出しや縮小と射影変換などの前処理を実施する。前処理は、撮影空間の奥にいる人物を精度良く検出するために行う。
前処理部32は、画像入力部31のカメラ画像(入力画像とも呼ぶ)に対して、前処理パラメータ46を用いて、画像の切出しや縮小と射影変換などの前処理を実施する。前処理は、撮影空間の奥にいる人物を精度良く検出するために行う。
特徴量抽出部33は、前処理部32による処理後の画像に対して、CNNネットワークなどを用いて特徴量の抽出を行う。
人物頭部検出部34は、検出モデル42と特徴量抽出部33で抽出した特徴量を用いて、人物頭部の有無を判定し、頭部ありの場合、さらに頭部の中心位置と頭部サイズ(幅と高さ)を算出する。
人物頭部検出部34は、検出モデル42と特徴量抽出部33で抽出した特徴量を用いて、人物頭部の有無を判定し、頭部ありの場合、さらに頭部の中心位置と頭部サイズ(幅と高さ)を算出する。
検出領域設定部35は、画像入力部31からのカメラ画像に対して、どの領域の人物を検出すべきかを設定する。カメラ画像のサイズ(横×縦)が大きい場合、CNNを用いて検出を行うために適切な画像サイズに縮小する。その際、検出領域を設定しないと、カメラ画像全体を所定サイズに縮小する結果、人物の頭部サイズが小さすぎて検出精度が低下することになる。そこで、検出領域を設定することで画像の縮小率を抑え、検出精度の低下を回避することができる。また、検出領域を設定することで、重視すべき領域が分かり、その領域に特化した前処理パラメータを算出することが可能になる。
画面上頭部サイズ算出部36は、所定のサイズ(身長、頭部サイズなど)の人物が画面上の各位置の地面に立っていると仮定して、画面上の各位置における人物頭部の画面上サイズを算出する。この計算では、監視カメラ4のカメラパラメータ44を用いる。すなわち、画面内に見える人物頭部の大きさは、カメラと人物の位置の幾何学関係から決定され、カメラから距離が遠くなるほど小さく見えるからである。
前処理パラメータ算出部37は、画面上頭部サイズ算出部36の算出結果に基づき、前処理部32にて射影変換などの前処理を行うときに用いる前処理パラメータ46を算出する。前処理パラメータ46には、画像の切出し領域や縮小率の情報も含む。
検出結果統合部38は、人物頭部検出部34の検出結果をもとに、人物の有無の情報と、検出した人物の座標(中心座標及び人物頭部に重畳する矩形マークの座標であって、前処理の前の画像における座標)を算出して、これらを統合して人物検出結果を出力する。
検出結果統合部38は、人物頭部検出部34の検出結果をもとに、人物の有無の情報と、検出した人物の座標(中心座標及び人物頭部に重畳する矩形マークの座標であって、前処理の前の画像における座標)を算出して、これらを統合して人物検出結果を出力する。
操作入力部39は、キーボードやマウスなどのデバイスであり、ユーザの操作を識別して操作命令に変換する。
出力制御部40は、検出結果統合部38からの人物検出結果と画像入力部31からのカメラ画像を、ユーザが視認可能な形式に変換して映像表示装置7にて表示させる。また、人物検出結果を人数履歴蓄積装置8へ出力して蓄積させる。
出力制御部40は、検出結果統合部38からの人物検出結果と画像入力部31からのカメラ画像を、ユーザが視認可能な形式に変換して映像表示装置7にて表示させる。また、人物検出結果を人数履歴蓄積装置8へ出力して蓄積させる。
次に、人物頭部検出装置6の動作を説明する。
図4は、人物頭部検出装置6の全体の動作フローを示す図である。動作フローは大きく4段階に分かれ、事前設定(S1)、前処理パラメータ生成(S2)、前処理(S3)、人数計測(S4)の順に行う。その概要は次の通りである。
図4は、人物頭部検出装置6の全体の動作フローを示す図である。動作フローは大きく4段階に分かれ、事前設定(S1)、前処理パラメータ生成(S2)、前処理(S3)、人数計測(S4)の順に行う。その概要は次の通りである。
事前設定(S1)では、人物検出で使用する検出モデルやカメラパラメータなどの条件を設定する。
前処理パラメータ生成(S2)では、カメラパラメータから人物頭部の画面上のサイズを算出し、それに基づき射影変換を含む前処理パラメータを生成する。
前処理(S3)では、前処理パラメータを用いて、入力画像に対し射影変換を含む前処理を実施する。
人数計測(S4)では、検出モデルを用いて前処理を施した画像から人物頭部を検出し、検出した人数と位置の情報を出力する。
以下、各段階の処理について詳細に説明する。
前処理パラメータ生成(S2)では、カメラパラメータから人物頭部の画面上のサイズを算出し、それに基づき射影変換を含む前処理パラメータを生成する。
前処理(S3)では、前処理パラメータを用いて、入力画像に対し射影変換を含む前処理を実施する。
人数計測(S4)では、検出モデルを用いて前処理を施した画像から人物頭部を検出し、検出した人数と位置の情報を出力する。
以下、各段階の処理について詳細に説明する。
(S1)事前設定(ステップS101〜S104)
図5は、事前設定の流れを示す図である。事前設定では、人物検出を行うための様々な条件を入力・設定する。
図5は、事前設定の流れを示す図である。事前設定では、人物検出を行うための様々な条件を入力・設定する。
ステップS101では、カメラパラメータ44を設定する。カメラパラメータ44は、監視カメラ4の仕様書や設置情報をもとに手動入力する。あるいは、カメラパラメータの推定手段による自動入力でも可能である。
図6は、カメラパラメータ44の設定例を示す図である。設定項目は、カメラの設置高さ、俯角、ロール角、焦点距離、イメージセンサーの横サイズCx、イメージセンサーの縦サイズCy、カメラ画像の横幅Wcam、カメラ画像の縦幅Hcamなどである。
ステップS102では、検出モデル42の指定として、人物頭部検出で利用すべき学習済みモデルを指定する。学習済みモデルとは、例えばCNNなどのニューラルネットワークを採用し、大量の同じサイズの人物頭部が含まれる画像を使ってネットワークの構造パラメータを算出したものである。
ステップS103では、検出モデル属性43を指定する。
図7は、検出モデル属性43のデータ構造を示す図である。検出モデル属性43の項目は、検出モデル42における推奨画像横幅Wopt、推奨画像縦幅Hopt、及び推奨頭部サイズVopt(幅×高さ)からなる。
図7は、検出モデル属性43のデータ構造を示す図である。検出モデル属性43の項目は、検出モデル42における推奨画像横幅Wopt、推奨画像縦幅Hopt、及び推奨頭部サイズVopt(幅×高さ)からなる。
推奨画像サイズWopt,Hoptは、検出モデル42が受付可能となる入力画像のサイズを指定する。もしも、入力画像のサイズが推奨画像サイズと異なる場合は、入力画像のサイズを変更(縮小/拡大)する。
推奨頭部サイズVoptは、検出モデル42にて頭部として検出可能となる頭部画像のサイズである。カメラ画像においてカメラからの距離が遠い人物は、頭部の画面上サイズが小さくなるため検出ができない場合がある。そこで、検出モデル42の学習時の頭部サイズに基づいて推奨頭部サイズVoptを指定する。例えば、学習データの中で頭部画像の平均サイズを推奨頭部サイズとして指定する。
ステップS104では、検出領域設定部35により検出領域を設定する。カメラ画像の中で、人物頭部を検出すべき領域を設定する。
図8は、検出領域設定の画面を示す図である。映像表示装置7の画面70には、監視カメラ4からの画像が表示されている。ここには、道路71や人物72が表示されている。検出領域の設定では、ユーザがマウス等を操作して操作入力部39が受付し、4つの画面上位置を連結して1つのポリゴンを生成する。このポリゴンの中の領域を検出領域とし、その境界線を画面上に表示する。図8の例ではポリゴンABCDの領域(破線で示す)が検出領域73であり、これに含まれる人物72が検出対象となる。なお、上記の操作を複数回行うことで複数の検出領域を設定することができる。ユーザはリセットボタン78を押すことで、設定した領域をリセットし再設定することができる。また、保存ボタン79を押すことで、設定した検出領域73は検出領域情報45として保存される。
図9は、検出領域情報45のデータ構造を示す図である。検出領域情報45において、領域IDは、複数のポリゴンがある場合に各ポリゴンを区別するための番号である。ポリゴン座標は、ポリゴンを構成する複数(4点)の画面上座標が記述されている。
(S2)前処理パラメータの生成(ステップS201−S213)
図10は、前処理パラメータ生成の流れを示す図である。前処理パラメータの生成は、画面上頭部サイズ算出部36と前処理パラメータ算出部37が中心となって行う。ここでは、検出領域の中で、画面上に表示される頭部画像のサイズを算出し、それに基づき、前処理パラメータを生成する。
図10は、前処理パラメータ生成の流れを示す図である。前処理パラメータの生成は、画面上頭部サイズ算出部36と前処理パラメータ算出部37が中心となって行う。ここでは、検出領域の中で、画面上に表示される頭部画像のサイズを算出し、それに基づき、前処理パラメータを生成する。
ステップS201では、画面上頭部サイズ算出部36は、カメラパラメータDB16からカメラパラメータ44を読み出す。
ステップS202では、全ての画面上位置において、人物が平面の地面に立っていると仮定して、人物の座標と頭部のサイズの関係を算出する。人物頭部のサイズ算出では、例えば以下の前提条件を用いるが、この前提条件は利用環境によって値を変更する。
・人物身長は160cmである。
・人物頭部は直径40cmの球である。
・人物の活動範囲は平坦な地面上である。
・人物身長は160cmである。
・人物頭部は直径40cmの球である。
・人物の活動範囲は平坦な地面上である。
具体的な頭部サイズの算出方法は、監視カメラ4をピンホール・カメラとみなし、カメラパラメータ44を用いて、画面上の任意の画素位置に上記前提条件の人物頭部の中心が存在すると仮定し、人物頭部の世界座標を算出する。さらに、人物頭部の世界座標から人物頭部の画面上のサイズ(幅と高さ)を算出する。算出の結果、画面上頭部サイズ一覧を生成する。
図11は、画面上頭部サイズ一覧のデータ構造を示す図である。画面上頭部サイズ一覧80は、画面上座標及び頭部サイズからなる。画面上座標として、カメラからの入力画像のサイズ(図6のカメラ画像横幅Wcam、画像縦幅Hcam)内の全ての画像点を仮定する。各画像点に人物が立っている場合、表示される頭部のサイズ(横と縦)を画素数で記述する。図11から分かるように、カメラから遠い画面上座標では、頭部サイズが小さく算出され、カメラから近い画面上座標では、頭部サイズが大きく算出されている。
ステップS203では、ユーザが設定した検出領域情報45を用いて、検出領域の中における頭部サイズを抽出する。つまり、ステップS202ではカメラ画像の全領域における頭部サイズを算出したが、これから検出領域内の頭部サイズに絞り込む訳である。
次に前処理パラメータ算出部37は、検出領域内の頭部サイズの情報を用いて、前処理部32で利用する前処理パラメータ46の算出を行う。
ステップS204では、検出モデル属性DB15から該当する検出モデル属性43を読み出す。
ステップS204では、検出モデル属性DB15から該当する検出モデル属性43を読み出す。
ステップS205では、検出モデル属性43の推奨画像横幅Woptと推奨画像縦幅Hopt、カメラパラメータ44のカメラ画像横幅Wcam、カメラ画像縦幅Hcamを用いて、画像の縮小率を算出する。
横方向の縮小率=推奨画像横幅Wopt/カメラ画像横幅Wcam
縦方向の縮小率=推奨画像縦幅Hopt/カメラ画像縦幅Hcam
なお、カメラ画像サイズが推奨画像サイズよりも小さい場合は、縮小率が1より大きくなり、画像を拡大することになるが、ここでは画像を縮小する(縮小率<1)の場合について説明する。
横方向の縮小率=推奨画像横幅Wopt/カメラ画像横幅Wcam
縦方向の縮小率=推奨画像縦幅Hopt/カメラ画像縦幅Hcam
なお、カメラ画像サイズが推奨画像サイズよりも小さい場合は、縮小率が1より大きくなり、画像を拡大することになるが、ここでは画像を縮小する(縮小率<1)の場合について説明する。
ステップ206では、前記画像縮小率を用いて、検出領域の頭部サイズから縮小後画像における頭部サイズを計算し、検出領域内で最小の頭部サイズVminを算出する。一般に、カメラ画像内では奥方向になるほど頭部サイズが小さい。例えば図8の場合、検出領域73内ではCD直線が最も奥に位置するため、点Cと点Dにおける縮小後頭部サイズを最小頭部サイズVminとする。
ステップS207では、ステップS206で求めた最小頭部サイズVminを検出モデル属性43に指定された推奨頭部サイズVoptに拡大するための、理想拡大率Goptを算出する。つまり、Gopt=Vopt/Vminで求める。なお、この拡大率Goptは検出領域73のCD位置での値であって、他の位置での拡大率はこれよりも小さく直線的に変化する。
ステップS208では、ステップS207で求めた理想拡大率Goptについて、画像の歪みが一定閾値を超えないように拡大率を修正する。これは、画像の歪みが大きくなると検出精度が低下するからである。具体的には、人物頭部の場合、拡大後の頭部の形状における上部幅と下部幅の比率が一定閾値、例えば1.2以下になるように拡大率を修正する。修正後の拡大率を有効拡大率Geffとする。画像の歪みが一定閾値以下であれば、理想拡大率Goptがそのまま有効拡大率Geffとなる。
ステップS209では、図8の検出領域73の場合、ポリゴンABCDが含まれる矩形を切り出し画像とし、切り出し画像内の点Cと点Dの座標を算出する。ここで点Cと点Dは画像拡大(射影変換)するときの頂点座標となるので、参考点と呼ぶことにする。
ステップS210では、参考点CとDについて、前記有効拡大率Geffにて拡大した後の参考点C’とD’(図13に示す)の座標を算出する。なお、点Aと点Bは画像拡大では固定される点とし、座標は変わらない。
ステップS211では、ポリゴンABCDと拡大後のポリゴンABC’D’の各点の座標を用いて、射影変換のパラメータを算出する。射影変換のパラメータの算出方法は下記の通りである。
数式1において、x、yは拡大前の座標、u,vは拡大後の座標、a,b,c,d,e,f,g,hは変換係数である。ABCDの4点の座標(x,y)と拡大後のABC’D’の4点の座標(u,v)の値を数式1に代入すると、8個の変換式が得られる。これより8個の変換係数a〜hを求め、これらを次の数式2の行列形式で記述したものが、射影変換パラメータである。
ステップS212では、上記射影変換パラメータを用いて、前処理パラメータ46を生成する。
図12は、前処理パラメータ46のデータ構造を示す図である。前処理パラメータ46の項目は、切り出し領域、画像縮小率、射影変換パラメータ、出力画像サイズからなる。切り出し領域は、検出領域73のポリゴンABCDが含まれる矩形領域(図13のABC’D’)で、その対角点の座標値で示す。画像縮小率は、ステップS205にて算出した横方向と縦方向の縮小率である。射影変換パラメータは、ステップS211にて算出した値であり、変換係数a〜hを行列で示している。出力画像サイズは画像縮小後のサイズで、検出モデル属性43の推奨画像横幅Wopt及び推奨画像縦幅Hoptと同じ値になる。
図12は、前処理パラメータ46のデータ構造を示す図である。前処理パラメータ46の項目は、切り出し領域、画像縮小率、射影変換パラメータ、出力画像サイズからなる。切り出し領域は、検出領域73のポリゴンABCDが含まれる矩形領域(図13のABC’D’)で、その対角点の座標値で示す。画像縮小率は、ステップS205にて算出した横方向と縦方向の縮小率である。射影変換パラメータは、ステップS211にて算出した値であり、変換係数a〜hを行列で示している。出力画像サイズは画像縮小後のサイズで、検出モデル属性43の推奨画像横幅Wopt及び推奨画像縦幅Hoptと同じ値になる。
ステップS213では、ユーザによる前処理パラメータの確認動作を行う。
図13は、前処理パラメータの確認画面を示す図である。映像表示装置7の画面70には、カメラ画像とともに前処理による効果のプレビューを表示する。すなわち、現在設定されている検出領域73(ABCD、破線で示す)を表示するとともに、前処理において切り出される画像領域83(ABC’D’、一点鎖線で示す)、及び射影変換により検出可能となる領域85(ドットパターンで示す)を表示する。ここで、検出領域73が全て検出可能領域85とならないのは、射影変換により画像歪みが閾値を超える領域が生じるからである。
図13は、前処理パラメータの確認画面を示す図である。映像表示装置7の画面70には、カメラ画像とともに前処理による効果のプレビューを表示する。すなわち、現在設定されている検出領域73(ABCD、破線で示す)を表示するとともに、前処理において切り出される画像領域83(ABC’D’、一点鎖線で示す)、及び射影変換により検出可能となる領域85(ドットパターンで示す)を表示する。ここで、検出領域73が全て検出可能領域85とならないのは、射影変換により画像歪みが閾値を超える領域が生じるからである。
ユーザはこの結果を確認し、問題ないと判断した場合は保存ボタン89を押すことで、前処理パラメータ46が前処理パラメータDB18に格納される。もしユーザが検出領域73を変更したい場合には、リセットボタン88を押すことで図5における検出領域の設定(ステップS104)に戻る。そして検出領域を変更し、再度前処理パラメータを算出することが可能である。
(S3)前処理(ステップS301−S305)
図14は、前処理の流れを示す図である。画像入力部31がカメラ画像を前処理部32に送ると、前処理部32はカメラ画像に対して前処理を実施する。
図14は、前処理の流れを示す図である。画像入力部31がカメラ画像を前処理部32に送ると、前処理部32はカメラ画像に対して前処理を実施する。
ステップS301では、検出領域設定DB17から検出領域情報45(検出領域座標)を読み出す。図13では、ポリゴンABCDで示す検出領域73が相当する。
ステップS302では、前処理パラメータDB18から前処理パラメータ46を読み出す。
ステップS303では、前処理パラメータ46の切り出し領域の情報を用いて、検出すべき領域の画像を切り出す。図13では、ポリゴンABC’D’で示す矩形領域83を切り出す。
ステップS304では、前処理パラメータ46の射影変換パラメータを用いて、切り出し画像に対して射影変換を実施する。射影変換では、前記数式2を用いて画像内の各画素位置を変換する。図13では、点C,Dの画像が点C’,D’の位置に拡大変換される。射影変換を実施することで、撮影空間の奥にいる人物の頭部画像を拡大することができる。
ステップS305では、前処理パラメータ46の画像縮小率に従い、射影変換後の画像を縮小する。これで、前処理を終了する。
(S4)人数計測(ステップS401−S411)
図15は、人数計測処理の流れを示す図である。前処理部32が前処理後の画像を特徴量抽出部33に送ると、人物検出と人数計測の処理に進む。ここでは、特徴量抽出部33による特徴量抽出、人物頭部検出部34による人物頭部の検出、検出結果統合部38による人物位置統合処理を行う。
図15は、人数計測処理の流れを示す図である。前処理部32が前処理後の画像を特徴量抽出部33に送ると、人物検出と人数計測の処理に進む。ここでは、特徴量抽出部33による特徴量抽出、人物頭部検出部34による人物頭部の検出、検出結果統合部38による人物位置統合処理を行う。
ステップS401では、特徴量抽出部33は画像から特徴量の抽出を行う。CNNネットワークの場合、畳み込み演算またはプーリング層などの深層学習の手法により画像特徴量の抽出を行う。
ステップS402では、抽出された特徴量を用いて、人物頭部検出部34は人物頭部の有無、及び人物頭部の中心座標、頭部サイズの計算を行う。人物頭部検出の結果、人物頭部の座標情報を含むリストが生成される。
ただし、ここで生成される座標情報は前処理後の座標情報であり、画像入力部31で入力した画像の座標と異なる。そこで検出結果統合部38は、ステップS403において、前処理前の入力画像の座標に変換する人物位置統合処理を行う。
ステップS403に示す人物位置統合処理は、ステップS404〜S409の工程からなる。
ステップS404では、前処理パラメータDB18から前処理パラメータ46を読み出す。
ステップS404では、前処理パラメータDB18から前処理パラメータ46を読み出す。
ステップS405では、検出領域設定DB17から検出領域情報45を読み出す。
ステップS406では、カメラパラメータDB16からカメラパラメータ44を読み出す。
ステップS406では、カメラパラメータDB16からカメラパラメータ44を読み出す。
ステップS407では、前処理パラメータ46の画像縮小率を用いて、S402で生成した人物頭部座標情報から縮小前の座標に変換する。
ステップS408では、人物頭部座標情報を射影変換前の座標に変換するために、逆射影変換を行う。逆射影変換時のパラメータには、前処理パラメータ46の射影変換パラメータ(数式2)の転置行列を用いればよい。
ステップS408では、人物頭部座標情報を射影変換前の座標に変換するために、逆射影変換を行う。逆射影変換時のパラメータには、前処理パラメータ46の射影変換パラメータ(数式2)の転置行列を用いればよい。
ステップS409では、前処理パラメータ46の切り出し領域の情報を用いて、切り出し前の画像における人物頭部の座標に変換する。
以上により、人物位置統合処理を完了し、前処理前の座標で記述された人物位置の情報が出力制御部40へ送られる。
以上により、人物位置統合処理を完了し、前処理前の座標で記述された人物位置の情報が出力制御部40へ送られる。
ステップS410では、出力制御部40は人物検出情報を映像表示装置7へ出力し、人物検出結果が表示される。
図16は、人物検出結果の表示例を示す図である。映像表示装置7の画面70には、監視カメラ4からの画像とともに、設定した検出領域73が表示されている。また現在の人物検出結果をもとに、検出された人物頭部位置に矩形の検出マーク90を重ねて表示し、検出人数欄91には最新の検出された人数を表示する。
図16は、人物検出結果の表示例を示す図である。映像表示装置7の画面70には、監視カメラ4からの画像とともに、設定した検出領域73が表示されている。また現在の人物検出結果をもとに、検出された人物頭部位置に矩形の検出マーク90を重ねて表示し、検出人数欄91には最新の検出された人数を表示する。
ステップS411では、出力制御部40は人物検出情報を人数履歴蓄積装置8へ出力し、人物検出結果が蓄積される。
図17は、人物検出結果のデータ構造を示す図である。人物検出結果92には、検出領域73における検出時刻ごとの人物頭部の数、すなわち人数を記述する。また、人数の他に検出した人物の座標や頭部座標を記述してもよい。
図17は、人物検出結果のデータ構造を示す図である。人物検出結果92には、検出領域73における検出時刻ごとの人物頭部の数、すなわち人数を記述する。また、人数の他に検出した人物の座標や頭部座標を記述してもよい。
以上、本実施例の人物頭部検出装置6の動作を説明したが、所定の領域の人物を検出する場合、カメラパラメータを用いて撮影画像の射影変換を含む適切な前処理を行うことで、検出処理のコスト増加を抑えつつ、人物の検出精度、ひいては人数計測の精度を向上させる効果が得られる。すなわち本実施例では、検出領域の中でカメラから見て奥にいる人物の画像を手前にある画像よりも拡大率が大きくなるように射影変換を行うことで、検出時の処理負荷を抑えつつ奥にいる人物を含めて検出精度を向上させることができる。また、前処理において入力画像のサイズを推奨画像サイズに縮小することで、畳み込みニューラルネットワークによる人物検出の処理負荷を低減させることができる。
上記実施例においては、検出する物体として人物の頭部を例に説明したが、これに限らず学習済みの検出モデルを用いることで任意の物体を検出できることは言うまでもない。また、監視カメラ4の台数は複数台であってもよく、さらに、人物頭部検出装置6と人数履歴蓄積装置8を複数台備え、装置間で連携しながら、人数計測を行うシステムであってもよい。
本発明は上記実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、実施例の構成の一部について、他の構成の追加・削除・置換をすることも可能である。
また、上記の各構成、機能、処理部等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記した実施例の技術的要素は、単独で適用されてもよいし、プログラム部品とハードウェア部品のような複数の部分に分けられて適用されるようにしてもよい。
1:人数計測システム、3,72:人物、4:監視カメラ、6:人物頭部検出装置、7:映像表示装置、8:人数履歴蓄積装置、11:CPU、12:ストレージ部、32:前処理部、33:特徴量抽出部、34:人物頭部検出部、35:検出領域設定部、36:画面上頭部サイズ算出部、37:前処理パラメータ算出部、38:検出結果統合部、40:出力制御部、42:検出モデル、43:検出モデル属性、44:カメラパラメータ、45:検出領域情報、46:前処理パラメータ、73:検出領域、80:画面上頭部サイズ一覧、83:切り出し画像領域、85:検出可能領域、90:検出マーク、91:検出人数欄、92:人物検出結果。
Claims (8)
- カメラで撮影した画像から所定の物体を検出する物体検出装置において、
入力画像に対し前記物体を検出する検出領域を設定する検出領域設定部と、
前記入力画像に対し射影変換を含む前処理を施す前処理部と、
前記前処理の際に用いるパラメータを生成する前処理パラメータ算出部と、
所定の検出モデルを用いて前記前処理を施した画像から前記物体を検出する物体検出部と、を備え、
前記前処理パラメータ算出部は、前記物体を一定のサイズと仮定して前記カメラの撮影時のカメラパラメータから算出される前記物体の画像上のサイズと、前記検出モデルを用いて検出可能な前記物体の画像上の推奨サイズに基づき、前記射影変換を含む前記前処理のパラメータを生成することを特徴とする物体検出装置。 - 請求項1に記載の物体検出装置であって、
前記前処理パラメータ算出部は、前記カメラパラメータから算出した前記物体のサイズの前記検出領域における最小値が、前記検出モデルを用いて検出可能な前記物体の推奨サイズ以上となるように、前記射影変換のパラメータを算出することを特徴とする物体検出装置。 - 請求項2に記載の物体検出装置であって、
前記前処理パラメータ算出部は、前記検出領域の中で前記カメラから見て奥にある画像を手前にある画像よりも拡大率が大きくなるように前記射影変換のパラメータを算出することを特徴とする物体検出装置。 - 請求項3に記載の物体検出装置であって、
前記前処理パラメータ算出部は、前記射影変換により前記画像を拡大するとき、拡大後の前記物体の形状の歪みが閾値を超えないように前記射影変換のパラメータを修正することを特徴とする物体検出装置。 - 請求項1に記載の物体検出装置であって、
前記前処理には、さらに、前記検出領域に基づく前記入力画像からの画像切出しと、前記検出モデルが受付可能となる推奨画像サイズに前記入力画像を縮小する処理とが含まれていることを特徴とする物体検出装置。 - 請求項5に記載の物体検出装置であって、
前記物体検出部による物体の検出結果と、前記前処理のパラメータをもとに検出した前記物体の位置を前記入力画像の座標に変換して統合する検出結果統合部と、
前記統合された物体検出情報を外部の装置に出力する出力制御部と、
を備えることを特徴とする物体検出装置。 - カメラで撮影した画像から所定の物体を検出する物体検出方法において、
入力画像に対し前記物体を検出する検出領域を設定するステップと、
前記入力画像に対し射影変換を含む前処理を施すステップと、
前記前処理の際に用いるパラメータを生成する前処理パラメータの算出ステップと、
所定の検出モデルを用いて前記前処理を施した画像から前記物体を検出するステップと、を備え、
前記前処理パラメータの算出ステップでは、前記物体を一定のサイズと仮定して前記カメラの撮影時のカメラパラメータから前記物体の画像上のサイズを算出し、前記検出モデルを用いて検出可能な前記物体の画像上の推奨サイズと比較して、前記射影変換を含む前記前処理のパラメータを生成することを特徴とする物体検出方法。 - 請求項7に記載の物体検出方法であって、
前記前処理のステップには、さらに、前記検出領域に基づく前記入力画像からの画像切出しと、前記検出モデルが受付可能となる推奨画像サイズに前記入力画像を縮小する処理とが含まれ、
前記物体を検出するステップでは、前記前処理を施した画像に対し、畳み込みニューラルネットワークにより前記物体を検出することを特徴とする物体検出方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018115379A JP2019219804A (ja) | 2018-06-18 | 2018-06-18 | 物体検出装置及び物体検出方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018115379A JP2019219804A (ja) | 2018-06-18 | 2018-06-18 | 物体検出装置及び物体検出方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2019219804A true JP2019219804A (ja) | 2019-12-26 |
Family
ID=69096563
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018115379A Pending JP2019219804A (ja) | 2018-06-18 | 2018-06-18 | 物体検出装置及び物体検出方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2019219804A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021149327A1 (ja) * | 2020-01-22 | 2021-07-29 | 三菱電機株式会社 | 物体検出装置、物体検出方法及び物体検出プログラム |
CN116758488A (zh) * | 2023-08-16 | 2023-09-15 | 启迪数字科技(深圳)有限公司 | 场馆人群定位方法、装置、设备及介质 |
-
2018
- 2018-06-18 JP JP2018115379A patent/JP2019219804A/ja active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021149327A1 (ja) * | 2020-01-22 | 2021-07-29 | 三菱電機株式会社 | 物体検出装置、物体検出方法及び物体検出プログラム |
JP2021117533A (ja) * | 2020-01-22 | 2021-08-10 | 三菱電機インフォメーションシステムズ株式会社 | 物体検出装置、物体検出方法及び物体検出プログラム |
CN116758488A (zh) * | 2023-08-16 | 2023-09-15 | 启迪数字科技(深圳)有限公司 | 场馆人群定位方法、装置、设备及介质 |
CN116758488B (zh) * | 2023-08-16 | 2023-11-10 | 启迪数字科技(深圳)有限公司 | 场馆人群定位方法、装置、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6330987B2 (ja) | 画像処理装置、画像処理方法、及び記憶媒体 | |
US9367734B2 (en) | Apparatus, control method, and storage medium for setting object detection region in an image | |
CN105700138B (zh) | 头戴型显示装置及其校正方法 | |
JP6176598B2 (ja) | 寸法測定プログラム、寸法測定装置、及び、寸法測定方法 | |
JP6115214B2 (ja) | パターン処理装置、パターン処理方法、パターン処理プログラム | |
JP5525495B2 (ja) | 映像監視装置、映像監視方法およびプログラム | |
WO2020215283A1 (zh) | 人脸识别方法、处理芯片以及电子设备 | |
CN108074237B (zh) | 图像清晰度检测方法、装置、存储介质及电子设备 | |
US20240071016A1 (en) | Mixed reality system, program, mobile terminal device, and method | |
JP7354767B2 (ja) | 物体追跡装置および物体追跡方法 | |
JP2019219804A (ja) | 物体検出装置及び物体検出方法 | |
CN112465911A (zh) | 图像处理方法及装置 | |
JP6806066B2 (ja) | 物体計数装置、物体計数方法、物体計数プログラム、および物体計数システム | |
JP6991045B2 (ja) | 画像処理装置、画像処理装置の制御方法 | |
JP6452738B2 (ja) | 画像処理装置、画像処理方法及びプログラム | |
JP6781996B1 (ja) | 画像補正処理システム | |
JP2022123391A (ja) | 情報処理装置、情報処理方法、及びプログラム | |
US9159118B2 (en) | Image processing apparatus, image processing system, and non-transitory computer-readable medium | |
EP4403872A1 (en) | Dimension measurement device, dimension measurement method, and program | |
CN113327228B (zh) | 图像处理方法和装置、终端和可读存储介质 | |
CN111179332A (zh) | 图像处理方法及装置、电子设备及存储介质 | |
US11568557B2 (en) | Person counting image processing apparatus, method, and storage medium | |
CN113312979B (zh) | 图像处理方法、装置、电子设备、路侧设备及云控平台 | |
US20230169790A1 (en) | Eyeball locating method, image processing device, and image processing system | |
JP6759300B2 (ja) | 情報処理装置、情報処理方法及びプログラム |