JP4872610B2 - カメラポインタ装置、ラベリング方法及びプログラム - Google Patents

カメラポインタ装置、ラベリング方法及びプログラム Download PDF

Info

Publication number
JP4872610B2
JP4872610B2 JP2006303867A JP2006303867A JP4872610B2 JP 4872610 B2 JP4872610 B2 JP 4872610B2 JP 2006303867 A JP2006303867 A JP 2006303867A JP 2006303867 A JP2006303867 A JP 2006303867A JP 4872610 B2 JP4872610 B2 JP 4872610B2
Authority
JP
Japan
Prior art keywords
label
temporary
final
pixel
image
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.)
Expired - Fee Related
Application number
JP2006303867A
Other languages
English (en)
Other versions
JP2008123090A (ja
Inventor
崇史 山谷
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Casio Computer Co Ltd
Original Assignee
Casio Computer Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Casio Computer Co Ltd filed Critical Casio Computer Co Ltd
Priority to JP2006303867A priority Critical patent/JP4872610B2/ja
Publication of JP2008123090A publication Critical patent/JP2008123090A/ja
Application granted granted Critical
Publication of JP4872610B2 publication Critical patent/JP4872610B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Position Input By Displaying (AREA)
  • Image Analysis (AREA)

Description

本発明は、LCD(Liquid Crystal Display)ディスプレイやプロジェクタ等の表示デバイスにメニュー等を映し出し、この表示デバイスの画像をカメラで撮影し、カメラの光軸をメニューに向けて動かすことで、メニューの選択による入力が行えるようにしたカメラポインタ装置、及びこのようなカメラポインタ装置に用いて好適なラベリング方法及びプログラムに関する。
LCDディスプレイやプロジェクタ等の表示デバイスにメニュー等を映し出し、この表示デバイスの画像をカメラで撮影し、カメラの光軸をメニューに向けて動かすことで、メニューの選択による入力が行えるようにしたポインティングデバイスの開発が進められている。このような従来のポインティングデバイスでは、表示デバイスの表示画面と、カメラの撮影画面とのマッチングを予め設定しておき、カメラで撮影した連続画像のずれ量から、カメラの移動量を求め、この移動量を入力インターフェースに送るようにしている。
また、このようなポインティングデバイスとしては、特許文献1に示されているように、表示デバイス上の4隅に、赤外線LED(Light Emitting Diode)等の高輝度の発光体をマーカーとして予め設置又は組み込み、このマーカーをカメラで撮影し、認識して求めた4隅の座標から入力座標を計算するものが提案されている。
特開2003−208260号公報
しかしながら、特許文献1に示されるポインティングデバイスでは、表示デバイスの4隅に、予めマーカーを組み込んでおく必要がある。このため、マーカーを組み込んでいないテレビジョン受像機等に適用する場合には、マーカーを後付けで精度良く設置する必要がある。このように、マーカーを後付けで精度良く設置するのは、一般的に非常に困難である。また、テレビジョン受像機等にマーカーを組み込むと、見栄えが悪くなるという問題が生じる。
また、プロジェクタのような投射型デバイスでは、表示画面の中にマーカーを写し込むことになるため、表示内容の一部を隠すか、あるいは有効表示領域を縮小することになってしまう。
そこで、表示デバイスの画像をカメラで撮影し、カメラの撮影画像の画像認識により、表示デバイスの表示画面の4隅を認識させて、入力座標を計算することが考えられる。
このような画像認識を行う際には、カメラの撮影画面を2値化し、この2値化画像の背景以外の画素に対して、隣接する画素をグループ化し、同一のラベル番号を付与するようなラベリングの処理が行われる。
このようなラベリングの処理は、一般的には、処理の高速化のために、最初のパスでは、左上から右下へ順次走査し、画素データに仮ラベルを付与し、最後のパスで、仮ラベルの同一情報を基に仮ラベルを統合し、仮ラベルを本ラベルに置き換えるような2つのパスでの処理が行われる。
例えば、図24(A)に示すような2値画像に対して、1回目のスキャンにおいて、図24(B)に示すように、仮ラベル(ラベルA、B、C、D)が付けられる。その後、図24(B)に示すように、仮ラベルの統合が行われる。この例では、ラベルCがラベルAに統合され、ラベルDがラベルCに付け替えられている。
しかしながら、このような従来の方式では、画像サイズが大きくなると必要な仮ラベルの数が多くなり、メモリを多く消費するという欠点がある。特に、メモリ容量と帯域を節約するために、8ビットのモノクロ画像(1画素1バイト)を、上書きして2値化(背景のみ「0」に置換)し、更にラベリングで上書きするような画像処理を行う場合、使える仮ラベルの数が最大255と極端に少なく、通常は仮ラベルが不足する。
そこで、本発明は、上述の課題を鑑みてなされたものであり、マーカーを組み込むことなく高速動作可能なカメラポインタ装置を提供することにある。
また、メモリを有効利用し、ラベル数の不足に陥ることなく、ラベルを付けることができるラベリング方法を提供することにある。
本発明は、上記の課題を解決するために、以下の事項を提案している。
(1)本発明は、ポインタを表示する表示画面を含む画像を撮影するカメラユニットと、前記カメラユニットで撮影した画像中の画素を複数の領域にグループ化するグループ化手段と、前記複数の領域から前記表示画面に対応する領域を判別する判別手段と、前記表示画面に対応すると判別された領域の前記撮影画像中の位置に基づいて、表示画像中のポインタの座標を演算する座標演算部と、を有し、前記グループ化手段は、前記撮影画像中の複数の領域にラベル付与を実行するラベル付与手段を有し、前記ラベル付与手段は、既に使用されたラベルの中から、このラベルが付与された領域の画素数が所定値以下でかつラベル付与の実行に伴う増加の見込みがない場合に、予め定義されたノイズの認定条件を満たすものとして、この付与された領域を前記判別手段の判別対象から除外するとともに、このラベルを新たな領域へのラベル付与に再使用するために回収するラベル回収手段を有する、ことを特徴とするカメラポインタ装置を提案している。
(2)本発明は、背景と、背景以外の1つ以上のオブジェクトからなる画像データの画素に対し、有限個数のラベルからなるラベルプールから、前記オブジェクトにラベル番号を付与するラベリング方法であって、1回目の画像の走査で付与した仮ラベルを2回目の画像の走査で最終ラベルに置換する際に、利用する仮ラベルと最終ラベルとの対応関係を保持するラベル対応テーブルを仮ラベルと最終ラベルとが等しくなるように初期化する第1のステップと、前記1回目の画像の走査では、注目画素が背景でないとき、前記注目画素の周辺に仮ラベルが付与された画素がない場合に、前記ラベルプールから新しいラベルを取り出して、仮ラベルとして前記注目画素に付与する新規ラベル処理を実行する第2のステップと、前記注目画素の周辺に仮ラベルが付与されている場合に、前記周辺仮ラベルと前記ラベル対応テーブルから周辺最終ラベルを取得する第3のステップと、前記周辺最終ラベルが全て同一の場合に、前記注目画素に前記周辺最終ラベルを仮ラベルとして付与する同一ラベル処理を実行する第4のステップと、前記周辺最終ラベルが異なる場合に、前記周辺最終ラベルのうち1つを統合ラベルに、残りを非統合ラベルに決定し、前記注目画素に前記統合ラベルを仮ラベルとして付与すると共に、前記ラベル対応テーブルで前記非統合ラベルに対応する仮ラベルを前記統合ラベルに対応付けし直すラベル統合処理を実行する第5のステップと、前記2回目の画像の走査で、仮ラベルを前記ラベル対応テーブルを用い、最終ラベルへの置換を実行すると共に、前記新規ラベル処理を実行中に、前記ラベルプールのラベルを使い切った場合に、前記ラベル対応テーブルの最終ラベル毎に、各々対応する仮ラベルを付与した画素数を集計した総画素数が、所定値以下かつ前記2回目の画像の走査に伴う増加の見込みがない場合、予め定義されたノイズの認定条件を満たすものとして、最終ラベルをノイズラベルとして認識し、前記ラベル対応テーブルで前記ノイズラベルとして認識された最終ラベルに対応する仮ラベルを前記背景に相当する無効ラベルに対応付け直す第6のステップと、前記ラベル対応テーブルに基づき、既に付与した仮ラベルを対応する最終ラベルに置換する第7のステップと、前記ラベル対応テーブルで最終ラベルと異なる対応付けをされた仮ラベルを前記ラベルプールに戻す第8のステップと、前記ラベル対応テーブルを、仮ラベルと最終ラベルが等しくなるように初期化する第9のステップと、を備えたことを特徴とするラベリング方法を提案している。
(3)本発明は、背景と、背景以外の1つ以上のオブジェクトからなる画像データの画素に対し、有限個数のラベルからなるラベルプールから、前記オブジェクトにラベル番号を付与するラベリング方法をコンピュータに実行させるためのプログラムであって、1回目の画像の走査で付与した仮ラベルを2回目の画像の走査で最終ラベルに置換する際に、利用する仮ラベルと最終ラベルとの対応関係を保持するラベル対応テーブルを仮ラベルと最終ラベルとが等しくなるように初期化する第1のステップと、前記1回目の画像の走査では、注目画素が背景でないとき、前記注目画素の周辺に仮ラベルが付与された画素がない場合に、前記ラベルプールから新しいラベルを取り出して、仮ラベルとして前記注目画素に付与する新規ラベル処理を実行する第2のステップと、前記注目画素の周辺に仮ラベルが付与されている場合に、前記周辺仮ラベルと前記ラベル対応テーブルから周辺最終ラベルを取得する第3のステップと、前記周辺最終ラベルが全て同一の場合に、前記注目画素に前記周辺最終ラベルを仮ラベルとして付与する同一ラベル処理を実行する第4のステップと、前記周辺最終ラベルが異なる場合に、前記周辺最終ラベルのうち1つを統合ラベルに、残りを非統合ラベルに決定し、前記注目画素に前記統合ラベルを仮ラベルとして付与すると共に、前記ラベル対応テーブルで前記非統合ラベルに対応する仮ラベルを前記統合ラベルに対応付けし直すラベル統合処理を実行する第5のステップと、前記2回目の画像の走査で、仮ラベルを前記ラベル対応テーブルを用い、最終ラベルへの置換を実行すると共に、前記新規ラベル処理を実行中に、前記ラベルプールのラベルを使い切った場合に、前記ラベル対応テーブルの最終ラベル毎に、各々対応する仮ラベルを付与した画素数を集計した総画素数が、所定値以下かつ前記2回目の画像の走査に伴う増加の見込みがない場合、予め定義されたノイズの認定条件を満たすものとして、最終ラベルをノイズラベルとして認識し、前記ラベル対応テーブルで前記ノイズラベルとして認識された最終ラベルに対応する仮ラベルを前記背景に相当する無効ラベルに対応付け直す第6のステップと、前記ラベル対応テーブルに基づき、既に付与した仮ラベルを対応する最終ラベルに置換する第7のステップと、前記ラベル対応テーブルで最終ラベルと異なる対応付けをされた仮ラベルを前記ラベルプールに戻す第8のステップと、前記ラベル対応テーブルを、仮ラベルと最終ラベルが等しくなるように初期化する第9のステップと、をコンピュータに実行させるためのプログラムを提案している。
本発明によれば、マーカーを組み込むことなく、高速動作可能なカメラポインタ装置を提供できるという効果がある。
また、メモリを有効利用し、ラベル数の不足に陥ることなく、ラベルを付けることができるラベリング方法を提供できるという効果がある。
以下、本発明の実施形態について、図面を用いて、詳細に説明する。
なお、本実施形態における構成要素は適宜、既存の構成要素等との置き換えが可能であり、また、他の既存の構成要素との組合せを含む様々なバリエーションが可能である。したがって、本実施形態の記載をもって、特許請求の範囲に記載された発明の内容を限定するものではない。
[第1の実施形態]
<システムの概要>
図1は、本発明の第1の実施形態に係るカメラポインタ装置を用いたシステムの概要を示すものである。
図1において、情報機器1は、プレゼンテーションツール等が動作するパーソナルコンピュータや、デジタルテレビのチューナや、録画再生機等のAV(Audio Visual)機器等である。情報機器1は、図2に示すように、情報処理部11と、座標受信部12とを有する。
表示装置2は、プロジェクタや、LCD(Liquid Crystal Display)ディスプレイ、CRT(Cathode−Ray Tube)ディスプレイ等の表示デバイスである。表示装置2には、情報機器1から表示データが供給される。表示装置2には、この情報機器1からの表示データに基づいて、表示画面20が表示される。
カメラポインタ装置3は、利用者がポインタ操作を行い、メニューの設定等の操作を行うものである。すなわち、表示装置2には、情報機器1からの表示データに基づいて、画像が表示される。この画像には、オブジェクトの選択表示、メニュー画面や、マウスカーソル、ポインタ等が含まれている。利用者は、表示画面20上の指示したい対象に向けて、カメラポインタ装置3を操作する。このように、カメラポインタ装置3を指示したい対象に向けることで、マウスカーソルの移動やポインタの移動、オブジェクトやメニューの選択操作を行うことができる。
カメラポインタ装置3は、図2に示すように、カメラユニット31と、指示座標演算部32と、座標送信部33とから構成される。また、カメラポインタ装置3は、利用者が操作し易いように、レーザポインタのようなペン型や円柱形、或いはリモコンのような直方体等の形状とされている。
図2は、本発明の第1の実施形態に係るカメラポインタ装置を用いたシステムの構成を示すブロック図である。
図2において、表示装置2には、情報機器1の情報処理部11からの表示データに基づいて、メニュー等のコマンド対象を含む表示画面20が表示される。この表示画面20は、カメラポインタ装置3のカメラユニット31で撮影される。本実施形態では、色情報は不要なため、以下の説明において、カメラユニット31からの画像は、輝度情報、つまりモノクログレースケールとする。また、解像度や露光時間の観点から、カメラユニット31としては、モノクロタイプの撮像素子を使用したものの方が望ましい。
カメラユニット31の撮像画像データは、指示座標演算部32に送られる。指示座標演算部32は、カメラユニット31の撮像画像データの撮像画像中から表示画面に対応する領域として判別された領域の撮像画像中の位置に基づいて、表示画像中のポインタの座標を演算する。より具体的には、カメラユニット31の撮像画像データから画像認識により、表示画面20の部分を抽出し、表示画面20の部分の4隅の座標から演算により、カメラユニット31の光軸と表示画面20との交点(後述する図3の点P)の座標を算出する。
画像認識は、カメラユニット31の撮像画像データを2値化し、この2値化した画像データの背景以外をラベリング(撮像画像中の画素を複数のグループにグループ化し、各領域の画素数をカウントしてラベル付けを行う)し、ラベリングされた複数の領域から最大の面積となる領域を判定することにより行われる。求められたこの絶対座標は、表示画面20の解像度に関係ないように、「0」から「1」の小数で出力されるものとされる。そして、求められた絶対座標は、座標送信部33に送られ、座標送信部33から情報機器1に向けて、無線等(有線も可)により送信される。
カメラポインタ装置3の座標送信部33から送信された絶対座標は、情報機器1の座標受信部12で受信される。そして、座標受信部12で受信された絶対座標は、情報処理部11に送られる。
情報処理部11は、受信した座標に基づいて、マウスカーソルの移動や、ポインタ(点、丸、楕円、下線、四角など)の表示、オブジェクトの選択表示(表のセルや文字列の文字色や背景色の変更など)、メニュー画面でのメニュー項目の選択等を行う。
このように、本実施形態を適用したカメラポインタ装置2では、カメラユニット31で撮影した撮像画像データの背景以外のラベリングを行い、最大面積のラベル(が付与された領域)を表示画面として推定し、この推定された表示画面の4隅の座標からカメラの光軸が指示する表示画面上の絶対座標を計算させるようにしている。これにより、LED等のマーカーを用いずに、誤動作が少なく、高速動作可能なカメラポインタ装置が実現できる。
<カメラポインタ装置における絶対座標を求める計算方法>
次に、本実施形態のシステムにおけるカメラポインタ装置3について詳述する。
上述のように、カメラポインタ装置3は、表示装置2の表示画面20を撮影し、カメラポインタ装置3のカメラユニット31の中心を表示画面20上の指示したい対象に向けて指し示すことで、ポインタの操作を行うことができる。このカメラポインタ装置3の動作原理について、以下に詳述する。
先ず、表示装置2による表示画面20と、表示画面を撮影したカメラユニット31の撮影画面30との関係を明らかにし、絶対座標を求める計算方法について説明する。
図3は、表示装置2による表示画面20と、表示画面20を撮影したカメラユニット31の撮影画面30との関係を示すものである。図3では、カメラユニット31の水平方向、垂直方向、光軸方向をそれぞれのベクトルu、v、wとするu−v−w座標系で表現されている。
図3において、表示画面20のP、P、P、P上の点Pがカメラユニット31(の光軸)で指示している点である。また点Oは原点を表している。
カメラユニット31による撮影により、長方形の表示画面P、P、P、Pが光軸に垂直(つまり法線ベクトルがw)かつ(0、0、1)を通る平面状に、4角形Q、Q、Q、Qとして投影される。
このとき、射影前の表示画面の長方形を始点ベクトル、水平ベクトル、垂直ベクトルを
Figure 0004872610
とすると、長方形上の任意の点P(これは求める点でもある)は、
Figure 0004872610
と表現できる。つまり、このmとnを求めることが指示座標(絶対座標)を求めることになる。
同様に、長方形の頂点は(式1)により、
Figure 0004872610
と表現できる。
そして、点Pの射影は、P(=OP)とスクリーンとの交点である。
同様に、(式3)で表現される長方形の頂点もスクリーン上の4角形Q、Q、Q、Qに射影されるので、
Figure 0004872610
が成り立つ。ここで、
Figure 0004872610
とすると、
Figure 0004872610
が成り立つ。ここで撮影した4角形の頂点の座標を
Figure 0004872610
とすると、(式6)は
Figure 0004872610
になる。(式8)を解くことでjとkとは簡単に求めることができる。
一方、カメラユニット31が指示する点Pは光軸上なので、
Figure 0004872610
が成り立つ。ここで(式4)、(式5)により
Figure 0004872610
なので、
Figure 0004872610
を解くことでmとnとは簡単に求められる。
連立方程式
Figure 0004872610
の解法
Figure 0004872610
を用いることで(式8)、(式11)は機械的に計算される。
以上のように、カメラユニット31の撮像画面30から、表示画面20を抽出し、この表示画面20の4隅の座標から、カメラユニット31の光軸と表示画面20との交点の絶対座標を求めることができる。
<カメラポインタ装置における指示座標演算部の構成>
次に、カメラポインタ装置3における指示座標演算部32について説明する。
指示座標演算部32は、前述したように、撮影した画像を基に、カメラユニット31の光軸と表示画面20との交点を、指示すべき表示画面20上の絶対座標として求めるものである。
指示座標演算部32は、図4に示すように、CPU(Central Processing Unit)51と、ROM(Read Only Memory)52と、RAM(Random Access Memory)53と、画像メモリ54とから構成されている。これらCPU51と、ROM52と、RAM53と、画像メモリ54とは、ともにバス55に接続されている。また、このバス55には、カメラユニット31や、座標送信部33も、直接又は不図示のインターフェースを介して接続されている。
ROM52は、フラッシュメモリやマスクROMなどの不揮発性メモリであり、演算に必要なパラメータなどのデータと、CPU51で実行するプログラムとが格納されている。
RAM53は、CPU51が処理しているデータ等を一時的に記憶するメインメモリである。
画像メモリ54は、カメラユニット31から取り込んだ画像データや、CPU51が処理しているデータ等を一時的に記憶する。画像メモリ54には、カメラユニット31から取り込んだ画像データが蓄積され、この画像を2値化して上書きし、更に、ラベリングで上書きするようにしている。また、処理の高速化のために、画像メモリ54でのデータコピー(メモリアクセス)を極力排除する目的から、画像データの変更部分のみ上書きしている。すなわち、ラベリング動作を画像メモリ54の画像データの上書きにより実行することにより、メモリヘのアクセスを極力行わないようにして、高速動作を可能としている。
なお、図4に示す構成の代わりに、処理の一部または全部をロジック回路で置き換えた構成にしても良い。
<カメラポインタ装置における指示座標演算部の全体処理フロー>
図5は、指示座標演算部32を構成するCPU51が実行する処理の全体フローを示すものである。なお、各処理の詳細については、後に説明する。
図5において、先ず、カメラユニット31で画像が撮影されたら、カメラユニット31から取り込まれた画像を、輝度が閾値未満の背景(画素データは「0」)と、輝度が閾値以上の背景以外(画素データは非「0」、表示画面を含む)とに2値化する(ステップS1)。このときの閾値は、予め設定した固定値を用いてもいいが、判別分析法などで動的に決定することが望ましい。
次に、背景以外の画素に対してラベリングを行う(ステップS2)。ラベリングは、隣接する画素をグループ化する操作を行うと共に、画素数も同時にカウントする処理である。このラベリング処理の詳細については、後に詳述する。
次に、最大面積のラベルを抽出する処理を行い、カメラユニット31の撮像画面中から、表示画面20の部分を推定する(ステップS3)。つまり、通常、表示画面20の部分は周囲より明るく、また十分な大きさがあるので、最大の画素数(最大面積)を持つ。よって、最大面積のラベルを抽出することで、表示画面20が推定できる。
例えば、周囲が暗い(真っ暗な)環境下で、表示画面20を撮影すると、図6(A)に示すように、表示画面20(同図太線4角形A1)のみが撮像画面30中に映し出される。この場合、最大面積のラベルを抽出すれば、A1で示される表示画面20の部分が抽出される。
また、周囲が明るい(薄暗いのも含む)環境下では、図6(B)に示すように、表示画面20(同図(B)における太線4角形B1)以外のもの(同図(B)における細線4角形C1、C2、C3等)がノイズとして撮像画面30中に映し出されている。上述のようなステップS1〜S3の処理を行い、最大面積のラベルを抽出することで、図6(B)に示すようにノイズを含む場合でも、表示画面のみを推定し、B1で示される表示画面20の部分を抽出することができる。
図5において、ステップS1〜S3の処理により、最大面積のラベルを抽出することで、表示画面20が推定できたら、推定された表示画面20の4隅の画像データ上での座標を求める(ステップS4)。そして、この4隅の座標から、前述したしたように、カメラユニット31の光軸と表示画面20との交点の絶対座標を計算する(ステップS5)。
<ラベリング処理の概要>
次に、図5におけるステップS2のラベリング処理について説明する。
ラベリングでは、2値化画像の背景以外の画素に対して、隣接する画素をグループ化し、同一のラベル番号を付与する処理が行われる。このようなラベリングの処理は、一般的には、処理の高速化のために、2つのパスで処理が行われる。
つまり、図7はラベリング処理の説明図である。
図7に示すように、撮像画面30に対して、最初のパスでは、左上から右下へ順次走査し、画素データに仮ラベル(またはインデックス)を付与する。この際、以下のルールで仮ラベルを付与する。
(1)走査済みでかつ周囲の画素位置(例えば上と左)に仮ラベルが付与されていないときには、新しい仮ラベルを付与する。
(2)周囲の画素位置に全て同じ仮ラベルが付与されているときには、その仮ラベルを付与する。
(3)周囲の画素位置に異なる仮ラベルが付与されているときには、何れかの仮ラベルを付与するとともに、異なる仮ラベルが全て同一であるという情報を作成する。
最後のパスで、仮ラベルの同一情報を基に仮ラベルを統合し、仮ラベルを本ラベルに置き換える。
しかしながら、このような従来の方式では、画像サイズが大きくなると、必要な仮ラベルの数が多くなり、メモリを多く消費するという欠点がある。また、特に、メモリ容量と帯域を節約するために、図4における画像メモリ54に蓄積された8ビットのモノクロ画像(1画素1バイト)を、上書きして2値化(背景のみ0に置換)し、更にラベリングで上書きするような画像処理を行う場合、使える仮ラベルの数が最大255と極端に少なく、通常は仮ラベルが不足する。仮に、1画素2バイトでも、最大65535ラベルであり、30万画素以上の画像データをラベリングするにはラベルが足りなくなる場合がある。
これに対し、単純に仮ラベルが不足した時点で、仮ラベルの同一情報を基に仮ラベルを統合し、仮ラベルを新たな仮ラベルに置き換えるという仮ラベル回収方法が考えられる。
しかしながら、本実施形態のように、周囲が明るい(薄暗い場合も含む)環境下で、図5のステップS1における2値化処理を行うと、孤立雑音が多く発生する。また、図6(B)に示したように、ノイズ画像C1、C2、C3が発生しており、更に、図示できないほど小さな孤立雑音以外のノイズも存在しており、上述の仮ラベル回収方法では、仮ラベルの回収がうまく行われずに、仮ラベルが不足に陥り易い。
そこで、本実施形態では、最適な仮ラベルの回収と再利用が可能なラベリング処理を行い、ラベルの不足に陥らないようにしている。
本実施形態におけるラベリング処理の要点は、以下の通りである。
(1)仮ラベルを付与している最中に、ある画素で仮ラベルを使い切ったとき、仮ラベルの振り直しを行う前に、ノイズ等で無駄に使われた仮ラベルをノイズラベルとして無効化してから回収する。
(2)ノイズラベルの判断基準は、同一のラベルの画素数が所定値以下かつ、不足時点の画素から丁度1ライン分前までの画素(真上の画素から左隣の画素)に付与されていないもの、つまり同一のラベルが付された画素数が少なく、かつ画素数増加が見込まれないラベルとする。
<ラベリング処理の全体フロー>
次に、具体的なラベリング手法を、ラベルテーブルのデータ形式とフローチャートを使って説明する。
ラベルテーブルのデータ形式は、図8に示すように、所定数N(例えば1画素1バイトの場合256個)の配列として定義される。そして、配列の各要素は、ラベル(番号)、画素数、リスト、範囲から構成される。2値化済みの画像データは、ラベルテーブルヘのインデックス番号に置換される。ある画素の最終的なラベルは、この画素のインデックス番号が指すラベルテーブルのラベル(番号)になる。
画素数は、最終的なラベルの画素数であり、ラベル(番号)をインデックスとしてラベルテーブルにアクセスする。
リストは、あるラベル(番号)を参照するインデックス番号の連結リストであり、次のインデックス番号が格納されている。つまり、ラベル(番号)をリストの先頭とし、次のインデックス番号のラベルテーブルにアクセスすることでリストを順に辿ることが可能である。なお、リストに末尾情報を持たせると、リスト同士の連結が高速化できる。
範囲は、あるラベル(番号)を最終ラベルとする画素の範囲を保持する。この範囲情報は、後述するノイズ除去処理や、再ラベル処理を高速化するために利用される。
図9は、図5におけるラベリング処理ステップS2の詳細を示すフローチャートである。図9に示すように、ラベリング処理を行う場合には、先ず、ラベルテーブルの初期化を行う(ステップS101)。
次に、画素位置を、先頭位置(図7の左上隅)に設定する(ステップS102)。そして、画素が「0」(つまり背景)かどうかを判断する(ステップS103)。
画素が「0」の場合(ステップS103の「Yes」)には、何も処理を行わず、画素の位置を進める(ステップS104)。そして、全画素データを終了したかどうかを判断し(ステップS105)、全画素データが終了していなければ(ステップS105の「No」)、ステップS103にリターンする。
一方、ステップS103において、画素が「0」でないならば(ステップS103の「No」)、上と左の画素のラベル(本実施形態では上下左右の連結のみ扱い、斜め方向は考慮しない)を取得する(ステップS106)。取得した画素には既にインデックスが書き込まれているので、このインデックスで、図8のラベルテーブルのラベル(番号)にアクセスする。なお、ラベルテーブルの「0」のラベルには、「0」が設定されている。また、図7の画像データの上辺と左辺で、参照すべき画素がない場合は、ラベルは「0」とする。そして、ステップS107、ステップS108で、2つのラベルを条件で振り分けて処理を行う。
先ず、2つのラベルが共に「0」かどうかの判定を行う(ステップS107)。2つのラベルが共に「0」ならば(ステップS107の「Yes」)、新規ラベル処理を行う(ステップS109)。一方、ステップS107で2つのラベルが共に「0」でないならば(ステップS107の「No」)、2つのラベルが同一(ここでは一方のラベルが「0」の場合も同一と見なす)かの判定を行う(ステップS108)。2つのラベルが同一ならば(ステップS108の「Yes」)、同一ラベル処理を行い(ステップS110)、同一でないならば(ステップS108の「No」)、ラベル統合処理を行う(ステップS111)。なお、新規ラベル処理(ステップS109)、同一ラベル処理(ステップS110)、ラベル統合処理(ステップS111)については、後に説明する。
上述の処理が終了したら、ステップS104に行き、画素の位置を進め、そして、ステップS105で、全画素データを終了したかどうかを判断し、全画素データが終了していなければ(ステップS105の「No」)、ステップS103にリターンする。そして、以上の処理を繰り返して行う。
以上の処理が繰り返して行われ、全画素についての処理が終了すると、ステップS105で、全画素データの処理が終了したと判断される。ステップS105で、全画素データの処理が終了したと判断されたら(ステップS105の「Yes」)、画像データのインデックスを(最終)ラベルに置換する再ラベル処理を実行して(ステップS112)、ラベリング処理を終了する。
<初期化処理>
次に、図9に示したラベリング処理におけるステップS101の初期化処理について説明する。
図10は、図9のステップS101のテーブル初期化処理を示すフローチャートである。
図10において、ラベルテーブルに対するインテックスJに「0」を代入する(ステップS201)。そして、ラベルにインデックスJを代入し、画素数に「0」を代入する(ステップS202)。ラベルは最初インデックスと等しいが、ラベル統合処理(ステップS111)により書き換えられる。次に、リストの初期化を行う(ステップS203)。ここで、リストの次のインデックスは「0」(空)に設定する。また、リストが末尾情報を持つ場合には、インデックスJを設定する。そして、範囲を無効に設定する(ステップS204)。
ステップS202〜ステップS204の処理を行ったら、インデックスJをインクリメントし(ステップS205)、(J=N)が成立するかどうかを判断する(ステップS206)。(J=N)が成立しなければ(ステップS206の「No」)、ステップS202にリターンし、同様の処理を繰り返す。
ステップS202〜ステップS206のようなループを、(J=N)が成立するまで繰り返し、ステップS206で、(J=N)が成立したと判断されたら(ステップS206の「Yes」)、ループを抜けて、初期化処理を終了する。
<新規ラベル処理>
次に、図9に示したラベリング処理におけるステップS109の新規ラベル処理について説明する。
図11は、図9のステップS109の新規ラベル処理を示すフローチャートである。
図11において、新規ラベル処理では、先ず、空きラベルLを検索する(ステップS301)。これは、インデックス「1」から(N−1)までのラベルテーブルのうち、画素数が「0」(未使用)のものを探すことである。そして、空きラベルLが見つかったかの判定を行う(ステップS302)。
ステップS302で、空きラベルLが見つからない場合(ステップS302の「No」)には、ラベルの回収を行い(ステップS303)、再度、空きラベルLの検索を行う(ステップS304)。この処理は、ステップS301と同様である。そして、もう一度、空きラベルLが見つかったかの判定を行い(ステップS305)、もし見つからなければ(ステップS305の「No」)、ラベルを使い切ったのでエラーで終了する。
ステップS302又はステップS305で、1回目または2回目の検索で空きラベルLが見つかった場合(ステップS302の「Yes」又はステップS305の「Yes」)には、画素にLを書き込み(ステップS306)、Lをインデックスとするラベルテーブルの画素数をインクリメントする(ステップS307)。最後に、範囲設定を行い(ステップS308)、処理を終了する。なお、範囲設定は開始位置、終了位置ともに今現在の画素位置を設定する。
<同一ラベル処理>
次に、図9に示したラベリング処理におけるステップS110の同一ラベル処理について説明する。
図12は、図9のステップS110の同一ラベル処理を示すフローチャートである。
図12において、同一ラベル処理では、先ず、画素に同一ラベルを書き込み(ステップS401)、同一ラベルをインデックスとするラベルテーブルの画素数をインクリメントする(ステップS402)。そして、範囲設定を行い(ステップS403)、処理を終了する。なお、範囲設定は終了位置のみ今現在の画素位置を設定する。
<ラベル統合処理>
次に、図9に示したラベリング処理におけるステップS111のラベル統合処理について説明する。
図13は、図9のステップS111のラベル統合処理を示すフローチャートである。
図13において、ラベル統合化処理では、先ず、統合・非統合ラベルを決定する(ステップS501)。なお、本質的に、2つのラベルのどちらを統合ラベル、もう一方を非統合ラベルにしても正しく動作する。ここでは、2つのラベルのうち小さいほうを統合ラベルとする。
次に、リストの先頭を非統合ラベルのリストの先頭(つまり非統合ラベル)に設定する(ステップS502)。
そして、リストをインデックスとするラベルテーブルのラベルを統合ラベルに置き換え(ステップS503)、次のリストに進める処理を行う(ステップS504)。そして、非統合ラベルのリストが終了したかどうかを判断し(ステップS505)、非統合ラベルのリストが終了していなければ(ステップS505の「No」)、ステップS503にリターンし、非統合ラベルのリストが終了するまで、ステップS503〜ステップS505の処理を繰り返す。
ステップS505で、非統合ラベルのリストが終了したと判断されたら(ステップS505の「Yes」)、統合ラベルのリスト(の終端)に非統合ラベル(の先頭)を連結する(ステップS506)。そして、画素に統合ラベルを書き込み(ステップS507)、統合ラベルをインデックスとするラベルテーブルの画素数に、統合ラベルの画素数と非統合ラベルの画素数との合計に「1」を加えたものを代入する(ステップS508)。最後に、範囲設定を行い(ステップS509)、ラベルの統合化処理を終了する。なお、範囲設定は開始位置を統合・非統合ラベルのうちより前の位置を、終了位置を今現在の両素位置に設定する。
<ラベル回収処理>
次に、図11のステップS303のラベル回収処理について説明する。
図14は、図11のステップS303のラベル回収処理を示すフローチャートである。
ラベル回収処理では、図14において、先ず、ノイズに相当する画素に与えたインデックスを無効化してノイズ除去する(ステップS601)。次に、再ラベル処理を実行して(ステップS602)、ノイズを背景に置換することと、非統合ラベルを統合ラベルに置換することとを同時に行う。
最後に、ノイズラベル、非統合ラベルの初期化によりラベルテーブルの整理を行い(ステップS603)、ラベル回収処理を終了する。
<ノイズ除去処理>
図15は、図14におけるステップS601のノイズ除去処理を示すフローチャートである。
図15において、ラベルテーブルに対するインテックスJに「1」を代入する(ステップS701)。そして、先ず、ラベルとインデックスJが等しいかの判定を行う(ステップS702)。ラベルとインデックスJが等しくないならば(ステップS702の「No」)、何も処理を行わない。これは、非統合ラベルをスキップするためである。そして、インデックスJをインクリメントし(ステップS703)、(J=N)が成立するかどうかを判断し(ステップS704)、(J=N)が成立しなければ(ステップS704の「No」)、ステップS702にリターンする。
一方、ステップS702で、ラベルとインデックスJが等しいならば(ステップS702の「Yes」)、画素数が所定値未満かの判定を行う(ステップS705)。ここで、画素数が所定値以上ならば(ステップS705の「No」)、ノイズの見込みがないので、何も処理を行わず、インテックスJをインクリメントし(ステップS703)、(J=N)が成立するかどうかを判断し(ステップS704)、(J=N)が成立しなければ(ステップS704の「No」)、ステップS702にリターンする。
これに対して、ステップS705で、画素数が所定値未満ならば(ステップS705の「Yes」)、ノイズの可能性があるので、画素数増加の見込みがあるかの判定を行う(ステップS706)。
具体的には、図16に示すように、今現在の画素位置(同図黒部)に対し、上の画素位置から左の画素位置まで(同図斜線部)の範囲に、仮ラベルのインデックスJ(の範囲の終了位置)があれば、画素数増加の見込みがあると判断する。すなわち、現在の画素からちょうど1ライン分前までの画素に、仮ラベルのインデックスがあれば、画素数の増加の見込みがあり、仮ラベルのインデックスがなければ、画素数の増加の見込みはないと判断する。
もし、画素数増加の見込みがあれば(ステップS706の「Yes」)、ノイズでない可能性もあるので、何も処理を行わず、インテックスJをインクリメントし(ステップS703)、(J=N)が成立するかどうかを判断し(ステップS704)、(J=N)が成立しなければ(ステップS704の「No」)、ステップS702にリターンする。
ステップS706で、画素数増加の見込みがなければ(ステップS706の「No」)、インデックスJのラベルはノイズなので、ラベルの無効化を行う。すなわち、リストの先頭をインデックスJに設定し(ステップS707)、リストをインデックスとするラベルテーブルのラベルを「0」(再ラベル処理で背景になる)に置き換え(ステップS708)、リストを次のリストに進める(ステップS709)。そして、リストが終了したかどうかを判断し(ステップS710)、リストが終了していなければ(ステップS710の「No」)、ステップS708にリターンする。そして、ステップS708〜ステップS710までの処理を、リストが終了するまで繰り返す。ステップS710でリストが終了したと判断されたら(ステップS710の「Yes」)、インテックスJをインクリメントし(ステップS703)、(J=N)が成立するかどうかを判断し(ステップS704)、(J=N)が成立しなければ(ステップS704の「No」)、ステップS702にリターンする。
上述の処理を繰り返して行い、ステップS704で、(J=N)が成立したかどうかを判断する。そして、(J=N)が成立したら(ステップS704の「Yes」)、ノイズ除去処理を終了する。
<再ラベル処理>
図17は、図14におけるステップS602の再ラベル処理を示すフローチャートである。
図17において、先ず、再ラベル処理を行う画像データの範囲を求める(ステップS801)。この範囲は、画像データにインデックスを与えた画素を含み、ラベルテーブルの範囲情報から簡単に作成できる。こうすることで、画像データへの無駄なアクセスを減らすことができる。また、非統合ラベルとノイズラベルのみのラベルテーブルから範囲を作成することより、一層メモリアクセスを減らすこともできる。
次に、画素位置を求めた範囲の先頭に設定する(ステップS802)。そして、画素が画素をインデックスとするラベルテーブルのラベルと等しい(つまり書き換え不要)かどうかを判定し(ステップS803)、もし、等しければ(ステップS803の「Yes」)、何も処理を行わずに、画素位置を進め(ステップS804)、画素位置が求めた範囲外にあるかどうかを判断し(ステップS805)、画素位置が求めた範囲外でなければ(ステップS805の「No」)、ステップS803にリターンする。
一方、ステップS803で、画素が画素をインデックスとするラベルテーブルのラベルと等しくないならば(ステップS803の「No」)、画素データはノイズラベルまたは非統合ラベルなので、画素にラベルを設定する(ステップS806)。これにより、ノイズラベルは「0」(背景)に、非統合ラベルは統合ラベルに置き換えられる。そして、画素位置を進め(ステップS804)、画素位置が求めた範囲外にあるかどうかを判断し(ステップS805)、画素位置が求めた範囲外でなければ(ステップS805の「No」)、ステップS803にリターンする。
上述の処理を画素位置が求めた範囲外になるまで繰り返し、ステップS805で、画素位置が求めた範囲外であると判断されたら(ステップS805の「Yes」)、再ラベル処理を終了する。
<テーブル整理処理>
図18は、図14におけるステップS603のテーブル整理処理を示すフローチャートである。
図18において、テーブル整理処理では、ラベルテーブルに対するインテックスJに「1」を代入する(ステップS901)。そして、リストの初期化を行い(ステップS902)、リストの次のインデックスは「0」(空)に設定する。また、リストが末尾情報を持つ場合には、インデックスJを設定する。
次に、ラベルとインデックスJが等しいかの判定を行う(ステップS903)。ラベルとインデックスJが等しいならば(ステップS903の「Yes」)、何も処理を行わず、インテックスJをインクリメントする(ステップS904)。これは、使用中の有効なラベルをスキップするためである。そして、(J=N)が成立するかどうかを判断し(ステップS905)、(J=N)が成立しなければ(ステップS905の「No」)、ステップS902にリターンする。
一方、ステップS903で、ラベルとインデックスJが等しくないならば(ステップS903の「No」)、このインデックスJはノイズラベルまたは非統合ラベルの無効なラベルなので、以下の初期化を行う。すなわち、先ず、ラベルにインデックスJを代入し、画素数に「0」を代入する(ステップS906)。そして、範囲を無効に設定する(ステップS907)。
そして、インテックスJをインクリメントした後(ステップS904)、(J=N)が成立するかどうかを判断し、(J=N)が成立しなければ(ステップS905の「No」)、ステップS902にリターンする。
以上の処理を(J=N)が成立するまで繰り返して行う。ステップS905で、(J=N)が成立したと判断されたら(ステップS905の「Yes」)、テーブル整理処理を終了する。
以上により、ラベルの不足を極力回避しながら、ラベリングを行うことができる。
<最大面積のラベル抽出処理>
次に、図5に示した全体処理におけるステップS3の最大面積のラベルを抽出する処理について説明する。
最大面積のラベル抽出処理は、図19にフローチャートで示すように、最大画素数を持つラベルを見つけ、このラベル以外「0」に置換することで得られる。もちろん、実際に置換を行わずに、これ以降の画像処理を行う際に、このラベル以外を背景と見なすように処理することもできる。
図19において、先ず、最大値を「0」に設定する(ステップS1001)。次に、ラベルテーブルに対するインテックスJに「1」を代入し(ステップS1002)。そして、ラベルとインデックスJが等しいかの判定を行う(ステップS1003)。ラベルとインデックスJが等しくないならば(ステップS1003の「No」)、何も処理を行わず、インデックスJをインクリメントし(ステップS1004)、(J=N)が成立するかどうかを判断し(ステップS1005)、(J=N)が成立しなければ(ステップS1005の「No」)、ステップS1003にリターンする。これは、非統合ラベルをスキップするためである。
一方、ステップS1003で、ラベルとインデックスJが等しいならば(ステップS1003の「Yes」)、画素数が最大値より大きいかの判定を行う(ステップS1006)。そして、画素数が最大値以下ならば(ステップS1006の「No」)、何も処理を行わず、インデックスJをインクリメントし(ステップS1004)、(J=N)が成立するかどうかを判断し(ステップS1005)、(J=N)が成立しなければ(ステップS1005の「No」)、ステップS1003にリターンする。
ステップS1006で、画素数が最大値より大きければ(ステップS1006の「Yes」)、最大値に画素数を代入して、最大値を更新する(ステップS1007)。
そして、インデックスJをインクリメントし(ステップS1004)、(J=N)が成立するかどうかを判断し(ステップS1005)、(J=N)が成立しなければ(ステップS1005の「No」)、ステップS1003にリターンする。なお、判定処理S1003はなくても動作する。
(J=N)が成立するまで、上述の処理を繰り返して行い、ステップS1005で、(J=N)が成立すると判断されたら(ステップS1005の「Yes」)、ループを抜けて、処理を終了する。
<4隅の座標を求める方法>
次に、図5におけるステップS4の4隅を求める方法を、図20を使って説明する。
図20において、4角形A101は、最大面積のラベルを抽出したもので、これにより、撮像画面中から、表示画面20が得られる。図20において、4本の直線L1〜L4(傾きの異なるペアの直線)は、4隅を求めるためのものである。直線L1〜L4の傾き(同図では±1)が4角形のどの辺の傾きとも異なる場合には、4角形と直線L1〜L4とは4隅で接する。つまり、抽出したラベルと傾きの異なる2本の検出用直線L1〜L4との接点(傾きあたり2点)から4隅(の画像データ上の座標)を求めることができる。
なお、4角形の辺の傾きと検出用直線L1〜L4の傾きが等しくなる可能性がある場合や、歪曲収差(カメラユニット31のレンズにより直線が曲線になる歪み、長方形が樽型や糸巻き型に変形する場合等)が大きくなり誤動作する可能性がある場合には、検出用直線L1〜L4の本数を増やして対処すれば良い。
<座標の計算>
4隅の画素位置から絶対座標への変換は、前述の(式8)、(式11)に示した通りである。このとき画像データの仮想的な中心位置が原点(光軸)になるようにする。また、焦点距離と画素ピッチから決まる係数を乗じて、長さの正規化を行う。更に、必要ならば4隅の座標に対して歪曲補正を行う。通常、歪曲収差はレンズやカメラユニット31内部の信号処理で補正されているので、本来補正は必要ないが、歪曲収差の大きさと絶対座標の精度により判断する。なお、この時点で補正を行うのが、最も計算負荷が軽くなる。そして、動作原理で説明した(式8)、(式11)から絶対座標を計算する。なお、座標計算のみなら長さの正規化は必要ない。
<第2の実施形態>
上述の第1の実施形態では、最大画素数を持つラベルを表示画面と推定している。この方式は、暗所ではほぼ完璧に、明所でも大抵は問題なく動作する。
ところが、明所において、表示画面付近に窓等がある場合に、この窓等がカメラで撮影される。そして、図21や図22のように、窓等(図中斜線の4角形W1)が表示画面(図中白抜き4角形A201)より大きい場合には、図中斜線の4角形が表示画面として推定されるため、カメラポインタが誤動作する。なお、図21は窓等の全体が、図22は窓等の一部が、カメラに映っている。
本実施形態では、この誤動作を大幅に軽減する表示画面推定方法を提供することで、カメラポインタの誤動作をより少ないものにする。
本実施形態の動作を図23のフローチャートを用いて説明する。
図23において、先ず、第1の実施形態における図5のステップS1の処理と同様に2値化を行う(ステップS2001)。次に、第1実施形態における図5のステップS2の処理と同様に、ラベリングを行う(2002)。そして、順位Jを1に設定し、表示画面が見つかったか否かを表すフラグを未了に設定する(ステップ2003)。
そして、面積の多い順で上位J番目のラベルを得る(ステップS2004)。この動作は、第1の実施形態における図5に示す最大面積のラベル抽出処理(ステップS3)での、最大画素数を持つラベルを見つける処理を示した図19から簡単に類推できる。
次に、面積上位J番目のラベルに対して、第1の実施形態における図5のステップS4の処理と同様に、4隅の画像データ上での座標(画素位置)を求める(ステップS2005)。この4隅の画素位置を、第1に実施形態の絶対座標の計算と同様に、4点の座標に変換する。このとき、必ず長さの正規化を行う。また、必要ならば4点の座標に対して歪曲補正を行う。
そして、4点の座標と第1の実施形態の動作原理で説明した(式8)、(式10)から表示画面(平行四辺形)の長辺と短辺の3次元ベクトルX、Yを計算する(ステップS2006)。なお、これらベクトルは、(S・w)=1となるように正規化する。
そして、これらベクトルの成す角とアスペクト比、正しい表示画面の成す角(90度)とアスペクト比とを比較することで、ラベルのベクトルが、表示画面のものかの判定を行う(ステップS2007)。
ステップS2007で、もし、ラベルが表示画面と推定されれば(ステップS2007の「Yes」)、フラグに終了を設定する(ステップS2008)。一方、ラベルが表示画面でないならば(ステップS2007の「No」)、何も処理を行わない。
そして、順位Jを下降させ(順位番号Jを増加させる)(ステップS2009)、順位Jが所定の順位Mを超えているかどうかを判断する(ステップS2010)。順位Jが所定の順位Mを超えていなければ(ステップS2010の「No」)、ステップS2004にリターンする。
こうして、順位Jが所定の順位Mを超えるか又はフラグが終了まで(ステップS2010の「Yes」)、ステップS2009で順位Jを下降させつつ、処理を繰り返す。
ステップS2010で、J>M又はフラグが終了と判断されたら(ステップS2010の「Yes」)、フラグが終了であるかの判定を行う(ステップS2011)。もし、ステップS2011でフラグが終了でないならば(ステップS2011の「No」)、表示画面が見つからなかったので、エラーで終了する。
一方、ステップS2011で、フラグが終了ならば(ステップS2011の「Yes」)、表示画面が見つかったので、表示画面と推定されたラベルの4隅の座標から、第1の実施形態の絶対座標の計算処理(図5のステップS5)と同様に、第1の実施形態の動作原理で説明した(式11)を用いて、表示画面上の絶対座標を計算して(ステップS2012)、終了する。
ところで、(式8)はベクトル計算処理(ステップS2006)で解いているので、改めて計算する必要はない。
なお、ループの終了条件を、順位Jが所定順位Mを超えることに加えてまたは、代えて順位Jのラベルの画素数がある画素数未満(例えば固定の所定値や、ラベルの最大画素数に所定の割合を乗じたもの)を満たすことにしてもよい。以上により、明らかに表示画面にしては小さ過ぎるラベルを表示画面として推定しないようにすることで、誤動作をより少なくできる。
また、成す角も比較するのは、図22のように窓の一部が映っている場合には、表示画面が平行四辺形であると仮定して求めた3次元ベクトルX、Yの成す角が直角になるとは限らないからである。
以上説明したように、本実施形態では、各々のラベルの4隅の座標から求めた元の表示画面に相当する平行四辺形の長辺、短辺に対応する3次元ベクトルが、予め設定した前記表示画面のアスペクト比の長方形であることを満たすラベルのうち、画素数が最大のラベルを前記表示画面と推定するようにしたことにより、窓など表示画面より大きな光源による誤動作を極力抑えたことができる。
また、表示画面推定のループの終了条件を、明らかに表示画面にしては小さ過ぎるラベルを表示画面として推定しないようにすることで誤動作をより少なくできる。
以上、この発明の実施形態につき、図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
なお、本発明は、AV機器の操作や、双方向テレビジョン放送の操作等を行うポインティングデバイスとして利用可能である。
本発明の第1の実施形態のカメラポインタ装置を用いたシステムの概要を示す説明図である。 本発明の第1の実施形態のカメラポインタ装置を用いたシステムの構成を示すブロック図である。 本発明の第1の実施形態のカメラポインタ装置における絶対座標の算出の説明図である。 本発明の第1の実施形態のカメラポインタ装置における指示座標算出部の構成を示すブロック図である。 本発明の第1の実施形態のカメラポインタ装置における指示座標算出部の全体処理を説明するためのフローチャートである。 本発明の第1の実施形態のカメラポインタ装置における指示座標算出部の表示画面の推定の説明図である。 本発明の第1の実施形態のカメラポインタ装置におけるラベリング処理の説明図である。 本発明の第1の実施形態のカメラポインタ装置におけるラベルテーブルの説明図である。 本発明の第1の実施形態におけるラベリング処理の詳細を示すフローチャートである。 本発明の第1の実施形態におけるラベリング処理のテーブル初期化処理を示すフローチャートである。 本発明の第1の実施形態におけるラベリング処理の新規ラベル処理を示すフローチャートである。 本発明の第1の実施形態におけるラベリング処理の同一ラベル処理を示すフローチャートである。 本発明の第1の実施形態におけるラベリング処理のラベル統合処理を示すフローチャートである。 本発明の第1の実施形態におけるラベリング処理のラベル回収処理を示すフローチャートである。 本発明の第1の実施形態におけるラベリング処理のノイズ除去処理を示すフローチャートである。 本発明の第1の実施形態におけるラベリング処理の画素数増加の見込みの判断の説明図である。 本発明の第1の実施形態におけるラベリング処理の再ラベル処理を示すフローチャートである。 本発明の第1の実施形態におけるラベリング処理のテーブル整理処理を示すフローチャートである。 本発明の第1の実施形態におけるラベリング処理の最大面積のラベル抽出処理を示すフローチャートである。 本発明の第1の実施形態のカメラポインタ装置における最大画素数を持つラベルから4隅を見つける処理の説明図である。 本発明の第2の実施形態のカメラポインタ装置の説明図である。 本発明の第2の実施形態のカメラポインタ装置の説明図である。 本発明の第2の実施形態のカメラポインタ装置の説明に用いるフローチャートである。 従来のラベリング処理の説明図である。
符号の説明
1:情報機器、
2:表示装置、
3:カメラポインタ装置、
11:情報処理部、
12:座標受信部、
20:表示画面、
30:撮像画面、
31:カメラユニット、
32:指示座標演算部、
33:座標送信部、
51:CPU、
52:ROM、
53:RAM、
54:画像メモリ

Claims (7)

  1. ポインタを表示する表示画面を含む画像を撮影するカメラユニットと、
    前記カメラユニットで撮影した画像中の画素を複数の領域にグループ化するグループ化手段と、
    前記複数の領域から前記表示画面に対応する領域を判別する判別手段と、
    前記表示画面に対応すると判別された領域の前記撮影画像中の位置に基づいて、表示画像中のポインタの座標を演算する座標演算部と、
    を有し、
    前記グループ化手段は、
    前記撮影画像中の複数の領域にラベル付与を実行するラベル付与手段を有し、
    前記ラベル付与手段は、
    既に使用されたラベルの中から、このラベルが付与された領域の画素数が所定値以下でかつラベル付与の実行に伴う増加の見込みがない場合に、予め定義されたノイズの認定条件を満たすものとして、この付与された領域を前記判別手段の判別対象から除外するとともに、このラベルを新たな領域へのラベル付与に再使用するために回収するラベル回収手段を有する、
    ことを特徴とするカメラポインタ装置。
  2. 前記判別手段は、各領域の面積に基づいて、表示画面に対応する領域を判別することを特徴とする請求項1に記載のカメラポインタ装置。
  3. 前記判別手段は、各領域の形状に基づいて、表示画面に対応する領域を判別することを特徴とする請求項1に記載のカメラポインタ装置。
  4. 前記判別手段は、前記各領域を平行四辺形に変換し、予め設定した前記表示画面のアスペクト比の平行四辺形であることを満たす領域のうち、画素数が最大の領域を前記表示画面と推定することを特徴とする請求項3に記載のカメラポインタ装置。
  5. 前記ラベル回収手段が行う画素数が増加の見込みがあるかどうかの判断は、ラベル不足時の画素位置に対して1ライン分前までの画素の範囲に前記ラベルが付与された領域があるかどうかにより行うことを特徴とする請求項1乃至4項のうちの何れか1項に記載のカメラポインタ装置。
  6. 背景と、背景以外の1つ以上のオブジェクトからなる画像データの画素に対し、有限個数のラベルからなるラベルプールから、前記オブジェクトにラベル番号を付与するラベリング方法であって、
    1回目の画像の走査で付与した仮ラベルを2回目の画像の走査で最終ラベルに置換する際に、利用する仮ラベルと最終ラベルとの対応関係を保持するラベル対応テーブルを仮ラベルと最終ラベルとが等しくなるように初期化する第1のステップと、
    前記1回目の画像の走査では、注目画素が背景でないとき、前記注目画素の周辺に仮ラベルが付与された画素がない場合に、前記ラベルプールから新しいラベルを取り出して、仮ラベルとして前記注目画素に付与する新規ラベル処理を実行する第2のステップと、
    前記注目画素の周辺に仮ラベルが付与されている場合に、前記周辺仮ラベルと前記ラベル対応テーブルから周辺最終ラベルを取得する第3のステップと、
    前記周辺最終ラベルが全て同一の場合に、前記注目画素に前記周辺最終ラベルを仮ラベルとして付与する同一ラベル処理を実行する第4のステップと、
    前記周辺最終ラベルが異なる場合に、前記周辺最終ラベルのうち1つを統合ラベルに、残りを非統合ラベルに決定し、前記注目画素に前記統合ラベルを仮ラベルとして付与すると共に、前記ラベル対応テーブルで前記非統合ラベルに対応する仮ラベルを前記統合ラベルに対応付けし直すラベル統合処理を実行する第5のステップと、
    前記2回目の画像の走査で、仮ラベルを前記ラベル対応テーブルを用い、最終ラベルへの置換を実行すると共に、前記新規ラベル処理を実行中に、前記ラベルプールのラベルを使い切った場合に、前記ラベル対応テーブルの最終ラベル毎に、各々対応する仮ラベルを付与した画素数を集計した総画素数が、所定値以下かつ前記2回目の画像の走査に伴う増加の見込みがない場合、予め定義されたノイズの認定条件を満たすものとして、最終ラベルをノイズラベルとして認識し、前記ラベル対応テーブルで前記ノイズラベルとして認識された最終ラベルに対応する仮ラベルを前記背景に相当する無効ラベルに対応付け直す第6のステップと、
    前記ラベル対応テーブルに基づき、既に付与した仮ラベルを対応する最終ラベルに置換する第7のステップと、
    前記ラベル対応テーブルで最終ラベルと異なる対応付けをされた仮ラベルを前記ラベルプールに戻す第8のステップと、
    前記ラベル対応テーブルを、仮ラベルと最終ラベルが等しくなるように初期化する第9のステップと、
    を備えたことを特徴とするラベリング方法。
  7. 背景と、背景以外の1つ以上のオブジェクトからなる画像データの画素に対し、有限個数のラベルからなるラベルプールから、前記オブジェクトにラベル番号を付与するラベリング方法をコンピュータに実行させるためのプログラムであって、
    1回目の画像の走査で付与した仮ラベルを2回目の画像の走査で最終ラベルに置換する際に、利用する仮ラベルと最終ラベルとの対応関係を保持するラベル対応テーブルを仮ラベルと最終ラベルとが等しくなるように初期化する第1のステップと、
    前記1回目の画像の走査では、注目画素が背景でないとき、前記注目画素の周辺に仮ラベルが付与された画素がない場合に、前記ラベルプールから新しいラベルを取り出して、仮ラベルとして前記注目画素に付与する新規ラベル処理を実行する第2のステップと、
    前記注目画素の周辺に仮ラベルが付与されている場合に、前記周辺仮ラベルと前記ラベル対応テーブルから周辺最終ラベルを取得する第3のステップと、
    前記周辺最終ラベルが全て同一の場合に、前記注目画素に前記周辺最終ラベルを仮ラベルとして付与する同一ラベル処理を実行する第4のステップと、
    前記周辺最終ラベルが異なる場合に、前記周辺最終ラベルのうち1つを統合ラベルに、残りを非統合ラベルに決定し、前記注目画素に前記統合ラベルを仮ラベルとして付与すると共に、前記ラベル対応テーブルで前記非統合ラベルに対応する仮ラベルを前記統合ラベルに対応付けし直すラベル統合処理を実行する第5のステップと、
    前記2回目の画像の走査で、仮ラベルを前記ラベル対応テーブルを用い、最終ラベルへの置換を実行すると共に、前記新規ラベル処理を実行中に、前記ラベルプールのラベルを使い切った場合に、前記ラベル対応テーブルの最終ラベル毎に、各々対応する仮ラベルを付与した画素数を集計した総画素数が、所定値以下かつ前記2回目の画像の走査に伴う増加の見込みがない場合、予め定義されたノイズの認定条件を満たすものとして、最終ラベルをノイズラベルとして認識し、前記ラベル対応テーブルで前記ノイズラベルとして認識された最終ラベルに対応する仮ラベルを前記背景に相当する無効ラベルに対応付け直す第6のステップと、
    前記ラベル対応テーブルに基づき、既に付与した仮ラベルを対応する最終ラベルに置換する第7のステップと、
    前記ラベル対応テーブルで最終ラベルと異なる対応付けをされた仮ラベルを前記ラベルプールに戻す第8のステップと、
    前記ラベル対応テーブルを、仮ラベルと最終ラベルが等しくなるように初期化する第9のステップと、
    をコンピュータに実行させるためのプログラム。
JP2006303867A 2006-11-09 2006-11-09 カメラポインタ装置、ラベリング方法及びプログラム Expired - Fee Related JP4872610B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006303867A JP4872610B2 (ja) 2006-11-09 2006-11-09 カメラポインタ装置、ラベリング方法及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006303867A JP4872610B2 (ja) 2006-11-09 2006-11-09 カメラポインタ装置、ラベリング方法及びプログラム

Publications (2)

Publication Number Publication Date
JP2008123090A JP2008123090A (ja) 2008-05-29
JP4872610B2 true JP4872610B2 (ja) 2012-02-08

Family

ID=39507806

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006303867A Expired - Fee Related JP4872610B2 (ja) 2006-11-09 2006-11-09 カメラポインタ装置、ラベリング方法及びプログラム

Country Status (1)

Country Link
JP (1) JP4872610B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8144123B2 (en) * 2007-08-14 2012-03-27 Fuji Xerox Co., Ltd. Dynamically controlling a cursor on a screen when using a video camera as a pointing device
JP5880106B2 (ja) * 2012-02-14 2016-03-08 豊田合成株式会社 高分子アクチュエータの取付構造
JP2014106922A (ja) * 2012-11-29 2014-06-09 Samsung R&D Institute Japan Co Ltd ポインティング装置及びポインティング装置用プログラム
JP2014110029A (ja) * 2012-12-04 2014-06-12 Samsung R&D Institute Japan Co Ltd ポインティングシステム、ポインティング方法、表示装置および電子装置

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07113971B2 (ja) * 1988-08-10 1995-12-06 三菱電機株式会社 画像処理のラベル付回路
JP2915067B2 (ja) * 1990-04-27 1999-07-05 本田技研工業株式会社 画像処理における対象領域識別方法
JPH04242867A (ja) * 1990-12-28 1992-08-31 Kawasaki Steel Corp 画像処理のラベリング処理装置
JP2716894B2 (ja) * 1990-12-28 1998-02-18 川崎製鉄株式会社 画像処理のラベル付け回路
JPH07234755A (ja) * 1994-02-25 1995-09-05 Hitachi Ltd 座標入力手段および情報処理装置
JP3135201B2 (ja) * 1995-06-29 2001-02-13 シャープ株式会社 人物口領域抽出方法および装置
JPH11345333A (ja) * 1998-06-02 1999-12-14 Nec Corp ラベリング処理システム及び方法
JP2001166881A (ja) * 1999-10-01 2001-06-22 Nikon Gijutsu Kobo:Kk ポインティング装置及びその方法
JP3686919B2 (ja) * 2000-12-06 2005-08-24 株式会社ニコン技術工房 ゲーム装置、ゲーム処理方法及び可読記憶媒体
US6731330B2 (en) * 2001-01-30 2004-05-04 Hewlett-Packard Development Company, L.P. Method for robust determination of visible points of a controllable display within a camera view
JP2004171414A (ja) * 2002-11-21 2004-06-17 Nippon Telegr & Teleph Corp <Ntt> 3次元位置姿勢入力装置、方法、プログラムおよびプログラムを記録した媒体
JP2005092592A (ja) * 2003-09-18 2005-04-07 Nec Viewtechnology Ltd プロジェクタ並びにプロジェクションシステム
JP2005165700A (ja) * 2003-12-03 2005-06-23 Tamura Seisakusho Co Ltd マークユニット

Also Published As

Publication number Publication date
JP2008123090A (ja) 2008-05-29

Similar Documents

Publication Publication Date Title
CN110163198B (zh) 一种表格识别重建方法、装置和存储介质
US6774889B1 (en) System and method for transforming an ordinary computer monitor screen into a touch screen
US6454419B2 (en) Indicated position detection by multiple resolution image analysis
JP6089886B2 (ja) 領域分割方法および検査装置
CN108604379A (zh) 用于确定图像中的区域的系统及方法
EP3100208B1 (en) Note capture and recognition with manual assist
EP3048555B1 (en) Image processing device, image processing method, and image processing program
EP3058512A1 (en) Organizing digital notes on a user interface
CN110070551B (zh) 视频图像的渲染方法、装置和电子设备
KR20100051648A (ko) 디지털 영상의 영역들을 조작하는 방법
JP2008250950A (ja) 画像処理装置、制御プログラム、コンピュータ読み取り可能な記録媒体、電子機器及び画像処理装置の制御方法
CN112135041B (zh) 一种人脸特效的处理方法及装置、存储介质
US20060067588A1 (en) Imaging apparatus, image processing method for imaging apparatus and recording medium
US20150220800A1 (en) Note capture, recognition, and management with hints on a user interface
JP4872610B2 (ja) カメラポインタ装置、ラベリング方法及びプログラム
CN110910401A (zh) 半自动化图像分割数据标注方法、电子装置及存储介质
EP2282224B1 (en) Image processing apparatus, image processing method, and computer program
CN111461070B (zh) 文本识别方法、装置、电子设备及存储介质
CN102262733B (zh) 激光点检测方法及装置
CN111176425A (zh) 多屏幕操作方法与使用此方法的电子系统
CN110874170A (zh) 一种图像区域修正方法、图像分割方法及装置
CN112258541A (zh) 视频边界检测方法、系统、设备及存储介质
WO2024055531A1 (zh) 照度计数值识别方法、电子设备及存储介质
CN112465931B (zh) 图像文本抹除方法、相关设备及可读存储介质
CN110837789B (zh) 一种检测物体的方法、装置、电子设备及介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20091106

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110526

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110531

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110801

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20111025

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20111107

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20141202

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees