以下、本開示を実施するための形態(以下実施の形態とする)について説明する。
図1は、本発明の一実施の形態の画像処理システムの構成を示す図である。機器の一例であるデジタルスチルカメラ11は、画像を撮影して、撮影した画像を画像処理装置の一例であるサーバ13に供給する。機器の一例である携帯電話機12は、画像を撮影して、撮影した画像をサーバ13に供給する。この場合、デジタルスチルカメラ11および携帯電話機12は、撮影した画像から、その画像を縮小した縮小画像を生成する。
なお、デジタルスチルカメラ11、携帯電話機12、またはサーバ13は、表示制御装置の一例でもある。
サーバ13は、パーソナルコンピュータ、据え置き型のレコーダ、ゲーム機器、または専用機器などからなり、デジタルスチルカメラ11または携帯電話機12から供給された画像を記録する。また、サーバ13は、デジタルスチルカメラ11または携帯電話機12から供給された画像を画像処理し、画像の特徴を抽出する。サーバ13は、その結果得られたデータをデジタルスチルカメラ11または携帯電話機12に供給する。
さらに、サーバ13は、ネットワーク14を介してWebサーバ15−1またはWebサーバ15−2から画像を取得して、取得した画像を記録する。また、サーバ13は、Webサーバ15−1またはWebサーバ15−2から取得した画像を画像処理するとともに、取得した画像から、その画像を縮小した縮小画像を生成する。サーバ13は、画像処理の結果得られたデータを、縮小画像と共にデジタルスチルカメラ11または携帯電話機12に供給する。
デジタルスチルカメラ11または携帯電話機12は、サーバ13から供給された、画像処理の結果得られたデータを基に、記録している画像から、所望の画像を検索する。また、サーバ13は、画像処理の結果得られたデータを基に、記録している画像から、所望の画像を検索する。
デジタルスチルカメラ11、携帯電話機12、およびサーバ13において、画像処理の結果得られた同じデータを基に画像を検索するので、所望の画像が同様に検索できる。
図2は、デジタルスチルカメラ11の構成を示すブロック図である。デジタルスチルカメラ11は、撮影レンズ31、絞り32、撮像デバイス33、アナログ信号処理部34、A/D(Analog to Digital)コンバータ35、デジタル信号処理部36、MPU(Micro Processing Unit)37、メモリ38、D/A(Digital to Analog)コンバータ39、モニタ40、圧縮伸張部41、カードI/F(インタフェース)42、メモリカード43、AF(auto focus)モータズームモータ44、コントロール回路45、EEPROM(Electrically Erasable Programmable Read Only Memory)46、通信部47、通信部48、および入力部49から構成される。
撮影レンズ31は、絞り32を介して、被写体の光学的な像を撮像デバイス33の受光面に結像させる。撮影レンズ31は、1枚又は複数枚のレンズで構成される。撮影レンズ31は、単焦点レンズでもよいし、ズームレンズ等の焦点距離可変のものでもよい。
絞り32は、撮像デバイス33の受光面に結像される光学的な像の光量を調整する。
撮像デバイス33は、CCD(Charge Coupled Device)またはCMOS(complementary metal oxide semiconductor)センサなどからなり、受光面に結像した光学的な像を電気信号に変換する。撮像デバイス33は、変換により得られた電気信号をアナログ信号処理部34に供給する。
アナログ信号処理部34は、サンプリングホールド回路、色分離回路、ゲイン調整回路等を含み、撮像デバイス33からの電気信号に相関二重サンプリング(CDS)処理を適用すると共に、電気信号をR,G,Bの各色信号に分離し、各色信号の信号レベルを調整(プリホワイトバランス処理)する。アナログ信号処理部34は、色信号をA/Dコンバータ35に供給する。
A/Dコンバータ35は、色信号のそれぞれをデジタル信号に変換し、デジタル信号をデジタル信号処理部36に供給する。
デジタル信号処理部36は、輝度・色差信号生成回路、シャープネス補正回路、コントラスト補正回路、ホワイトバランス補正回路等を含み、MPU37の制御に基づいて、デジタル信号を、輝度信号(Y信号)および色差信号(Cr,Cb信号)に変換する。デジタル信号処理部36は、各種の処理を適用したデジタル信号をメモリ38に供給する。
MPU37は、組込型のプロセッサであり、プログラムを実行して、デジタルスチルカメラ11の全体を制御する。
メモリ38は、DRAM(Dynamic Random Access Memory)などからなり、MPU37の制御に基づいて、デジタル信号処理部36から供給されたデジタル信号を一時的に記憶する。D/Aコンバータ39は、メモリ38からデジタル信号を読み出して、読み出したデジタル信号をアナログ信号に変換して、モニタ40に供給する。モニタ40は、LCD(Liquid Crystal Display)または有機EL(Electro Luminescence)ディスプレイなどからなり、D/Aコンバータ39から供給されたアナログ信号に基づいて画像を表示する。
撮像デバイス33から出力される電気信号によってメモリ38のデジタル信号が定期的に書き換えられ、そのデジタル信号から生成されるアナログ信号がモニタ40に供給されることにより、撮像デバイス33に結像される画像がリアルタイムにモニタ40に表示される。
モニタ40にGUI(Graphical User Interface)の画像を表示させる場合には、MPU37は、GUIの画像を表示させるための画像データをメモリ38に書き込んで、D/Aコンバータ39に画像データをアナログ信号に変換させ、モニタ40に、そのアナログ信号に基づいてGUIの画像を表示させる。
圧縮伸張部41は、MPU37の制御の基に、メモリ38に記憶されているデジタル信号をJPEG(Joint Photographic Experts Group)またはJPEG2000などの方式で符号化する。圧縮伸張部41は、符号化により得られた画像データを、カードI/F(インタフェース)42を介してメモリカード43に供給する。メモリカード43は、半導体メモリまたはHDD(Hard Disk Drive)などを内蔵し、着脱自在に、デジタルスチルカメラ11に装着され、デジタルスチルカメラ11に装着されている場合、カードI/F42と電気的に接続する。メモリカード43は、カードI/F42から供給される画像データを記録する。
カードI/F42は、MPU37からの指令に応じて、電気的に接続されているメモリカード43への画像データの記録、およびメモリカード43からの画像データの読み出しを制御する。
メモリカード43に記録されている画像データは、カードI/F42を介して、読み出されて、圧縮伸張部41において、デジタル信号に復号される。
AFモータズームモータ44は、コントロール回路45によって駆動され、撮影レンズ31の焦点や焦点距離を変更するように、撮像デバイス33に対して撮影レンズ31(を構成するレンズ)を移動させる。コントロール回路45は、MPU37からの指令に応じて、AFモータズームモータ44を駆動するとともに、絞り32や撮像デバイス33を制御する。
EEPROM46は、MPU37により実行されるプログラムや各種のデータを記憶する。
通信部47は、USB(Universal Serial Bus)またはIEEE(Institute of Electrical and Electronic Engineers)1394などの規格に準拠するように構成され、有線の伝送媒体を介して、サーバ13と各種のデータを送受信する。
通信部48は、IEEE802.11a、IEEE802.11b、若しくはIEEE802.11g、またはブルートゥースなどの規格に準拠するように構成され、無線の伝送媒体を介して、サーバ13と各種のデータを送受信する。
入力部49は、スイッチ、ボタン、またはタッチパネルなどからなり、使用者から加えられた操作に応じた信号をMPU37に供給する。
なお、メモリカード43に画像データが記録されると説明したが、画像データが記録される媒体は、半導体メモリまたは磁気ディスクに限るものではなく、光ディスクまたは光磁気ディスクなどでもよく、電子的、磁気的、光学的、若しくは量子的、またはこれらの組み合わせによる方式に従って読み書き可能な種々の媒体を用いることができる。これらの媒体は、デジタルスチルカメラ11に内蔵するようにしてもよい。
以下、画像データを単に画像とも称する。
図3は、サーバ13の構成の例を示すブロック図である。CPU(Central Processing Unit)71は、ROM(Read Only Memory)72、または記憶部78に記憶されているプログラムに従って各種の処理を実行する。RAM(Random Access Memory)73には、CPU71が実行するプログラムやデータなどが適宜記憶される。これらのCPU71、ROM72、およびRAM73は、バス74により相互に接続されている。
CPU71にはまた、バス74を介して入出力インタフェース75が接続されている。入出力インタフェース75には、キーボード、マウス、マイクロホンなどよりなる入力部76、ディスプレイ、スピーカなどよりなる出力部77が接続されている。CPU71は、入力部76から入力される指令に対応して各種の処理を実行する。そして、CPU71は、処理の結果を出力部77に出力する。
入出力インタフェース75に接続されている記憶部78は、例えばハードディスクからなり、CPU71が実行するプログラムや各種のデータを記憶する。通信部79は、USBまたはIEEE1394などの規格に準拠するように構成され、有線の伝送媒体を介して、デジタルスチルカメラ11または携帯電話機12と各種のデータを送受信するか、または、IEEE802.11a、IEEE802.11b、若しくはIEEE802.11g、またはブルートゥースなどの規格に準拠するように構成され、無線の伝送媒体を介して、デジタルスチルカメラ11または携帯電話機12と各種のデータを送受信する。通信部80は、インターネットやローカルエリアネットワークなどのネットワーク14を介してWebサーバ15−1またはWebサーバ15−2と通信する。
また、通信部80を介してプログラムを取得し、記憶部78に記憶してもよい。
入出力インタフェース75に接続されているドライブ81は、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブルメディア82が装着されたとき、それらを駆動し、そこに記録されているプログラムやデータなどを取得する。取得されたプログラムやデータは、必要に応じて記憶部78に転送され、記憶される。
図4は、プログラムを実行するMPU37により実現される機能の構成を示す図である。MPU37は、プログラムを実行することにより、撮影制御部101、縮小画像生成部102、メタデータ生成部103、エントリ生成部104、記録制御部105、表示制御部106、検索部107、送信制御部108、受信制御部109、画像保持部110、コンテンツデータベース111、類似特徴データベース112、類似結果データベース113、時間グループデータベース114、および検索結果保持部115を実現する。
撮影制御部101は、撮影レンズ31乃至デジタル信号処理部36およびメモリ38乃至コントロール回路45を制御することで、デジタルスチルカメラ11における撮影を制御する。撮影制御部101は、撮影した画像を、画像保持部110としてのメモリカード43の記録領域に記録させる。
縮小画像生成部102は、撮影された画像のデジタル信号をメモリ38から読み出して、撮影された画像を縮小し、縮小画像を生成する。生成された縮小画像は、カードI/F42を介してメモリカード43に供給され、画像保持部110としてのメモリカード43の記録領域に記録される。
例えば、撮影制御部101の制御に基づいて、画素の数が300万乃至400万である高解像度の画像が撮影されると、縮小画像生成部102は、撮影された画像から、デジタルスチルカメラ11で閲覧するのに適した640画素×480画素のVGA(Video Graphics Array)と同じか、またはこれと同等のサイズの縮小画像を生成する。
なお、縮小画像生成部102は、画像保持部110から画像を読み出して、読み出した画像を縮小し、縮小画像を生成するようにしてもよい。
以下、縮小画像と、撮影された画像とを区別するために、撮影された画像を本画像と称する。なお、縮小画像と本画像を区別する必要がないとき、単に画像と称する。
詳細は、後述するが、本画像と縮小画像とは、コンテンツデータベース111に記録されているデータによって紐付けされる。
メタデータ生成部103は、本画像についてのメタデータを生成する。例えば、メタデータ生成部103は、JEIDA(Japanese Electronic Industry Development Association)によって規格化されているEXIF(Exchangeable Image File Format)方式のデータに格納されるメタデータを生成する。
エントリ生成部104は、データベースマネジメントシステム(Database Management System)として構成され、本画像が撮影されたとき、本画像および縮小画像のエントリを生成する。生成されたエントリは、コンテンツデータベース111に格納される。
記録制御部105は、本画像および縮小画像の画像保持部110への記録を制御する。
表示制御部106は、縮小画像およびGUIの画像のモニタ40への表示を制御する。
検索部107は、コンテンツデータベース111、類似特徴データベース112、類似結果データベース113、または時間グループデータベース114に格納されているデータを基に、画像保持部110に記録されている縮小画像または本画像から、所望の縮小画像または本画像を検索する。検索部107は、検索の結果に応じたデータを、検索結果保持部115に格納させる。
検索部107は、距離計算部121を含む。距離計算部121は、類似特徴データベース112に格納されている画像の特徴を示すデータから、2つの画像の類似の度合いを示す距離を計算する。距離計算部121は、計算した距離を類似結果データベース113に記録させる。
送信制御部108は、通信部47を制御して、通信部47による本画像または縮小画像のサーバ13への送信を制御する。受信制御部109は、通信部47を制御して、通信部47による、サーバ13から送信されてくる、画像に各種の画像処理を適用して得られた画像の特徴の受信を制御する。
画像保持部110は、メモリカード43の記録空間に構築され、本画像または縮小画像を記録する。
コンテンツデータベース111、類似特徴データベース112、類似結果データベース113、および時間グループデータベース114は、メモリカード43の所定の記録空間およびそれぞれのデータベースマネジメントシステムから構成される。
コンテンツデータベース111は、画像を特定するデータおよびこれに対応させて画像の各種のメタデータを格納する。類似特徴データベース112は、サーバ13における画像の画像処理の結果得られた、画像の特徴を示すデータを格納する。
類似結果データベース113は、検索部107の距離計算部121において計算された、2つの画像の類似の度合いを示す距離を格納する。
時間グループデータベース114は、使用者が画像をグループに分類した場合の、それぞれのグループに属する画像を特定する情報を格納する。
検索結果保持部115は、検索の結果に応じたデータを記録する。例えば、検索結果保持部115は、画像の画素の色を基に抽出された、画像が所定の色名によって想起される度合いを示す関連度と、使用者からの操作に応じて入力された、色名で表される色の重みとから検索された、重みに応じた色の画像の検索結果を記録する。
関連度の詳細は、後述する。
図5は、プログラムを実行するCPU71により実現される機能の構成を示す図である。CPU71は、プログラムを実行することにより、画像解析部131、縮小画像生成部132、メタデータ生成部133、エントリ生成部134、記録制御部135、表示制御部136、検索部137、送信制御部138−1および送信制御部138−2、受信制御部139−1および受信制御部139−2、画像保持部140、コンテンツデータベース141、類似特徴データベース142、類似結果データベース143、時間グループデータベース144、関連度抽出部対応保持部145、抽出特徴保持部146、並びに検索結果保持部147を実現する。
画像解析部131は、画像の特徴を抽出する。すなわち、画像解析部131は、画像に画像処理を適用して、画像を解析する。画像解析部131は、画像処理の結果得られた、画像の特徴を類似特徴データベース142または送信制御部138−1に供給する。
図6は、画像解析部131の構成の例を示すブロック図である。画像解析部131は、顔画像検出部161および類似特徴量抽出部162から構成される。
顔画像検出部161は、画像に含まれる顔の画像に関する情報である画像の特徴を抽出する。例えば、顔画像検出部161は、画像に含まれる顔の画像の数、画像における顔の画像の位置、顔の画像の大きさ、または顔の画像における顔の向きなどである画像の特徴を抽出する。
類似特徴量抽出部162は、画像の類似の度合いを求めるための画像の特徴量を抽出する。類似特徴量抽出部162は、類似特徴ベクトル算出部171および色特徴抽出部172から構成される。類似特徴ベクトル算出部171は、2つの画像のそれぞれの特徴からその2つの画像の類似の度合いが計算される特徴を抽出する。色特徴抽出部172は、画像から、画像の画素の色を基に、画像が所定の色名によって想起される度合いを示す関連度を抽出する。言い換えれば、色特徴抽出部172は、画像の画素のうち、画素の色が所定の名前の色に分類される画素の数を示す特徴を抽出する。
図5に戻り、縮小画像生成部132は、受信制御部139−2の制御の基に、ネットワーク14を介してWebサーバ15−1またはWebサーバ15−2から取得した本画像を縮小し、縮小画像を生成する。生成された縮小画像は、画像保持部140に記録される。
なお、縮小画像生成部132は、画像保持部140から画像を読み出して、読み出した画像を縮小し、縮小画像を生成するようにしてもよい。
メタデータ生成部133は、本画像についてのメタデータを生成する。例えば、メタデータ生成部133は、JEIDAによって規格化されているEXIF方式のデータに格納されるメタデータを生成する。
エントリ生成部134は、データベースマネジメントシステムとして構成され、受信制御部139−1の制御の基に、デジタルスチルカメラ11から取得された本画像のエントリを生成する。または、エントリ生成部134は、受信制御部139−2の制御の基に、ネットワーク14を介してWebサーバ15−1またはWebサーバ15−2から本画像が取得され、本画像から縮小画像が生成された場合、本画像および縮小画像のエントリを生成する。生成されたエントリは、コンテンツデータベース141に格納される。
記録制御部135は、本画像および縮小画像の画像保持部140への記録を制御する。
表示制御部136は、ディスプレイである出力部77への、本画像およびGUIの画像の表示を制御する。
検索部137は、コンテンツデータベース141、類似特徴データベース142、または時間グループデータベース144に格納されているデータを基に、画像保持部140に記録されている本画像または縮小画像から、所望の本画像または縮小画像を検索する。または、検索部137は、抽出特徴保持部146に格納されているデータを基に、画像保持部140に記録されている本画像または縮小画像から、所望の本画像または縮小画像を検索する。検索部137は、検索の結果に応じたデータを、検索結果保持部147に格納する。
検索部137は、距離計算部151を含む。距離計算部151は、類似特徴データベース142に格納されている画像の特徴を示すデータから、2つの画像の類似の度合いを示す距離を計算する。距離計算部151は、計算した距離を類似結果データベース143に記録させる。
送信制御部138−1は、通信部79を制御して、通信部79に、画像解析部131において画像処理の結果得られた、画像の特徴をデジタルスチルカメラ11宛てに送信させる。受信制御部139−1は、通信部79を制御して、通信部79に、デジタルスチルカメラ11から送信されてくる本画像および縮小画像を受信させる。
送信制御部138−2は、通信部80を制御する。送信制御部138−2は、通信部80に、ネットワーク14を介して、画像の要求をWebサーバ15−1またはWebサーバ15−2宛てに送信させる。受信制御部139−2は、通信部80を制御して、通信部80に、Webサーバ15−1またはWebサーバ15−2から送信されてくる本画像を受信させる。
画像保持部140は、ハードディスクなどからなる記憶部78の記録空間に構築され、本画像または縮小画像を記録する。画像保持部140は、ドライブ81に装着される、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブルメディア82の記録空間に構築するようにしてもよい。
コンテンツデータベース141、類似特徴データベース142、類似結果データベース143、および時間グループデータベース144は、記憶部78の所定の記録空間およびそれぞれのデータベースマネジメントシステムから構成される。
コンテンツデータベース141は、画像を特定するデータおよびこれに対応させて画像の各種のメタデータを格納する。類似特徴データベース142は、画像解析部131における画像の画像処理の結果得られた、画像の特徴を示すデータを格納する。
類似結果データベース113は、検索部137の距離計算部151において計算された、2つの画像の類似の度合いを示す距離を格納する。
時間グループデータベース144は、使用者が画像をグループに分類した場合の、それぞれのグループに属する画像を特定する情報を格納する。
関連度抽出部対応保持部145は、色特徴抽出部172における、色名と、色毎に関連度を抽出する関連度抽出部(詳細は図33を参照して後述する)との対応を示す対応情報を記録する。
抽出特徴保持部146は、色特徴抽出部172において抽出された、画像が所定の色名によって想起される度合いを示す関連度を保持する。
検索結果保持部147は、画像の画素の色を基に抽出された、画像が所定の色名によって想起される度合いを示す関連度と、使用者からの操作に応じて入力された検索条件とから検索された、検索条件に応じた色の画像の検索結果を記録する。例えば、検索結果保持部147は、関連度と、色名で表される色の重みである検索条件とから検索された、重みに応じた色の画像の検索結果を記録する。
次に、画像から特徴を抽出して、抽出した特徴をサーバ13およびデジタルスチルカメラ11において記録する処理について説明する。
まず、図7のフローチャートを参照して、デジタルスチルカメラ11の撮影の処理を説明する。
ステップS11において、撮影制御部101は、撮影レンズ31乃至デジタル信号処理部36、メモリ38、AFモータズームモータ44、およびコントロール回路45を制御し、被写体を撮影させる。ステップS12において、撮影制御部101は、圧縮伸張部41に、メモリ38に記憶されているデジタル信号をJPEGまたはJPEG2000などの方式で符号化させて、画像データである本画像を生成させる。撮影制御部101は、本画像を画像保持部110に記録させる。
また、メタデータ生成部103は、本画像についてのメタデータを生成する。例えば、メタデータ生成部103は、JEIDAによって規格化されているEXIF方式のデータに格納される、本画像の撮影時刻または撮影条件などのメタデータを生成する。
ステップS13において、縮小画像生成部102は、撮影された画像のデジタル信号をメモリ38から読み出して、撮影された画像を縮小し、縮小画像を生成する。縮小画像生成部102は、縮小画像を画像保持部110に記録させる。
ステップS14において、エントリ生成部104は、本画像および縮小画像のエントリを生成する。エントリ生成部104は、生成されたエントリを、メタデータ生成部103において生成したメタデータに関係付けて、コンテンツデータベース111に追加(格納)し、処理は終了する。
コンテンツデータベース111に、撮影時刻または撮影条件などのメタデータが格納されるので、撮影時刻または撮影条件により本画像または縮小画像を検索することができる。
携帯電話機12においても、図7のフローチャートで示される撮影の処理と同様の処理が実行される。
このようにすることで、図8で示されるように、デジタルスチルカメラ11または携帯電話機12において、画像が撮影されると、本画像201に関係付けられたメタデータがコンテンツデータベース111に格納されると共に、本画像201を縮小した縮小画像202が生成され、本画像201に関係付けられたメタデータであって、コンテンツデータベース111に格納されているメタデータと縮小画像202とが関係付けられる。
次に、図9のフローチャートを参照して、デジタルスチルカメラ11において撮影された画像をサーバ13にバックアップする場合の、サーバ13のバックアップの処理を説明する。サーバ13のバックアップの処理は、例えば、デジタルスチルカメラ11に一端が接続されているUSBケーブルがサーバ13に接続されるとプログラムが起動されることにより開始される。
ステップS31において、サーバ13の送信制御部138−1および受信制御部138−1は、通信部79に、デジタルスチルカメラ11と接続させる。
ステップS32において、サーバ13の送信制御部138−1および受信制御部138−1は、通信部79に、デジタルスチルカメラ11から本画像201および縮小画像202を取得させる。例えば、ステップS32において、送信制御部138−1は、通信部79に、デジタルスチルカメラ11宛てに本画像201および縮小画像202の送信要求を送信させる。すると、デジタルスチルカメラ11が本画像201および縮小画像202を送信してくるので、受信制御部138−1は、通信部79に、デジタルスチルカメラ11から送信されてきた本画像201および縮小画像202を受信させる。受信制御部138−1は、取得した(受信した)本画像201および縮小画像202を画像保持部140に供給する。
ステップS33において、画像保持部140は、デジタルスチルカメラ11から取得した本画像201および縮小画像202を記録する。
ステップS34において、画像解析部131は、画像保持部140に記録された画像を解析する。
なお、画像解析部131は、本画像201を解析するようにしてもよく、縮小画像202を解析するようにしてもよい。
ステップS34の画像の解析の処理の詳細を、図10のフローチャートを参照して説明する。
ステップS41において、画像解析部131の顔画像検出部161は、画像から顔画像を検出する。すなわち、ステップS41において、顔画像検出部161は、画像に含まれる顔の画像に関する情報である画像の特徴を抽出する。例えば、ステップS41において、顔画像検出部161は、画像に含まれる顔の画像の数、画像における顔の画像の位置、顔の画像の大きさ、または顔の画像における顔の向きである画像の特徴を抽出する。
より具体的には、例えば、顔画像検出部161は、画像の画素のうち、人の肌の色に対応する所定の色の範囲に属する色を示す画素値を有する画素を特定する。そして、顔画像検出部161は、色によって特定された画素のうち、所定の数以上、相互に隣接している画素により構成される領域を顔の画像とする。
顔画像検出部161は、検出された顔の画像の数を数える。さらに、顔画像検出部161は、画像の全体の高さおよび全体の幅をそれぞれ1とした場合、画像における顔の画像の位置として、画像の全体に対する相対的な、顔の画像の縦方向の位置および横方向の位置を検出する。
また、顔画像検出部161は、画像の全体の高さおよび全体の幅をそれぞれ1とした場合、画像における顔の画像の大きさとして、画像の全体に対する相対的な、顔の画像の高さおよび幅を検出する。
そして、顔画像検出部161は、予め定義されている、想定される顔の方向ごとの複数のパターンと、選択された顔の画像と一致するか否かを判定し、顔の向きを、顔の画像と一致するパターンに対応する向きとすることで、顔の向きを検出する。この場合、顔画像検出部161は、選択された顔の画像について、顔の向きとして、顔のロール角、ピッチ角、およびヨー角を検出する。
ステップS42において、画像解析部131の類似特徴量抽出部162の類似特徴ベクトル算出部171は、画像の類似の度合いを求める特徴量である類似特徴ベクトルを算出する。すなわち、ステップS42において、類似特徴ベクトル算出部171は、2つの画像のそれぞれの特徴からその2つの画像の類似の度合いが計算される特徴を抽出する。
例えば、類似特徴ベクトル算出部171は、色ヒストグラムである類似特徴ベクトルを算出する。
より具体的には、例えば、図11で示されるように、類似特徴ベクトル算出部171は、24ビットRGBの本画像201の167772161色の色を、32色に減色し、32色に減色した減色画像221を生成する。すなわち、5ビットRGBの減色画像221が生成される。例えば、類似特徴ベクトル算出部171は、本画像201の各画素の画素値から、所定の上位のビットを抽出することで、減色画像221を生成する。
そして、類似特徴ベクトル算出部171は、RGBで表される減色画像221の各画素の色を、L*a*b*で表すように変換する。すなわち、類似特徴ベクトル算出部171は、減色画像221の各画素の色を示すL*a*b*空間上の位置を特定する。言い換えれば、減色画像221の画素のそれぞれについて、減色画像221の各画素で示される32色のいずれかの色(L*a*b*空間上の位置)が特定される。
さらに、類似特徴ベクトル算出部171は、減色画像221について、32色の色毎の画素の数、すなわち、色毎の頻度を求めて、色ヒストグラムを生成する。色ヒストグラムの尺度は、色を示し、色ヒストグラムの度数は、その色の画素の数(頻度)を示す。
また、例えば、類似特徴ベクトル算出部171は、垂直成分ヒストグラムおよび水平成分ヒストグラムである類似特徴ベクトルを算出する。
この場合、まず、図12で示されるように、類似特徴ベクトル算出部171は、本画像201を、16画素×16画素のブロック241に分割し、それぞれのブロック241に、垂直方向(縦)および水平方向(横)にDFT(Discrete Fourier Transform)の処理を適用する。
すなわち、類似特徴ベクトル算出部171は、各ブロック241の縦1列に並ぶ16の画素にDFTの処理を適用し、縦1列の16の画素の画像の周波数成分を抽出する。各ブロック241には、16の画素からなる列が、16並んでいるので、類似特徴ベクトル算出部171は、それぞれのブロック241についての垂直方向(縦)のDFTの処理によって、16の画像の周波数成分を抽出することになる。
そして、類似特徴ベクトル算出部171は、各ブロック241に垂直方向(縦)のDFTの処理を適用した結果得られた画像の周波数成分を、周波数毎に積算(加算)する。類似特徴ベクトル算出部171は、各ブロック241に垂直方向(縦)のDFTの処理を適用した結果を積算した値のうち、DC成分を除く、8つのより低い周波数の成分の中から、最大の成分を抽出する。この場合、最大値が予め定めた閾値に満たないときには、そのブロック241の処理の結果は破棄される。
類似特徴ベクトル算出部171は、画像について、このように求められたブロック241毎の最大値を8つの周波数ごとに積算することで、図13で示すように、8つの周波数に対する最大値の頻度を示す垂直成分ヒストグラムを生成する。垂直成分ヒストグラムの尺度は、画像の周波数を示し、垂直成分ヒストグラムの度数は、その周波数の成分が最大となる数(頻度)を示す。
同様に、類似特徴ベクトル算出部171は、各ブロック241の横1行に並ぶ16の画素にDFTの処理を適用し、横1行の16の画素の画像の周波数成分を抽出する。各ブロック241には、16の画素からなる行が、16並んでいるので、類似特徴ベクトル算出部171は、それぞれのブロック241についての水平方向(横)のDFTの処理によって、16の画像の周波数成分を抽出することになる。
そして、類似特徴ベクトル算出部171は、各ブロック241に水平方向(横)にDFTの処理を適用した結果得られた画像の周波数成分を、周波数毎に積算(加算)する。類似特徴ベクトル算出部171は、各ブロック241に水平方向(横)のDFTの処理を適用した結果を積算した値のうち、DC成分を除く、8つのより低い周波数の成分の中から、最大の成分を抽出する。この場合、最大値が予め定めた閾値に満たないときには、そのブロック241の処理の結果は破棄される。
類似特徴ベクトル算出部171は、画像について、このように求められたブロック241毎の最大値を8つの周波数ごとに積算することで、図13で示すように、8つの周波数に対する最大値の頻度を示す水平成分ヒストグラムを生成する。水平成分ヒストグラムの尺度は、画像の周波数を示し、水平成分ヒストグラムの度数は、その周波数の成分が最大となる数(頻度)を示す。
このように、類似特徴ベクトル算出部171は、画像について、垂直成分ヒストグラムおよび水平成分ヒストグラムを生成する。
例えば、ステップS42において、類似特徴ベクトル算出部171は、2つの画像のそれぞれの特徴からその2つの画像の類似の度合いが計算される特徴として、色ヒストグラム、垂直成分ヒストグラム、および水平成分ヒストグラムを抽出する。
図10に戻り、ステップS43において、画像解析部131の類似特徴量抽出部162の色特徴抽出部172は、画像に色特徴抽出の処理を適用して、処理は終了する。色特徴抽出の処理によって、画像から、画像の画素の色を基に、画像が所定の色名によって想起される度合いを示す関連度が抽出される。色特徴抽出の処理の詳細は、図36のフローチャートを参照して後述する。
このように、ステップS34において、画像解析部131によって、画像保持部140に記録された画像が解析されて、画像の特徴が抽出される。
ステップS35において、メタデータ生成部133は、ステップS34において抽出された画像の特徴を含む画像のメタデータを生成する。ステップS36において、エントリ生成部134は、本画像201および縮小画像202のエントリを生成する。エントリ生成部134は、生成したエントリを、ステップS35において生成されたメタデータに関係付けて、コンテンツデータベース141および類似特徴データベース142に追加(格納)する。コンテンツデータベース141および類似特徴データベース142は、サーバ13において抽出された画像の特徴を含むメタデータを記録する。
ステップS37において、送信制御部138−1は、通信部79に、デジタルスチルカメラ11のコンテンツデータベース111および類似特徴データベース112に、抽出された画像の特徴を含むメタデータを記入させる。すなわち、ステップS37において、送信制御部138−1は、コンテンツデータベース111および類似特徴データベース112への記入の指令と共に、ステップS35において生成されたメタデータを、通信部79に、デジタルスチルカメラ11宛てに送信させる。デジタルスチルカメラ11の受信制御部109は、通信部47に、メタデータとコンテンツデータベース111および類似特徴データベース112への記入の指令とを受信させると、メタデータとコンテンツデータベース111および類似特徴データベース112への記入の指令とをコンテンツデータベース111および類似特徴データベース112に供給する。コンテンツデータベース111および類似特徴データベース112は、記入の指令を受けると、サーバ13において抽出された画像の特徴を含むメタデータを記録する。
このように、コンテンツデータベース141および類似特徴データベース142と、コンテンツデータベース111および類似特徴データベース112とは、サーバ13において抽出された画像の特徴を含む同じメタデータを記録する。
ステップS38において、サーバ13の送信制御部138−1および受信制御部138−1は、通信部79に、デジタルスチルカメラ11との接続を切断させ、処理は終了する。
なお、サーバ13は、携帯電話機12に対して、携帯電話機12で撮影された画像について、図9のフローチャートで示されるバックアップの処理と同様に処理を実行することができる。
図14で示されるように、デジタルスチルカメラ11または携帯電話機12で撮影された画像がサーバ13−1またはサーバ13−2にバックアップされると、サーバ13−1またはサーバ13−2は、バックアップされた画像を解析して、画像の特徴を抽出し、抽出した画像の特徴を記述したメタデータ261をデジタルスチルカメラ11または携帯電話機12に書き戻す。
図15は、本画像201および縮小画像202に関係付けられた、抽出した画像の特徴を記述したメタデータ261の具体例を示す図である。
メタデータ261は、例えば、XML(eXtensible Mark-up Language)方式で記述される。
<photo>タグおよび</photo>タグの間には、本画像201および縮小画像202との関係付けを示す情報並びに本画像201および縮小画像202の特徴を示す情報が配置される。
<guid>タグおよび</guid>タグの間には、このメタデータ261に関係付けられている本画像201および縮小画像202を特定する特定情報であるコンテンツIDが配置される。例えば、コンテンツIDは、128ビットとされる。コンテンツIDは、本画像201と、その本画像201を縮小した縮小画像202とに共通とされる。
<FullImgPath>タグおよび</FullImgPath>タグの間には、画像データである本画像201が格納されているファイルのパスおよび画像データである本画像201が格納されているファイルのファイル名が配置される。<CacheImgPath>タグおよび</CacheImgPath>タグの間には、画像データである縮小画像202が格納されているファイルのパスおよび画像データである縮小画像202が格納されているファイルのファイル名が配置される。
<TimeStamp>タグおよび</TimeStamp>タグの間に配置されている2003:03:31 06:52:32は、本画像201が、2003年3月31日6時52分32秒に撮影されたことを示すタイムスタンプである。
<Faceinfo>タグおよび</Faceinfo>タグの間には、コンテンツIDで特定される本画像201および縮小画像202に含まれる顔の画像に関する情報が配置される。
<TotalFace>タグおよび</TotalFace>タグの間に配置されている1は、コンテンツIDで特定される本画像201または縮小画像202に含まれる顔の画像の数が1つであることを示す。すなわち、<TotalFace>タグおよび</TotalFace>タグの間に配置されている値は、コンテンツIDで特定される本画像201または縮小画像202に含まれる顔の画像の総数を示す。
<FaceEntry>タグおよび</FaceEntry>タグの間には、1つの顔の画像についての情報が配置される。図15に例示されるメタデータ261における顔の画像の総数が1なので、1組の<FaceEntry>タグおよび</FaceEntry>タグが配置されることになる。
<x>タグおよび</x>タグの間に配置されている値は、コンテンツIDで特定される本画像201または縮小画像202における顔の画像の横方向の位置を示す。図15において、<x>タグおよび</x>タグの間に配置されている0.328767は、本画像201または縮小画像202の左端を0.0とし、本画像201または縮小画像202の右端を1.0とした場合に、顔の画像の右端の横方向の位置が、0.328767であることを示す。
<y>タグおよび</y>タグの間に配置されている値は、コンテンツIDで特定される本画像201または縮小画像202における顔の画像の縦方向の位置を示す。図15において、<y>タグおよび</y>タグの間に配置されている0.204082は、本画像201または縮小画像202の上端を0.0とし、本画像201または縮小画像202の下端を1.0とした場合に、顔の画像の上端の縦方向の位置が、0.204082であることを示す。
すなわち、<x>タグおよび</x>タグの間には、顔の画像の正規化された横方向の位置が配置され、<y>タグおよび</y>タグの間には、顔の画像の正規化された縦方向の位置が配置される。
<width>タグおよび</width>タグの間に配置されている値は、コンテンツIDで特定される本画像201または縮小画像202における顔の画像の幅(横方向のサイズ)を示す。図15において、<width>タグおよび</width>タグの間に配置されている0.408163は、本画像201または縮小画像202の幅を1.0とした場合に、顔の画像の幅が、0.408163であることを示す。
<height>タグおよび</height>タグの間に配置されているは、コンテンツIDで特定される本画像201または縮小画像202における顔の画像の高さ(縦方向のサイズ)を示す。図15において、<height>タグおよび</height>タグの間に配置されている0.273973は、本画像201または縮小画像202の高さを1.0とした場合に、顔の画像の高さが、0.273973であることを示す。
すなわち、<width>タグおよび</width>タグの間には、顔の画像の正規化された幅が配置され、<height>タグおよび</height>タグの間には、顔の画像の正規化された高さが配置される。
<roll>タグおよび</roll>タグの間に配置されている値は、顔の画像における顔のロール角を示す。図15において、<roll>タグおよび</roll>タグの間に配置されている0.000000は、顔の画像における顔のロール角が、0.000000度であることを示す。
<pitch>タグおよび</pitch>タグの間に配置されている値は、顔の画像における顔のピッチ角を示す。図15において、<pitch>タグおよび</pitch>タグの間に配置されている0.000000は、顔の画像における顔のピッチ角が、0.000000度であることを示す。
<yaw>タグおよび</yaw>タグの間に配置されている値は、顔の画像における顔のヨー角を示す。図15において、<yaw>タグおよび</yaw>タグの間に配置されている0.000000は、顔の画像における顔のヨー角が、0.000000度であることを示す。
ここで、ロール角は、顔の前後方向の位置を示す前後軸(x軸)の周りの移動角である。ピッチ角は、顔の左右方向の位置を示す横軸(y軸)の周りの移動角である。ヨー角は、顔の上下方向の位置を示す垂直軸(z軸)の周りの移動角である。
<Similarityinfo>タグおよび</Similarityinfo>タグの間には、コンテンツIDで特定される本画像201または縮小画像202と他の画像との類似の度合いを求める場合に用いる、コンテンツIDで特定される本画像201および縮小画像202の特徴量が配置される。
図15に示す例において、<Similarityinfo>タグおよび</Similarityinfo>タグの間には、本画像201または縮小画像202が所定の色名によって想起される度合いを示す関連度、および色または画像の周波数成分などの類似の度合いを計算するための特徴量が配置される。
<ColorInfo>タグおよび</ColorInfo>タグの間には、コンテンツIDで特定される本画像201または縮小画像202から抽出された、本画像201または縮小画像202の画素の色を基に、本画像201または縮小画像202が所定の色名によって想起される度合いを示す関連度が配置される。
<ColorWhite>タグおよび</ColorWhite>タグの間には、コンテンツIDで特定される本画像201または縮小画像202から、本画像201または縮小画像202の画素の色を基に抽出された、本画像201または縮小画像202が白である色名によって想起される度合いを示す関連度が配置される。図15において、<ColorWhite>タグおよび</ColorWhite>タグの間に配置されている0は、本画像201または縮小画像202が白である色名によって想起される度合いを示す関連度が0であることを示す。
<ColorBlack>タグおよび</ColorBlack>タグの間には、コンテンツIDで特定される本画像201または縮小画像202から、本画像201または縮小画像202の画素の色を基に抽出された、本画像201または縮小画像202が黒である色名によって想起される度合いを示す関連度が配置される。図15において、<ColorBlack>タグおよび</ColorBlack>タグの間に配置されている0は、本画像201または縮小画像202が黒である色名によって想起される度合いを示す関連度が0であることを示す。
<ColorRed>タグおよび</ColorRed>タグの間には、コンテンツIDで特定される本画像201または縮小画像202から、本画像201または縮小画像202の画素の色を基に抽出された、本画像201または縮小画像202が赤である色名によって想起される度合いを示す関連度が配置される。図15において、<ColorRed>タグおよび</ColorRed>タグの間に配置されている0は、本画像201または縮小画像202が赤である色名によって想起される度合いを示す関連度が0であることを示す。
<ColorYellow>タグおよび</ColorYellow>タグの間には、コンテンツIDで特定される本画像201または縮小画像202から、本画像201または縮小画像202の画素の色を基に抽出された、本画像201または縮小画像202が黄である色名によって想起される度合いを示す関連度が配置される。図15において、<ColorYellow>タグおよび</ColorYellow>タグの間に配置されている0は、本画像201または縮小画像202が黄である色名によって想起される度合いを示す関連度が0であることを示す。
<ColorGreen>タグおよび</ColorGreen>タグの間には、コンテンツIDで特定される本画像201または縮小画像202から、本画像201または縮小画像202の画素の色を基に抽出された、本画像201または縮小画像202が緑である色名によって想起される度合いを示す関連度が配置される。図15において、<ColorGreen>タグおよび</ColorGreen>タグの間に配置されている12は、本画像201または縮小画像202が緑である色名によって想起される度合いを示す関連度が0.12であることを示す。すなわち、ここでは関連度が%(パーセント)表記にて記録されている。
<ColorBlue>タグおよび</ColorBlue>タグの間には、コンテンツIDで特定される本画像201または縮小画像202から、本画像201または縮小画像202の画素の色を基に抽出された、本画像201または縮小画像202が青である色名によって想起される度合いを示す関連度が配置される。図15において、<ColorBlue>タグおよび</ColorBlue>タグの間に配置されている0は、本画像201または縮小画像202が黄である色名によって想起される度合いを示す関連度が0であることを示す。
<VectorInfo>タグおよび</VectorInfo>タグの間には、コンテンツIDで特定される本画像201または縮小画像202と他の画像との類似の度合いを求めるための、コンテンツIDで特定される本画像201または縮小画像202についての特徴が配置される。
<VectorInfo>タグおよび</VectorInfo>タグの1つの組の間は、コンテンツIDで特定される本画像201または縮小画像202についての、それぞれ1つの特徴が配置される。図15のメタデータ261の例には、<VectorInfo>タグおよび</VectorInfo>タグの3つの組が記述されている。
それぞれの<VectorInfo>タグおよび</VectorInfo>タグの間には、<method>タグと</method>タグ、および<vector>タグと</vector>タグが配置される。<method>タグおよび</method>タグの間には、類似の度合いを求めるための特徴の方式が記述され、<vector>タグおよび</vector>タグの間には、その特徴の量が記述される。<vector>タグおよび</vector>タグの間に記述される特徴量は、ベクトルとされる。
図15において、最も上の<VectorInfo>タグおよび</VectorInfo>タグの間の、<method>タグおよび</method>タグの間に配置されているColor Featureは、その次の<vector>タグおよび</vector>タグの間に配置されている特徴量が、色の特徴量であることを示す。色の特徴量は、例えば、図11を参照して説明した色ヒストグラムで示される特徴量である。
図15において、上から2番目の<VectorInfo>タグおよび</VectorInfo>タグの間の、<method>タグおよび</method>タグの間に配置されているTexture Featureは、その次の<vector>タグおよび</vector>タグの間に配置されている特徴量が、模様の特徴量であることを示す。模様の特徴量は、例えば、図12および図13を参照して説明した垂直成分ヒストグラムおよび水平成分ヒストグラムからなる周波数成分のヒストグラムで示される特徴量である。
メタデータ261は、全体として、デジタルスチルカメラ11において、コンテンツデータベース111と類似特徴データベース112とに格納され、サーバ13において、コンテンツデータベース141と類似特徴データベース142とに格納される。すなわち、メタデータ261は、適宜分割されて、デジタルスチルカメラ11において、その一部分がコンテンツデータベース111に格納され、残りの部分が類似特徴データベース112に格納され、サーバ13において、コンテンツデータベース111に格納されている部分と同じ部分がコンテンツデータベース141に格納され、類似特徴データベース112に格納されている部分と同じ部分が類似特徴データベース142に格納される。
図16は、コンテンツデータベース111またはコンテンツデータベース141に格納されているメタデータ(の部分)の構成を示す図である。
コンテンツデータベース111またはコンテンツデータベース141に格納されているメタデータは、コンテンツID、撮影時刻、パス名、ファイル名、グループID、画像に含まれる顔の画像に関する情報(以下、顔画像情報と称する)、ラベルID、およびコメントなどからなる。
コンテンツIDは、画像に固有のIDであり、画像を特定する。コンテンツIDによって、本画像201および縮小画像202が特定される。コンテンツIDは、GUIDであるプロパティとされ、文字列の型で表現される。画像が撮影された日時を示す撮影時刻は、協定世界時およびローカルタイムで表現される。協定世界時で表される撮影時刻は、UTCdateであるプロパティとされ、日付の型で表現される。協定世界時で表される撮影時刻は、EXIF方式のデータのDate Time Originalに記入される撮影時刻(UTC(Universal Coordinated Time))と同じである。
ローカルタイムで表される撮影時刻は、dateであるプロパティとされ、日付の型で表現される。ローカルタイムで表される撮影時刻は、EXIF方式のデータのDate Time Originalに記入される撮影時刻(Local time)と同じである。
パス名は、ms/DCIM/XXXXX/など、本画像201のファイルのディレクトリ名(ファイル名を含まず)を示す。パス名は、pathであるプロパティとされ、文字列の型で表現される。
ファイル名は、DSC00001.JPGなど、画像データである本画像201が格納されているファイルの名前を示す。ファイル名は、DCFnameであるプロパティとされ、文字列の型で表現される。
縮小画像202のパス名およびファイル名は、/DATA/EVENTIMAGE/000000000001.JPGなど、縮小画像202のファイルのディレクトリ名およびファイル名を示す。縮小画像202のパス名およびファイル名は、vgaCachePathであるプロパティとされ、文字列の型で表現される。
グループIDは、画像が所属するグループを特定するデータである。画像は、使用者によって、所望のグループに分類される。グループIDは、画像が分類されたグループを特定する。例えば、画像が撮影されたイベント(旅行や運動会などの行事や催し)毎に、グループを造り、そのイベントで撮影された画像を、イベントに対応するグループに分類することができる。
グループIDは、groupIDであるプロパティとされ、数値の型で表現される。
例えば、顔画像情報は、画像が、風景画(顔が写っていない画像)、少人数の人物画(1乃至5人の顔が写っている画像)、または大人数の人物画(6人以上の顔が写っている画像)のいずれかであることを示す。例えば、1である顔画像情報は、画像が風景画であることを示し、2である顔画像情報は、画像が少人数の人物画であることを示し、3である顔画像情報は、画像が大人数の人物画であることを示す。顔画像情報は、faceExistenceであるプロパティとされ、数値の型で表現される。
顔画像情報は、画像に含まれる顔の画像の数、画像における顔の画像の位置、顔の画像の大きさ、または顔の画像における顔の向きを示すようにしてもよい。
ラベルIDは、画像に付されたラベルを示す。ラベルIDは、labelsであるプロパティとされ、数値の配列の型で表現される。
コメントは、commentであるプロパティとされ、文字列の型で表現される。
プロテクト状態は、消去付加などのその画像の保護の状態を示す。プロテクト状態は、protectであるプロパティとされ、論理データの型で表現される。
エクスチェンジ/インポートフラグは、その画像が交換されたか、または画像がインポートされたことを示す。エクスチェンジ/インポートフラグは、exchangeOrImportFlagであるプロパティとされ、論理データの型で表現される。
Trueであるメタイネーブルフラグは、サーバ13によりその画像のメタデータが生成されたことを示す。メタイネーブルフラグは、metaEnableFlagであるプロパティとされ、論理データの型で表現される。
Trueであるバックアップフラグは、サーバ13によりその画像がバックアップされたことを示す。バックアップフラグは、backUpFlagであるプロパティとされ、論理データの型で表現される。
図17は、コンテンツデータベース111に格納されているメタデータ(の部分)および類似特徴データベース112に格納されているメタデータ(の部分)の構造を示す図である。
コンテンツデータベース111には、画像毎のコンテンツアイテムが格納される。コンテンツアイテムは、メタデータ261の一部分のデータからなる。
例えば、コンテンツアイテム281−1は、格納されているコンテンツIDで特定される1つの画像に対応し、コンテンツID、本画像201のパス名およびファイル名(図17中のPath)、縮小画像202のパス名およびファイル名、グループID、ローカルタイムで表される撮影時刻、および顔画像情報などからなり、コンテンツアイテム281−2は、他の画像に対応し、コンテンツID、本画像201のパス名およびファイル名(図17中のPath)、縮小画像202のパス名およびファイル名、グループID、ローカルタイムで表される撮影時刻、および顔画像情報などからなる。
以下、コンテンツアイテム281−1およびコンテンツアイテム281−2を個々に区別する必要がないとき、単に、コンテンツアイテム281と称する。
類似特徴データベース112には、画像毎の類似特徴アイテムが格納される。類似特徴アイテムは、メタデータ261を構成するデータのうち、コンテンツアイテム281を構成する部分以外の部分のデータからなる。ただし、類似特徴アイテムは、コンテンツIDを含む。
例えば、類似特徴アイテム282−1は、格納されているコンテンツIDで特定されるコンテンツアイテム281−1に対応し、すなわち、格納されているコンテンツIDで特定される1つの画像に対応し、コンテンツID、色ヒストグラム、および周波数成分のヒストグラムなどからなる。
色ヒストグラムは、画像の32の色毎の頻度を示し、histogramであるプロパティとされる。周波数成分のヒストグラムは、垂直成分ヒストグラムと水平成分ヒストグラムとからなり、画像の縦方向および横方向のそれぞれについての、8つの周波数に対する周波数成分の最大値の頻度を示し、textureであるプロパティとされる。
同様に、例えば、類似特徴アイテム282−2は、格納されているコンテンツIDで特定されるコンテンツアイテム281−2に対応し、すなわち、格納されているコンテンツIDで特定される1つの画像に対応し、コンテンツID、色ヒストグラム、および周波数成分のヒストグラムなどからなる。
以下、類似特徴アイテム282−1および類似特徴アイテム282−2を個々に区別する必要がないとき、単に、類似特徴アイテム282と称する。
このように、類似特徴データベース112には、コンテンツデータベース111に格納されているコンテンツアイテム281に対応した類似特徴アイテム282が格納される。
図18は、類似特徴アイテム282の構造を示す図である。類似特徴アイテム282は、アイテム291、アイテム292−1乃至アイテム292−32、およびアイテム293から構成されている。アイテム291は、コンテンツID、アイテム292−1乃至アイテム292−32を示すポインタ、およびアイテム293を示すポインタから構成される。アイテム292−1乃至アイテム292−32を示すポインタは、色ヒストグラムに対応している。アイテム293を示すポインタは、周波数成分のヒストグラムに対応している。
アイテム292−1乃至アイテム292−32は、それぞれ、色ヒストグラムの頻度、すなわち、L*a*b*で表される色のそれぞれと、それぞれの色が画像内で占有している割合(例えば、32色の色毎の画素の数)を示す。アイテム292−1は、L*a*b*で表される色であって、32色のうちの第1の色と、第1の色が画像内で占有している割合 を示す。アイテム292−2は、L*a*b*で表される色であって、32色のうちの第2の色と、第2の色が画像内で占有している割合を示す。
アイテム292−3乃至アイテム292−32は、それぞれ、L*a*b*で表される色であって、32色のうちの第3の色乃至第32の色のそれぞれと、第3の色乃至第32の色のそれぞれが画像内で占有している割合を示す。
すなわち、アイテム292−1乃至アイテム292−32は、全体として、1つの画像の色ヒストグラムを示す。色ヒストグラムは、色特徴ベクトルCvとして表すこともできる。色特徴ベクトルCvは、Cv={(c1,r1),・・・,(c32,r32)}とも表現される。ここで、(c1,r1)乃至(c32,r32)のそれぞれは、c1乃至c32のいずれかで表される32色のうちのいずれかの、画像内で占有している割合を示す。
アイテム293は、垂直成分ヒストグラムおよび水平成分ヒストグラムを示す。垂直成分ヒストグラムおよび水平成分ヒストグラムは、それぞれ、8つの頻度を示す。
垂直成分ヒストグラムおよび水平成分ヒストグラムを合わせてなる周波数成分のヒストグラムは、周波数成分ベクトルTvとしても表すこともできる。周波数成分ベクトルTvは、Tv={(t1,1),・・・,(t8,1),(t9,1),・・・,(t16,1)}とも表現される。ここで、(t1,1)乃至(t16,1)のそれぞれは、t1乃至t16のいずれかで表される周波数成分の最大となる数(頻度)を示す。
次に、図19のフローチャートを参照して、Webサーバ15−1若しくはWebサーバ15−2またはその他の機器から画像を取得する、サーバ13の画像の取得の処理を説明する。以下、Webサーバ15−1から画像を取得する場合を例に説明する。
ステップS61において、サーバ13の送信制御部138−2および受信制御部138−2は、ネットワーク14を介して、通信部80に、Webサーバ15−1から本画像201を取得させる。
例えば、ステップS61において、送信制御部138−2および受信制御部138−2は、通信部80に、ネットワーク14を介してWebサーバ15−1と接続させる。そして、送信制御部138−2は、通信部80に、ネットワーク14を介して、Webサーバ15−1宛てに本画像201の送信要求を送信させる。Webサーバ15−1が要求された本画像201をネットワーク14を介して送信してくるので、受信制御部138−2は、通信部80に、Webサーバ15−1から送信されてきた本画像201を受信させる。受信制御部138−2は、受信することによって取得した本画像201を画像保持部140に供給する。
ステップS62において、縮小画像生成部132は、受信した本画像201から縮小画像202を生成する。例えば、縮小画像生成部132は、本画像201から画素を間引きすることにより縮小画像202を生成する。または、縮小画像生成部132は、本画像201の互いに隣接する複数の画素の画素値の平均値を、その複数の画素に対応する1つの画素の画素値とすることにより、縮小画像202を生成する。
縮小画像生成部132は、生成した縮小画像202を画像保持部140に供給する。
ステップS63において、画像保持部140は、受信した本画像201および縮小画像生成部132において生成された縮小画像202を記録する。
なお、縮小画像生成部132は、画像保持部140から本画像201を読み出して、読み出した本画像201から縮小画像202を生成するようにしてもよい。
ステップS64において、画像解析部131は、画像保持部140に記録された画像を解析する。ステップS64の画像の解析の処理は、図10のフローチャートを参照して説明した処理と同様なので、その説明は省略する。
ステップS65において、メタデータ生成部133は、ステップS64において抽出された画像の特徴を含む画像のメタデータを生成する。ステップS66において、エントリ生成部134は、本画像201および縮小画像202のエントリを生成する。エントリ生成部134は、生成したエントリを、ステップS65において生成されたメタデータに関係付けて、コンテンツデータベース141(および類似特徴データベース142)に追加(格納)する。
ステップS67において、送信制御部138−1および受信制御部138−1は、通信部79に、デジタルスチルカメラ11と接続させる。
ステップS68において、検索部137は、デジタルスチルカメラ11から送信されてくるデータを基に、画像保持部140に記録されている縮小画像202のうち、デジタルスチルカメラ11に持ち出す縮小画像202を選択する。検索部137は、画像保持部140から選択した縮小画像202を読み出して、読み出した縮小画像202を送信制御部138−1に供給する。
ステップS69において、送信制御部138−1は、通信部79に、デジタルスチルカメラ11宛てに選択された縮小画像202を送信させる。
ステップS70において、送信制御部138−1は、ステップS37と同様の処理で、通信部79に、デジタルスチルカメラ11のコンテンツデータベース111および類似特徴データベース112に、送信された縮小画像202のメタデータであって、抽出された画像の特徴を含むメタデータを記入させる。
ステップS72において、サーバ13の送信制御部138−1および受信制御部138−1は、通信部79に、デジタルスチルカメラ11との接続を切断させ、処理は終了する。
図20で示されるように、サーバ13−1またはサーバ13−2が、ネットワーク14を介して、Webサーバ15−1若しくはWebサーバ15−2またはその他の機器から本画像201を取得し、取得した本画像201を記録すると、サーバ13−1またはサーバ13−2は、本画像201から縮小画像202を生成し、本画像201を解析して、本画像201の特徴を抽出する。そして、サーバ13−1またはサーバ13−2は、抽出した本画像201の特徴を記述したメタデータ261と共に縮小画像202をデジタルスチルカメラ11または携帯電話機12に書き込む。
次に、図21のフローチャートを参照して、デジタルスチルカメラ11における検索の処理を説明する。ステップS81において、検索部107は、コンテンツデータベース111または類似特徴データベース112に記録されているメタデータのうち、検索に用いるメタデータを選択する。例えば、検索部107は、検索に用いるメタデータとして、使用者の操作に応じた入力部49からの信号を基に、撮影時刻若しくは撮影条件、顔の画像に関する情報、所定の色名によって想起される度合いを示す関連度、または色若しくは画像の周波数成分などの類似の度合いを計算するための特徴のうちのいずれかを選択する。
また、ステップS81において、検索部107は、使用者の操作に応じた入力部49からの信号を基に、画像保持部110に記録されている本画像201または縮小画像202の検索する範囲を選択する。
ステップS82において、検索部107は、使用者の操作に応じた入力部49から供給される信号としての、検索開始の指示を取得する。
ステップS83において、検索部107は、コンテンツデータベース111または類似特徴データベース112から、検索する範囲の本画像201または縮小画像202のメタデータ261を順に読み込む。
ステップS84において、検索部107は、メタデータ261が存在するか否か、すなわち、メタデータ261がヌル(null)であるか否かを判定し、メタデータ261が存在すると判定された場合、ステップS85に進み、検索部107は、メタデータ261から、検索結果表示制御データを生成する。
例えば、ステップS85において、検索部107の距離計算部121は、色または画像の周波数成分などの類似の度合いを計算するための特徴を示すベクトルであるメタデータを基に、選択された画像(基準となる画像)についてのベクトルであるメタデータと、検索する範囲の画像についてのベクトルであるメタデータとから、ベクトルの距離を計算し、ベクトルの距離である検索結果表示制御データを生成する。
このベクトルの距離は、短いほど画像同士が似ていることを示すので、ベクトルの距離である検索結果表示制御データを用いることで、より類似している画像を読み出して、画像を類似している順に表示することができる。
例えば、ステップS85において、検索部107は、所定の色名によって想起される度合いを示す関連度であるメタデータを基に、入力された閾値と関連度とを比較し、入力された閾値以上の関連度であることを示す検索結果表示制御データを生成する。
入力された閾値以上の関連度であることを示す検索結果表示制御データを用いることで、その色名によって想起される度合いの大きい画像、すなわち、その色名の色を多く含む画像だけを読み出して、その色名の色を多く含む画像だけを表示することができる。
または、例えば、検索部107は、所定の色名によって想起される度合いを示す関連度であるメタデータを基に、入力された閾値と関連度との距離を計算することで、距離である検索結果表示制御データを生成する。
入力された閾値と関連度との距離である検索結果表示制御データを用いることで、所望の色名の色を所望の量だけ含む画像を読み出して、所望の色名の色を所望の量だけ含む画像を表示することができる。
なお、検索結果表示制御データには、コンテンツIDが含まれ、これにより、検索結果表示制御データに対応する本画像201または縮小画像202が特定される。
ステップS86において、検索部107は、生成した検索結果表示制御データを検索結果保持部115に格納する。
ステップS87において、検索部107は、検索する範囲の全ての本画像201または 縮小画像202の処理を終了したか否かを判定し、検索する範囲の全ての本画像201または縮小画像202の処理を終了していないと判定された場合、ステップS83に戻り、検索部107は、コンテンツデータベース111または類似特徴データベース112から、検索する範囲の次の本画像201または縮小画像202のメタデータ261を読み込み、上述した処理を繰り返す。
ステップS84において、メタデータ261が存在しないと判定された場合、すなわち、メタデータ261がヌル(null)であると判定された場合、ステップS83に戻り、検索部107は、コンテンツデータベース111または類似特徴データベース112から、検索する範囲の次の本画像201または縮小画像202のメタデータ261を読み込み、上述した処理を繰り返す。
ステップS87において、検索する範囲の全ての本画像201または縮小画像202の処理を終了したと判定された場合、ステップS88に進み、表示制御部106は、検索結果保持部115から、検索結果表示制御データを読み出す。ステップS89において、表示制御部106は、検索結果表示制御データを基に、画像保持部110から本画像201または縮小画像202を読み出して、本画像201または縮小画像202をモニタ40に表示させて、処理は終了する。
例えば、ステップS85において、色または画像の周波数成分などの類似の度合いを計算するための特徴を示すベクトルの距離である検索結果表示制御データが生成された場合、ステップS89において、表示制御部106は、本画像201または縮小画像202を、基準となる画像との類似の順にモニタ40に表示させる。
また、例えば、ステップS85において、所定の色名によって想起される度合いを示す関連度が入力された閾値以上であることを示す検索結果表示制御データが生成された場合、ステップS89において、表示制御部106は、その色名の色を多く含む本画像201または縮小画像202をモニタ40に表示させる。
さらに、例えば、ステップS85において、所定の色名によって想起される度合いを示す関連度と入力された閾値との距離である検索結果表示制御データが生成された場合、ステップS89において、表示制御部106は、所望の色名の色を所望の量だけ含む本画像201または縮小画像202をモニタ40に表示させる。
携帯電話機12は、図21のフローチャートを参照して説明した検索の処理と同様の処理を実行する。サーバ13は、図21のフローチャートを参照して説明した検索の処理と同様の処理を実行する。
その結果、図22で示されるように、サーバ13−1またはサーバ13−2における、例えば、コンテンツデータベース141および類似特徴データベース142に格納されているメタデータ261を基にした本画像201の検索と同様に、デジタルスチルカメラ11または携帯電話機12において、縮小画像202を、コンテンツデータベース111および類似特徴データベース112に格納されているメタデータ261を基にして検索することができる。
次に、デジタルスチルカメラ11による、より具体的な検索の処理について説明する。
図23は、デジタルスチルカメラ11による検索の処理の他の例を示すフローチャートである。ステップS101において、表示制御部106は、モニタ40に、時系列に縮小画像202を表示させる。すなわち、ステップS101において、画像保持部110は、 記録している縮小画像202のうち、使用者の操作に応じた入力部49からの信号に応じた所定の範囲の縮小画像202を表示制御部106に供給する。また、コンテンツデータベース111は、表示制御部106に供給された所定の範囲の縮小画像202のメタデータ261のうち、撮影時刻のメタデータを表示制御部106に供給する。そして、表示制御部106は、モニタ40に、撮影時刻を基に、撮影された順の時系列に縮小画像202を表示させる。
例えば、図24で示されるように、表示制御部106は、モニタ40に、グループIDで特定されるグループ毎に、撮影された順の時系列に縮小画像202を表示させる。図24の右側における四角は、1つの縮小画像202を示し、四角の中の数字は、撮影された順序を示す。すなわち、例えば、表示制御部106は、グループ毎に、撮影された順にラスタスキャン順に縮小画像202をモニタ40に表示させる。
なお、ステップS101において、画像保持部110は、モニタ40に、クラスタリングした画像を表示させるようにしてもよい。
ここで、時刻t1乃至t12のそれぞれのタイミングにおいて撮影された画像p1乃至p12がクラスタリングの対象とされている場合を例に説明する。例えば、クラスタを規定する条件として条件Aと条件Bが設定され、そのうちの条件Aにより、画像p1乃至p12全体からなる1つのクラスタが規定される。ここで、条件Aは粒度の低い(粗い)クラスタを規定する条件であり、条件Bは条件Aより粒度の高い(細かい)クラスタを規定する条件である。例えば、条件Aにより規定されたクラスタにはイベント名「結婚式」が設定される。
「結婚式」のイベント名が設定されているクラスタは、例えば、画像p1乃至p12のそれぞれの画像の撮影時刻の時間間隔のばらつきの程度が、ある閾値より小さいことなどから規定されたものである。
また、条件Bにより、画像p1乃至p12のうちの画像p1乃至p3から1つのクラスタが規定され、画像p4乃至p7から1つのクラスタが規定される。また、画像p8乃至p12から1つのクラスタが規定される。
画像p1乃至p3からなるクラスタには「教会での挙式」、画像p4乃至p7からなるクラスタには「披露宴」、画像p8乃至p12からなるクラスタには「二次会」のイベント名がそれぞれ設定される。
「教会での挙式」のイベント名が設定されているクラスタは、それを構成する画像p1乃至p3のそれぞれの撮影時刻の時間間隔のばらつきの程度が近いものであるのに対し、画像p3と、次に(時間軸上で次に)撮影時刻の時間間隔のばらつきの程度が近い画像のまとまりである画像p4乃至p7のうちの最初の画像である画像p4との時間間隔が比較的大きく、その部分で、撮影の頻度に変化があったと判断されたことから規定される。
また、「披露宴」のイベント名が設定されているクラスタは、それを構成する画像p4乃至p7のそれぞれの撮影時刻の時間間隔のばらつきの程度が近いものであるのに対し、画像p7と、次に撮影時刻の時間間隔のばらつきの程度が近い画像のまとまりである画像p8乃至p12のうちの最初の画像である画像p8との時間間隔が比較的大きく、その部分で、撮影の頻度に変化があったと判断されたことから規定される。
「二次会」のイベント名が設定されているクラスタは、それを構成する画像p8乃至p12のそれぞれの撮影時刻の時間間隔のばらつきの程度が近いものであるのに対し、画像p1 2と、次に撮影時刻の時間間隔のばらつきの程度が近い画像のまとまりのうちの最初の画像との時間間隔が比較的大きく、その部分で、撮影の頻度に変化があったと判断されたことから規定される。
なお、「結婚式」、「教会での挙式」、「披露宴」、「二次会」のそれぞれのイベント名は、例えば、ユーザにより手動で設定される。
このように、同じ対象の画像をクラスタリングする条件として複数の条件が設定され、それぞれの条件に基づいて、異なる粒度のクラスタが規定される。
以上のようにして規定されたそれぞれのクラスタに含まれる画像は、階層構造を有する形でユーザに提示される。
また、ステップS101において、画像保持部110は、モニタ40に、日付毎に表示領域を区分して、区分された領域の日付と画像の撮影された日付とが一致するように、所定の領域に縮小画像202を表示させるようにしてもよい。すなわち、ステップS101において、画像保持部110は、カレンダ表示によって、縮小画像202を表示させるようにしてもよい。
ステップS102において、検索部107は、使用者の操作に応じた入力部49からの信号を基に、モニタ40に表示されている縮小画像202の中から、1つの縮小画像202を選択する。
この場合、図24で示されるように、時系列に表示された縮小画像202のいずれかが選択された場合、表示制御部106は、選択された縮小画像202をハイライト表示するか、選択された縮小画像202の縁を強調表示する。
また、この場合、図25で示されるように、時系列に表示された縮小画像202のいずれかが選択された場合、表示制御部106は、選択された縮小画像202を拡大してモニタ40に表示するようにしてもよい。
ステップS103において、検索部107は、類似する画像の検索の処理を実行する。
図26は、ステップS103に対応する、類似する画像の検索の処理の詳細を説明するフローチャートである。ステップS131において、検索部107は、使用者の操作に応じた入力部49からの信号を取得することにより、モニタ40に表示されたメニューの中の「類似検索」の項目の選択による類似検索の指示を取得する。
ステップS132において、検索部107は、使用者の操作に応じた入力部49からの信号を取得することにより、検索開始の指示を取得する。
ステップS133において、検索部107は、類似特徴データベース112から、ステップS102において選択された縮小画像202のコンテンツIDに対応する類似特徴ベクトルを読み込む。ここで、類似特徴ベクトルは、色特徴ベクトルCvであるか、または周波数成分ベクトルTvである。
ステップS134において、検索部107は、類似特徴データベース112から、検索する範囲の1つの縮小画像202のコンテンツIDに対応する類似特徴ベクトルを読み込む。
この場合、ステップS133において色特徴ベクトルCvである類似特徴ベクトルが読み出された場合、ステップS134において、色特徴ベクトルCvである類似特徴ベクトルが読み出される。また、ステップS133において周波数成分ベクトルTvである類似特徴ベクトルが読み出された場合、ステップS134において、周波数成分ベクトルTvである類似特徴ベクトルが読み出される。
ステップS135において、検索部107は、検索する範囲の縮小画像202の類似特徴ベクトルと選択された縮小画像202の類似特徴ベクトルとの距離を算出する。
ここで、それぞれ、32の要素を持つ色特徴ベクトルCv1={(c1_1,r1_1),・・・,(c32_1,r32_1)}と色特徴ベクトルCv2={(c1_2,r1_2),・・・,(c32_2,r32_2)}と距離を例に、距離の算出について説明する。
まず、ground distance dij=d(c1i,c2j)という概念を導入する。ground distance dijは、色特徴ベクトルの要素の間の距離を表し、この例の場合、2つの色のユークリッド距離(L*a*b*の3軸空間における距離)なので、dij=‖c1i−c2j‖と表される。
すると、色特徴ベクトルCv1と色特徴ベクトルCv2との間のEMD(Earth Movers Distance)は、それぞれ、色特徴ベクトルCv1を供給地、色特徴ベクトルCv2を需要地、dijを単位輸送コストに対応付けて、色特徴ベクトルCv1から色特徴ベクトルCv2へのフローF={Fji}を決定する輸送問題の解を用いて計算される。
すなわち、EMDは、輸送問題の最適値(輸送コストの総計の最小値)をフローの数で割り算して正規化することにより、式(1)により求められる。
・・・(1)
このとき、
とされる。
式(1)により求められるEMDが、色特徴ベクトルCv1と色特徴ベクトルCv2との距離とされる。
周波数成分ベクトルTvの距離は、色特徴ベクトルCvの距離と同様に求められる。
なお、重みWcを色特徴ベクトルCvの距離に対して決めると共に、重みWtを周波数成分ベクトルTvの距離に対して決めて、式(2)から最終的な距離(distance)を求めるようにしてもよい。
・・・(2)
使用者が重みWcおよび重みWtを決めるようにしても、重みWcおよび重みWtを固定としてもよい。例えば、より具体的には、重みWcおよび重みWtをそれぞれ0.5として、最終的な距離を、色特徴ベクトルCvの距離と周波数成分ベクトルTvの距離の平均とするようにしてもよい。
なお、ベクトルの距離計算に、Y. Rubner, C. Tomasi, and L. J. Guibas. A Metric for Distributions with Applications to Image Databases. Proceedings of the 1998 IEEE International Conference on Computer Vision, Bombay, India, January 1998, pp. 59-66に記載されているEMD(Earth Movers Distance)を用いた例を説明したが、これに限らず、例えば、Euclidean distanceやHausdorff distanceのほか、小早川倫広、星守著、「ウェーブレット変換を用いた対話的類似画像検索システム」、「コンピュータサイエンス誌bit 12月号」、(1999年12月1日)、共立出版(株)発行、30頁乃至41頁や、呉君錫、金子邦彦、牧之内顕文、上野敦子著、「自己組織化特徴マップに基づいた類似画像検索システムの設計・実装と性能評価」、「電子情報通信学会技術研究報告 Vol.100 No.31」、(2000年5月2日)、(社)電子情報通信学会発行、9頁乃至16頁等の文献等に記載されているような手法を用いてもよい。
ステップS136において、検索部107は、検索する範囲の画像に関係付けて、距離を類似結果データベース113に格納する。例えば、ステップS136において、検索部107は、検索する範囲の画像のコンテンツIDと共に距離を類似結果データベース113に格納する。
図27は、コンテンツデータベース111および類似特徴データベース112に格納されているメタデータ並びに類似結果データベース113に格納されている距離の構造を示す図である。
図27において、データベースレコード301−1は、コンテンツアイテム281−1およびコンテンツアイテム281−1に対応し、データベースレコード301−2は、コンテンツアイテム281−2およびコンテンツアイテム281−2に対応する。
すなわち、データベースレコード301−1およびータベースレコード301−2は、それぞれ、コンテンツID、類似特徴ベクトル、本画像201のパス名およびファイル名、グループID、撮影時刻、およびその他のプロパティからなる。
距離レコード302は、類似結果データベース113に格納され、コンテンツIDと選択された画像からの距離とからなる。距離レコード302は、コンテンツIDによって、データベースレコード301−1およびータベースレコード301−2に関係付けられる。
以下、データベースレコード301−1およびータベースレコード301−2を個々に区別する必要がない場合、単に、データベースレコード301と称する。
距離レコード302における距離は、distanceであるプロパティとされる。
また、時間グループレコード303は、時間グループデータベース114に格納され、グループに固有の(グループを特定するための)グループIDと、グループIDで特定されるグループに属する画像を特定するコンテンツIDの配列とからなる。時間グループレコード303におけるコンテンツIDの配列は、PhotoIdArrayであるプロパティとされる。
図28で示されるように、コンテンツデータベース111、類似結果データベース113、および時間グループデータベース114のそれぞれのレコードが関係付けられる。コンテンツデータベース111および類似特徴データベース112(図示せず)には、1または複数のデータベースレコード301が格納され、類似結果データベース113には、1または複数の距離レコード302が格納され、時間グループデータベース114には、1または複数の時間グループレコード303が格納される。
図26に戻り、ステップS137において、検索部107は、検索する範囲の全ての画像について処理を終了したか否かを判定し、処理を終了していないと判定された場合、ステップS134に戻り、類似特徴データベース112から、検索する範囲の次の縮小画像202のコンテンツIDに対応する類似特徴ベクトルを読み込んで、上述した処理を繰り返す。
ステップS137において、処理を終了したと判定された場合、ステップS138に進み、検索部107は、類似特徴データベース112から、検索する範囲の画像に関係付けられた距離を読み出す。例えば、ステップS138において、検索部107は、類似特徴データベース112から、検索する範囲の画像を特定するコンテンツIDと共に、距離を読み出す。
ステップS139において、検索部107は、ステップS138で読み出した距離で、検索する範囲の画像を類似順にソートし、処理は終了する。例えば、ステップS139において、検索部107は、距離の順に、検索する範囲の画像を特定するコンテンツIDをソートすることで、検索する範囲の画像を類似順にソートする。
図23に戻り、ステップS104において、表示制御部106は、モニタ40に、類似の順に縮小画像202を表示させる。すなわち、ステップS104において、表示制御部106は、画像保持部110から縮小画像202を読み出して、ステップS139においてソートされた類似の順に縮小画像202をモニタ40に表示させる。
例えば、図29で示されるように、表示制御部106は、モニタ40に、ステップS102で選択された縮小画像202に類似する縮小画像202を、類似の順に表示させる。例えば、表示制御部106は、モニタ40の表示領域の左上にステップS102で選択された縮小画像202(図29中のキー画像)を表示させ、その右側の領域に、キー画像に類似する縮小画像202を類似する順でラスタスキャン順に表示させる。図29の右側における四角は、1つの縮小画像202を示し、四角の中のアルファベットは、類似する順を示す。
ステップS105において、検索部107は、使用者の操作に応じた入力部49からの信号を基に、モニタ40に表示されている縮小画像202の中から、1つの縮小画像202を選択する。
例えば、図29で示されるように、モニタ40に、類似する順でラスタスキャン順に表示されている縮小画像202のうち、Bのアルファベットが付された縮小画像202が選択された場合、選択された縮小画像202をハイライト表示するか、または縁を強調表示すると共に、表示制御部106は、モニタ40の表示領域のキー画像の下に、選択された縮小画像202を拡大して表示する。
ステップS106において、検索部107は、使用者の操作に応じた入力部49からの信号を基に、キャンセルするか否かを判定し、キャンセルしないと判定された場合、ステップS107に進み、さらに、決定するか否かを判定する。
ステップS107において、決定すると判定された場合、ステップS108に進み、検索部107は、コンテンツデータベース111から、ステップS105の処理で、選択されている縮小画像202のグループIDを取得する。すなわち、検索部107は、コンテンツデータベース111から、ステップS105の処理で、選択されている縮小画像202のコンテンツIDで特定されるメタデータ261を読み出して、読み出したメタデータ261から、選択されている縮小画像202が属するグループを特定するグループIDを抽出することで、選択されている縮小画像202のグループIDを取得する。
ステップS109において、検索部107は、取得したグループIDで特定されるグループに属する縮小画像202を画像保持部110から読み出す。より具体的には、検索部107は、取得したグループIDで、時間グループデータベース114の時間グループレコード303を検索する。検索部107は、取得したグループIDと同じグループIDを含む時間グループレコード303から、グループIDで特定されるグループに属する画像を特定するコンテンツIDの配列を時間グループデータベース114から読み出す。そして、検索部107は、読み出したコンテンツIDの配列の要素であるコンテンツIDで特定される縮小画像202を画像保持部110から読み出す。検索部107は、読み出した縮小画像202を表示制御部106に供給する。
ステップS110において、表示制御部106は、モニタ40に、読み出した縮小画像202を、時系列に表示させ、処理は終了する。
なお、ステップS110において、表示制御部106は、モニタ40に、クラスタリングした画像を表示させるようにしてもよく、また、カレンダ表示によって、縮小画像202を表示させるようにしてもよい。
ステップS107において、決定すると判定された場合、ステップS104に戻り、上述した処理を繰り返す。
ステップS106において、キャンセルすると判定された場合、ステップS101に戻り、上述した処理を繰り返す。
なお、ステップS101乃至ステップS110の処理において、ステップS102またはステップS105において、次の画像が選択されるまで、画像の選択の状態は維持される。ステップS101、ステップS104、またはステップS110において、画像が表示されると共に、選択されている画像の縁が強調して表示されるなど、使用者が選択されている画像を識別できるように、画像の選択が示される。
すなわち、画像の選択の状態を維持したまま、時系列の表示の状態と類似順の表示の状態との間で状態が遷移される。
このようにすることで、所定の画像に類似する画像が撮影された時刻に近い時刻に撮影された画像を即座に表示したり、所定の画像が撮影された時刻に近い時刻に撮影された画像に類似する画像を即座に表示したりすることができる。また、画像を、類似しているか、近い時刻に撮影されたかによって、順に画像を辿るように画像を検索することができる。
表示画面の小さなデジタルスチルカメラ11であっても、時間軸の検索と類似検索とを効果的に組み合わせることにより、人の記憶の支配的な要素である、画像の類似の概念と時間の概念とに応じた画像の検索と閲覧とが可能になる。
また、類似を示す距離は、あくまでも統計的手法に基づく類似性を示すものであり、検索漏れが生じ、人の感覚からすれば似ていると捉えられる画像が検索されないこともあるが、このような検索漏れが生じたとしても、近接するイベントでの画像が一覧表示されるので、人の感覚からすれば似ていると捉えられる画像に到達することができるようになる。
また、花見の画像、花火の画像、バーベキューの画像など、毎年繰り返される行事や催し(イベント)の画像を、毎年、撮影している場合には、類似検索してから、時系列に瞬時に並び替えることができるので、年代順に同じような行事(イベント)の画像を表示することができ、記憶を思い起こすためのアルバムとして活用することができるようになる。
なお、デジタルスチルカメラ11は、図23のフローチャートで示される処理で、本画像201を検索するようにしてもよい。
図23のフローチャートの検索の処理によれば、例えば、図30の上側に示されるように、まず、縮小画像202が、モニタ40に、グループ毎に、時系列に表示される。例えば、時系列に表示されている縮小画像202のうち、Aのアルファベットが付加された縮小画像202(キー画像)が選択されると、Aのアルファベットが付加された縮小画像202の縁が強調して表示される。
Aのアルファベットが付加された縮小画像202(キー画像)が選択されて、類似する画像の検索の処理が実行されると、Aのアルファベットが付加された縮小画像202に類似する縮小画像202が検索されて、類似する順にモニタ40に表示させられる。
この場合、モニタ40には、Aのアルファベットが付加された縮小画像202であるキー画像が拡大されて表示される。
類似する順に表示されている縮小画像202のうち、Bのアルファベットが付加された縮小画像202が選択されると、モニタ40には、Bのアルファベットが付加された縮小画像202であるキー画像が拡大されて表示される。
Aのアルファベットが付加された縮小画像202に類似する縮小画像202が、類似する順にモニタ40に表示させられている場合、キャンセルされると、時系列に縮小画像202を表示する状態に戻る。
類似する順に表示されている縮小画像202のうち、Bのアルファベットが付加された縮小画像202が選択されて、決定キーが押下されると、Bのアルファベットが付加された縮小画像202が属するグループに属する縮小画像202が、モニタ40に、時系列に表示される。この場合、Bのアルファベットが付加された縮小画像202の縁が強調して表示される。
撮影された日付によって縮小画像202がグループ分けされている場合、モニタ40には、Bのアルファベットが付加された縮小画像202が撮影された日付に近い日付の縮小画像202が、グループ毎に時系列で表示される。
次に、サーバ13における検索の処理について説明する。図31は、サーバ13による検索の処理を説明するフローチャートである。ステップS161において、サーバ13の表示制御部136は、ディスプレイである出力部77に、時系列に本画像201を表示させる。すなわち、ステップS161において、画像保持部140は、記録している本画像201のうち、使用者の操作に応じた入力部76からの信号に応じた所定の範囲の本画像201を表示制御部136に供給する。また、コンテンツデータベース141は、表示制御部136に供給された所定の範囲の本画像201のメタデータ261のうち、撮影時刻のメタデータを表示制御部136に供給する。そして、表示制御部136は、ディスプレイである出力部77に、撮影時刻を基に、撮影された順の時系列に本画像201を表示させる。
例えば、図32の右側に示されるように、表示制御部136は、ディスプレイである出力部77に、撮影された順の時系列に本画像201を表示させる(時間軸表示される)。例えば、表示制御部136は、グループ毎に、撮影された順に本画像201をディスプレイである出力部77に表示させる。
ステップS162において、検索部137は、使用者の操作に応じた入力部76からの信号を基に、ディスプレイである出力部77に表示されている本画像201の中から、1つの本画像201を選択する。
ステップS163において、検索部137は、類似する画像の検索の処理を実行する。ステップS163の類似する画像の検索の処理は、検索部107に代わり検索部137によって実行される点が異なるが、他の点は、図26のフローチャートを参照して説明した処理と同様なのでその詳細な説明は省略する。
ステップS164において、表示制御部136は、ディスプレイである出力部77に、類似の順に本画像201を表示させる。すなわち、ステップS164において、表示制御部136は、ソートされた類似の順に本画像201をディスプレイである出力部77に表示させる。
例えば、図32の左側に示されるように、表示制御部136は、ディスプレイである出力部77に、ステップS162で選択された本画像201に類似する本画像201を、類似の順に表示させる。
ステップS165において、検索部137は、使用者の操作に応じた入力部49からの信号を基に、ディスプレイである出力部77に表示されている本画像201の中から、1つの本画像201を選択する。
ステップS166において、検索部137は、使用者の操作に応じた入力部49からの信号を基に、時系列に表示するか否かを判定する。例えば、検索部137は、ディスプレイである出力部77に表示されている切換ボタン351または切換ボタン352のクリックに応じた、入力部76からの信号を基に、時系列に表示するか否かを判定する。
例えば、ディスプレイである出力部77に表示されている、時系列順の表示を指示する切換ボタン351がクリックされた場合、ステップS166において、時系列に表示すると判定されるので、時系列に表示すると判定されたとき、手続きは、ステップS167に進む。
ステップS167において、検索部137は、コンテンツデータベース141から、選択されている本画像201のグループIDを取得する。すなわち、検索部137は、コンテンツデータベース141から、選択されている本画像201のコンテンツIDで特定されるメタデータ261を読み出して、読み出したメタデータ261から、選択されている本画像201が属するグループを特定するグループIDを抽出することで、選択されている本画像201のグループIDを取得する。
ステップS168において、検索部137は、取得したグループIDで特定されるグループに属する本画像201を画像保持部140から読み出す。より具体的には、検索部137は、取得したグループIDで、時間グループデータベース144の時間グループレコード303を検索する。検索部137は、取得したグループIDと同じグループIDを含む時間グループレコード303から、グループIDで特定されるグループに属する画像を特定するコンテンツIDの配列を時間グループデータベース144から読み出す。そして、検索部137は、読み出したコンテンツIDの配列の要素であるコンテンツIDで特定される本画像201を画像保持部140から読み出す。検索部137は、読み出した本画像201を表示制御部136に供給する。
ステップS169において、表示制御部136は、ディスプレイである出力部77に、読み出した本画像201を、時系列に表示させる。例えば、ステップS169において、表示制御部136は、ディスプレイである出力部77に、読み出した本画像201を、グループ毎に、時系列に表示させる。
ステップS170において、検索部137は、使用者の操作に応じた入力部76からの信号を基に、ディスプレイである出力部77に表示されている本画像201の中から、1つの本画像201を選択する。
ステップS171において、検索部137は、使用者の操作に応じた入力部49からの信号を基に、時系列に表示するか否かを判定する。例えば、検索部137は、ディスプレイである出力部77に表示されている切換ボタン351または切換ボタン352のクリックに応じた、入力部76からの信号を基に、時系列に表示するか否かを判定する。
例えば、ディスプレイである出力部77に表示されている、類似順の表示を指示する切換ボタン352がクリックされた場合、ステップS171において、類似順に表示すると判定されるので、時系列に表示すると判定されたとき、手続きは、ステップS163に戻り、上述した処理を繰り返す。
また、例えば、ディスプレイである出力部77に表示されている、時系列の表示を指示する切換ボタン351がクリックされた場合、ステップS171において、類似順に表示しないと判定されるので、時系列に表示しないと判定されたとき、手続きは、ステップS167に戻り、上述した処理を繰り返す。
ステップS166において、例えば、ディスプレイである出力部77に表示されている、類似順の表示を指示する切換ボタン352がクリックされた場合、時系列に表示しないと判定されるので、手続きは、ステップS163に戻り、上述した処理を繰り返す。
このように、例えば、ディスプレイである出力部77に表示されている切換ボタン351または切換ボタン352のクリックに応じて、類似順の表示と時系列の表示とを任意に切り換えることができる。
次に、サーバ13における関連度の抽出について説明する。
デジタルスチルカメラ11、携帯電話機12、およびサーバ13は、画像の特徴として、色名とその色名に対する関連度を用いて、画像を検索する。サーバ13は、画像の特徴の1つとして、画像から所定の色名に対する関連度を抽出する。
ここで、色名に対する関連度とは、ある画像が、特定の色名によって想起される度合いを意味する。換言すれば、関連度は、ある画像において、特定の色名であると想定できる色が含まれる割合を言う。
ここで、色名は、例えば、赤、青、黄、白、黒、緑などである。
図33は、色名に対する関連度を抽出する色特徴抽出部172の構成の例を示すブロック図である。色特徴抽出部172は、画像入力部401、”赤”関連度抽出部402、”青”関連度抽出部403、”黄”関連度抽出部404、および抽出特徴記録部405から構成される。
なお、”赤”関連度抽出部402、”青”関連度抽出部403、および”黄”関連度抽出部404は、一例であり、任意の色についての関連度を抽出する任意の数の関連度抽出部が設けられる。すなわち、関連度抽出部は、色名毎に用意される。
以下、”赤”関連度抽出部402、”青”関連度抽出部403、および”黄”関連度抽出部404が設けられている場合を例に説明する。
画像入力部401は、画像保持部140から、関連度の抽出の対象となる本画像201を取得する。また、画像入力部401は、関連度抽出部対応保持部145から、色名と、”赤”関連度抽出部402、”青”関連度抽出部403、または”黄”関連度抽出部404との対応を示す対応情報を取得する。
図34の例で示されるように、関連度抽出部対応保持部145に記録されている対応情報には、色名とその色名に対する関連度を抽出する”赤”関連度抽出部402、”青”関連度抽出部403、または”黄”関連度抽出部404のいずれかを特定する情報が配置されている。例えば、図34に示される対応情報の例において、”赤”である色名と、”赤”関連度抽出部402との対応が示され、”青”である色名と、”青”関連度抽出部403との対応が示され、”黄”である色名と、”黄”関連度抽出部404との対応が示されている。
画像入力部401は、対応情報に基づいて、画像保持部140から取得した本画像201を、”赤”関連度抽出部402、”青”関連度抽出部403、および”黄”関連度抽出部404に供給する。
”赤”関連度抽出部402は、画像入力部401から供給された本画像201から、本画像201が赤である色名によって想起される度合いを示す関連度を抽出する。”赤”関連度抽出部402は、本画像201から抽出した、赤である色名によって想起される度合いを示す関連度を、抽出特徴記録部405に供給する。
”青”関連度抽出部403は、画像入力部401から供給された本画像201から、本画像201が青である色名によって想起される度合いを示す関連度を抽出する。”青”関連度抽出部403は、本画像201から抽出した、青である色名によって想起される度合いを示す関連度を、抽出特徴記録部405に供給する。
”黄”関連度抽出部404は、画像入力部401から供給された本画像201から、本画像201が黄である色名によって想起される度合いを示す関連度を抽出する。”黄”関連度抽出部404は、本画像201から抽出した、黄である色名によって想起される度合いを示す関連度を、抽出特徴記録部405に供給する。
抽出特徴記録部405は、”赤”関連度抽出部402、”青”関連度抽出部403、および”黄”関連度抽出部404のそれぞれから供給された、赤である色名によって想起される度合いを示す関連度、青である色名によって想起される度合いを示す関連度、および黄である色名によって想起される度合いを示す関連度を、本画像201に関係付けて、抽出特徴保持部146に記録させる。
例えば、この場合、図35に示されるように、抽出特徴保持部146は、本画像201を特定するコンテンツIDと共に、赤である色名によって想起される度合いを示す関連度、青である色名によって想起される度合いを示す関連度、および黄である色名によって想起される度合いを示す関連度を記録する。
なお、上述の例においては、画像保持部140に記録された本画像201が画像入力部401より入力される例を示したが、本画像201に限らず、縮小画像202または減色された画像221が入力される構成として、縮小画像202または減色された画像221を処理の対象とするようにしてもよい。また、画像の代わりに、上述した、各関連度を抽出しようとする画像に対応づけられた色ヒストグラムを画像入力部401から入力し、各関連度抽出部(例えば、”赤”関連度抽出部402、”青”関連度抽出部403、および”黄”関連度抽出部404)においては該色ヒストグラムから各関連度を抽出する構成としてもよい。
図35は、抽出特徴保持部146に記録される関連度の論理構造を示す図である。図35に示される例において、抽出特徴保持部146は、000であるコンテンツIDに対応させて、000であるコンテンツIDで特定される本画像201から抽出された、0.80である、赤である色名によって想起される度合いを示す関連度、0.00である、青である色名によって想起される度合いを示す関連度、および0.10である黄である色名によって想起される度合いを示す関連度を記録する。また、抽出特徴保持部146は、001であるコンテンツIDに対応させて、001であるコンテンツIDで特定される本画像201から抽出された、0.00である、赤である色名によって想起される度合いを示す関連度、0.25である、青である色名によって想起される度合いを示す関連度、および0.20である黄である色名によって想起される度合いを示す関連度を記録する。さらに、抽出特徴保持部146は、002であるコンテンツIDに対応させて、002であるコンテンツIDで特定される本画像201から抽出された、0.15である、赤である色名によって想起される度合いを示す関連度、0.05である、青である色名によって想起される度合いを示す関連度、および0.00である黄である色名によって想起される度合いを示す関連度を記録する。
また、抽出特徴記録部405は、”赤”関連度抽出部402、”青”関連度抽出部403、および”黄”関連度抽出部404のそれぞれから供給された、赤である色名によって想起される度合いを示す関連度、青である色名によって想起される度合いを示す関連度、および黄である色名によって想起される度合いを示す関連度を、メタデータ261として本画像201に関係付けて、類似特徴データベース142に記録させる。
なお、関連度は、EXIF方式のデータである本画像201の所定の領域に格納するようにしてもよい。
検索部137は、本画像201の特徴として、色名とその色名に対する関連度を用いて、本画像201を検索する。この場合、例えば、検索部137は、検索条件入力部421および条件照合部422から構成される。
検索条件入力部421は、使用者の操作に応じた入力部76からの信号を基に、関連度についての検索の条件を入力する。検索条件入力部421は、関連度についての検索の条件を条件照合部422に供給する。
条件照合部422は、検索条件入力部421から供給された検索の条件と、抽出特徴保持部146に記録されている関連度とを照合する。条件照合部422は、照合の結果、検索の条件を満たす関連度に対応するコンテンツIDを検索結果保持部147に格納する。
図36は、ステップS43に対応する、色特徴抽出の処理の詳細を説明するフローチャートである。ステップS201において、画像入力部401は、画像保持部140から、関連度の抽出の対象となる画像である本画像201を入力する。また、画像入力部401は、関連度抽出部対応保持部145から、対応情報を入力する。
ステップS202において、画像入力部401は、色名を入力する。ステップS203において、画像入力部401は、対応情報を基に、入力した色名に対応する、”赤”関連度抽出部402、”青”関連度抽出部403、または”黄”関連度抽出部404のいずれかを特定する。
例えば、ステップS203において、画像入力部401は、ステップS202において、”赤”である色名が入力された場合、対応情報を基に”赤”関連度抽出部402を特定する。
画像入力部401は、特定された”赤”関連度抽出部402、”青”関連度抽出部403、または”黄”関連度抽出部404のいずれかに、入力した本画像201を供給する。
ステップS204において、ステップS203で特定された、”赤”関連度抽出部402、”青”関連度抽出部403、または”黄”関連度抽出部404のいずれかは、関連度抽出処理を実行する。関連度抽出処理の詳細は後述する。
抽出された関連度は、抽出特徴記録部405に供給される。
ステップS205において、抽出特徴記録部405は、関連度の抽出の対象となった本画像201に対応させて、抽出した関連度を色特徴ベクトルとして抽出特徴保持部146に記録させる。
ステップS206において、画像入力部401は、色名が終わりであるか否か、すなわち、全ての色名について本画像201から関連度を抽出したか否かを判定し、色名が終わりでないと判定された場合、まだ抽出していない色名についての関連度があるので、ステップS202に戻り、次の色名を入力して、上述した処理を繰り返す。
ステップS206において、色名が終わりである、すなわち、全ての色名について本画像201から関連度を抽出したと判定された場合、処理は終了する。
図37は、図36のステップS204に対応する、ステップS203で”赤”関連度抽出部402が特定された場合の関連度抽出処理の詳細の例を説明するフローチャートである。
ステップS221において、”赤”関連度抽出部402は、内蔵しているカウンタをクリアする。最初に実行されるステップS222において、”赤”関連度抽出部402は、本画像201の画素のうち、最初の画素の色、すなわち、画素値を入力する。ステップS223において、”赤”関連度抽出部402は、画素の色に対応する、色空間上の位置を計算する。
ステップS224において、”赤”関連度抽出部402は、計算された色空間上の位置が、赤である色名に対応するサブ空間内であるか否かを判定する。
ここで、画素の色に対応して計算される、色空間上の位置について説明する。
例えば、本画像201のそれぞれの画素の画素値は、RGBで表現される。この場合、画素値は、Rの値、Gの値、およびBの値からなる。RGBの色空間は、図38で示されるように、R軸、G軸、およびB軸が相互に直交する空間である。1つの画素値によって、RGBの色空間上の1つの位置が決まる。
RGBの色空間において、人間が所定の色名の色であると認識する色の位置を1つの領域で表現することは困難である(表現しづらい)。
そこで、L*a*b*空間の位置で、画素の色を表すことを考える。L*a*b*空間は、図39で示されるように、相互に直交するL*軸、a*軸、およびb*軸で表現される。L*a*b*空間において、L*軸方向の値であるL*が大きくなるに従って、輝度が高くなり、L*が小さくなるに従って、輝度が低くなる。L*が一定である場合、L*軸に近づくに従って、彩度が低くなる。
1つの画素値によって、L*a*b*空間上の1つの位置が決まる。
L*a*b*空間においては、人間が所定の色名の色であると認識する色の位置が1つの領域で表現できる。人間が所定の色名の色であると認識する色の位置を含む領域をサブ空間と称する。サブ空間は、例えば、L*a*b*空間において広がりをもった領域である。
まず、白および黒に対するサブ空間の例を説明する。
図40は、白のサブ空間および黒のサブ空間の例を示す図である。白のサブ空間441は、楕円体の1つの軸がL*軸と一致する楕球であって、図形的中心がL*a*b*空間の最も上の位置(L*軸上の最大値を示す位置)と一致する楕球の内側の空間と、L*a*b*空間とが重なる空間である。白のサブ空間441は、彩度が低く、輝度の高い色を示す空間である。サブ空間441内の位置で示される色は、人間に白であると認識される。
黒のサブ空間442は、楕円体の1つの軸がL*軸と一致する楕球であって、図形的中心がL*a*b*空間の最も下の位置(L*軸上の最小値を示す位置)と一致する楕球の内側の空間と、L*a*b*空間とが重なる空間である。黒のサブ空間442は、彩度が低く、輝度の低い色を示す空間である。サブ空間442内の位置で示される色は、人間に黒であると認識される。
次に、赤、黄、緑、および青に対するサブ空間の例を説明する。
赤、黄、緑、および青は、有彩色なので、L*a*b*空間から、図41で示される彩度境界461の内側の領域、輝度下限境界462の下側の領域、および輝度上限境界463の上側の領域を除外する。彩度境界461の内側の領域は、彩度の低い色を示す。彩度境界461は、その内側の領域で示される色の彩度が低く、その色が人間には、赤、黄、緑、または青と認識されない位置に設けられる。
輝度下限境界462の下側の領域は、輝度の低い色を示す。輝度下限境界462は、その下側の領域で示される色の輝度が低く、その色が人間には、赤、黄、緑、または青と認識されない位置に設けられる。
輝度上限境界463の上側の領域は、輝度の高い色を示す。輝度上限境界463は、その上側の領域で示される色の輝度が高く、その色が人間には、赤、黄、緑、または青と認識されない位置に設けられる。
従って、L*a*b*空間から、彩度境界461の内側の領域、輝度下限境界462の下側の領域、および輝度上限境界463の上側の領域を除外した空間は、その空間で示される色が、赤、黄、緑、または青などと人間に認識される位置からなることになる。
そして、L*a*b*空間から、彩度境界461の内側の領域、輝度下限境界462の下側の領域、および輝度上限境界463の上側の領域を除外した空間が、図42で示されるように、a*軸とb*軸とからなる平面に対して垂直であって、L*軸を中心とした放射状の境界で分割される。例えば、L*a*b*空間をL*軸の上側から見た場合、緑のサブ空間481は、マイナス側のa*軸の上側の境界と、マイナス側のa*軸の下側の境界とで囲まれる、a*軸側の空間である。サブ空間481内の位置で示される色は、人間に緑であると認識される。
また、L*a*b*空間をL*軸の上側から見た場合、青のサブ空間482は、マイナス側のb*軸の右側の境界と、マイナス側のb*軸の左側の境界とで囲まれる、b*軸側の空間である。サブ空間482内の位置で示される色は、人間に青であると認識される。
同様に、例えば、L*a*b*空間をL*軸の上側から見た場合、赤のサブ空間483は、プラス側のa*軸の上側の境界と、プラス側のa*軸の下側の境界とで囲まれる、a*軸側の空間である。サブ空間483内の位置で示される色は、人間に赤であると認識される。例えば、L*a*b*空間をL*軸の上側から見た場合、黄のサブ空間484は、プラス側のb*軸の右側の境界と、プラス側のb*軸の左側の境界とで囲まれる、b*軸側の空間である。サブ空間484内の位置で示される色は、人間に黄であると認識される。
すなわち、ステップS223において、”赤”関連度抽出部402は、画素の色に対応する、L*a*b*空間上の位置を計算する。そして、ステップS224において、”赤”関連度抽出部402は、計算されたL*a*b*空間上の位置が、赤である色名に対応するサブ空間483内であるか否かを判定する。すなわち、ステップS224において、”赤”関連度抽出部402は、画素の色が人間に赤であると認識される色であるか否かを判定する。
ステップS224において、計算されたL*a*b*空間上の位置が、赤である色名に対応するサブ空間483内であると判定された場合、画素の色が人間に赤であると認識される色なので、ステップS225に進み、”赤”関連度抽出部402は、カウンタを1だけインクリメントし、手続きは、ステップS226に進む。
ステップS224において、計算されたL*a*b*空間上の位置が、赤である色名に対応するサブ空間483内でないと判定された場合、画素の色が人間に赤であると認識されない色なので、ステップS225をスキップして、カウンタをインクリメントしないで、手続きは、ステップS226に進む。
ステップS226において、”赤”関連度抽出部402は、画素が終わりであるか否か、すなわち、本画像201の画素の全てについて処理を適用したか否かを判定し、画素が終わりでないと判定された場合、ステップS222に戻り、本画像201の画素のうち、次の画素の色、すなわち、次の画素の画素値を入力して、上述した処理を繰り返す。
ステップS226において、画素が終わりである、すなわち、本画像201の画素の全てについて処理を適用したと判定された場合、ステップS227に進み、”赤”関連度抽出部402は、カウンタの数(値)を本画像201の画素の数で除算する。その結果、本画像201において、赤であると想定できる色が含まれる割合が求められることになる。
ステップS228において、”赤”関連度抽出部402は、除算の結果を赤の関連度とし、関連度を抽出特徴記録部405に赤の関連度を供給して、処理は終了する。
なお、L*a*b*空間におけるサブ空間を例に説明したが、L*a*b*空間に限らず、所定の色名の色を1つの領域で表現される色空間を用いて、そのサブ空間を基に関連度を求めるようにしてもよい。
図37を参照して説明した関連度抽出処理においては、画素毎の色がサブ空間の内側であるか否かの2値判断を行ったが、サブ空間の中心に近いのか、それともサブ空間の境界に近いのか(境界ぎりぎりなのか)を関連度に反映させることも考えられる。
次に、この場合の関連度抽出処理を説明する。
図43は、図36のステップS204に対応する、ステップS203で”赤”関連度抽出部402が特定された場合の関連度抽出処理の詳細の他の例を説明するフローチャートである。ステップS241において、”赤”関連度抽出部402は、記憶している関連度をクリアする。最初に実行されるステップS242において、”赤”関連度抽出部402は、本画像201の画素のうち、最初の画素の色、すなわち、画素値を入力する。ステップS243において、”赤”関連度抽出部402は、画素の色に対応する、色空間上の位置を計算する。
ステップS224において、”赤”関連度抽出部402は、計算された色空間上の位置について、色名に対応するサブ空間に属する確信度を算出する。すなわち、ステップS224において、”赤”関連度抽出部402は、計算された色空間上の位置について、赤である色名に対応するサブ空間483に属する確信度を算出する。
確信度は、サブ空間の中心に近いのか、それともサブ空間の境界に近いのかを示す、サブ空間の内側から外側に向かって1から0に連続的に変化する指標値である。
例えば、ステップS224において、”赤”関連度抽出部402は、計算された色空間上の位置がサブ空間483の中心により近い場合、1により近い確信度を算出し、計算された色空間上の位置がサブ空間483の境界により近い場合、0により近い確信度を算出する。
ステップS245において、”赤”関連度抽出部402は、関連度に確信度を加算する。ステップS246において、”赤”関連度抽出部402は、画素が終わりであるか否か、すなわち、本画像201の画素の全てについて処理を適用したか否かを判定し、画素が終わりでないと判定された場合、ステップS242に戻り、本画像201の画素のうち、次の画素の色、すなわち、次の画素の画素値を入力して、上述した処理を繰り返す。
ステップS226において、画素が終わりである、すなわち、本画像201の画素の全てについて処理を適用したと判定された場合、関連度を抽出特徴記録部405に赤の関連度を供給して、処理は終了する。
確信度を基に関連度を算出した場合には、人の感覚により近い関連度を求めることができるようになる。特に、画像が、サブ空間の境界に近い色を多く含む場合であっても、より的確な関連度を求めることができる。
図37を参照して説明した関連度抽出処理におけるステップS224の処理は、画素の色が特定の色名の色と判定されるか否かの2クラス分類問題であり、種々のパターン認識の手法に置き換えることができる。
次に、この場合の関連度抽出処理を説明する。
図44は、図36のステップS204に対応する、ステップS203で”赤”関連度抽出部402が特定された場合の関連度抽出処理の詳細の他の例を説明するフローチャートである。ステップS261およびステップS262の処理は、それぞれ、図37のステップS221およびステップS222の処理と同様なので、その説明は省略する。
ステップS263において、”赤”関連度抽出部402は、画素の色をパターン認識する。
例えば、ステップS263において、”赤”関連度抽出部402は、ニューラルネットワークにより、画素の色をパターン認識する。ニューラルネットワークによるパターン認識は、例えば、鳥脇純一郎著、認識工学 −パターン認識とその応用−、コロナ社などに記載されている。
パターン認識させる場合には、特定の色値(L*,a*,b*)の色が特定の色名の色であるかどうかを示す判断データを予め人手により複数集めておき、集めた判断データを基に、ニューラルネットワークの学習を行い、識別に必要なパラメータを生成しておく。
図45は、青の色であるかどうかを示す判断データの例である。図45の判断データの例は、例えば、0.02であるL*、0.04であるa*、および0.10であるb*で特定される色は、青ではなく、0.72であるL*、0.00であるa*、および0.12であるb*で特定される色は、青であり、0.28であるL*、−0.02であるa*、および0.15であるb*で特定される色は、青ではないことを示す。
ニューラルネットワークによれば、画素の色に対して、このように生成されたパラメータに従って特定の色名の色であるか否かが判定される。
なお、パターン認識の手法は、画素の色が、所定の色名の色であるか否かを判別できるものであればよく、SVM(Support Vector Machine)などいずれの手法であってもよい。
ステップS264において、”赤”関連度抽出部402は、認識の結果、画素の色が、赤に属するか否かを判定する。ステップS224において、画素の色が、赤に属すると判定された場合、ステップS265に進み、”赤”関連度抽出部402は、カウンタを1だけインクリメントし、手続きは、ステップS266に進む。
ステップS264において、画素の色が、赤に属しないと判定された場合、ステップS265をスキップして、カウンタをインクリメントしないで、手続きは、ステップS266に進む。
ステップS266乃至ステップS268の処理は、それぞれ、図37のステップS226乃至ステップS228の処理と同様なので、その説明は省略する。
さらに、パターン認識の手法により、確信度を求めるようにしてもよい。
図46は、図36のステップS204に対応する、ステップS203で”赤”関連度抽出部402が特定された場合の関連度抽出処理の詳細の他の例を説明するフローチャートである。ステップS281の処理は、図43のステップS241の処理と同様なので、その説明は省略する。ステップS282およびステップS283の処理は、それぞれ、図44のステップS262およびステップS263の処理と同様なので、その説明は省略する。
ステップS284において、”赤”関連度抽出部402は、認識の結果としての、色名に属すると判定する確信度を算出する。すなわち、ステップS284において、”赤”関連度抽出部402は、認識の結果としての、画素の色が赤に属すると判定する確信度を算出する。例えば、確信度として、ニューラルネットワークの出力層に入力される値を用いることができる。
ステップS285およびステップS286の処理は、それぞれ、図43のステップS245およびステップS246の処理と同様なのでその説明は省略する。
なお、図36のステップS204に対応する、ステップS203で”青”関連度抽出部403が特定された場合、またはステップS203で”黄”関連度抽出部404が特定された場合の関連度抽出処理の詳細は、”赤”関連度抽出部402に代わり”青”関連度抽出部403または”黄”関連度抽出部404が処理を実行する点またはサブ空間などが異なるが、その他の点は、図37、図43、図44、または図46を参照して説明した処理と同様なので、その説明は省略する。
図47は、検索の処理を説明するフローチャートである。ステップS311において、検索条件入力部421は、使用者の操作に応じた入力部76からの信号を基に、関連度についての検索の条件を取得する。検索条件入力部421は、関連度についての検索の条件を条件照合部422に供給する。
例えば、図48で示されるように、ディスプレイである出力部77に、GUI(Graphical User Interface)の画像が表示される。図48で示される例において、使用者の操作されるスライドバー491は、検索の条件である、色名毎の粒度(閾値)を指定する。色名に対応するチェックボックス492が使用者によってチェックされている場合、その色名のスライドバー491で指定された、その色名についての粒度が、検索条件としてステップS311において、取得される。
例えば、黒のチェックボックス492、赤のチェックボックス492、緑のチェックボックス492がチェックされている場合、黒のスライドバー491で指定された、黒の粒度、赤のスライドバー491で指定された、赤の粒度、および緑のスライドバー491で指定された、緑の粒度が検索条件としてステップS311において、取得される。
なお、AND検索ラジオボタン493がオンされている場合、スライドバー491で指定された、色名毎の粒度の論理積が最終的な検索条件とされ、OR検索ラジオボタン494がオンされている場合、スライドバー491で指定された、色名毎の粒度の論理和が最終的な検索条件とされる。
より具体的には、例えば、ステップS311において、検索条件入力部421は、(“赤”>0.5)AND(“青”≧0.3)AND(“緑”<0.1)などの、複数の色名に対する論理式で示される検索の条件を取得する。
例えば、使用者は、青空の写った画像を検索したい場合、“青”≧0.3である検索の条件を入力し、ステップS311において、検索条件入力部421は、“青”≧0.3である検索の条件を取得する。
また、使用者は、例えば、イチゴ狩りの画像を検索したい場合には、(“赤”>0.1)AND(“緑”≧0.3)である検索の条件を入力し、ステップS311において、検索条件入力部421は、(“赤”>0.1)AND(“緑”≧0.3)である検索の条件を取得する。
なお、検索の条件における、色の名前は、定義済み(関連度抽出部が用意されている)全ての色名である必要はなく、すなわち、検索の条件における、色の名前は、定義済みの色名の一部であってもよく、1つの色名であってもよい。
また、色名毎に、直接数値を入力し、取得するようにしてもよい。
ステップS312において、条件照合部422は、抽出特徴保持部146から、検索の対象となる本画像201の色特徴ベクトルを取得する。
ステップS313において、条件照合部422は、取得した色特徴ベクトルが検索の条件に一致するか否かを判定する。例えば、ステップS313において、条件照合部422は、取得した色特徴ベクトルのそれぞれの要素のうち、チェックされているチェックボックス492に対応する色名の要素と、スライドバー491で指定された、その色名についての粒度とが比較され、色特徴ベクトルの色名の要素が指定された粒度以上である場合、色特徴ベクトルが検索の条件に一致すると判定する。
また、例えば、色名毎の粒度の論理積が最終的な検索条件とされている場合、ステップS313において、条件照合部422は、チェックされているチェックボックス492に対応する色名の要素のすべてにおいて、色特徴ベクトルの色名の要素が指定された粒度以上である場合、色特徴ベクトルが検索の条件に一致すると判定する。例えば、色名毎の粒度の論理和が最終的な検索条件とされている場合、ステップS313において、条件照合部422は、チェックされているチェックボックス492に対応する色名の要素のいずれかにおいて、色特徴ベクトルの色名の要素が指定された粒度以上である場合、色特徴ベクトルが検索の条件に一致すると判定する。
ステップS313において、取得した色特徴ベクトルが検索の条件に一致すると判定された場合、ステップS314に進み、条件照合部422は、検索結果保持部147に、ステップS312において取得した色特徴ベクトルに対応する本画像201を特定するコンテンツIDを追加して、ステップS315に進む。
ステップS313において、取得した色特徴ベクトルが検索の条件に一致しないと判定された場合、ステップS314の処理はスキップされ、検索結果保持部147にコンテンツIDを追加しないで、ステップS315に進む。
ステップS315において、検索条件入力部421は、画像が終わりであるか否か、すなわち、全ての画像について検索したか否かを判定し、画像が終わりでない、すなわち、まだ、全ての画像について検索していないと判定された場合、ステップS312に戻り、次の本画像201の色特徴ベクトルを取得して、上述した処理を繰り返す。
ステップS315において、画像が終わりである、すなわち、全ての画像について検索したと判定された場合、処理は終了する。
この処理により、検索結果保持部147には、検索の条件を満たす本画像201を特定するコンテンツIDが格納されることになる。
図49は、ディスプレイである出力部77に表示される、検索結果保持部147に格納されたコンテンツIDで特定される本画像201の例を示す図である。例えば、緑のチェックボックス492がチェックされ、緑のスライドバー491で粒度が指定された場合、図49の左上に示されるように、緑を多く含む本画像201が、ディスプレイである出力部77に表示される。また、例えば、緑のチェックボックス492がチェックされ、緑のスライドバー491で粒度が指定され、赤のチェックボックス492がチェックされ、赤のスライドバー491で粒度が指定され、AND検索ラジオボタン493がオンされている場合、図49の右上に示されるように、緑と赤を多く含む本画像201が、ディスプレイである出力部77に表示される。
例えば、青のチェックボックス492がチェックされ、青のスライドバー491で粒度が指定された場合、図49の左下に示されるように、青を多く含む本画像201が、ディスプレイである出力部77に表示される。また、例えば、青のチェックボックス492がチェックされ、青のスライドバー491で粒度が指定され、白のチェックボックス492がチェックされ、白のスライドバー491で粒度が指定され、AND検索ラジオボタン493がオンされている場合、図49の右下に示されるように、青と白を多く含む本画像201が、ディスプレイである出力部77に表示される。
使用者にとって、所望の画像がどのような色をどのくらい含んでいるかを推測することは容易であり、所望の画像を簡単に検索することができるようになる。
さらに、検索の結果に応じて、条件を広げたり狭めたりするなどの任意の粒度に変更して、再度、検索することができる。これにより、さらに簡単に、所望の画像を検索することができる。
このように、使用者の持っている画像の色のイメージや雰囲気から直感的に画像を検索することができるようになる。
画像の全体の集合に対して様々な条件を組み合わせた検索の条件を決めることができるので、検索時に、任意の粒度で、画像である検索結果を取り出すことができる。
画像について、関連度からなる色特徴ベクトルを予め抽出し、関連度との大小の比較または論理演算により画像を検索することができるので、迅速に画像を検索することができる。
関連度は、比較的桁数少ない数値で表現することができるので、色特徴ベクトルのデータ量は、より小さくすることができる。従って、色特徴ベクトルの記録に要する記録空間の容量は、比較的小さなもので足りる。
なお、機器の例として、デジタルスチルカメラ11および携帯電話機12を挙げたが、これに限らず、機器は画像を取り扱うものであればよく、携帯型のプレーヤまたはビュワーなどであってもよい。
このように、画像のメタデータを記録するようにした場合には、機器において画像を検索することができる。また、機器において、画像を撮影し、画像に関係する情報を、画像に関係付けて、所定の構造のデータとして記録し、画像処理装置への画像の送信を制御し、画像処理装置において、機器から送信されてくる画像の受信を制御し、受信した画像の特徴を抽出し、画像から抽出した特徴を、画像に関係付けて、機器における構造と同じ構造のデータとして記録し、特徴の機器への送信を制御するようにした場合には、処理能力の比較的小さい機器において、簡単に、所望の画像を検索することができる。
また、画像のメタデータを記録するようにした場合には、機器において画像を検索することができる。また、画像の特徴を抽出し、画像から抽出した特徴を、画像に関係付けて、所定の構造のデータとして記録させ、構造と同じ構造のデータとして、画像に関係する情報を記録する機器に記録させる特徴の機器への送信を制御するようにした場合には、処理能力の比較的小さい機器において、簡単に、所望の画像を検索することができる。
上述した一連の処理は、ハードウエアにより実行させることもできるし、ソフトウエアにより実行させることもできる。一連の処理をソフトウエアにより実行させる場合には、そのソフトウエアを構成するプログラムが、専用のハードウエアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、プログラム記録媒体からインストールされる。
コンピュータにインストールされ、コンピュータによって実行可能な状態とされるプログラムを記録する記録媒体は、図2または図3に示すように、磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD-ROM(Compact Disc-Read Only Memory),DVD(Digital Versatile Disc)を含む)、光磁気ディスクを含む)、もしくは半導体メモリなどよりなるパッケージメディアであるリムーバブルメディア82、または、プログラムが一時的もしくは永続的に格納されるROM72またはEEPROM46や、記憶部78を構成するハードディスクなどにより構成される。プログラム記録媒体へのプログラムの格納は、必要に応じてルータ、モデムなどのインタフェースである通信部47、通信部48、通信部79、または通信部80を介して、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の通信媒体を利用して行われる。
なお、本明細書において、プログラム記録媒体に格納されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
また、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
なお、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。