以下、本実施の形態を図面を参照して説明する。
[第1の実施の形態]
図1は、第1の実施の形態の管理装置を示す図である。管理装置1は、サーバコンピュータ、ストレージ装置およびネットワーク機器などを含む様々な機器の情報を管理する。機器の情報は、該当の機器の機種名、型番、通信に用いられるアドレスなどを含む。また、各機器は、ラック2に搭載されている。以下の説明では、ラック2に搭載された機器を搭載機器と称することがある。例えば、ラック2は搭載機器2a,2b,2c,2d,2e,2fを搭載している。管理装置1は、ユーザU1が利用する端末装置3と通信し、搭載機器2a,2b,2c,2d,2e,2fそれぞれのラック2における搭載位置も管理する。
ラック2の搭載位置は、例えば、ラック2内の位置を示す位置番号によって識別される。具体的には、搭載機器2aは、位置番号“1”の位置に搭載されている。搭載機器2bは、位置番号“2”の位置に搭載されている。搭載機器2cは、位置番号“3”の位置に搭載されている。搭載機器2dは、位置番号“4”の位置に搭載されている。搭載機器2eは、位置番号“5”の位置に搭載されている。搭載機器2fは、位置番号“6”の位置に搭載されている。
なお、管理装置1、搭載機器2a,2b,2c,2d,2e,2fは、ネットワーク4に接続されており、相互に通信可能である。端末装置3は、中継装置4aを介してネットワーク4に接続されており、管理装置1と通信可能である。中継装置4aは、例えば、端末装置3との間で無線リンクを確立する無線アクセスポイントである。中継装置4aは、端末装置3と有線で接続されてもよい。
管理装置1は、記憶部1aおよび演算部1bを有する。記憶部1aは、RAM(Random Access Memory)などの揮発性記憶装置でもよいし、HDD(Hard Disk Drive)やフラッシュメモリなどの不揮発性記憶装置でもよい。演算部1bは、CPU(Central Processing Unit)、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)などを含み得る。演算部1bはプログラムを実行するプロセッサであってもよい。ここでいう「プロセッサ」には、複数のプロセッサの集合(マルチプロセッサ)も含まれ得る。
記憶部1aは、比率テーブルT1を記憶する。比率テーブルT1は、ラック2に搭載される機器の縦横比とラック2における単位サイズとの対応を示す対応情報である。例えば、比率テーブルT1には、縦横比“R1”に対して、単位サイズ“1U”(Uは、ユニット(Unit)の略)という情報が登録されている。
ここで、ラック2に搭載された搭載機器を、ラック2の正面から眺めると、搭載機器の正面部(フロント部)は、四角形となっている。縦横比は、ラック2の搭載機器を、ラック2の正面から眺めたときの当該四角形の横の長さと縦の長さとの比(=横の長さ÷縦の長さ)である。単位サイズは、縦横比に対応する機器を収納するために要するラック2における収納スペース(収納部)の数に相当する。例えば、単位サイズ“1U”は、ラック2において1台の機器を収納できる最小の収納スペースに相当する。比率テーブルT1に設定されたレコードは、「縦横比“R1”である機器を収納するために、ラック2において“1U”分の収納スペースを要する」ことを示す。あるいは、同レコードは、「縦横比“R1”の機器のサイズが“1U”に相当する」ことを示しているともいえる。ラック2を正面から見たときの収納スペースの横方向のサイズは一定である。このため、“1U”を、1台の機器を収納できる最小の収納スペースの高さ方向のサイズに相当すると考えてもよい。搭載機器の中には、高さ方向のサイズが“2U”(高さ方向に“1U”の2倍のサイズ)や“3U”(高さ方向に“1U”の3倍のサイズ)などのものも存在し得る。
演算部1bは、ラック2およびラック2に搭載された機器を撮像した画像を取得する。ここで、端末装置3は、静止画像や動画像を撮像する撮像機能を有している。例えば、端末装置3は、ラック2の正面からラック2を撮像して、ラック2およびラック2に搭載された機器の画像を含む画像データG1を生成し、管理装置1に送信する。
例えば、画像データG1は、ラック2の正面から見たラック2の筐体の外枠や、搭載機器2a,2b,2c,2d,2e,2fの正面(ラック2の正面から見た各搭載機器のフロント部分)の画像Q1,Q2,Q3,Q4,Q5,Q6を含む。画像Q1は、搭載機器2aの画像である。画像Q2は、搭載機器2bの画像である。画像Q3は、搭載機器2cの画像である。画像Q4は、搭載機器2dの画像である。画像Q5は、搭載機器2eの画像である。画像Q6は、搭載機器2fの画像である。ここで、画像データG1において、X軸方向が横方向に相当し、画像データG1のY軸方向が縦方向に相当する。演算部1bは、端末装置3により送信された画像データG1を受信する。
演算部1bは、画像およびラック2に搭載される機器の縦横比とラック2における単位サイズとの対応を示す情報(例えば、比率テーブルT1)に基づいて、機器のラック2における位置を特定する。
例えば、演算部1bは、搭載機器2a,2b,2c,2d,2e,2fに対応する四角形を画像データG1から順番に検出する。演算部1bは、四角形を検出するために、画像データG1に対して所定のエッジ強調処理を施したエッジ画像を生成することで、四角形状を検出し易くしてもよい。エッジ強調処理とは、画像内の色の濃淡の境界を際立たせた別の画像(エッジ画像と称する)を作成する処理である。演算部1bは、搭載機器2a,2b,2c,2d,2e,2fに対応する四角形を、画像データG1を基に生成したエッジ画像から検出してもよい。当該エッジ画像も、「ラック2およびラック2に搭載された機器の画像」の一例と考えることができる。
演算部1bは、検出した四角形の第1の縦横比と比率テーブルT1に登録されている第2の縦横比(縦横比“R1”)との比較に応じて、検出した四角形が、何れかの搭載機器に対応する四角形であるか否かを判定することができる。
例えば、演算部1bは、第1の縦横比と、第2の縦横比の整数n(nは1以上の整数)に対する商とが、所定の精度で一致する場合に、検出した四角形が、何れかの搭載機器に対応する四角形であると判定する。一方、演算部1bは、第1の縦横比と第2の縦横比の整数nに対する商とが所定の精度で一致しない場合に、検出した四角形が何れの搭載機器にも対応していないと判定する。
なお、ラック2内に、ブランクパネルや空き状態の収納スペースがある場合もある。ラック2の場合、ラック正面からみたときのブランクパネルや空き状態の収納スペースの縦横比は、搭載機器の縦横比と異なるため、上記の方法により区別可能である。ただし、ラックによっては区別できないことも考えられる。この場合、演算部1bは、ブランクパネルや空き状態の収納スペースに対応する四角形を何れかの搭載機器に対応する四角形であると誤検出するおそれがある。このため、例えば、ブランクパネルの正面に施される図形や色などのパターンや空き状態の収納スペースの色(黒など)のパターンの情報を記憶部1aに予め格納しておくことが考えられる。すると、演算部1bは、記憶部1aに記憶された情報を参照して、内側に特定のパターンをもつ四角形を抽出候補から除外することができる。あるいは、後述するように、演算部1bは搭載機器に対して所定の動作を行わせて、画像データにより当該動作の領域を検出することで、搭載機器に相当する四角形を特定することも考えられる。
演算部1bは、検出した四角形が、何れかの搭載機器に対応する四角形である場合、検出した四角形の、画像データG1(または画像データG1に対応するエッジ画像)における縦の長さを求める。例えば、演算部1bは、搭載機器2dに対応する画像Q4に対応する四角形を検出したとする。この場合、演算部1bは、画像Q4に対して、縦の長さa1を求める。すると、演算部1bは、長さa1/nを、画像データG1内における“1U”当たりの縦方向の長さとして求めることができる。
また、演算部1bは、画像データG1におけるラック2の画像のうち、最下段の収納スペース(搭載位置“1”に相当する収納スペース)の下側の辺L1、および、最上段の収納スペース(搭載位置“6”に相当する収納スペース)の上側の辺L2を検出する。演算部1bは、前述のエッジ画像を用いて、辺L1,L2を検出してもよい。そして、演算部1bは、辺L1,L2の間の長さa2を求める。すると、演算部1bは、ラック2の収納スペース全体の高さHを、H=a2÷(a1/n)=n×(a2/a1)と求めることができる。上記の例の場合、H=6(U)となる。これにより、演算部1bは、ラック2に対して、位置番号“1”、“2”、“3”、“4”、“5”、“6”それぞれで示される合計6段(あるいは6個)の収納スペースの存在を検出する。
更に、演算部1bは、画像データG1(あるいは、画像データG1に対応するエッジ画像)を参照して、画像Q4の横方向の下側の辺(上側の辺でもよい)を検出し、検出した当該辺と辺L2との間の長さa3を求める。そして、演算部1bは、ラック2の最上段から数えた搭載機器2dの搭載位置までの段数H1を、H1=a3÷(a1/n)=n×(a3/a1)と求めることができる。これは、ラック2の最上段から数えてH1段目の搭載位置に、搭載機器2dが搭載されていることを示す。上記の例の場合、H1=3(U)となる。したがって、演算部1bは、ラック2の最上段の位置番号から“6”、“5”、“4”と数えて3つ目の位置番号“4”を、画像Q4に対応する搭載機器2dの搭載位置と特定する。なお、搭載機器の高さが2U以上である場合、特定した搭載位置から当該高さ分の数の収納スペースを該当の搭載機器で専有することになる。例えば、演算部1bは、搭載機器の高さサイズを、後述する機器情報として各搭載機器から取得できる。また、上記の例では、ラック2の最上段から数えた段数H1を求めるものとしたが、演算部1bは、ラック2の最下段から数えた段数を求めても、同様にして搭載位置を特定できる。
こうして、演算部1bは、搭載機器2dの搭載位置を位置番号“4”と特定し、搭載機器2dの機器情報に対応付けて記憶部1aに格納する。なお、演算部1bによる機器情報の取得方法には種々の方法が考えられる。具体的には、次の通りである。
第1の方法として、ユーザU1により、端末装置3を用いて入力された情報を演算部1bにより取得することが考えられる。例えば、演算部1bは、画像データG1において搭載機器2dに対応する四角形として検出された画像Q4を強調表示した画像を、端末装置3に表示させてユーザU1に提供し、ユーザU1による機器情報の入力を促してもよい。
第2の方法として、ラック2に搭載される各搭載機器のIP(Internet Protocol)アドレスなどのアドレス情報のリストを、記憶部1aに予め登録しておくことが考えられる。この場合、演算部1bは、記憶部1aに記憶されたアドレス情報で示される搭載機器から、機器情報を収集する。例えば、演算部1bは、アドレス情報を1つ選択して、該当のアドレス情報で示される搭載機器に機器情報の送信要求を送り、送信要求に対する応答として機器情報を受信する。ただし、単にアドレス情報を指定して機器情報の送信要求を送っただけでは、ラック2内のどの搭載機器が機器情報を応答したのかが分からない。
このため、第2の方法では、例えば、演算部1bは、該当のアドレス情報で示される搭載機器に対して、ラック2の前面から画像により確認可能な所定の動作を実行させる。より具体的には、該当の搭載機器のフロントパネルに設けられた特定のLEDを所定の周期で点滅させることが考えられる。あるいは、搭載機器のフロントパネルに設けられた媒体収納部(例えば、CD(Compact Disc)トレイなど)を開閉させることが考えられる。演算部1bは、ラック2における搭載機器の当該動作中の動画を、端末装置3により撮像させ、端末装置3から動画データを取得する。演算部1bは、動画データを解析することで、動画データのうち、所定の動作に相当する変化をもつ画像部分を、機器情報の送信元の搭載機器に相当する画像部分として特定できる。すると、演算部1bは、画像データG1で例示したように、当該画像部分を含む四角形を特定して、該当の搭載機器の搭載位置を特定し、機器情報に対応付けて、記憶部1aに格納することができる。なお、前述のように、ラック2内に、ブランクパネルや空き状態の収納スペースがある場合もある。この場合、ラックによっては、演算部1bが、ブランクパネルや空き状態の収納スペースに対応する四角形を画像データG1から抽出する可能性もある。第2の方法を用いることで、抽出候補から除外するパターンを記憶部1aに予め登録しておかなくても、演算部1bによりブランクパネルや空き状態の収納スペースに対応する四角形を、搭載機器に対応する四角形であると誤検出することを防げるという利点もある。
ところで、ラック内の位置を特定するための情報を送受信する通信モジュールを、ラックおよびラックマウント型機器の双方に設け、これら通信モジュール間の通信に応じてラックマウント型機器の位置を把握することも考えられる。しかし、ラックやラックマウント機器がこのような通信モジュールをもたない場合もある。この場合、ユーザU1は、結局、各搭載機器の機器情報や搭載位置の情報を管理装置1に手入力することになる。このような作業は、管理対象の機器が増大するほどユーザに多大な手間を強いることになる。あるいは、ラックやラックマウント型機器を、専用の通信モジュールをもつものに交換することも考えられる。しかし、この場合は、新たなラックやラックマウント型機器を取得したり、交換したりするためのコスト(費用、交換までの時間、および、工数など)が問題になる。
一方、管理装置1によれば、比率テーブルT1および画像データG1を基に、各搭載機器のラック2における搭載位置を特定し、機器情報に対応付けて管理することができる。このため、ラックや搭載機器に特別な通信モジュールを設けなくてよい。こうして、ラック2内の各搭載機器の搭載位置の管理を簡易化できる。また、ユーザU1による情報資産の効率的な管理を支援でき、ユーザU1による運用管理の作業の省力化を図れる。
次に、ラックに搭載されたサーバコンピュータなどの情報資産の管理を行う運用管理システムを例示して、ラック内における搭載位置を適切に管理する機能を更に具体的に説明する。
[第2の実施の形態]
図2は、第2の実施の形態のラックの例を示す図である。第2の実施の形態のシステムは、ラック10,10a,10bを含む。ラック10,10a,10bは、床面に対して垂直な方向(高さ方向)に1段、2段、・・・と複数段の収納スペース(収納部あるいは収納棚とも呼べる)をもち、各段に(あるいは2以上の段に跨って)種々の機器を搭載可能である。例えば、ラック10,10a,10bには、サーバコンピュータ(単にサーバと称することがある)、ストレージ装置、ネットワーク機器(スイッチ、ルータ、負荷分散装置およびファイアウォールなど)、無停電電源装置(UPS:Uninterruptible Power Supply)など、種々の機器を搭載可能である。例えば、ラック10,10a,10bの収納スペース全体の高さは、50Uである。ただし、50U以外の高さでもよい(例えば、ラック10が50U、ラック10aが40U、ラック10bが30Uなど)。
図3は、第2の実施の形態の運用管理システムの例を示す図である。以下では、ラック10について主に説明し、ラック10a,10bについては説明を省略する。ただし、管理サーバ100は、ラック10a,10bの搭載機器も、ラック10の搭載機器と同様に管理する。
第2の実施の形態の運用管理システムは、管理サーバ100、端末装置200および搭載機器300,300aを含む。管理サーバ100および搭載機器300,300aは、ネットワーク20に接続されている。端末装置200は、アクセスポイント21を介してネットワーク20に接続されている。ネットワーク20は、例えば、データセンタやサーバルーム内に設けられたLAN(Local Area Network)である。なお、搭載機器300,300aは、ラック10に搭載されている。ラック10には、搭載機器300,300a以外の搭載機器も搭載され得る。
管理サーバ100は、搭載機器300,300aのラック10における搭載位置を管理するサーバコンピュータである。管理サーバ100は、ネットワーク20を介して、端末装置200や搭載機器300,300aと通信可能である。管理サーバ100は、第1の実施の形態の管理装置1の一例である。
端末装置200は、ユーザU10により利用されるクライアントコンピュータである。端末装置200は、スマートフォンやタブレット装置などのスマートデバイスでもよい。端末装置200は、カメラ機能を備えており、静止画像や動画像を生成することができる。例えば、端末装置200は、ラック10を正面側から撮像し、静止画像や動画像を生成する。ラック10が扉をもつ場合、撮像時は扉を開いた状態とする。
搭載機器300,300aは、ラック10に搭載されている機器である。前述のように、搭載機器300,300aとしては、サイズや用途の異なる種々の機器が考えられる。なお、搭載機器300,300aは、ラック10に搭載したときの横方向のサイズは一定である。ラック10の高さ方向のサイズは、搭載機器毎に相違し得る。
例えば、ラック10に搭載可能な機器のサイズは、規格によって定められている。具体的には、EIA(Electronic Industries Alliance)規格では、機器の横幅を19インチ(482.6mm)と規定し、高さを1.75インチ(44.45mm)の倍数として規定している。EIA規格の場合、高さ方向の単位長さである1.75インチ(44.45mm)が“1U”である。
また、JIS(Japanese Industrial Standards)規格では、機器の横幅を480mmと規定し、高さを50mmの倍数として規定している。JIS規格の場合、高さ方向の単位長さである50mmが“1U”である。
図4は、第2の実施の形態の管理サーバのハードウェア例を示す図である。管理サーバ100は、プロセッサ101、RAM102、HDD103、画像信号処理部104、入力信号処理部105、媒体リーダ106および通信インタフェース107を有する。各ユニットは管理サーバ100のバスに接続されている。
プロセッサ101は、管理サーバ100の情報処理を制御する。プロセッサ101は、マルチプロセッサであってもよい。プロセッサ101は、例えばCPU、DSP、ASICまたはFPGAなどである。プロセッサ101は、CPU、DSP、ASIC、FPGAなどのうちの2以上の要素の組み合わせであってもよい。
RAM102は、管理サーバ100の主記憶装置である。RAM102は、プロセッサ101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部を一時的に記憶する。また、RAM102は、プロセッサ101による処理に用いる各種データを記憶する。
HDD103は、管理サーバ100の補助記憶装置である。HDD103は、内蔵した磁気ディスクに対して、磁気的にデータの書き込みおよび読み出しを行う。HDD103は、OSのプログラム、アプリケーションプログラム、および各種データを記憶する。管理サーバ100は、フラッシュメモリやSSD(Solid State Drive)などの他の種類の補助記憶装置を備えてもよく、複数の補助記憶装置を備えてもよい。
画像信号処理部104は、プロセッサ101からの命令に従って、管理サーバ100に接続されたディスプレイ22に画像を出力する。ディスプレイ22としては、CRT(Cathode Ray Tube)ディスプレイや液晶ディスプレイなどを用いることができる。
入力信号処理部105は、管理サーバ100に接続された入力デバイス23から入力信号を取得し、プロセッサ101に出力する。入力デバイス23としては、例えば、マウスやタッチパネルなどのポインティングデバイス、キーボードなどを用いることができる。
媒体リーダ106は、記録媒体24に記録されたプログラムやデータを読み取る装置である。記録媒体24として、例えば、フレキシブルディスク(FD:Flexible Disk)やHDDなどの磁気ディスク、CDやDVD(Digital Versatile Disc)などの光ディスク、光磁気ディスク(MO:Magneto-Optical disk)を使用できる。また、記録媒体24として、例えば、フラッシュメモリカードなどの不揮発性の半導体メモリを使用することもできる。媒体リーダ106は、例えば、プロセッサ101からの命令に従って、記録媒体24から読み取ったプログラムやデータをRAM102またはHDD103に格納する。
通信インタフェース107は、ネットワーク20を介して他の装置と通信を行う。通信インタフェース107は、有線通信インタフェースでもよいし、無線通信インタフェースでもよい。
図5は、第2の実施の形態の端末装置のハードウェア例を示す図である。端末装置200は、プロセッサ201、RAM202、フラッシュメモリ203、カメラ204、画像信号処理部205、ディスプレイ205a、入力信号処理部206、入力デバイス206a、媒体リーダ207および通信インタフェース208を有する。各ユニットは端末装置200のバスに接続されている。
プロセッサ201は、端末装置200の情報処理を制御する。プロセッサ201は、マルチプロセッサであってもよい。プロセッサ201は、例えばCPU、DSP、ASICまたはFPGAなどである。プロセッサ201は、CPU、DSP、ASIC、FPGAなどのうちの2以上の要素の組み合わせであってもよい。
RAM202は、端末装置200の主記憶装置である。RAM202は、プロセッサ201に実行させるOSのプログラムやアプリケーションプログラムの少なくとも一部を一時的に記憶する。また、RAM202は、プロセッサ201による処理に用いる各種データを記憶する。
フラッシュメモリ203は、端末装置200の補助記憶装置である。フラッシュメモリ203は、OSのプログラム、アプリケーションプログラム、および各種データを記憶する。
カメラ204は、端末装置200に搭載された撮像装置である。カメラ204は、CCD(Charge-Coupled Device)イメージセンサなどの撮像素子を備える。カメラ204は、プロセッサ201からの命令に従って、カメラ204のレンズを向けた先にある光景の静止画像や動画像のデータを生成する。
画像信号処理部205は、プロセッサ201からの命令に従って、ディスプレイ205aに画像を出力する。ディスプレイ205aには、例えば、液晶ディスプレイを用いることができる。
入力信号処理部206は、端末装置200に接続された入力デバイス206aから入力信号を取得し、プロセッサ201に出力する。入力デバイス206aは、例えば、タッチパネルなどのポインティングデバイスである。
媒体リーダ207は、記録媒体25に記録されたプログラムやデータを読み取る装置である。記録媒体25として、例えば、フラッシュメモリカードを使用できる。媒体リーダ207は、例えば、プロセッサ201からの命令に従って、記録媒体25から読み取ったプログラムやデータをRAM202またはフラッシュメモリ203に格納する。
通信インタフェース208は、アクセスポイント21と無線リンクを確立し、アクセスポイント21およびネットワーク20を介して他の装置と通信を行う無線通信インタフェースである。通信インタフェース208は、ネットワーク20と有線で接続する有線通信インタフェースでもよい。
図6は、第2の実施の形態の搭載機器のハードウェア例を示す図である。搭載機器300は、プロセッサ301、RAM302、フラッシュメモリ303、通信インタフェース304、出力制御部305およびLED306を有する。各ユニットは搭載機器300のバスに接続されている。
プロセッサ301は、搭載機器300の情報処理を制御する。プロセッサ301は、マルチプロセッサであってもよい。プロセッサ301は、例えばCPU、DSP、ASICまたはFPGAなどである。プロセッサ301は、CPU、DSP、ASIC、FPGAなどのうちの2以上の要素の組み合わせであってもよい。
RAM302は、搭載機器300の主記憶装置である。RAM302は、プロセッサ301に実行させるOSのプログラムやアプリケーションプログラムの少なくとも一部を一時的に記憶する。また、RAM302は、プロセッサ301による処理に用いる各種データを記憶する。
フラッシュメモリ303は、搭載機器300の補助記憶装置である。フラッシュメモリ303は、OSのプログラム、アプリケーションプログラム、および各種データを記憶する。
通信インタフェース304は、ネットワーク20を介して他の装置と通信を行う。通信インタフェース304は、有線通信インタフェースでもよいし、無線通信インタフェースでもよい。
出力制御部305は、プロセッサ301の指示に従って、LED306の点灯/消灯を制御する。LED306は、出力制御部305の制御により発光する半導体素子である。LED306を発光部と呼ぶこともできる。搭載機器300は、出力制御部305による点灯/消灯の制御が可能なLED306以外の発光部を備えてもよい。LED306は、搭載機器300がラック10に搭載された状態で前面側から確認できるように設けられており、ラック10を正面から眺めた時に視認可能となっている。
搭載機器300以外の他の搭載機器(搭載機器300aを含む)も、搭載機器300と同様のハードウェアにより実現できる。ただし、各搭載機器が備えるハードウェアは、当該搭載機器の種類に応じて変わり得る。例えば、搭載機器300がサーバコンピュータであれば、搭載機器300は、フラッシュメモリ303に代えて、または、フラッシュメモリ303と併せて、HDDなどの他の種類の補助記憶装置を備えることもある。また、この場合、搭載機器300は、管理サーバ100と同様に、画像信号処理部や入力信号処理部、および、媒体リーダなどを有してもよい。
図7は、第2の実施の形態の管理装置の機能例を示す図である。管理サーバ100は、記憶部110、データ通信部120、LED点滅制御部130および画像解析部140を有する。記憶部110は、RAM102やHDD103に確保された記憶領域として実現できる。また、データ通信部120、LED点滅制御部130および画像解析部140の機能は、RAM102に記憶されたプログラムをプロセッサ101が実行することで発揮される。
記憶部110は、ラック10,10a,10bに関するラック管理情報や搭載機器300,300aを含む複数の搭載機器それぞれに関する機器管理情報を記憶する。また、記憶部110は、ラック番号毎の搭載機器のIPアドレスのリストを予め記憶する。更に、記憶部110は、ラック10,10a,10bそれぞれに搭載される搭載機器を正面から見た時の縦横比と、高さ(単位はU)との対応関係を示す比率情報を記憶する。
データ通信部120は、端末装置200や搭載機器300,300aを含む複数の搭載機器との間でデータ通信を行う。データ通信部120は、端末装置200に対してラック(例えば、ラック10とする)の撮像指示を送信する。すると、端末装置200は、ラック10を正面から撮像し、ラック10の正面の画像を含む画像データ(静止画または動画のデータ)を管理サーバ100に応答する。データ通信部120は、画像データを、端末装置200から受信し、記憶部110に格納する。データ通信部120は、記憶部110を参照して、ラック10の搭載機器のIPアドレスを1つずつ選択する。データ通信部120は、選択したIPアドレスに対応する搭載機器(例えば、搭載機器300とする)の情報(機器情報と称する)の送信要求を送信する。データ通信部120は、送信要求に対する応答として機器情報を受信し、記憶部110に格納する。
LED点滅制御部130は、機器情報の送信要求を送信した搭載機器300に対して、LEDの点滅指示を送信する。LED点滅制御部130は、データ通信部120から端末装置200への撮像指示と連動して、LEDの点滅指示を行う。
画像解析部140は、データ通信部120により取得された画像データを解析する。画像解析部140は、エッジ画像生成部141、基準長定義部142、ラック高さ測定部143、LED検出部144および搭載位置特定部145を有する。
エッジ画像生成部141は、データ通信部120により取得された画像データに対して、エッジ強調処理を施し、エッジ画像を生成する。
基準長定義部142は、エッジ画像に含まれる何れかの搭載機器の外縁に相当する四角形のサイズおよび記憶部110に記憶された比率情報に基づいて、ラック10の1Uの高さに相当するエッジ画像内での長さ(基準長)を求める。基準長定義部142は、求めた基準長を記憶部110に格納する。ここで、画像上における、ある線の長さは、当該画像を等倍で(拡大縮小せずに)ディスプレイ22に表示させた場合に線の描画に用いられるピクセル数またはピクセル数に対応する量と考えてもよい。
ラック高さ測定部143は、エッジ画像内におけるラック10の収納スペースの最下段の下辺から最上段の上辺までの長さを求め、当該長さを基準長で割ることで、ラック10の高さ(収納スペースの高さ)(単位はU)を求める。
LED検出部144は、所定期間内の時系列の複数の画像データに対応する複数のエッジ画像の変化を検出する。そして、LED検出部144は、LED点滅制御部130によるLEDの点滅指示に応じたLEDの点滅に相当する領域を、エッジ画像(例えば、所定期間内の複数のエッジ画像のうち、最初のエッジ画像)の中から検出する。以下の説明では、LED検出部144により検出された領域を縁取る輪郭を、LED輪郭と称することがある。
搭載位置特定部145は、エッジ画像のうち、LED輪郭を含む搭載機器300の外縁に相当する四角形を特定する。搭載位置特定部145は、エッジ画像内における当該四角形の位置(ラック10の画像における位置)に基づいて、ラック10における搭載機器300の搭載位置を特定する。搭載位置特定部145は、データ通信部120が受信した機器情報に、特定した搭載位置を対応付けて、記憶部110に記憶された機器管理情報に登録する。
図8は、第2の実施の形態のエッジ画像の生成例を示す図である。図8(A)では、実写したカメラ画像G10と、カメラ画像G10に対してエッジ強調処理を施して生成されたエッジ画像G11とを例示している。図8(B)では、カメラ画像G10を模式的に表したカメラ画像G20、および、カメラ画像G20に対してエッジ強調処理を施して生成されたエッジ画像G21を例示している。なお、図面に向かって左から右へ向かう方向をX軸方向、同下から上へ向かう方向をY軸方向とする。X軸方向を、ラック幅方向あるいは横方向と称することがある。Y軸方向を、高さ方向または縦方向と称することがある。X軸方向の長さを、横の長さ、あるいは幅と称することがある。Y軸方向の長さを縦の長さと称することがある。また、縦の長さに対応するユニット数(U)を高さと称することがある。
エッジ強調処理では、画像内の色の濃淡の境界(エッジ)を際立たせた別の画像を作成する。例えば、エッジ画像G11,G21の例では、濃淡の境界を白色で表し、それ以外の領域を白色以外の色で表す。すると、カメラ画像G10,G20における各搭載機器の画像の境界、ラック高さに沿うラック側壁の輪郭を表す線、および、ラック天板やラック底板の輪郭を表す線などが、エッジ画像G11,G21では白色の線によって表される。このため、画像解析部140は、エッジ画像G11,G21を用いることで、搭載機器の外縁に相当する四角形、ラック高さに沿う線、ラックの収納スペースの最下段の下辺および同最上段の上辺などを検出し易くなる。また、時系列の複数のエッジ画像を取得することで、エッジ画像内の変化により、点滅するLEDなどの搭載機器の動作を検出し易くなる。
図9は、第2の実施の形態のエッジ画像内のLED輪郭の検出例を示す図である。図9(A)は、LEDが点灯した状態を写したカメラ画像に対するエッジ画像G30と、同LEDが消灯した状態を写したカメラ画像に対するエッジ画像G31とを例示している。図9(B)では、エッジ画像G30,G31それぞれを模式的に表したエッジ画像G40(LED点灯時)、および、エッジ画像G41(消灯時)も例示している。なお、図面に向かって左から右へ向かう方向をX軸方向、同下から上へ向かう方向をY軸方向とする。
図8でも説明したように、エッジ画像では、画像内の複数の領域の境界を強調できる。このため、LEDの点灯時には、発光した領域では明るさや特定の色の度合いが周囲の領域に比べて強まるため、両領域の境界を際立たせることができる。一方、LEDの消灯時には、同領域と周囲の領域との境界が点灯時よりも弱まる。
このため、LED点滅を時系列に撮像した複数のカメラ画像に対応する複数のエッジ画像を観察すると、LEDの点灯時のエッジ画像には、例えば白色の線で囲われたLED輪郭が含まれ、LEDの消灯時のエッジ画像には同LED輪郭が含まれないことになる。こうして、LED検出部144は、複数のエッジ画像を基に、特定の周期で点滅するLEDに対応するLED輪郭を検出する。図9(B)の例でいえば、LED検出部144は、X軸のX1〜X2かつY軸のY1〜Y2で示される領域内をLEDの領域として特定し、当該領域を囲う領域をLED輪郭として検出することが考えられる。
図10は、第2の実施の形態の比率テーブルの例を示す図である。比率テーブル111は、記憶部110に予め記憶される比率情報である。比率テーブル111は、高さおよび比率の項目を含む。
高さの項目には、搭載機器の高さが登録される。高さの単位は、ユニット数(U)である。比率の項目には、搭載機器を正面からみた時の横サイズと縦サイズとの比(横サイズ÷縦サイズ)が登録される。
例えば、比率テーブル111には、高さが“1U”、比率が“10.1”という情報が登録されている。これは、高さ1Uの搭載機器では、横サイズと縦サイズとの比率が10.1であることを示す。比率テーブル111には、同様に、2U、3Uなど他の高さに対する比率も登録されている。
図11は、第2の実施の形態の基準長テーブルの例を示す図である。基準長テーブル112は、記憶部110に記憶される。基準長テーブル112は、ユニット数および長さの項目を含む。
ユニット数の項目には、高さを表すユニット数が登録される。長さの項目には、エッジ画像上の長さ(ただし、カメラ画像上の長さでもよい)が登録される。
例えば、基準長テーブル112には、ユニット数が“1U”、長さが“10mm”という情報が登録される。これは、ユニット数1Uに相当する高さが、エッジ画像上は10mmの長さに相当することを示す。基準長テーブル112には、同様に、2U、3Uなど他のユニット数に対する長さも登録されている。
図12は、第2の実施の形態のラック管理テーブルの例を示す図である。ラック管理テーブル113は、記憶部110に記憶されるラック管理情報である。ラック管理テーブル113は、ラック番号およびラックサイズの項目を含む。
ラック番号の項目には、ラックを識別するためのラック番号が登録される。ラックサイズの項目には、ラックの収納スペースの全体の高さが登録される。
例えば、ラック管理テーブル113には、ラック番号が“1”、ラックサイズが“50U”という情報が登録される。これは、ラック番号“1”で示されるラックのラックサイズが“50U”であることを示す。例えば、ラックサイズ“50U”のラックには、1Uの機器を50台搭載できることになる。あるいは、ラックサイズ“50U”のラックには、2Uの機器を25台搭載できることになる(複数種類のサイズの搭載機器が混在して搭載されることもある)。
図13は、第2の実施の形態の機器管理テーブルの例を示す図である。機器管理テーブル114は、記憶部110に記憶される機器管理情報である。機器管理テーブル114は、機器番号、機種名、搭載ラック、搭載位置、サイズ、型番、MACアドレスおよびIPアドレスの項目を含む。
機器番号の項目には、搭載機器を識別するための機器番号が登録される。機種名の項目には、搭載機器の種類を示す名称が登録される。搭載ラックの項目には、搭載機器を搭載しているラックのラック番号が登録される。搭載位置の項目には、当該ラックにおける搭載位置を示す位置番号が登録される。サイズの項目には、搭載機器の高さに相当するサイズが登録される。型番の項目には、搭載機器の型番が登録される。MAC(Media Access Control)アドレスの項目には、搭載機器のMACアドレスが登録される。IPアドレスの項目には、搭載機器のIPアドレスが登録される。
例えば、機器管理テーブル114には、機器番号が“1”、機種名が“サーバ”、搭載ラックが“1”、搭載位置が“5”、サイズが“1U”、型番が“K1”、MACアドレスが“MAC1”、IPアドレスが“IP1”という情報が登録されている。
これは、機器番号“1”の搭載機器の機種名が“サーバ”であり、ラック番号“1”のラックの位置“5”に対応する収納スペースに搭載されていることを示す。また、機器番号“1”の搭載機器の高さサイズが“1U”であり、型番が“K1”、MACアドレスが“MAC1”、IPアドレスが“IP1”であることを示す。
機器管理テーブル114には、機器情報の収集に従って、レコードが追加されていく。何れの搭載機器からも機器情報を収集していない場合、機器管理テーブル114は何のレコードも登録されていない状態となる。
なお、前述のように、管理サーバ100は、管理対象とする搭載機器のIPアドレスのラック番号毎のリストを、機器管理テーブル114とは別個の情報として、記憶部110により予め記憶している。
図14は、第2の実施の形態の出力画像の例を示す図である。データ通信部120は、記憶部110に記憶された機器管理テーブル114に基づいて、ラック(例えば、ラック10とする)の搭載機器を表す画像データを端末装置200に送信する。端末装置200は、管理サーバ100から受信した画像データを基に、ディスプレイ205aを用いてラックおよびラックの搭載機器の画像を表示し、ユーザに提供する。
ここで、第1に、データ通信部120は、ラック画像G50の画像データを端末装置200に送信する。ラック画像G50は、ラック10に搭載機器が搭載されている状態を表す画像である。ラック画像G50では、ラック10が備える50Uの収納スペースの全てを空き状態としている。各収納スペースには、位置番号が付されている。位置番号は、ラック10の下側から上側に向かって“1”、“2”、“3”、・・・、“50”と順番に付されている。
第2に、データ通信部120は、ラック搭載画像G51の画像データを端末装置200に送信する。ラック搭載画像G51は、ラック10に搭載機器が搭載されている状態を表す画像である。ラック搭載画像G51は、機器情報を収集済みの搭載機器について、当該搭載機器の搭載位置に、収集された機器情報の一部(例えば、機種名、型番および電源オン/オフなどの現在の状態など)を示す画像を含む。
次に、以上のような構成の管理サーバ100による処理手順を説明する。なお、以下では、主に、ラック10および搭載機器300を例に挙げて説明するが、管理サーバ100は、ラック10a,10bなどの他のラックや搭載機器300aなどの他の搭載機器についても同様にして管理する。
図15は、第2の実施の形態の管理サーバの処理例を示すフローチャートである。以下、図15に示す処理をステップ番号に沿って説明する。
(S1)管理サーバ100は、ラック登録の処理を実行する。具体的には、データ通信部120により、ラック10を正面から撮像した静止画の画像データ(動画でもよい)を端末装置200から受信する。そして、画像解析部140により、受信した画像データを解析して、ラック10の高さ(単位はU)を求める。処理の詳細は後述される。
(S2)管理サーバ100は、機器登録の処理を実行する。具体的には、データ通信部120により、選択したIPアドレスを宛先として機器情報の送信要求を送信し、送信要求の応答として機器情報を受信する。また、LED点滅制御部130により、選択したIPアドレスを宛先として特定周期でのLEDの点滅指示を送信する。更に、データ通信部120により、ラック10を正面から撮像した動画の画像データを端末装置200から受信する。そして、画像解析部140により、受信した画像データを解析して、機器情報の送信元の搭載機器の特定と、当該搭載機器の搭載位置の特定とを行い、機器情報と搭載位置とを対応付けて機器管理テーブル114に登録する。処理の詳細は後述される。
図16は、第2の実施の形態のラック登録の例を示すフローチャートである。以下、図16に示す処理をステップ番号に沿って説明する。以下に示す処理は、図15のステップS1に相当する。
(S11)データ通信部120は、端末装置200からラック登録指示を受け付ける。例えば、ユーザU10は、端末装置200のカメラ204をラック10の正面に向けた上で、入力デバイス206aを操作し、ラック10のラック番号(例えば、“1”)とともに、ラック登録の開始を端末装置200に入力する。すると、端末装置200は、ラック10のラック番号を含むラック登録指示を管理サーバ100に送信する。データ通信部120は、こうして送信されたラック登録指示を受信する。
(S12)データ通信部120は、ラック登録指示に応じて、ラック10の正面を写した静止画(ただし、動画でもよい)の撮像開始指示を端末装置200に送信する。端末装置200は、撮像開始指示を受信すると、カメラ204によるラック10の撮像を開始する。端末装置200は、撮像して生成されたラック10の画像データを管理サーバ100に送信する。
(S13)データ通信部120は、画像データを端末装置200から受信し、記憶部110に格納する。
(S14)エッジ画像生成部141は、ステップS13で受信された画像データを基に、エッジ画像を生成する。
(S15)基準長定義部142は、ステップS14で生成されたエッジ画像と、記憶部110に記憶された比率テーブル111とに基づいて、基準長テーブル112を作成する。処理の詳細は後述される。
(S16)ラック高さ測定部143は、ステップS14で生成されたエッジ画像と、記憶部110に記憶された基準長テーブル112とに基づいて、ラックサイズ(ラックの高さ)を測定する。処理の詳細は後述される。
(S17)ラック高さ測定部143は、ステップS16で測定したラックサイズ(ラックの高さ)を、ラック番号(例えば、“1”)に対応付けてラック管理テーブル113に登録する。
(S18)データ通信部120は、ラック管理テーブル113に対して今回登録したラック番号(例えば、“1”)のラック高さに応じたラック画像G50を生成する。
(S19)データ通信部120は、ラック画像G50を端末装置200に送信する。
端末装置200は、ラック画像G50を受信すると、ラック画像G50をディスプレイ205aにより表示し、ユーザU10に提供する。
なお、ステップS11の例では、今回登録するラックのラック番号のユーザU10による入力を受け付けるものとしたが、管理サーバ100は、ラック番号を他の方法により取得してもよい。例えば、ラック10の正面側にラック番号に応じた所定のパターンをもつ2次元マーカーを貼り付けておくことが考えられる。すると、管理サーバ100は、ステップS13で受信した画像データに含まれる2次元マーカーを検出し、2次元マーカーに基づいて撮像されたラックのラック番号を特定し得る。あるいは、管理サーバ100は、ラック位置に対応付けてラック番号の情報を予め保持しておいてもよい。すると、管理サーバ100は、ラック登録指示と共に、端末装置200の位置情報(ラック正面に対応する位置)を受信し、当該位置情報と、ラック位置に応じたラック番号の情報とに基づいて、撮像されたラックのラック番号を特定し得る。こうしてユーザU10によるラックの識別情報の入力を自動化し、ユーザU10の作業の省力化を図ることもできる。
図17は、第2の実施の形態の基準長定義の例を示すフローチャートである。以下、図17に示す処理をステップ番号に沿って説明する。以下に示す処理は、図16のステップS15に相当する。
(S21)基準長定義部142は、エッジ画像生成部141により生成されたエッジ画像から四角形状を抽出する。
(S22)基準長定義部142は、ステップS21で抽出した四角形のエッジ画像における幅(横の長さ)wと高さhとを測定する。
(S23)基準長定義部142は、ステップS22で測定した四角形の幅wおよび高さhに関する比率R(=w/h)を算出する。
(S24)基準長定義部142は、ステップS24で算出した比率Rを、比率テーブル111に登録されている比率と比較する。
(S25)基準長定義部142は、比率Rが、比率テーブル111に登録されている何れかの比率と所定の精度で一致するか否かを判定する。一致する場合、処理をステップS26に進める。一致しない場合、処理をステップS21に進める(エッジ画像から別の四角形状の抽出を行う)。ここで、「所定の精度で一致する」とは、比率Rと、比率テーブル111に登録されている比率との差異が、例えば比率Rの3%程度の誤差の範囲内にあることを意味する。誤差として許容する範囲は、運用に応じて決定することができる。
(S26)基準長定義部142は、ラック10の1Uに相当する画像上の長さbを算出する。具体的には、基準長定義部142は、ステップS25で比率Rと一致すると判定した比率に対応する高さn(U)(nは1以上の整数)を比率テーブル111から取得する。そして、基準長定義部142は、長さbをb=h/nと求める。
(S27)基準長定義部142は、基準長テーブル112を作成し、ユニット数と高さの対応関係を記録する。具体的には、1(U)とbとを対応付ける。また、2(U)と2bとを対応付ける。こうして、基準長定義部142は、想定される搭載機器の高さに応じた高さ方向の長さを、基準長テーブル112に登録する。
図18は、第2の実施の形態のラックサイズ測定の例を示すフローチャートである。以下、図18に示す処理をステップ番号に沿って説明する。以下に示す手順は、図16のステップS16に相当する。
(S31)ラック高さ測定部143は、エッジ画像において、基準長定義に用いた四角形の高さ方向の辺に沿って上下に延びる線(ラック高線と称する)を検出する。
(S32)ラック高さ測定部143は、エッジ画像において、ラック10の画像における収納部(収納スペース)の最上段の上側の辺と、最下段の下側の辺とを検出する。
(S33)ラック高さ測定部143は、ステップS32で検出した2つの辺の間のラック高線の長さLを測定する。
(S34)ラック高さ測定部143は、ラックサイズ(高さ)Hを算出する。具体的には、ラック高さ測定部143は、H=L/bを求める。
図19は、第2の実施の形態のラック登録時の基準長定義の例を示す図である。画像解析部140は、端末装置200により作成されたカメラ画像を取得し、当該カメラ画像からエッジ画像60を生成する。エッジ画像60には、ラック10を正面方向から見た全体像が含まれている。ここでは、エッジ画像60は、2つの機器がラック10に搭載された状態を写したカメラ画像に対応するエッジ画像である。なお、図8,図9とは異なり、エッジ画像60ではエッジを表す線を黒色で、それ以外の領域を白色で表している。図19では、2つの機器に対応する画像に対して、“機器A”、“機器B”のように便宜的にラベルを付している。しかし、エッジ画像60の中に、当該ラベルに相当する画像が含まれているわけではない。
例えば、画像解析部140は、エッジ画像60から“機器A”に相当する四角形を抽出する。画像解析部140は、当該四角形の幅および高さを測定し、幅102mm(=w)、高さ20mm(=h)を得る。画像解析部140は、比率=w/h=102mm/20mm=5.1を算出する。
画像解析部140は、比率テーブル111に登録された比率と、算出した比率“5.1”とを比較する。画像解析部140は、算出した比率“5.1”が比率テーブル111に登録された比率“5.1”に一致すると判定する。これは、抽出した四角形が、ラック10に搭載された何れかの搭載機器に相当する四角形であることを意味する。すなわち、画像解析部140は、比率テーブル111を利用することで、抽出した四角形が搭載機器に相当するものであるか否かを判定することができる。抽出した四角形が何れかの搭載機器に相当するものであると判定すると、画像解析部140は、比率テーブル111から比率“5.1”に対応する高さ2U(=n)を取得する。
画像解析部140は、1Uに対応するエッジ画像上の長さである1U基準長(前述のb)を、1U基準長=h/n=20mm/2U=10mmと求める。画像解析部140は、求めた1U基準長“10mm”を、ユニット数“1U”に対応付けて基準長テーブル112に登録する。
画像解析部140は、搭載機器として想定される各ユニット数(2U、3U、・・・)の長さを算出する。具体的には、2Uであれば1U基準長の2倍、3Uであれば1U基準長の3倍というように、1U基準長をユニット数倍することで、該当のユニット数に対する長さを求められる。すなわち、図19の例において、画像解析部140は、ユニット数2Uに対して、10mm×2=20mmを求め、基準長テーブル112に登録する。画像解析部140は、ユニット数3Uに対して、10mm×3=30mmを求め、基準長テーブル112に登録する。4U以降のユニット数に対しても同様である。
図20は、第2の実施の形態のラックサイズ測定の例を示す図である。例えば、画像解析部140は、エッジ画像60のうち“機器A”のラベルに対応する四角形の高さ方向の線分に沿うラック高線を検出する。画像解析部140は、ラック高線の上端を、ラックにおける最上段の収納スペースの上側の辺(上辺)に相当する線と交わる点とする。画像解析部140は、ラック高線の下端を、ラックにおける最下段の収納スペースの下側の辺(下辺)に相当する線と交わる点とする。画像解析部140は、エッジ画像60からラック高線の長さLを測定する。図20の例では、画像解析部140は、L=500mmを得る。
そして、画像解析部140は、Lに基づいて、ラック高さHを算出する。具体的には、画像解析部140は、H=L/b=500mm/10mm=50Uを得る。すなわち、画像解析部140は、ラック10に搭載された機器に対応する四角形のラック幅方向の辺の長さとエッジ画像におけるラック10の収納部全体の高さ方向の長さとに基づいて、ラック10における収納部の数(ここでは、“50U”)を算出する。
こうして、管理サーバ100は、着目するラック10のサイズを得ることができる。次に、管理サーバ100による機器登録の手順を説明する。
図21は、第2の実施の形態の機器登録の例を示すフローチャートである。以下、図21に示す処理をステップ番号に沿って説明する。以下に示す手順は、図15のステップS2に相当する。
(S41)データ通信部120は、端末装置200から機器登録指示を受け付ける。例えば、ユーザU10は、端末装置200のカメラ204をラック10の正面に向けた上で、入力デバイス206aを操作し、ラック10のラック番号(例えば、“1”)とともに、機器登録の開始を端末装置200に入力する。すると、端末装置200は、ラック10のラック番号を含む機器登録指示を管理サーバ100に送信する。データ通信部120は、こうして送信された機器登録指示を受信する。
(S42)データ通信部120は、記憶部110に記憶されたラック番号毎の搭載機器のIPアドレスのリストを参照して、今回機器登録を行うラック番号(例えば、“1”)に対応する複数のIPアドレスを取得する。データ通信部120は、取得した複数のIPアドレスから1つのIPアドレス(一例として搭載機器300のIPアドレスとする)を選択する。
(S43)データ通信部120は、選択したIPアドレスを宛先として、機器情報の送信要求を送信する(機器情報を要求する)。すると、当該機器情報の送信要求は、搭載機器300に到達する。搭載機器300は、送信要求を受信すると、応答として、搭載機器300の機器情報を送信する。搭載機器300が送信する機器情報には、搭載機器300の搭載位置の情報は含まれていない。
(S44)データ通信部120は、搭載機器300の機器情報を受信する。
(S45)データ通信部120は、受信した機器情報のレコードを作成して機器管理テーブル114に登録する(ただし、作成時点において当該レコードに搭載位置の情報は含まれていない)。
(S46)データ通信部120は、ラック10の正面を写した動画の撮像開始指示を端末装置200に送信する。端末装置200は、撮像開始指示を受信すると、カメラ204によるラック10の撮像を開始する。
(S47)LED点滅制御部130は、ステップS42で選択したIPアドレスを宛先として、LED点滅指示を送信する。LED点滅指示は、点滅周期、および、点滅回数の情報を含む。LED点滅指示は、搭載機器300に到達する。搭載機器300は、LED点滅指示で指定された点滅周期、および、点滅回数に従って、LED306を点滅させる。LED306の点滅動作は、端末装置200により動画として記録される。
(S48)LED点滅制御部130は、LED点滅指示を送信してから、点滅周期、および、点滅回数に応じて定まる点滅期間の経過を検出すると、点滅期間の経過をデータ通信部120に通知する。すると、データ通信部120は、端末装置200に撮像完了指示を送信する。端末装置200は、撮像完了指示を受信し、撮像完了指示に応じて動画の撮像を停止する。端末装置200は、撮像により生成した動画データを管理サーバ100に送信する。
(S49)データ通信部120は、動画データを受信し、記憶部110に格納する。
(S50)エッジ画像生成部141は、記憶部110に記憶された動画データに基づいて、時系列に並ぶ複数の画像データを得る。エッジ画像生成部141は、複数の画像データそれぞれに対するエッジ画像を生成し、生成した複数のエッジ画像を記憶部110に格納する。
(S51)基準長定義部142は、ステップS50で生成された何れかのエッジ画像(例えば、時系列の最初のエッジ画像)と、記憶部110に記憶された比率テーブル111とに基づいて、当該エッジ画像内の1Uに相当する基準長bを求める。基準長定義部142は、求めた基準長bを基準長テーブル112に登録する。処理の具体的な手順は、図17で例示した手順と同様である。なお、基準長定義部142は、ステップS51を実行する前に、基準長定義部142に登録されている既存のレコードを全て削除しておく。
(S52)LED検出部144は、複数のエッジ画像におけるエッジの変化を検出することで、LED輪郭を特定する。処理の詳細は後述される。
(S53)搭載位置特定部145は、LED検出部144によるLED輪郭の検出結果を用いて、搭載機器300のラック10における搭載位置を特定する。処理の詳細は後述される。
(S54)搭載位置特定部145は、特定した搭載位置をステップS45で作成した機器管理テーブル114のレコードに登録する。
(S55)データ通信部120は、機器管理テーブル114に基づいて、ラック10に搭載機器300が搭載された状態を表す機器搭載画像(一例として機器搭載画像G51とする)を生成する。なお、機器搭載画像G51の例では、搭載機器300の他にもラック10における搭載機器が既に検出された状態である。データ通信部120は、新たに機器情報および搭載位置を取得するたびに、該当の搭載機器を表す画像を、機器搭載画像G51に追加する。
(S56)データ通信部120は、生成した機器搭載画像G51を端末装置200に送信する。端末装置200は、機器搭載画像G51を受信すると、機器搭載画像G51をディスプレイ205aにより表示し、ユーザU10に提供する。
(S57)データ通信部120は、ステップS41の機器登録指示で受け付けたラック番号に対応する搭載機器のIPアドレスのうち、未選択のIPアドレスがあるか否かを判定する。未選択のIPアドレスがある場合、処理をステップS42に進める。未選択のIPアドレスがない場合、すなわち、該当のラック番号に対して全てのIPアドレスに対する機器情報を収集済の場合、処理を終了する。こうして、管理サーバ100は、ラック10に搭載された複数の搭載機器それぞれについて、搭載機器300,300aと順番に、機器情報および搭載位置を収集する。
図22は、第2の実施の形態のLED輪郭特定の例を示すフローチャートである。以下、図22に示す処理をステップ番号に沿って説明する。以下に示す手順は、図21のステップS52に相当する。
(S61)LED検出部144は、エッジ動画(ステップS50で生成した時系列の複数のエッジ画像)からLED点灯に相当する輪郭(LED輪郭)の候補を検出する。
(S62)LED検出部144は、エッジ動画における輪郭の出現/消滅の周期が、LED点滅指示で指示した所定周期となっているか否かを判定する。LED点滅指示で指示した所定周期である場合、処理をステップS63に進める。LED点滅指示で指示した所定周期ではない場合、処理をステップS65に進める。後者の場合、LED輪郭の候補は、LED点滅指示で指定した点滅を行うLEDに相当するものではない(例えば、LED306とは別のLEDなど)と判断できるからである。所定周期としては、例えば、点灯1秒、点滅1秒などが考えられる。
(S63)LED検出部144は、エッジ動画における輪郭の所定回数の出現/消滅の後、所定時間を経過しても当該輪郭が出現しないか否かを判定する。輪郭の所定回数の出現/消滅の後、所定時間を経過しても当該輪郭が出現しない場合、処理をステップS64に進める。輪郭の所定回数の出現/消滅の後、所定時間を経過して当該輪郭が出現する場合、処理をステップS65に進める。後者の場合、LED輪郭の候補は、LED点滅指示で指定した点滅を行うLEDに相当するものではない(例えば、LED306とは別のLEDなど)と判断できるからである。例えば、所定回数(出現/消滅の繰り返し回数)を5回とし、所定時間を1秒とすることが考えられる。
(S64)LED検出部144は、着目する輪郭(ステップS61で検出したLED輪郭の候補)を、検出すべきLED(例えば、LED306)に相当するLED輪郭であると決定する。
(S65)LED検出部144は、エッジ動画にLED輪郭の他の候補があるか否かを判定する。LED輪郭の他の候補がある場合、処理をステップS61に進める(LED輪郭の他の候補の領域を検出する)。LED輪郭の他の候補がない場合、処理をステップS66に進める。
(S66)LED検出部144は、エッジ動画からLED輪郭を特定できなかったことを、エラーとして検出する。例えば、データ通信部120は、検出したエラーの情報を端末装置200に送信する。この場合、図21のステップS53以降の処理を行えないため、画像解析部140は機器登録の処理を終了させる。また、端末装置200は、エラーの情報を受信すると、エラー内容をユーザU10に対して提供する。これにより、ユーザU10による機器登録の作業のやり直しを促す。
ここで、ステップS62でも例示した、LED点滅指示に応じたLED306の点滅の具体例を説明する。
図23は、第2の実施の形態のLEDの点滅の例を示す図である。例えば、LED点滅制御部130は、搭載機器300のLED306を次のように点滅させることが考えられる。すなわち、点灯を維持する時間を1秒、消灯を維持する時間を1秒とし、1秒周期で点灯/消灯の切り替えを繰り返し行うようにする。一例として、繰り返し回数を5回とする。繰り返し回数5回は、点灯/消灯を1セットとした2秒間の時間区間を5回繰り返し発生させることを意味する。そして、5回の繰り返しの後、LED306の消灯状態を維持する(点滅の停止)。
LED306による点滅の周期としては、例えば、電源状態通知、エラー発生通知およびデータアクセス通知など、他の用途に用いられるLED306とは別のLEDの発光と区別可能な周期を設定することが考えられる。
すなわち、図22で例示したように、ステップS62,S63の判定を行うことで、LED検出部144は、エッジ動画の中から、検出すべきLED(例えば、LED306)に相当するLED輪郭と、他の用途に用いられるLEDに相当する輪郭とを区別する。これにより、検出すべきLEDに相当するLED輪郭を適切に検出することができる。
図24は、第2の実施の形態の機器搭載位置特定の例を示すフローチャートである。以下、図24に示す処理をステップ番号に沿って説明する。以下に示す手順は、図21のステップS53に相当する。
(S71)搭載位置特定部145は、エッジ画像生成部141により生成されたエッジ動画のうち、時系列の最初のエッジ画像から四角形状を抽出する。
(S72)搭載位置特定部145は、ステップS71で抽出した四角形のエッジ画像における幅(横の長さ)wと高さhとを測定する。
(S73)搭載位置特定部145は、ステップS72で測定した四角形の幅wおよび高さhに関する比率R=(w/h)を算出する。
(S74)搭載位置特定部145は、ステップS73で算出した比率Rを、比率テーブル111に登録されている比率と比較する。
(S75)搭載位置特定部145は、比率Rが、比率テーブル111に登録されている何れかの比率と所定の精度で一致するか否かを判定する。一致する場合、処理をステップS76に進める。一致しない場合、処理をステップS71に進める(エッジ画像から別の四角形の抽出を行う)。ここで、「所定の精度」の考え方については、図17のステップS25と同様である。
(S76)搭載位置特定部145は、ステップS52で特定されたLED輪郭が、ステップS71で抽出した四角形の枠内にあるか否かを判定する。LED輪郭が四角形の枠内にある場合、処理をステップS77に進める。LED輪郭が枠内にない場合、処理をステップS71に進める(エッジ画像から別の四角形の抽出を行う)。
(S77)搭載位置特定部145は、エッジ画像において、ラックの上辺(最上段の収納スペースの上側の辺)または下辺(最下段の収納スペースの下側の辺)から対象の搭載機器までの長さh1を測定する。例えば、搭載位置特定部145は、エッジ画像において、ラックの上辺から対象の搭載機器に相当する四角形の下側の辺との間の距離を、長さh1として測定する。
(S78)搭載位置特定部145は、測定した長さh1を基に、搭載機器300の搭載位置を特定する。例えば、ラックの上辺から対象の搭載機器300に相当する四角形の下側の辺との距離を長さh1とする場合、50−h1/b+1が、搭載機器300の搭載位置である。あるいは、ラックの下辺から対象の搭載機器300に相当する四角形の下側の辺との距離を長さh1とする場合、h1/b+1が、搭載機器300の搭載位置である。ここで、搭載位置特定部145は、ステップS78の計算における基準長bとして、図21のステップS51で算出された値を用いる。そして、処理を終了する。
図25は、第2の実施の形態の機器搭載位置特定時の基準長定義例を示す図である。図21で例示したように基準長定義部142は、ラック登録の際だけでなく、機器登録の際にも、ラック10の基準長を定義する。その理由は、ラック登録および機器登録の2つのタイミングにおいて、端末装置200のラック10に対する配置が異なっている可能性があるためである。
例えば、ラック10と端末装置200との間の距離が異なると、撮像された画像内における基準長bも変わり得る。このため、基準長定義部142は、機器登録の際に、基準長テーブル112を再作成する。なお、基準長テーブル112の再作成の具体的な方法は、図17、図19で例示した方法と同様である。
図26は、第2の実施の形態の機器搭載位置の特定例を示す図である。画像解析部140は、端末装置200により作成されたカメラ画像(動画)を取得し、当該カメラ画像(例えば、時系列の最初のカメラ画像)からエッジ画像70を生成する。エッジ画像70には、ラック10を正面方向から見た全体像が含まれている。ここでは、エッジ画像70は、2つの機器がラック10に搭載された状態を写したカメラ画像に対応するエッジ画像である。なお、図8、図9とは異なり、エッジ画像70ではエッジを表す線を黒色で、それ以外の領域を白色で表している。図26では、2つの機器に対応する画像に対して、“機器A”、“機器B”のように便宜的にラベルを付している。しかし、エッジ画像70の中に、当該ラベルに相当する画像が含まれているわけではない。
例えば、画像解析部140は、エッジ画像70から“機器A”に相当する四角形を抽出する。画像解析部140は、当該四角形の幅および高さを測定し、幅102mm(=w)、高さ20mm(=h)を得る。画像解析部140は、比率=w/h=102mm/20mm=5.1を算出する。比率テーブル111によれば、比率“5.1”は、高さ“2U”の機器の四角形に相当する。したがって、画像解析部140は、抽出した四角形が、何れかの搭載機器に相当する四角形であると判断する。
また、画像解析部140は、抽出した四角形の枠内にLED輪郭が存在することを検出する。すると、画像解析部140は、該当の四角形を、今回の機器情報の送信元の搭載機器に対応する四角形であると判断し、当該四角形を用いて搭載位置の特定を行う。
図27は、第2の実施の形態の機器搭載位置の特定例(続き)を示す図である。例えば、画像解析部140は、エッジ画像70において、ラック上辺から“機器A”の四角形の下辺までの長さh1を測定する。そして、画像解析部140は、当該搭載機器の搭載位置を、搭載位置=50−h1/b+1と求める。画像解析部140は、求めた搭載位置と該当の搭載機器の機器情報とを対応付けて、機器管理テーブル114に登録する。
なお、長さh1の求め方は、例示した方法に限らない。例えば、画像解析部140は、“機器A”の四角形の上辺(上側の辺)とラック上辺またはラック下辺との間の距離を長さh1として求めてもよい。例えば、“機器A”の四角形の上辺とラック上辺との距離を長さh1とする場合、搭載位置=50−h1/bとなる。あるいは、“機器A”の四角形の上辺とラック下辺との距離を長さh1とする場合、搭載位置=h1/bとなる。なお、搭載機器の高さが2U以上である場合、特定した搭載位置から当該高さ分の収納スペースを該当の搭載機器で専有することになる。このように、画像解析部140は、搭載機器に対応する四角形のラック幅方向の1つの辺とラックにおける最上段または最下段の収納部(収納スペース)のラック幅方向の辺との距離に基づいて、搭載位置を特定する。
管理サーバ100によれば、比率テーブル111および端末装置200により撮像された画像データを基に、各搭載機器のラック10,10a,10bそれぞれにおける搭載位置を特定し、機器情報に対応付けて管理することができる。このため、ラックや搭載機器に特別な通信モジュールなどを設けなくても、各搭載機器の搭載位置を管理することができる。こうして、ラック10,10a,10bそれぞれに搭載された各搭載機器の搭載位置の管理を簡易化できる。また、ユーザU1による情報資産の効率的な管理を支援でき、ユーザU1による運用管理の作業の省力化を図れる。
[第3の実施の形態]
以下、第3の実施の形態を説明する。前述の第2の実施の形態と相違する事項を主に説明し、共通する事項の説明を省略する。
第2の実施の形態において、端末装置200がラック10の正面を撮像するときの端末装置200とラック10との距離によっては、カメラ204の視野内にラック10の正面全体が収まらないこともある。第3の実施の形態では、端末装置200によりラック10の正面を複数部分に分けて撮像した複数の画像を撮像させ、当該複数の画像を用いて、ラック登録や機器登録を行う機能を提供する。
ここで、第3の実施の形態の運用管理システムの装置、ハードウェアなどの各要素は、第2の実施の形態で例示した各要素と同様である。そこで、第3の実施の形態の運用管理システムの各要素を、第2の実施の形態で示した各要素の名称および符号と同じ名称および符号により指し示す。第3の実施の形態の管理サーバ100も、図15で例示したラック登録および機器登録の手順を実行する。その際の手順の一部が第2の実施の形態と異なっている。
図28は、第3の実施の形態のラック登録の例を示すフローチャートである。以下、図28に示す処理をステップ番号に沿って説明する。ここで、図28の手順では、図16に示したラック登録の手順に対して、ステップS13,S14の間に、ステップS13aを実行する点が異なる。そこで、以下では、ステップS13aを主に説明し、他のステップの説明を省略する。なお、管理サーバ100は、ステップS13において、端末装置200によりラック10の前面を複数の部分に分けて撮像された複数の画像を受信する。
(S13a)画像解析部140は、複数の画像を合成して、パノラマ画像を生成する。そして、処理をステップS14に進める。ステップS14以降の処理では、パノラマ画像に対してエッジ画像を生成し、基準長定義やラックサイズ測定(ラック高さの測定)を行う。
図29は、第3の実施の形態のパノラマ画像の例を示す図である。例えば、管理サーバ100は、端末装置200により撮像された画像G81,G82を受信する。画像G81は、ラック10正面の上部を撮像したラック上部画像である。画像G82は、ラック10正面の下部を撮像したラック下部画像である。画像解析部140は、画像G81,G82を合成することで、パノラマ画像G83を生成する。複数の画像をパノラマ画像に合成する方法としては、既存の方法を用いることができる。
そして、画像解析部140は、パノラマ画像G83に対するエッジ画像を生成し、基準長定義やラックサイズ測定に用いることで、ラック10の高さサイズを適切に取得することができる。次に、第3の実施の形態の機器登録の具体的な手順を説明する。
図30は、第3の実施の形態の機器登録の例を示すフローチャートである。以下、図30に示す処理をステップ番号に沿って説明する。ここで、図30の手順では、図21に示した機器登録の手順に対して、ステップS52,S53の間に、ステップS52a,S52bを実行する点が異なる。そこで、以下では、ステップS52a,S52bを主に説明し、他のステップの説明を省略する。
(S52a)LED検出部144は、ステップS52の処理により、LED輪郭を特定できたか否かを判定する。LED輪郭を特定できた場合、処理をステップS53に進める。LED輪郭を特定できなかった場合、処理をステップS52bに進める。なお、LED輪郭を特定できなかった場合とは、図22のステップS66の処理でエラーが検出された場合である。第3の実施の形態では、画像解析部140は、ステップS66で当該エラーが検出された場合にも、機器登録の処理を続行する。
(S52b)データ通信部120は、撮像範囲の移動を端末装置200に通知する。そして、処理をステップS46に進める。
ここで、端末装置200は、撮像範囲の移動の通知を管理サーバ100から受信すると、撮像範囲の移動指示をディスプレイ205aに表示させ、ユーザU10に対して撮像範囲の変更を促す。例えば、ユーザU10は、ディスプレイ205aに表示される撮像範囲内の画像を見ながら、ラック10の正面のうち未だ撮像していない部分が撮像範囲に含まれるように、ラック10に対する端末装置200の配置を変更する。すると、次のステップS46において、端末装置200が撮像開始指示を管理サーバ100から受信した際には、端末装置200は、未だ撮像していない部分に対する動画を得ることができる。そして、管理サーバ100は、端末装置200から新たな動画データを受信し、新たな動画データを用いて、LED輪郭の特定を行う。こうして、管理サーバ100は、例えば、最初の動画データからLED306のLED輪郭を特定できなくても、次の動画データ(あるいは、更にそれ以降に撮像された動画データ)からLED輪郭を特定することができる。ユーザU10にとっては、端末装置200のラック10に対する位置を変えて、撮像範囲を変更しさえすればよい。このため、ラック登録や機器登録などの作業を最初からやり直すよりもユーザU10の作業が簡便になる。
ステップS53の機器搭載位置の特定には、エッジ画像においてラックの上辺または下辺を特定して、搭載位置の特定に用いることになる。このため、端末装置200では、図29で例示したように、最初の動画がラック下部、次の動画がラック上部のように、ラックの下側の端およびラックの上側の端が含まれるようラック全体を2回に分けて撮像して動画を作成することが好ましい。ただし、画像解析部140は、ラックの上側の端および下側の端を含まない動画の中からLED輪郭および当該LED輪郭を枠内に含む四角形を特定することもある。この場合、画像解析部140は、ラックの上側の端または下側の端の少なくとも何れか一方を含むパノラマ画像を合成してエッジ画像を作成する。そして、画像解析部140は、当該パノラマ画像から作成したエッジ画像により、当該四角形とラックの上辺または下辺との距離を測定し、搭載位置を特定する。
このように、管理サーバ100によれば、端末装置200のカメラ204の視野内にラック10の正面全体が収まらない場合にも、ラック登録や機器登録を適切に行える。
なお、第1の実施の形態の情報処理は、演算部1bにプログラムを実行させることで実現できる。また、第2および第3の実施の形態の情報処理は、プロセッサ101にプログラムを実行させることで実現できる。プログラムは、コンピュータ読み取り可能な記録媒体24に記録できる。
例えば、プログラムを記録した記録媒体24を配布することで、プログラムを流通させることができる。また、プログラムを他のコンピュータに格納しておき、ネットワーク経由でプログラムを配布してもよい。コンピュータは、例えば、記録媒体24に記録されたプログラムまたは他のコンピュータから受信したプログラムを、RAM102やHDD103などの記憶装置に格納し(インストールし)、当該記憶装置からプログラムを読み込んで実行してもよい。
以上の第1〜第3の実施の形態を含む実施形態に関し、更に以下の付記を開示する。
(付記1) コンピュータに、
ラックおよび前記ラックに搭載された機器を撮像した画像を取得し、
前記画像および前記ラックに搭載可能な機器の縦横比と前記ラックにおける単位サイズとの対応を示す対応情報に基づいて、前記ラックに搭載された機器の前記ラックにおける位置を特定する、
処理を実行させる管理プログラム。
(付記2) 前記特定では、前記画像に含まれる四角形を検出し、前記四角形の縦横比と前記対応情報に登録されている縦横比との比較に応じて、前記四角形が前記ラックに搭載された機器に対応するか否かを判定する、付記1記載の管理プログラム。
(付記3) 前記特定では、前記ラックに搭載された機器に対応する前記四角形のラック幅方向の1つの辺と前記ラックにおける最上段または最下段の収納部のラック幅方向の辺との距離に基づいて前記位置を特定する、付記2記載の管理プログラム。
(付記4) 前記特定では、前記ラックに搭載された機器に対応する前記四角形の高さ方向の辺の長さと前記画像における前記ラックの収納部全体の高さ方向の長さとに基づいて、前記ラックにおける収納部の数を算出する、付記2または3記載の管理プログラム。
(付記5) 前記取得では、前記ラックに搭載された機器の所定の動作を撮像した動画像を取得し、
前記特定では、前記動画像のうち前記動作により変化する領域を検出し、前記領域に基づいて前記動画像のうち前記ラックに搭載された機器に対応する部分を特定する、
付記1記載の管理プログラム。
(付記6) 前記ラックに搭載された機器から機器情報を受信し、
前記機器情報の送信元の機器に所定の動作の実行を指示し、
前記ラック、前記ラックに搭載された機器および前記動作を撮像した動画像を取得し、
前記動画像のうち前記動作に対応する領域を検出し、前記機器情報と前記位置との対応付けに用いる、
付記1乃至4の何れか1項に記載の管理プログラム。
(付記7) 前記動作は、前記ラックに搭載された機器が備える発光部の点滅である、付記5または6記載の管理プログラム。
(付記8) 前記検出では、前記動作に対応する領域を前記動画像から検出できないとき、前記動画像を撮像した装置に、撮像範囲をずらすよう指示する、付記5乃至7の何れか1項に記載の管理プログラム。
(付記9) 前記縦横比は、前記ラックに搭載可能な機器のラック幅方向の長さと当該機器の高さ方向の長さとの比である、付記1乃至8の何れか1項に記載の管理プログラム。
(付記10) ラックに搭載可能な機器の縦横比と前記ラックにおける単位サイズとの対応を示す対応情報を記憶する記憶部と、
ラックおよび前記ラックに搭載された機器を撮像した画像を取得し、前記画像および前記対応情報に基づいて、前記ラックに搭載された機器の前記ラックにおける位置を特定する演算部と、
を有する管理装置。
(付記11) コンピュータが、
ラックおよび前記ラックに搭載された機器を撮像した画像を取得し、
前記画像および前記ラックに搭載可能な機器の縦横比と前記ラックにおける単位サイズとの対応を示す対応情報に基づいて、前記ラックに搭載された機器の前記ラックにおける位置を特定する、
管理方法。