(57)【要約】【課題】  複数の撮像モジュールについて、任意のタイミングで任意のスロットへの挿し換えを行っても、常に正しい基線長を得ることができる電子機器、撮像装置、及び制御方法、並びにプログラムを提供する。【解決手段】  スマートデバイス５０の複数のスロットのいずれかに装着された撮像モジュール５００，６００を用いて複眼カメラの機能を実現する場合、スマートデバイス５０に状態変化があり状態変化フラグがＯＮであるときは、撮像モジュール５００，６００から取得した、撮像モジュール５００，６００それぞれの光軸の座標情報と、スマートデバイス５０の本体のメモリ１１４に記憶される各スロットの位置情報とを取得して基線長を計算する。【選択図】  図１０
2018163299.tif 000002
【特許請求の範囲】
【請求項１】
第１及び第２の撮像モジュールを複数の取り付け領域のいずれかにそれぞれ装着する電子機器において、
複眼モードで撮影を行う撮影手段と、
前記第１及び第２の撮像モジュールからそれぞれの光軸の座標情報を取得する取得手段と、
前記複数の取り付け領域の位置情報を記憶する記憶手段と、
前記第１及び第２の撮像モジュールと前記電子機器の本体のいずれかで状態変化があった場合、前記光軸の座標情報と、前記取り付け領域の位置情報とを取得して基線長を計算する計算手段とを備えることを特徴とする電子機器。
【請求項２】
前記複眼モードは、前記第１及び第２の撮像モジュールのそれぞれから出力される画像を合成するモードであり、前記複数の取り付け領域は略同一平面であって、前記第１及び第２の撮像モジュールの光軸が略平行である場合にユーザ選択可能なモードに設定されることを特徴とする請求項１記載の電子機器。
【請求項３】
前記複眼モードは、前記第１及び第２の撮像モジュールのそれぞれから出力される画像データに基づき被写体距離を計算するモードであり、前記複数の取り付け領域は略同一平面であって、前記第１及び第２の撮像モジュールの光軸が略平行である場合にユーザ選択可能なモードに設定されることを特徴とする請求項１記載の電子機器。
【請求項４】
前記取得手段は、前記第１及び第２の撮像モジュールからそれぞれの前記光軸の誤差情報を更に取得し、
前記第１及び第２の撮像モジュールと前記電子機器の本体のいずれかで状態変化があった場合、前記光軸の座標情報と、前記光軸の誤差情報と、前記取り付け領域の位置情報とを取得して、前記第１及び第２の撮像モジュールから出力される画像データを補正することを特徴とする請求項１乃至３のいずれか１項に記載の電子機器。
【請求項５】
前記第１及び第２の撮像モジュールが前記複数の取り付け領域のいずれかにそれぞれ装着されているか否かを検出する検出手段を更に備え、
前記検出手段により前記第１及び第２の撮像モジュールのそれぞれが前記複数の取り付け領域のいずれかに装着されたと検出された場合に、前記撮影手段により前記複眼モードで撮影を行うことを特徴とする請求項１乃至４のいずれか１項に記載の電子機器。
【請求項６】
前記第１及び第２の撮像モジュールはそれぞれ異なる配置及び形状のカメラを有することを特徴とする請求項１乃至５のいずれか１項に記載の電子機器。
【請求項７】
前記複数の取り付け領域は、少なくとも３か所あり、それぞれの位置情報が異なることを特徴とする請求項１乃至６のいずれか１項に記載の電子機器。
【請求項８】
前記複数の取り付け領域のそれぞれの、前記第１及び第２の撮像モジュールの有する磁性体に対応する位置に設けられる永電磁石と、前記永電磁石の極性を個別に変更する極性変更手段とを更に備え、
前記極性変更手段は、前記永電磁石の極性を個別に変更することによって、前記第１及び第２の撮像モジュールの前記複数の取り付け領域のいずれかへの解放及び固着を行うことを特徴とする請求項１乃至７のいずれか１項に記載の電子機器。
【請求項９】
前記複数の取り付け領域を分割するガイド部を更に備え、
前記ガイド部は、前記第１及び第２の撮像モジュールを前記複数の取り付け領域のいずれかに取り付ける際にガイドし、且つ装着後の前記第１及び第２の撮像モジュールを保持することを特徴とする請求項１乃至８のいずれか１項に記載の電子機器。
【請求項１０】
前記基線長が計算されたときに、前記基線長の情報を含む管理情報を更新することを特徴とする請求項１乃至９のいずれか１項に記載の電子機器。
【請求項１１】
請求項１乃至１０のいずれか１項に記載の前記複数の取り付け領域のいずれかに装着された場合に、前記第１及び第２の撮像モジュールのうちの１つとして機能する撮像装置であって、
それぞれの外形からみた前記光軸の座標情報を記憶するメモリを有することを特徴とする撮像装置。
【請求項１２】
第１及び第２の撮像モジュールを複数の取り付け領域のいずれかにそれぞれ装着する電子機器の制御方法において、
複眼モードで撮影を行う撮影ステップと、
前記第１及び第２の撮像モジュールからそれぞれの光軸の座標情報を取得する取得ステップと、
前記複数の取り付け領域の位置情報を記憶する記憶ステップと、
前記第１及び第２の撮像モジュールと前記電子機器の本体のいずれかで状態変化があった場合、前記光軸の座標情報と、前記取り付け領域の位置情報とを取得して基線長を計算する計算ステップとを備えることを特徴とする制御方法。
【請求項１３】
請求項１２記載の制御方法を実行することを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子機器、撮像装置、及び制御方法、並びにプログラムに関し、特にモジュールとしての撮像装置を着脱可能な電子機器、撮像装置、及び制御方法、並びにプログラムに関する。
【背景技術】
【０００２】
機能単位でまとまりを持たせたモジュールをブロックの様に組み合わせることで、所望する様々な機能を実現させたスマートデバイスと呼ばれる電子機器が公知となっている。こうしたスマートデバイスは、複数のスロットが形成された本体と、異なる機能を持った複数のモジュールとで構成されており、これらの多種多様なモジュールは、それぞれ自由な組み合わせで本体のスロットに着脱される。このとき、例えば撮影機能を有するモジュール（撮像モジュール）を本体のスロットに装着すれば、ＯＳ上にインストールされたアプリケーションプログラムの動作によって、撮影機能を利用することが可能となる。
【０００３】
こうしたスマートデバイスに対応する撮像モジュール自体もまた多種多様である。本体への着脱手段や通信手段など一定の規格を満足するものであれば、例えば光学レンズの焦点距離や撮像センサのサイズが異なっていても良い。更に、これらの撮像モジュールを設計するメーカーが特定の企業に限定される必要はなく、カメラメーカーや電機メーカーなど複数存在しても構わない。また撮像モジュール内において、どこにどの構成部品を配置するかといった制約が少なく、設計の自由度は高い。そのため、撮像モジュールをそれぞれの仕様やメーカーにとって都合のよい、最適なレイアウトで設計することができる。
【０００４】
更に前述のように、モジュールの組み合わせが比較的自由であるため、例えば複数の撮像モジュールをそれぞれ異なるスロットに装着することもできる。この場合、複眼カメラ機能を動作させるアプリケーションプログラムを装着した複数の撮像モジュールに対して実行することにより、所謂、複眼カメラの機能として公知な画像の合成機能や測定機能が利用可能となる。
【０００５】
複眼カメラに期待される画像の合成機能としては、立体視モード、パノラマモード、パンフォーカスモード、ダイナミックレンジ拡大モード、シャローフォーカスモード、マルチズーム（高解像度）モードなどが公知である（例えば特許文献１参照）。これらの機能は、それぞれの撮像モジュールにおける撮影条件を一致もしくは異ならせて同時撮影を行い、得られた複数の画像データから１枚の画像を合成するものである。また他にも、複眼カメラを使った測定機能として測距技術が挙げられる（例えば特許文献２参照）。この機能は、左右２つのカメラで被写体を同時に撮影し、得られたステレオ画像を処理することで、被写体を三次元的に認識したり、被写体までの距離を計測したりするものである。
【０００６】
こうした複眼カメラによる画像の合成機能や測定機能は、少なくとも２つの撮像モジュールの視差情報に基づいて処理されるため、お互いの撮像モジュールにおける光軸間の距離、つまり基線長を得ることが重要となる。そこで特許文献１では、本体側に設けた複数の接続部のうち、どの接続部が撮像モジュールを電気的に検出するかによって、撮像モジュールの位置と姿勢とを特定する構成となっている。またそれと同時に、２種類ある撮像モジュールのうち、どちらの型式の撮像モジュールが接続されているか、検出した信号から判別することで基線長を得ることができる。
【０００７】
一方の特許文献２では、左右２つのカメラが平行に所定の間隔で配置されており、使用する過程において経年変化などによって基線長にずれが生じた場合は、撮影した１組の画像データをステレオ画像処理装置で補正する制御となっている。この制御では、２つのカメラで撮像した画像を、予め画像間のずれに応じて設定した変換値で幾何学的に変換する。それと共に、変換された画像に対して線形補間を行うことで、基線長を正しく調整したのと同等の画像を得ることができるものである。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特許第４４４８８４４号公報
【特許文献２】特開３７９２８３２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
ところで、特許文献１に記載された構成では、撮像モジュールの型式やモジュール内における光軸の位置などの情報が、本体側に内蔵されたメモリに予め登録されていなければならない。しかしながら前述のスマートデバイスでは、異なる種類の撮像モジュールにおいて、それぞれ最適となる光軸の位置は異なっている可能性がある。それだけでなく、メーカーもまた不特定多数であることから、撮像モジュールの情報の全てを事前に本体側のメモリに登録しておくのは困難である。例えばユーザが、既に所有しているスマートデバイスに対して、別の異なる種類の撮像モジュールを新しく後から購入した場合では、アップデートなど何らかの手段を用いて、撮像モジュールの情報を本体側のメモリに新規登録する作業が必要となってしまう。
【００１０】
また特許文献２に記載された制御は、あくまで経年変化などで生じる比較的微小なズレを想定したものである。これに対して前述のスマートデバイスでは、撮像モジュールを装着するスロットを変更した場合、それに伴って光軸の位置も移動することになり、基線長の変化量は比較的大きなものとなる。そのため、それぞれの画像データから一致点を検出して、正しい視差情報を得るのは容易でない。例えば、基線長の変化量が補正可能範囲を超えてしまうと、正しい変換処理が行われず、測距結果の信頼性が損なわれる恐れがある。もし仮に、比較的大きな変化量に合わせて補正可能範囲を拡大したとしても、多くのメモリ容量が必要となる他、２つの画像から一致点を検出する計算が大規模になり、計算時間が長くなることで、合焦や露光開始までにタイムラグを生じさせてしまう。
【００１１】
このような課題を鑑みて本発明は、複数の撮像モジュールについて、任意のタイミングで任意のスロットへの挿し換えを行っても、常に正しい基線長を得ることができる電子機器、撮像装置、及び制御方法、並びにプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１２】
本発明の請求項１に係る電子機器は、第１及び第２の撮像モジュールを複数の取り付け領域のいずれかにそれぞれ装着する電子機器において、複眼モードで撮影を行う撮影手段と、前記第１及び第２の撮像モジュールからそれぞれの光軸の座標情報を取得する取得手段と、前記複数の取り付け領域の位置情報を記憶する記憶手段と、前記第１及び第２の撮像モジュールと前記電子機器の本体のいずれかで状態変化があった場合、前記光軸の座標情報と、前記取り付け領域の位置情報とを取得して基線長を計算する計算手段とを備えることを特徴とする。
【発明の効果】
【００１３】
本発明によれば、複数の撮像モジュールについて、任意のタイミングで任意のスロットへの挿し換えを行っても、常に正しい基線長を得ることができる。
【図面の簡単な説明】
【００１４】
【図１】実施例１に係る電子機器としてのスマートデバイスの外観図である。
【図２】スマートデバイスの本体に取り付けられるモジュールの外観図である。
【図３】スマートデバイスの本体にモジュールを取り付ける方法を示す説明図である。
【図４】スマートデバイスの本体に設けられたＥＰＭとモジュールに設けられた磁性体との磁力による結合を示す説明図である。
【図５】複数のモジュール及びこれらが装着されたスマートデバイスの本体のハードウェア構成を示すブロック図である。
【図６】アプリケーションプログラム制御モジュールにより実行される、複数のモジュールが装着されたスマートデバイスの動作制御処理の手順を示すフローチャートである。
【図７】図６のステップＳ１１０７のリリース処理の詳細な手順を示すフローチャートである。
【図８】図６のステップＳ１１０９の装着処理の詳細な手順を示すフローチャートである。
【図９】図６のステップＳ１１１１のアプリケーションプログラム実行処理の一例である撮影アプリケーションプログラム実行処理の詳細な手順を示すフローチャートである。
【図１０】図９のステップＳ１４０５の撮影実行処理の手順を示すフローチャートである。
【図１１】図１０のステップＳ１５０９の複眼撮影実行処理の手順を示すフローチャートである。
【図１２】図１１のステップＳ１６０１の測距処理の手順を示すフローチャートである。
【図１３】図１０のステップＳ１５０６において実行される実施例１に係る基線長の算出方法を示した説明図である。
【図１４】実施例１にかかる撮像モジュールのスマートデバイスの本体に対する光軸の傾きを示す説明図である。
【図１５】図１０のステップＳ１５０６において実行される実施例２に係る基線長の算出方法を示した説明図である。
【発明を実施するための形態】
【００１５】
以下に、本発明の好ましい実施の形態を、添付の図面に基づいて詳細に説明する。
【００１６】
（実施例１）
図１は、実施例１に係る電子機器のとしてのスマートデバイス５０の外観図である。
【００１７】
図１（ａ）は、スマートデバイス５０の本体を正面側から見た外観図と、背面側から見た外観図である。
【００１８】
図１（ａ）に示すように、スマートデバイス５０の本体の正面側には、複数のリブ１０１ａ〜ｃが形成されている。また、スマートデバイス５０の本体の背面側には、複数のリブ１０１ａ，ｃ〜ｈが形成されると共に、スマートデバイス５０の本体を左右の領域に分割するスパイン１０２が形成されている。リブ１０１ａ〜ｈとスパイン１０２（ガイド部）とは、モジュールを取り付ける際のガイド機能と装着後のモジュールを保持する保持機能とを兼ね備えていると共に、スマートデバイス５０の本体の剛性を高める機能も有している。以下、リブ１０１ａ〜ｈとスパイン１０２とを合わせてフレーム構造と称する。スマートデバイス５０の本体の正面側と背面側とは、リブ１０１ａ〜ｈとスパイン１０２とによって、複数のモジュールの取り付け領域に分割されている。以下、これらの複数のモジュールの取り付け領域を、スロット１０００，１１００，１２００，１３００，１４００，１５００，１６００，１７００，１８００，１９００と称する。
【００１９】
各スロット１０００〜１９００には、電磁着脱機構を司るエレクトロパーマネントマグネット（ＥＰＭ）１６０〜１６９が設けられている。尚、ＥＰＭ１６０〜１６９については、詳しくは後述する。各ＥＰＭ１６０〜１６９近傍には、これらと対となる、スマートデバイス５０の本体と各モジュールとがデータの送受信をするための本体側非接触通信手段（以下、本体側ＣＭＣと称する）１４０〜１４９が備えられている。つまり、各スロット１０００〜１９００には、ＥＰＭ１６０〜１６９と本体側ＣＭＣ１４０〜１４９とが、それぞれ少なくとも一対設けられていることになる。尚、図１（ａ）に示すように、ＥＰＭ１６０〜１６９と本体側ＣＭＣ１４０〜１４９とは、各スロット１０００〜１９００の大きさに応じて複数設けられても良い。
【００２０】
スマートデバイス５０の本体の正面側には、紙面向かって左側の端部付近にＥＰＭ１６０，１６３が配置されており、そのＥＰＭ１６０，１６３の右側に本体側ＣＭＣ１４０，１４３が配置されている。スマートデバイス５０の本体の背面側には、スパイン１０２に隣接するようにＥＰＭ１６１，１６２ａ，１６２ｂ，１６４ａ，１６４ｂ，１６５ａ，１６５ｂ，１６６〜１６９が配置されている。紙面に向かってスパイン１０２の左側の領域には、ＥＰＭ１６５ａ，１６５ｂ，１６７ａ，１６７ｂ，１６８，１６９が設けられ、更にその左側に本体側ＣＭＣ１４５ａ，１４５ｂ，１４７ａ，１４７ｂ，１４８，１４９が配置されている。またスパイン１０２の右側の領域には、ＥＰＭ１６１，１６２ａ，１６２ｂ，１６４ａ，１６４ｂ，１６６が設けられ、更にその右側に本体側ＣＭＣ１４１、１４２ａ，１４２ｂ，１４４ａ，１４４ｂ，１４６が配置されている。
【００２１】
図１（ｂ）は、スマートデバイス５０の本体にモジュールを取り付けた状態を正面側から見た外観図と、背面側から見た外観図である。
【００２２】
図１（ｂ）に示すように、スマートデバイス５０の本体の正面側及び背面側には、各機能を備えたモジュール１５０，２００，３００，３５０，４００，５００，６００，７００，８００，９００が取り付けられる。スマートデバイス５０の本体の正面側の下部のスロット１３００には、略全面にタッチ検知機能を有したＬＣＤパネル３１２から成るモジュール（以下、表示操作モジュールと称する）３００が装着されている。表示操作モジュール３００の右側面には、スマートデバイス５０の電源のＯＮとＯＦＦとを切り替える電源ボタン３１４ａが形成されており、同じく表示操作モジュール３００の左側面には、音量を調節する音量調節ボタン３１４ｂが形成されている。更に表示操作モジュール３００には、スマートデバイス５０が移動体無線通信機器として機能する際に、通話者の音声を検出するマイク３１８が設けられている。マイク３１８は、スマートデバイス５０がビデオカメラとして機能する際に、動画の音声を収集する役割も担う。また、スマートデバイス５０の本体の正面側の上部のスロット１０００には、スピーカモジュール３５０が取り付けられている。スピーカモジュール３５０には、スマートデバイス５０が移動体無線通信機器として機能する際に、受信した音声を出力するスピーカ部３５１が設けられている。このスピーカ部３５１は、その他に音楽や操作音を出力する。
【００２３】
一方、スマートデバイス５０の本体の背面側には、スパイン１０２の左側の上部のスロット１５００に、各種撮影機能を有する撮像モジュール５００が、またスパイン１０２の右側の上部のスロット１６００に、撮像モジュール６００が装着されている。撮像モジュール５００，６００が装着されるスロットが略同一平面であり、これらのスロットに装着した場合に撮像モジュール５００，６００の光軸が略平行である場合、後述する複眼モードがユーザ選択可能なモードに設定される。これによって、撮像モジュール５００，６００はそれぞれの撮影範囲に同一の被写体をフレーミングすることが可能となり、後述する視差を用いて被写体距離を測定したり略同時に撮影したりする構成となるからである。また前述した通り、撮像モジュール５００，６００は、スマートデバイス５０の本体への着脱手段と通信手段とが一定の規格を満足するように共通化されてはいるものの、それぞれのモジュールにおいては構成部品の配置が異なっている。
【００２４】
スパイン１０２の左側の上部のスロット１５００に対して、その下部に形成されたスロット１７００には、外部と無線でデータの送受信を行う無線ＬＡＮモジュール７００が装着されている。更にその下部のスロット１８００には、スマートデバイス５０の姿勢を検知する姿勢検知モジュール８００が取り付けられている。姿勢検知モジュール８００は、３軸のジャイロセンサから取得する角速度情報を利用することで、スマートデバイス５０の姿勢を検知する。スパイン１０２の左側の下部のスロット１９００には、ＴＤＭＡ、ＣＤＭＡ、ＬＴＥ等の単数或いは複数の各種遠距離通信機能を有する移動体通信モジュール９００が装着されている。スパイン１０２の右側の上部のスロット１６００に対して、その下部に形成されたスロット１２００には、スマートデバイス５０全体の制御を行うアプリケーションプログラム制御モジュール２００が装着されている。
【００２５】
ユーザがスマートデバイス５０において利用を所望する機能を動作させるには、装着中の所定のモジュール専用のアプリケーションプログラムをアプリケーションプログラム制御モジュール２００にインストールする必要ある。これにより、アプリケーションプログラム制御モジュール２００を介することでスマートデバイス５０においてその所望する機能を利用できる。例えば、移動体通信モジュール９００専用の通話アプリケーションがインストールされている場合、アプリケーションプログラム制御モジュール２００を介して移動体通信モジュール９００を動作させて通話機能が利用可能となる。また、無線ＬＡＮモジュール７００専用のインターネット接続アプリケーションがインストールされている場合がある。この場合、アプリケーションプログラム制御モジュール２００を介して無線ＬＡＮモジュール７００を動作させてインターネット接続によるウェブ閲覧機能が利用可能となる。また例えば、撮像モジュール５００，６００専用の撮影アプリケーションがインストールされている場合、アプリケーションプログラム制御モジュール２００を介して撮像モジュール５００，６００を動作させて複眼カメラの機能を利用することができる。ここで、複眼カメラの機能とは画像の合成機能や測定機能を指す。
【００２６】
複眼カメラに期待される画像の合成機能としては、前述の特許文献１に記載された立体視モード、パノラマモード、パンフォーカスモード、ダイナミックレンジ拡大モード、シャローフォーカスモード、マルチズーム（高解像度）モードが含まれる。そして専用の撮影アプリケーションは、撮像モジュール５００，６００のそれぞれで任意に設定可能である。これらの合成機能は、撮像モジュール５００，６００の夫々の撮影条件を一致もしくは異ならせて同時撮影を行い、得られた２枚の画像データから１枚の画像を合成するものである。
【００２７】
また上述の撮影アプリケーションでは、測定機能として、前述の特許文献２に記載された測距技術が適用される。この機能は、撮像モジュール５００，６００により被写体を同時に撮影し、得られたステレオ画像を処理することで、被写体を三次元的に認識したり、被写体までの距離を計測したりするものである。尚、こうした複眼カメラの機能を実現する具体的な動作フローについては、図１１及び図１２に従って後述する。
【００２８】
スロット１２００の下部のスロット１４００には、スマートデバイス５０に電力を供給する電源モジュール４００が装着されている。更にスパイン１０２の右側の下部のスロット１１００には、撮影した画像データなどの各種データを保存する記録モジュール１５０が取り付けられている。
【００２９】
図２は、スマートデバイス５０の本体に取り付けられるモジュール１５０，２００，３００，３５０，４００，５００，６００，７００，８００，９００の外観図である。図２（ａ）は、スマートデバイス５０の本体の正面側に取り付けられる表示操作モジュール３００及びスピーカモジュール３５０を正面側から見た外観図と背面側から見た外観図である。図２（ｂ）は、スマートデバイス５０の本体の背面側に取り付けられる各モジュールを正面側から見た外観図と背面側から見た外観図である。前述のとおり、スマートデバイス５０の本体の背面側には、図１（ｂ）に示すように、スパイン１０２の左側に、撮像モジュール５００、無線ＬＡＮモジュール７００、姿勢検知モジュール８００、及び移動体通信モジュール９００が取り付けられている。また、スパイン１０２の右側に、撮像モジュール６００、アプリケーションプログラム制御モジュール２００、電源モジュール４００、及び記録モジュール１５０が取り付けられている。
【００３０】
図２（ａ）に示すように、表示操作モジュール３００及びスピーカモジュール３５０の背面には、スマートデバイス５０の本体に設けられたＥＰＭ１６３，１６０と対向する位置に、磁性体３６０，３５６が設けられている。ここで用いられる磁性体３６０，３５６の材質としては、保磁力が小さく透磁率が大きい軟磁性体が好ましく、本実施例では鉄・コバルト・バナジウムの軟磁性合金であるＨＩＰＥＲＣＯＴＭ５０が採用されている。以下説明する各磁性体においても同様の材質が採用される。
【００３１】
更に、スマートデバイス５０の本体に設けられた本体側ＣＭＣ１４３，１４０と対向する位置には、スマートデバイス５０の本体とデータの送受信を行うモジュール側非接触通信手段（以下、モジュール側ＣＭＣと称する）３４０，３５４が設けられている。磁性体３６０，３５６とモジュール側ＣＭＣ３４０，３５４とは、それぞれ隣接して表示操作モジュール３００及びスピーカモジュール３５０に一対ずつ設けられている。
【００３２】
一方、図２（ｂ）に示すように、撮像モジュール５００の背面には、スマートデバイス５０の本体に設けられたＥＰＭ１６５ａ，１６５ｂと対向する位置に、磁性体５６０ａ，５６０ｂが設けられている。また、撮像モジュール６００の背面には、スマートデバイス５０の本体に設けられたＥＰＭ１６６と対向する位置に、磁性体６６０ａが設けられている。尚、撮像モジュール６００の背面には磁性体６６０ｂも設けられているが、スマートデバイス５０の本体にはこれと対向する磁性体が存在しない。このため、撮像モジュール６００では磁性体６６０ｂは用いず、磁性体６６０ａがＥＰＭ１６６と磁力で結合することによりスマートデバイス５０の本体に装着される。
【００３３】
同様に、無線ＬＡＮモジュール７００の背面には、スマートデバイス５０の本体に設けられたＥＰＭ１６７ａ，１６７ｂと対向する位置に、磁性体７６０ａ，７６０ｂが設けられている。また、姿勢検知モジュール８００及び移動体通信モジュール９００の背面には、スマートデバイス５０の本体に設けられたＥＰＭ１６８，１６９と対向する位置に、磁性体８６０，９６０が設けられている。
【００３４】
更に、アプリケーションプログラム制御モジュール２００の背面には、スマートデバイス５０の本体に設けられたＥＰＭ１６２ａ，１６２ｂと対向する位置に、磁性体２６０ａ，２６０ｂが設けられている。また、電源モジュール４００、及び記録モジュール１５０の背面には、スマートデバイス５０の本体に設けられたＥＰＭ，１６４ａ，１６４ｂ，１６１と対向する位置に、磁性体，４６０ａ，４６０ｂ，１５６ａが設けられている。尚、記録モジュール１５０の背面には磁性体１５６ｂも設けられているが、スマートデバイス５０の本体にはこれと対向する磁性体が存在しない。このため、記録モジュール１５０では磁性体１５６ｂは用いず、磁性体１５６ａがＥＰＭ１６１と磁力で結合することによりスマートデバイス５０の本体に装着される。
【００３５】
本体側ＣＭＣ１４５ｂ，１４６，１４７ｂ，１４８，１４９，１４２ａ，１４２ｂ，１４４ａ，１４４ｂ，１４１と対向する位置にモジュール側ＣＭＣ５４０，６４０，７４０，８４０，９４０，２４０ａ，２４０ｂ，４４０ａ，４４０ｂ，１５４が設けられる。これらのモジュール側ＣＭＣにより、各モジュールはスマートデバイス５０の本体とデータの送受信を行う。磁性体５６０ｂ，６６０ａ，７６０ｂ，８６０，９６０，２６０ａ，２６０ｂ，４６０ａ，４６０ｂ，１５６ａとモジュール側ＣＭＣ５４０，６４０，７４０，８４０，９４０，２４０ａ，２４０ｂ，４４０ａ，４４０ｂ，１５４はそれぞれ隣接して設けられる。そして、撮像モジュール５００，６００、無線ＬＡＮモジュール７００、姿勢検知モジュール８００、移動体通信モジュール９００、記録モジュール１５０には、すくなくとも一対が設けられている。また、アプリケーションプログラム制御モジュール２００及び電源モジュール４００は、それぞれ二対ずつ設けられている。
【００３６】
図３は、スマートデバイス５０の本体に、モジュール１５０，２００，３００，３５０，４００，５００，６００，７００，８００，９００を取り付ける方法を示した説明図である。
【００３７】
ここで、図３（ａ）は、スマートデバイス５０の本体の正面側に、表示操作モジュール３００及びスピーカモジュール３５０を取り付ける方法を示した説明図である。また、図３（ｂ）は、スマートデバイス５０の本体の背面側に、撮像モジュール５００、無線ＬＡＮモジュール７００、姿勢検知モジュール８００、及び移動体通信モジュール９００を取り付ける方法を示した説明図である。また、図３（ｂ）では、スパイン１０２の右側に、撮像モジュール６００、アプリケーションプログラム制御モジュール２００、電源モジュール４００、及び記録モジュール１５０も併せて示す。
【００３８】
図３（ａ）に示すように、表示操作モジュール３００及びスピーカモジュール３５０は、スマートデバイス５０の本体に対して、リブ１０１ａ〜ｃに沿って側面方向からスライドさせて取り付けられる。このとき、表示操作モジュール３００及びスピーカモジュール３５０は、スマートデバイス５０の本体の左側面、或いは右側面のどちら側からでも挿入することができる。
【００３９】
図３（ｂ）に示すように、撮像モジュール５００、無線ＬＡＮモジュール７００、姿勢検知モジュール８００、移動体通信モジュール９００は、スマートデバイス５０の本体に対して、左側面からスライドさせて取り付けられる。左側面から各モジュールをスパイン１０２に突き当てることにより、スマートデバイス５０の本体に対してモジュール５００，７００，８００，９００の位置が決定する。また、撮像モジュール６００、アプリケーションプログラム制御モジュール２００、電源モジュール４００、記録モジュール１５０は、スマートデバイス５０の本体に対して、右側面からスライドさせて取り付けられる。右側面から各モジュールをスパイン１０２に突き当てることにより、スマートデバイス５０の本体に対してモジュール６００，２００，４００，１５０の位置が決定する。
【００４０】
本実施例において、図３（ｂ）のようにスマートデバイス５０の本体の背面側に設けられたスロットは、サイズによって３種類に大別される。まずスロット１５００，１６００，１７００，１１００が同じ種類であり、例えば撮像モジュール５００はこの４箇所のうち、どのスロットを選択して装着しても構わない。尚、本実施例では撮像モジュール５００が装着可能なスロットは４か所存在しているが、３か所以上存在していればかかる構成に限定されるものではない。また最も大きいスロット１２００，１４００が同じ種類であり、例えばアプリケーションプログラム制御モジュール２００はこの２箇所のうち、どちらのスロットを選択して装着しても構わない。同様に最も小さいスロット１８００，１９００が同じ種類であり、例えば姿勢検知モジュール８００はこの２箇所のうち、どちらのスロットを選択して装着しても構わない。
【００４１】
図４は、スマートデバイス５０の本体に設けられたＥＰＭ１６５ｂと、撮像モジュール５００に設けられた磁性体５６０ｂとの磁力による結合を説明する模式図である。
【００４２】
ここで、図４（ａ）は、スマートデバイス５０の本体と撮像モジュール５００とが磁力による結合をしていない状態の部分拡大図である。また、図４（ｂ）は、スマートデバイス５０の本体と撮像モジュール５００とが磁力による結合をしている状態の部分拡大図である。尚、図４は例としてＥＰＭ１６５ｂと磁性体５６０ｂとの組み合わせを示すものであるが、他のＥＰＭと磁性体との組み合わせについても図４と同様である。
【００４３】
図４（ａ）に示すようにＥＰＭ１６５ｂは、極性が固定された永久磁石１６５１と永電磁石１６５２との両側面を、磁性体１６５３ａ，１６５３ｂによって連結・保持した構造となっている。ここで用いる永久磁石１６５１には、例えば磁束密度が非常に高いネオジム磁石などが適している。また永電磁石１６５２は、アルニコ等の硬磁性体からなる可逆性の永久磁石１６５４と、可逆性の永久磁石１６５４の周りに巻かれたコイル１６５５とから構成されている。コイル１６５５に電流を流すと、可逆性の永久磁石１６５４は一方向に着磁され、通電が終了した後もそのまま着磁状態を保持する。コイル１６５５に対する通電時間は１〜数秒程度であり、比較的短い時間である。こうして永電磁石１６５２は、コイル１６５５（極性変更手段）に流す電流の向きを変えることにより、極性が可変な永電磁石となる。
【００４４】
図４（ａ）に示す状態でコイル１６５５に対して通電すると、可逆性の永久磁石１６５４を着磁して、永電磁石１６５２は極性が固定された永久磁石１６５１の磁力線の向きと引き合う向きの磁力線を発生させる。その結果、永電磁石１６５２の磁力線と永久磁石１６５１の磁力線とが互いに閉じたループ形状となり、撮像モジュール５００の磁性体５６０ｂを吸着しようとする磁力は非常に弱くなる。そのため撮像モジュール５００は、ＥＰＭ１６５ｂから吸着力を受けずに解放される。
【００４５】
一方図４（ｂ）に示すように、図４（ａ）とは逆方向にコイル１６５５に対して通電すると、可逆性の永久磁石１６５４を着磁して、永電磁石１６５２は極性が固定された永久磁石１６５１の磁力線の向きと反発し合う向きの磁力線を発生させる。その結果、永電磁石１６５２の磁力線と永久磁石１６５１の磁力線とが互いに強め合って、撮像モジュール５００に設けられた磁性体５６０ｂを吸着する磁力が非常に高まる。そのため撮像モジュール５００は、ＥＰＭ１６５ｂから吸着力を受けてスマートデバイス５０の本体に固着される。このように本実施例では、着脱手段にＥＰＭを採用することで、各モジュールの着脱の作業性と信頼性との両立を実現している。
【００４６】
図５は、複数のモジュール２００〜６００，８００及びこれらが装着されたスマートデバイス５０のハードウェア構成を示すブロック図である。
【００４７】
以下、図５を用いて、スマートデバイス５０の本体、アプリケーションプログラム制御モジュール２００、表示操作モジュール３００、電源モジュール４００、撮像モジュール５００，６００、及び姿勢検知モジュール８００の構成を説明する。尚、スマートデバイス５０の本体に装着可能なモジュールは多種多様であり、図５に示す組み合わせは単なる一例に過ぎず、本発明はその組み合わせを限定するものではない。
【００４８】
＜スマートデバイス５０の本体の構成＞
スマートデバイス５０の本体は、アプリケーションプログラム制御モジュール２００による統括制御の下で、スマートデバイス５０の本体に装着された各モジュールに関する制御を行う。スマートデバイス５０の本体において、１１０はスマートデバイス５０の本体全体を制御するシステム制御回路である。システム制御回路１１０は、カーネルやＯＳを実行させた環境で各種アプリケーションプログラムを実行する際、アプリケーションプログラム制御モジュール２００が備えるアプリケーション制御回路２１０の指示や要求に応じて、協調動作を行う。そしてシステム制御回路１１０は、スマートデバイス５０の本体と各モジュールとを連携して動作させることが可能となっており、アプリケーション制御回路２１０を介して各種サービス、機能を実行することが可能である。
【００４９】
１１２は、システム制御回路１１０が直接アクセスして読み書きを行うメモリである。１１４は、システム制御回路１１０の動作用の定数、変数、プログラム、各スロットの位置情報等を記憶し、電気的に消去・記録可能な不揮発性メモリであり、例えばフラッシュメモリ等が用いられる。ここで、各スロットの位置情報には、スマートデバイス５０の本体の背面側に設けられたスロット１１００，１２００，１４００，１５００，１６００，１７００，１８００，１９００のそれぞれの位置情報が含まれる。この各スロットの位置情報は、各スロットにおいて、モジュールを装着した際にその位置を決定することになる、各リブ１０１ａ，ｃ〜ｈやスパイン１０２の突き当て面の座標を特定するものである。尚、本実施例は各モジュールの位置決めを、リブ１０１ａ，ｃ〜ｈとスパイン１０２への突き当てにより行っているが、本発明はこれに限定されるものではない。例えば、スマートデバイス５０の本体に位置決め用の凸部を設け、各モジュールに凸部と嵌合する凹部を設けるなどしても良い。この場合、各スロットの位置情報には、位置決め用の凸部の位置情報が含まれることになる。
【００５０】
１１６は識別情報メモリであり、スマートデバイス５０の本体が各モジュールと通信を行う際に必要な各種識別情報が格納されている。１１８は、スマートデバイス５０の本体の所定箇所の温度を計測するための単数或いは複数の温度センサである。１２０は、システム制御回路１１０を介してスマートデバイス５０の本体の各部に必要な所定の電圧・電流を供給する電源制御回路である。
【００５１】
１２２は、スマートデバイス５０の本体の電源制御回路１２０及びコネクタ１８２〜１８６，１８８の電源端子に接続される電源バスである。コネクタ１８２〜１８６，１８８の電源端子は、それぞれ、各モジュールのコネクタ２８０，３８０，４８０，５８０，６８０，８８０の電源端子を介して、各モジュールの電源制御回路２２０，３２０，４１０，５２０，６２０，８２０と接続されている。
【００５２】
１３０はスイッチインターフェース回路であり、図５に示すように、本体側ＣＭＣ１４２ａ，１４２ｂ（不図示），１４３，１４４ａ，１４４ｂ（不図示），１４５ｂ，１４６，１４８を介して、各モジュールと接続する。これにより、各モジュールとスマートデバイス５０の本体の間でデータやメッセージの高速な通信を切り替え中継する。本体側ＣＭＣ１４２ａ，１４３，１４４ａ，１４５ｂ，１４６，１４８は、誘導結合（インダクティブカップリング）方式により接触近接通信を行う。これにより、それぞれがこれに近接するモジュール側ＣＭＣ２４０ａ，３４０，４４０ａ，５４０，６４０，８４０と高速通信を行う。尚、本体側ＣＭＣとこれに近接するモジュール側ＣＭＣとの組み合わせは、ユーザの意図に応じて適宜変更されるものであり、図５に示す組み合わせは単なる一例に過ぎない。
【００５３】
図５に示すように、スマートデバイス５０は、ＥＰＭ１６２ａ，１６２ｂ（不図示），１６３，１６４ａ，１６４ｂ（不図示），１６５ａ，１６５ｂ（不図示），１６６，１６８を備える。これは、それぞれモジュールの磁性体２６０ａ，２６０ｂ（不図示），３６０，４６０ａ，４６０ｂ（不図示），５６０ａ，５６０ｂ（不図示），６６０ａ，８６０を磁力制御により吸着或いは非吸着する。これにより、各モジュールをスマートデバイス５０の本体のフレーム構造と各モジュールとの接続箇所において、固定（ロック）或いは解放（リリース）する。尚、スマートデバイス５０の本体側の各ＥＰＭとこれに接続するモジュール側の磁性体との組み合わせは、ユーザの意図に応じて適宜変更されるものであり、図５に示す組み合わせは単なる一例に過ぎない。
【００５４】
コネクタ１８２〜１８６，１８８は、それぞれモジュールのコネクタ２８０，３８０，４８０，５８０，６８０，８８０と接続する。これにより、電源関係（パワーバス、グラウンド）の端子群を、スマートデバイス５０の本体と各モジュール間で相互に使用可能とする。更に、モジュールの装着を示す検出（Ｄｅｔｅｃｔ）信号の端子、モジュールのスリープ解除を示す起動（Ｗａｋｅ）信号の端子、アンテナの配線をつなぐＲＦ信号の端子などの各機能についても同様に、相互に使用可能とするものである。ここで本実施例におけるコネクタ１８２〜１８６，１８８は、スマートデバイス５０の本体のリブ１０１ａ〜ｈやスパイン１０２の側面部に形成された一般的な小型の金属端子であるが、図１〜３に示す位置からは視認できないため不図示とする。尚、コネクタ１８２〜１８６，１８８と、これに接続するモジュール側のコネクタの組み合わせは、ユーザの意図に応じて適宜変更されるものであり、図５に示す組み合わせは単なる一例に過ぎない。
【００５５】
＜アプリケーションプログラム制御モジュール２００の構成＞
アプリケーションプログラム制御モジュール２００は、アプリケーション制御回路２１０の動作により、スマートデバイス５０の本体とこれに装着された各モジュールを含めた全体システムを統括制御する。例えばアプリケーション制御回路２１０は、表示操作モジュール３００が備える表示操作制御回路３１０を介して、表示部であるＬＣＤパネル３１２を制御し、各種情報の表示を行うことが可能である。またアプリケーション制御回路２１０は、表示操作モジュール３００が備える表示操作制御回路３１０を介して、操作入力手段であるタッチパネル及び操作（以下「ＴＰ／ボタン」という）ボタン３１４に対する操作入力情報を取得することができる。そして、その操作入力内容に応じて、カーネルのサービスやＯＳのサービス、各種アプリケーションプログラムによる処理を実行させることが可能である。
【００５６】
２１２は、アプリケーション制御回路２１０が直接アクセスして読み書きを行うメモリである。２１４は、アプリケーション制御回路２１０の動作用の定数、変数、プログラム等を記憶し、電気的に消去・記録可能な不揮発性メモリであり、例えばフラッシュメモリ等が用いられる。２１６は識別情報メモリであり、アプリケーションプログラム制御モジュール２００がスマートデバイス５０の本体及び各モジュールと通信を行う際に必要な各種識別情報が格納されている。２２０は、アプリケーションプログラム制御モジュール２００の各部に必要な所定の電圧・電流を供給する電源制御回路である。２２２は、アプリケーションプログラム制御モジュール２００の所定箇所の温度を計測するための単数或いは複数の温度センサである。２３０はインターフェース回路であり、モジュール側ＣＭＣ２４０ａを介して、スマートデバイス５０の本体及び各モジュールとのデータやメッセージの高速な通信を中継する。
【００５７】
２９０は、各専用アプリケーションプログラムを実行する上で必要となる複数の管理ファイルの情報を記憶した管理テーブルである。管理ファイルの情報には、各専用アプリケーションプログラムを実行する際に不可欠なモジュールの種類や、所望の機能を最大限に活用できる該当モジュールの組み合わせや、該当モジュールを装着するのに最適な各スロットの位置関係などが含まれる。また本実施例は、管理ファイルの情報として、各専用アプリケーションプログラムに必須ではないものの、機能追加に有効なモジュールの種類などを含んでおり、ユーザに多くの選択肢を提供することで利便性を高めている。こうした管理ファイルの情報は、アプリケーション制御回路２１０が、管理テーブル２９０から取得する。尚、本発明はこの構成に限定されるものではなく、管理ファイルの情報はメモリ２１２や不揮発性メモリ２１４に記憶させても良い。この場合の管理ファイルの情報は、アプリケーション制御回路２１０が、メモリ２１２や不揮発性メモリ２１４から取得することになる。
【００５８】
＜表示操作モジュール３００の構成＞
表示操作モジュール３００は、アプリケーションプログラム制御モジュール２００による統括制御の下で、スマートデバイス５０の本体の制御により、各種情報の表示、操作入力の取得を行う。表示操作モジュール３００において、３１０は表示操作モジュール３００全体を制御する表示操作制御回路である。表示操作モジュール３００の表示部としては、ＬＣＤ、ＯＬＥＤ、ＬＥＤ等の表示デバイスを採用することができるが、本実施例はＬＣＤパネル３１２を採用している。表示操作モジュール３００の操作入力手段としては、タッチパネル（ＴＰ）、操作ボタン等の操作デバイスを独立して構成しても一体として構成してもよいが、本実施例では、独立して構成されるＴＰ／ボタン３１４を採用している。
【００５９】
ＬＣＤパネル３１２は、アプリケーションプログラム制御モジュール２００のアプリケーション制御回路２１０の指示に応じて、表示操作制御回路３１０によりユーザに対する各種情報の表示を行う。また、ＴＰ／ボタン３１４へのユーザによるタッチパネル操作やボタン操作等の入力操作と、マイク３１８が検出した音声信号とは、表示操作制御回路３１０を介して、アプリケーション制御回路２１０に伝達される。
【００６０】
３１６は識別情報メモリで、表示操作モジュール３００がスマートデバイス５０の本体及び各モジュールと通信を行う際に必要な各種識別情報が格納されている。３２０は、表示操作モジュール３００の各部に必要な所定の電圧・電流を供給する電源制御回路である。３２２は、表示操作モジュール３００の所定箇所の温度を計測するための単数或いは複数の温度センサである。３３０はインターフェース回路であり、モジュール側ＣＭＣ３４０を介して、スマートデバイス５０の本体及び各モジュールとのデータやメッセージの高速な通信を中継する。
【００６１】
＜電源モジュール４００の構成＞
電源モジュール４００は、アプリケーションプログラム制御モジュール２００による統括制御の下で、スマートデバイス５０の本体の電源バス１２２を介して電池４２０の放電・充電を行う。電源モジュール４００において、４１０は電池４２０の放電・充電制御を含め、電源モジュール４００全体を制御する電池制御回路であり、電源モジュール４００の各部に必要な所定の電圧・電流を供給する。４１６は識別情報メモリであり、電源モジュール４００がスマートデバイス５０の本体及び各モジュールと通信を行う際に必要な各種識別情報が格納されている。
【００６２】
電池４２０には、Ｌｉ−ｉｏｎ電池、燃料電池等が該当する。電池４２０は、電池制御回路４１０によりコネクタ４８０を介して、スマートデバイス５０の本体及び各モジュールに対して放電すると共に、スマートデバイス５０の本体及び不図示の充電モジュールから充電される。４２２は、電源モジュール４００の所定箇所の温度を計測するための単数或いは複数の温度センサである。４３０はインターフェース回路であり、モジュール側ＣＭＣ４４０ａを介して、スマートデバイス５０の本体及び各モジュールとのデータやメッセージの高速な通信を中継する。
【００６３】
＜撮像モジュール５００の構成＞
撮像モジュール５００は、アプリケーションプログラム制御モジュール２００による統括制御の下で、スマートデバイス５０の本体によって制御され、所望の撮像処理を行うモジュールとしての撮像装置である。撮像モジュール５００において５１０は、光軸上に光学レンズを複数配置したカメラである。更にカメラ５１０は、通過する光量を調節する絞り機構と、光軸方向に少なくとも一枚の光学レンズを移動させて焦点調節を行うＡＦ機構と、これらの構成部品を内部に収納するレンズ鏡筒とで構成されている。またカメラ５１０は、光電変換により画像データを得る撮像センサと、画像データを処理する画像処理回路と、各機構を制御する駆動制御回路とを備える。
【００６４】
カメラ５１０は、絞りやシャッター速度や撮像センサの感度を最適に設定する自動露出調節（ＡＥ）、被写体距離に応じた自動焦点調節（ＡＦ）、色温度を調節して適正な色調を再現する自動ホワイトバランス（ＡＷＢ）などの制御を実現する。他にも本実施例は、姿勢検知モジュール８００で取得した角速度情報から手ブレを算出し、撮像センサ上で切り出した露光範囲を追従させることで、簡易的に手ブレ補正（ＩＳ）を行うことが可能である。尚、本発明はこうした撮像装置の一般的な制御方法を限定するものではなく、またこれらは既に先行技術文献等により公知であるため、詳細な個別の説明は省略する。
【００６５】
カメラ５１０への指示は、アプリケーション制御回路２１０で実行されるアプリケーションプログラムや、表示操作モジュール３００のＴＰ／ボタン３１４に対する入力に応じて行われる。カメラ５１０により取得した画像データは、アプリケーション制御回路２１０が、スマートデバイス５０の本体と表示操作モジュール３００とを制御することで、ＬＣＤパネル３１２に表示可能となる。
【００６６】
５１６は識別情報メモリで、撮像モジュール５００がスマートデバイス５０の本体及び各モジュールと通信を行う際に必要な各種識別情報が格納されている。５２０は、撮像モジュール５００の各部に必要な所定の電圧・電流を供給する電源制御回路である。
【００６７】
５２２は、カメラ５１０の動作用の定数、変数、構成部品の位置情報、光軸の誤差情報、レンズの誤差情報等を記憶し、電気的に消去・記録可能な不揮発性メモリであり、例えばフラッシュメモリ等が用いられる。ここでいう構成部品の位置情報には、撮像モジュール５００の外形から見た光軸の座標情報が含まれている。前述のように、撮像モジュール５００は、スマートデバイス５０の本体に対してその外形を突き当てることで位置が決定される。尚、本実施例は撮像モジュール５００の位置決めを、スマートデバイス５０の本体のリブ１０１ａ〜ｈとスパイン１０２への突き当てにより行っているが、本発明はこれに限定されるものではない。例えば、スマートデバイス５０の本体に位置決め用の凸部を設け、撮像モジュール５００に凸部と嵌合する凹部を設けるなどしても良い。この場合、構成部品の位置情報には、凸部と嵌合する凹部から見た光軸の座標情報が含まれることになる。
【００６８】
また光軸の誤差情報には、詳しくは後述するが、例えば部品や組立の精度により製造誤差として生じる、カメラ５１０の光軸の傾きの誤差が含まれる。一方レンズの誤差情報には、例えば製造誤差として生じる焦点距離の誤差やＦ値の誤差、歪曲、光軸を回転中心とする撮像センサの角度誤差などが含まれる。こうした製造誤差に関する情報を不揮発性メモリ５２２に記憶させることで、アプリケーション制御回路２１０の処理においてこれらの誤差を補正することが可能となる。ひいては、後述する複眼カメラの機能を利用する際に画像の合成機能や測定機能の精度を高めることができる。
【００６９】
５３０はインターフェース回路であり、モジュール側ＣＭＣ５４０を介して、スマートデバイス５０の本体及び各モジュールとのデータやメッセージの高速な通信を中継する。
【００７０】
＜撮像モジュール６００の構成＞
撮像モジュール６００は、アプリケーションプログラム制御モジュール２００による統括制御の下で、スマートデバイス５０の本体によって制御され、所望の撮像処理を行うモジュールとしての撮像装置である。撮像モジュール６００において６１０は、光軸上に光学レンズを複数配置したカメラである。更にカメラ６１０は、通過する光量を調節する絞り機構と、光軸方向に少なくとも一枚の光学レンズを移動させて焦点調節を行うＡＦ機構と、これらの構成部品を内部に収納するレンズ鏡筒とで構成されている。またカメラ６１０は、光電変換により画像データを得る撮像センサと、画像データを処理する画像処理回路と、各機構を制御する駆動制御回路とを備える。こうしたカメラ６１０の構成部品は、前述のカメラ５１０と同様である。しかしながら、撮像モジュール６００におけるカメラ６１０の配置や形状は、撮像モジュール５００におけるカメラ５１０の配置や形状とは異なっている。
【００７１】
カメラ６１０は、カメラ５１０と同様の制御を実現する。具体的には、絞りやシャッター速度や撮像センサの感度を最適に設定する自動露出調節（ＡＥ）、被写体距離に応じた自動焦点調節（ＡＦ）、色温度を調節して適正な色調を再現する自動ホワイトバランス（ＡＷＢ）などの制御を実現する。他にも本実施例は、姿勢検知モジュール８００で取得した角速度情報から手ブレを算出し、撮像センサ上で切り出した露光範囲を追従させることで、簡易的に手ブレ補正（ＩＳ）を行うことが可能である。尚、本発明はこうした撮像装置の一般的な制御方法を限定するものではなく、またこれらは既に先行技術文献等により公知であるため、詳細な個別の説明は省略する。
【００７２】
カメラ６１０への指示は、アプリケーション制御回路２１０で実行されるアプリケーションプログラムや、表示操作モジュール３００のＴＰ／ボタン３１４に対する入力に応じて行われる。カメラ６１０により取得した画像データは、アプリケーション制御回路２１０が、スマートデバイス５０の本体と表示操作モジュール３００とを制御することで、ＬＣＤパネル３１２に表示可能となる。
【００７３】
６１６は識別情報メモリで、撮像モジュール６００がスマートデバイス５０の本体及び各モジュールと通信を行う際に必要な各種識別情報が格納されている。６２０は、撮像モジュール６００の各部に必要な所定の電圧・電流を供給する電源制御回路である。
【００７４】
６２２は、カメラ６１０の動作用の定数、変数、構成部品の位置情報、光軸の誤差情報、レンズの誤差情報等を記憶し、電気的に消去・記録可能な不揮発性メモリであり、例えばフラッシュメモリ等が用いられる。ここでいう構成部品の位置情報には、撮像モジュール６００の外形から見た光軸の座標情報が含まれている。前述のように、撮像モジュール６００は、スマートデバイス５０の本体に対してその外形を突き当てることで位置が決定される。尚、本実施例は撮像モジュール６００の位置決めを、スマートデバイス５０の本体のリブ１０１ａ〜ｈとスパイン１０２への突き当てにより行っているが、本発明はこれに限定されるものではない。例えば、スマートデバイス５０の本体に位置決め用の凸部を設け、撮像モジュール６００に凸部と嵌合する凹部を設けるなどしても良い。この場合、構成部品の位置情報には、凸部と嵌合する凹部から見た光軸の座標情報が含まれることになる。
【００７５】
また光軸の誤差情報には、詳しくは後述するが、例えば部品や組立の精度により製造誤差として生じる、カメラ６１０の光軸の傾きの誤差が含まれる。一方レンズの誤差情報には、例えば製造誤差として生じる焦点距離の誤差やＦ値の誤差、歪曲、光軸を回転中心とする撮像センサの角度誤差などが含まれる。こうした製造誤差に関する情報を不揮発性メモリ６２２に記憶させることで、アプリケーション制御回路２１０の処理においてこれらの誤差を補正することが可能となる。ひいては、後述する複眼カメラの機能を利用する際に画像の合成機能や測定機能の精度を高めることができる。
【００７６】
６３０はインターフェース回路であり、モジュール側ＣＭＣ６４０を介して、スマートデバイス５０の本体及び各モジュールとのデータやメッセージの高速な通信を中継する。
【００７７】
＜姿勢検知モジュール８００の構成＞
姿勢検知モジュール８００は、アプリケーションプログラム制御モジュール２００による統括制御の下で、スマートデバイス５０の本体によって制御され、スマートデバイス５０の姿勢を検知する。姿勢検知モジュール８００において、８１０は３軸のジャイロセンサから角速度情報を取得するジャイロセンサである。８１６は識別情報メモリであり、姿勢検知モジュール８００がスマートデバイス５０の本体及び各モジュールと通信を行う際に必要な各種識別情報が格納されている。８２０は、姿勢検知モジュール８００の各部に必要な所定の電圧・電流を供給する電源制御回路である。８２２は、姿勢検知モジュール８００の所定箇所の温度を計測するための単数或いは複数の温度センサである。
【００７８】
８３０はインターフェース回路であり、モジュール側ＣＭＣ８４０を介して、スマートデバイス５０の本体及び各モジュールとのデータやメッセージの高速な通信を中継する。インターフェース回路８３０は、ジャイロセンサ８１０で取得した角速度情報を、スマートデバイス５０の本体に送信する。そこから更に、スマートデバイス５０の本体は、アプリケーションプログラム制御モジュール２００にデータを高速で転送する。こうして、姿勢検知モジュール８００の角速度情報は、表示操作モジュール３００における表示方向の切り替えや、撮像モジュール５００，６００に対する手ブレ補正などに用いられる。
【００７９】
＜アプリケーションプログラム制御モジュール２００の動作説明＞
図６は、アプリケーションプログラム制御モジュール２００により実行される、複数のモジュールが装着されたスマートデバイス５０の動作制御処理の手順を示すフローチャートである。
【００８０】
図６の処理は、アプリケーションプログラム制御モジュール２００とスマートデバイス５０の本体と表示操作モジュール３００とが低消費電力状態であって、表示操作モジュール３００の電源ボタン３１４ａへのユーザ操作があったときに開始する。
【００８１】
かかるユーザ操作があると、表示操作制御回路３１０は、アプリケーション制御回路２１０へ向けてスリープ解除を示す起動（Ｗａｋｅ）信号を送信する。アプリケーション制御回路２１０は、表示操作制御回路３１０からの起動（Ｗａｋｅ）信号を受信すると、ステップＳ１１００において初期設定を実行する。また本実施例は、スマートデバイス５０の本体に装着される全てのモジュールのコネクタ部に検出（Ｄｅｔｅｃｔ）信号の端子が設けられている。これにより、例えば空いているスロットに対して新たなモジュールを装着した際も同様に、検出（Ｄｅｔｅｃｔ）信号が送信されてステップＳ１１００に移行する。
【００８２】
ステップＳ１１００において、アプリケーション制御回路２１０は、所定のフラグや制御変数等をリセットして初期化すると共に、アプリケーションプログラム制御モジュール２００の各部の初期化を行う。続いて、アプリケーション制御回路２１０は、不揮発性メモリ２１４から読み出したソフトウェアプログラムを実行して、カーネル起動とＯＳ起動を順次行う。その後、インターフェース回路２３０、モジュール側ＣＭＣ２４０ａ、本体側ＣＭＣ１４２ａ、スイッチインターフェース回路１３０を介して、スマートデバイス５０の本体のシステム制御回路１１０との通信の初期化を行う。システム制御回路１１０の初期化によってスマートデバイス５０の本体に装着される全てのモジュールは動作可能な状態となる。これにより、例えば表示操作モジュール３００において、表示操作制御回路３１０は、表示部であるＬＣＤパネル３１２に所定の起動画面を表示させる。そして表示操作モジュール３００は、操作入力手段であるＴＰ／ボタン３１４に対するユーザの入力指示が可能な状態に至る。
【００８３】
ステップＳ１１００を終えると、ステップＳ１１０１に進み、アプリケーション制御回路２１０は、ステップＳ１１０１において終了メッセージを受信したか否かを判断する。この終了メッセージは、表示操作制御回路３１０において以下のような形でアプリケーション制御回路２１０に送信される。まず、表示部であるＬＣＤパネル３１２に終了ボタンを表示すると共に、この終了ボタンをＴＰ／ボタン３１４でユーザ選択できる状態とする。その後、この終了ボタンがユーザ選択されたとき、表示操作制御回路３１０は、アプリケーション制御回路２１０に終了メッセージを送信する。
【００８４】
ステップＳ１１０１で終了メッセージを受信したと判断した場合、ステップＳ１１２０に進む。ステップＳ１１２０で、アプリケーション制御回路２１０は終了処理を行なう。具体的には、アプリケーション制御回路２１０は、システム制御回路１１０に終了メッセージを送信した後、フラグや制御変数等を必要に応じて不揮発性メモリ２１４に退避する。それと共に、ＯＳ及びカーネルを低消費電力で動作する動作終了状態に移行する。そして、電源制御回路２２０を介したアプリケーションプログラム制御モジュール２００とスマートデバイス５０の本体と表示操作モジュール３００とへの電力供給を、低消費電力の設定に変更する。システム制御回路１１０は、終了メッセージを受信すると、アプリケーションプログラム制御モジュール２００とスマートデバイス５０の本体、表示操作モジュール３００以外のモジュールの全ての動作を停止する処理を行う。
【００８５】
ステップＳ１１２０の終了処理を終えた後、アプリケーション制御回路２１０は、本処理を終了し、所謂電源ＯＦＦの状態に至る。
【００８６】
ステップＳ１１０１で、終了メッセージを受信しなかった場合、ステップＳ１１０２に進む。ステップＳ１１０２において、アプリケーション制御回路２１０は、表示操作モジュール３００の表示操作制御回路３１０からスリープ状態に移行するスリープメッセージを受信したかどうかを判断する。このスリープメッセージは、表示操作制御回路３１０において以下のような形でアプリケーション制御回路２１０に送信される。まず、表示部であるＬＣＤパネル３１２にスリープボタンを表示すると共に、このスリープボタンをＴＰ／ボタン３１４でユーザ選択できる状態とする。その後、このスリープボタンがユーザ選択されたとき、表示操作制御回路３１０は、アプリケーション制御回路２１０にスリープ状態に移行するスリープメッセージを送信する。
【００８７】
ステップＳ１１０２で、スリープ状態に移行するスリープメッセージを受信したと判断した場合、ステップＳ１１０３に進む。ステップＳ１１０３において、アプリケーション制御回路２１０はスリープ処理を行なう。具体的には、アプリケーション制御回路２１０は、システム制御回路１１０にスリープメッセージを送信した後、フラグや制御変数等を必要に応じて不揮発性メモリ２１４に退避する。それと共に、ＯＳ及びカーネルを低消費電力で動作するスリープ動作状態に移行する。そしてシステム制御回路１１０は、スリープメッセージを受信すると、スマートデバイス５０の全てのモジュールの動作をスリープ状態に移行する処理を行った後、ステップＳ１１０４に進む。
【００８８】
尚、ステップＳ１１００で初期設定がされると、表示操作モジュール３００のＬＣＤパネル３１２には、上述した終了ボタン、スリープボタンの他、後述するリリースボタン、アプリ実行ボタンが表示される。これらのボタンのいずれもＬＣＤパネル３１２に表示されてから所定時間が経過するまでにユーザ選択されない場合がある。また、本処理の開始時に表示操作モジュール３００の電源ボタン３１４ａへのユーザ操作があった後、表示操作制御回路３１０から送信される起動（Ｗａｋｅ）信号が所定の時間を経過しても受信されない場合がある。このような場合、スリープメッセージを受信したのと同じようにステップＳ１１０３に進む。更に、ステップＳ１１０２において、アプリケーション制御回路２１０は、後述する処理による入力指示や起動（Ｗａｋｅ）信号が最後に受信されたタイミングから経過した時間を積算する。この積算した時間を所定値と比較した結果、積算時間のほうが長ければスリープ状態に移行する。その後のスリープ処理については、前述した通りである。
【００８９】
ステップＳ１１０４において、アプリケーション制御回路２１０は、コネクタ２８０を介して、各モジュールから送信される起動（Ｗａｋｅ）信号を受信したかどうか判断する。ステップＳ１１０４で起動（Ｗａｋｅ）信号を受信しなかったならば、起動（Ｗａｋｅ）信号を受信するまでスリープ動作状態を継続する。ここで、本実施例におけるスリープ動作状態とは、前述した電源ＯＦＦの状態とは異なる。例えば、移動体通信モジュール９００が移動体通信の規格に準じた呼び出し信号を受信した際、アプリケーション制御回路２１０は、直ちにスマートデバイス５０をスリープ動作状態から所定のアプリ実行状態へと移行させる。尚、こうした移動体無線通信システムの一般的な制御については、既に公知であるため詳しい説明を省略する。
【００９０】
ステップＳ１１０４で起動（Ｗａｋｅ）信号を受信したならば、ステップＳ１１０５に進む。ステップＳ１１０５において、アプリケーション制御回路２１０は、フラグや制御変数等を必要に応じて不揮発性メモリ２１４から戻す。それと共に、ＯＳ及びカーネルを通常消費電力で動作する通常動作状態に移行し、電源制御回路２２０を介したスマートデバイス５０の全てのモジュールへの電力供給を通常消費電力の設定に変更する復帰処理を行う。更にステップＳ１１０５において、アプリケーション制御回路２１０は、スマートデバイス５０の本体のシステム制御回路１１０との通信の復帰処理を行う。このときシステム制御回路１１０は、アプリケーション制御回路２１０以外の全てのモジュールに対して復帰処理を行い、スマートデバイス５０を通常動作状態に移行させて、ステップＳ１１０１に戻る。
【００９１】
ステップＳ１１０２でスリープ状態に移行するスリープメッセージを受信しなかった場合、ステップＳ１１０６に進む。ステップＳ１１０６において、アプリケーション制御回路２１０は、表示操作モジュール３００の表示操作制御回路３１０からリリースメッセージを受信したかどうかを判断する。このリリースメッセージは、表示操作制御回路３１０において以下のような形でアプリケーション制御回路２１０に送信される。まず、表示操作制御回路３１０は、表示部であるＬＣＤパネル３１２にリリースボタンを表示すると共に、このリリースボタンをＴＰ／ボタン３１４でユーザ選択できる状態とする。その後、このリリースボタンがユーザ選択され、更にどのモジュールの取り外しを行うかのユーザ指示が入力された場合、表示操作制御回路３１０は、アプリケーション制御回路２１０にリリース状態に移行するリリースメッセージを送信する。
【００９２】
ステップＳ１１０６でリリース状態に移行するリリースメッセージを受信したと判断した場合、ステップＳ１１０７に進む。ステップＳ１１０７において、アプリケーション制御回路２１０は、ユーザが取り外しを意図するモジュールに対して、正常に機能を終了させてＥＰＭを解放するためのリリース処理を実行する。リリース処理の詳細は、図７を用いて後述する。ステップＳ１１０７を終了すると、ステップＳ１１０１に戻る。
【００９３】
ステップＳ１１０６で、リリース状態に移行するリリースメッセージを受信しなかった場合、ステップＳ１１０８に進む。ステップＳ１１０８において、アプリケーション制御回路２１０は、各モジュールの検出（Ｄｅｔｅｃｔ）信号を受信したかどうかを判断する。ここで検出（Ｄｅｔｅｃｔ）信号とは、スマートデバイス５０の本体に対して新たにモジュールが装着されたことを検出する信号である。また、この検出信号は、その新たに装着されたモジュールからシステム制御回路１１０を介してアプリケーション制御回路２１０に送信される電気信号のことである。
【００９４】
ステップＳ１１０８で検出（Ｄｅｔｅｃｔ）信号を受信したならば、ステップＳ１１０９に進む。ステップＳ１１０９において、アプリケーション制御回路２１０は、スマートデバイス５０の本体に挿入された該当モジュールを固定し適切に機能させるためのモジュール設定処理を実行する。モジュール設定処理の詳細は、図８を用いて後述する。ステップＳ１１０９を終了すると、ステップＳ１１０１に戻る。
【００９５】
ステップＳ１１０８で検出（Ｄｅｔｅｃｔ）信号を受信しなかったと判断した場合、ステップＳ１１１０に進む。ステップＳ１１１０において、アプリケーション制御回路２１０は、表示操作モジュール３００の表示操作制御回路３１０から、アプリケーションプログラム関係メッセージを受信したかどうかを判断する。このアプリケーションプログラム関係メッセージは、表示操作制御回路３１０において以下のような形でアプリケーション制御回路２１０に送信される。まず、表示操作制御回路３１０は、表示部であるＬＣＤパネル３１２にアプリ実行ボタンを表示すると共に、このアプリ実行ボタンをＴＰ／ボタン３１４でユーザ選択できる状態とする。その後、このアプリ実行ボタンがユーザ選択され、更にどのアプリケーションプログラムを実行するかユーザ入力された場合、表示操作制御回路３１０は、アプリケーション制御回路２１０にアプリケーションプログラム関係メッセージを送信する。
【００９６】
ステップＳ１１１０でアプリケーションプログラム関係メッセージを受信したと判断した場合、ステップＳ１１１１に進み、アプリケーション制御回路２１０は、ステップＳ１１１１でアプリケーションプログラム実行処理を実行する。本実施例で想定されるアプリケーションプログラムには、各モジュールの組み合わせによって実現され得る様々な機能が含まれる。例えば、移動体通信モジュール９００と表示操作モジュール３００の組み合わせにより通話機能が可能となり、無線ＬＡＮモジュール７００と表示操作モジュール３００の組み合わせによりインターネット接続を介したウェブ閲覧が可能となる。また例えば、撮像モジュール５００のみによって一般的な撮影機能が実現され、そこへ撮像モジュール６００を組み合わせることによって複眼カメラの機能である画像の合成機能や測定機能が実現される。こうしたアプリケーションプログラムの一例である撮影アプリケーション実行処理の詳細は、図９を用いて後述する。ステップＳ１１１１を終了すると、ステップＳ１１０１に戻る。
【００９７】
ステップＳ１１１０でアプリケーションプログラム関係メッセージを受信しなかったと判断した場合、ステップＳ１１０１に戻る。
【００９８】
図７は、図６のステップＳ１１０７のリリース処理の詳細な手順を示すフローチャートである。
【００９９】
図７において、まずステップＳ１２０１で、アプリケーション制御回路２１０は、システム制御回路１１０にユーザにより取り外し指示を受けたモジュール（以下「リリース対象モジュール」という）の機能の終了を指示するメッセージを送信する。次にステップＳ１２０２に進み、アプリケーション制御回路２１０は、システム制御回路１１０から送信される、リリース対象モジュールのモジュール情報が更新されていることを通知する情報更新メッセージを受信したかどうかを判断する。
【０１００】
ステップＳ１２０２で情報更新メッセージを受信しなかったと判断した場合、アプリケーション制御回路２１０は、ステップＳ１２０３で所定のエラー処理を行う。その後、ステップＳ１２０５においてＥＰＭを制御することにより、リリース対象モジュールのロック状態を解除して本処理を終了する。ステップＳ１２０３のエラー処理では、表示操作モジュール３００などにエラー内容を表示してユーザに通知しても良い。
【０１０１】
ステップＳ１２０２で情報更新メッセージを受信したと判断した場合、ステップＳ１２０４に進む。ステップＳ１２０４において、アプリケーション制御回路２１０は、受信した情報更新メッセージの内容に応じて、ＯＳ及びカーネルが管理する不揮発性メモリ２１４及びメモリ２１２の所定領域に格納された管理情報を更新する。ここでいう管理情報とは、モジュール管理情報、ＥＰＭ制御管理情報、ＲＦバス構成管理情報を含む。その後、ステップＳ１２１５においてＥＰＭを制御することにより、リリース対象モジュールのロック状態を解除して本処理を終了する。
【０１０２】
図８は、図６のステップＳ１１０９の装着処理の詳細な手順を示すフローチャートである。
【０１０３】
図８において、まずステップＳ１３０１で、アプリケーション制御回路２１０は、システム制御回路１１０と共にメッセージ通信のコネクションセットアップを行い、システム制御回路１１０とのネットワークリンクを確立する。次にステップＳ１３０２に進み、アプリケーション制御回路２１０は、システム制御回路１１０を介してスマートデバイス５０の本体に装着されたモジュール（以下「装着モジュール」という）から初期化などのモジュール情報を取得する。更にステップＳ１３０３に進み、アプリケーション制御回路２１０は、ステップＳ１３０２で取得したモジュール情報が、スマートデバイス５０において問題の無い内容かどうかを検証する。例えば、安定した通信が可能か、既に装着されている電源モジュール４００の電圧で動作可能か、またその他にも、スマートデバイス５０に個別で設定されている規格がある場合にはそれを満足しているか等が検証される。
【０１０４】
ステップＳ１３０３で検証した結果に問題があれば、アプリケーション制御回路２１０は、ステップＳ１３０４で所定のエラー処理を行った後、装着モジュールに対して本処理を終了する。エラー処理では、表示操作モジュール３００などにエラー内容などを表示してユーザに通知しても良い。
【０１０５】
一方、ステップＳ１３０３で検証した結果に問題が無ければ、装着モジュールが正常であると判断し、ステップＳ１３０５に進む。ステップＳ１３０５において、アプリケーション制御回路２１０は、初期化を行う装着モジュールのモジュール情報に基づき、不揮発性メモリ２１４及びメモリ２１２の所定領域に格納された管理情報を更新する。ここでいう管理情報とは、モジュール管理情報、ＥＰＭ制御管理情報、ＲＦバス構成管理情報を含む。
【０１０６】
次にステップＳ１３０６において、アプリケーション制御回路２１０は、システム制御回路１１０に初期化を行う装着モジュールのＥＰＭロック指示メッセージを送信する。これにより、スマートデバイス５０の本体と初期化を行う装着モジュールとが、ＥＰＭにより固定されてロック状態となる。
【０１０７】
続いて、ステップＳ１３０７でアプリケーション制御回路２１０は、システム制御回路１１０に向けて通信開始指示メッセージを送信し、一連の初期化処理を行った装着モジュールとのメッセージ通信が可能になったことを通知する。その後、ステップＳ１３０８において、状態変化フラグをＯＮに切り替えて、本処理を終了する。ここでいう状態変化フラグとは、各モジュールに割り付けられて不揮発性メモリ２１４に保持されるフラグであり、各モジュールの状態変化の有無によりＯＮとＯＦＦとが切り替えられる再処理フラグである。状態変化フラグがＯＮとなるのは、各モジュールの状態変化フラグがＯＦＦの状態において、スマートデバイス５０の本体に装着された各モジュールの状態が変化した時である。尚、状態の変化としては、各モジュールの装着の他に、電池残量の変化、故障、性能の劣化などが含まれる。また、スマートデバイス５０の本体にある温度センサ１１８により計測された温度変化が一定の閾値を超えた場合や、図５において不図示の湿度センサにより計測された湿度変化が一定の閾値を超えた場合は、すべてのモジュールの状態変化フラグがＯＮとなる。
【０１０８】
本処理の結果、装着モジュールが正常であり（ステップＳ１３０３でＹＥＳ）、更に装着モジュールがロック状態となったときに（ステップＳ１３０６）、装着モジュールの機能がスマートデバイス５０において利用可能な状態となる。
【０１０９】
尚、本発明の装着処理は図８に示す手順に限定されるわけでない。例えば、各通信を安定させるため、ＥＰＭによる装着モジュールのロックをステップＳ１３０１の前に行っても良く、その場合はステップＳ１３０４の後にロック解除を行うことになる。
【０１１０】
図９は、図６のステップＳ１１１１のアプリケーションプログラム実行処理の一例である撮影アプリケーション実行処理の動作フローを示すフローチャートである。
【０１１１】
図９において、まずステップＳ１４０１で表示操作モジュール３００の操作入力により撮影アプリケーションを立ち上げると、アプリケーション制御回路２１０は、管理テーブル２９０から撮影アプリケーションの管理ファイルの情報を取得する。この情報には、撮影アプリケーションを実行するのに不可欠なモジュールの種類や、撮影機能を最大限に活用できる該当モジュールの組み合わせや、該当モジュールを装着するのに最適な各スロットの位置関係が含まれる。
【０１１２】
次にステップＳ１４０２に進み、アプリケーション制御回路２１０は、システム制御回路１１０を介して各モジュールからモジュール情報を取得する。そしてステップＳ１４０３において、撮像アプリケーションの管理ファイルの情報に基づき、必要なモジュールが装着されているか、その組み合わせに問題がないか等を検証する。
【０１１３】
ステップＳ１４０３で検証した結果に問題があれば、アプリケーション制御回路２１０は、ステップＳ１４０４で所定のエラー処理を行った後、本撮影アプリケーション実行処理を終了する。エラー処理では、表示操作モジュール３００などにエラー内容などを表示してユーザに通知しても良い。例えば、ステップＳ１４０２の時点でいずれのスロットにも撮像モジュールが装着されておらず、撮像アプリケーションを実行できない場合は、ステップＳ１４０４のエラー処理においてエラー内容を通知し、本撮影アプリケーション実行処理を終了する。またその他に、装着された撮像モジュール５００に手ブレ補正（ＩＳ）の機能が備わっているにも関わらず、例えば姿勢検知モジュール８００が装着されていないために手ブレを検知できない場合がある。この場合は、ステップＳ１４０４のエラー処理において撮影機能の一部を制限する。この場合は、本撮影アプリケーション実行処理を終了する必要はなく、エラー内容の通知に対してユーザの操作入力等があれば、状況に応じてステップＳ１４０５の撮影実行処理に移行しても良い。
【０１１４】
ステップＳ１４０３で検証した結果に問題が無ければ、ステップＳ１４０５に進んで撮影実行処理を行う。その後、アプリケーション制御回路２１０は、撮像アプリケーションに必要な各モジュールの動作を停止し、本処理を終了する。撮影実行処理の詳細は、図１０を用いて後述する。
【０１１５】
図１０は、図９のステップＳ１４０５において実行される撮影実行処理の手順を示すフローチャートである。
【０１１６】
図１０のステップＳ１５０１で、アプリケーション制御回路２１０は、モジュール起動指示のメッセージをシステム制御回路１１０に送信する。システム制御回路１１０を介してこの撮像モジュール起動指示のメッセージを受信すると、装着されている撮像モジュール（本実施例では、撮像モジュール５００，６００）はリセット動作を行って撮影準備を完了させる。
【０１１７】
次にステップＳ１５０２において、図９のステップＳ１４０２で取得したモジュール情報から、アプリケーション制御回路２１０は、撮像モジュールが複数装着されているかどうかを判断する。撮像モジュールが一つのみであった場合はステップＳ１５０３に進む。例えば撮像モジュール５００のみが装着されている場合、アプリケーション制御回路２１０が、そのカメラ５１０を利用して単眼モードの一般的な撮影を実行し、ステップＳ１５１０に進む。ここでいう一般的な撮影とは、自動露出（ＡＥ）、自動焦点調節（ＡＦ）、自動ホワイトバランス（ＡＷＢ）、手ブレ補正（ＩＳ）等の制御を行いつつ、撮像センサから所望の画像データを取得することである。尚、本発明はこうした一般的な撮影の内容を限定するものではなく、またこれらは既に先行技術文献等により公知であるため、詳細な説明は省略する。
【０１１８】
ステップＳ１５０２で、撮像モジュールが複数装着されていると判断した場合は、ステップＳ１５０４に進む。ステップＳ１５０４において、アプリケーション制御回路２１０は、装着されている各撮像モジュールの状態が変化したかどうかを検知するため、状態変化フラグがＯＮとなっているかどうかを判断する。このとき、状態変化フラグが全てＯＦＦであればステップＳ１５０９に進む。例えば撮像モジュール５００，６００が装着されている場合、アプリケーション制御回路２１０が、そのカメラ５１０，６１０を介して複眼撮影実行処理を行なった後、本処理を終了する。前述のように、複眼カメラの機能には、画像の合成機能や測定機能が含まれる。尚、複眼撮影実行処理については、図１１を用いて詳しく後述する。
【０１１９】
ステップＳ１５０４の判断の結果、装着されている撮像モジュール（例えば撮像モジュール５００，６００）のいずれかの状態変化フラグがＯＮとなっていた場合、ステップＳ１５０５に進む。
【０１２０】
ステップＳ１５０５では、アプリケーション制御回路２１０は、各スロットの位置情報と各光軸の座標情報とを取得する。各スロットの位置情報については、スマートデバイス５０の本体のメモリ１１４から取得する。同様に、カメラ５１０における光軸の座標情報については、撮像モジュール５００の不揮発性メモリ５２２から、カメラ６１０における光軸の座標情報については、撮像モジュール６００の不揮発性メモリ６２２から取得する。
【０１２１】
次にステップＳ１５０６に進み、アプリケーション制御回路２１０は、カメラ５１０における光軸とカメラ６１０における光軸との距離である基線長を計算する。背景技術において前述したように、少なくとも２つの撮像モジュールが複眼カメラの機能を発揮するには、正確な基線長を得ることは重要である。尚、本発明でいう基線長とは、少なくとも２つの撮像モジュールの視差情報を処理する目的で用いられる変数であって、２つの光軸間の距離を示しているが、先行技術文献によっては位置ずれ量や視差といった表現で記載されるものである。本実施例における基線長の計算方法の詳細については後述する。
【０１２２】
続いてステップＳ１５０７において、アプリケーション制御回路２１０は、ステップＳ１５０６で計算した基線長の管理情報と共に、不揮発性メモリ２１４及びメモリ２１２の所定領域に格納された管理情報を更新する。ここでいう管理情報とは、ステップＳ１５０６で新たに得た基線長の管理情報の他に、モジュール管理情報、ＥＰＭ制御管理情報、ＲＦバス構成管理情報を含む。
【０１２３】
その後、ステップＳ１５０８へ進み、アプリケーション制御回路２１０は、状態変化フラグをＯＦＦに切り替える。ここで状態変化フラグをＯＮにするタイミングとは、例えば図８の装着処理におけるステップＳ１３０８で新たなモジュールをスマートデバイス５０の５０の本体に対して装着した時である。一方、状態変化フラグをＯＦＦにするタイミングとは、例えばステップＳ１５０８のように、管理ファイルを最新の状態に更新した直後である。このように、適切なタイミングで状態変化フラグのＯＮとＯＦＦとを切り替えることにより、本実施例ではモジュールの状態変化が常に管理される。
【０１２４】
続いてステップＳ１５０９に進み、アプリケーション制御回路２１０が、例えばカメラ５１０，カメラ６１０とを介して複眼モードでの撮影を行う複眼撮影実行処理を行う。
【０１２５】
最後にステップＳ１５１０で、アプリケーション制御回路２１０は、撮像モジュール終了指示のメッセージをシステム制御回路１１０に送信し、本処理を終了する。システム制御回路１１０はこの撮像モジュール終了指示のメッセージを受信すると、電源制御回路２２０を介して撮像モジュール５００，６００への電源供給を、低消費電力の設定に変更する。
【０１２６】
図１１は、図１０のステップＳ１５０９の複眼撮影実行処理の手順を示すフローチャートである。
【０１２７】
まず、図１１のステップＳ１６０１で、アプリケーション制御回路２１０は、撮像モジュール５００，６００を同時に制御して、被写体の測距処理を行う。測距処理の詳細は、図１２を用いて後述する。
【０１２８】
次にステップＳ１６０２に進み、ステップＳ１６０１で得られたデフォーカス量に基づく焦点調節と、絞りやシャッター速度や撮像センサの感度を最適に設定する露出調節とを実行する。そして、ステップＳ１６０１の測距処理からステップＳ１６０２の焦点調節及び露出調整までのステップは、次のステップＳ１６０３において、ユーザによる撮影指示があるまで繰り返される。このユーザによる撮影指示は、ＴＰ／ボタン３１４に対して行われ、これに応じて表示操作制御回路３１０は、アプリケーション制御回路２１０へ向けて撮影指示メッセージを送信する。
【０１２９】
ステップＳ１６０３で、アプリケーション制御回路２１０が撮影指示メッセージを受信すると、ステップＳ１６０４に進む。ステップＳ１６０４において、各撮像モジュール５００，６００は露光処理を行い、撮像センサの光電変換により生成される画像データをそれぞれ出力する。ステップＳ１６０４で出力された各画像データは、ステップＳ１６０５において画像補正される。このとき例えば、それぞれの画像データについて、ノイズを除去したり歪曲を補正したりする。また、画像データを変形したり移動したりすれば、お互いの画像データの傾きや意図しない位置ずれなどを補正することが可能である。理想的には、撮像モジュール５００，６００の光軸は、平行であるのが好ましい。しかしながら、部品や組立の精度によって生じる製造誤差を避けることは困難である。そこでステップＳ１６０５において、撮像モジュール５００，６００の製造誤差が、画像データの変形や移動により電子的に補正される。これにより、後述する画像の合成機能や測定機能の精度を高めることが可能となる。
【０１３０】
次にステップＳ１６０６に進み、アプリケーション制御回路２１０は、ステップＳ１６０５によって補正された各画像データの統合処理を行う。本発明のスマートデバイス５０では、撮像モジュール５００と撮像モジュール６００との視点がお互いに異なっており、それぞれにわずかな視差を有している。そのため、各画像データの画素をサブピクセル精度で組み合わせて一つの画像データに統合すれば、単眼モードで得られる画像データよりも高い解像度の画像データを生成できる。
【０１３１】
また一般的に、光学レンズから成るカメラの被写界深度が浅い場合、焦点の合った被写体については高い解像度が得られるが、焦点位置に対して奥行き方向で異なる被写体についてはボケが生じる。かかる問題を解消するために、ステップＳ１６０２において撮像モジュール５００，６００の焦点位置をわずかに異ならせておき、ステップＳ１６０６において基準画像データ及び参照画像データの焦点位置をサブピクセル精度で組み合わせるようにしてもよい。これにより、画面全体の被写界深度を深くして解像度を高めることができる。他にも、本複眼撮影実行処理では、被写界深度を浅くしてボケを強調したり、意図的に焦点位置を移動させたりする画像処理が可能である。更に、ステップＳ１６０２において焦点調整だけでなく露出調整についても同様に、各撮像モジュール５００，６００における露出の設定をそれぞれでわずかに異ならせる制御とすれば、画面全体のダイナミックレンジを拡大することができる。尚、本発明はこうした画像統合処理の制御方法を限定するものではなく、またこれらは既に先行技術文献等により公知であるため、詳細な個別の説明は省略する。
【０１３２】
ステップＳ１６０６において所望の画像データを生成した後、ステップＳ１６０７に進み、生成した画像データを記録モジュール１５０に保存する。ステップＳ１６０７を終了すると、ステップＳ１６０８に進む。ステップＳ１６０８で、ステップＳ１６０７の処理後、一定時間を経過してもユーザによる撮影終了の指示が入力されない場合、ステップＳ１６０１に戻って、本複眼撮影実行処理を繰り返す。
【０１３３】
ステップＳ１６０８でユーザによる撮影終了の指示が入力された場合、表示操作制御回路３１０は、アプリケーション制御回路２１０へ向けて撮影終了指示メッセージを送信する。この撮影終了指示メッセージの受信をしたときに、アプリケーション制御回路２１０は、撮像モジュール５００，６００の動作を停止し、本処理を終了する。
【０１３４】
図１２は、図１１のステップＳ１６０１の測距処理の手順を示すフローチャートである。
【０１３５】
まず、図１２のステップＳ１７０１で、アプリケーション制御回路２１０は、撮像モジュール５００，６００を同時に制御して露光処理を行い、続いてステップＳ１７０２で、得られた画像データの補正処理を実行する。このステップＳ１７０１，Ｓ１７０２は、それぞれ図１１で前述したステップＳ１６０４，Ｓ１６０５と同様な制御内容であるため、詳しい説明は省略する。
【０１３６】
次にステップＳ１７０３に進み、アプリケーション制御回路２１０は、ブロックマッチング処理を行う。
【０１３７】
ここでいうブロックマッチングとは、２つの視点の異なる画像データにおいて、それぞれの対応位置を求めるアルゴリズムのことである。単純化して説明すると、２つの画像データから、同一の被写体における特定箇所、例えばエッジの頂点に対応する座標を探す手法であり、基準画像データを小さな面積の領域に分割し、各領域について参照画像データ上で対応する座標を探索するものである。具体的には、ブロックマッチング処理では、画像データ間の類似性を評価するために、比較する画像データから任意の領域を切り出し、評価値を求める。求める評価値としては、その切り出された領域に対する輝度差の総和ＳＡＤ（Ｓｕｍ ｏｆ Ａｂｓｏｌｕｔｅ Ｄｉｆｆｅｒｅｎｃｅ）や、輝度差の自乗和ＳＳＤ（Ｓｕｍ ｏｆ Ｓｐｕａｒｅｄ Ｄｉｆｆｅｒｅｎｃｅ）が挙げられる。また、正規化相互相関ＺＮＣＣ（Ｚｅｒｏ−ｍｅａｎ Ｎｏｒｍａｌｉｚｅｄ Ｃｒｏｓｓ−Ｃｏｒｒｅｌａｔｉｏｎ）などをこの評価値として求めるようにしてもよい。
【０１３８】
このとき仮に、被写体が明暗差のない不鮮明なものであったり、基線長の長さに比べて被写体の距離があまりに近かったりすると、それぞれの画像データ上に同一の特定箇所が見つからない。かかる場合、ステップＳ１７０３のブロックマッチング処理に失敗することもあり得る。そこで、ブロックマッチング処理に失敗したと判定された場合（ステップＳ１７０４でＮＯ）、アプリケーション制御回路２１０は、ステップＳ１７０５に進み、所定のエラー処理を行う。エラー処理では、表示操作モジュール３００などにエラー内容を表示してユーザに通知しても良い。
【０１３９】
一方、ステップＳ１７０４でブロックマッチング処理に成功したと判定された場合は、ステップＳ１７０６に進み、画面全体について像面上の視差量の算出を行う。本実施例における視差量は、ブロックマッチング処理によって対応付けられた基準画像データに対する参照画像データの座標のずれ量に基づいて、画面全体にわたって算出されるものである。その後ステップＳ１７０７に進み、ステップＳ１７０６で算出した像面上の視差量を距離に変換する。
【０１４０】
像面上の視差量を距離に変換する方法でもっとも容易なのは、下記数１に示す計算式を用いる方法である。Ｚは被写体までの距離、Ｌは撮像モジュール５００，６００の間の基線長、ｆはカメラ５１０，６１０の焦点距離、ｄは視差量を示している。尚、ここでは説明を単純化するため、撮像モジュールは２つとし、また、それぞれのカメラの焦点距離を同一としたが、本発明はこれに限定されるものではない。
［数１］
Ｚ＝Ｌ×ｆ÷ｄ
【０１４１】
ステップＳ１７０７で、画面全体にわたって像面上の視差量を距離に換算し、所謂距離マップを作成した後、ステップＳ１７０８において、所望の被写体が含まれるように測距範囲を指定する。測距範囲の指定は、撮影対象の被写体が含まれるように、例えば指標としてＬＣＤパネル３１２上に移動自在な測距枠を表示させるなど、一般的にはユーザの操作によって行われるものである。他にも、例えば人物の顔など、被写体の特徴点を検出することにより、アプリケーション制御回路２１０が判断して、自動で行うものであっても構わない。
【０１４２】
ステップＳ１７０８で測距範囲を指定すると、どの被写体を目標とするのかが明確になり、ステップＳ１７０７で作成した距離マップのどの範囲を参照するのかが一義的に決定される。そしてステップＳ１７０９において、距離マップ上の目標となる焦点位置と、実際の光学レンズの位置で決定される現在の焦点位置との差を、デフォーカス量として算出する。本実施例の撮像モジュール５００，６００は、このデフォーカス量に基づいて光学レンズの移動量を算出し、図１１のステップＳ１６０２で前述した焦点調節を行う。その後、本測距処理を終了する。
【０１４３】
以上で、スマートデバイス５０の一連の動作フローの説明を終了する。尚、図５に示すアプリケーションプログラム制御モジュール２００に設けられた管理テーブル２９０は、無線ＬＡＮモジュール７００等により、アプリケーションプログラムのアップデートがされた時点で情報を更新することができる。そのため、図５における管理テーブル２９０は、各モジュールの種類や実現できる機能、その他必要となる情報を適宜変更したり追加したりすることが可能である。
【０１４４】
図１３は、図１０のステップＳ１５０６において実行される基線長の計算方法を示した説明図である。
【０１４５】
前述した図１０のステップＳ１５０６において、アプリケーション制御回路２１０は、スマートデバイス５０の本体のメモリ１１４から各スロットの位置情報を取得する。ここで本実施例における各スロットの位置情報とは、スロット１５００，１６００との位置情報を含み、モジュールの位置を決定する各リブ１０１ａ，ｃ〜ｈやスパイン１０２の突き当て面の位置を特定するものである。これと同時に、ステップＳ１５０６においてアプリケーション制御回路２１０は、撮像モジュール５００の不揮発性メモリ５２２からカメラ５１０における光軸の座標情報を取得する。またアプリケーション制御回路２１０は、撮像モジュール６００の不揮発性メモリ６２２からカメラ６１０における光軸の座標情報を取得する。ここで本実施例における各光軸の座標情報とは、それぞれの撮像モジュール５００，６００の外形から見た各光軸の座標を特定するものである。
【０１４６】
具体的にはこうした位置・座標情報を基にして、アプリケーション制御回路２１０は、図１３に示すＸ１０１〜Ｘ１０３及びＹ１０１、Ｙ１０２のそれぞれの数値を得る。Ｘ１０１は、撮像モジュール５００の突き当て面からカメラ５１０における光軸までの水平方向の長さを示しており、同じくＹ１０１は、垂直方向の長さを示している。Ｘ１０２は、スマートデバイス５０の本体におけるスパイン１０２の水平方向の長さを示している。Ｘ１０３は、撮像モジュール６００の突き当て面からカメラ６１０における光軸までの水平方向の長さを示しており、同じくＹ１０２は、垂直方向の長さを示している。
【０１４７】
図１３に示すＬ１００は、カメラ５１０における光軸とカメラ６１０における光軸とを結んだ中心線の長さを示しており、基線長に相当するものである。基線長Ｌ１００は、Ｘ１０１〜Ｘ１０３とＹ１０１、Ｙ１０２とから幾何学的に算出されるものである。ここで本実施例における基線長Ｌ１００は、下記数２に示す計算式によって求められる。
［数２］
Ｌ１００＝√｛（Ｘ１０１＋Ｘ１０２＋Ｘ１０３）２＋（Ｙ１０１−Ｙ１０２）２｝
【０１４８】
上記に示すように、計算式自体は比較的単純であり、アプリケーションプログラム制御モジュール２００のメモリ２１２や不揮発性メモリ２１４に要求とされるメモリ容量は比較的少ない。更に、アプリケーション制御回路２１０による処理速度は非常に高速であるため、合焦や露光開始までにタイムラグを生じさせてしまう恐れはない。
【０１４９】
図１４は、本実施例にかかる撮像モジュール５００のスマートデバイス５０の本体に対する光軸の傾きを示す説明図である。図１４（ａ）は、図１３において撮像モジュール５００を水平方向に分断した際の断面であり、カメラ５１０の光軸を通過するＳ１−Ｓ１断面図である。一方図１４（ｂ）は、図１３において撮像モジュール５００を垂直方向に分断した際の断面であり、カメラ５１０の光軸を通過するＳ２−Ｓ２断面図である。尚、図１４における水平方向とは、各リブ１０１ａ〜ｈの長手方向を指し、垂直方向とは、本図において不図示のスパイン１０２の長手方向を指す。
【０１５０】
図１４（ａ）に示すθｘは、カメラ５１０の光軸に生じる水平方向の傾き角度を模式的に示したものであり、図１４（ｂ）に示すθｙは、カメラ５１０の光軸に生じる垂直方向の傾き角度を模式的に示したものである。前述のようにスマートデバイス５０の本体では、少なくともスロット１５００，１６００とが同一平面であり、且つカメラ５１０，６１０の光軸が平行であるのが好ましい。しかしながら、部品や組立の精度によって生じる製造誤差は避けることができず、製造工程においてレンズ位置調整等の修正は図るものの、それぞれ微小な水平方向の傾き角度θｘと垂直方向の傾き角度θｙとが残ってしまう。尚、図１４ではカメラ５１０の光軸に生じる傾きを示しているが、こうした製造誤差はカメラ６１０にも同様に生じるものである。
【０１５１】
そこで本実施例では、撮像モジュール５００，６００の製造誤差を製造工程において測定する。この測定結果としてのカメラ５１０，６１０の光軸の傾きはそれぞれ撮像モジュール５００の不揮発性メモリ５２２及び撮像モジュール６００の不揮発性メモリ６２２に記憶させる。こうすることで、図１１のステップＳ１６０５及び図１２のステップＳ１７０２において画像データを補正する際、アプリケーション制御回路２１０がそれぞれの誤差を考慮して、理想の系に近づけるように変形したり移動したりすることが可能となる。こうして本実施例では、複眼カメラの機能を利用する際に画像の合成機能や測定機能の精度を高めることができる。尚、カメラ５１０の光軸の傾きとカメラ６１０の光軸の傾きとから誤差を補正する具体的な手法については、既に前述の特許文献２等により公知であるため、詳細な個別の説明は省略する。
【０１５２】
（実施例２）
ここまで本発明の好ましい実施の形態を、図１〜１４に示す実施例１に従って説明してきた。ここから以下に、モジュールを取り付けるスロットの組み合わせのみを実施例１から変更する実施例２について説明する。
【０１５３】
図１５は、本実施例にかかる電子機器としてのスマートデバイス５０の外観図であり、図１０のステップＳ１５０６において実行される基線長の計算方法を示した説明図である。
【０１５４】
本実施例は実施例１と異なり、スマートデバイス５０の本体の背面側において、スロット１６００に撮像モジュール５００が、またスロット１１００に撮像モジュール６００が装着されている。そして、実施例１において撮像モジュール５００が装着されていたスロット１５００に対して、本実施例では記録モジュール１５０が取り付けられた状態となっている。こうすることによって、カメラ５１０における光軸とカメラ６１０における光軸とをより離して配置し、基線長を長くすることができる。一般的に基線長を長くすると、遠くの被写体を撮影する際、立体視モードにおいて立体感を得やすく、また測距精度を高めることが可能である。また、ユーザがスマートデバイス５０を使用する際の持ちやすさなどによっても、こうした撮像モジュール５００，６００との位置関係は変更されるものである。
【０１５５】
前述した図１０のステップＳ１５０６においてアプリケーション制御回路２１０は、スマートデバイス５０の本体のメモリ１１４から各スロットの位置情報を取得する。ここで本実施例における各スロットの位置情報とは、スロット１５００，１６００とスロット１８００との位置情報を含み、モジュールの位置を決定する各リブ１０１ａ〜ｈやスパイン１０２の突き当て面の位置を特定するものである。これと同時に、ステップＳ１５０６においてアプリケーション制御回路２１０は、撮像モジュール５００の不揮発性メモリ５２２からカメラ５１０における光軸の座標情報を取得する。またアプリケーション制御回路２１０は、撮像モジュール６００の不揮発性メモリ６２２からカメラ６１０における光軸の座標情報を取得する。ここで本実施例における各光軸の座標情報とは、それぞれの撮像モジュール５００，６００の外形から見た各光軸の座標を特定するものである。
【０１５６】
具体的にはこうした位置・座標情報を基にして、アプリケーション制御回路２１０は、図１５に示すＸ２０１〜Ｘ２０３及びＹ２０１、Ｙ２０２のそれぞれの数値を得る。Ｘ２０１は、撮像モジュール５００の突き当て面からカメラ５１０における光軸までの水平方向の長さを示しており、同じくＹ２０１は、垂直方向の長さを示している。Ｘ２０２は、スマートデバイス５０の本体におけるリブ１０１ｆとリブ１０１ｈの水平方向の長さを示している。Ｘ２０３は、撮像モジュール６００の突き当て面からカメラ６１０における光軸までの水平方向の長さを示しており、同じくＹ２０２は、垂直方向の長さを示している。
【０１５７】
図１５に示すＬ２００は、カメラ５１０における光軸とカメラ６１０における光軸とを結んだ中心線の長さを示しており、基線長に相当するものである。基線長Ｌ２００は、Ｘ２０１〜Ｘ２０３とＹ２０１、Ｙ２０２とから幾何学的に算出されるものである。ここで本実施例における基線長Ｌ２００は、下記数３に示す計算式によって求められる。
［数３］
Ｌ２００＝√｛（Ｘ２０１＋Ｘ２０２＋Ｘ２０３）２＋（Ｙ２０１−Ｙ２０２）２｝
【０１５８】
上記に示すように、計算式自体は比較的単純であり、アプリケーションプログラム制御モジュール２００のメモリ２１２や不揮発性メモリ２１４に要求とされるメモリ容量は比較的少ない。更に、アプリケーション制御回路２１０による処理速度は非常に高速であるため、合焦や露光開始までにタイムラグを生じさせてしまう恐れはない。
【０１５９】
以上、本発明の好ましい別の実施の形態を、図１５に従って説明した。尚、スマートデバイス５０の本体に装着可能なモジュールは多種多様であり、またモジュールを装着するスロットもユーザにより自由に選択可能であるため、図１５に示す組み合わせは単なる一例に過ぎず、本発明はその組み合わせを限定するものではない。
【０１６０】
また、本発明の目的は、以下の処理を実行することによっても達成される。即ち、上述した実施例の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）が記憶媒体に格納されたプログラムコードを読み出す処理である。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施の形態の機能を実現することになり、そのプログラムコード及び該プログラムコードを記憶した記憶媒体は本発明を構成することになる。
【符号の説明】
【０１６１】
５０  スマートデバイス
１０１ａ〜ｈ  リブ
１０２  スパイン
１１８  温度センサ
１０００〜１９００  スロット
２００  アプリケーションプログラム制御モジュール
２１０  アプリケーション制御回路
２１４  不揮発性メモリ
５００，６００  撮像モジュール
５１０，６１０  カメラ
【図１】
2018163299.tif 000003
【図２】
2018163299.tif 000004
【図３】
2018163299.tif 000005
【図４】
2018163299.tif 000006
【図５】
2018163299.tif 000007
【図６】
2018163299.tif 000008
【図７】
2018163299.tif 000009
【図８】
2018163299.tif 000010
【図９】
2018163299.tif 000011
【図１０】
2018163299.tif 000012
【図１１】
2018163299.tif 000013
【図１２】
2018163299.tif 000014
【図１３】
2018163299.tif 000015
【図１４】
2018163299.tif 000016
【図１５】
2018163299.tif 000017