JP2018191195A - 画像処理装置、画像処理装置の制御方法、及びプログラム - Google Patents
画像処理装置、画像処理装置の制御方法、及びプログラム Download PDFInfo
- Publication number
- JP2018191195A JP2018191195A JP2017093523A JP2017093523A JP2018191195A JP 2018191195 A JP2018191195 A JP 2018191195A JP 2017093523 A JP2017093523 A JP 2017093523A JP 2017093523 A JP2017093523 A JP 2017093523A JP 2018191195 A JP2018191195 A JP 2018191195A
- Authority
- JP
- Japan
- Prior art keywords
- detection
- unit
- image
- priority
- 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
- Studio Devices (AREA)
- User Interface Of Digital Computer (AREA)
- Image Analysis (AREA)
- Position Input By Displaying (AREA)
- Facsimile Scanning Arrangements (AREA)
Abstract
【課題】良好な結果を得るための最適な画像が異なるような複数の検知機能を1つの撮影デバイスで精度よく実現すること。
【解決手段】カメラスキャナ101のメイン制御部402は、ジェスチャー検知部409が行うジェスチャー検知処理、および、物体検知部410が物体検知処理のうち、優先する検知処理を判定し(S1001)、撮影パラメータを、前記優先する検知処理と判定された検知処理に応じた撮影パラメータに切り替えるように制御する(S1002、S1005)。
【選択図】図10
【解決手段】カメラスキャナ101のメイン制御部402は、ジェスチャー検知部409が行うジェスチャー検知処理、および、物体検知部410が物体検知処理のうち、優先する検知処理を判定し(S1001)、撮影パラメータを、前記優先する検知処理と判定された検知処理に応じた撮影パラメータに切り替えるように制御する(S1002、S1005)。
【選択図】図10
Description
本発明は、撮影デバイスで撮影した画像を処理する画像処理装置、画像処理装置の制御方法、及びプログラムに関する。
従来、撮影デバイスから得られる画像を基に、ユーザのジェスチャー操作を認識して対応する処理を実行するように制御するシステムや、物体(人や物)の動きを検知してイベントを通知するシステムなどが提案されている(特許文献1、2)。
特許文献1では、撮影デバイスから取得した画像を解析して人の手や指等を検出し、ジェスチャー操作として認識する技術(ジェスチャー検知機能)が提案されている。特許文献2では、撮影デバイスから取得した画像を解析して検出対象である人や物の動きを検知する技術(物体検知機能)が提案されている。しかし、上記従来の技術はいずれも、ジェスチャー検知機能や物体検知機能などのいずれか1つの検知機能を実現するものであり、1つの撮影デバイスで2つの検知機能を実現するものではなかった。
例えば1つの撮影デバイスでジェスチャー検知機能と、物体検知機能の双方を実現させようとした場合、それぞれの検知機能で検知性能を最大限発揮できるような画像の特性が異なるため、従来の技術では十分な性能を満たすことができなかった。
ジェスチャー検知機能では、動きに強い連続画像が必要となるため、露光時間を短くしてでも高フレームレートを満たすことが望ましい。一方、物体検知では、物体をはっきりと検出するために、露光時間を長くしてでも鮮明な画像を取ることが望ましい。このため、1つの撮影デバイスを用いて、上述のような異なる2つの要望を同時に満たすことができなかった。従来では、良好な結果を得るための最適な画像が異なるような複数の検知機能(例えば物体検知機能、ジェスチャー検知機能)を両立させるためには、個々の機能ごとに撮影デバイスを用意する必要があった。
ジェスチャー検知機能では、動きに強い連続画像が必要となるため、露光時間を短くしてでも高フレームレートを満たすことが望ましい。一方、物体検知では、物体をはっきりと検出するために、露光時間を長くしてでも鮮明な画像を取ることが望ましい。このため、1つの撮影デバイスを用いて、上述のような異なる2つの要望を同時に満たすことができなかった。従来では、良好な結果を得るための最適な画像が異なるような複数の検知機能(例えば物体検知機能、ジェスチャー検知機能)を両立させるためには、個々の機能ごとに撮影デバイスを用意する必要があった。
このように、従来の技術では、1つの撮影デバイスで撮影された画像を用いてジェスチャー検知機能や物体検知機能などの良好な結果を得るための最適な画像が異なるような複数の検知機能を精度よく実現するができなかった。
本発明は、上記の問題点を解決するためになされたものである。本発明の目的は、良好な結果を得るための最適な画像が異なるような複数の検知機能を1つの撮影デバイスで精度よく実現することができる仕組みを提供することである。
本発明は、所定の撮影領域を撮影する撮影手段と、前記撮影手段により撮影された画像データに基づいてそれぞれ異なる検知処理を行う複数の検知手段と、前記複数の検知手段がそれぞれ行う検知処理のうち優先する検知処理を判定する判定手段と、前記撮影手段の撮影モードを、前記判定手段により優先する検知処理と判定された検知処理に応じたモードに切り替える切り替え手段と、を有することを特徴とする。
本発明によれば、良好な結果を得るための最適な画像が異なるような複数の検知機能を1つの撮影デバイスで精度よく実現することができる。
以下、本発明を実施するための形態について図面を参照して説明する。
図1は、本発明の画像処理装置の一実施例を示すスタンド型スキャナを含むネットワーク構成の一例を示す図である。
カメラスキャナ101は、本実施例のスタンド型スキャナである。カメラスキャナ101は、イーサネット(登録商標)等のネットワーク104を介して、ホストコンピュータ102およびプリンタ103と通信可能に接続されている。
カメラスキャナ101は、本実施例のスタンド型スキャナである。カメラスキャナ101は、イーサネット(登録商標)等のネットワーク104を介して、ホストコンピュータ102およびプリンタ103と通信可能に接続されている。
カメラスキャナ101は、ホストコンピュータ102からの指示により、カメラスキャナ101から画像を読み取るスキャン機能や、スキャンデータをプリンタ103により出力するプリント機能の実行が可能である。また、カメラスキャナ101は、ホストコンピュータ102を介さず、カメラスキャナ101への直接の指示により、スキャン機能、プリント機能の実行も可能である。
<カメラスキャナの構成>
図2は、カメラスキャナ101の構成の一例を説明する図である。
図2(a)に示すように、カメラスキャナ101は、コントローラ部201、カメラ部202、腕部203、短焦点プロジェクタ207、距離画像センサ部208を含む。
図2は、カメラスキャナ101の構成の一例を説明する図である。
図2(a)に示すように、カメラスキャナ101は、コントローラ部201、カメラ部202、腕部203、短焦点プロジェクタ207、距離画像センサ部208を含む。
カメラスキャナの本体であるコントローラ部201と、撮影を行うためのカメラ部202、短焦点プロジェクタ207および距離画像センサ部208は、腕部203により連結されている。腕部203は、関節を用いて曲げ伸ばしが可能である。
図2(a)には、カメラスキャナ101が設置されている書画台204も示している。カメラスキャナ101のカメラ部202および距離画像センサ部208のレンズは、書画台204方向に向けられている。カメラスキャナ101は、破線で囲まれた読み取り領域205内の画像を読み取り可能である。図2の例では、読み取り領域205内に原稿206が置かれているため、カメラスキャナ101により原稿206を読み取り可能である。
また、書画台204内にはターンテーブル209が設けられている。ターンテーブル209は、コントローラ部201からの指示によって回転することが可能である。ターンテーブル209を回転することにより、ターンテーブル209上に置かれた物体とカメラ部202との角度を変えることができる。
なお、カメラ部202は、単一解像度で画像を撮影するものとしてもよいが、高解像度画像撮影と低解像度画像撮影が可能なものとすることが好ましい。
また、図2には示していないが、カメラスキャナ101は、図3に示すように、LCDタッチパネル330およびスピーカ340をさらに備えることもできる。さらに、カメラスキャナ101は、周囲の環境情報を収集するための人感センサ、照度センサ、加速度センサなどの各種センサデバイスを含むこともできる。
図2(b)は、カメラスキャナ101における座標系について表している。
カメラスキャナ101では、各ハードウェアデバイスに対して、「カメラ座標系」、「距離画像センサ座標系」、「プロジェクタ座標系」という座標系が定義されている。これらの座標系は、カメラ部202および距離画像センサ部208のRGBカメラ363が撮影する画像平面、あるいはプロジェクタ207が投影する画像平面をXY平面とし、画像平面に直交する方向をZ方向として定義したものである。
カメラスキャナ101では、各ハードウェアデバイスに対して、「カメラ座標系」、「距離画像センサ座標系」、「プロジェクタ座標系」という座標系が定義されている。これらの座標系は、カメラ部202および距離画像センサ部208のRGBカメラ363が撮影する画像平面、あるいはプロジェクタ207が投影する画像平面をXY平面とし、画像平面に直交する方向をZ方向として定義したものである。
さらに、本実施例では、これらの独立した座標系の3次元データを統一的に扱えるようにするために「直交座標系」が定義されている。直交座標系では、書画台204を含む平面をXY平面とし、このXY平面から上方に垂直な向きをZ軸とする。
以下、座標系を変換する場合の例を、図2(c)を用いて説明する。
図2(c)は、直交座標系とカメラ座標系とを用いて表現された空間と、カメラ部202が撮影する画像平面との関係を示す。
直交座標系における3次元点P[X,Y,Z]は、(1)式によって、カメラ座標系における3次元点Pc[Xc,Yc,Zc]へ変換できる。
図2(c)は、直交座標系とカメラ座標系とを用いて表現された空間と、カメラ部202が撮影する画像平面との関係を示す。
直交座標系における3次元点P[X,Y,Z]は、(1)式によって、カメラ座標系における3次元点Pc[Xc,Yc,Zc]へ変換できる。
ここで、Rcおよびtcは、直交座標系に対するカメラの姿勢(回転)と位置(並進)によって求まる外部パラメータによって構成され、Rcを3×3の回転行列、tcを並進ベクトルと呼ぶ。
逆に、カメラ座標系で定義された3次元点Pc[Xc,Yc,Zc]は(2)式によって、直交座標系における3次元点P[X,Y,Z]への変換することができる
さらに、カメラ部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次元データを表しているものとする。
<カメラスキャナ101のコントローラ部201のハードウェア構成>
図3は、カメラスキャナ101の本体であるコントローラ部201のハードウェア構成の一例を示す図である。
図3は、カメラスキャナ101の本体であるコントローラ部201のハードウェア構成の一例を示す図である。
図3に示すように、コントローラ部201は、システムバス301に接続されたCPU302、RAM303、ROM304、HDD305及びネットワークI/F306を有する。さらに、コントローラ部201は、画像処理プロセッサ307、カメラ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には、さらに制御用プログラムによる動作に必要な各種設定や、カメラ入力によって生成された画像データ等を格納することができる。HDD305は、CPU302によって読み書き可能である。CPU302は、ネットワークI/F306を介してネットワーク104上の他の機器との通信を行う。
画像処理プロセッサ307は、RAM303に格納された画像データを読み出して処理し、またRAM303へ書き戻す。なお、画像処理プロセッサ307が実行する画像処理は、回転、変倍、色変換等を含む。
カメラI/F308は、カメラ部202および距離画像センサ部208と接続される。カメラI/F308は、CPU302からの指示に応じて、カメラ部202から画像データを、距離画像センサ部208から距離画像データ(距離情報)を取得して、RAM303へ書き込む。また、カメラI/F308は、CPU302からの制御コマンドを、カメラ部202及び距離画像センサ部208へ送信し、カメラ部202及び距離画像センサ部208の設定を行う。距離画像センサ部208については後述する図5で説明する。
なお、コントローラ部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へのデータの読み書きを行う。
<カメラスキャナ101の制御用プログラムの機能構成>
図4(a)は、CPU302が実行するカメラスキャナ101の制御用プログラムの機能構成401の一例を示す図である。カメラスキャナ101の制御用プログラムは前述のようにHDD305に格納され、CPU302が起動時にRAM303上に展開して実行する。即ち、図4(a)に示す機能構成401は、CPU302がHDD305に格納されるカメラスキャナ101の制御用プログラムをRAM303にロードして実行することにより実現される。
また、図4(b)は、機能構成401の各モジュールの処理の関係を示すシーケンス図である。
図4(a)は、CPU302が実行するカメラスキャナ101の制御用プログラムの機能構成401の一例を示す図である。カメラスキャナ101の制御用プログラムは前述のようにHDD305に格納され、CPU302が起動時にRAM303上に展開して実行する。即ち、図4(a)に示す機能構成401は、CPU302がHDD305に格納されるカメラスキャナ101の制御用プログラムをRAM303にロードして実行することにより実現される。
また、図4(b)は、機能構成401の各モジュールの処理の関係を示すシーケンス図である。
機能構成401において、メイン制御部402は制御の中心であり、機能構成401内の他の各モジュールを図4(b)に示すように制御する。詳細は、以下に示す各モジュールの説明とともに説明する。
画像取得部416は、画像入力処理を行うモジュールである。画像取得部416は、カメラ画像取得部407、距離画像取得部408を有する。
カメラ画像取得部407は、カメラI/F308を介してカメラ部202が出力する画像データを取得し、RAM303へ格納する。
距離画像取得部408は、カメラI/F308を介して距離画像センサ部208が出力する距離画像データを取得し、RAM303へ格納する。距離画像取得部408の処理の詳細は、後述する図5A、図5Bを用いて説明する。
カメラ画像取得部407は、カメラI/F308を介してカメラ部202が出力する画像データを取得し、RAM303へ格納する。
距離画像取得部408は、カメラI/F308を介して距離画像センサ部208が出力する距離画像データを取得し、RAM303へ格納する。距離画像取得部408の処理の詳細は、後述する図5A、図5Bを用いて説明する。
認識処理部417は、カメラ画像取得部407、距離画像取得部408が取得する画像データから書画台204上の物体の動きを検知して認識するモジュールである。認識処理部417は、ジェスチャー検知部409、物体検知部410を有する。
ジェスチャー検知部409は、画像取得部416から書画台204上の画像を取得し続け、タッチなどのジェスチャーを検知するとメイン制御部402へ通知する。ジェスチャー検知部409の処理の詳細は図6を用いて後述する。
物体検知部410は、画像取得部416から書画台204を撮影した画像を取得し、書画台204上に物体が置かれるタイミング、物体が置かれて静止するタイミング、あるいは物体が取り除かれるタイミングなどを検知する処理を行う。物体検知部410の処理の詳細は図7を用いて後述する。物体検知部410は、メイン制御部402からの要求により、物体検知処理を開始し、物体検知処理で発行されたイベントを、メイン制御部402へ通知する。
画像処理部418は、カメラ部202および距離画像センサ部208から取得した画像を画像処理プロセッサ307で解析するために用いられる。画像処理部418は、スキャン処理部411、各種画像処理モジュール(例えばOCR処理部412等)を有する。
スキャン処理部411は、対象物のスキャンを行うモジュールである。スキャン処理部411は、メイン制御部402からの要求により、平面原稿/書籍/立体物にそれぞれ適した処理を実行し、それぞれに応じた形式のデータを出力する。スキャン処理部411で実行される処理の1つである書籍原稿スキャン処理の詳細については図8を用いて後述する。
OCR処理部412は、文字認識処理を行う。
OCR処理部412は、文字認識処理を行う。
ジェスチャー検知部409やスキャン処理部411は、画像処理部418の各種画像処理モジュールを利用して処理を実行する。
ユーザインタフェース部403は、メイン制御部402からの要求を受け、メッセージやボタン等のGUI部品を生成する。そして、ユーザインタフェース部403は、表示部406へ生成したGUI部品の表示を要求する。
表示部406は、ディスプレイコントローラ309を介して、プロジェクタ207もしくはLCDタッチパネル330へ要求されたGUI部品の表示を行う。プロジェクタ207は、書画台204に向けて設置されているため、書画台204上にGUI部品を投射することが可能となっている。また、ユーザインタフェース部403は、ジェスチャー検知部409が認識したタッチ等のジェスチャー操作、あるいはシリアルI/F310を介したLCDタッチパネル330からの入力操作、そしてさらにそれらの座標を受信する。そして、ユーザインタフェース部403は、描画中の操作画面の内容と操作座標を対応させて操作内容(押下されたボタン等)を判定する。ユーザインタフェース部403は、この操作内容をメイン制御部402へ通知することにより、操作者の操作を受け付ける。
ネットワーク通信部404は、ネットワークI/F306を介して、ネットワーク104上の他の機器と例えばTCP/IPによる通信を行う。
データ管理部405は、制御用プログラム401の実行において生成した作業データなど様々なデータをHDD305上の所定の領域へ保存し、管理する。データ管理部405が管理するデータは、例えば、画像取得部416によって撮影され、スキャン処理部411により平面原稿/書籍/立体物に応じた形式で出力されたスキャンデータなどである。
データ管理部405は、制御用プログラム401の実行において生成した作業データなど様々なデータをHDD305上の所定の領域へ保存し、管理する。データ管理部405が管理するデータは、例えば、画像取得部416によって撮影され、スキャン処理部411により平面原稿/書籍/立体物に応じた形式で出力されたスキャンデータなどである。
<距離画像センサおよび距離画像取得部の説明>
図5A、図5Bは、距離画像取得部408の処理および距離画像センサ部208を説明する図である。
距離画像センサ部208は、赤外線によるパターン投射方式の距離画像センサである。赤外線パターン投射部361は、対象物に対して、人の目には不可視である赤外線によって3次元形状測定パターンを投射する。赤外線カメラ362は、対象物に投射した3次元形状測定パターンを読み取るカメラである。RGBカメラ363は、人の目に見える可視光をRGB信号で撮影するカメラである。
図5A、図5Bは、距離画像取得部408の処理および距離画像センサ部208を説明する図である。
距離画像センサ部208は、赤外線によるパターン投射方式の距離画像センサである。赤外線パターン投射部361は、対象物に対して、人の目には不可視である赤外線によって3次元形状測定パターンを投射する。赤外線カメラ362は、対象物に投射した3次元形状測定パターンを読み取るカメラである。RGBカメラ363は、人の目に見える可視光をRGB信号で撮影するカメラである。
図5A(a)は、距離画像取得部408の処理を説明するフローチャートである。図5A(a)のフローチャートに示す処理は、距離画像取得部408により実行される。即ち、図5A(a)に示す処理は、CPU302がHDD305に格納されるカメラスキャナ101の制御用プログラムをRAM303にロードして実行することにより実現される。
また、図5Bの(b)〜(d)はパターン投射方式による距離画像の計測原理を説明するための図である。
また、図5Bの(b)〜(d)はパターン投射方式による距離画像の計測原理を説明するための図である。
距離画像取得部408は、処理を開始すると、図5A(a)のS501において、距離画像センサ部208を用いて、例えば図5B(b)に示すように、赤外線パターン投射部361を用いて赤外線による3次元形状測定パターン522を対象物521に投射する。
次に、S502において、距離画像取得部408は、RGBカメラ363を用いて対象物を撮影したRGBカメラ画像523を1フレーム取得する。また、距離画像取得部408は、赤外線カメラ362を用いて、上記S501で投射した3次元形状測定パターン522を撮影した赤外線カメラ画像524を1フレーム取得する。なお、赤外線カメラ362とRGBカメラ363とでは設置位置が異なるため、図5B(c)に示すようにそれぞれで撮影される2つのRGBカメラ画像523および赤外線カメラ画像524の撮影領域が異なる。そこで、距離画像取得部408は、以下のS503、S504の処理においてこれらの対応付けを行う。
S503において、距離画像取得部408は、赤外線カメラ362の座標系からRGBカメラ363の座標系への座標系変換を用いて赤外線カメラ画像524をRGBカメラ画像523の座標系に合わせる。なお、赤外線カメラ362とRGBカメラ363の相対位置や、それぞれの内部パラメータは事前のキャリブレーション処理により既知であるとする。
次に、S504において、距離画像取得部408は、図5B(d)に示すように、3次元形状測定パターン522と上記S503で座標変換を行った赤外線カメラ画像524間での対応点を抽出する。例えば、距離画像取得部408は、赤外線カメラ画像524上の1点を3次元形状測定パターン522上から探索して、同一の点が検出された場合に対応付けを行う。あるいは、距離画像取得部408は、赤外線カメラ画像524の画素の周辺のパターンを3次元形状測定パターン522上から探索し、一番類似度が高い部分と対応付けてもよい。
次に、S505において、距離画像取得部408は、赤外線パターン投射部361と赤外線カメラ362を結ぶ直線を基線525(図5B(b))として三角測量の原理を用いて計算を行うことにより、赤外線カメラ362からの距離を算出する。距離画像取得部408は、上記S504で対応付けができた画素については、赤外線カメラ362からの距離を算出して画素値として保存し、対応付けができなかった画素については、距離の計測ができなかった部分として無効値を保存する。距離画像取得部408は、これを上記S503で座標変換を行った赤外線カメラ画像524の全画素に対して行うことで、各画素に距離値が入った距離画像を生成する。
次に、S506において、距離画像取得部408は、距離画像の各画素にRGBカメラ画像523のRGB値を保存することにより、1画素につきR、G、B、距離の4つの値を持つ距離画像を生成する。ここで取得した距離画像は、距離画像センサ部208のRGBカメラ363で定義された距離画像センサ座標系が基準となっている。そこで、S507において、距離画像センサ部208は、図2(b)を用いて上述したように、距離画像センサ座標系として得られた距離データを直交座標系における3次元点群に変換する。以後、特に指定がなく3次元点群と表記した場合は、直交座標系における3次元点群を示すものとする。
そして、上記S507の処理の後、距離画像取得部408は、本フローチャートの処理を終了する。
そして、上記S507の処理の後、距離画像取得部408は、本フローチャートの処理を終了する。
なお、本実施例では、上述したように、距離画像センサ部208として赤外線パターン投射方式を採用しているが、他の方式の距離画像センサを用いることも可能である。例えば、2つのRGBカメラでステレオ立体視を行うステレオ方式や、レーザー光の飛行時間を検出することで距離を測定するTOF(Time of Flight)方式など、他の計測手段を用いても構わない。
<ジェスチャー検知部の説明>
図6A、図6Bは、ジェスチャー検知部409の処理を説明する図である。
図6A(a)は、ジェスチャー検知部409の処理の詳細を説明するフローチャートである。図6A(a)のフローチャートに示す処理は、ジェスチャー検知部409により実行される。即ち、図6A(a)に示す処理は、CPU302がHDD305に格納されるカメラスキャナ101の制御用プログラムをRAM303にロードして実行することにより実現される。
また、図6Bの(b)〜(d)は、指先検出処理の方法を模式的に表した図である。
図6A、図6Bは、ジェスチャー検知部409の処理を説明する図である。
図6A(a)は、ジェスチャー検知部409の処理の詳細を説明するフローチャートである。図6A(a)のフローチャートに示す処理は、ジェスチャー検知部409により実行される。即ち、図6A(a)に示す処理は、CPU302がHDD305に格納されるカメラスキャナ101の制御用プログラムをRAM303にロードして実行することにより実現される。
また、図6Bの(b)〜(d)は、指先検出処理の方法を模式的に表した図である。
ジェスチャー検知部409は、処理を開始すると、図6A(a)のS601において、初期化処理を行う。初期化処理では、ジェスチャー検知部409は、距離画像取得部408から距離画像を1フレーム取得する。ここで、ジェスチャー検知部409の処理開始時は書画台204上に対象物が置かれていない状態であるため、初期状態として書画台204の平面の認識を行う。つまり、ジェスチャー検知部409は、取得した距離画像から最も広い平面を抽出し、その位置と法線ベクトル(以下「書画台204の平面パラメータ」と呼ぶ)を算出し、RAM303に保存する。
続いて、S602において、ジェスチャー検知部409は、書画台204上に存在する物体の3次元点群を取得する(S621、S622)。以下、詳細に説明する。
S621において、ジェスチャー検知部409は、距離画像取得部408から距離画像と3次元点群を1フレーム取得する。さらに、S622において、ジェスチャー検知部409は、書画台204の平面パラメータを用いて、取得した3次元点群から書画台204を含む平面にある点群を除去する。
S621において、ジェスチャー検知部409は、距離画像取得部408から距離画像と3次元点群を1フレーム取得する。さらに、S622において、ジェスチャー検知部409は、書画台204の平面パラメータを用いて、取得した3次元点群から書画台204を含む平面にある点群を除去する。
次に、S603において、ジェスチャー検知部409は、上記S602で取得した3次元点群から操作者の手の形状および指先を検出する処理を行う(S631〜S634)。ここで、図6Bの(b)〜(d)に示す、指先検出処理の方法を模式的に表した図を用いて、S603の処理について詳細を説明する。
まず、S631において、ジェスチャー検知部409は、上記S602で取得した3次元点群から、書画台204を含む平面から所定の高さ以上にある、肌色の3次元点群を抽出することで、手の3次元点群を得る。図6B(b)の661は、抽出した手の3次元点群の一例を表している。
次に、S632において、ジェスチャー検知部409は、上記S631で抽出した手の3次元点群を、書画台204の平面に射影した2次元画像を生成して、その手の外形を検出する。図6B(b)の662は、書画台204の平面に投影した3次元点群の一例を表す。投影は、点群の各座標を、書画台204の平面パラメータを用いて投影すればよい。また、図6B(c)に示すように、投影した3次元点群から、xy座標の値だけを取り出せば、z軸方向から見た2次元画像663として扱うことができる。この時、ジェスチャー検知部409は、手の3次元点群の各点が、書画台204の平面に投影した2次元画像の各座標のどれに対応するかを、記憶しておくものとする。
次に、S633において、ジェスチャー検知部409は、上記S632で検出した手の外形上の各点について、その点での外形の曲率を算出し、算出した曲率が所定値より小さい点を指先として検出する。図6B(d)は、外形の曲率から指先を検出する方法を模式的に表したものである。図6B(d)において、664は、書画台204の平面に投影された2次元画像663の外形を表す点の一部を表している。ここで、664のような、外形を表す点のうち、隣り合う5個の点を含むように円を描くことを考える。円665、667が、その例である。このような円を、全ての外形の点に対して順に描き、その直径(例えば666、668)が所定の値より小さい(曲率が小さい)ことを以て、指先とする。この例では、隣り合う5個の点としたが、その数は限定されるものではない。また、ここでは曲率を用いたが、外形に対して楕円フィッティングを行うことで、指先を検出してもよい。
次に、S634において、ジェスチャー検知部409は、上記S633で検出した指先の個数および各指先の座標を算出する。この時、前述したように、書画台204に投影した2次元画像の各点と、手の3次元点群の各点の対応関係を記憶しているため、各指先の3次元座標を得ることができる。ここでは、3次元点群から2次元画像に投影した画像から指先を検出する方法を説明したが、指先検出の対象とする画像は、これに限定されるものではない。例えば、距離画像の背景差分や、RGBカメラ画像の肌色領域から手の領域を抽出し、上に述べたのと同様の方法(外形の曲率計算等)で、手領域のうちの指先を検出してもよい。この場合、検出した指先の座標はRGBカメラ画像や距離画像といった、2次元画像上の座標であるため、その座標における距離画像の距離情報を用いて、直交座標系の3次元座標に変換する必要がある。この時、指先点となる外形上の点ではなく、指先を検出するときに用いた、曲率円の中心を指先点としてもよい。
次に、S604において、ジェスチャー検知部409は、検出した手の形状および指先からのジェスチャー判定処理(S641〜S646)を行う。以下、詳細に説明する。
S641において、ジェスチャー検知部409は、上記S603で検出した指先が1つかどうか判定する。ジェスチャー検知部409は、検出した指先が1つでないと判定した場合(S641でNOの場合)、S646に処理を進める。S646において、ジェスチャー検知部409は、ジェスチャーなしと判定し、S605に処理を進める。
S641において、ジェスチャー検知部409は、上記S603で検出した指先が1つかどうか判定する。ジェスチャー検知部409は、検出した指先が1つでないと判定した場合(S641でNOの場合)、S646に処理を進める。S646において、ジェスチャー検知部409は、ジェスチャーなしと判定し、S605に処理を進める。
一方、上記S641において、ジェスチャー検知部409は、検出した指先が1つであると判定した場合(S641でYESの場合)、S642に処理を進める。
S642において、ジェスチャー検知部409は、検出した指先と書画台204を含む平面との距離を算出する。
S642において、ジェスチャー検知部409は、検出した指先と書画台204を含む平面との距離を算出する。
次に、S643において、ジェスチャー検知部409は、上記S642で算出した距離が微小な所定値以下であるかどうかを判定する。ジェスチャー検知部409は、算出した距離が微小な所定値以下であると判定した場合(S643でYESの場合)、S644に処理を進める。S644において、ジェスチャー検知部409は、指先が書画台204へタッチした、タッチジェスチャーありと判定し、S605に処理を進める。
一方、上記S643において、ジェスチャー検知部409は、上記S642で算出した距離が微小な所定値以下でないと判定した場合(S643でNOの場合)、S645に処理を進める。S645において、ジェスチャー検知部409は、指先が移動したジェスチャー(タッチはしていないが指先が書画台204上に存在するジェスチャー)と判定し、S605に処理を進める。
S605において、ジェスチャー検知部409は、上記S644、S645又はS646で判定したジェスチャーをメイン制御部402へ通知し、S602へ処理を戻し、ジェスチャー検知処理を繰り返す。
なお、ここでは一本指でのジェスチャー検知について説明を行ったが、複数の指あるいは複数の手でのジェスチャー検知に応用することも可能である。
なお、ここでは一本指でのジェスチャー検知について説明を行ったが、複数の指あるいは複数の手でのジェスチャー検知に応用することも可能である。
<物体検知部の処理>
図7A、図7Bは、物体検知部410の処理を説明する図である。
図7Aの(a)、(b)は、物体検知部410の処理の詳細を説明するフローチャートである。図7A(a)、(b)のフローチャートに示す処理は、物体検知部410により実行される。即ち、図7A(a)、(b)に示す処理は、CPU302がHDD305に格納されるカメラスキャナ101の制御用プログラムをRAM303にロードして実行することにより実現される。
また、図7Bの(c)〜(i)は、状態管理テーブルの状態を例示する図である。
図7A、図7Bは、物体検知部410の処理を説明する図である。
図7Aの(a)、(b)は、物体検知部410の処理の詳細を説明するフローチャートである。図7A(a)、(b)のフローチャートに示す処理は、物体検知部410により実行される。即ち、図7A(a)、(b)に示す処理は、CPU302がHDD305に格納されるカメラスキャナ101の制御用プログラムをRAM303にロードして実行することにより実現される。
また、図7Bの(c)〜(i)は、状態管理テーブルの状態を例示する図である。
物体検知部410は、処理を開始すると、図7A(a)のS701において、初期化処理(S711〜S713)を行う。以下、初期化処理について詳細に説明する。
S711において、物体検知部410は、距離画像取得部408からカメラ画像と距離画像をそれぞれ1フレーム取得する。
次に、S712において、物体検知部410は、データ管理部405を介して、上記S711で取得したカメラ画像を、書画台背景カメラ画像/前フレームカメラ画像/直前静止カメラ画像としてHDD305にそれぞれ保存する。また、物体検知部410は、上記S711で取得した距離画像も同様に、書画台背景距離画像/前フレーム距離画像/直前静止距離画像としてHDD305に保存する。なお、以後の説明において、書画台背景画像/前フレーム画像/直前静止画像と記載した場合には、カメラ画像と距離画像の両方を含むものとする。
次に、S713において、物体検知部410は、状態管理テーブルを初期化し、データ管理部405を介して、RAM303へ保存する。
次に、S712において、物体検知部410は、データ管理部405を介して、上記S711で取得したカメラ画像を、書画台背景カメラ画像/前フレームカメラ画像/直前静止カメラ画像としてHDD305にそれぞれ保存する。また、物体検知部410は、上記S711で取得した距離画像も同様に、書画台背景距離画像/前フレーム距離画像/直前静止距離画像としてHDD305に保存する。なお、以後の説明において、書画台背景画像/前フレーム画像/直前静止画像と記載した場合には、カメラ画像と距離画像の両方を含むものとする。
次に、S713において、物体検知部410は、状態管理テーブルを初期化し、データ管理部405を介して、RAM303へ保存する。
以下、状態管理テーブルについて詳細に説明する。
図7Bの(c)〜(i)に示すように、状態管理テーブルは、書画台管理テーブルと物体管理テーブルを含む。書画台管理テーブルでは、書画台204上から検知された物体数(objNums)と書画台204上の状態を記録する。また、物体管理テーブルでは、物体ごとに、物体の状態(移動中/静止/原稿検出済など)や、物体の位置・大きさ(幅、高さ等)を含む情報を管理する。これ以外にも状態管理テーブルには、物体に関連する情報を保持することが可能である。
図7B(c)は、初期化処理後の状態管理テーブルを示しており、物体数(objNums)に「0」が設定され、物体管理テーブル内は空欄となっている。
図7Bの(c)〜(i)に示すように、状態管理テーブルは、書画台管理テーブルと物体管理テーブルを含む。書画台管理テーブルでは、書画台204上から検知された物体数(objNums)と書画台204上の状態を記録する。また、物体管理テーブルでは、物体ごとに、物体の状態(移動中/静止/原稿検出済など)や、物体の位置・大きさ(幅、高さ等)を含む情報を管理する。これ以外にも状態管理テーブルには、物体に関連する情報を保持することが可能である。
図7B(c)は、初期化処理後の状態管理テーブルを示しており、物体数(objNums)に「0」が設定され、物体管理テーブル内は空欄となっている。
続いて、S702において、物体検知部410は、物体検知メイン処理(S721〜S725)を行い、書画台204上での物体の動きを検知する。以下、詳細に説明する。
S721において、物体検知部410は、距離画像取得部408からカメラ画像と距離画像をそれぞれ1フレーム取得する。以後の説明において、現フレーム画像と記載した場合には、本ステップで取得したカメラ画像と距離画像と両方を含むものとする。
S721において、物体検知部410は、距離画像取得部408からカメラ画像と距離画像をそれぞれ1フレーム取得する。以後の説明において、現フレーム画像と記載した場合には、本ステップで取得したカメラ画像と距離画像と両方を含むものとする。
次に、S722において、物体検知部410は、上記S702で取得したカメラ画像および距離画像を用いて物体検知処理を行う。ここで、図7A(b)を用いて物体検知処理について詳細に説明する。
図7A(b)のS731において、物体検知部410は、上記S702で取得したカメラ画像および距離画像と、書画台背景画像との差分値を算出する。そこで、物体検知部410は、カメラ画像および距離画像それぞれにおいて、上記S712で保存された書画台背景画像と、上記S721で撮影された現フレーム画像との差分2値画像を生成する。なお、背景差分2値画像中の黒画素部分は画像変化量がない、即ち物体が存在していない部分を表している。また、背景差分2値画像中の白画素部分は画像変化量がある、即ち物体が存在している部分であることを示している。
次に、S732において、物体検知部410は、前フレームでの処理において静止物体が検知されている、あるいは上記S731で算出した距離背景差分画像での差分値が予め決めておいた所定値以上かどうかに基づき、物体の検知を判定する。物体検知部410は、書画台204上に物体が存在しない(検知していない)と判定した場合(S732でNOの場合)、S733に処理を進める。なお、S733以降の処理については後述する。
一方、物体検知部410は、書画台204上に物体が存在する(検知した)と判定した場合(S732でYESの場合)、S737に処理を進める。
S737において、物体検知部410は、上記S731で生成した背景差分画像を基にして物体数の増減の判定を行う。物体検知部410は、物体数が増減したと判定した場合(S737でYESの場合)、S738に処理を進める。
S738において、物体検知部410は、上記S731で検出された書画台背景画像の差分領域が直前フレームで検出された物体と同一か否かを判定することで、新規物体か否かを判定する。即ち、直前フレームでは物体が検出されていない領域より物体が検出されたことによる物体数の増加は、新規に書画台204上にフレームインした物体によるものと判断する。この場合、物体検知部410は、新規物体を検出したと判定し(S738でYES)、S739に処理を進める。S739において、物体検知部410は、上記S738のフレームイン判定結果を受け、物体フレームインイベントを発行する。この場合、物体検知部410は、S736において、図7B(d)に示すように物体のフレームイン情報および物体の位置情報などを書き込むことで状態管理テーブルを更新して、図7A(b)の処理を終了する。
一方、直前フレームで検知されていた物体が分離・統合したことによる物体数の増減は、書画台204上に物体を載置するために手を放した、あるいは載置されていた物体を掴んだなどの要因によるものであると考えられる。この場合、物体検知部410は、新規物体を検出していないと判定し(S738でNO)、S736に処理を進め、図7B(f)に示すように分離・統合した物体情報を書き込むことで状態管理テーブルを更新して、図7A(b)の処理を終了する。
また、上記S737において、物体検知部410は、物体数が増減していないと判定した場合(S737でNOの場合)、S740に処理を進める。
S740において、物体検知部410は、カメラ画像および距離画像それぞれで、後述するS724(図7A(a))で保存された前フレーム画像と、上記S721で撮影された現フレーム画像との差分画像を生成する。そして、物体検知部410は、所定値によって2値化処理を行うことで差分値を算出する。
S740において、物体検知部410は、カメラ画像および距離画像それぞれで、後述するS724(図7A(a))で保存された前フレーム画像と、上記S721で撮影された現フレーム画像との差分画像を生成する。そして、物体検知部410は、所定値によって2値化処理を行うことで差分値を算出する。
次に、S741において、物体検知部410は、上記S740で算出した差分値が予め決めておいた所定値未満かどうかを判定する。物体検知部410は、算出した差分値が所定値以上であると判定した場合(S741でNOの場合)、S736に処理を進め、図7B(e)に示すように状態管理テーブルの物体の位置情報などを更新して、図7A(b)の処理を終了する。
一方、物体検知部410は、算出した差分値が所定値未満であると判定した場合(S741でYESの場合)、S742に処理を進める。
S742において、物体検知部410は、上記S740が連続してYESとなった回数から、算出した差分値が所定値未満の状態(つまり書画台204上の物体が静止した状態)が、予め決めておいたフレーム数続いたかどうかを判定する。物体検知部410は、差分値が所定値未満の状態が所定フレーム数続いていないと判定した場合(S742でNOの場合)、S736へ進み、図7B(g)に示すように状態管理テーブルの物体の位置情報などを更新して、図7A(b)の処理を終了する。
S742において、物体検知部410は、上記S740が連続してYESとなった回数から、算出した差分値が所定値未満の状態(つまり書画台204上の物体が静止した状態)が、予め決めておいたフレーム数続いたかどうかを判定する。物体検知部410は、差分値が所定値未満の状態が所定フレーム数続いていないと判定した場合(S742でNOの場合)、S736へ進み、図7B(g)に示すように状態管理テーブルの物体の位置情報などを更新して、図7A(b)の処理を終了する。
一方、上記S742において、物体検知部410は、差分値が所定値未満の状態が所定フレーム数続いたと判定した場合(S742でYESの場合)、書画台204上の物体が静止したと判断し、S743に処理を進める。
S743において、物体検知部410は、カメラ画像および距離画像それぞれにおいて、直前静止画像と現フレーム画像との差分画像を生成し、所定値によって2値化処理を行い、直前静止画像との差分値を算出する。
次に、S744において、物体検知部410は、上記S743で算出した差分値が予め決めておいた所定値以上かどうかを判定する。物体検知部410は、算出した差分値が所定値未満と判定した場合(S744でNOの場合)、直前の静止状態から変化がないと判断し、S745に処理を進める。S745では、物体検知部410は、上記S742及びS744において、直前の静止状態と同じ状態での物体静止であると判断されたことを受け、物体静止イベントを再発行し、S736に処理を進める。この場合、S736において、物体検知部410は、S745で発行された物体静止イベントを受け、図7B(h)に示すように状態管理テーブルを更新して、図7A(b)の処理を終了する。
一方、上記S744において、物体検知部410は、算出した差分値が所定値以上と判定した場合(S744でYESの場合)、S746に処理を進める。
S746において、物体検知部410は、上記S742およびS744において、直前の静止状態とは異なる状態での物体静止であると判断したことを受け、物体静止イベントを発行する。
さらに、S747において、物体検知部410は、データ管理部405を介して、現フレームのカメラ画像および距離画像を、直前静止カメラ画像および直前静止距離画像としてHDD305に保存し、S736に処理を進める。この場合、S736において、物体検知部410は、S746で発行された物体静止イベントを受け、図7B(h)に示すように状態管理テーブルを更新して、図7A(b)の処理を終了する。
さらに、S747において、物体検知部410は、データ管理部405を介して、現フレームのカメラ画像および距離画像を、直前静止カメラ画像および直前静止距離画像としてHDD305に保存し、S736に処理を進める。この場合、S736において、物体検知部410は、S746で発行された物体静止イベントを受け、図7B(h)に示すように状態管理テーブルを更新して、図7A(b)の処理を終了する。
また、上記S732において、物体検知部410は、書画台204上に物体が存在しない(検知していない)と判定した場合(S732でNOの場合)、S733に処理を進める。
S733において、物体検知部410は、直前のフレームにおいて移動物体が検知中であったかを確認することで、フレームアウト判定処理を行う。即ち、物体検知部410は、直前フレームで移動物体を検知していなかった場合には、書画台204上に物体が無い状態が続いている(即ちフレームアウトでない)と判定し(S733でNOと判定し)、図7A(b)の処理を終了する。
S733において、物体検知部410は、直前のフレームにおいて移動物体が検知中であったかを確認することで、フレームアウト判定処理を行う。即ち、物体検知部410は、直前フレームで移動物体を検知していなかった場合には、書画台204上に物体が無い状態が続いている(即ちフレームアウトでない)と判定し(S733でNOと判定し)、図7A(b)の処理を終了する。
一方、上記S733において、物体検知部410は、直前フレームで移動物体を検知していた場合には、直前まで検出された移動物体がフレームアウトしたと判定し(S733でYESと判定し)、S734に処理を進める。
S734において、物体検知部410は、上記S733のフレームアウト判定結果を受け、物体フレームアウトイベントを発行する。次に、S735において、物体検知部410は、データ管理部405を介して、現フレームのカメラ画像および距離画像を、直前静止カメラ画像および直前静止距離画像としてHDD305にそれぞれ保存する。なお、物体検知部410は、本ステップにおいて、さらに現フレーム画像を書画台背景画像として更新してもよい。またこの場合、S736において、物体検知部410は、図7B(i)に示すように物体のフレームアウト情報を書き込むことで状態管理テーブルを更新する。あるいは、図7B(c)に示すように状態管理テーブルを初期化してもよい。状態管理テーブルの更新後、図7A(b)の処理を終了する。
図7A(b)の処理を終了すると、図7A(a)の処理に戻る。
図7A(b)の処理を終了すると、図7A(a)の処理に戻る。
図7A(a)のS723において、物体検知部410は、上記S722(即ち図7A(b)の物体検知処理)で発行されたイベントを、メイン制御部402へ通知する。なお、同一フレーム内で複数の物体検知イベントが発行された場合には、物体検知部410は、全ての物体検知イベントをメイン制御部402へ通知する。
次に、S724において、物体検知部410は、データ管理部405を介して、上記S721で取得したカメラ画像および距離画像を、前フレームカメラ画像および前フレーム距離画像としてHDD305に保存する。
次に、S725において、物体検知部410は、物体検知処理の終了判定を行い、終了判定がなされるまで上記S721〜S725の処理を繰り返すように制御する。なお、システムの終了はUI画面上に投射表示された終了ボタン(不図示)の操作、カメラスキャナ101の本体の電源ボタン(不図示)の押下などにより行われ、メイン制御部402から通知されるものとする。
<スキャン処理部の説明>
図8A、図8B、図8Cは、スキャン処理部411が実行する書籍原稿スキャン処理を説明する図である。
図8A(a)、(b)及び図8B(c)は、スキャン処理部411が実行する書籍原稿スキャン処理の詳細を説明するフローチャートである。図8A(a)、(b)及び図8B(c)のフローチャートに示す処理は、スキャン処理部411により実行される。即ち、図8A(a)、(b)及び図8B(c)に示す処理は、CPU302がHDD305に格納されるカメラスキャナ101の制御用プログラムをRAM303にロードして実行することにより実現される。
また、図8Cの(d)〜(k)は、書籍原稿スキャン処理を説明するための模式図である。
図8A、図8B、図8Cは、スキャン処理部411が実行する書籍原稿スキャン処理を説明する図である。
図8A(a)、(b)及び図8B(c)は、スキャン処理部411が実行する書籍原稿スキャン処理の詳細を説明するフローチャートである。図8A(a)、(b)及び図8B(c)のフローチャートに示す処理は、スキャン処理部411により実行される。即ち、図8A(a)、(b)及び図8B(c)に示す処理は、CPU302がHDD305に格納されるカメラスキャナ101の制御用プログラムをRAM303にロードして実行することにより実現される。
また、図8Cの(d)〜(k)は、書籍原稿スキャン処理を説明するための模式図である。
スキャン処理部411は、処理を開始すると、図8A(a)のS801において、カメラ画像取得部407、距離画像取得部408を用いて、カメラ部202からカメラ画像を、距離画像センサ部208から距離画像を、それぞれ1フレームずつ取得する。
上記S801で得られるカメラ画像の例を図8C(d)に示す。
図8C(d)に示す例では、書画台204と撮影対象書籍861を含むカメラ画像851が得られている。
図8C(d)に示す例では、書画台204と撮影対象書籍861を含むカメラ画像851が得られている。
また、上記S801で得られた距離画像の例を図8C(e)に示す。
図8C(e)に示す例では、距離画像センサ部208に近い方が濃い色であらわされており、距離画像センサ部208から対象物体862上の各画素への距離が含まれる距離画像852が得られている。また、図8C(e)において、距離画像センサ部208からの距離が書画台204よりも遠い画素については白で表されており、対象物体862の書画台204に接している部分(対象物体862では右側のページ)も同じく白色となる。
図8C(e)に示す例では、距離画像センサ部208に近い方が濃い色であらわされており、距離画像センサ部208から対象物体862上の各画素への距離が含まれる距離画像852が得られている。また、図8C(e)において、距離画像センサ部208からの距離が書画台204よりも遠い画素については白で表されており、対象物体862の書画台204に接している部分(対象物体862では右側のページ)も同じく白色となる。
次に、S802において、スキャン処理部411は、上記S801で取得したカメラ画像と距離画像から書画台204上に載置された書籍物体の3次元点群を算出する処理を行う。
次に、S803において、スキャン処理部411は、上記S801取得したカメラ画像と上記S802で算出した3次元点群から、書籍画像のゆがみ補正処理を行い、2次元の書籍画像を生成する。以下、上記S802およびS803の処理について図8A(b)、図8B(c)を用いて詳細に説明する。
次に、S803において、スキャン処理部411は、上記S801取得したカメラ画像と上記S802で算出した3次元点群から、書籍画像のゆがみ補正処理を行い、2次元の書籍画像を生成する。以下、上記S802およびS803の処理について図8A(b)、図8B(c)を用いて詳細に説明する。
まず、S802の書籍物体3次元点群算出処理について、図8A(b)のフローチャートを用いて説明する。
スキャン処理部411は、書籍物体3次元点群算出処理を開始すると、S811にて、カメラ画像851と書画台背景カメラ画像との画素毎の差分を算出して二値化を行い、図8C(f)のように物体領域863が黒で示されるカメラ差分画像853を生成する。
スキャン処理部411は、書籍物体3次元点群算出処理を開始すると、S811にて、カメラ画像851と書画台背景カメラ画像との画素毎の差分を算出して二値化を行い、図8C(f)のように物体領域863が黒で示されるカメラ差分画像853を生成する。
次に、S812において、スキャン処理部411は、カメラ差分画像853を、カメラ座標系から距離画像センサ座標系への変換を行い、図8C(g)のように距離画像センサ部208からみた物体領域864を含むカメラ差分画像854を生成する。
次に、S813において、スキャン処理部411は、距離画像と書画台背景距離画像との画素毎の差分を算出して二値化を行い、図8C(h)のように物体領域865が黒で示される距離差分画像855を生成する。ここで、対象物体861の書画台204と同じ色で有る部分については、画素値の差が小さくなるためカメラ差分画像854中の物体領域864に含まれなくなる場合がある。また、対象物体862の書画台204と高さが変わらない部分については距離画像センサ部208からの距離値が書画台204と差が小さいため、距離差分画像855中の物体領域865には含まれない場合がある。
そこで、S814において、スキャン処理部411は、カメラ差分画像854と距離差分画像855の和をとって図8C(i)に示す物体領域画像856を生成し、物体領域866を得る。ここで物体領域866は、書画台204と比べて色が異なるか又は高さが異なる領域となり、カメラ差分画像853中の物体領域863か距離差分画像855中の物体領域865のいずれか片方のみを使った場合よりも、より正確に物体領域を表している。
次に、S815において、スキャン処理部411は、距離画像852から物体領域画像856中の物体領域866のみを抽出する。物体領域画像856は距離画像センサ座標系であるため、距離画像852から物体領域画像856中の物体領域866のみを抽出することが可能である。
次に、S816において、スキャン処理部411は、上記S815で抽出した距離画像を直交座標系に変換することにより図8C(j)に示した3次元点群867を生成する。この3次元点群867が書籍物体の3次元点群であり、書籍物体3次元点群算出処理(S802)を終了する。
次に、図8B(c)のフローチャートを用いて、上記S803の書籍画像ゆがみ補正処理について説明する。
スキャン処理部411は、書籍画像ゆがみ補正処理を開始すると、S821において、物体領域画像856を距離センサ画像座標系からカメラ座標系に変換する。
スキャン処理部411は、書籍画像ゆがみ補正処理を開始すると、S821において、物体領域画像856を距離センサ画像座標系からカメラ座標系に変換する。
次に、S822において、スキャン処理部411は、カメラ画像851から物体領域画像856中の物体領域866をカメラ座標系に変換したものを用いて物体領域を抽出する。
次に、S823において、スキャン処理部411は、抽出した物体領域画像を書画台平面へ射影変換する。
次に、S823において、スキャン処理部411は、抽出した物体領域画像を書画台平面へ射影変換する。
次に、S824において、スキャン処理部411は、射影変換した物体領域画像を矩形近似し、その矩形が水平になるように回転することによって、図8C(k)の書籍画像858を生成する。書籍画像858は近似矩形の片方の編がX軸に平行となっているため、以降書籍画像858に対してX軸方向へのゆがみ補正処理を行う。
次に、S825において、スキャン処理部411は、書籍画像858の最も左端の点をPとする(図8C(k)の点P)。
次に、S825において、スキャン処理部411は、書籍画像858の最も左端の点をPとする(図8C(k)の点P)。
次に、S826において、スキャン処理部411は、書籍物体の3次元点群867から点Pの高さ(図8C(k)のh1)を取得する。
次に、S827において、スキャン処理部411は、書籍画像858の点Pに対してX軸方向に所定の距離(図8C(k)のx1)離れた点をQとする(図8C(k)の点Q)。
次に、S828において、スキャン処理部411は、3次元点群867から点Qの高さ(図8C(k)のh2)を取得する。
次に、S829において、スキャン処理部411は、式(4)を用いて、点Pと点Qの書籍物体上での距離(図8C(g)のl1)を直線近似で算出する。
次に、S827において、スキャン処理部411は、書籍画像858の点Pに対してX軸方向に所定の距離(図8C(k)のx1)離れた点をQとする(図8C(k)の点Q)。
次に、S828において、スキャン処理部411は、3次元点群867から点Qの高さ(図8C(k)のh2)を取得する。
次に、S829において、スキャン処理部411は、式(4)を用いて、点Pと点Qの書籍物体上での距離(図8C(g)のl1)を直線近似で算出する。
次に、S830において、スキャン処理部411は、上記S869で算出した距離l1でPQ間の距離を補正し、図8C(k)における画像869上の点P'と点Q'の位置に画素をコピーする。
次に、S831において、スキャン処理部411は、処理を行った点Qを点Pとする(点Qを点Pに入れ替える)。
次に、S831において、スキャン処理部411は、処理を行った点Qを点Pとする(点Qを点Pに入れ替える)。
次に、S832において、スキャン処理部411は、ゆがみ補正処理を全ての点について終えたかどうかを判断する。スキャン処理部411は、未だ全ての点について終えていないと判定した場合(S832でNOの場合)、上記S826に処理を戻し、同じ処理を行う。これにより、図8C(k)の点Qと点Rの間の補正を実行することができ、画像869上の点Q'と点R'の画素とする。この処理を全画素について繰り返すことにより、画像869はゆがみ補正後の画像となる。
また、上記S832において、スキャン処理部411は、ゆがみ補正処理を全ての点について終えたと判定した場合(S832でYESの場合)、書籍物体のゆがみ補正処理(S803)を終了する。
以上のようにして、上記S802、S803の処理を行ってゆがみ補正を行った書籍画像を生成することができる。
以上のようにして、上記S802、S803の処理を行ってゆがみ補正を行った書籍画像を生成することができる。
以下、図8A(a)の説明に戻る。
ゆがみ補正を行った書籍画像の生成後、スキャン処理部411は、S804において、上記S802及びS803で生成した書籍画像に階調補正を行う。
次に、S805において、スキャン処理部411は、上記階調補正を行った書籍画像に対して、予め決めておいた画像フォーマット(例えばJPEG、TIFF、PDF等)に合わせて圧縮およびファイルフォーマット変換を行う。
次に、S806において、スキャン処理部411は、上記変換を行った画像データを、データ管理部405を介して、HDD305の所定の領域へファイルとして保存し、スキャン処理部411で実行する書籍原稿スキャン処理を終了する。
ゆがみ補正を行った書籍画像の生成後、スキャン処理部411は、S804において、上記S802及びS803で生成した書籍画像に階調補正を行う。
次に、S805において、スキャン処理部411は、上記階調補正を行った書籍画像に対して、予め決めておいた画像フォーマット(例えばJPEG、TIFF、PDF等)に合わせて圧縮およびファイルフォーマット変換を行う。
次に、S806において、スキャン処理部411は、上記変換を行った画像データを、データ管理部405を介して、HDD305の所定の領域へファイルとして保存し、スキャン処理部411で実行する書籍原稿スキャン処理を終了する。
<メイン制御部402の説明>
以下、図9の操作説明図と、図10のフローチャート図を用いて、メイン制御部402が実行する優先機能切り替え処理について説明する。
以下、図9の操作説明図と、図10のフローチャート図を用いて、メイン制御部402が実行する優先機能切り替え処理について説明する。
図9は、実施例1において、スキャンを実行する際のUI表示と操作者901の操作の様子の一例を示す図である。
図9(a)にスキャン開始時のUI画面の一例を示す。UI画面には、メイン制御部402の制御により、操作指示メッセージ902、スキャン終了ボタン903、スキャン実行ボタン904が投影表示されている。
図9(a)にスキャン開始時のUI画面の一例を示す。UI画面には、メイン制御部402の制御により、操作指示メッセージ902、スキャン終了ボタン903、スキャン実行ボタン904が投影表示されている。
図9(b)に示すように、操作者901がスキャン実行ボタン904を押下すると、メイン制御部402は、図9(c)に示すような、スキャン実行画面に表示を遷移させる。スキャン実行画面では、メイン制御部402は、操作指示メッセージ902を更新すると共に、プロジェクタ207を用いて、スキャン原稿を載置するための原稿載置領域905を投影表示する。
操作者901が、図9(d)に示すように、操作指示メッセージ902に従い原稿載置領域905に原稿906を載置する。図9(e)〜(g)に示すように、メイン制御部402は、原稿載置完了を検知すると、スキャン処理を実行し、原稿を取り除くように操作指示メッセージ902を更新する。
そして、図9(h)に示すように、操作者901が原稿906を除去すると、メイン制御部402は、図9(i)に示すようなスキャンを続行するか終了するかを選択する確認画面へ表示を遷移させる。なお、スキャンを続行する場合には、操作者901はスキャン実行ボタン904を押下する。
図10(a)は、実施例1において、メイン制御部402が実行する処理の一例を説明するフローチャートである。また、図10(b)は、実施例1において、ユーザインタフェース部403が実行する優先機能判定処理の一例を説明するフローチャートである。即ち、図10(a)、(b)に示す処理は、CPU302がHDD305に格納されるカメラスキャナ101の制御用プログラムをRAM303にロードして実行することにより実現される。
メイン制御部402は、処理を開始すると、図10(a)のS1001において、ユーザインタフェース部403に要求して、図10(b)に示す優先機能判定処理を実行させる。
図10(b)のS1011において、ユーザインタフェース部403は、アプリケーションから優先機能切り替え指示の有無を判定する。このアプリケーションは、図9に示したスキャンを実行する際のUI等のUI表示を行うためのものである。また、このアプリケーションは、例えば、カメラスキャナ101の起動時や、所定のボタン(不図示)が操作された際などに実行開始されるものとする。さらに、このアプリケーションは、CPU302がHDD305に格納される該アプリケーションの実行モジュールをRAM303にロードして実行することにより実行される。
図9に示した一連の処理において、図9(a)、(b)及び(i)ではボタン操作を検知する必要がある。このため、図9(a)、(b)及び(i)の画面が表示されている状態では、ジェスチャー検知処理の優先指示がアプリケーションより通知されている必要がある。一方、図9(c)〜(h)では、操作者901の原稿載置を検知する必要がある。このため、図9(c)〜(h)の画面が表示されている状態では、物体検知モードの優先指示がアプリケーションより通知されている必要がある。なお、アプリケーションからの優先機能の通知は必要なタイミングで行えばよいため、図9(a)を表示するタイミングや、図9(b)から図9(c)、あるいは図9(h)から図9(i)に遷移するタイミングで通知すればよい。なお、アプリケーションからの優先機能切り替え指示は、画面遷移時に限定されるものではなく、例えば優先機能選択ボタンを表示しておき、操作者901がUIボタンを押下したことを受けて優先機能切り替え指示を通知するなどしても構わない。このように、優先機能切り替え指示は、UI表示の遷移、及びUI表示に対する操作等に基づいて通知される。
上記S1011において、ユーザインタフェース部403は、優先機能切り替え指示があると判定した場合(S1011でYESの場合)、S1012に処理を進める。S1012において、ユーザインタフェース部403は、指定された検知機能への切り替えを指示する。そして、優先機能判定処理(図10(b))を終了する。
一方、上記S1011において、ユーザインタフェース部403は、優先機能切り替え指示がないと判定した場合(S1011でNOの場合)、優先機能切り替えを指示することなく、優先機能判定処理(図10(b))を終了する。
以下、図10(a)の説明に戻る。
上記S1001の優先機能判定処理(図10(b))が終了すると、メイン制御部402は、S1002に処理を進める。S1002において、メイン制御部402は、優先機能切り替え指示の有無に基づき、優先機能切り替え処理の必要性を判定する。メイン制御部402は、優先機能切り替え処理がないと判定した場合(S1002でNOの場合)、S1003に処理を進める。
上記S1001の優先機能判定処理(図10(b))が終了すると、メイン制御部402は、S1002に処理を進める。S1002において、メイン制御部402は、優先機能切り替え指示の有無に基づき、優先機能切り替え処理の必要性を判定する。メイン制御部402は、優先機能切り替え処理がないと判定した場合(S1002でNOの場合)、S1003に処理を進める。
S1003において、メイン制御部402は、ジェスチャー検知部409からジェスチャーイベントの有無を判定し、ジェスチャーに対応した処理を実行する。例えば、図9(b)の場合には、スキャン終了ボタン903あるいはスキャン実行ボタン904へのタッチ操作の有無を判定する。そして、スキャン実行ボタン904が押されたと判断された場合には、スキャン実行画面へ遷移するように判定し、ユーザインタフェース部403に対して図9(c)のようなスキャン画面を表示するように指示を行う。ユーザインタフェース部403は、プロジェクタ207によってUI画面を書画台204上へ投影表示させる。
次に、S1004において、メイン制御部402は、物体検知部410からの物体検知イベントの有無を判定し、物体検知イベントに対応した処理を実行する。例えば、図9(e)の場合には、原稿の静止イベントを受け、スキャン処理部411に対してスキャン実行指示を行う。
一方、上記S1002において、メイン制御部402は、優先機能切り替え処理があったと判定した場合(S1002でYESの場合)、S1005に処理を進める。
S1005において、メイン制御部402は、優先機能切り替え処理を実行する。ここでは、メイン制御部402は、ジェスチャー検知及び物体検知に用いる距離画像センサ部208の撮影パラメータ(例えば露光時間)を変更する。
S1005において、メイン制御部402は、優先機能切り替え処理を実行する。ここでは、メイン制御部402は、ジェスチャー検知及び物体検知に用いる距離画像センサ部208の撮影パラメータ(例えば露光時間)を変更する。
例えば、ジェスチャー優先が指示されていた場合には、露光時間を短くすることでフレームレートを向上させることができ、滑らかなジェスチャー検知を実現することができる。一方、物体検知優先が指示されていた場合には、露光時間を短くすることでコントラストが低い検知対象物であってもより鮮明に撮影でき、物体検知精度の向上を実現することができる。なお、各機能の性能を最大限発揮できるような撮影画像が取得できるのであれば、撮影パラメータは露光に限定されるものではない。例えば、前記撮影パラメータは、ISO感度や、絞りに対応するパラメータであってもよい。
次に、S1006において、メイン制御部402は、物体検知処理用の背景画像を更新する。具体的には、上述の図7A(a)のS712、図7A(b)のS724、S735、S747でそれぞれHDD305に保存した、書画台背景カメラ画像/前フレームカメラ画像/直前静止カメラ画像を更新する。これにより、S1005で撮影パラメータを変更したことによって取得できるカメラ画像が大幅に変わったとしても、物体検知イベントとして誤検知することを防止することができる。
上記S1004又はS1006の処理の後、メイン制御部402は、S1007に処理を進める。
S1007において、メイン制御部402は、アプリケーションが終了されたか否かを判定する。なお、アプリケーションの終了はUI画面上に投射表示された終了ボタン(例えば、図9スキャン終了ボタン903)の操作、カメラスキャナ101の本体の電源ボタン(図示なし)の押下などにより行われるものとする。
S1007において、メイン制御部402は、アプリケーションが終了されたか否かを判定する。なお、アプリケーションの終了はUI画面上に投射表示された終了ボタン(例えば、図9スキャン終了ボタン903)の操作、カメラスキャナ101の本体の電源ボタン(図示なし)の押下などにより行われるものとする。
上記S1007において、メイン制御部402は、まだアプリケーションが終了されていないと判定した場合(S1007でNOの場合)、上記S1001に処理を戻す。
一方、メイン制御部402は、アプリケーションが終了されたと判定した場合(S1007でYES場合)、図10(a)の処理を終了する。
一方、メイン制御部402は、アプリケーションが終了されたと判定した場合(S1007でYES場合)、図10(a)の処理を終了する。
以上のように、実施例1によれば、UI表示を行うアプリケーションからの優先機能切り替え指示に応じて、指定された優先機能に応じた撮影パラメータに変更することにより、各機能に適したカメラ画像が撮影できるようになる。これにより、アプリケーションの要求するタイミング(必要なタイミング)で各検知機能の処理性能を最大限に高めることができるようになる。この結果、良好な結果を得るための最適な画像が異なるような複数の検知機能を1つの撮影デバイスで精度よく実現することが可能になる。
上記実施例1では、UI表示を行うアプリケーションから画面遷移時や操作者901によるボタン押下などのタイミングにおいて通知される優先機能切り替え指示によって、優先機能の切り替え処理を行う構成について説明した。本実施例2では、UI画面が遷移しないタイミングでも優先機能を動的に切り替えることが可能な仕組みについてさらに説明する。
以下、図11の操作説明図と、図12のフローチャート図を用いて、実施例2において、メイン制御部402が実行する優先機能切り替え処理について説明する。
図11は、実施例2において、スキャンを実行する際のUI表示と操作者901の操作の様子の一例を示す図である。なお、図9と同一のものには同一の符号を付してある。
図11(a)にスキャン開始時のUI画面の一例を示す。UI画面には、操作指示メッセージ902、スキャン終了ボタン903、原稿載置領域905が投影表示されている。
図11(a)にスキャン開始時のUI画面の一例を示す。UI画面には、操作指示メッセージ902、スキャン終了ボタン903、原稿載置領域905が投影表示されている。
操作者901は、操作指示メッセージ902に従い、図11(b)〜(d)に示すように、原稿載置領域905内に原稿906を載置する。メイン制御部402は、原稿載置完了を検知すると、図11(d)に示すようにスキャン処理が実行できる状態であると判断し、操作指示メッセージ902を更新し、スキャン実行ボタン904を表示する。
そして、図11(e)に示すように操作者901がスキャン実行ボタン904を押下すると、メイン制御部402は、図11(f)に示すようにスキャン処理を開始する。スキャン処理が終了すると、メイン制御部402は、図11(g)に示すようにスキャン原稿を取り除くように操作指示メッセージ902を更新し、スキャン実行ボタン904を非表示にする。
そして、図11(h)に示すように操作者901が原稿を除去すると、メイン制御部402は、図11(i)に示すようなスキャン開始時のUI画面へ表示を遷移させる。
図12(a)は、実施例2において、メイン制御部402が実行する処理の一例を説明するフローチャートである。また、図12(b)は、実施例2において、ユーザインタフェース部403が実行する優先機能判定処理の一例を説明するフローチャートである。即ち、図12(b)に示す処理は、CPU302がHDD305に格納されるカメラスキャナ101の制御用プログラムをRAM303にロードして実行することにより実現される。なお、実施例1と同様の処理については同じステップ番号を付与し、詳細な説明は割愛する。
メイン制御部402は、処理を開始すると、図12(a)のS1201において、UI画面の更新の有無を確認する。上記S1201において、メイン制御部402は、UI画面が更新されたと判定した場合(S1201でYESの場合)、S1202へ処理を進める。
S1202において、メイン制御部402は、UI画面上の各領域に対して優先機能を割り当てる。例えば図11(a)において、スキャン終了ボタン903に対してはジェスチャー機能優先を、原稿載置領域905に対しては物体検知優先を割り当て、この領域内における物体検知イベントを受信するように設定する。それ以外の領域に関しては所定の機能を割り当てることが可能であるが、基本的にはジェスチャー機能優先を割り当てることが望ましい。上記S1202の処理の後、S1203へ処理を進める。
一方、上記S1201において、メイン制御部402は、UI画面が更新されていないと判定した場合(S1201でNOの場合)、S1203へ処理を進める。
S1201において、メイン制御部402は、ユーザインタフェース部403に、図12(b)に示す優先機能判定処理を実行させる。
図12(b)のS1211において、メイン制御部402は、物体検知部410からの物体フレームインイベントを受信したか否かを判定する。物体検知部410は、物体検知優先領域への物体フレームインを検知した場合に物体フレームインイベントをメイン制御部402に通知する。例えば、図11(c)に示す状態では、物体検知部410が、物体検知優先領域として設定されている原稿載置領域905内において物体フレームインを検知して物体フレームインイベントをメイン制御部402に通知する。メイン制御部402は、物体検知部410から物体フレームインイベントを受信したと判定した場合(S1211でYESの場合)、S1212へ処理を進める。S1212において、メイン制御部402は、原稿載置領域905内での物体検知精度を高めるために、物体検知優先に切り替えるように指示し、優先機能判定処理(図12(b))を終了する。
また、例えば図11(a)〜図11(b)に示す状態では、原稿載置領域905内において物体フレームインを検知しないため、物体検知部410から物体フレームインイベントは通知されない。上記S1211において、メイン制御部402は、物体フレームインイベントを受信してないと判定した場合(S1211でNOの場合)、S1213へ処理を進める。
S1213において、メイン制御部402は、物体検知部410からの物体フレームアウトイベントあるいは物体静止イベントを受信したか否かを判定する。物体検知部410は、物体検知優先領域からの物体フレームアウトを検知した場合に物体フレームアウトイベントをメイン制御部402に通知する。また、物体検知部410は、物体検知優先領域での物体静止を検知した場合に物体静止イベントをメイン制御部402に通知する。例えば、図11(d)に示す状態では、物体検知部410が、原稿載置領域905内において物体静止を検知して物体静止イベントをメイン制御部402に通知する。また、図11(h)に示す状態では、物体検知部410が、原稿載置領域905内において物体フレームアウトを検知して物体フレームアウトイベントをメイン制御部402に通知する。メイン制御部402は、物体検知部410から、物体フレームアウトイベントあるいは物体静止イベントを受信したと判定した場合(S1213でYesの場合)、S1214へ処理を進める。
S1214において、メイン制御部402は、スキャン終了ボタン903やスキャン実行ボタン904へのジェスチャー検知精度を高めるために、ジェスチャー機能優先に切り替えるように指示し、優先機能判定処理(図12(b))を終了する。
また、図11(e)〜図11(g)までの状態においては、物体検知部410は、原稿載置領域905内において物体フレームアウトも物体静止も検知しないため、物体検知部410から物体フレームアウトイベント及び物体静止イベントのいずれも通知されない。メイン制御部402は、物体検知部410から、物体フレームアウトイベント及び物体静止イベントのいずれも受信していないと判定した場合(S1213でNOの場合)、そのまま優先機能判定処理(図12(b))を終了する。
以下、図12(a)の説明に戻る。
上記S1203の処理の後、メイン制御部402は、S1002に処理を進める。なお、以下の処理に関しては実施例1と同様であるため説明を省略する。
上記S1203の処理の後、メイン制御部402は、S1002に処理を進める。なお、以下の処理に関しては実施例1と同様であるため説明を省略する。
以上のように、実施例2によれば、UI画面内の領域に応じて優先する機能を設定しておき、物体検知優先領域内で移動している物体の検知有無によって優先する機能を動的に切り替える。これにより、同一UI画面内においても、必要なタイミングで各機能の性能を最大限発揮できるようになる。この結果、良好な結果を得るための最適な画像が異なるような複数の検知機能を1つの撮影デバイスで精度よく実現することが可能になる。
上記実施例2では、UI画面の遷移がないタイミングでも優先機能を動的に切り替える構成について説明した。本実施例3では、UI画面内の領域の配置の仕方に依存せず優先機能を動的に切り替え可能な構成についてさらに説明する。
以下、図13を用いて、実施例3において、メイン制御部402が実行する優先機能切り替え処理について説明する。
図13は、実施例3の優先機能切り替え処理を説明する図である。
図13の(a)〜(c)に実施例3におけるスキャンを実行する際のUI表示と操作者901の操作の様子の一例を示す。なお、図11と同一のものには同一の符号を付してある。
図13は、実施例3の優先機能切り替え処理を説明する図である。
図13の(a)〜(c)に実施例3におけるスキャンを実行する際のUI表示と操作者901の操作の様子の一例を示す。なお、図11と同一のものには同一の符号を付してある。
図13(a)では、上述の原稿載置領域905の上部に、ホーム画面へ遷移するためのホームボタン1301が配置されている。なお、ホームボタン1301には、図12(a)のS1202において、ジェスチャー検知優先が設定されているものとする。
図13(b)では、操作者901が原稿載置領域905上へ原稿906を載置しようとしている様子を示している。また、図13(c)では、操作者901がホームボタン1301を押下する様子を示している。
図13(d)は、実施例3において、ユーザインタフェース部403が実行する優先機能判定処理の一例を説明するフローチャートである。即ち、図13(d)に示す処理は、CPU302がHDD305に格納されるカメラスキャナ101の制御用プログラムをRAM303にロードして実行することにより実現される。なお、図12と同様の処理については同じステップ番号を付与し、詳細な説明は割愛する。
図13(d)のS1211において、メイン制御部402は、物体フレームインイベントを受信していないと判定した場合(S1211でNOの場合)、S1311へ処理を進める。
S1311において、メイン制御部402は、物体検知部410からの物体フレームアウトイベントを受信したか否かを判定する。メイン制御部402は、物体フレームアウトイベントを受信したと判定した場合(S1311でYESの場合)、S1214に処理を進め、ジェスチャー機能優先に切り替えるように指示する。
一方、メイン制御部402は、物体フレームアウトイベントを受信していないと判定した場合(S1311でNOの場合)、S1312に処理を進める。
S1312において、メイン制御部402は、物体検知部410からの物体移動イベントや物体静止イベントを解析し、検知された物体が物体検知優先領域をまたぐような位置で検知したか否かを判定する。物体検知部410は、物体検知優先領域での物体移動を検知した場合に物体移動イベントをメイン制御部402に通知する。例えば図13(b)に示す状態においては、検知されている物体は、物体検知優先領域である原稿載置領域905の一方向にのみ存在していることから、物体検知優先領域である原稿載置領域905に対する操作をしているものと判断する。この場合、メイン制御部402は、物体検知優先領域をまたぐような静止or移動を検知していないと判定する。メイン制御部402は、物体検知優先領域をまたぐような静止or移動を検知していないと判定した場合(S1312でNOの場合)、物体検知優先のまま優先機能判定処理(図13(d))を終了する。
一方、例えば図13(c)に示す状態においては、操作者901の腕が、物体検知優先領域である原稿載置領域905を超えてホームボタン1301を押下しようとしており、物体検知優先領域である原稿載置領域905の二方向にまたがり物体が検知される。このため、メイン制御部402は、物体検知優先領域をまたぐような静止or移動を検知したと判定する。メイン制御部402は、物体検知優先領域をまたぐような静止or移動を検知したと判定した場合(S1312でYESの場合)、S1313に処理を進める。
S1313において、メイン制御部402は、物体検知優先領域以外に他の優先機能を設定した領域が存在するかを確認する。メイン制御部402は、他の優先機能を設定した領域が存在しないと判定した場合(S1313でNOの場合)、そのまま優先機能判定処理(図13(d))を終了する。
一方、上記S1313において、メイン制御部402は、他の優先機能を設定した領域が存在すると判定した場合(S1313でYESの場合)、S1214に処理を進め、ジェスチャー検知優先への切り替えを指示する。例えば、図13(c)においては、ホームボタン1301に対してジェスチャー検知優先が設定されているため、メイン制御部402は、S1214において、ジェスチャー優先に切り替えるように指示する。これにより、ホームボタン1301への押下判定を最大性能で行うことができるようになる。
以上のように、実施例3によれば、物体検知優先が設定された領域内における検出物体の位置関係を考慮して優先機能を切り替えることによって、UI領域の配置に関わらず各機能の性能を最大限発揮できるようになる。良好な結果を得るための最適な画像が異なるような複数の検知機能を1つの撮影デバイスで精度よく実現することが可能になる。
上記実施例2及び3では、物体検知部410で検知した物体検知優先領域内の物体検知イベントに基づいて優先機能の切り替え判定を行う構成について説明した。本実施例4では、ジェスチャー検知部409で検知したジェスチャーイベントに基づいて優先機能を切り替える仕組みについて説明する。
以下、図14を用いて、実施例4において、メイン制御部402が実行する優先機能切り替え処理について説明する。
図14は、実施例4の優先機能切り替え処理を説明する図である。
図14の(a),(b)に実施例4におけるスキャンを実行する際のUI表示と操作者901の操作の様子の一例を示す。なお、図11と同一のものには同一の符号を付してある。
図14は、実施例4の優先機能切り替え処理を説明する図である。
図14の(a),(b)に実施例4におけるスキャンを実行する際のUI表示と操作者901の操作の様子の一例を示す。なお、図11と同一のものには同一の符号を付してある。
図14(a)では、原稿載置領域905内に原稿906が載置してある。図14(b)では、操作者901が原稿載置領域905上の原稿906に対して、下線描画やメモ書きなどのアノテーション付与のジェスチャー操作を行おうとしている様子を示している。
図14(c)は、実施例4において、ユーザインタフェース部403が実行する優先機能判定処理の一例を説明するフローチャートである。即ち、図14(c)に示す処理は、CPU302がHDD305に格納されるカメラスキャナ101の制御用プログラムをRAM303にロードして実行することにより実現される。なお、図12と同様の処理については同じステップ番号を付与し、詳細な説明は割愛する。
図14(c)のS1401において、メイン制御部402は、ジェスチャー検知部409からタッチイベントを受信したか否かを判定する。メイン制御部402は、タッチイベントを受信したと判定した場合(S1401でYESの場合)、S1402に処理を進める。
S1402において、メイン制御部402は、ジェスチャー検知部409が検知したタッチイベントの近傍に設定されている機能優先領域の種別を判定する。メイン制御部402は、タッチイベントの近傍にジェスチャー検知優先領域が設定されている、あるいは、物体検知優先領域の設定がないと判定した場合、S1214に処理を進め、ジェスチャー検知優先を指示する。そして、優先機能判定処理(図14(c))を終了する。例えば、図14(b)に示す原稿載置領域905内の原稿906の位置にジェスチャー検知優先領域を設定しておく。これにより、原稿906へのタッチ操作により、ジェスチャー検知優先に切り換える、図14(b)に示すようなジェスチャー操作を検知して原稿906へのアノテーション付与を実現することが可能となる。
一方、上記S1402において、メイン制御部402は、タッチイベントの近傍に物体検知優先領域が設定されていると判定した場合、メイン制御部402は、S1212に処理を進め、物体検知優先を指示する。そして、優先機能判定処理(図14(c))を終了する。
また、上記S1401において、メイン制御部402は、タッチイベントの受信を検知していないと判定した場合(S1401でNOの場合)、S1403に処理を進める。
S1403において、メイン制御部402は、現在のモードが物体検知優先機能か否かを判定する。例えば、S1212で物体検知優先に切り替えた後などは物体検知優先が設定されていると判定する。
S1403において、メイン制御部402は、現在のモードが物体検知優先機能か否かを判定する。例えば、S1212で物体検知優先に切り替えた後などは物体検知優先が設定されていると判定する。
上記S1403において、メイン制御部402は、現在のモードが物体検知優先機能であると判定した場合(S1403でYESの場合)、S1404に処理を進める。
S1404において、メイン制御部402は、物体検知優先領域内において、物体検知部410から物体フレームアウトあるいは物体静止のイベントが検知されたか否かを判定する。
S1404において、メイン制御部402は、物体検知優先領域内において、物体検知部410から物体フレームアウトあるいは物体静止のイベントが検知されたか否かを判定する。
上記S1404において、メイン制御部402は、物体フレームアウトあるいは物体静止のイベントが検知されたと判定した場合(S1404でYESの場合)、S1214に処理を進める。S1214において、メイン制御部402は、再びジェスチャー検知優先を指示し、優先機能判定処理(図14(c))を終了する。
一方、上記S1404において、メイン制御部402は、物体フレームアウトあるいは物体静止のイベントが検知されていないと判定した場合(S1404でNOの場合)、そのまま優先機能判定処理(図14(c))を終了する。
以上のように、実施例4によれば、操作者901のタッチ操作が物体検知優先領域であるか否かを判定する。所定のジェスチャーが検知された領域の近傍に設定される機能優先領域の種別に基づいて優先する検知処理を判定する。これにより、ボタン等へのタッチイベントか、物体検知優先領域内に物体を載置する際に発生したタッチイベントであるかを判別できる。そして、物体載置の際のタッチイベントの場合には、物体位置が確定するまでの間、物体検知を優先することが可能になる。なお、ここではタッチイベントを用いて切り替えを行う方法を説明したが、その他のジェスチャー操作イベントを用いてもよい。この結果、検知に用いる撮影画像の特性の異なる複数の検知機能を1つの撮影デバイスで精度よく実現することが可能になる。
なお、上記実施例1〜4において、ジェスチャー検知機能モードと物体検知機能モードを動的に切り替える仕組みについて説明した。しかし、同様の目的が果たせるものであれば、切り替え判定方法はこれに限るものではない。例えば、ジェスチャー操作を指差し姿勢(所定の手の形状)で行うことを限定することにより、指差し姿勢であるか否かに基づいてジェスチャー検知機能と物体検知機能の切り替え処理を行うことも可能である。
また、上記各実施例では、ジェスチャー検知機能と物体検知機能を有し、優先する検知機能を判定し、優先する検知処理に応じた撮影パラメータに切り替える構成について説明した。しかし、検知機能はこれらに限定されるものではない。例えば、3つ以上の異なる検知機能を備える構成であってもよい。即ち、カメラスキャナ101が、撮影された画像データに基づいてそれぞれ異なる検知処理を行う複数の検知機能を有し、これらのうち優先する検知機能を判定し、優先する検知機能に応じた撮影パラメータに切り替えるように構成してもよい。
以上、各実施例では、優先する検知処理を判断し、それに応じて最適な画像が取得できるように撮影モード(本実施例では撮影パラメータ)を動的に変更する(即ち撮影特性を動的に変更する)。これにより、良好な結果を得るための最適な画像が異なるような複数の検知機能(例えば物体検知機能、ジェスチャー検知機能)を1つの撮影デバイスで精度よく実現することができるようになる。
なお、上述した各種データの構成及びその内容はこれに限定されるものではなく、用途や目的に応じて、様々な構成や内容で構成されていてもよい。
以上、一実施形態について示したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施態様をとることが可能である。具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
また、上記各実施例を組み合わせた構成も全て本発明に含まれるものである。
以上、一実施形態について示したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施態様をとることが可能である。具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
また、上記各実施例を組み合わせた構成も全て本発明に含まれるものである。
(その他の実施例)
本発明は、上述の実施例の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
また、本発明は、複数の機器から構成されるシステムに適用しても、1つの機器からなる装置に適用してもよい。
本発明は上記実施例に限定されるものではなく、本発明の趣旨に基づき種々の変形(各実施例の有機的な組合せを含む)が可能であり、それらを本発明の範囲から除外するものではない。即ち、上述した各実施例及びその変形例を組み合わせた構成も全て本発明に含まれるものである。
本発明は、上述の実施例の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
また、本発明は、複数の機器から構成されるシステムに適用しても、1つの機器からなる装置に適用してもよい。
本発明は上記実施例に限定されるものではなく、本発明の趣旨に基づき種々の変形(各実施例の有機的な組合せを含む)が可能であり、それらを本発明の範囲から除外するものではない。即ち、上述した各実施例及びその変形例を組み合わせた構成も全て本発明に含まれるものである。
204 書画台
208 距離画像センサ部
402 メイン制御部
409 ジェスチャー検知部
410 物体検知部
208 距離画像センサ部
402 メイン制御部
409 ジェスチャー検知部
410 物体検知部
Claims (11)
- 所定の撮影領域を撮影する撮影手段と、
前記撮影手段により撮影された画像データに基づいてそれぞれ異なる検知処理を行う複数の検知手段と、
前記複数の検知手段がそれぞれ行う検知処理のうち優先する検知処理を判定する判定手段と、
前記撮影手段の撮影モードを、前記判定手段により優先する検知処理と判定された検知処理に応じたモードに切り替える切り替え手段と、
を有することを特徴とする画像処理装置。 - 前記複数の検知手段は、ジェスチャーを検知する第1検知処理を行う第1検知手段と、前記撮影領域において物体の静止、移動又は除去がなされたことを検知する第2検知処理を行う第2検知手段とを含むことを特徴とする請求項1に記載の画像処理装置。
- 前記撮影領域に操作画面を表示する表示手段を有し、
前記判定手段は、前記撮影領域に表示される操作画面の遷移、及び前記操作画面に対する操作の少なくともいずれかに基づいて、優先する検知処理を判定することを特徴とする請求項2に記載の画像処理装置。 - 前記判定手段は、前記撮影領域の中に優先する検知処理を定義した領域を設定し、前記第2の検知処理を優先する領域内での移動物体の有無に基づいて優先する検知処理を判定することを特徴とする請求項2に記載の画像処理装置。
- 前記判定手段は、前記撮影領域の中に優先する検知処理を定義した領域を設定し、前記第2の検知処理を優先する領域内での物体の位置に基づいて優先する検知処理を判定することを特徴とする請求項2に記載の画像処理装置。
- 前記判定手段は、前記撮影領域の中に優先する検知処理を定義した優先領域を設定し、前記第1の検知処理で所定のジェスチャーが検知された領域の近傍に設定される前記優先領域に基づいて優先する検知処理を判定することを特徴とする請求項2に記載の画像処理装置。
- 前記判定手段は、前記第1の検知処理で所定の手の形状が検知されたことに基づいて優先する検知処理を判定することを特徴とする請求項2に記載の画像処理装置。
- 前記撮影手段は、設定される撮影パラメータに基づいて撮影を行うものであり、
前記撮影手段の撮影モードの切り替えは、前記撮影パラメータの切り替えであることを特徴とする請求項1〜7のいずれか1項に記載の画像処理装置。 - 前記撮影パラメータは、露光時間、ISO感度、絞りの少なくともいずれかを含むこと特徴とする請求項8に記載の画像処理装置。
- 所定の撮影領域を撮影する撮影手段と、前記撮影手段により撮影された画像データに基づいてそれぞれ異なる検知処理を行う複数の検知手段と、を有する画像処理装置の制御方法であって、
前記複数の検知手段がそれぞれ行う検知処理のうち優先する検知処理を判定する判定ステップと、
前記撮影手段の撮影モードを、前記判定ステップにて優先する検知処理と判定された検知処理に応じたモードに切り替える切り替えステップと、
を有することを特徴とする画像処理装置の制御方法。 - コンピュータを、請求項1〜10のいずれか1項に記載の判定手段および切り替え手段として機能させるためのプログラム。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2017093523A JP2018191195A (ja) | 2017-05-10 | 2017-05-10 | 画像処理装置、画像処理装置の制御方法、及びプログラム |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2017093523A JP2018191195A (ja) | 2017-05-10 | 2017-05-10 | 画像処理装置、画像処理装置の制御方法、及びプログラム |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2018191195A true JP2018191195A (ja) | 2018-11-29 |
Family
ID=64480380
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2017093523A Pending JP2018191195A (ja) | 2017-05-10 | 2017-05-10 | 画像処理装置、画像処理装置の制御方法、及びプログラム |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2018191195A (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2023179840A (ja) * | 2022-06-08 | 2023-12-20 | 川崎重工業株式会社 | 画像生成装置、物体識別装置、及び画像生成方法 |
-
2017
- 2017-05-10 JP JP2017093523A patent/JP2018191195A/ja active Pending
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2023179840A (ja) * | 2022-06-08 | 2023-12-20 | 川崎重工業株式会社 | 画像生成装置、物体識別装置、及び画像生成方法 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP2015210702A (ja) | 画像処理装置及び画像処理方法 | |
| US10254893B2 (en) | Operating apparatus, control method therefor, and storage medium storing program | |
| US9888209B1 (en) | Remote communication system, method for controlling remote communication system, and storage medium | |
| JP6381361B2 (ja) | データ処理装置、データ処理システム、データ処理装置の制御方法、並びにプログラム | |
| JP2019020307A (ja) | 計測装置、計測装置の制御方法およびプログラム | |
| JP6584237B2 (ja) | 制御装置、制御方法、およびプログラム | |
| JP6746419B2 (ja) | 情報処理装置、及びその制御方法ならびにコンピュータプログラム | |
| JP2016103137A (ja) | ユーザインタフェース装置、画像処理装置及び制御用プログラム | |
| JP6399840B2 (ja) | 画像処理装置、画像処理方法及びプログラム | |
| JP2015170907A (ja) | スキャナシステム、スキャナシステムのデータ処理方法、及びプログラム | |
| JP6289254B2 (ja) | 画像処理装置、情報処理方法及びプログラム | |
| JP2018112894A (ja) | システムおよび制御方法 | |
| JP2015198406A (ja) | 画像読取装置、方法およびプログラム | |
| US10116809B2 (en) | Image processing apparatus, control method, and computer-readable storage medium, which obtains calibration image information with which to correct image data | |
| JP3109580B2 (ja) | 画像入力装置および画像入力装置の画像処理プログラムを記録したコンピュータが読み取り可能な記録媒体 | |
| JP2017162126A (ja) | 入力システム、入力方法、制御用プログラム、及び記憶媒体 | |
| JP2018191195A (ja) | 画像処理装置、画像処理装置の制御方法、及びプログラム | |
| JP2018014572A (ja) | 情報処理装置、画像処理システム、プログラム | |
| JP6624861B2 (ja) | 画像処理装置、制御方法およびプログラム | |
| JP2019016843A (ja) | 原稿読取装置、原稿読取装置の制御方法、及びプログラム | |
| JP2018191258A (ja) | 画像読取装置、画像読取方法及びプログラム | |
| JP2019146127A (ja) | 画像読取装置、その制御方法、及びプログラム | |
| JP6203070B2 (ja) | スキャンシステムおよびその制御方法、並びにプログラム | |
| JP2017117372A (ja) | 操作装置とその制御方法、及びプログラム | |
| JP2016025383A (ja) | 画像処理装置、制御方法およびプログラム |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20180306 |