A.第1実施例
A−1.システムの構成:
次に、本発明の実施の形態を実施例に基づき説明する。図1は、第1実施例における情報提供システムの構成を示すブロック図である。このシステムは、プリンタ200と、インターネット70に接続されたサーバ60と、携帯端末400と、を備えている。
プリンタ200は、CPU210と、ハードディスクドライブやフラッシュメモリなどの不揮発性記憶装置220と、RAMなどの揮発性記憶装置230と、レーザー方式のプリントエンジンである印刷実行部240と、後述する1個の操作ボタン30(図3)を含む操作部260と、後述する複数個の表示ランプ11〜15を含む表示部270と、パーソナルコンピュータ(図示省略)などの外部装置とデータ通信を行うためのインタフェースを含む通信部280と、を備えている。なお、本実施例の操作部260は、多数のボタンや、タッチパネルを備えていない。また、表示部270は、液晶ディスプレイなどの表示パネルを備えていない。各種の設定などの複雑な操作は、図示しないパーソナルコンピュータなどにインストールされたプリンタドライバを介して、実行される。
揮発性記憶装置230には、CPU210が処理を行う際に生成される種々の中間データを一時的に格納するバッファ領域231が設けられている。不揮発性記憶装置220は、プリンタ200を制御するためのコンピュータプログラム221を格納している。
コンピュータプログラム221は、例えば、プリンタ200の出荷時に予め不揮発性記憶装置220に格納されている。また、コンピュータプログラム221は、CD−ROMなどに記録された形態や、サーバからダウンロードされる形態で提供され得る。
CPU210は、コンピュータプログラム221を実行することにより、プリンタ200の全体を制御する。具体的には、CPU210は、装置制御部110と、UI制御部120として機能する。装置制御部110は、印刷実行部240を制御して、印刷処理などのプリンタ200の主たる機能を実現する。UI制御部120は、操作部260や表示部470などを用いたユーザインタフェースに関する制御、すなわち、操作部260を介した利用者からの操作の受け付けや、表示部270を介した利用者に対するプリンタ200に関連する情報の提供などを実行する。
図2は、プリンタ200の外観斜視図である。図3は、プリンタ200の特定領域100の拡大図である。図2に示すように、プリンタ200は、略直方体の筐体10を備えている。筐体10の底部には、用紙を収納する用紙トレイ18が、前方の側面から引き出し状に開閉可能に装着されている。また、筐体10の後方の側面には、開閉可能なカバー19が装着されている。カバー19は、例えば、用紙詰まりを解消する際や、トナーなどを交換する際に、開閉される。筐体10の上面10Aには、印刷原稿が排出される開口16が形成されるとともに、開口16から排出された印刷原稿が収容される排出トレイとして機能する上面部材17が組み付けられている。
さらに、筐体10の上面10Aにおける角付近の特定領域100には、図3に示すように、複数個の表示ランプ11〜15と、1個の操作ボタン30と、が配置されている。複数個の表示ランプ11〜15は、図3のY方向に沿ったランプ配置ラインLLに沿って、略等間隔に配置されている。複数個の表示ランプ11〜15は、例えば、LEDで構成され、プリンタ200の複数の装置状態、例えば、正常状態(例えば、印刷ジョブの待ち受け状態、印刷中の状態)や、エラー状態(例えば、トナー切れの状態、用紙切れの状態)を、表示するために用いられる。
複数個の表示ランプ11〜15のそれぞれの近傍、具体的には、図3の右側には(+X方向)、対応する表示ランプに関する文字の配列(以下、単に、文字列と呼ぶ)21〜25が刻印されている。すなわち、1個の表示ランプと、該1個の表示ランプに対応する文字列と、は、ランプ配置ラインLLと略垂直な方向に並んで配置されている。換言すれば、複数個の表示ランプ11〜15の対応する文字列を基準とした位置は、互いに同じである。すなわち、複数個の表示ランプ11〜15のそれぞれは、対応する文字列の左側(−X方向)に配置されている。例えば、表示ランプ11は、文字列21の左側に配置され、表示ランプ13は、文字列23の左側に配置されている。文字列21〜25は、視認性の観点から筐体10の上面10Aの色(例えば、白色)に対して、高いコントラストを有する色(例えば、黒色)に着色されている。例えば、表示ランプ11に対応する文字列21は、「Cover」であり、表示ランプ11が主としてカバー19に関する状態を表示するために用いられることを示している。
なお、プリンタの種類(機種)によって、表示ランプの個数、各表示ランプの位置およびサイズは、異なっている。例えば、表示ランプの個数は、5個(図3)に限られず、4個である機種や、3個である機種が存在する。ただし、本実施例では、複数個の表示ランプは、機種に拘わらずに、一本のランプ配置ライン(例えば、図3のラインLL)に沿って、配置されている。また、機種に拘わらずに、表示ランプと、対応する文字列と、は、ランプ配置ラインLLと垂直な方向に並んでいる。
図3に示すように、上面10Aにおける、複数個の表示ランプ11〜15と、文字列21〜25と、操作ボタン30と、が配置された領域(以下、パネル領域とも呼ぶ)の右側には、上述した上面部材17が配置されている。この結果、パネル領域と、上面部材17と、の間には、見切り線DLが現れる。
サーバ60は、周知の計算機であり、図示しないサーバプログラムを実行することにより、携帯端末400や図示しないパーソナルコンピュータなどのクライアント計算機に対して、WEBサービスを提供する。WEBサービスは、利用者に対してサポート情報を提供するサービスであり、サーバ60の記憶部65には、プリンタ200の利用者をサポートするためのサポート情報群651がWEBページの形式で格納されている。サーバ60は、例えば、プリンタ200を製品として販売した販売者によって、運営されている。
携帯端末400は、例えば、プリンタ200の利用者が所有するスマートフォンなどの多機能携帯電話である。携帯端末400は、CPU410と、フラッシュメモリなどの不揮発性記憶装置420と、RAMなどを含みバッファ領域427などに用いられる揮発性記憶装置425と、無線IF部430と、電話IF部440と、スピーカやマイクを含み電話機能などを実現するための音声処理部450と、タッチパネルや操作キーなどを含む操作部460と、タッチパネルと重畳された液晶パネルなどを含む表示部470と、イメージセンサを用いて撮像を行うカメラ490と、を主に備えている。
無線IF部430は、アンテナを含み、例えば、図示しないアクセスポイントを介した無線通信(インフラストラクチャーモードに準拠する無線通信)を行う。無線IF部430は、後述するように、携帯端末400がサーバ60にアクセスするためなどに用いられる。
電話IF部440は、アンテナを含み、基地局(図示省略)との間で携帯電話通信の方式(例えば、W−CDMA)に準拠する無線通信を行う。電話IF部440は、例えば、電話や、基地局(図示省略)を介したインターネット70への接続などを実現する。無線IF部430と同様に、電話IF部440は、携帯端末400がサーバ60にアクセスするためなどに用いられる。
カメラ490は、CCDやCMOSなどの撮像素子を用いて、撮像対象物(被写体)を表す画像データを生成・取得することができる。
不揮発性記憶装置420には、制御プログラムPG1と、情報提供プログラムPG2と、ブラウザプログラムPG3と、URL(Uniform Resource Locator)が記述されたURLテーブルDT1と、プリンタ200に関する特徴情報が記述された特徴情報テーブルDT2と、が格納されている。
制御プログラムPG1は、OS(オペレーティングシステム)の機能や、電話機能、カメラ490の制御機能、携帯端末400の基本機能を実現するプログラムである。ブラウザプログラムPG3は、WEBページを閲覧するためのWEBブラウザとしての機能を実現するプログラムである。制御プログラムPG1およびブラウザプログラムPG3は、例えば、携帯端末400の製造者によって提供され、出荷時に予め格納されている。情報提供プログラムPG2は、プリンタ200に関する情報を利用者に提供する処理を、サーバ60と協働して、実現するプログラムである。情報提供プログラムPG2は、携帯端末400に新たな機能を追加するプログラム(「アプリ」とも呼ばれる。)であり、例えば、携帯端末400の製造者とは異なる提供者(例えば、プリンタ200の製造者)によって、所定のサーバからダウンロードする形態で、提供される。また、情報提供プログラムPG2は、例えば、携帯端末400の製造者によって提供され、出荷時に予め格納されていても良い。
図4は、URLテーブルDT1の一例を示す図である。URLテーブルDT1は、後述する情報提供処理の対象となる複数種類のプリンタ(プリンタ200を含む)のそれぞれに対応する複数のテーブルDT1a〜DT1cを含んでいる。例えば、複数のテーブルDT1a〜DT1cは、プリンタの状態(ステータス)と、プリンタの状態に対応する情報を取得するために用いられるURLとが、複数個の表示ランプの表示状態と対応付けて記録されている。例えば、プリンタの特定の機種(例えば、プリンタ200)に対応するテーブルDT1aには、複数個の表示ランプ11〜15の第1の表示状態に対して、プリンタの第1の状態「トナー残 少」(トナー残量が基準値よりも少なくなった状態)と、第1のURL「http://aa...」とが対応付けられている。第1の表示状態は、表示ランプ12が「黄の点滅」であり、表示ランプ15が「緑の点灯」であり、他の表示ランプ11、13、14が「消灯」である表示状態である。また、テーブルDT1aには、複数個の表示ランプ11〜15の第2の表示状態に対して、プリンタの第2の状態「紙詰まり」(用紙が印刷実行部内の機構に詰まって印刷を実行できない状態)と、第2のURL「http://bb...」とが対応付けられている。第2表示状態は、表示ランプ11と表示ランプ14が「黄色の点滅」であり、表示ランプ15が「赤の点灯」であり、他の表示ランプ12、13が「消灯」である表示状態である。
URL(Uniform Resource Locator)は、対応するプリンタの状態(複数個の表示ランプの対応する表示状態と言うこともできる)に関係するサポート情報を含むWEBページのサーバ60内の位置を表す位置情報である。サポート情報は、例えば、エラー状態に関係する情報、具体的には、エラーの解決方法、エラーの解決に必要な消耗品(トナーや感光ドラム)に関する情報などを含む。なお、これらのサポート情報は、関係情報の例である。なお、プリンタの種類(機種)ごとにテーブルが用意されていることから解るように、プリンタの状態が同じであっても、機種が異なれば、対応するURLは異なる場合がある。例えば、機種によって、使用すべきトナーや感光ドラムの種類(品番)が異なる場合があり、エラーの解決方法も異なる場合があるからである。
特徴情報テーブルDT2(図1)は、撮像情報テーブルDTA(図5(A))と、特徴点情報テーブルDTB(図5(B))と、を含んでいる。また、特徴情報テーブルDT2は、表示状態情報テーブルDTC(図5(C))を含んでも良い。表示状態情報テーブルDTC(図5(C))を用いる例については変形例で説明する。
図5は、特徴情報テーブルDT2(図1)に含まれる各テーブルの一例を示す図である。
図5(A)には、撮像情報テーブルDTAの一例が示されている。撮像情報テーブルDTAには、情報提供処理の対象となる複数種類のプリンタのそれぞれについて、撮像情報として、撮像回数と撮像間隔とが記録されている。撮像回数および撮像間隔については、後述する自動認識処理(図8)にて説明する。
図5(B)には、特徴点情報テーブルDTBの一例が示されている。特徴点情報テーブルDTBは、情報提供処理の対象となる複数種類のプリンタのそれぞれに対応する複数のテーブルDTBa〜DTBcを含んでいる。例えば、プリンタの特定の機種に対応するテーブルDTBaには、特定領域100(図3)内の複数個の特徴点の位置を示す位置情報が記録されている。例えば、複数個の特徴点は、図5(B)に示すように、上述した見切り線DL上に配置された3個の点P1〜P3(図3)を含んでいる。これらの複数個の特徴点は、後述する撮像画像補正処理(図9、図10)において、参照される点であるので、「参照点」とも呼ぶ。
なお、プリンタの種類(機種)ごとにテーブルが用意されていることから解るように、プリンタの種類によって、これらの参照点の位置は、異なっている。ただし、本実施例では、プリンタの種類に拘わらずに、ランプ配置ライン(例えば、図3のラインLL)と平行なデザイン上の特徴的な線(例えば、図3の見切り線DL)が存在する。このために、各機種のテーブルDTBa〜DTBcには、これらのデザイン上の特徴的な線上の3個の特徴点の位置情報が記録されている。
図5(C)には、ランプの表示状態が記録された表示状態情報テーブルDTCが示されている。表示状態情報テーブルDTCは、情報提供処理の対象となる複数種類のプリンタのそれぞれに対応する複数のテーブルDTCa〜DTCcを含んでいる。例えば、プリンタの特定の機種に対応するテーブルDTCaには、複数個の表示ランプ11〜15(図3)のそれぞれが取り得る表示状態が記録されている。
1個の表示ランプの表示状態は、表示ランプの発光時の色(発光色とも呼ぶ)の観点からは、「黄」「赤」「緑」「青」の4種類のうちのいずれかである。また、1個の表示ランプの表示状態は、発光の態様の観点からは、「消灯」、「点灯」、「点滅」の3種類のうちのいずれかである。「消灯」は、表示ランプが発光していない状態が維持される表示状態である。「点灯」は、表示ランプが発光している状態が維持される表示状態である。「点滅」は、表示ランプが発光している状態と、発光していない状態が、所定間隔で繰り返される表示状態である。これらの発光色と、発光の態様と、の組合わせによって、本実施例では、9種類(「消灯」1種類、「点灯」4種類(4色)、「点滅」4種類(4色))の表示状態がある。
「消灯」は、全ての表示ランプが取り得る表示状態であるので、図5(C)の表示状態情報テーブルDTCには、記録されていない。図5(C)の表示状態情報テーブルDTCにおいて、各発光色に対応して記述された丸印は、対応する発光色について「点灯」が取り得る表示状態であることを示し、各発光色に対応して記述された二重丸の印は、対応する発光色について「点灯」と「点滅」の両方が取り得る表示状態であることを示している。また、各発光色に対応して記述されたばつ印は、対応する発光色では、「点灯」も「点滅」もしないことを示している。図5(C)に示すように、1個の表示ランプが、複数の発光色で「点灯」または「点滅」することもある(例えば、図5(C)の表示ランプ15)。なお、プリンタの種類(機種)ごとにテーブルが用意されていることから解るように、プリンタの種類によって、各表示ランプが取り得る表示状態は、異なる場合がある。
図1に戻って説明を続ける。図1のCPU410は、制御プログラムPG1を実行することによって、携帯端末400の基本機能を実現するメイン制御部55として機能し、ブラウザプログラムPG3を実行することによって、WEBブラウザ50として機能する。また、CPU410は、情報提供プログラムPG2を実行することによって、情報提供部300として機能する。
情報提供部300は、画像データ取得部310と、機種情報取得部320と、特徴情報取得部330と、文字位置推定部340と、ランプ位置推定部350と、特定部360と、識別情報取得部370と、ブラウザ制御部380と、を備えている。画像データ取得部310は、ガイド画像表示部312と、撮像画像生成部314と、を備えている。文字位置推定部340は、エッジ画像生成部345を備えている。これらの各処理については、後述する。
A−3.携帯端末400の情報提供部300の処理:
図6は、情報提供処理のフローチャートである。この情報提供処理は、例えば、情報提供プログラムPG2が利用者によって起動されたときに、情報提供部300(図1)によって実行される。利用者は、例えば、複数個の表示ランプ11〜15が、プリンタ200が特定の状態であることを示す表示状態である場合に、当該プリンタ200の特定の状態に関係する情報を取得するために、情報提供プログラムPG2を起動する。より具体的には、例えば、利用者は、プリンタ200がトナー切れなどのエラー状態であるために、複数個の表示ランプ11〜15が当該エラー状態を示す表示状態となった場合に、当該エラー状態の解決方法を詳しく知るために、情報提供プログラムPG2を起動する。
ステップS10にて、情報提供部300(情報提供プログラムPG2)が起動されて、情報提供部300が動作可能な状態になると、機種情報取得部320は、機種選択画像AI1を表示部470に表示する(ステップS20)。
図7は、情報提供部300によって表示されるUI画像の一例を示す図である。図7(A)には、機種選択画像AI1の一例が示されている。この機種選択画像AI1は、情報提供部300が対応しているプリンタの機種を識別するための機種情報(例えば、型番、製品情報とも呼ぶ)の一覧MNと、複数個の機種情報にそれぞれ対応する複数個のラジオボタンRBと、を含んでいる。利用者は、1個のラジオボタンRBをONにしたうえで、決定ボタンBT1にタッチすることによって、プリンタの機種(対象機種)を選択する。
ステップS25では、機種情報取得部320は、利用者の選択に基づいて、対象機種を識別するための機種情報(例えば、型番)を取得する。以下では、図1〜図3を参照して説明したプリンタ200が対象機種である場合を例に説明する。
ステップS30では、情報提供部300は、取得された機種情報によって識別される対象機種に応じたメイン画像AI2を、表示部470に表示する。図7(B)には、メイン画像AI2の一例が示されている。メイン画像AI2は、対象機種のプリンタ200の部分画像PIと、複数個の表示ランプ11〜15に対応する複数個のフィールドDF1〜DF5と、WEBブラウザの起動を受け付ける起動ボタンBT2と、撮像モードへの移行(すなわち、後述する自動認識処理への移行)を受け付ける撮像ボタンBT3と、機種選択ボタンBT4と、を含んでいる。機種選択ボタンBT4は、上述した機種選択画像AI1を表示して、機種選択を利用者から受け付ける機種選択モードへ移行するためのボタンであり、対象機種を変更する際に押下される。
部分画像PIは、例えば、上述した特定領域100(図3)のうち、複数個の表示ランプ11〜15が配置された部分を含む画像である。複数個のフィールドDF1〜DF5は、部分画像PIに表された複数個の表示ランプ11〜15に対応する位置、すなわち、複数個の表示ランプ11〜15の右側に、それぞれ配置されている。表示される部分画像の種類、および、表示されるフィールドの数は、対象機種によって、すなわち、ステップS25にて取得された機種情報によって、異なる。
利用者は、撮像ボタンBT3を押下して後述する自動認識処理に移行することもできる。また、利用者は、機種選択ボタンBT4を押下して、対象機種を変更することもできる。すなわち、これらの処理は利用者の選択に応じて実行される。ここでは、煩雑を避けるために、対象機種の変更は行われず、次のステップでは、利用者の操作に応じて、自動認識処理が実行されるものとして全体の処理を説明する(図6)。
ステップS35では、利用者の操作に応じて、自動認識処理が実行される。自動認識処理は、プリンタ200の特定領域100を撮像することによって生成される1個または複数個の撮像画像データを解析することによって、撮像画像内の複数個の表示ランプ11〜15の表示状態を認識(特定)する処理である。図8は、自動認識処理のフローチャートである。
図8のステップS100では、画像データ取得部310は、上述した撮像情報テーブルDTA(図5(A))を参照して、対象機種の撮像回数と、撮像間隔と、を決定する。対象機種の複数個の表示ランプの中に、取り得る表示状態に「点滅」を含む表示ランプがない場合、すなわち、取り得る表示状態が「点灯」と「消灯」のいずれかである場合には、撮像回数は1回に設定され、撮像間隔は設定されない(例えば、図5(A)の機種B)。対象機種の複数個の表示ランプの中に、取り得る表示状態に「点滅」を含む表示ランプがある場合には、撮像回数は、2回に設定され、撮像間隔は、点滅間隔と同じ間隔に設定される(例えば、図5(A)の機種A)。
本実施例では、表示ランプの「点滅」の態様は1種類であり、発光している状態と、発光していない状態とが、一定の点滅間隔(例えば、1秒)で繰り返される態様である。このために、点滅間隔と等しい間隔で、2回に亘って表示ランプを撮像すると、表示ランプが「点滅」している場合には、特定の場合を除いて、一方の撮像画像には、発光した状態の表示ランプが含まれ、他方の撮像画像には、発光していない状態の表示ランプが含まれる。この結果、2つの撮像画像から、表示ランプが「点滅」していることが判定可能である。特定の場合とは、発光の開始の瞬間と終了の瞬間とに2回の撮像が行われる場合である。この場合には、両方の撮像画像に発光した状態の表示ランプが含まれたり、両方の撮像画像に発光していない状態の表示ランプが含まれ得る。ただし、このようなケースが起こる確率は比較的低い。
ステップS150では、画像データ取得部310は、カメラ490を起動し、カメラ490を撮像可能な状態にする。画像データ取得部310のガイド画像表示部312は、このときに、表示部470に撮像用画像AI3を表示する。図7(C)には、撮像用画像AI3の一例が図示されている。撮像用画像AI3は、ガイド画像として、矩形状の枠画像BXと、図7(C)の上下方向に延びるライン画像LNと、を含んでいる。撮像用画像AI3の他の領域NAには、カメラ490が捉えている撮像対象(例えば、表示ランプ11〜15を含む特定領域100)が表示される。枠画像BXおよびライン画像LNは、カメラ490が捉えている撮像対象(例えば、表示ランプ11〜15を含む特定領域100)と重畳されて表示部470に表示される。対象枠画像BXおよびライン画像LNは、プリンタ200の特定領域100(図3)を利用者が撮像する際に、撮像対象である特定領域100内の複数個の表示ランプ11〜15が表示されるべき表示部470内の位置を、利用者に示すための画像である。利用者は、複数個の表示ランプ11〜15の全体が枠画像BX内に位置し、かつ、複数個の表示ランプ11〜15のランプ配置ラインLL(図3)と、ライン画像LNとが一致するように、特定領域100の撮像を行う。なお、図7(C)に破線で示す複数個の表示ランプ11〜15は、撮像時における複数個の表示ランプ11〜15の理想的な位置(目標位置とも呼ぶ)を示している。
ステップS200では、画像データ取得部310の撮像画像生成部314は、特定領域100を撮像することによって得られる撮像画像データを生成・取得する。例えば、撮像画像生成部314は、利用者の撮像操作(表示部470内の任意の位置の押下など)を契機に、ステップS100で決定された撮像回数分の撮像画像データを、決定された撮像間隔で生成する。生成される撮像画像データは、R、G、Bの各成分値を画素値とするビットマップデータである。
ステップS300では、情報提供部300は、後述する撮像画像補正処理(S400)、ランプ範囲推定処理(S500)、および、表示状態特定処理(S600)の処理対象とするために、生成された1個以上の撮像画像データの中から1個の撮像画像データを選択する。ステップS400では、情報提供部300は、選択された撮像画像データに対して、撮像画像補正処理を実行する。撮像画像補正処理は、特徴点情報テーブルDTB(図5(B))に記録された特徴点の位置情報を用いて、撮像画像内の被写体(具体的には、表示ランプ11〜15)を回転補正する処理である。図9は、撮像画像補正処理のフローチャートである。図10は、撮像画像補正処理の説明図である。
図10(A)には、撮像画像補整処理前の撮像画像SI、すなわち、ステップS200にて生成された撮像画像データによって表される撮像画像SIの一例が示されている。図10(A)のセンターラインCLは、撮像画像SIのX方向の中央を通り、Y方向に延びる線であり、撮像用画像AI3のライン画像LNに対応する仮想的な線である。撮像画像SI内の表示ランプ11〜15の実際の位置は、上述した目標位置(図7(C))とは異なる場合がある。例えば、図10(A)の撮像画像SIでは、複数個の表示ランプ11〜15のランプ配置ラインLLは、センターラインCLに対して傾いているので、複数個の表示ランプ11〜15の位置は、目標位置からずれている。以下に説明する撮像画像補正処理では、ランプ配置ラインLLのセンターラインCLに対する傾きが補正される。
ステップS410では、エッジ画像生成部345は、撮像画像データに対して、エッジ抽出処理を実行して、エッジ画像EIを表すエッジ画像データを生成する。エッジ画像データは、撮像画像データに含まれる各画素値(RGB値)を輝度値Yに変換し、輝度値Yに対して公知のsobelフィルタを適用して得られる。なお、エッジ画像データの生成には、Sobelフィルタに限らず、Prewittフィルタ、Robertsフィルタなど種々のエッジ抽出フィルタが利用できる。
図10(B)には、エッジ画像データによって表されるエッジ画像EIの一例が示されている。エッジ画像EIには、文字列21〜25のエッジ21e〜25eと、見切り線DLのエッジDLeと、操作ボタン30の外縁のエッジ30eと、が比較的明確に現れる。一方、エッジ画像EIには、複数個の表示ランプ11〜15のエッジは、明確に現れない場合がある。例えば、表示ランプ11〜15のうちの点灯しているランプのエッジは、ランプの光によるフレア(ランプの光がランプの周辺に広がって写る現象)によって、明確に現れない場合がある。表示ランプ11〜15のうちの消灯しているランプの色は、文字列21〜25と比較すると、周囲(背景)の色とのコントラストが低いために、消灯しているランプのエッジは、明確に現れない場合がある。
ステップS420では、特定部360は、見切り線DLに対応するエッジ画像EI内のエッジDLe上に3個の特徴点Pe1〜Pe3(図10(B))の座標を算出する。具体的には、情報提供部300は、エッジ画像データを解析することによって、エッジ画像EI内の線状のエッジDLeを特定する。エッジDLeの特定は、周知の直線検出アルゴリズム(例えば、Hough変換など)を用いて実行される。そして、情報提供部300は、検出されたエッジDLeの上端部と中央部と下端部にそれぞれ1個ずつ、計3個の特徴点Pe1〜Pe3を設定し、これらの座標を算出する。
ステップS430では、特定部360は、エッジ画像EI上で算出された3個の特徴点Pe1〜Pe3と、対応する3個の参照点とに基づいて、回転補正量θを算出する。3個の参照点は、特徴点情報テーブルDTBのうちの対象機種のテーブル(図7)に記録された対応する3個の特徴点(参照点)P1〜P3(図3)である。具体的には、特徴情報取得部330は、特徴点情報テーブルDTBのうちの対象機種のテーブルから、3個の参照点P1〜P3の位置情報を取得する。情報提供部300は、3個の特徴点Pe1〜Pe3を結ぶ直線と、3個の参照点P1〜P3を結ぶ直線と、の間の角度を、回転補正量θとして算出する。
ステップS440では、特定部360は、ステップS430にて算出された回転補正量θに従って、エッジ画像EIを回転させる回転補正を実行する。図10(C)には、回転補正後のエッジ画像EI2が示されている。図10(C)のエッジ画像EI2は、3個のPe1〜Pe3が位置するエッジDLeがY方向と平行になるように、補正されていることが解る。この結果、エッジ画像EI2内のランプ配置ラインLLは、センターラインCLと平行になる。
ステップS450では、特定部360は、ステップS430にて算出された回転補正量θに従って、撮像画像SIを回転させる回転補正を実行する。図10(D)には、補正後の撮像画像SI2が示されている。エッジ画像EI2(図10(D))と同様に、図10(D)の撮像画像SI2内のランプ配置ラインLLは、センターラインCLと平行になる。
撮像画像補正処理が終了すると、すなわち、補正後のエッジ画像EI2を表すエッジ画像データと、補正後の撮像画像SI2を表す撮像画像データとが生成されると、図8のステップS500では、情報提供部300は、ランプ範囲推定処理を実行する。図11は、ランプ範囲推定処理のフローチャートである。図12は、ランプ範囲推定処理および表示状態特定処理の説明図である。
ステップS510では、文字位置推定部340のエッジ画像生成部345は、補正後のエッジ画像EI2を縮小する縮小処理を実行して、縮小エッジ画像MEIを表す縮小エッジ画像データを生成する。具体的には、文字位置推定部340は、平均画素法を用いて、エッジ画像EI2のX方向の画素数およびY方向の画素数をそれぞれ(1/10)から(1/20)程度まで減少させることによって、縮小エッジ画像データを生成する。縮小率は、エッジ画像EI2内の文字列のエッジ21e〜25eの文字高さ(Y方向の画素数)が、2画素から5画素分の長さになるように、設定されている。
図12(A)には、縮小エッジ画像MEIの一例が示されている。縮小エッジ画像MEIは、縮小率が高いので、縮小エッジ画像MEI内において、エッジ画像EI2内の複数個の文字のエッジ21e〜25eに対応する複数個の文字領域TE1〜TE5は、文字を判別できないほど粗くなる。図12(A)では、図の煩雑を避けるために、文字領域TE1〜TE5以外の画素の図示は省略されている。また、図12(A)には、エッジ画像EI2の文字のエッジ21e〜25eが参考として示されている。文字のエッジ21e〜25eは、参考として示されたものであり、縮小エッジ画像MEIに、文字が判別できるエッジが現れるわけではない。エッジ画像EI2の文字のエッジ21e〜25eが配置される領域は、画素値(エッジ量)が比較的高い画素が密集しているので、文字領域TE1〜TE5内の画素は、周囲の領域(背景領域とも呼ぶ)と比較して、画素値が大きくなる。
ステップS515では、文字位置推定部340は、文字検出ラインTL上の注目画素P(Y)の座標値Yを初期値「0」に設定する。文字検出ラインTLは、センターラインCLと平行なライン、すなわち、Y方向に沿ったラインであり、センターラインCLとの距離が所定値Hであるラインである(図12(A))。センターラインCLは、表示ランプ11〜15が配置されているランプ配置ラインLLとほぼ一致している(図10(D))ので、文字検出ラインTLは、ランプ配置ラインLLとの距離がほぼ所定値Hであるラインと言うことができる。所定値Hは、文字検出ラインTLが、文字領域TE1〜TE5を通るように、設定されている。最初の注目画素P(0)は、文字検出ラインTL上の画素のうち、−Y方向の端の画素(図12(A)の上端の画素)である。
文字位置推定部340は、注目画素P(Y)の画素値V(Y)と所定の閾値THとを比較し(ステップS520)、画素値V(Y)が所定の閾値THより大きいか否かを判断する(ステップS525)。文字位置推定部340は、画素値V(Y)が所定の閾値THより大きい場合には(ステップS525:YES)、推定フラグを「ON」にする(ステップS530)。閾値THは、文字領域TE1〜TE内の画素が取り得ると推定される画素値(例えば、比較的最大値(例えば255)に近い値)と、背景領域内の画素が取り得ると推定される画素値(例えば、比較的最小値(例えば0)に近い値)と、の中間の値(例えば、取り得る範囲の50%程度の値(例えば128))に設定されている。したがって、推定フラグが「ON」にされることは、注目画素P(Y)は、文字領域TE1〜TE5を構成する画素であると推定されたこと、すなわち、文字列21〜25が配置されている領域内の画素であると推定されたことを意味している。
文字位置推定部340は、画素値V(Y)が所定の閾値TH以下である場合には(ステップS525:NO)、推定フラグを「OFF」にする(ステップS535)。推定フラグが「OFF」にされることは、注目画素P(Y)は、背景領域を構成する画素であると推定されたこと、すなわち、文字列21〜25が配置されている領域内の画素ではないと推定されたことを意味している。
ステップS540では、文字位置推定部340は、推定フラグの値(「ON」または「OFF」)が、現在の推定フラグの値が、前回の推定フラグの値と異なるか否かを判断する。現在の推定フラグは、現在の注目画素(Y)について設定された推定フラグであり、前回の推定フラグは、前回の注目画素P(Y−1)について設定された推定フラグである。なお、注目画素が、最初の注目画素P(0)である場合には、前回の推定フラグはないが、前回の推定フラグは「OFF」であるとして、判断される。
現在の推定フラグの値と現在の推定フラグの値が異なる場合には(ステップS540:YES)、文字位置推定部340は現在の推定フラグは「ON」であるか否かを判断する(ステップS545)。
現在の推定フラグが「ON」である場合には(ステップS545:YES)、すなわち、前回の推定フラグが「OFF」であり、かつ、現在の推定フラグが「ON」である場合には、文字位置推定部340は、現在の注目画素P(Y)の座標値Yを、ピーク開始位置に決定する(ステップS550)。現在の推定フラグが「OFF」である場合には(ステップS545:NO)、すなわち、前回の推定フラグが「ON」であり、かつ、現在の推定フラグが「OFF」である場合には、文字位置推定部340は、現在の注目画素P(Y)の座標値Yを、ピーク終了位置に決定する(ステップS555)。
現在の推定フラグと現在の推定フラグとが同じ値である場合には(ステップS540:NO)、文字位置推定部340は、上記のステップS545〜555をスキップして、ステップS560に処理を進める。
ステップS560では、文字位置推定部340は、注目画素P(Y)の座標値Yをインクリメントする(Yに1を加算する)。ステップS560では、文字位置推定部340は、座標値Yが、座標値Yが取り得る値の最大値Ymaxより大きいか否かを判断する。Ymaxは、縮小エッジ画像MEIのY方向の端の座標値である。図12(A)には、座標値YがYmaxである文字検出ラインTL上の画素P(Ymax)が図示されている。
座標値Yが最大値Ymax以下である場合には(ステップS565:NO)、すなわち、文字検出ラインTL上の全ての画素を処理していない場合には、文字位置推定部340は、ステップS520に戻って、上述したステップS520〜S560の処理を繰り返す。座標値Yが最大値Ymaxより大きい場合には(ステップS565:YES)、すなわち、文字検出ラインTL上の全ての画素を処理した場合には、文字位置推定部340は、ランプ範囲推定処理を終了する。
図12(B)には、ランプ範囲推定処理の結果が図示されている。図12(B)の例では、0〜Ymaxまでの座標範囲に、縮小エッジ画像MEI内の5個の文字領域TE1〜TE5に対応する5個のピークPk1〜Pk5が検出されている。1個のピークの開始位置から終了位置までの座標値Yの範囲が、1個の文字領域のY方向の範囲を示している。例えば、図12(B)では、表示ランプ11に対応するピークPk1の開始位置PS1と、終了位置PE1とが図示されている。1個の文字領域のY方向の範囲は、1個の表示ランプのY方向の範囲と推定される。本実施例では、図3に示すように、複数個の表示ランプ11〜15のそれぞれ(例えば、表示ランプ11)と、対応する文字列21〜25のそれぞれ(例えば、文字列21)とは、X方向に沿って並んでいる、すなわち、Y方向の位置(座標値)が同じであるからである。すなわち、本実施例では、縮小エッジ画像MEIを用いて、文字列21〜25に対応する文字領域TE1〜TE5のY方向の範囲を推定することは、縮小エッジ画像MEIや縮小撮像画像MSIにおける複数個の表示ランプ11〜15のY方向の範囲を推定することに等しい。
ランプ範囲推定処理が終了すると、図8のステップS600では、表示状態特定処理を実行する。表示状態特定処理は、補正後の撮像画像SI2(図10(D))を表す画像データを解析することによって、撮像画像SI2内の複数個の表示ランプ11〜15のそれぞれの表示状態、具体的には、発光の色(黄、赤、青、緑)を特定する処理である。図13は、表示状態特定処理のフローチャートである。
ステップS610では、特定部360は、補正後の撮像画像SI2を縮小する縮小処理を実行して、縮小撮像画像MSIを表す縮小撮像画像データを生成する。具体的には、特定部360は、図11のステップS510で縮小エッジ画像データを生成する際と同様に、平均画素法を用いて、縮小撮像画像データを生成する。縮小率は、図11のステップS510で縮小エッジ画像データを生成する際と同じ縮小率が用いられる。この結果、縮小エッジ画像MEIのサイズ(縦横の画素数)と、縮小撮像画像MSIのサイズとは、同じになる。図12(C)には、縮小撮像画像MSIの一例が図示されている。図12(C)では、図の煩雑を避けるために、後述するランプ範囲内の画素以外の画素の図示は省略されている。
ステップS615では、特定部360は、センターラインCLの先頭画素Pa(0)の値(RGB値)を用いて、明度の閾値Vthと、彩度の閾値Sthを算出する。先頭画素Pa(0)は、文字検出ラインTL上の画素のうち、−Y方向の端の画素(図12(A)の上端の画素)である。先頭画素Pa(0)は、図12(C)に図示されているように、縮小撮像画像MSIにおける表示ランプ11a〜15aが配置された領域内の画素とは異なる画素であり、プリンタ200の筐体10の領域、すなわち、表示ランプ11a〜11dや文字のエッジ21e〜25eが配置されていない領域内の画素である。縮小撮像画像MSIの1個の画素の値は、縮小前の撮像画像SI2の対応する複数個の画素の値の平均値である。したがって、先頭画素Pa(0)の値は、縮小前の撮像画像SI2における、筐体10を表す所定領域内の画素の値の平均値である。特定部360は、RGB色空間の表色値をHSV色空間の表色値に変換する変換式(1)を用いて、先頭画素Pa(0)の画素の値(RGB値)によって表される色の明度と彩度を、明度の閾値Vthと彩度の閾値Sthとして、算出する。なお、変換式(1)において、MAXは、RGBの3個の成分値のうちの最大値を表し、MINは、RGBの3個の成分値のうちの最小値を表す。
筐体10の色には、発光していない表示ランプの色(具体的には、濃いグレー)と比較して、彩度および明度のうちの少なくとも一方が高い色(例えば、白、うすいグレー)が用いられている。また、筐体10の色には、発光している表示ランプの色(緑、赤、黄など)と比較して、彩度が低い色が用いられている。また、発光している表示ランプの色は、発光していない周囲部分(筐体10を含む)の色と比較して、明度が高くなることは明らかである。このために、筐体10の色を基準として、後述するように、筐体10の色の彩度および明度を閾値として、表示ランプが発光しているか否かを適切に判定することができる。また、筐体10の色の彩度および明度を予め算出して機種ごとに記憶しておくことも考えられるが、撮像画像内の表示ランプや、筐体の色は、撮像が行われる部屋の明るさや、カメラの特性などの撮像条件によって変動し得る。このために、撮像画像内の筐体の色を用いて、彩度や明度の閾値を算出することで、表示ランプが発光しているか否かを精度良く判定することができる。
ステップS620では、特定部360は、ランプ範囲推定処理にて検出された複数個のピークの中から、先頭画素(Y座標値が最少の画素)に近い順で処理対象のピークを選択する。図12の例では、図12(B)に示す5個のピーク5個Pk1〜Pk5のうちのまずPk1が選択され、処理が進むに従い、Pk2、Pk3・・・と順次に選択される。
ピークの選択後、ステップS625では、ランプ位置推定部350は、選択されたピークに対応するランプ範囲を決定(推定)する。上述したように、1個のピークの開始位置から終了位置までの座標値Yの範囲は、1個の表示ランプのY方向の範囲と推定できる。また、センターラインCLは、表示ランプ11〜15が配置されているランプ配置ラインLLとほぼ一致している(図10(D))。このため、センターラインCLのX座標と、ピークの開始位置から終了位置までの座標値Yと、によって規定される座標の画素に対応する領域が、ランプ範囲と推定される。より具体的には、ランプ位置推定部350は、センターラインCL上の複数個の画素のうち、選択されたピークの開始位置から、選択されたピークの終了位置までのY座標の複数個の画素に対応する領域を、ランプ範囲と推定する。例えば、センターラインCLのX座標が「Xmid」であり、ピークの開始位置のY座標がY1S、ピークの終了位置がY1Eとすると、座標(Xmid、Y1S)から、座標(Xmid、Y1E)までの(Y1E−Y1S+1)個の画素に対応する領域がランプ範囲と推定される。換言すれば、文字領域TE1〜TE5を通り、これら文字領域における文字の配列方向(X方向)に沿った、ピークの開始位置から終了位置までの幅を持ったライン(文字配列ライン)PL1〜PL5と、センターラインCLとの重なる領域が、表示ランプの位置する範囲であると推定される。図12(C)において、JP1からJP5は、表示ランプの位置を示している。
ステップS630では、特定部360は、縮小撮像画像MSIにおいて、ランプ範囲内の複数個の画素の値(RGB値)の平均値を、RGBの3個の成分のそれぞれについて算出する。
ステップS635では、特定部360は、RGBの3個の成分の平均値(Rave、Gave、Bave)に基づいて、処理対象の表示ランプの色の明度Vaと、彩度Saと、色相Haと、を算出する。具体的には、特定部360は、上述した変換式(1)を用いて、3個の成分の平均値(Rave、Gave、Bave)によって表される色の明度Vaと、彩度Saと、色相Haと、を算出する。
ステップS640では、特定部360は、処理対象の表示ランプの彩度Saが彩度の閾値Sth以上であり、かつ、処理対象の表示ランプの明度Vaが明度の閾値Vth以上であるか否かを判断する。
彩度Saが閾値Sth未満である、あるいは、明度Vaが閾値Vth未満である場合には(ステップS640:NO)、特定部360は、処理対象のピークに対応する表示ランプは、発光していないと判定する(ステップS650)。一方、彩度Saが閾値Sth以上であり、かつ、明度Vaが閾値Vth以上である場合には(ステップS640:YES)、特定部360は、処理対象のピークに対応する表示ランプは、発光していると判断して、ステップS645を実行する。
ステップS645では、特定部360は、処理対象の表示ランプの色相Haに基づいて、処理対象の表示ランプの発光色を判定する。具体的には、図13に示すように、特定部360は、発光色ごとに規定された色相範囲を参照して発光色を判定する。色相Haが、50<Ha≦70の範囲内である場合には、発光色は黄色であると判定され、70<Ha≦200の範囲内である場合には、発光色は緑色であると判定される。また、色相Haが、200<Ha≦300の範囲内である場合には、発光色は青色であると判定され、300<Ha≦360または0<Ha≦50の範囲内である場合には、発光色は赤色であると判定される。
ステップS655では、特定部360は、検出された全てのピークを選択したか否かを判断する。未選択のピークがある場合には(ステップS655:NO)、特定部360は、ステップS620に戻って、未選択のピークを処理対象として選択して、上述したステップS625〜S650までの処理を繰り返す。全ての表示ランプを処理した場合には(ステップS655:YES)、特定部360は、表示状態特定処理を終了する。
表示状態特定処理が終了すると、図8のステップS700では、特定部360は、全ての撮像画像を処理したか否かを判断する。未処理の撮像画像がある場合には(ステップS700:NO)、特定部360は、ステップS300に戻って、未処理の撮像画像を処理対象として、上述したステップS300〜S600までの処理を繰り返す。全ての撮像画像を処理した場合には(ステップS700:YES)、特定部360は、ステップS800に処理を移行する。
ステップS800では、特定部360は、撮像画像を用いた特定結果に基づいて、複数個の表示ランプのそれぞれについて、最終的な表示状態を特定する。具体的には、撮像画像が1個である場合には、特定部360は、該1個の撮像画像を用いた特定結果を、そのまま最終的な特定結果に採用する。撮像画像が2個である場合には、特定部360は、2個の撮像画像を用いた2個の特定結果に基づいて、最終的な特定結果を決定する。例えば、図8内に表で示すように、対象の表示ランプについて、1番目の撮像画像(画像Aと呼ぶ)を用いた特定結果と、2番目の撮像画像(画像Bと呼ぶ)を用いた特定結果との両方が「発光」である場合には、対象の表示ランプの表示状態は、「点灯」であると特定される。また、画像Aを用いた特定結果と、画像Bを用いた特定結果との両方が「発光していない」である場合には、対象の表示ランプの表示状態は、「消灯」であると特定される。また、画像Aと画像Bのうちの一方の画像を用いた特定結果が「発光」であり、他方の画像を用いた特定結果が「発光していない」である場合には、対象の表示ランプの表示状態は、「点滅」であると特定される。全ての表示ランプの最終的な特定結果が決定されると、自動認識処理は終了される。
自動認識処理が終了すると、図6のステップS40では、情報提供部300は、自動認識処理によって特定された表示ランプの表示状態を表示部470に表示する。図7(D)には、自動認識処理後のメイン画像AI4の一例が示されている。図7(D)の例では、複数個の表示ランプ11〜15に対応する複数個のフィールドDF1〜DF5のそれぞれに、表示ランプの表示状態(特定結果)が表示されていることが解る。さらに、メイン画像AI4内の部分画像PI2では、表示ランプの画像(例えば、図7(D)の表示ランプ12、15の画像)が、表示ランプの表示状態(特定結果)に応じて更新されている。
情報表示指示を受け付けられる(ステップS50)と、すなわち、メイン画像AI4において、利用者によって起動ボタンBT2が押下されると、識別情報取得部370は、特定された表示ランプの表示状態と、対象機種と、に基づいて、識別情報としてのURLを取得する(ステップS55)。具体的には、識別情報取得部370は、URLテーブルDT1のうちの対象機種のテーブル(図4)を参照して、特定された表示ランプの表示状態に対応付けられたURLを取得する。例えば、図4のテーブルDT1aが参照される場合であって、図3に示す複数個の表示ランプ11〜15の特定された表示状態が、「消灯」「黄の点滅」「消灯」「消灯」「緑の点灯」である場合には、URLとして「http://aa...」が取得される。
ステップS60では、ブラウザ制御部380は、ブラウザプログラムPG3(図1)をCPU410に実行させることによってWEBブラウザ50(図1)を起動して、ステップS50で取得されたURLをWEBブラウザ50に渡す。
ステップS65では、WEBブラウザ50は、ブラウザ制御部380から取得したURLに基づいて、サポート情報をサーバ60から取得する。ステップS70では、WEBブラウザ50は、取得されたサポート情報を表示部470に表示する。換言すれば、出力制御部370ブラウザ制御部370は、WEBブラウザ50を用いて、関係情報としてのサポート情報を取得するとともに、WEBブラウザ50を用いて、取得されたサポート情報を表示部470に表示する。
図14は、サポート情報の表示画像AI5の一例である。この表示画像AI5は、サーバ60が提供する複数のWEBページのうち、特定された表示ランプの表示状態によって示される対象機種の特定の状態に対応するサポート情報を含むページの画像である。このページは、図14に示すように、対象機種が特定の状態になった場合に、対象機種の利用者が参考とすることを想定して作成されたページである。図14に例示されたページは、トナーの残量が基準値より少なくなった状態に対応するページであり、当該状態の説明、および、トナーの交換方法や購入方法などの対処方法を含むメッセージMSを含んでいる。
以上説明した本実施例によれば、情報提供部300は、図11のランプ範囲推定処理において、撮像画像データによって表される撮像画像の文字の位置(図12(B)のピークPk1〜Pk5に対応するY方向の位置)を推定している。そして、情報提供部300では、図13の表示状態特定処理において、推定された文字の位置を基準として、撮像画像内の表示ランプの位置((図12(C)の画素群JP1〜JP5の位置))を推定している。上述したように、筐体10上の文字の色には、読みやすさを確保するために、背景(筐体10の文字が配置されていない領域)の色に対するコントラストが高い色が用いられる。このために、撮像画像内のエッジを検出することによって、容易に文字の位置を推定することができる。これに対して、表示ランプの発光していない時の表示ランプの領域内の色は周囲の色に対するコントラストが低い場合があり、表示ランプの発光時の色は、フレアの影響で周囲にまで広がる場合がある。このために、表示ランプそのものをエッジ抽出等の画像処理によって推定することは比較的困難な可能性がある。本実施例では、比較的推定が容易な文字の位置を基準にして、表示ランプの位置を推定することによって、表示ランプの位置を精度良く推定することができる。
さらに、情報提供部300は、推定された文字の位置と、撮像時に表示部470に表示されるガイド画像に対応する撮像画像内の位置と、を基準として、表示ランプの位置を推定している(図13)。この結果、表示ランプの位置の推定精度を、さらに、向上することができる。具体的には、情報提供部300は、表示ランプのY方向の位置(Y座標)には、文字のY方向の位置として推定されるピークPk1〜Pk5(図12(B))の位置を採用する。そして、情報提供部300は、表示ランプのX方向の位置(X座標)には、ガイド画像としてのライン画像LN(図7(C))に対応する縮小撮像画像MSI内のセンターラインCL(図12(C))の位置を採用している。換言すれば、情報提供部300は、文字列21〜25のそれぞれに沿った文字配列ライン(ピークに対応するY座標を通り、X方向に平行なライン)と、センターラインCLと交点を、表示ランプの位置として推定している。このように、表示ランプに関する文字列が、表示ランプに隣接して配置される慣例を利用して、表示ランプの位置のさらに精度良く推定することができる。
また、情報提供部300は、センターラインCLと平行な、言い換えれば、ランプ配置ラインLLと平行な文字検出ラインTLに沿った縮小エッジ画像MEIの画素値の変化に基づいて、文字の位置(ピークPk1〜Pk5の位置)を決定している(図11)。縮小エッジ画像MEIは、撮像画像SIの明度の変化を強調するためにエッジ抽出処理が施されたエッジ画像EIに基づく画像であるので、情報提供部300は、文字検出ラインTLに沿った撮像画像の明度の変化に基づいて、文字の位置を決定していると言うことができる。この結果、文字の位置を適切に決定することができる。
さらに、情報提供部300は、エッジ画像EI2を縮小して得られる縮小エッジ画像MEI内の文字検出ラインTL上の複数個の画素のうちの、閾値TH以上の値を有する画素の位置と、閾値TH未満の値を有する画素の位置と、に基づいて、文字の位置(ピークPk1〜Pk5の位置)を決定している(図11)。縮小前のエッジ画像EI2は、文字がはっきりと認識できる程度の解像度を有しているので、文字の種類や形状に応じて、文字領域内においても画素値(エッジ量)が大きく変動する。また、文字領域以外の領域にも様々なノイズ(局所的に画素値が大きくなる画素)が発生し得る。このために、縮小前のエッジ画像EI2内の画素を、文字領域に対応する画素と、文字領域以外の領域に対応する画素とを、適切に分離できる閾値THの設定は、比較的困難である。また、画素値と閾値THとの単純な比較では、これらの画素を適切に分離できない可能性がある。平均画素法を用いて縮小された縮小エッジ画像MEIでは、縮小前のエッジ画像EI2内においてエッジが密集している文字領域に対応する画素の値が平均的に大きくなる。また、縮小エッジ画像MEIでは、文字領域以外の領域に対応する画素の値が平均的に小さくなるとともに、文字領域以外の領域内のノイズが低減される。この結果、画素値と閾値THとの単純な比較によって、文字領域に対応する画素と、文字領域以外の領域に対応する画素とを、適切に分離できる。また、縮小エッジ画像MEIや縮小撮像画像MSIを用いることによって、処理すべき画素数を大幅に減らすことができるので、処理負荷の低減および処理に必要なメモリなどのリソースの低減を実現することができる。
さらに、情報提供部300は、表示ランプの表示状態に「点滅」が含まれる場合には、第1の撮像画像データと、第1の撮像画像データが撮像されてから所定時間後に撮像される第2の撮像画像データとを取得する。そして、情報提供部300は、これらの撮像画像データを解析することによって、点滅状態を含む前記表示ランプの表示状態を特定する。この結果、「点滅」を含む表示ランプの表示状態を適切に特定することができる。ここで、図5(A)の撮像情報テーブルDTAに示すように、上記の所定時間(撮像間隔)は、機種に応じて適切な時間が用いられる。すなわち、対象のプリンタが、第1種のプリンタである場合には、第1の所定時間が用いられ、対象のプリンタが、第2種のプリンタである場合には、第2の所定時間が用いられる。この結果、プリンタの機種に応じて、精度良く表示ランプの表示状態を特定することができる。また、図5(A)の撮像情報テーブルDTAに示すように、機種ごとに定められた適切な個数の撮像画像データが取得される。この結果、動画などの多数の撮像画像データを取得して解析する場合と比較して、解析負荷を抑制することができる。
さらに、情報提供部300は、撮像画像補正処理(図9)を実行して、撮像画像内の表示ランプの位置を補正する。これに、ランプ配置ラインLLとセンターラインCLとをほぼ平行にすることができる。この結果、ランプ範囲推定処理(図11)および表示状態特定処理(図13)において、ランプ範囲内の画素を精度良く推定することができる。例えば、撮像時における利用者の手振れなどによって、撮像画像SI内のランプ配置ラインLLが傾いていたとしても、表示ランプの表示状態を精度良く特定することができる。
B.変形例:
(1)上記実施例の情報提供処理では、識別情報取得部370は、携帯端末400の不揮発性記憶装置420に格納されたURLテーブルDT1からURLを取得しているが、これに代えて、サーバ60からURLを取得しても良い。具体的には、図6の情報提供処理において、ステップS55に代えて、ステップS52A〜S56Aが実行されても良い。ステップS52Aでは、識別情報取得部370は、特定された表示ランプの表示状態と、対象機種と、に基づいて、対象機種のプリンタの状態を取得する。例えば、識別情報取得部370は、URLテーブルDT1のうちの対象機種のテーブル(図4)を参照して、特定された表示ランプの表示状態に対応付けられたプリンタの状態を取得する。例えば、図4のテーブルDT1aが参照される場合であって、図3に示す複数個の表示ランプ11〜15の特定された表示状態が、「消灯」「黄の点滅」「消灯」「消灯」「緑の点灯」である場合には、プリンタの状態として「トナー残 少」が取得される。ステップS54Aでは、識別情報取得部370は、プリンタの状態を示す状態情報と、対象機種を示す機種情報と、をサーバ60に対して送信する。サーバ60は、受信した状態情報と機種情報との組合わせに対応するURLを携帯端末400に対して返信する。ステップS56Aでは、識別情報取得部370は、サーバ60から、対応するURLを取得(受信)する。この場合には、サーバ60において、サーバの管理者がサポート情報を提供するWEBページを更新することによって、URLが変更されても、携帯端末400は、問題なくサポート情報を取得することができる。なお、URLの取得元となるサーバと、サポート情報の取得元となるサーバとは、異なっても良い。
(2)上記実施例では、撮像回数は、1回または2回であるが、表示ランプが取り得る表示状態に応じて、異なる回数であっても良い。図15は、変形例における表示ランプの表示状態と撮像条件について説明する図である。変形例における表示ランプは、複数の点滅状態を含む複数の表示状態、具体的には、「点灯」「消灯」「第1の点滅」「第2の点滅」の4種類の表示状態を取り得る。「点灯」「消灯」は、第1実施例における同名の表示状態と同じである。「第1の点滅」は、第1の間隔LT1で、発光している状態と、発光していない状態とが繰り返される表示状態である。図15(A)に示すように、「第2の点滅」は、第2の間隔LT2で、発光している状態と、発光していない状態とが繰り返される表示状態である。第1の間隔LT1は、第2の間隔LT2より2倍以上長い。
この場合には、これらの4種類の表示状態を判断するために、特に、2種類の点滅状態を適切に判断するために、撮像間隔は、最小の点滅間隔、図15の例では、第2の間隔LT2に設定される。そして、撮像回数Kは、撮像間隔(=最小の点滅間隔)のK倍の時間が、少なくとも最長の点滅間隔、図15の例では、第1の間隔LT1より長くなるように設定される。図15の例では、(LT2×3)>LT1>(LT2×2)であるので、撮像回数は、少なくとも3以上に設定される。図15(B)には、撮像間隔が第2の間隔LT2に設定され、撮像回数が3回に設定されている場合に、3個の撮像画像A〜Cを解析して得られる特定結果に基づいて、最終的な特定結果の決定する方法が示されている。3個の撮像画像A〜Cは、この順序(アルファベット順)で撮像されたものとする。
具体的には、3個の撮像画像A〜Cの全てが「発光」である場合には、対象の表示ランプの表示状態は、「点灯」であると特定される。また、3個の撮像画像A〜Cの全てが「発光していない」である場合には、対象の表示ランプの表示状態は、「消灯」であると特定される。また、3個の撮像画像A〜Cに、「発光」である画像と、「発光していない」である画像と、の両方が含まれる場合には、対象の表示ランプの表示状態は、「第1の点滅」か「第2の点滅」のいずれかに特定される。すなわち、3個の撮像画像A〜Cを時系列に並べた場合に、「発光」である画像と、「発光していない」である画像と、が交互に並ぶ場合には、対象の表示ランプの表示状態は、「第2の点滅」であると特定される。また、3個の撮像画像A〜Cを時系列に並べた場合に、「発光」である画像が連続して2個並ぶ場合、または、「発光していない」である画像が連続して2個並ぶ場合には、対象の表示ランプの表示状態は、「第1の点滅」であると特定される。
このように、撮像回数は、機種ごとに異なる表示ランプが取り得る表示状態に応じて、1以上の各種の値に設定されても良い。一般的に言えば、対象のプリンタが、第1種のプリンタである場合には、N個(Nは、1以上の整数)の撮像画像データが取得され、N個の撮像画像データの解析によって、撮像画像内の表示ランプの表示状態が特定され、対象のプリンタが、第2種のプリンタである場合には、M個(Mは、N<Mの整数)の撮像画像データが取得され、M個の前記撮像画像データの解析によって、撮像画像内の表示ランプの表示状態が特定されても良い。
(3)上記各実施例は、製品の例示としてプリンタをあげているが、これに代えて、他の電子機器、例えば、プリント機能とスキャナ機能を備えるスキャナ、単体のスキャナなどの他の電子機器であっても良い。
(4)上記実施例では、図3に示すように、表示ランプ11〜15の右側(+X方向)に、対応する文字列21〜25が配置されているので、推定された文字列の位置の左側(−X方向)に表示ランプが位置していると推定されているが、これに限られない。例えば、表示ランプ11〜15の上側(−Y方向)や左側(−X方向)に、対応する文字列21〜25が配置されている場合には、推定された文字列の位置の下側(+Y方向)や右側(+X方向)に表示ランプが位置していると推定しても良い。一般的には、推定された文字列の位置を基準にして、表示ランプの位置が推定されれば良い。
(5)なお、撮像画像補正処理は省略されても良い。すなわち、補正前のエッジ画像EIを縮小して得られる縮小エッジ画像MEIを用いて、ランプ範囲推定処理が実行されても良く、補正前の撮像画像SIを縮小して得られる縮小撮像画像MSIを用いて、表示状態特定処理が実行されても良い。また、回転補正を実行する撮像画像補正処理に加えて、エッジ画像EIや撮像画像SIをX方向に平行に移動させる補正処理が実行されても良い。具体的には、回転補正によって、センターラインCLと平行にされたランプ配置ラインLLのX方向の位置が、センターラインCLと一致するように、エッジ画像EIや撮像画像SIの全体を移動させる補正処理が実行されても良い。
(6)また、表示状態情報テーブルDTCに記録された各表示ランプが取り得る表示状態の情報(図5(C))は、上記実施例では、使用されていない。これらの表示状態情報は、機種ごとに異なる特徴情報として、撮像画像データの解析に用いられても良い。例えば、表示状態特定処理によって特定された表示ランプの表示状態が、表示状態情報(図5(C)に規定される情報)によって示された取り得る表示状態と異なる場合には、解析の結果が誤りである可能性が高い。この場合には、例えば、情報提供部300は、判定に用いる複数個の画素(図12(C)の画素群JP1〜JP5)を、X方向の位置(X座標)が1画素分だけ異なる別の複数個の画素に変更して、表示ランプの表示状態の判定を再び実行しても良い。この場合には、撮像画像SI2内のランプ配置ラインLLが、センターラインCLからずれている場合であっても、表示ランプの表示状態を適切に特定することができる。
(7)上記実施例では、ガイド画像表示部312は、ガイド画像として、枠画像BXおよびライン画像LN(図7(C))を、表示部470に表示しているが、ガイド画像は、これに限られない。例えば、ガイド画像は、例えば、表示ランプ11〜15のそれぞれに対応する複数個の枠画像であっても良い。この場合には、利用者は、表示ランプ11〜15のそれぞれが、対応する枠画像と重なるように、表示ランプ11〜15が表示部470に表示される位置を調整した状態で、撮像を実行する。一般的には、ガイド画像は、撮像対象である表示ランプが表示されるべき表示部470内の位置を利用者に示す画像であれば良い。そして、上記実施例のように、複数個の表示ランプ11〜15がランプ配置ラインLLに沿って並んでいる場合には、ガイド画像は、ランプ配置ラインLLが位置すべき表示部470内のラインを直接的に示す画像(例えば、図7(C)のライン画像LN)、あるいは、間接的に示す画像(例えば、変形例における複数個の枠画像)を含むことが好ましい。
(8)上記実施例では、表示ランプの位置の推定は、表示ランプの表示状態を特定するために実行されているが、表示ランプの位置の推定は、他の目的のために実行されても良い。例えば、表示ランプの位置を推定することによって、表示ランプの個数や、複数個の表示ランプの間の間隔などのプリンタの特徴を認識することができる。従って、例えば、撮像画像データを解析することによって、プリンタの機種を特定するために、表示ランプの位置の推定が実行されても良い。
(9)例えば、撮像画像SIの解像度が比較的低い場合には、エッジ画像EIや撮像画像SIの縮小処理を省略しても良い。すなわち、縮小前のエッジ画像EIを用いて、ランプ範囲推定処理が実行されても良く、縮小前の撮像画像SIを用いて、表示状態特定処理が実行されても良い。また、機種情報の取得は省略されても良い。すなわち、情報提供部300は、1つの機種のための専用のアプリケーションプログラム(例えば、製品の付属プログラム)によって実現されても良い。
(10)また、上記情報提供処理に用いられる各種の情報、例えば、機種選択画像AI1に表示される機種情報の一覧や、図4、図5に示す各種のテーブルに記録された情報は、予め不揮発性記憶装置420に格納されている。これに代えて、これらの情報は、必要に応じて、サーバ60から取得されて、揮発性記憶装置425に一時的に格納されても良い。
(11)上記実施例において、ハードウェアによって実現されていた構成の一部をソフトウェアに置き換えるようにしてもよく、逆に、ソフトウェアによって実現されていた構成の一部をハードウェアに置き換えるようにしてもよい。
(12)本発明の機能の一部または全部がソフトウェアで実現される場合には、そのソフトウェア(コンピュータプログラム)は、コンピュータ読み取り可能な記録媒体に格納された形で提供することができる。「コンピュータ読み取り可能な記録媒体」は、メモリーカードやCD−ROMのような携帯型の記録媒体に限らず、各種のRAMやROM等のコンピュータ内の内部記憶装置や、ハードディスクドライブ等のコンピュータに接続されている外部記憶装置も含んでいる。
以上、実施例、変形例に基づき本発明について説明してきたが、上記した発明の実施の形態は、本発明の理解を容易にするためのものであり、本発明を限定するものではない。本発明は、その趣旨並びに特許請求の範囲を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物が含まれる。