JP2017073039A - 物体識別装置、物体識別方法及びプログラム - Google Patents
物体識別装置、物体識別方法及びプログラム Download PDFInfo
- Publication number
- JP2017073039A JP2017073039A JP2015200489A JP2015200489A JP2017073039A JP 2017073039 A JP2017073039 A JP 2017073039A JP 2015200489 A JP2015200489 A JP 2015200489A JP 2015200489 A JP2015200489 A JP 2015200489A JP 2017073039 A JP2017073039 A JP 2017073039A
- Authority
- JP
- Japan
- Prior art keywords
- identification
- unit
- image
- result
- type
- 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
- User Interface Of Digital Computer (AREA)
- Image Analysis (AREA)
Abstract
【課題】識別対象の撮影画像に複数の物体が含まれる場合に、各物体を精度良く識別することを目的とする。
【解決手段】撮影画像から、物体の有無を検知する物体検知手段と、物体検知手段により複数の物体が検知された場合に、複数の物体それぞれの種別を識別し、各識別結果の確からしさを示す評価値を算出する第1の識別手段と、評価値に基づいて、第1の識別手段により、複数の物体それぞれに対して得られた複数の識別結果のうち一の識別結果を選択する結果選択手段と、各物体の種別に対し、同一の撮影画像に含まれる物体の種別を対応付ける物体対応テーブルを参照し、物体対応テーブルにおいて、結果選択手段により選択された識別結果に対応付けられている種別に基づいて、結果選択手段により選択された識別結果以外の他の識別結果が得られた物体に対し、再び種別を識別する第2の識別手段とを有する。
【選択図】図4
【解決手段】撮影画像から、物体の有無を検知する物体検知手段と、物体検知手段により複数の物体が検知された場合に、複数の物体それぞれの種別を識別し、各識別結果の確からしさを示す評価値を算出する第1の識別手段と、評価値に基づいて、第1の識別手段により、複数の物体それぞれに対して得られた複数の識別結果のうち一の識別結果を選択する結果選択手段と、各物体の種別に対し、同一の撮影画像に含まれる物体の種別を対応付ける物体対応テーブルを参照し、物体対応テーブルにおいて、結果選択手段により選択された識別結果に対応付けられている種別に基づいて、結果選択手段により選択された識別結果以外の他の識別結果が得られた物体に対し、再び種別を識別する第2の識別手段とを有する。
【選択図】図4
Description
本発明は、物体識別装置、物体識別方法及びプログラムに関する。
従来、文書をスキャンして電子データとして保存する場合、撮像にラインセンサを用いるラインスキャナと、2次元の撮像センサを用いるカメラスキャナとがある。特に、書画台の上方にカメラを配置し、原稿を上向きに書画台に置いて撮像するカメラスキャナの場合には、1枚の原稿であれば置くだけで素早くスキャンすることができると供に、本のように厚みのある原稿も容易に書画台に置いてスキャンすることができる。
特許文献1には、カメラとプロジェクタを用いて、置かれている物体に応じたUIを提供するシステムが開示されている。机の下に設置したカメラにより、バーコードを付与した物体を撮影し、認識を行う。システムは認識した結果に対応する対応するUIをプロジェクタによって投影する。ユーザは置かれたものを回転させることにより、UIの選択を行うことが可能となる。選択するUIによっては別の物体を新たに置き、物体間で連携したUIの提示を行っている。
しかしながら、特許文献1の技術では、物体に対しバーコード等を付与する必要があり、載置する物体が制限される。このため、ユーザの利便性が低いという問題があった。また、複数の物体が置かれる場合もあり、複数の物体それぞれを精度よく識別する技術が望まれている。
本発明はこのような問題点に鑑みなされたもので、識別対象の撮影画像に複数の物体が含まれる場合に、各物体を精度良く識別することを目的とする。
そこで、本発明は、物体識別装置であって、撮影画像から、物体の有無を検知する物体検知手段と、前記物体検知手段により複数の物体が検知された場合に、複数の物体それぞれの種別を識別し、各識別結果の確からしさを示す評価値を算出する第1の識別手段と、前記評価値に基づいて、前記第1の識別手段により、前記複数の物体それぞれに対して得られた複数の識別結果のうち一の識別結果を選択する結果選択手段と、各物体の種別に対し、同一の撮影画像に含まれる物体の種別を対応付ける物体対応テーブルを参照し、前記物体対応テーブルにおいて、前記結果選択手段により選択された前記識別結果に対応付けられている種別に基づいて、前記結果選択手段により選択された識別結果以外の他の識別結果が得られた物体に対し、再び種別を識別する第2の識別手段とを有することを特徴とする。
本発明によれば、識別対象の撮影画像に複数の物体が含まれる場合に、各物体を精度良く識別することができる。
以下、本発明の実施形態について図面に基づいて説明する。
(第1の実施形態)
図1は、第1の実施形態に係るスキャンシステムを示す図である。図1に示すように、カメラスキャナ101はイーサネット(登録商標)等のネットワーク104にてホストコンピュータ102及びプリンタ103に接続されている。ここで、カメラスキャナ101は、物体識別装置の一例である。図1のネットワーク構成において、ホストコンピュータ102からの指示により、カメラスキャナ101から画像を読み取るスキャン機能や、スキャンデータをプリンタ103により出力するプリント機能の実行が可能である。また、ホストコンピュータ102を介さず、カメラスキャナ101への直接の指示により、スキャン機能、プリント機能の実行も可能である。
図1は、第1の実施形態に係るスキャンシステムを示す図である。図1に示すように、カメラスキャナ101はイーサネット(登録商標)等のネットワーク104にてホストコンピュータ102及びプリンタ103に接続されている。ここで、カメラスキャナ101は、物体識別装置の一例である。図1のネットワーク構成において、ホストコンピュータ102からの指示により、カメラスキャナ101から画像を読み取るスキャン機能や、スキャンデータをプリンタ103により出力するプリント機能の実行が可能である。また、ホストコンピュータ102を介さず、カメラスキャナ101への直接の指示により、スキャン機能、プリント機能の実行も可能である。
図2(a)は、カメラスキャナ101の外観図である。図2(a)に示すように、カメラスキャナ101は、コントローラ部201、カメラ部202、腕部203、短焦点プロジェクタ207、距離画像センサ部208を含む。カメラスキャナの本体であるコントローラ部201と、撮像を行うためのカメラ部202、短焦点プロジェクタ207及び距離画像センサ部208は、腕部203により連結されている。腕部203は関節を用いて曲げ伸ばしが可能である。
図2(a)には、カメラスキャナ101が設置されている書画台204も示している。カメラ部202及び距離画像センサ部208のレンズは書画台204方向に向けられており、破線で囲まれた読み取り領域205内の画像を読み取り可能である。図2の例では、原稿206は読み取り領域205内に置かれているので、カメラスキャナ101が読み取り可能となっている。また、書画台204内にはターンテーブル209が設けられている。ターンテーブル209はコントローラ部201からの指示によって回転することが可能であり、ターンテーブル209上に置かれた物体とカメラ部202との角度を変えることができる。
カメラ部202は単一解像度で画像を撮像するものとしてもよいが、高解像度画像撮像と低解像度画像撮像が可能なものとすることが好ましい。なお、図2に示されていないが、カメラスキャナ101は、LCDタッチパネル330及びスピーカ340をさらに含むこともできる。
さらに、カメラスキャナ101では各ハードウェアデバイスに対して、カメラ座標系[Xc,Yc,Zc]、距離画像座標系[Xs,Ys,Zs]、プロジェクタ座標系[Xp,Yp,Zp]の3つの座標系が定義される。これらはカメラ部202及び距離画像センサ部208の後述のRGBカメラ363が撮像する画像平面又はプロジェクタ207が投影する画像平面をXY平面とし、画像平面に直交した方向をZ方向として定義したものである。さらに、これらの独立した座標系の3次元データを統一的に扱えるようにするために、書画台204を含む平面をXY平面とし、このXY平面から上方に垂直な向きをZ軸とする直交座標系を定義する。
座標系を変換する場合の例として、図2(b)に直交座標系と、カメラ部202を中心としたカメラ座標系を用いて表現された空間と、カメラ部202が撮像する画像平面との関係を示す。直交座標系における3次元点P[X,Y,Z]は、(式1)によって、カメラ座標系における3次元点Pc[Xc,Yc,Zc]へ変換できる。
ここで、Rc及びtcは、直交座標系に対するカメラ部202の姿勢(回転)と位置(並進)によって求まる外部パラメータによって構成され、Rcを3×3の回転行列、tcを並進ベクトルと呼ぶ。
さらに、カメラ部202で撮影される2次元のカメラ画像平面は、カメラ部202によって3次元空間中の3次元情報が2次元情報に変換されたものである。すなわち、カメラ座標系上での3次元点Pc[Xc,Yc,Zc]を、(式3)によってカメラ画像平面での2次元座標pc[xp,yp]に透視投影変換することによって変換することができる。
ここで、Aは、カメラの内部パラメータと呼ばれ、焦点距離と画像中心等で表現される3×3の行列である。
以上のように、(式1)と(式3)を用いることで、直交座標系で表された3次元点群を、カメラ座標系での3次元点群座標やカメラ画像平面に変換することができる。なお、各ハードウェアデバイスの内部パラメータ及び直交座標系に対する位置姿勢(外部パラメータ)は、公知のキャリブレーション手法により予めキャリブレーションされているものとする。以後、特に断りがなく3次元点群と表記した場合は、直交座標系における3次元データを表しているものとする。
図3は、カメラスキャナ101の本体であるコントローラ部201のハードウェア構成例を示す図である。図3に示すように、コントローラ部201は、システムバス301に接続されたCPU302、RAM303、ROM304、HDD305、ネットワークI/F306及び画像処理プロセッサ307を有している。コントローラ部201はさらに、カメラI/F308、ディスプレイコントローラ309、シリアルI/F310、オーディオコントローラ311及びUSBコントローラ312を有している。
CPU302は、コントローラ部201全体の動作を制御する中央演算装置である。RAM303は揮発性メモリである。ROM304は、不揮発性メモリであり、CPU302の起動用プログラムを格納している。HDD305は、RAM303と比較して大容量なハードディスクドライブ(HDD)である。HDD305にはコントローラ部201の実行する、カメラスキャナ101の制御用プログラムが格納されている。
CPU302は、電源ON等の起動時、ROM304に格納されている起動用プログラムを実行する。この起動用プログラムは、HDD305に格納されている制御用プログラムを読み出し、RAM303上に展開するためのものである。CPU302は、起動用プログラムを実行すると、続けてRAM303上に展開した制御用プログラムを実行し、制御を行う。また、CPU302は、制御用プログラムによる動作に用いるデータもRAM303上に格納して読み書きを行う。HDD305上にはさらに、制御用プログラムによる動作に必要な各種設定や、カメラ入力によって生成した画像データを格納することができ、CPU302によって読み書きされる。CPU302はネットワークI/F306を介してネットワーク104上の他の機器との通信を行う。
画像処理プロセッサ307は、RAM303に格納された画像データを読み出して処理し、またRAM303へ書き戻す。なお、画像処理プロセッサ307が実行する画像処理は、回転、変倍、色変換等である。カメラI/F308は、カメラ部202及び距離画像センサ部208と接続され、CPU302からの指示に応じてカメラ部202から画像データを、距離画像センサ部208から距離画像データを取得してRAM303へ書き込む。また、CPU302からの制御コマンドをカメラ部202及び距離画像センサ部208へ送信し、カメラ部202及び距離画像センサ部208の設定を行う。
また、コントローラ部201は、ディスプレイコントローラ309、シリアルI/F310、オーディオコントローラ311及びUSBコントローラ312のうち少なくとも1つをさらに含むことができる。ディスプレイコントローラ309は、CPU302の指示に応じてディスプレイへの画像データの表示を制御する。ここでは、ディスプレイコントローラ309は短焦点プロジェクタ207及びLCDタッチパネル330に接続されている。シリアルI/F310はシリアル信号の入出力を行う。ここでは、シリアルI/F310はターンテーブル209に接続され、CPU302の回転開始・終了及び回転角度の指示をターンテーブル209へ送信する。また、シリアルI/F310は、LCDタッチパネル330に接続され、CPU302はLCDタッチパネル330が押下されたときに、シリアルI/F310を介して押下された座標を取得する。
オーディオコントローラ311は、スピーカ340に接続され、CPU302の指示に応じて音声データをアナログ音声信号に変換し、スピーカ340を通じて音声を出力する。USBコントローラ312は、CPU302の指示に応じて外付けのUSBデバイスの制御を行う。ここでは、USBコントローラ312はUSBメモリやSDカード等の外部メモリ350に接続され、外部メモリ350へのデータの読み書きを行う。
図4(a)は、CPU302が実行するカメラスキャナ101の制御用プログラムの機能構成を示す図である。また、図4(b)は、機能構成の各モジュールの処理の関係を示すシーケンス図である。カメラスキャナ101の制御用プログラムは前述のようにHDD305に格納され、CPU302が起動時にRAM303上に展開して実行する。メイン制御部402は制御の中心であり、図4(b)に示すように、機能構成の各モジュールを制御する。
画像取得部415は、画像入力処理を行うモジュールであり、カメラ画像取得部407、距離画像取得部408から構成される。カメラ画像取得部407は、カメラI/F308を介してカメラ部202が出力する画像データを取得し、RAM303へ格納する。距離画像取得部408は、カメラI/F308を介して距離画像センサ部208が出力する距離画像データを取得し、RAM303へ格納する。距離画像取得部408の処理については、図5を参照しつつ後に詳述する。
物体検知部409は、カメラ画像取得部407、距離画像取得部408が取得する画像データから書画台204上の物体の動きを検知して認識するモジュールである。物体検知部409は、メイン制御部402から物体載置待ち処理又は物体除去待ち処理の通知を受けると、画像取得部415から書画台204を撮像した画像を取得する。そして、物体検知部409は、書画台204上に物体が置かれて静止するタイミング又は物体が取り除かれるタイミングを検知する処理を行う。物体検知部409の処理については、図11を参照しつつ後に詳述する。
スキャン処理部413は、実際に対象物のスキャンを行うモジュールであり、平面原稿画像撮影部410、書籍画像撮影部411、立体画像撮影部412から構成される。平面原稿画像撮影部410は平面原稿、書籍画像撮影部411は書籍、立体画像撮影部412は立体物に、それぞれ適した処理を実行し、それぞれに応じた形式のデータを出力する。
UI部403は、メイン制御部402からの要求を受け、メッセージやボタン等のGUI部品を生成する。そして、UI部403は、表示部406へ生成したGUI部品の表示を要求する。なお、表示部406は、ディスプレイコントローラ309を介して、短焦点プロジェクタ207又はLCDタッチパネル330へ要求されたGUI部品の表示を行う。プロジェクタ207は、書画台204に向けて設置されているため、書画台204上にGUI部品を投射することが可能となっている。また、UI部403は、シリアルI/F310を介したLCDタッチパネル330からの入力操作、そしてさらにそれらの座標を受信する。そして、UI部403は、描画中の操作画面の内容と操作座標を対応させて操作内容(押下されたボタン等)を判定する。この操作内容をメイン制御部402へ通知することにより、操作者の操作を受け付ける。
ネットワーク通信部404は、ネットワークI/F306を介して、ネットワーク104上の他の機器とTCP/IPによる通信を行う。データ管理部405は、制御用プログラム401の実行において生成した作業データ等様々なデータをHDD305上の所定の領域へ保存し、管理する。例えば平面原稿画像撮影部410、書籍画像撮影部411、立体画像撮影部412が生成したスキャンデータ等である。物体領域分割部416は、カメラ画像取得部407、距離画像取得部408が取得する画像データから、物体毎の領域を取得し、物体識別部414に受け渡す。物体識別部414では、物体の種類を識別し、メイン制御部402に通知する。
図3に戻り、距離画像センサ部208について説明する。距離画像センサ部208は、赤外線によるパターン投射方式の距離画像センサである。距離画像センサ部208は、赤外線パターン投射部361、赤外線カメラ362及びRGBカメラ363を有している。赤外線パターン投射部361は、対象物に、人の目には不可視である赤外線によって3次元測定パターンを投射する。赤外線カメラ362は、対象物に投射した3次元測定パターンを読みとるカメラである。RGBカメラ363は、人の目に見える可視光をRGB信号で撮影するカメラである。
図5は、距離画像取得部408の処理を示すフローチャートである。また、図6は、パターン投影方式による距離画像の計測原理を説明するための図面である。ステップS501において、距離画像取得部408は、図6(a)に示すように、赤外線パターン投射部361を用いて赤外線による3次元形状測定パターン601を対象物602に投射する。次に、ステップS502において、距離画像取得部408は、RGBカメラ画像603及びステップS501で投射した3次元形状測定パターン601を撮影した赤外線カメラ画像604を取得する。
赤外線カメラ362とRGBカメラ363の設置位置が異なるため、図6(b)に示すようにそれぞれで撮影される2つのRGBカメラ画像603及び赤外線カメラ画像604の撮影領域が異なる。そこで、続く、ステップS503においては、距離画像取得部408は、赤外線カメラ362の座標系からRGBカメラ363の座標系への座標系変換を用いて赤外線カメラ画像604をRGBカメラ画像603の座標系に合わせる。なお、赤外線カメラ362とRGBカメラ363の相対位置や、それぞれの内部パラメータは事前のキャリブレーション処理により既知であるとする。
次に、ステップS504において、距離画像取得部408は、図6(c)に示すように、3次元形状測定パターン601とステップS503で座標変換を行った赤外線カメラ画像604間での対応点を抽出する。距離画像取得部408は、例えば、赤外線カメラ画像604上の1点を3次元形状測定パターン601上から探索して、同一の点が検出された場合に対応付けを行う。また、他の例としては、距離画像取得部408は、赤外線カメラ画像604の画素の周辺のパターンを3次元形状測定パターン601上から探索し、一番類似度が高い部分と対応付けてもよい。
次に、ステップS505において、距離画像取得部408は、赤外線パターン投射部361と赤外線カメラ362を結ぶ直線を基線610として三角測量の原理を用いて計算を行うことにより、赤外線カメラ362からの距離を算出する。距離画像取得部408は、ステップS504で対応付けができた画素については、赤外線カメラ362からの距離を算出して画素値として保存する。距離画像取得部408は、ステップS504で対応付けができなかった画素については、距離の計測ができなかった部分として無効値を保存する。距離画像取得部408は、この処理を、ステップS503で座標変換を行った赤外線カメラ画像604の全画素に対して行うことで、各画素に距離値が入った距離画像を生成する。
次に、ステップS506において、距離画像取得部408は、距離画像の各画素にRGBカメラ画像525のRGB値を保存することにより、1画素につきR、G、B、距離の4つの値を持つ距離画像を生成する。ここで取得した距離画像は距離画像センサ部208のRGBカメラ363で定義された距離画像センサ座標系が基準となっている。そこで、続くステップS507においては、距離画像取得部408は、図2(a)を参照しつつ説明したように、距離画像センサ座標系として得られた距離データを直交座標系における3次元点群に変換する。以後、特に指定がなく3次元点群と表記した場合は、直交座標系における3次元点群を示すものとする。
なお、本実施例では上述したように、カメラスキャナ101は、距離画像センサ部208として赤外線パターン投射方式を採用しているが、他の方式の距離画像センサを用いることも可能である。例えば、カメラスキャナ101は、距離画像センサ部208として、2つのRGBカメラでステレオ立体視を行うステレオ方式や、レーザー光の飛行時間を検出することで距離を測定するTOF(Time of Flight)方式を用いてもよい。また、カメラスキャナ101は、撮像対象物が人体等の赤外線を発するような場合は、焦電型赤外線センサを用いて対象物の認識と距離の測定を行ってもよい。
次に、カメラスキャナ101による物体識別を行うための学習処理について説明する。本実施形態に係るカメラスキャナ101は、物体識別処理として、書画台204に載置された物体の撮影画像に基づいて、その物体がいずれのクラスに属するかを判定する。なお、クラスは、例えば、はさみ、ペン、消しゴム、電話、時計といった物体の種別に応じて予め定められているものとする。物体識別のための学習処理とは、物体識別に先立ち、事前にいずれのクラスに属するかが既知の物体の撮影画像を学習することにより、識別器を生成する処理である。
図7は、物体識別部414による学習処理を示すフローチャートである。なお、カメラスキャナ101は、事前に学習対象の物体の撮影画像の撮影を完了しているものとする。なお、学習対象の物体を撮影する撮影処理は、後述する立体画像撮影部412よる立体画像撮影処理(ステップS1316)と同様である。すなわち、書画台204上に載置された物体の撮影画像をカメラ画像取得部407及び距離画像取得部408で取得する。この作業を物体の置き位置を複数の箇所として、また物体の置き方もそれぞれ変化させ、事前に複数パターン撮影しておく。
学習処理では、ステップS701において、物体識別部414は、撮影画像を読み込む。次に、ステップS702において、物体識別部414は、読み込んだ画像から特徴を抽出する。ここで画像の特徴を抽出する方法について説明する。画像の特徴を記述する手法としては、画素値の統計や固有値を記述するものから、局所的な特徴を記述するものまで多種にわたる。本実施形態に係るカメラスキャナ101は、特徴抽出のために局所特徴の一種であるSIFT特徴を用いるものとする。すなわち、ステップS702の後、ステップS703において、物体識別部414は、SIFT特徴(局所特徴ベクトル)を抽出する。
SIFT特徴は、画像の拡大縮小、回転や視点の変化のいずれに対してもロバスト(強靭)であるとの性質がある。SIFT特徴の抽出は、特徴点の抽出とその特徴点における特徴ベクトルの抽出の2つのステップに分けることができる。物体識別部414は、SIFT特徴における特徴点の抽出について、次に述べるGRID点抽出で行う。GRID点抽出では、格子状に点を配置し、SIFT特徴ベクトル計算のための特徴点として利用する。GRID点抽出によるSIFT特徴の抽出手順は以下のようになる。
1.格子点の間隔を決定する。ここでは例えば、画像に対して、10画素ごとにGRID点抽出を行い、それらの点に基づきSIFT特徴量を計算しても良い。
2.画像から格子点を抽出し、予め決められた複数のスケールで、それぞれの点について勾配方向を計算する。格子点の総数は画像の画素数と格子点の間隔に依存する。
3.抽出した特徴点に対して、SIFT特徴量を計算する。
1.格子点の間隔を決定する。ここでは例えば、画像に対して、10画素ごとにGRID点抽出を行い、それらの点に基づきSIFT特徴量を計算しても良い。
2.画像から格子点を抽出し、予め決められた複数のスケールで、それぞれの点について勾配方向を計算する。格子点の総数は画像の画素数と格子点の間隔に依存する。
3.抽出した特徴点に対して、SIFT特徴量を計算する。
物体識別部414は、ステップS701〜ステップS703までの処理を、事前の撮影により得られたすべての撮影画像に対して行うまで繰り返す。そして、物体識別部414は、撮影画像すべてに対する処理が完了すると(ステップS704でYes)、処理をステップS705へ進める。ステップS705において、物体識別部414は、抽出された特徴点における特徴ベクトルの抽出を行う。本実施形態においては、物体識別部414は、特徴ベクトルの抽出をBag of Keypointsの手法で行う。Bag of Keypointsモデルとは、画像を局所特徴の集合と捉えた手法であり、局所特徴をベクトル量子化し、Visual Wordsと呼ばれる特徴ベクトルを生成する。物体識別部414は、これらをまとめたコードブックを生成する。コードブックは、SIFT特徴の代表ベクトルを指定されたクラスタ数だけ記述したデータである。
次に、ステップS706において、物体識別部414は、ステップS706において生成された特徴ベクトルを記述子として画像全体の特徴ベクトルを生成する。これにより、画像をVisual Wordsの集合(bag)として表現することができる。次に、ステップS707において、物体識別部414は、各画像に対応するSIFT特徴のそれぞれについて、コードブックから「距離が最も近い」ベクトルを探し、そのベクトルに対して投票することによってヒストグラムを生成する。
物体識別部414は、ベクトルの距離を計測する尺度として、ユークリッド距離を用いる。このヒストグラム生成はステップS706で生成した各画像の特徴ベクトルを積み上げる形で行われる。したがって、物体識別部414は、ステップS704の処理と同様に、すべての撮影画像に対し、ステップS707の処理が行われるまでステップS707の処理を繰り返す。そして、物体識別部414は、すべての撮影画像に対し、ステップS707の処理が完了すると(ステップS708でYes)、処理をステップS709へ進める。
ステップS709において、物体識別部414は、ステップS707において生成されたヒストグラムを学習データとして、物体識別に利用される識別器を生成する。本実施形態においては、物体識別部414は、SVM(Support Vector Machine)を用いて識別器を作成する。SVMは、ニューロンのモデルとして最も単純な線形しきい素子を用いて、2クラスのパターン識別器を構成する手法である。この2クラス分類機を組み合わせる事により、多クラスの分類も可能になる事が知られている。本実施形態においては、ケースに応じて2クラス分類と多クラス分類を使い分けて機能を実現する。ここで上記の分類を行うための学習画像の読み込み方法について図8を参照しつつ説明する。
2クラス分類の場合は、物体識別部414は、図8(a)に示すように識別対象のキーワード(例えばペン)に対して、そのキーワードが含まれる画像(Grp.1)を正例画像として読み込む。さらに、物体識別部414は、キーワードが含まれない画像(Grp.2)を負例画像として画像を読み込む。そして、物体識別部414は、読み込んだ画像に対して特徴量を抽出し、2クラスのコードブックのヒストグラムを作成する。また、識別対象のキーワードが2つ以上あり、読み込んだ画像の中にいずれのキーワードが含まれるかを判断したい場合もある。この場合、物体識別部414は、図8(b)に示すように、キーワード1又はキーワード2を含む画像(Grp.3)を正例画像として読み込み、いずれのキーワードも含まない画像(Grp.4)を負例画像として、識別器を生成してもよい。
一方、多クラス分類の場合は、図8(c)に示すように、識別対象のキーワードに対してそれぞれを含む正例画像を準備する。図8(c)の例では、Grp.5はキーワード1、Grp.6はキーワード2、Grp.7はキーワード3、Grp.8はキーワード4に対する正例画像である。そして、物体識別部414は、キーワード1に対してはGrp.5を正例画像、その他のキーワードを含む画像(Grp.6、Grp.7、Grp.8)を負例画像として画像を読み込む。物体識別部414は、この作業をキーワード2〜4に対しても繰り返し、特徴量を抽出し多クラスのコードブックのヒストグラムを作成する。
なお、上記識別を行うための処理はメイン制御部402で実行されてもよいし、事前にネットワーク通信部404を介して接続されている他のCPUで実行して得られた識別器を用いてもよい。
また、SVMを作成する際には、2つのパラメータGamma値とCost値を設定する必要がある。Gamma値は、識別境界の形状を決定するものであり、低いほど線形に近い形で識別境界が生成される。一方、Cost値は誤分類点をどのくらい許容するかを調整するものであり、大きいほど誤分類を含まないように識別境界が生成される。これらのパラメータはSVMの識別精度に大きな影響を与える要素であり、識別器毎に設定する必要のあるものである。本実施形態に係る物体識別部414は、このパラメータの決定にグリッドサーチと呼ばれる手法を用いる。グリッドサーチとは、各パラメータを増減させ、網羅的に最適なパラメータを探索する手法である。本実施形態の物体識別部414は、Gamma値とCost値を増減させ、各識別器の精度が最も高くなる値を設定する。
図9は、物体識別部414による識別処理を示すフローチャートである。識別処理は、学習処理において生成された識別器を用いた物体識別を行う処理である。識別処理を行うプログラムの動作が開始されると、ステップS901において、物体識別部414は、認識対象の撮影画像を取得する。以下、認識対象の撮影画像を対象撮影画像と称する。次に、ステップS902において、物体識別部414は、対象撮影画像に対し、特徴抽出処理を行う。次に、ステップS903において、物体識別部414は、対象撮影画像に対し、局所ベクトル抽出処理を行う。なお、ステップS902における特徴抽出処理及びステップS903における局所ベクトル抽出処理は、それぞれステップS702及びステップS703の処理と同様ある。
次に、ステップS904において、物体識別部414は、ステップS901及びステップS902において抽出された特徴ベクトルからヒストグラムを生成する。具体的には、物体識別部414は、抽出された特徴ベクトルに対し、ステップS705において生成されたコードブック中で「距離が最も近い」ベクトルを探し、そのベクトルに対して投票することによってヒストグラムを生成する。なお、物体識別部414は、2クラス分類を行う場合は2クラス分類用のコードブックを用い、多クラス分類を行う場合は多クラス分類用のコードブックを用いる。また、ここでのベクトルの距離を計測する尺度として、物体識別部414は、ユークリッド距離を用いる。このようにして、コードブックに関するヒストグラムを得ることになる。
次に、ステップS905において、物体識別部414は、ヒストグラムを正規化する。典型的な例では、各ヒストグラムは要素の合計が1となるように正規化されることによって、識別対象画像を表すbag−of−keypointsベクトルが得られる。次に、ステップS906において、物体識別部414は、bag−of−keypointsベクトルを学習処理において生成された識別器に入力し、識別対象画像に対する識別結果を得る。さらに、物体識別部414は、識別の際にSVMにより各クラスの確からしさを定量的に評価したスコアを算出する。ここで、スコアは、評価値の一例である。また、ステップS906の処理は、識別処理の一例である。このスコアは、図10(a)に示すように、0〜1の値であり、すべてのスコアの合計が1となるように出力される。この値が大きいほど、識別結果が正しいと判断できる。つまり、図10(a)の物体1のように、1つのスコアだけ突出して高い場合は、識別結果が信頼できるものだと考えることができる。一方、物体2のように複数のスコアが近い値をとる場合、識別候補のどちらでもあり得るため、信頼性が低いと考えられる。
図10(b)は、また、スコアと識別器の関係を示す図である。SVMから得られるスコアは識別面1001からの距離に基づいて算出される。図10(b)に示すように、識別空間座標系1003に識別データ1011,1012が投影され、各キーワードの空間1004、1005、1006に割り当てられる。このとき、空間1004、1005、1006は、それぞれキーワード1、キーワード2、キーワード3に対応する。なお、識別データ1011,1012は、一般的に高次元であるが、図示するために2次元で表現している。図10(a)において、キーワード1のスコアが高くなっているのは、識別データ1011のように1001境界面から離れた位置に存在し、明らかに空間1004に属している状態であるためである。一方、物体2のようにキーワード1とキーワード2が近い値となっているのは、識別データ1012のように、境界付近の曖昧な位置に属している状態であるためである。
図11は、物体検知部409の処理を示すフローチャートである。物体検知部409の処理は、初期化処理(ステップS1101)と、物体載置検知処理(ステップS1102)と、物体除去検知処理(ステップS1103)と、に大別される。物体載置検知処理(ステップS1102)及び物体除去検知処理(ステップS1103)は、物体の有無を検知する物体検知処理の一例である。初期化処理は、撮影画像から物体が書画台に載置されたこと及び物体が書画台から除去されたことを検知するための前処理である。物体載置検知処理は、物体が書画台に載置されたことを検知する処理である。物体除去処理は、物体が書画台から除去されたことを検知する処理である。以下、各処理について詳述する。
初期化処理では、まず、ステップS1111において、物体検知部409は、カメラ画像取得部407からカメラ画像を、距離画像取得部408から距離画像をそれぞれ1フレーム取得する。次に、ステップS1112において、物体検知部409は、取得したカメラ画像を前フレームカメラ画像として保存する。次に、ステップS1113において、物体検知部409は、取得したカメラ画像及び距離画像をそれぞれ背景カメラ画像及び背景距離画像として保存する。ここで、背景カメラ画像及び背景距離画像は、物体が載置されていない状態の書画台の画像である。以上で初期化処理が終了し、物体検知部409は、処理を物体載置検知処理へ進める。
物体載置検知処理では、まずステップS1114において、物体検知部409は、カメラ画像取得部407からカメラ画像を1フレーム取得する。次に、ステップS1115において、物体検知部409は、取得したカメラ画像と前フレームカメラ画像との差分を計算してその絶対値を合計した差分値を算出する。次に、ステップS1116において、物体検知部409は、算出した差分値が予め設定された閾値以上か否かを判定する。物体検知部409は、差分値が閾値未満の場合には(ステップS1116でNO)、書画台204上には物体が無いと判断し、処理をステップS1117へ進める。ステップS1117において、物体検知部409は、現フレームのカメラ画像を前フレームカメラ画像として保存し、その後処理をステップS1114へ進める。
一方、ステップS1116において、物体検知部409は、差分値が所定値以上の場合には(ステップS1116でYES)処理をステップS1118へ進める。ステップS1118において、物体検知部409は、ステップS1113で取得したカメラ画像と前フレームカメラ画像との差分値を算出する。本処理は、ステップS1115の処理と同様である。次に、ステップS1119において、物体検知部409は、算出した差分値が予め設定された閾値以下か否かを判定する。物体検知部409は、差分値が閾値よりも大きい場合には(ステップS1119でNO)、書画台204上の物体が動いていると判断し、処理をS1117へ進める。そして、物体検知部409は、現フレームのカメラ画像を前フレームカメラ画像として保存してから、処理をステップS1114へ進める。一方、ステップS1119において、物体検知部409は、差分値が閾値以下の場合には(ステップS1119でYES)、処理をステップS1120へ進める。
ステップS1120において、物体検知部409は、ステップS1119で連続してYESとなった回数から、差分が閾値以下、すなわち書画台204上の物体が静止した状態が所定のフレーム数続いたか否かを判定する。物体検知部409は、所定フレーム数続いていないと判定した場合には(ステップS1120でNO)、処理をS1117へ進める。物体検知部409は、所定フレーム数続いたと判定した場合には(ステップS1120でYES)、処理をステップS1121へ進める。ステップS1121において、物体検知部409は、物体が置かれたことをメイン制御部402へ通知する。以上で、物体載置検知処理が終了し、物体検知部409は、処理を物体除去検知処理へ進める。
物体除去検知処理では、ステップS1122において、物体検知部409は、カメラ画像取得部407からカメラ画像を1フレーム取得する。次に、ステップS1123において、物体検知部409は、取得したカメラ画像と書画台背景カメラ画像との差分値を算出する。次に、ステップS1124において、物体検知部409は、算出した差分値が予め設定された閾値以下か否かを判定する。物体検知部409は、差分値が予め決めておいた所定値よりも大きい場合には(ステップS1124でNO)、書画台204上にまだ物体が存在するため、処理をステップS1122へ進める。
一方、物体検知部409は、差分値が閾値以下の場合には(ステップS1124でYES)、処理をステップS1125へ進める。ステップS1125において、物体検知部409は、書画台204上の物体がなくなったため、物体除去をメイン制御部402へ通知する。以上で、物体除去処検知処理が終了する。なお、S1125の処理の後、物体検知部409は、処理をS1114へ進め、再び物体載置検知処理を行う。なお、本処理は、物体検知の終了指示が入力された場合に適宜終了する。
図12は、メイン制御処理を示すフローチャートである。本処理は、CPU302がスキャンアプリケーションを実行することにより実現される処理である。まず、ステップS1201において、メイン制御部402は、書画台204にスキャンの対象物が載置されるのを待つ物体載置待ち処理を行う。物体載置待ち処理は、S1211〜S1213の処理を含む。
ステップS1211において、メイン制御部402は、UI部403のGUI部品生成表示部417を介して、書画台204にプロジェクタ207によって初期画面を投射表示する。次に、ステップS1212において、メイン制御部402は、物体検知部409に対し、処理の開始を指示する。物体検知部409は、開始の指示に従い、図11を参照しつつ説明した処理を開始する。次に、ステップS1213において、メイン制御部402は、物体検知部409からの物体載置通知を待つ。物体検知部409が、図11のステップS1121において、物体載置をメイン制御部402へ通知した場合に、メイン制御部402は、物体載置通知を受け付けたと判断し(ステップS1213でYes)、物体載置待ち処理を終了する。そして、物体検知部409は、処理をステップS1202へ進める。
ステップS1202において、メイン制御部402は、積載を認識した事を知らせるためのGUI部品を表示するための処理を行う。次に、ステップS1203において、メイン制御部402は、スキャン処理のタイミングか否かを判定する。スキャン処理のタイミングは予め定められているものとする。スキャン処理のタイミングは、例えば、画像取得部415からの情報に基づいて、動体検知後に動体が静止したと判定したタイミングである。また他の例としては、スキャン処理のタイミングは、ユーザがUI部403を用いて処理の開始を指示したタイミングであってもよい。メイン制御部402は、スキャン処理のタイミングまで待機し、スキャン処理のタイミングになると(ステップS1203でYES)、処理をステップS1204へ進める。
ステップS1204において、メイン制御部402は、物体領域分割部416に物体領域分割を指示する。これに対し、物体領域分割部416は、背景画像との差分によって得られる画像に基づいて、物体が存在する領域を取得する。そして、物体領域分割部416は、これらの領域を包括するような矩形を取得することにより、物体毎の領域を切り出す。画像取得部415は、切り出した物体の領域数を撮影画像に含まれる物体の数として特定する。次に、ステップS1205において、メイン制御部402は、切り出された領域の数、すなわち物体の数が単数か複数かを判定する。
メイン制御部402は、単数の場合(ステップS1205でNO)、処理をステップS1206へ進める。メイン制御部402は、複数の場合(ステップS1205でYES)、処理をステップS1207へ進める。ステップS1206において、メイン制御部402は、単数の物体に対する物体識別処理を行い、その後処理をステップS1208へ進める。ステップS1207において、メイン制御部402は、複数の物体に対する物体識別処理を行い、その後処理をステップS1208へ進める。
ステップS1208において、メイン制御部402は、メイン制御処理の終了判定を行う。メイン制御部402は、具体的には、ネットワークI/F306を介してホストコンピュータ102から送信されるスキャン終了命令や、LCDタッチパネル330から入力される終了命令に基づき、メイン制御処理の終了判定を行う。他の例としては、メイン制御部402は、タイマー設定(図示なし)等に基づき、メイン制御処理の終了判定を行ってもよい。メイン制御部402は、例えば、メイン制御処理の終了命令を受信した場合に、メイン制御処理を終了すると判定する。
メイン制御部402は、メイン制御処理を終了すると判定した場合には(ステップS1208でYES)、メイン制御処理を終了する。メイン制御部402は、メイン制御処理を終了しないと判定した場合には(ステップS1208でNO)、処理をステップS1201へ進め、物体載置待ち状態となる。これにより、ユーザが複数の原稿をスキャンしたい場合に、書画台204上の原稿を取り換えたことを検知することができ、複数の原稿のスキャンを連続して実行できる。
図13は、図12を参照しつつ説明した単体物体識別処理(ステップS1206)における詳細な処理を示すフローチャートである。まず、ステップS1301において、スキャン処理部413は、スキャン処理を実行する。スキャン処理は、ステップS1311〜ステップS1316を含んでいる。ステップS1311及びステップS1314の処理は、載置された物体を特定する処理である。メイン制御部402は、載置された物体に応じて、続いて実行する処理を決定する。
ステップS1311において、スキャン処理部413は、距離画像センサ部208とカメラ部202の情報に基づいて、載置された物体が平面原稿か否かを判定する。具体的には、メイン制御部402は、手領域以外の物体の高さが一定値以下か否かを判定する。スキャン処理部413は、より具体的な一例としてはカメラ部から肌色領域を検出し、その肌色領域を手領域と見なし、その部分以外の領域が所定の高さ以下にある場合は載置された物体が平面原稿であると判定する。一方、メイン制御部402は、所定の高さよりも高い場合には載置された物体が厚みのある物体である、すなわち平面原稿ではないと判定する。
ステップS1311において、平面原稿画像撮影部410は、物体が平面原稿であると判定した場合には(ステップS1311でYES)、処理をステップS1312へ進める。ステップS1312において、平面原稿画像撮影部410は、平面原稿画像の撮影処理を行う。本処理については、図15等を参照しつつ後述する。メイン制御部402は、物体が平面原稿でないと判定した場合には(ステップS1311でNO)、処理をステップS1313へ進める。ステップS1313の処理は、載置された物体が書籍であるか、書籍以外の立体物であるかを判定するための処理である。ステップS1313において、物体識別部414は、載置された物体が書籍か書籍以外の立体物かを判別するための2クラス識別器を用いて、載置された物体が書籍か否かを判定する。なお、ここで用いられる2クラス識別器は、図7に示す処理により図8(a)のキーワードを書籍として設定し、書籍とそれ以外の撮影画像に基づいて作成された識別器である。
次に、ステップS1314において、メイン制御部402は、識別結果が書籍である場合には(ステップS1314でYES)、処理をステップS1315へ進める。ステップS1315において、書籍画像撮影部411は、書籍画像撮影処理を行う。本処理については、図17等を参照しつつ後述する。一方で、ステップS1314において、メイン制御部402は、識別結果が書籍でない場合には(ステップS1314でNO)、処理をステップS1316へ進める。ステップS1316において、立体画像撮影部412は、立体画像撮影処理を行う。立体撮影処理において、立体画像撮影部412は、距離画像センサ部208にて取得した画像に対して、図5を参照しつつ説明した距離画像取得部408の処理により得られた画像を取得する。さらに、立体画像撮影部412は、カメラ部202にて取得した画像に対し、後述の平面原稿画像撮影処理を実行することにより得られた画像を取得する。このように、立体画像撮影部412は、2つの画像を取得する。
次に、ステップS1303において、物体識別部414は、多クラス識別器を用いて、載置された物体を識別する。なお、ここで用いられる他クラス識別器は、図7に示す処理により、図8(c)のキーワードに例えば、はさみ、ペン、印鑑、電話、時計等を設定し、これらの物体の撮影画像とそれ以外の撮影画像に基づいて、作成された識別器である。
次に、ステップS1304において、メイン制御部402は、GUIテーブルを参照し、ステップS1301において特定された物体に対応付けられたGUIを選択する。ここで、GUIは、識別した物体に関連する情報や、物体の名称を表示するものである。図14は、GUI対応テーブル1400を示す図である。GUI対応テーブルは、キーワードとGUIとを対応付ける情報である。GUI対応テーブルは、予め定義され例えばROM304等に記録されているものとする。ステップS1304の処理の後、メイン制御部402は、処理をステップS1305へ進める。ステップS1305において、メイン制御部402は、図12のステップS1203の処理と同様に、スキャン処理の実行タイミングまで待機する。そして、メイン制御部402は、スキャン実行のタイミングになると(ステップS1305でYES)、単体物体識別処理を終了し、処理を図12のステップS1208へ進める。
一方、ステップS1312及びステップS1315の処理の後、メイン制御部402は、処理をステップS1302へ進める。ステップS1302において、メイン制御部402は、物体除去待ち処理を行う。物体除去待ち処理は、ステップS1321及びステップS1322を含む。ステップS1321において、GUI部品生成表示部417は図示しないスキャン終了画面を表示する。次に、ステップS1322において、メイン制御部402は、物体検知部409からの物体除去通知を受信するのを待つ。ここで、物体除去通知は、物体検知部409が図11のステップS1125で通知するものである。メイン制御部402は、物体除去通知を受信すると(ステップS1322でYES)、物体除去待ち処理を終了し、その後処理を図12のステップS1208へ進める。
図15は、図13を参照しつつ説明した平面原稿画像撮影処理(ステップS1312)における詳細な処理を示すフローチャートである。図16は、平面原稿画像撮影処理の説明図である。ステップS1501において、平面原稿画像撮影部410は、カメラ画像取得部407を介してカメラ部202からの画像を1フレーム取得する。ここで、カメラ部202の座標系は図2(a)で示したように書画台204に正対していない。したがって、このときの撮影画像は、図16(a)に示すように対象物1601、書画台204ともに歪んでいる。
ステップS1502において、平面原稿画像撮影部410は、背景カメラ画像と、ステップS1501で取得したカメラ画像との画素毎の差分を算出し、差分画像を生成する。そして、平面原稿画像撮影部410は、差分画像を、差分のある画素が黒、差分の無い画素が白となるように二値化する。したがって、ここで生成した差分画像は、図16(b)の領域1602のように、対象物1601の領域が黒色の(差分がある)画像となる。
次に、ステップS1503において、平面原稿画像撮影部410は、差分領域1602を用いて、図16(c)のように対象物1601のみの画像を抽出する。対象物のみの画像を検出した後、ステップS1504へ進める。ステップS1504において、平面原稿画像撮影部410は、対象物1601のみの画像に対し画像処理を施す。なお、この画像処理は平面原稿画像撮影部410としてのCPU302の他、FPGA313や画像処理プロセッサ307が実行してもよい。画像処理(ステップS1504)は、ステップS1511〜ステップS1514を含んでいる。
ステップS1511において、平面原稿画像撮影部410は、抽出した原稿領域画像に対して階調補正を行う。次に、ステップS1512において、平面原稿画像撮影部410は、抽出した原稿領域画像に対してカメラ座標系から書画台204への射影変換を行い、図16(d)のように書画台204の真上から見た画像1603に変換する。ここで用いる射影変換パラメータは、平面パラメータとカメラ座標系から求めることができる。
図16(d)に示したように、書画台204上への原稿の置き方により、ここで得られる画像1603は傾いていることがある。そこで、ステップS1512に続く、ステップS1513において、平面原稿画像撮影部410は、画像1603を矩形近似してからその矩形が水平になるように回転し、図16(e)に示す画像1604のように傾きのない画像を得る。このとき、平面原稿画像撮影部410は、図16(f)に示すように、基準ラインに対しての矩形の傾きθ1及びθ2を算出し、傾きが小さい方(ここではθ1)を画像1603の回転角度として決定する。また他の例としては、平面原稿画像撮影部410は、図16(g)及び図16(h)に示すように、画像1603中に含まれる文字列に対してOCR処理を行い、文字列の傾きから画像1603の回転角度の算出及び天地判定処理をしてもよい。
次に、ステップS1514において、平面原稿画像撮影部410は、抽出した画像1604に対して、予め設定された画像フォーマット(例えばJPEG、TIFF、PDF等)に合わせて圧縮及びファイルフォーマット変換を行う。そして、平面原稿画像撮影部410は、データ管理部405を介してHDD305の所定の領域へファイルとして保存する。以上で、平面原稿画像撮影処理が終了する。
図17は、図13を参照しつつ説明した書籍画像撮影処理(ステップS1315)における詳細な処理を示すフローチャートである。また、図18は、書籍画像撮影処理の説明図である。ステップS1701において、書籍画像撮影部411は、カメラ画像取得部407、距離画像取得部408を用いて、カメラ部202からカメラ画像を、距離画像センサ部208から距離画像を、それぞれ1フレームずつ取得する。
ここで得られるカメラ画像の例を図18(a)に示す。図18(a)では、書画台204と撮影対象書籍1811を含むカメラ画像1801が得られている。図18(b)は、ここで得られた距離画像の例である。図18(b)では、距離画像センサ部208に近い方が濃い色で表されており、距離画像センサ部208から対象物体1812上の各画素への距離が含まれる距離画像1802が得られている。また、図18(b)において、距離画像センサ部208からの距離が書画台204よりも遠い画素については白で表されており、対象物体1812の書画台204に接している部分(対象物体1812では右側のページ)も同じく白色となる。
次に、ステップS1702では、書籍画像撮影部411は、取得したカメラ画像と距離画像から書画台204上に載置された書籍物体の3次元点群を算出する処理を行う。ステップS1702の処理は、ステップS1711〜ステップS1716の処理を含んでいる。ステップS1711において、書籍画像撮影部411は、カメラ画像1801と背景カメラ画像との画素毎の差分を算出して二値化を行い、図18(c)のように物体領域1813が黒で示されるカメラ差分画像1803を生成する。
次に、ステップS17112において、書籍画像撮影部411は、カメラ差分画像1803に対し、カメラ座標系から距離画像センサ座標系への変換を行う。そして、書籍画像撮影部411は、図18(d)に示すように距離画像センサ部208からみた物体領域1814を含むカメラ差分画像1804を生成する。次に、ステップS1713において、書籍画像撮影部411は、距離画像と書画台背景距離画像との画素毎の差分を算出して二値化を行い、図18(e)に示すように物体領域1815が黒で示される距離差分画像1805を生成する。
対象物体1811の書画台204と同じ色の部分については、画素値の差が小さくなるためカメラ差分画像1803中の物体領域1813に含まれなくなる場合がある。また、対象物体1812の書画台204と高さが変わらない部分については距離画像センサ部208からの距離値が書画台204と差が小さいため、距離差分画像1805中の物体領域1815には含まれない場合がある。そこで、続く、ステップS1714において、書籍画像撮影部411は、カメラ差分画像1803と距離差分画像1805の和をとって図18(f)に示す物体領域画像1806を生成し、物体領域1816を得る。ここで物体領域1816は書画台204と比べて色が異なるか又は高さが異なる領域となる。この物体領域1816は、カメラ差分画像1803中の物体領域1813及び距離差分画像1805中の物体領域1815に比べて、より正確に物体領域を表している。
物体領域画像1806は、距離画像センサ座標系であるため、ステップS1715においては、書籍画像撮影部411は、距離画像1802から物体領域画像1806中の物体領域1816のみを抽出することが可能である。次に、ステップS1716においては、書籍画像撮影部411は、ステップS1715で抽出した距離画像を直交座標系に変換することにより図18(g)に示した3次元点群1817を生成する。この3次元点群1817が書籍物体の3次元点群である。物体領域画像及び3次元点群が取得されると、書籍画像撮影部411は、書籍物体の3次元点群算出処理を終了し、その後処理をステップS1703へ進める。
ステップS1703において、書籍画像撮影部411は、書籍画像に対する画像処理を行う。この画像処理は、書籍画像撮影部411としてのCPU302の他、FPGA313や画像処理プロセッサ307が実行してもよい。ステップS1703の処理は、ステップS1721〜ステップS1723の処理を含んでいる。ステップS1721において、書籍画像撮影部411は、取得したカメラ画像と、算出した3次元点群から、書籍画像のゆがみ補正処理を行い、2次元の書籍画像を生成する。なお、ステップS1721の処理については、図19等を参照しつつ後述する。
ステップS1721の処理の後、ステップS1722において、書籍画像撮影部411は、生成した書籍画像に対し、階調補正を施す。次に、ステップS1723において、書籍画像撮影部411は、書籍画像に対して、予め設定された画像フォーマット(例えばJPEG、TIFF、PDF等)に合わせて圧縮及びファイルフォーマット変換を行う。以上で、画像処理(ステップS1703)が終了する。書籍画像撮影部411は、続いて、処理をS1704へ進める。ステップ1704において、書籍画像撮影部411は、生成した画像データを、データ管理部405を介してHDD305の所定の領域へファイルとして保存する。以上で、書籍画像撮影処理が終了する。
図19は、図17を参照しつつ説明した画像書籍歪み補正処理(ステップS1721)における詳細な処理を示すフローチャートである。ステップS1901において、書籍画像撮影部411は、物体領域画像1806を距離センサ画像座標系からカメラ座標系に変換する。次に、ステップS1902において、書籍画像撮影部411は、座標変換後の物体領域画像1806から物体領域1816を抽出する。次に、ステップS1903において、書籍画像撮影部411は、抽出した物体領域1816の画像を書画台平面へ射影変換する。次に、ステップS1904において、書籍画像撮影部411は、射影変換した物体領域画像1806を矩形近似し、その矩形が水平になるように回転することによって、図18(g)の書籍画像1807を生成する。書籍画像1807は近似矩形の片方の辺がX軸に平行となっているため、続いて、書籍画像1807に対してX軸方向へのゆがみ補正処理が行われる。
ステップS1905において、書籍画像撮影部411は、図20に示すように、書籍画像1807の3次元点群1817の最も左端の点をPとする。次に、ステップS1906において、書籍画像撮影部411は、書籍物体の3次元点群1817から図20に示す点Pの高さh1を取得する。次に、ステップS1907において、書籍画像撮影部411は、書籍画像1807の点Pに対してX軸方向に所定の距離x1離れた点をQとする。次に、ステップS1908において、書籍画像撮影部411は、3次元点群1817から点Qの高さh2を取得する。次に、ステップS1909において、書籍画像撮影部411は、点Pと点Qの書籍物体上での距離l1を(式4)により、直線近似で算出する。
次に、ステップS1910において、書籍画像撮影部411は、距離l1でPQ間の距離を補正し、補正結果に応じて、図20の画像2000上の点P'と点Q'の位置に画素をコピーする。次に、ステップS1911において、書籍画像撮影部411は、処理を行った点Qを点Pとする。次に、ステップS1912において、書籍画像撮影部411は、すべての画素について本処理を行ったか否かを確認する。未処理の画素が存在する場合には(ステップS1912でNo)、処理をステップS1906へ進める。すべての画素について処理が終了した場合には(ステップS1912でYes)、書籍画像ゆがみ補正処理を終了する。このように、本処理をすべての画素について繰り返すことにより、ゆがみ補正後の画像2000を得ることができる。
図21は、図12を参照しつつ説明した複数物体識別処理(S1207)における詳細な処理を示すフローチャートである。複数の物体を識別する場合、個々の物体に対する識別結果が合っていないと正しいGUIを提示することができない。そこで、本実施形態に係る物体識別部414は、一般的な物体識別の技術に加え、書画台204に同時に置かれる物体を考慮し、撮影画像中に同時に存在し得る物体を制限することで、より精度よく複数の物体それぞれを識別する。
ステップS2101において、物体識別部414は、スキャン処理を行う。スキャン処理は、ステップS2111〜ステップS2116を含んでいる。ステップS2111〜ステップS2116の処理は、それぞれ図13に示すステップS1311〜ステップS1316の処理と同様である。そして、ステップS2112の処理の後及びステップS2115の処理の後、物体識別部414は、処理をステップS2103へ進める。また、ステップS2116の処理の後、物体識別部414は、処理をステップS2102へ進める。ステップS2102の処理は、図13に示すステップS1303の処理と同様である。物体識別部414は、ステップS2102の処理の後、処理をステップS2103へ進める。
ステップS2103において、物体識別部414は、すべての物体の識別が終了したか否かを判定する。物体識別部414は、識別が完了していない物体が存在する場合には(ステップS2103でNO)、処理をS2101へ進め、処理を継続する。物体識別部414は、すべての物体の識別が終了した場合には(ステップS2103でYES)、処理をS2104へ進める。なお、複数物体識別処理においては、置かれた物体に対してGUI等を表示することがあるため、単体物体処理に含まれる物体除去待ち処理(ステップS1302)は含まれない。
ステップS2104において、物体識別部414は、検出された複数の物体間の関係性に着目した再識別処理を実行する。再識別処理(ステップS1204)については、図24等を参照しつつ後に詳述する。ステップS2104の処理の後、物体識別部414は、処理をS2105へ進める。なお、ステップS2105と、これに続くステップS2106の処理は、それぞれ、図13を参照しつつ説明したステップS1304及びステップS1305の処理と同様である。但し、ステップS2105においては、図22(a)に示すGUI対応テーブル2200が参照されるものとする。なお、ステップS2111、ステップS2113、ステップS2114及びステップS2102の処理は、物体識別処理の一例である。
次に、再識別処理について説明する。物体識別部414は、予めユーザからの入力等に従い、同時に置かれる物体を設定する。図22(b)は、同時に置かれる物体を対応付ける物体対応テーブル2300の一例を示す図である。物体対応テーブル2300は、予め作成され、例えば、ROM304等に記録されているものとする。そして、物体識別部414は、学習段階において、物体対応テーブル2300を参照し、物体対応テーブル2300において同時に置かれる物体として定義されている複数の物体を対象とした識別器を生成する。
例えば、図22(b)の例では、キーワード1に対して、キーワード3とキーワード4との組み合わせが設定されている。したがって、物体識別部414は、キーワード3とキーワード4を識別する2クラス識別器を生成する。同様に、物体識別部414は、キーワード2に対しては、キーワード4とキーワード5を識別する2クラス識別器を作成する。なお、同時に置かれる物体が1つであった場合、一意に決定されるため、識別器を生成する必要は無い。また、すべての物体に対して組み合わせが設定されている場合も同様である。このようにして、物体識別部414は各キーワードと、各キーワードに対して定まるキーワードの組み合わせから生成された識別器とを対応付ける識別器対応テーブルを生成し、これをROM304等に記録する。図22(c)は、識別器対応テーブル2301の一例である。
図24は、再識別処理(ステップS2104)における詳細な処理を示すフローチャートである。再識別処理においては、上述の処理により生成された識別器が用いられる。ステップS2401において、物体識別部414は、スコア(評価値)に基づいて、1の識別結果を選択する(結果選択処理)。具体的には、物体識別部414は、スコアが最大の識別結果を正しい識別結果として選択する。なお、物体識別部414は、選択した識別結果については、得られた識別結果を最終的な識別結果として確定する。
次に、ステップS2402において、物体識別部414は、図22(c)に示す識別器対応テーブル2301を参照し、ステップS2401において選択した識別結果に対応付けられている識別器を選択する(識別器選択手段)。ここで選択される識別器は、上述のように、図22(b)に示す物体対応テーブル2300において、同一の撮影画像から識別される物体として定義された物体を識別する識別器である。
次に、ステップS2403において、物体識別部414は、ステップS2402において選択した識別器を用いて、ステップS2401において選択された識別結果以外の識別結果、すなわち他の識別結果に対応する物体に対し再度識別処理を行う。ここで用いられる識別器は、物体対応テーブルにおいて対応付けられた種別に応じて生成されたものである。すなわち、ステップS2401の処理は、物体対応テーブルにおいて、ステップS2401において選択された識別結果に対応付けられている種別に基づいて、他の識別結果に対応する物体に対し再び種別を識別する識別処理の一例である。以上で、再識別処理が終了する。
このように、物体識別部414は、ステップS2403において、同時に存在し得る複数の物体の種別に応じて、対象を絞り込んだ識別器を用いて再識別処理を行う。これにより、ステップS2111、ステップS2114及びステップS2102における物体識別処理による識別結果のスコアの低い物体についても、より高い精度の識別結果を得ることができる。
図25は、再識別処理の説明図である。図25(a)は、を識別空間座標系における、識別可能なすべての種別を識別するための空間示す図である。識別空間は、識別境界2500により、キーワード1〜5それぞれに対応する5つの空間2501〜2505に分割されている。この識別境界2500は、すべてのキーワードに対して汎化性を持つように、前述したパラメータによって調整され、キーワード数が増えるほど、より複雑なものとなる。これに対し、図25(b)は、識別対象を制限した場合の識別空間を示す図である。識別境界2510により、2つのキーワードそれぞれに対応する2つの空間2511,2512に分割されている。なお、これは、2クラス識別器に対応するが、全クラス数未満の数のクラスの識別器であればよい。
上述の通りSVMにおけるパラメータは識別器毎に設定されており、各学習データに対して最適な精度を出すように設定される。対象物を制限した識別器は、それぞれの物体に対してより明確な識別境界を持っているため、識別精度の向上が実現する。
以上のように、本実施形態に係るカメラスキャナ101は、識別対象の撮影画像に複数の物体が含まれる場合に、各物体を精度良く識別することができる。本実施形態に係るスキャンシステムでは、プロジェクタ207によるGUIの投射と距離画像センサ部208によるジェスチャー認識、及び書画台上の物体の検知を行うことができる。さらに、スキャンシステムでは、物体が複数置かれた場合、それぞれを適切に認識し、その組み合わせに基づいたGUIの提示を行うことができる。さらに、スキャンシステムでは、置かれた物体に対して関係性に基づいたカテゴリの絞込みを行うことにより、精度の高い複数物体認識の枠組みを実現することが可能となる。
実施形態の変更例としては、ステップS2105において、選択されるGUI対応テーブルが、プロジェクタ207によって投影されている画面毎に設定されていてもよい。図23は、第1の画面に対応するGUI対応テーブル2601と、第2の画面に対応するGUI対応テーブル2602とを示す図である。それぞれのGUI対応テーブル2601,2602は、網掛けされていない部分が有効なデータである。そして、物体識別部414は、立体認識処理(ステップS2102)及びGUI選択処理(S2105)において、何れかのGUI対応テーブルを用いることで、対象とする物体の組み合わせを制限し、複数物体における認識精度を向上させることが可能である。
例えば、ある投影画面1では、図23(a)のテーブルを用いるように設定し、キーワード1〜3を識別対象とする。また、ある投影画面2では、図23(b)のテーブルを用いるように設定し、キーワード3〜5を対象とする。さらに、この場合において、図21の再識別処理(S2104)を行わず、S2103でYESと判定された場合には、処理をS2105へ進めることとしてもよい。
以上、本発明の好ましい実施形態について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
(その他の実施例)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
101 カメラスキャナ
102 ホストコンピュータ
103 プリンタ
102 ホストコンピュータ
103 プリンタ
Claims (6)
- 撮影画像から、物体の有無を検知する物体検知手段と、
前記物体検知手段により複数の物体が検知された場合に、複数の物体それぞれの種別を識別し、各識別結果の確からしさを示す評価値を算出する第1の識別手段と、
前記評価値に基づいて、前記第1の識別手段により、前記複数の物体それぞれに対して得られた複数の識別結果のうち一の識別結果を選択する結果選択手段と、
各物体の種別に対し、同一の撮影画像に含まれる物体の種別を対応付ける物体対応テーブルを参照し、前記物体対応テーブルにおいて、前記結果選択手段により選択された前記識別結果に対応付けられている種別に基づいて、前記結果選択手段により選択された識別結果以外の他の識別結果が得られた物体に対し、再び種別を識別する第2の識別手段と
を有することを特徴とする物体識別装置。 - 前記結果選択手段は、前記評価値が最大の識別結果を選択することを特徴とする請求項1に記載の物体識別装置。
- 前記第2の識別手段は、前記結果選択手段により選択された前記識別結果に基づいて、前記選択された識別結果以外の他の識別結果を識別する識別器を用いて、種別を識別することを特徴とする請求項1又は2に記載の物体識別装置。
- 前記物体の種別と、前記物体対応テーブルにおいて前記物体の種別に対応付けられている他の種別を識別する識別器と、を対応付ける識別器対応テーブルを参照し、前記結果選択手段により選択された前記識別結果から前記識別器を選択する識別器選択手段をさらに有し、
前記第2の識別手段は、前記識別器選択手段により選択された前記識別器を用いて、種別を識別することを特徴とする請求項3に記載の物体識別装置。 - 物体識別装置が実行する物体識別方法であって、
撮影画像から、物体の有無を検知する物体検知ステップと、
前記物体検知ステップにおいて複数の物体が検知された場合に、複数の物体それぞれの種別を識別し、各識別結果の確からしさを示す評価値を算出する第1の識別ステップと、
前記評価値に基づいて、前記第1の識別ステップにおいて、前記複数の物体それぞれに対して得られた複数の識別結果のうち一の識別結果を選択する結果選択ステップと、
各物体の種別に対し、同一の撮影画像に含まれる物体の種別を対応付ける物体対応テーブルを参照し、前記物体対応テーブルにおいて、前記結果選択ステップにおいて選択された前記識別結果に対応付けられている種別に基づいて、前記結果選択ステップにおいて選択された識別結果以外の他の識別結果が得られた物体に対し、再び種別を識別する第2の識別ステップと
を含むことを特徴とする物体識別方法。 - コンピュータを、
撮影画像から、物体の有無を検知する物体検知手段と、
前記物体検知手段により複数の物体が検知された場合に、複数の物体それぞれの種別を識別し、各識別結果の確からしさを示す評価値を算出する第1の識別手段と、
前記評価値に基づいて、前記第1の識別手段により、前記複数の物体それぞれに対して得られた複数の識別結果のうち一の識別結果を選択する結果選択手段と、
各物体の種別に対し、同一の撮影画像に含まれる物体の種別を対応付ける物体対応テーブルを参照し、前記物体対応テーブルにおいて、前記結果選択手段により選択された前記識別結果に対応付けられている種別に基づいて、前記結果選択手段により選択された識別結果以外の他の識別結果が得られた物体に対し、再び種別を識別する第2の識別手段と
として機能させるためのプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015200489A JP2017073039A (ja) | 2015-10-08 | 2015-10-08 | 物体識別装置、物体識別方法及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015200489A JP2017073039A (ja) | 2015-10-08 | 2015-10-08 | 物体識別装置、物体識別方法及びプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2017073039A true JP2017073039A (ja) | 2017-04-13 |
Family
ID=58538735
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015200489A Pending JP2017073039A (ja) | 2015-10-08 | 2015-10-08 | 物体識別装置、物体識別方法及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2017073039A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110603570A (zh) * | 2017-05-10 | 2019-12-20 | 富士通株式会社 | 对象物识别方法、装置、系统、程序 |
US10726309B2 (en) | 2017-08-14 | 2020-07-28 | Samsung Electronics Co., Ltd. | Subject recognizing method and apparatus |
-
2015
- 2015-10-08 JP JP2015200489A patent/JP2017073039A/ja active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110603570A (zh) * | 2017-05-10 | 2019-12-20 | 富士通株式会社 | 对象物识别方法、装置、系统、程序 |
CN110603570B (zh) * | 2017-05-10 | 2023-08-04 | 富士通株式会社 | 对象物识别方法、装置、系统、程序 |
US10726309B2 (en) | 2017-08-14 | 2020-07-28 | Samsung Electronics Co., Ltd. | Subject recognizing method and apparatus |
US11423266B2 (en) | 2017-08-14 | 2022-08-23 | Samsung Electronics Co., Ltd. | Subject recognizing method and apparatus |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6327931B2 (ja) | 画像処理装置、情報処理方法及びプログラム | |
JP4642128B2 (ja) | 画像処理方法、画像処理装置及びシステム | |
WO2019011073A1 (zh) | 人脸活体检测方法及相关产品 | |
JP2016170542A (ja) | 画像処理装置、画像処理方法及びプログラム | |
CN108781252A (zh) | 一种图像拍摄方法及装置 | |
JP5656768B2 (ja) | 画像特徴量抽出装置およびそのプログラム | |
JP2015185034A (ja) | 画像認識装置、画像認識方法およびプログラム | |
JP2016212784A (ja) | 画像処理装置、画像処理方法 | |
JP2016103137A (ja) | ユーザインタフェース装置、画像処理装置及び制御用プログラム | |
JP6399840B2 (ja) | 画像処理装置、画像処理方法及びプログラム | |
EP3185106A1 (en) | Operating apparatus, control method therefor, program, and storage medium storing program | |
Echeagaray-Patrón et al. | Face recognition based on matching of local features on 3D dynamic range sequences | |
US9924066B2 (en) | Image processing apparatus, information processing method, and program | |
KR20160046399A (ko) | 텍스쳐 맵 생성 방법 및 장치와 데이터 베이스 생성 방법 | |
JP2017073039A (ja) | 物体識別装置、物体識別方法及びプログラム | |
JP2018112894A (ja) | システムおよび制御方法 | |
Sagana et al. | Object Recognition System for Visually Impaired People | |
JP5791361B2 (ja) | パターン識別装置、パターン識別方法およびプログラム | |
JP6747112B2 (ja) | 情報処理システム、画像処理装置、情報処理装置、及びプログラム | |
JP2017199288A (ja) | 画像処理装置、画像処理方法及びプログラム | |
KR101200009B1 (ko) | 사용자의 손 동작을 이용하여 제어 기능을 제공하기 위한 프리젠테이션 시스템 및 그 방법 | |
US10116809B2 (en) | Image processing apparatus, control method, and computer-readable storage medium, which obtains calibration image information with which to correct image data | |
JP6624861B2 (ja) | 画像処理装置、制御方法およびプログラム | |
JP2016139396A (ja) | ユーザーインターフェイス装置、方法およびプログラム | |
EP3152701A1 (en) | Method of and system for determining and selecting media representing event diversity |