信息处理设备、信息处理方法和信息处理程序的制作方法

文档序号:7963275阅读:172来源:国知局
专利名称:信息处理设备、信息处理方法和信息处理程序的制作方法
技术领域
本发明涉及信息处理设备,信息处理方法和信息处理程序。更具体地说,本发明涉及通过群集待搜索的数据,能够容易地搜索数据,比如作为使用数字照相机进行的拍摄操作的结果而获得的图像数据,以寻找所需数据的信息处理设备,信息处理方法和信息处理程序。
背景技术
例如,数字照相机把图像数据连同元数据,比如以起因于拍摄操作的照片的形式产生图像数据的日期/时间一起保存在存储器中。
随着数字照相机的普及,还提供(或者出售)在计算机中管理多条图像数据的各种应用程序。例如,管理应用程序根据包括在元数据中的拍摄日期,以层状结构群集多条图像数据。拍摄日期包括进行拍摄操作,以产生多条图像数据的年、月和日。
另外,诸如日本专利特许公开No.2001-228528之类的文献公开一种通过根据拍摄日期/时间和拍摄地点,把多条图片数据群集(或者归类)成组,管理多条图片数据的图像拍摄设备。

发明内容
需要提出一种新的群集技术,所述新的群集技术以用户能够容易地搜索群集的图片数据寻找所需图片的方式,群集图片数据。
为了满足上述需求,本发明的发明人设计了一种新的群集技术,所述群集技术允许用户容易地进行操作,包括搜索群集的多条图片数据以寻找所需的图片数据,例如所需图片的处理。
本发明包括树形结构处理装置(或者树形结构处理步骤),用于根据元数据得到第一距离和第二距离,并根据第一和第二距离把一个新节点增加到树形结构中,作为以注意节点为子节点的节点,所述注意节点被分配给布置在根据多条图片数据的元数据排列的多条图片数据的阵列中的受到注意位置的注意数据。在树形结构处理装置或树形结构处理步骤中,第一距离是在属于一个丛集的多条图片数据中选择的两条相邻图片数据之间的基于预定距离标度的距离,所述一个丛集是在与树形结构的节点对应的丛集中选择的与布置在受到注意位置的注意数据相邻的丛集;第二距离是注意数据和在属于与注意数据相邻的丛集的多条图片数据中选择的与注意数据相邻的一条图片数据之间的基于预定距离标度的距离。
如上所述,按照本发明,根据元数据得到第一和第二距离。随后,根据第一和第二距离把一个新节点增加到树形结构中,作为以注意节点为子节点的节点,所述注意节点被分配给布置在根据多条图片数据的元数据排列的多条图片数据的阵列中的受到注意位置的注意数据。如上所述,第一距离是在属于一个丛集的多条图片数据中选择的两条相邻图片数据之间的基于预定距离标度的距离,所述一个丛集是在与树形结构的节点对应的丛集中选择的与布置在受到注意位置的注意数据相邻的丛集。另一方面,第二距离是注意数据和在属于与注意数据相邻的丛集的多条图片数据中选择的与注意数据相邻的一条图片数据之间的基于预定距离标度的距离。
根据本发明,树形结构可被用作分层群集用结构。从而,用户能够容易地进行操作,包括搜索群集的多条图片数据以寻找所需的图片数据,例如所需图片的处理。


图1表示实现可应用本发明的信息处理系统的一个实施例的典型结构;图2表示典型的丛集树;图3表示根据丛集树进行的群集处理的结果;图4表示典型的丛集树;图5表示利用照相机进行拍摄操作的典型拍摄地点;图6表示典型的丛集树;图7是描述产生丛集树的过程时参考的说明图;图8是描述产生丛集树的过程时参考的另一说明图;图9是描述产生丛集树的过程时参考的又一说明图;图10是描述产生丛集树的过程时参考的又一说明图;图11是描述产生丛集树的过程时参考的另一说明图;图12是描述产生丛集树的过程时参考的又一说明图;图13是描述产生丛集树的过程时参考的又一说明图;图14是描述产生丛集树的过程时参考的又一说明图;图15是描述产生丛集树的过程时参考的又一说明图;图16表示群集设备的典型结构;图17是表示群集设备进行的处理的流程图;图18是表示作为群集设备进行的处理的一部分的群集处理的流程图;图19表示树形结构处理部分的典型结构;图20是描述分支节点搜索处理时参考的说明图;图21是描述节点增加处理时参考的说明图;图22是描述节点增加处理时参考的另一说明图;图23是描述节点增加处理时参考的又一说明图;图24是描述节点增加处理时参考的又一说明图;图25是描述节点增加处理时参考的又一说明图;图26是描述节点增加处理时参考的又一说明图;图27是表示树形结构处理的流程图;图28是表示分支节点搜索处理的流程图;
图29是表示节点增加处理的流程图;图30是表示群集处理的流程图;图31是表示函数Rm(N)的处理的流程图;图32是表示函数Lm(N)的处理的流程图;图33是表示函数IRM(Nq,Nnew)的处理的流程图;图34是表示函数ILM(Nq,Nnew)的处理的流程图;图35是表示函数FBN(Nq,Nnew)的处理的流程图;图36表示利用照相机获得的典型的多条图片数据;图37表示典型的丛集树;图38表示其它典型的丛集树;图39表示另外的典型丛集树;图40表示另外的典型丛集树;图41表示另外的典型丛集树;图42表示另外的典型丛集树;图43表示通过利用丛集树群集的多条图片数据的典型显示;图44表示通过利用丛集树群集的多条图片数据的另一典型显示;图45表示通过利用丛集树群集的多条图片数据的又一典型显示;图46表示通过利用丛集树群集的多条图片数据的又一典型显示;图47表示通过利用丛集树群集的多条图片数据的又一典型显示;图48表示实现应用本发明的一个实施例的计算机的典型实施例。
具体实施例方式
在说明本发明的优选实施例之前,在下面的比较说明中解释公开的发明和实施例之间的关系。下面的比较说明证实在本发明的详细说明中解释了支持本发明的每个实施例。从而,即使存在在详细说明中描述了,但是未作为对应于本发明的实施例而包括在下面的比较说明中的实施例,这样的实施例也不应被理解为不对应于本发明的实施例。相反,作为对应于特定发明的实施例而包括在下述比较说明中的实施例不应被理解为与除所述特定发明外的发明不对应的实施例。
根据本发明的一个实施例,信息处理设备(例如图1中所示的信息处理设备2)包括通过把多条图片数据中的每一条分配给树形结构的一个叶节点(例如图2中所示的叶节点N41或N51),把多条图片数据(例如图2中所示的图片数据pic1-图片数据pic7)群集成分别与树形结构(例如图2中所示的丛集树)中各层上的节点对应的丛集(例如图2中所示的丛集C11和C22)。信息处理设备包括用于获得多条图片数据的元数据的元数据采集装置(例如在图16中所示的群集设备13中采用的元数据读取部分20);和树形结构处理装置(图16中所示的树形结构处理部分22),用于根据元数据找出第一距离和第二距离,并根据第一和第二距离,向树形结构中增加一个新节点(例如图22中所示的新节点Nin),作为以注意节点(例如图21中所示的注意节点Nnew)为子节点的节点,注意节点被分配给布置在根据多条图像数据的元数据排列的多条图像数据的阵列中受到注意位置的注意数据。在该处理设备中,第一距离(例如图22中的距离dq)是在属于一个丛集的多条图片数据中选择的相邻两条图片数据之间的基于预定距离标度的距离,所述一个丛集是在与树形结构的节点对应的丛集中选择的,与布置在受到注意位置的注意数据相邻的丛集(例如图21中所示的丛集C1);以及第二距离(例如图22中所示的距离dn)是注意数据和在属于与注意数据相邻的丛集的多条图片数据中选择的与注意数据相邻的一条图片数据之间的基于预定距离标度的距离。
根据本发明的一个实施例,在信息处理设备中,树形结构是两节点结构,包括均被理解为具有两个子节点的父节点的节点,树形结构处理装置包括分支节点搜索装置(例如图19中所示的分支节点搜索部分31),用于搜索树形结构,寻找定义为节点的分支节点(例如图21中所示的分支节点Np),所述节点的子节点之一或者是与位于和布置在受到注意位置的注意数据相邻侧之一的最大相邻丛集(例如图21中所示的丛集Cl)对应的节点(例如图21中所示的左节点l(Np)),或者是与位于和注意数据相邻的另一侧的最大相邻丛集(例如图21中所示的丛集Cr)对应的节点(例如图21中所示的右节点r(Np));以及计算第一和第二距离的距离计算装置(例如图19中所示的距离计算部分41),其中第一距离是在属于某一丛集(例如图22中所示的丛集Cq)的多条图片数据中选择的任意两条相邻图片数据间的均基于预定距离标度的距离中的最大值(例如图22中所示的距离dq),所述某一丛集对应于候选节点(例如图22中所示的候选节点Nq);第二距离是注意数据和在属于与候选节点对应的丛集的多条图片数据中选择的与注意数据相邻的一条图片数据间的基于预定距离标度的距离(例如图22中所示的距离dn);以及与对应于包括注意数据的丛集的节点共有相同父节点的候选节点是与在均对应于分支节点的子节点的最大相邻丛集中选择的,作为最大的相邻丛集的丛集对应的节点,该最大的相邻丛集包括属于所选择的最大相邻丛集的各条图片数据中,到布置在受到注意位置的注意数据的基于预定距离标度的距离最短的一条图片数据。树形结构处理装置还包括距离确定装置(例如图19中所示的确定部分42),用于相互比较第一和第二距离,以便产生指示第一和第二距离之间的量值关系的确定结果;和节点增加装置(例如图19中所示的节点增加部分43),用于根据距离确定装置产生的比较结果,把新的节点(例如图22中所示的新节点Nin)增加到树形结构中,并把新节点布置在分支节点(例如图22中所示的分支节点Np)和候选节点(例如图22中所示的候选节点Nq)之间,作为以分支节点为父节点并以候选节点以及和包括注意数据的丛集对应的节点为子节点的节点。
根据本发明的一个实施例,在信息处理设备中,如果距离确定装置产生的比较结果指示第二距离(例如图22中所示的距离dn)大于第一距离(例如图22中所示的距离dq)(例如,和图22中所示的丛集树的情况一样),那么节点增加装置向树形结构中增加一个新节点(例如图22中所示的新节点Nin),把该新节点布置在分支节点和候选节点之间,作为以分支节点为父节点并以候选节点以及和包括注意数据的丛集对应的节点为子节点的节点。另一方面,如果距离确定装置产生的比较结果指示第二距离(例如图23中所示的距离dn)不大于第一距离(例如图23中所示的距离dq)(例如,和图23中所示的丛集树的情况一样),那么只要距离确定装置产生的比较结果指示第二距离不大于第一距离,信息处理设备就反复执行下述步骤用候选节点代替分支节点,以充当新的分支节点,用候选节点的子节点之一代替候选节点,以充当新的候选节点;驱动距离计算节点计算表示在属于与新的候选节点对应的丛集的多条图片数据中选择的任何两条相邻图片数据间的距离的最大值的第一距离,和计算注意数据和在属于与新的候选节点对应的丛集的各条图片数据中选择的与注意数据相邻的一条图片数据之间的第二距离;和驱动距离确定装置相互比较第一距离和第二距离,以便产生指示第一和第二距离的量值之间的关系的确定结果。
根据本发明的一个实施例,信息处理方法包括通过把多条图片数据中的每一条分配给树形结构的一个叶节点(例如图2中所示的叶节点N41或N51),把多条图片数据(例如图2中所示的图片数据pic1-图片数据pic7)群集成分别与树形结构(例如图2中所示的丛集树)中各层上的节点对应的丛集(例如图2中所示的丛集C11和C22)的步骤。信息处理方法包括获得多条图片数据的元数据的元数据采集步骤(例如图18中所示的流程图的步骤S11);和树形结构处理步骤(例如图18中所示的流程图的步骤S12),用于根据元数据找出第一距离和第二距离,并根据第一和第二距离,向树形结构中增加一个新节点(例如图22中所示的新节点Nin),作为以注意节点(例如图21中所示的注意节点Nnew)为子节点的节点,注意节点被分配给布置在根据多条图像数据的元数据排列的多条图像数据的阵列中受到注意位置的注意数据。在该程序中,第一距离(例如图22中的距离dq)是在属于某一丛集的多条图片数据中选择的相邻两条图片数据间的基于预定距离标度的距离,所述某一丛集是在与树形结构的节点对应的丛集中选择的,与布置在受到注意位置的注意数据相邻的丛集(例如图21中所示的丛集C1);第二距离(例如图22中所示的距离dn)是注意数据和在属于与注意数据相邻的丛集的多条图片数据中选择的与注意数据相邻的一条图片数据间的基于预定距离标度的距离。
下面参考

本发明的优选实施例。
图1表示了实现应用本发明的信息处理系统的一个实施例的典型结构。该信息处理系统是包括多个设备的逻辑汇合结构,所述多个设备不必被容纳在一个外壳中。
如图1中所示,信息处理系统包括照相机1和信息处理设备2。更具体地说,照相机1是数字照相机。
按照用户进行的操作,照相机1进行拍摄处理,获得拍摄对象的图片,并把作为拍摄处理的结果而获得的图片数据保存在存储器中。另外,作为图片数据的元数据,照相机1还把包括拍摄处理的拍摄日期/时间,和拍摄地点的元数据保存在存储器中。一般来说,拍摄日期/时间包括用年、月和日表示的拍摄日期,和用小时与分钟表示的拍摄时间。照相机1还能够把保存的图片数据和保存的元数据传送(或输出)给外部目的地。
照相机1一般具有用于测量当前时间的嵌入式时钟。根据该时钟测量的当前时间,照相机1获得拍摄时间,所述拍摄时间是图片数据的元数据的一部分。另外,照相机1还具有一般从为GPS(全球定位系统)提供的卫星接收信号的嵌入式接收器部分,并根据接收器部分从卫星接收的信号,照相机1获得拍摄地点,它是图片数据的元数据的另一部分。
如图1中所示,信息处理设备2包括输入接口11,数据存储设备12,群集设备13,丛集树存储设备14,显示控制设备15,显示设备16,和操作单元17。信息处理设备2能够与照相机1(电)连接。
输入接口11充当信息处理设备2和照相机1之间的接口。即,当信息处理设备2和照相机1通过电缆相互连接时,输入接口11从照相机1读出(或取回)图像数据和图像数据的元数据,并提供数据存储设备12中的多条图片数据。
数据存储设备12一般包括硬盘或半导体存储器,并用于保存输入接口11从照相机1读出的图片数据和元数据。
群集设备13把把保存在数据存储设备12中的多条图片数据群集成与具有如后所述的树形结构的丛集树的节点对应的丛集,以便通过根据同样保存在数据存储设备12中的元数据,把多条图片数据分配给丛集,把多条图片数据放入层状结构中。随后,群集设备13把通过群集多条图片数据的处理而获得的关于丛集树的信息保存到丛集树存储设备14中。
丛集树存储设备14是用于把从群集设备13收到的信息保存为关于如上所述的丛集树的信息的存储器。
显示控制设备15是根据保存在丛集树存储设备14中的丛集树,控制显示设备16以所谓的分层格式显示保存在数据存储设备12中的多条图片数据的控制器。
显示设备16一般是CRT(阴极射线管)显示单元或者LCD(液晶显示)单元。在如上所述的显示控制设备15的控制下,显示设备16显示包括多条图片数据在内的信息。
操作单元17是由用户操作的,把表示用户进行的操作的操作信号输出给需要该信号的其它功能块的单元。例如,输入接口11按照从操作单元17接收的操作信号,从照相机1取回图片数据和图片数据的元数据。作为另一例子,群集设备13按照从操作单元17接收的操作信号,群集保存在数据存储设备12中的多条图片数据。作为另一例子,显示控制设备15按照从操作单元17接收的操作信号,控制在显示设备16上显示多条图片数据的操作。
借助在具有上述结构的信息处理系统中相互连接的照相机1和信息处理设备2,当用户操纵操作单元17,以便从照相机1取回图片数据时,输入接口11从照相机1读出同图片数据和图片数据的元数据,并把多条图片数据保存在数据存储设备12中。
如上所述,群集设备13把保存在数据存储设备12中的多条图片数据群集成与具有如后所述的树形结构的丛集树的节点对应的丛集,以便通过根据同样保存在数据存储设备12中的元数据把多条图片数据分配给该丛集,把多条图片数据放入层状结构中。随后,群集设备13把通过群集多条图片数据的处理而获得的关于丛集树的信息保存到丛集树存储设备14中。
作为如上所述的群集设备13进行的群集处理的结果,获得具有树形结构(或分层结构)的丛集树。在下面的说明中,产生具有树形结构的丛集树的分层群集处理被恰当地简称为分层群集处理。
另一方面,当用户操纵操作单元17,以便显示保存在数据存储设备12中的多条图片数据时,显示控制设备15根据保存在丛集树存储设备14中的丛集树,在显示设备16上分层显示多条图片数据。
图2表示通过在如图1中所示的信息处理设备2中采用的群集设备13进行的分层群集处理而获得的典型丛集树。
如图2中所示,丛集树由均与丛集对应的节点和均用于连接两个相邻节点的弧线构成。每个节点是包括在分层群集多条图片数据的树形结构中的数据(或信息)。
在图2和表示丛集树的任何其它图中,圆形标志表示节点,连接两个相邻的圆形标志的线表示弧线。
通过利用弧线,一个节点可与另一节点连接。更具体地说,较高层上的一个节点可与比所述较高层低一层的较低层上的一个节点连接。这种情况下,较低层上的节点被称为子节点,而较高层上的节点被称为父节点。
在图2中所示的典型丛集树中,一个节点只能具有两个子节点。即,父节点可与两个子节点连接。从而,典型的丛集树是二叉树。
丛集树具有不与父节点连接的节点(父节点不存在)。无父节点的节点被称为根节点。另一方面,丛集树还具有不与子节点连接的节点(子节点不存在)。无子节点的节点被称为叶节点。一条图片数据被分配给一个叶节点。一个叶节点还保持分配给其的一条图片数据的元数据。
在下面的说明中,作为根节点层,位于丛集树中最高层的一层被称为第一层。出于同样原因,根节点的子节点层被称为第二层。根节点的子节点都是通过从根节点沿丛集树的弧线下溯一层可找到的节点。可按照相同方式,通过从根节点沿丛集树的弧线下溯k层找到的节点所处的那一层被称为第(k+1)层。
在图2中所示的典型丛集树中,第一层上的根节点N11具有两个子节点,即第二层上的节点N21和N22。出于同样的原因,第二层上的节点N21具有两个子节点,即第三层上的节点N31和N32。同样,第三层上的节点N31具有两个子节点,即第四层上的节点N41和N42。同样地,第四层上的节点N42具有两个子节点,即第五层上的节点N51和N52。
类似于节点N21,第二层上的节点N22具有两个子节点,即第三层上的节点N33和N34。类似于节点N31,第三层上的节点N33具有两个子节点,即第四层上的节点N43和N44。
在图2中所示的丛集树中,第四层上的节点N41,第五层上的节点N51和N52,第三层上的节点N32,第四层上的节点N43和N44,以及第三层上的节点N34都是叶节点。作为叶节点,节点N41,节点N51,N52,N32,N43,N44和N34分别具有分别分配给其的图片数据pic1,pic2,pic3,pic4,pic5,pic6和pic7。
在图2和表示图片数据的其它图中,正方形标志表示一条图片数据。
如上所述,丛集树的每个节点对应一个丛集。分配给叶节点的图片数据属于对应于节点的丛集,通过从叶节点沿丛集树的弧线上溯可找到该节点。从而,分配给叶节点的多条图片数据被群集到与位于高层的节点对应的较大规模的丛集中。另一方面,分配给叶节点的多条图片数据被群集到与位于低层的节点对应的较小规模的丛集中。
具体地说,例如,图2中所示的丛集树具有位于第一层上的节点N11,该节点是从其沿弧线下溯丛集树可到达所有叶节点,即,节点N41,节点N51,N52,N32,N43,N44和N34的唯一根节点。从而,分别分配给均可通过从位于丛集树中的第一层上的根节点N11沿弧线下溯丛集树找到的叶节点,即节点N41,N51,N52,N32,N43,N44和N34的图片数据pic1,pic2,pic3,pic4,pic5,pic6和pic7被群集到与根节点N11对应的大规模的丛集C11中。
作为另一例子,在第二层上,丛集树具有从其沿弧线下溯丛集树可到达叶节点N41,N51,N52和N32的节点N21。同样在第二层上,丛集树具有从其沿弧线下溯丛集树可到达叶节点N43,N44和N34的节点N22。从而,分别分配给均可通过从位于丛集树中的第二层上的节点N21沿弧线下溯丛集树找到的叶节点N41,N51,N52和N32的图片数据pic1,pic2,pic3和pic4被群集到与节点N21对应的小规模的丛集C21中。出于同样的原因,分别分配给均可通过从位于丛集树中的第二层上的节点N22沿弧线下溯丛集树找到的叶节点N43,N44和N34的图片数据pic5,pic6和pic7被群集到与节点N22对应的小规模的丛集C22中。
图3表示根据图2中所示的丛集树,对图片数据pic1-pic7进行的群集处理的结果。
从图3的顶部开始的第一块表示对第一层的群集处理的结果,从图3的顶部开始的第二块表示对第二层的群集处理的结果。
如前所述,所有图片数据pic1-pic7被群集到与在丛集树中的第一层上的根节点N11对应的丛集C11中,如从图3的顶部开始的第一块中所示。图片数据pic1-pic4被群集到与在丛集树中的第二层上的节点N21对应的丛集C21中,如从图3的顶部开始的第二块中所示。图片数据pic5-pic7被群集到与在丛集树中的第二层上的节点N22对应的丛集C22中,如从图3的顶部开始的第二块中所示。
在第三层上,分别分配给均可从节点N31(它是丛集树中第三层上的节点N31,N32,N33和N34中的一个)沿弧线下溯丛集树找到的叶节点N41,N51和N52的图片数据pic1-pic3还被群集到与节点N31对应的丛集C31中,如从图3的顶部开始的第三块中所示。另外,分配给可从位于丛集树中的第三层上的节点N32沿弧线下溯丛集树找到的一个叶节点的图片数据pic4还被群集到与节点N32对应的丛集C32中,如从图3的顶部开始的第三块中所示。此外,分别分配给均可从位于丛集树中的第三层上的节点N33沿弧线下溯丛集树找到的叶节点N43和N44的图片数据pic5和pic6被群集到与节点N33对应的丛集C33中,如从图3的顶部开始的第三块中所示。此外,分配给可从位于丛集树中的第三层上的节点N34沿弧线下溯丛集树找到的一个叶节点的图片数据pic7还被群集到与节点N34对应的丛集C34中,如从图3的顶部开始的第三块中所示。
在第四层上,分配给可从位于丛集树中的第四层上的节点N41,N42,N43和N44中选择的节点N41沿弧线下溯丛集树找到的一个叶节点的图片数据pic1还被群集到与节点N41对应的丛集C41中,如从图3的顶部开始的第四块中所示。此外,分别分配给均可从位于丛集树中的第四层上的节点N42沿弧线下溯丛集树找到的叶节点N51和N52的图片数据pic2和pic3还被群集到与节点N42对应的丛集C42中,如从图3的顶部开始的第四块中所示。此外,分配给可从位于丛集树中的第四层上的节点N43沿弧线下溯丛集树找到的一个叶节点的图片数据pic5还被群集到与节点N43对应的丛集C43中,如从图3的顶部开始的第四块中所示。此外,分配给可从位于丛集树中的第四层上的节点N44沿弧线下溯丛集树找到的一个叶节点的图片数据pic6还被群集到与节点N44对应的丛集C44中,如从图3的顶部开始的第四块中所示。
要注意的是,对应于叶节点的丛集把群集从叶节点的父节点继承到叶节点的下一层。例如,在图2中,对应于第三层上的叶节点N32的丛集C32从充当叶节点N32的父节点的节点N21的第二层继承群集。出于同样的原因,对应于第三层上的叶节点N34的丛集C34从充当叶节点N34的父节点的节点N22的第二层继承群集。从而,在第四层上,分配给叶节点N32的图片数据pic4被群集到与叶节点N32对应的丛集C32中。分配给叶节点N34的图片数据pic7被群集到与叶节点N34对应的丛集C34中。
按照相同的方式,在第五层上,分配给叶节点N41的图片数据pic1被群集到与叶节点N41对应的丛集C41中,分配给叶节点N51的图片数据pic2被群集到与叶节点N51对应的丛集C51中,分配给叶节点N52的图片数据pic3被群集到与叶节点N52对应的丛集C52中,分配给叶节点N32的图片数据pic4被群集到与叶节点N32对应的丛集C32中,分配给叶节点N43的图片数据pic5被群集到与叶节点N43对应的丛集C43中,分配给叶节点N44的图片数据pic6被群集到与叶节点N44对应的丛集C44中,分配给叶节点N34的图片数据pic7被群集到与叶节点N34对应的丛集C34中,如图3中的第五块(或者最下块)中所示。
根据基于上面所述的丛集树的群集处理的结果,与任何特定节点对应的丛集包括分别与通过从所述特定节点下溯丛集树可找到的比所述特定节点低一层的节点对应的丛集。换句话说,例如,与不是叶节点的节点对应的丛集包括与该节点的两个子节点对应的每个丛集。从而,丛集可以小于或大于另一丛集。在基于上面所述的丛集树的群集处理的结果中,最大的丛集是与第一层上的节点对应的丛集,第一层是最高的一层。即,最大的丛集是与根节点对应的丛集。
随后,参考图4-6,下面的说明解释了由如图1中所示信息处理设备2采用的群集设备13进行的分层群集处理的概要。
一般来说,通过使用照相机1进行的拍摄操作而获得的多条图像数据被按照图片数据的拍摄日期/时间的顺序排列。拍摄日期/时间的顺序从最早的拍摄日期/时间开始,后面依次是稍后的拍摄日期/时间。这是因为如果按照这样的拍摄日期/时间的顺序排列图片数据,那么用户能够在所谓的回溯历史的意义上,搜索多条图片数据,以寻找所需的一条图片数据。
在分层群集处理中,多条图片数据被群集,以防止改变一般通过按照拍摄日期/时间的顺序排列多条图片数据而获得的阵列。
即,假定按照作为拍摄日期/时间的顺序的如图4中所示的从左到右的顺序,图片数据pic1-pic7被排列成阵列。这种情况下,在分层群集处理中,产生一个丛集树,作为群集图片数据pic1-pic7的树形结构,同时图片数据pic1-pic7的阵列保持原状。即,分层群集处理并不产生颠倒依据图片pic1-pic7的拍摄日期/时间的顺序确定的关系的丛集。即,分层群集处理并不产生具有与颠倒所述关系的丛集对应的节点的丛集树。
从而,我们假定多条图片数据按照表示拍摄日期/时间顺序的从左到右的顺序被排列成阵列,对多条图片数据的阵列进行分层群集处理,以便产生丛集树。这样,对丛集树来说,下述关系成立。
t(N1)<t(Nr) (1)在上述关系中,符号t(N)表示分配给节点N的图片数据的拍摄日期/时间,节点N是叶节点。从而,在上面给出的关系(1)中,符号N1和Nr均表示丛集树中的一个叶节点。但是,符号N1表示位于叶节点Nr左侧的叶节点。即,符号Nr表示在叶节点N1右侧的叶节点。
许多情况下,集中于某一地点和某一时间进行产生图片数据的拍摄操作。通过把时间上或空间上彼此接近的多条图片数据集中到同一丛集中,即通过把具有彼此接近的拍摄地点或彼此接近的拍摄时间/日期的多条图片数据集中到同一丛集中,所需的图片是相当易于搜索的。
图5表示利用照相机进行拍摄操作的拍摄地点的模型。
在图5中所示的模型中,作为利用照相机1,在用户的家里进行的拍摄操作的结果,用户产生三条图片数据,即图片数据pic1,图片数据pic2和pic3。随后,用户从家里转移到游乐园,在游乐园,用户利用照相机1产生了三条图片数据,即图片数据pic4,pic5和pic6。之后,用户从游乐园转移到饭店,在饭店,用户用照相机1产生了四条图片数据,即图片数据pic7,pic8,pic9和pic10。最后,用户从饭店转移到旅馆,在旅馆,用户利用照相机1产生了两条图片数据,即图片数据pic11和pic12。
当通过如上所述的拍摄操作,产生12条图片数据,即图片数据pic1-pic12时,可依据事件组织这12条图片数据pic1-pic12,以便允许搜索它们,以容易地寻找所需的一条图片数据。
更具体地说,例如,通过在家里进行的拍摄操作而产生的三条图片数据,即图片数据pic1,pic2和pic3被集中到一个丛集中。出于同样的原因,在游乐园产生的三条图片数据,即图片数据pic4,pic5和pic6被集中到另一丛集中。按照相同的方式,在饭店产生的四条图片数据,即图片数据pic7,pic8,pic9和pic10被集中到另一丛集中。同样地,在旅馆产生的两条图片数据,即图片数据pic11和pic12被集中到又一丛集中。
我们假定在家里产生三条图片数据,即图片数据pic1-pic3的拍摄操作和在游乐园产生三条图片数据,即图片数据pic4-pic6的拍摄操作是在同一天进行的。出于同样的原因,我们假定在饭店产生四条图片数据,即图片数据pic7-pic10的拍摄操作和在旅馆产生两条图片数据,即图片数据pic11和pic12的拍摄操作是在其它天进行的。这种情况下,在家里产生的三条图片数据,即图片数据pic1-pic3和在游乐园产生的三条图片数据,即图片数据pic4-pic6可被集中到同一丛集中,以致允许容易地搜索它们,以寻找所需的一条图片数据。
我们另外假定通过在家里进行的拍摄操作而产生的三条图片数据,即图片数据pic1,pic2和pic3中的两条图片数据,即图片数据pic1和pic2是在彼此接近的拍摄时间和同样彼此接近的拍摄地点产生的图片数据。即,图片数据pic3是在与这两条图片数据,即图片数据pic1和pic2的拍摄时间和拍摄地点分离的拍摄时间和拍摄地点产生的图片数据。这种情况下,这三条图片数据,即图片数据pic1,pic2和pic3可被集中到相同的第一丛集中,除此之外,在彼此接近的拍摄时间和拍摄地点产生的两条图片数据,即图片数据pic1和pic2还可被集中到相同的第二丛集中,以便允许容易地搜索它们,寻找所需的图片数据。
如上所述,在分层群集处理中,根据多条图片数据之间的距离,多条图片数据被群集到相同的丛集中。更具体地说,彼此之间隔开较短距离的图片数据被群集到相同的丛集中。距离以一般表示时间和/或空间接近度(或远离度)的距离标度为基础。更具体地说,距离是指示图片数据之间的时间或空间不一致性的非相似度。
当在分层群集处理中只存在两个图片数据pic1和pic2时,这两条图片数据,即图片数据pic1和pic2被群集到相同的丛集中,即使图片数据pic1和pic2彼此隔开较远的距离。如果另外向图片数据pic1和pic2中加入与这两个图片数据pic1和pic2间隔较远距离的图片数据pic3,那么这三条图片数据,即图片数据pic1-pic3被群集到具有较大规模的另一丛集中,同时图片数据pic1和pic2原样保持被群集在相同丛集中的状态。
丛集规模是用距离标度定义为图片数据空间的空间中的丛集的数量。一般来说,丛集的规模对应于该丛集中间隔距离最大的两条图片数据之间的距离。
另一方面,如果另外向图片数据pic1和pic2中加入与图片数据pic2的距离小于其与图片数据pic1的距离的图片数据pic3,那么彼此相对接近的图片数据pic2和pic3被群集到相同的丛集中。另外,在图片数据pic2和pic3原样保持被群集在相同丛集中的状态的情况下,图片数据pic1-pic3被群集到规模更大的另一丛集中。
如上所述,在分层群集处理中,在多条图片数据原样保持按照拍摄日期/时间的顺序排列成阵列的状态的情况下,彼此间隔较短距离的多条图片数据被群集到规模较小的丛集中,而彼此间隔较长距离的多条图片数据被群集到规模较大的另一丛集中。
在分层群集处理中,在多条图片数据原样保持按照拍摄日期/时间的顺序排列成阵列的状态的情况下,彼此间隔较短距离的多条图片数据被群集到同一丛集中。于是,考虑按照拍摄日期/时间的顺序排列的图片数据的阵列中彼此邻近的任意两条图片数据的距离。彼此间隔较短距离的图片数据被群集到规模较小的丛集中。
从而,按照分层群集处理,作为一个例子,由前面参考图5解释的拍摄操作产生的12条图片数据,即图片数据pic1-pic12一般被群集到图6中所示的丛集中。
如图6中所示,12条图片数据,即图片数据pic1-pic12被按照从左到右的顺序排列成阵列,并被群集到最大规模的丛集中,该丛集是对应于根节点N11的丛集,所述从左到右的顺序表示拍摄日期/时间的顺序。
在群集到对应于的根节点N11的丛集中的图片数据pic1-pic12中的任意两条相邻的图片数据之间的距离中,两条相邻的图片数据,即图片数据pic10和pic11之间的距离最长。更具体地说,这两条相邻的图片数据,即图片数据pic10和pic11之间的距离比位于图片数据pic11左侧的10条图片数据,即图片数据pic1-pic10中的任何其它两条相邻的图片数据之间的距离长。这10条图片数据,即图片数据pic1-pic10是12条图片数据,即图片数据pic1-pic12中,在较早的拍摄日期/时间产生的多条图片数据。另外,这两条相邻的图片数据,即图片数据pic10和pic11之间的距离也比位于图片数据pic10右侧的两条相邻的图片数据,即图片数据pic11和pic12之间的距离长。这两条图片数据,即图片数据pic11和pic12是12条图片数据,即图片数据pic1-pic12中,在更迟的拍摄日期/时间产生的图片数据。
由于上述原因,作为具有较短图片间距离的特定多条图片,在这12条图片数据,即图片数据pic1-pic12中选择的特定多条相邻的图片数据,即图片数据pic1-pic10被群集到与节点N21相关的丛集中,作为规模比与根节点N11相关的丛集小的丛集,节点N21充当根节点N11的一个子节点。图片间距离被定义为彼此相邻的两条图片数据之间的距离。出于同样的原因,作为具有较短图片间距离的特定多条图片,在这12条图片数据,即图片数据pic1-pic12中选择的特定多条相邻的图片数据,即图片数据pic11和pic12被群集到与节点N22相关的丛集中,作为规模比与根节点N11相关的丛集小的丛集,节点N22充当根节点N11的另一子节点。
另外,在群集到与节点N22相关的丛集中的图片数据pic11和图片数据pic12中选择的图片数据pic11被群集到与节点N33相关的丛集中,节点N33对应于充当节点N22的一个子节点的叶节点。出于同样的原因,在图片数据pic11和pic12中选择的图片数据pic12被群集到与节点N34相关的丛集中,节点N34对应于充当节点N22的另一子节点的叶节点。
在群集到对应于节点N21的丛集中的10条图片数据,即图片数据pic1-pic10中的任意两条相邻的图片数据之间的距离中,两条相邻的图片数据,即图片数据pic6和pic7之间的距离最长。更具体地说,两条相邻的图片数据,即图片数据pic6和pic7之间的距离比位于图片数据pic7左侧的6条图片数据,即图片数据pic1-pic6中的任意两条相邻图片数据之间的距离长。这6条图片数据,即图片数据pic1-pic6是这10条图片数据,即图片数据pic1-pic10中,在较早的拍摄日期/时间产生的图片数据。另外,这两条相邻的图片数据,即图片数据pic6和pic7之间的距离也比位于图片数据pic6右侧的4条图片数据,即图片数据pic7-pic10之间的距离长。这4条图片数据,即图片数据pic7-pic10是10条图片数据,即图片数据pic1-pic10中,在更迟的拍摄日期/时间产生的图片数据。
由于上述原因,作为具有较短图片间距离的特定多条图片,在这10条图片数据,即图片数据pic1-pic10中选择的特定多条相邻的图片数据,即图片数据pic1-pic6被群集到与节点N31相关的丛集中,作为规模比与节点N21相关的丛集小的丛集,节点N31充当节点N21的一个子节点。出于同样的原因,作为具有较短图片间距离的特定多条图片,在这10条图片数据,即图片数据pic1-pic10中选择的特定多条相邻的图片数据,即图片数据pic7-pic10被群集到与节点N32相关的丛集中,作为规模比与节点N21相关的丛集小的丛集,节点N32充当节点N21的另一子节点。
之后,按照相同的方式,在图6中所示的丛集树中,特定多条相邻的图片数据,即,图片数据pic1-pic3被群集到与节点N41相关的丛集中,作为规模比与节点N31相关的丛集小的丛集。同样地,图片数据pic4-pic6被群集到与节点N42相关的丛集中,作为规模比与节点N31相关的丛集小的丛集。图片数据pic7-pic9被群集到与节点N43相关的丛集中,作为规模比与节点N32相关的丛集小的丛集。图片数据pic10被群集到与节点N44相关的丛集中,作为规模比与节点N32相关的丛集小的丛集。
另外,图片数据pic1和pic2被群集到与节点N51相关的丛集中,作为具有较小规模的丛集。图片数据pic3被群集到与节点(叶节点)N52相关的丛集中,作为具有较小规模的丛集。图片数据pic4和pic5被群集到与节点N53相关的丛集中,作为具有较小规模的丛集。图片数据pic6被群集到与节点(叶节点)N54相关的丛集中,作为具有较小规模的丛集。图片数据pic7被群集到与节点(叶节点)N55相关的丛集中,作为具有较小规模的丛集。图片数据pic8和pic9被群集到与节点N56相关的丛集中,作为具有较小规模的丛集。
此外,图片数据pic1被群集到与节点(叶节点)N61相关的丛集中,作为具有较小规模的丛集。图片数据pic2被群集到与节点(叶节点)N62相关的丛集中,作为具有较小规模的丛集。图片数据pic4被群集到与节点(叶节点)N63相关的丛集中,作为具有较小规模的丛集。图片数据pic5被群集到与节点(叶节点)N64相关的丛集中,作为具有较小规模的丛集。图片数据pic8被群集到与节点(叶节点)N65相关的丛集中,作为具有较小规模的丛集。图片数据pic9被群集到与节点(叶节点)N66相关的丛集中,作为具有较小规模的丛集。
从而,在图6中所示的丛集树中,通过在家里进行的拍摄操作而产生的三条图片数据,即图片数据pic1,pic2和pic3一般被群集到与节点N41相关的丛集中。通过在游乐园进行的拍摄操作而产生的三条图片数据,即图片数据pic4,pic5和pic6一般被群集到与节点N42相关的丛集中。通过在饭店进行的拍摄操作而产生的四条图片数据,即图片数据pic7,pic8,pic9和pic10一般被群集到与节点N32相关的丛集中。通过在旅馆进行的拍摄操作而产生的两条图片数据,即图片数据pic11和pic12一般被群集到与节点N22相关的丛集中。
在上面的典型丛集树中,例如,作为图片间距离较短的特定多条图片数据,在由在饭店进行的拍摄操作产生的并被群集到与节点N32相关的丛集中的四条图片数据,即图片数据pic7-pic10中选择的3条相邻图片数据,即图片数据pic7-pic9被群集到与节点N43相关的丛集中,节点N43充当节点N32的一个子节点。另外,作为另一例子,作为图片间距离较短的特定多条图片数据,在群集到与节点N43相关的丛集中的三条图片数据,即图片数据pic7-pic9中选择的两条相邻图片数据,即图片数据pic8和图片数据pic9被群集到与节点N56相关的丛集中,节点N56充当节点N43的一个子节点。
作为用于表示图片数据pic#i和pic#j之间的时间和空间接近度的距离标度,可以采用按照等式(2)或(3)定义距离dpic(i,j)的距离标度。
dpic(i,j)=α|t(i)-t(j)+β(|px(i)-px(j)|+|py(i)-py(j)|)+γ|v(i,j)| (2)dpic(i,j)=(α(t(i)-t(j))2+β((px(i)-px(j))2+(py(i)-py(j))2)+γ(v(i,j))2) (3)在等式(2)和(3)中,符号t(i)表示图片数据pic#i的拍摄日期/时间。符号px(i)和py(i)分别表示图片数据pic#i的拍摄地点的x和y坐标。符号v(i,j)表示在产生图片数据pic#i的拍摄操作和产生图片数据pic#j的拍摄操作之间照相机1的速度。速度v(i,j)由下面的等式(4)表示v(i,j)=((px(i)-px(j))2+(py(i)-py(j))2)/(t(j)-t(i)) (4)等式(2)和(3)中使用的符号α,β和γ都表示设为恰当值的加权系数。
等式(2)和(3)中使用的加权系数α,β和γ中的一个或两个可被设为0。例如,如果加权系数α被设为0,那么距离dpic(i,j)的值与项|t(i)-t(j)|无关,项|t(i)-t(j)|表示产生图片数据pic#i的拍摄操作与产生图片数据pic#j的拍摄操作之间的时间(或者时间距离)。另一方面,如果加权系数β被设为0,那么距离dpic(i,j)的值与项((px(i)-px(j))2+(py(i)-py(j))2)无关,项((px(i)-px(j))2+(py(i)-py(j))2)表示产生图片数据pic#i的拍摄操作与产生图片数据pic#j的拍摄操作之间的空间距离。如果加权系数γ被设为0,那么距离dpic(i,j)的值与项v(i,j)无关,项v(i,j)表示在产生图片数据pic#i的拍摄操作与产生图片数据pic#j的拍摄操作之间照相机1的速度。
就分别与通过分层群集处理而获得的丛集树的节点对应的丛集来说,等式(5)定义对应于节点Ni的丛集Ci和与从节点Ni沿弧线下溯丛集树找不到的另一节点Nj对应的丛集Cj之间的距离dC(Ni,Nj)。
dC(Ni,Nj)=dpic(g,h) (5)等式(5)中使用的符号g和h均表示满足下面的等式(6)的一条图片数据。
(g,h)=argmin|t(g)-t(h)|,(g∈Ni,h∈Nj) (6)
等式(6)中使用的符号t(g)和t(h)分别表示图片数据pic#g和pic#h的拍摄日期/时间。符号g∈Ni指示图片数据pic#g是分配给从其沿弧线上溯丛集树可到达节点Ni的叶节点的图片数据。即,图片数据pic#g是属于(或者群集到)与节点Ni对应的丛集Ci的图片数据。出于同样的原因,符号h∈Nj指示图片数据pic#h是分配给从其沿弧线上溯丛集树可到达节点Nj的叶节点的图片数据。即,图片数据pic#h是属于(或者群集到)与节点Nj对应的丛集Cj的图片数据。符号argmin|t(g)-t(h)|表示使|t(g)-t(h)|的值最小化的g和h的值。从上面的说明可看出,g和h的值是分别用于识别图片数据pic#g和pic#h的数字。
从而,按照等式(5),丛集Ci和丛集Cj之间的距离dC(Ni,Nj)是分别属于丛集Ci和丛集Cj的,在拍摄日期/时间方面的差异最小的两条图片数据之间的距离。我们假定属于丛集Ci的图片数据的拍摄日期/时间都比属于丛集Cj的图片数据早。这种情况下,丛集Ci和丛集Cj之间的距离dC(Ni,Nj)是距离dpic(g,h)。距离dpic(g,h)是图片数据pic#g和pic#h之间的距离。在作为属于丛集Ci的图片数据,按照拍摄日期/时间的顺序排列的图片数据的阵列中,pic#g具有最晚的拍摄日期/时间。在作为属于丛集Cj的图片数据,按照拍摄日期/时间的顺序排列的图片数据的阵列中,pic#h具有最早的拍摄日期/时间。
要注意的是,在丛集树中,只有分配给叶节点的一条图片数据属于与该叶节点对应的丛集。如上所述,等式(5)描述的距离dC(Ni,Nj)是属于与节点Ni对应的丛集Ci的特定图片数据与属于与另一节点Nj对应的丛集Cj的特定图片数据之间的距离。从而,如果节点Ni和Nj都是叶节点,那么距离dC(Ni,Nj)是分配给叶节点Ni的唯一图片数据pic#i和分配给叶节点Nj的唯一图片数据pic#j之间的距离dpic(i,j)。为此,分配给叶节点Ni的图片数据pic#i和分配给叶节点Nj的图片数据pic#j之间的距离可被表示成利用图片数据pic#i和pic#j的距离dpic(i,j),或者利用节点Ni和节点Nj的距离dC(Ni,Nj)。
就对应于节点Ni的丛集Ci和对应于另一节点Nj的丛集Cj之间的距离dC(Ni,Nj)来说,我们假定其中节点Ni是叶节点,而节点Nj不是叶节点的情况。这种情况下,等式(5)表示的距离dC(Ni,Nj)是分配给节点Ni的图片数据pic#i与对应于节点Nj的丛集Cj之间的距离。图片数据pic#i与丛集Cj之间的距离dC(Ni,Nj)被计算为图片数据pic#i和图片数据pic#j之间的距离dpic(i,j)。在属于丛集Cj的图片数据中,图片数据pic#j被选为具有最接近图片数据pic#i的拍摄日期/时间的图片数据。
下面,参考图7-15,说明在分层群集处理中创建丛集树的过程的概要。
在分层群集处理中,新近要被群集的一条图片数据引起注意(或者被选择),作为注意数据picnew,注意数据picnew被分配给新的叶节点。
如果不存在进行分层群集处理的图片数据,即,如果注意数据picnew是充当分层群集处理的对象的第一条图片数据,那么丛集树的所选根节点还是注意数据picnew将被分配给的叶节点。
更具体地说,如图7的左侧所示,图片数据pic1是注意数据picnew。这种情况下,注意数据pic1被分配给新的叶节点N1,叶节点N1还充当丛集树的根节点。
另外如在图7的左侧所示,存在只包括向其分配图片数据pic1的根节点N1的丛集树。就这样的丛集树来说,当新的图片数据picnew被视为注意数据时,在分层群集处理中,在按照从左到右的顺序排列的图片数据的阵列中,检测注意数据picnew的位置,所述从左到右的顺序表示拍摄日期/时间的顺序。目前,多条图片数据的阵列只包括属于丛集树的图片数据pic1和注意数据picnew。图片数据pic1已被分配给丛集树中的一个叶节点。在下面的说明中,注意数据picnew在阵列中所处的位置被称为注意位置。
如果注意数据picnew的拍摄日期/时间晚于新的图片数据pic1的拍摄日期/时间,即,如果注意数据picnew比图片数据pic1更新,那么在图片数据pic1右侧的位置是注意位置,如图7的右上部所示。另一方面,如果注意数据picnew的拍摄日期/时间早于新的图片数据pic1的拍摄日期/时间,即,如果注意数据picnew不比图片数据pic1新,那么在图片数据pic1左侧的位置是注意位置,如图7的右下部所示。
从而,在分层群集处理中,新的叶节点N2被分配给注意数据picnew,并位于丛集树中的注意位置。即,如果在图片数据pic1右侧的位置是注意位置,如图7的右上部所示,那么分配给注意数据picnew的新的叶节点N2被布置在与分配给图片数据pic1的叶节点N1相邻的右侧位置。另一方面,如果在图片数据pic1左侧的位置是注意位置,如图7的右下部所示,那么分配给注意数据picnew的新的叶节点N2被布置在与分配给图片数据pic1的叶节点N1相邻的左侧位置。
随后,节点N3被增加到丛集树中,作为分配给图片数据pic1的叶节点N1和分配给注意数据picnew的叶节点N2的父节点。从而,如图7的右侧所示,分层群集处理产生由充当根节点的节点N3,分配给图片数据pic1的充当根节点N3的一个子节点的叶节点N1,和分配给注意数据picnew的充当根节点N3的另一子节点的叶节点N2组成的丛集树。
要注意的是,如果注意数据picnew的拍摄日期/时间晚于新的图片数据pic1的拍摄日期/时间,那么分配给注意数据picnew的新的叶节点N2被布置在与叶节点N1相邻的右侧位置,如图的右上部所示。从而,所得到的丛集树包括左侧的叶节点N1和右侧的叶节点N2。
另一方面,如果注意数据picnew的拍摄日期/时间早于新的图片数据pic1的拍摄日期/时间,那么分配给注意数据picnew的新的叶节点N2被布置在与叶节点N1相邻的左侧位置,如图的右下部所示。从而,所得到的丛集树包括左侧的叶节点N2和右侧的叶节点N1。
如前参考图2所述,在丛集树中,除了叶节点外的所有节点都具有两个子节点。在下面的说明中,布置在父节点左侧的子节点被简称为左节点。另一方面,布置在父节点右侧的子节点被简称为右节点。
要注意的是,丛集树的每个叶节点被分配给按照拍摄日期/时间的顺序排列的多条图片数据之一。现在关注充当一个节点的两个子节点的左节点和右节点。这种情况下,分配给可通过从左节点沿弧线下溯丛集树而到达的任何叶节点的图片数据的拍摄日期/时间早于分配给可通过从右节点沿弧线下溯丛集树而到达的任何叶节点的图片数据的拍摄日期/时间。反过来说,分配给可通过从右节点沿弧线下溯丛集树而到达的任何叶节点的图片数据的拍摄日期/时间晚于分配给可通过从左节点沿弧线下溯丛集树而到达的任何叶节点的图片数据的拍摄日期/时间。如果左节点是叶节点,那么可通过从左节点沿弧线下溯丛集树而到达的叶节点是左节点自己。出于同样的原因,如果右节点是叶节点,那么可通过从右节点沿弧线下溯丛集树而到达的叶节点是右节点自己。
图8左端的第一丛集树包括充当分配给拍摄日期/时间较早的图片数据pic1的叶节点的节点N1,充当分配给拍摄日期/时间较晚的图片数据pic2的叶节点的节点N2,和充当具有分别作为左节点和右节点的叶节点N1和N2的根节点的节点N3。我们假定注意数据picnew是新的图片数据,并被布置在按照拍摄日期/时间的顺序排列的图片数据的阵列中的注意位置上。除了已按照丛集树群集的图片数据pic1和pic2之外,该阵列还包括注意数据picnew。这种情况下,进行分层群集处理,以检测注意位置。
随后,在分层群集处理中,新的叶节点N4被分配给注意数据picnew,并被布置在检测到的注意位置。
例如,我们假定注意数据picnew的拍摄日期/时间晚于图片数据pic2拍摄日期/时间。这种情况下,在图片数据pic2右侧的位置被检测为注意数据。从而,分配给注意数据picnew的叶节点N4被布置在与分配给图片数据pic2的叶节点N2相邻的右侧位置,如图8中左端的第二个丛集树中所示。
随后,在分层群集处理中,找出处理注意数据picnew的候选丛集。该候选丛集是与注意数据picnew相邻的最大丛集,并且包括到注意数据picnew的距离最短的一条最接近图片数据。在下面的说明中,与注意数据picnew相邻的最大的邻近丛集都被称为注意数据picnew的邻近丛集。最接近的图片数据将在后面说明。
在图8左端的第二个丛集树中,与注意数据picnew相邻的丛集是对应于节点N3的丛集C3,和与叶节点N2对应的丛集C2。由于对应于节点N3的丛集C3是与注意数据picnew相邻的丛集中唯一的最大邻近丛集,因此丛集C3被视为候选丛集。
随后,进行分层群集处理,以便找出注意数据picnew与作为和注意数据picnew相邻的图片数据在属于候选丛集C3的图片数据中选择的pic2之间的距离dn。另外还进行分层群集处理,以找出属于候选丛集C3的任意两条相互相邻图片数据之间的距离的最大值(下面称为最大距离)dq。
作为和注意数据picnew相邻的图片数据,在属于候选丛集C3的图片数据中选择的图片数据是拍摄日期/时间与注意数据picnew的拍摄日期/时间最接近的图片数据。在图8中所示的情况下,图片数据pic2是丛集C3的唯一的最接近图片数据。从而,按照等式(2)或(3)得到距离dn,作为注意数据picnew与pic2之间的距离dpic(picnew,pic2)。
另外,由于图片数据pic1和pic2是唯一属于候选丛集C3的多条图片数据,因此按照等式(2)或(3)得到最大距离dq,作为图片数据pic1与pic2之间的距离dpic(pic1,pic2)。
如果注意数据picnew与属于候选丛集C3的最接近图片数据pic2之间的距离dn大于(或者至少等于)候选丛集C3中的最大距离dq,那么注意数据picnew被群集到不同于候选丛集C3的新丛集中。另外,该另一丛集的规模比丛集C3的规模大。为了把注意数据picnew群集到该另一丛集中,向丛集树增加一个对应于所述另一丛集的新节点。
即,为了把注意数据picnew群集到不同于候选丛集C3并且规模比丛集C3的规模大的丛集中,向丛集树增加一个新节点N5,所述节点N5以对应于丛集C3的节点N3作为一个子节点,以分配给注意数据picnew的叶节点N4作为另一子节点,如图8左端的第三个丛集树中所示。
从而,图8左端的第一个丛集被更新为图8左端的第四个丛集树,或者图8右端的第一个丛集树。第四个丛集树包括作为根节点的节点N5,作为根节点N5的左节点的节点N3,作为根节点N5的右节点的叶节点N4,作为节点N3的左节点的叶节点N1,和作为节点N3的右节点的叶节点N2。
如上所述,分配给注意数据picnew的叶节点N4被布置在与分配给图片数据pic2的叶节点N2相邻的右侧位置,如图8左端的第二个丛集树中所示。但是,我们假定注意数据picnew与属于候选丛集C3的最接近图片数据pic2之间的距离dn不大于(或者小于)候选丛集C3中的最大距离dq,如图9左端的第一个丛集树中所示。这种情况下,向丛集树增加一个新节点,作为与包括在候选丛集C3中的新丛集对应的节点。
即,如果注意数据picnew与属于候选丛集C3的最接近图片数据pic2之间的距离dn不大于候选丛集C3中的最大距离dq,那么注意数据picnew被群集到包含在候选丛集C3中的一个新丛集中。为了把注意数据picnew群集到新丛集中,向丛集树增加对应于该新丛集的一个新节点。
更具体地说,如图9左端的第二个丛集树中所示,新节点N5被增加到丛集树中,作为以叶节点N2为左节点,以分配给注意数据picnew的叶节点N4为右节点的节点。新节点N5被布置在对应于候选丛集C3的节点N3和叶节点N2(它是节点N3的两个子节点之一)之间的弧线上的某一位置。子节点N2位于分配给注意数据picnew的叶节点N4所处的一侧。
从而,图8左端的第一个丛集树被更新为图9左端的第三个丛集树或者图9右端的第一个丛集树。所述第三个丛集树包括作为根节点的节点N3,作为根节点N3的左节点的叶节点N1,作为根节点N3的右节点的节点N5,作为节点N5的左节点的叶节点N2,作为节点N5的右节点的叶节点N4。
作为另一例子,我们假定注意数据picnew的拍摄日期/时间晚于图片数据pic1的拍摄日期/时间,但是早于图片数据pic2的拍摄日期/时间。这种情况下,图片数据pic1和pic2之间的位置被检测为注意位置。从而,分配给注意数据picnew的叶节点N4被布置在分配给图片数据pic1的叶节点N1和分配给图片数据pic2的叶节点N2之间的一个位置上,如图10左端的第一个丛集树中所示。
从而,如前面参考图8所述,找出处理注意数据picnew的候选丛集。该候选丛集是与注意数据picnew相邻的最大丛集,包括到注意数据picnew的距离最短的最接近图片数据。
在图10左端的第一丛集树中,丛集是与邻近注意数据picnew的左侧的叶节点N1对应的丛集C1,和与右侧的叶节点N2对应的丛集C2。这种情况下,这两个丛集C1和C2都具有最大的邻近丛集。从而,从丛集C1和C2中选择候选丛集,作为包括到注意数据picnew的距离较短的最接近图片数据的候选丛集。
我们假定注意数据picnew与丛集C2中的最接近图片数据之间的距离小于注意数据picnew与丛集C1中的最接近图片数据之间的距离。这种情况下,丛集C2被视为候选丛集。
更具体地说,假定丛集C1中的最接近图片数据是图片数据pic1,而丛集C2中的最接近图片数据是图片数据pic2,注意数据picnew与pic2之间的距离小于注意数据picnew与pic1之间的距离,丛集C2被视为候选丛集。
如上所述,在分层群集处理中,得到注意数据picnew与候选丛集中的最接近图片数据之间的距离dn。另外如上所述,最接近图片数据被定义为作为与注意数据picnew相邻的图片数据,在属于候选丛集的图片数据中选择的一条图片数据。随后,得到表示候选丛集中的所有两条图片数据之间的距离的最大值的最大距离dq。这种情况下,由于充当候选丛集的丛集C2对应于分配给图片数据pic2的叶节点N2,因此图片数据pic2是属于候选丛集C2的唯一图片数据。候选丛集C2不包括除图片数据pic2外的任何图片数据。
这种情况下,一种新节点被增加到丛集树中,作为与新丛集对应的节点,以便包括属于候选丛集C2的图片数据pic2和注意数据picnew。
即,如果对应于候选丛集的节点是叶节点,那么一个新节点被增加到丛集树中,作为以对应于候选丛集的叶节点和分配给注意数据picnew的叶节点为子节点的节点。在图10中所示的丛集树中,新节点是节点N5,对应于候选丛集C2的叶节点是叶节点N2,分配给注意数据picnew的叶节点是叶节点N4。
更具体地说,如图10的左端的第二个丛集树中所示,新节点N5被增加到丛集树中,作为以对应于候选丛集C2的叶节点N2为右节点,以分配给注意数据picnew的的叶节点N4为左节点的节点。新节点N5被布置在目前充当叶节点N2的父节点的节点N3与叶节点N2间的弧线上的一个位置,充当叶节点N2的新的父节点和节点N3的子节点。
从而,图8左端的第一个丛集树被更新为图10左端的第三个丛集树或者图10右端的第一个丛集树。所述第三个丛集树包括作为根节点的节点N3,作为根节点N3的左节点的叶节点N1,作为根节点N3的右节点的节点N5,作为节点N5的左节点的叶节点N4,和作为节点N5的右节点的叶节点N2。
作为另一例子,我们假定注意数据picnew的拍摄日期/时间再次晚于图片数据pic1的拍摄日期/时间,但是早于图片数据pic2的拍摄日期/时间。但是,这种情况下,注意数据picnew与丛集C2中的最接近图片数据之间的距离大于注意数据picnew与丛集C1的最接近图片数据之间的距离,如图11左端的第一丛集树中所示。这种情况下,丛集C1被作为候选丛集。
更具体地说,丛集C1中的最接近图片数据是图片数据pic1,而丛集C2中的最接近图片数据是图片数据pic2,注意数据picnew与pic1之间的距离小于注意数据picnew与pic2之间的距离。这种情况下,丛集C1被作为候选丛集。
在这种情况下,由于充当候选丛集的丛集C1对应于分配给图片数据pic1的叶节点N1,因此图片数据pic1是属于候选丛集C1的唯一图片数据。从而,按照和前面参考图10说明的情况非常类似的方式,一个新节点被增加到丛集树中,作为对应于新丛集的节点,以便包括属于候选丛集C1的图片数据pic1和注意数据picnew。
即,如果对应于候选丛集的节点是叶节点,那么一个新节点被增加到丛集树中,作为以对应于候选丛集的叶节点和分配给注意数据picnew的叶节点为子节点的节点。在图11中所示的丛集树中,新节点是节点N5,对应于候选丛集C1的叶节点是叶节点N1,分配给注意数据picnew的叶节点是叶节点N4。
更具体地说,如图11左端的第二个丛集树中所示,新节点N5被增加到丛集树中,作为以对应于候选丛集C1的叶节点N1为左节点,以分配给注意数据picnew的的叶节点N4为右节点的节点。新节点N5被布置在目前充当叶节点N1的父节点的节点N3与叶节点N1间的弧线上的一个位置,充当叶节点N1的新的父节点和节点N3的子节点。
从而,图8左端的第一个丛集树被更新为图11左端的第三个丛集树或者图11右端的第一个丛集树。所述第三个丛集树包括作为根节点的节点N3,作为根节点N3的左节点的节点N5,作为根节点N3的右节点的叶节点N2,作为节点N5的左节点的叶节点N1,和作为节点N5的右节点的叶节点N4。
作为又一例子,我们假定注意数据picnew的拍摄日期/时间早于图片数据pic1的拍摄日期/时间。这种情况下,图片数据pic1左侧的位置被检测为注意位置。从而分配给注意数据picnew的叶节点N4被布置在分配给邻近图片数据pic1的叶节点N1的左侧位置,如图12左端的第一个丛集树中所示。
从而,在分层群集处理中,如上所述,找出处理注意数据picnew的候选丛集。该候选丛集是与注意数据picnew相邻的最大丛集,包括到注意数据picnew的距离最短的最接近图片数据。
在图12左端的第一丛集树中,邻近注意数据picnew的丛集是对应于节点N3的丛集C3,和对应于叶节点N1的丛集C1。由于对应于节点N3的丛集C3是与注意数据picnew相邻的丛集中唯一的最大邻近丛集,因此丛集C3被作为候选丛集。
随后,进行分层群集处理,找出注意数据picnew与充当候选丛集C3中的最接近图片数据的pic1之间的距离dn。另外还进行分层群集处理,以找出候选丛集C3中的任意两条图片数据中,两条图片数据之间的最大距离dq。在图12中所示的丛集树中,最大距离dq是图片数据pic1和pic2之间的距离。
如果注意数据picnew与充当候选丛集C3中的最接近图片数据的pic1之间的距离dn大于候选丛集C3中的最大距离dq,那么注意数据picnew被群集到不同于候选丛集C3的丛集中。该另一丛集的规模大于丛集C3的规模,以便包括丛集C3,和图8中所示的丛集树的情况一样。为了把注意数据picnew群集到这样的另一丛集中,一个对应于该另一丛集的新节点被增加到丛集树中。
即,为了把注意数据picnew群集到不同于候选丛集C3,并且规模比丛集C3大的丛集中,一个新节点N5被增加到丛集树中,作为以对应于丛集C3的节点N3作为其中一个子节点,以分配给注意数据picnew的叶节点N4为另一子节点的节点,如图12左端的第二个丛集树中所示。
从而,图8左端的第一个丛集树被更新为图12左端的第三个丛集树或者图12右端的第一个丛集树。所述第三个丛集树包括作为根节点的节点N5,作为根节点N5的左节点的叶节点N4,作为根节点N5的右节点的节点N3,作为节点N3的左节点的叶节点N1,作为节点N3的右节点的叶节点N2。
如上所述,分配给注意数据picnew的叶节点N4被布置在邻近分配给图片数据pic1的叶节点N1的左侧位置,如图12左端的第一个丛集树中所示。但是,我们假定注意数据picnew与属于候选丛集C3的最接近图片数据pic1之间的距离dn不大于候选丛集C3中的最大距离dq,如图13左端的第一个丛集树中所示。这种情况下,一个新节点被增加到丛集树中,作为与包括在候选丛集C3中的新丛集对应的节点。
即,如果注意数据picnew与属于候选丛集C3的最接近图片数据pic1之间的距离dn不大于候选丛集C3中的最大距离dq,那么注意数据picnew被群集到包含在候选丛集C3的新丛集中。为了把注意数据picnew群集到新丛集中,对应于新丛集的新节点被增加到丛集树中。
更具体地说,如图13左端的第二个丛集树中所示,新节点N5被增加到丛集树中,作为以叶节点N1为右节点,以分配给注意数据picnew的的叶节点N4为左节点的节点。新节点N5被布置在对应于候选丛集C3的节点N3与叶节点N1(它是节点N3的两个子节点之一)之间的弧线上的一个位置。节点N1是分配给注意数据picnew的叶节点N4所在的一侧上的子节点。
从而,图8左端的第一个丛集树被更新为图13左端的第三个丛集树或者图13右端的第一个丛集树。所述第三个丛集树包括作为根节点的节点N3,作为根节点N3的左节点的节点N5,作为根节点N3的右节点的叶节点N2,作为节点N5的左节点的叶节点N4,和作为节点N5的右节点的叶节点N1。
接下来,图14左端的第一个丛集树包括充当分别分配给按照从左到右的顺序排列的图片数据pic1-pic3的叶节点N1,N2和N3的节点,所述从左到右的顺序表示拍摄日期/时间的顺序。该丛集树还包括分别以节点N2和N3作为左节点和右节点的节点N4。另外,该丛集树还包括节点N5,充当分别以节点N1和N4作为左节点和右节点的根节点。从而,当在分层群集处理中,作为注意数据picnew加入新的图片数据时,在注意数据picnew和已按照从左到右的顺序,根据丛集树群集的pic1-pic3的阵列中,检测注意数据picnew的位置,所述从左到右的顺序表示拍摄日期/时间的顺序。
从而,在分层群集处理中,新的叶节点N6被分配给注意数据picnew,并被布置在检测到的注意位置。
例如,我们假定注意数据picnew的拍摄日期/时间晚于图片数据pic1的拍摄日期/时间,但是早于图片数据pic2的拍摄日期/时间。这种情况下,图片数据pic1和pic2之间的一个位置被检测为注意位置。从而,分配给注意数据picnew的叶节点N6被布置在分配给图片数据pic1的叶节点N1与分配给图片数据pic2的叶节点N2之间的一个位置上,如图14左端的第二个丛集树中所示。
从而,如前参考图8所述,找出处理注意数据picnew的候选丛集。该候选丛集是与注意数据picnew相邻的最大丛集,包括到注意数据picnew的距离最短的最接近图片数据。
在图14左端的第二个丛集树中,与注意数据picnew相邻的丛集是对应于叶节点N1的丛集C1,对应于节点N2的丛集C2,和包括在丛集C4中的丛集C4。
在如上所述的包括节点N1,N2和N4的丛集树中,节点N1和N4是布置在相同层上的分别对应于最大的邻近丛集C1和C4的节点。另一方面,叶节点N2是布置在比节点N1和N4的层次低一级的层次上的对应于丛集C2的节点。即,在图14中所示的丛集树中,与邻近注意数据picnew的左侧叶节点N1对应的丛集C1和与邻近注意数据picnew的右侧节点N4对应的丛集C4是邻近注意数据picnew的最大邻近丛集。
从而,从丛集C1和C4选择一个候选丛集,作为包括到注意数据picnew的距离较短的最接近图片数据的候选丛集。在图14中所示的丛集树中,丛集C1中的最接近图片数据是邻近注意数据picnew的左侧的图片数据pic1。另一方面,丛集C4中的最接近图片数据是邻近注意数据picnew的右侧的图片数据pic2。
我们假定注意数据picnew与包括在丛集C1中的最接近图片数据之间的距离小于注意数据picnew与包括在丛集C4中的最接近图片数据之间的距离。即,注意数据picnew与包括在丛集C1中的pic1之间的距离小于(或不大于)注意数据picnew与包括在丛集C4中的pic2之间的距离。这种情况下,丛集C1被作为候选丛集。
由于充当候选丛集的丛集C1对应于分配给图片数据pic1的叶节点N1,因此图片数据pic1是属于候选丛集C1的唯一图片数据。这种情况下,出于前面参考图10和11说明的相同原因,一个新节点被增加到丛集树中,作为与包括注意数据picnew和属于候选丛集C1的pic1的新丛集对应的节点。
即,新节点N7被增加到丛集树中,作为以充当对应于候选丛集C1的叶节点的叶节点N1为其中一个子节点,以分配给注意数据picnew的叶节点N6为另一子节点的节点。
更具体地说,如图14左端的第三个丛集树中所示,新节点N7被增加到丛集树中,作为以对应于候选丛集C1的叶节点N1为左节点,以分配给注意数据picnew的的叶节点N6为右节点的节点。新节点N7被布置在目标充当叶节点N1的父节点的节点N5和叶节点N1间的弧线上的一个位置,以便充当叶节点N1的新的父节点,和节点N5的子节点。
作为另一例子,我们假定注意数据picnew与包括在丛集C1中的最接近图片数据之间的距离大于(或不小于)注意数据picnew与包括在丛集C4中的最接近图片数据之间的距离。即,注意数据picnew与包括在丛集C1中的pic1之间的距离大于(或不小于)注意数据picnew与包括在丛集C4中的pic2之间的距离。这种情况下,丛集C4被作为候选丛集。
但是,在图14中所示的丛集树中,与选为候选丛集的丛集C4对应的节点N4不是叶节点。从而,这种情况下,如前参考图9所述,进行分层群集处理,得到注意数据picnew与候选丛集C4的最接近图片数据之间的距离dn。另外还进行分层群集处理,以得到候选丛集C4中的任意两条图片数据中的两条图片数据之间的最大距离dq。
在图14中所示的丛集树中,候选丛集C4的最接近图片数据是图片数据pic2。从而,如图14左端的第二丛集树中所示,距离dn是注意数据picnew与pic2之间的距离dpic(picnew,pic2)。另一方面,最大距离dq是图片数据pic2和pic3之间的距离dpic(pic2,pic3),因为候选丛集C4只包括图片数据pic2和pic3。
如果注意数据picnew与候选丛集C4中充当最接近图片数据的pic2之间的距离dn大于候选丛集C4中的最大距离dq,那么注意数据picnew被群集到不同于候选丛集C4的一个丛集中。该另一丛集的规模比丛集C4的大,和图8中所示的丛集树的情况一样。为了把注意数据picnew群集到这样的另一丛集中,与所述另一丛集对应的一个新节点被增加到丛集树中。
即,为了把注意数据picnew群集到不同于候选丛集C4,并且规模比候选丛集C4大的一个丛集中,一个新节点N8被增加到丛集树中,作为以对应于丛集C4的节点N4为其中一个子节点,以分配给注意数据picnew的叶节点N6为另一子节点的节点,如图14左端的第三个丛集树中所示。加入的新节点N8被布置在与候选丛集C4对应的节点N4和目前充当节点N4的父节点的节点N5之间的弧线上的一个位置,以充当节点N5的子节点,和节点N4的新的父节点。
作为另一例子,我们假定在图14左端的第二个丛集树中,注意数据picnew与充当候选丛集C4中的最接近图片数据的pic2之间的距离dn不大于候选丛集C4中的最大距离dq。这种情况下,一个新节点被增加到丛集树中,作为与新丛集对应的节点,以便包括属于候选丛集C4的图片数据pic2和注意数据picnew。
即,如果注意数据picnew与充当候选丛集C4中的最接近图片数据的pic2之间的距离dn不大于候选丛集C4中的最大距离dq,那么一个新节点被增加到丛集树中,作为与包括候选丛集C4的丛集对应节点,以便把注意数据picnew群集到候选丛集C4中。
更具体地说,如图14左端的第三个丛集树中所示,新节点N9被增加到丛集树中,作为以叶节点N2为右节点,以分配给注意数据picnew的叶节点N6为左节点的节点。新节点N9被布置在对应于候选丛集C4的节点N4和叶节点N2(它是节点N4的两个子节点之一)之间的弧线上的一个位置。节点N2是在分配给注意数据picnew的叶节点N6所在的一侧的子节点。
图15表示在把图14左端的第三个丛集树中所示的新节点N7,N8和N9增加到图14左端的第一个丛集树中的处理中涉及的丛集树。
更具体地说,图15顶部的第一行表示在把图14左端的第三个丛集树中所示的新节点N7增加到图14左端的第一个丛集树中的处理中涉及的丛集树。
这种情况下,新节点N7被增加到丛集树中,作为以分配给注意数据picnew的叶节点N6为其中一个子节点,以对应于候选丛集C1的叶节点N1为另一子节点,并且以节点N5为父节点的节点,如在图15顶部第一行的左侧的丛集树中所示。
从而,图14左端的第一个丛集树被更新为在图15顶部第一行的右侧的丛集树。在图15顶部第一行的右侧的丛集树包括作为根节点的节点N5,作为根节点N5的左节点的节点N7,作为根节点N5的右节点的节点N4,作为节点N7的左节点的叶节点N1,作为节点N7的右节点的叶节点N6,作为节点N4的左节点的叶节点N2,作为节点N4的右节点的叶节点N3。
图15顶部的第二行表示在把图14左端的第三个丛集树中所示的新节点N8增加到图14左端的第一个丛集树中的处理中涉及的丛集树。
这种情况下,新节点N8被增加到丛集树中,作为以分配给注意数据picnew的叶节点N6为其中一个子节点,以对应于候选丛集C4的叶节点N4为另一子节点,并且以节点N5为父节点的节点,如在图15顶部第二行的左侧的丛集树中所示。
从而,图14左端的第一个丛集树被更新为在图15顶部第二行的右侧的丛集树。在图15顶部第二行的右侧的丛集树包括作为根节点的节点N5,作为根节点N5的左节点的叶节点N1,作为根节点N5的右节点的节点N8,作为节点N8的左节点的叶节点N6,作为节点N8的右节点的节点N4,作为节点N4的左节点的叶节点N2,作为节点N4的右节点的叶节点N3。
图15顶部的第三行表示在把图14左端的第三个丛集树中所示的新节点N9增加到图14左端的第一个丛集树中的处理中涉及的丛集树。
这种情况下,新节点N9被增加到丛集树中,作为以分配给注意数据picnew的叶节点N6为其中一个子节点,以叶节点N2为另一子节点,并以对应于候选丛集C4的节点N4为父节点的节点。
从而,图14左端的第一个丛集树被更新为在图15顶部第三行的右侧的丛集树。在图15顶部第三行的右侧的丛集树包括作为根节点的节点N5,作为根节点N5的左节点的叶节点N1,作为根节点N5的右节点的节点N4,作为节点N4的左节点的节点N9,作为节点N4的右节点的叶节点N3,作为节点N9的左节点的叶节点N6,作为节点N9的右节点的叶节点N2。
图16表示群集设备13的典型结构。
如图16中所示,群集设备13包括元数据读取部分20和树形结构处理部分22。
元数据读取部分20是通过从数据存储设备12读出元数据,并把获得的元数据提供给树形结构处理部分22,以获得注意数据picnew的元数据的部分。
如前所述,注意数据picnew在按照从左到右的顺序排列的处理对象图片数据的阵列中的位置被称为注意位置,所述从左到右的顺序表示包括在元数据中的拍摄日期/时间的顺序。处理对象图片数据是分层群集处理的对象。处理对象图片数据包括已按照保存在丛集树存储设备14中的丛集树群集的图片数据,以及注意数据picnew。
树形结构处理部分22是进行下述树形结构处理的部分。根据元数据,树形结构处理部分22得到第二距离dn和第一距离,所述第一距离是前面说明的最大距离dq。随后,根据第一距离dq和第二距离dn,树形结构处理部分22把新节点Nin增加到保存在丛集树存储设备14中的丛集树中,作为以分配给注意数据picnew的叶节点Nnew为其一个子节点的节点。在下面的说明中,分配给注意数据picnew的叶节点Nnew被称为注意叶节点Nnew。第二距离dn是基于预定距离标度的,注意数据picnew与候选丛集中的最接近图片数据之间的距离。在与包含在保存于丛集树存储设备14中的丛集树中的节点对应的丛集中选择候选丛集,作为与布置在注意位置的注意数据picnew邻近的丛集。第一距离dq是属于最终选择的候选丛集的任意两条互相邻近的图片数据之间的距离的最大值。
具体地说,如前参考图7-15所述,根据元数据,树形结构处理部分22把在属于候选丛集的图片数据中选择的最接近图片数据视为与注意数据picnew邻近的图片数据。即,最接近的图片数据是具有与注意数据picnew最接近的拍摄日期/时间的图片数据。用作识别最接近的图片数据的基础的元数据包括分配给保存在丛集树存储设备14中的丛集树的叶节点的多条图片数据的元数据,以及从元数据读取部分20接收的注意数据picnew的元数据。随后,树形结构处理部分22根据最接近图片数据的拍摄日期/时间和拍摄地点,以及注意数据picnew的拍摄日期/时间和拍摄地点,按照等式(2)或(3),以最接近图片数据和注意数据picnew之间的距离dpic()的形式得到第二距离dn。最接近图片数据的拍摄日期/时间和拍摄地点,以及注意数据picnew的拍摄日期/时间和拍摄地点分别包括在最接近图片数据的元数据和注意数据picnew的元数据中。树形结构处理部分22还得到候选丛集中的所有两条相邻的图片数据之间的距离中的第一(最长的)距离dq。另外根据拍摄日期/时间和拍摄地点,按照等式(2)或(3)得到候选丛集中的所有两条相邻的图片数据之间的每个距离。拍摄日期/时间和拍摄地点包括在群集到候选丛集中的多条图片数据的元数据中。随后,根据第二距离dn和第一(最长的)距离dq,树形结构处理部分22把新节点Nin增加到保存于丛集树存储设备14中的当前丛集树中,作为以分配给注意数据picnew的注意叶节点Nnew为其子节点之一的节点。这样,树形结构处理部分22创建一个新的丛集树。即,树形结构处理部分22把当前的丛集树更新为新的丛集树,并把关于当前丛集树的新的丛集树保存在丛集树存储设备14中。
下面参考图17中所示的流程图,说明由图16中所示的群集设备13进行的处理。
该流程图从步骤S1开始,在步骤S1,在群集设备13中采用树形结构处理部分22确定丛集树是否要被初始化。
如果例如根据用户在操作单元17上进行的向信息处理设备2请求初始化丛集树的操作,在步骤S1产生的确定结果指出丛集树将被初始化,那么处理流程进入步骤S2,在步骤S2,树形结构处理部分22初始化丛集树,并把通过对初始化前的丛集树进行初始化而获得的丛集树保存在丛集树存储设备14中。随后,处理流程进入下一步骤S3。
具体地说,符号Nroot表示代表丛集树的根节点Nroot的变量。另外,符号l(N)表示代表节点N的左节点的变量,符号r(N)表示代表节点N的右节点的变量。这种情况下,在步骤S2,树形结构处理部分22把根节点Nroot的左节点l(Nroot)和右节点r(Nroot)中的每个都设为零(NULL)值,指示左节点和右节点不存在。
另一方面,如果在步骤S1产生的确定结果指示丛集树将不被初始化,例如用户没有在操作单元17上进行请求初始化丛集树的任何操作,那么处理流程跳过步骤S2,直接进入步骤S3。在步骤S3,元数据读取部分20查阅丛集树存储设备14,以便确定数据存储设备12是否包含还没有利用丛集树群集的图片数据。
如果在步骤S3产生的确定结果指示数据存储设备12包含还没有利用丛集树群集的图片数据,那么处理流程进入步骤S4,在步骤S4,元数据读取部分20把保存在数据存储设备12中但是还未被群集到丛集树中的一条图片数据选为注意数据picnew。随后,处理流程进入步骤S5。
在步骤S5,群集设备13创建一个新的丛集树,用于群集处理对象多条图片数据,所述处理对象多条图片数据都是分层群集处理的对象。分层群集处理的对象是已利用保存在丛集树存储设备14中的当前丛集树群集的多条图片数据和注意数据picnew。创建的丛集树被用作保存在丛集树存储设备14中的当前丛集树的更新丛集树。随后,处理流程返回步骤S3。
另一方面,如果在步骤S3产生的确定结果指示数据存储设备12不再包含还未利用丛集树群集的图片数据,即,如果已利用丛集树群集了保存在数据存储设备12中的所有图片数据,那么结束处理。
随后,参考图18中所示的流程图,说明在图17中所示的流程图的步骤S5,由图16中所示的群集设备13进行的群集处理。
表现群集处理的该流程图从步骤S11开始,在步骤S11,元数据读取部分20通过从数据存储设备12读出元数据,获得注意数据picnew的元数据,并把元数据提供给树形结构处理部分22。随后,处理流程进入步骤S12。
树形结构处理部分22是进行下述树形结构处理的部分。在步骤S12,根据处理对象图片数据的元数据,树形结构处理部分22得到前面说明的距离dn和最大距离dq。处理对象图片数据是已按照保存在丛集树存储设备14中的丛集树群集的多条图片数据,以及位于按照从左到右的顺序排列的处理对象图片数据的阵列中注意位置的注意数据picnew,所述从左到右的顺序表示包括在元数据中的拍摄日期/时间的顺序。随后,根据距离dq和距离dn,树形结构处理部分22把新节点Nin增加到保存在丛集树存储设备14中的丛集树中,作为以分配给注意数据picnew的注意叶节点Nnew为其子节点之一的节点。距离dn是基于预定距离标度的,注意数据picnew与候选丛集中的最接近图片数据之间的距离。第一距离dq是属于选择的候选丛集的任何两条相互相邻图片数据间的距离的最大值。在进行树形结构处理之后,处理的控制返回到调用程序。即,该处理的执行被终止。
图19表示图16中所示的树形结构处理部分22的典型结构,该树形结构处理部分22用于执行图18中所示的流程图的步骤S12的树形结构处理。
如图19中所示,树形结构处理部分22包括分支节点搜索部分31和节点增加部分32。
分支节点搜索部分31根据从元数据读取部分20接收的注意数据picnew的元数据和保存在丛集树存储设备14中的丛集树,进行分支节点搜索处理,搜索丛集树以寻找分支节点,并把通过分支节点搜索处理获得的分支节点提供给节点增加部分32。分支节点是以对应于最大的邻近丛集的节点为子节点的节点。最大的邻近丛集是在邻近注意数据picnew的左侧或右侧的丛集,注意数据picnew被布置在按照从左到右的顺序排列的处理对象图片数据的阵列中的注意位置上,所述从左到右的顺序代表拍摄日期/时间的顺序。
节点增加部分32包括距离计算部分41、确定部分42和增加部分43,节点增加部分32根据从分支节点搜索部分31接收的分支节点,和从元数据读取部分20接收的注意数据picnew的元数据,进行节点增加处理,以便把新节点Nin增加到保存在丛集树存储设备14中的丛集树中。新节点Nin具有作为其子节点之一的,分配给注意数据picnew的注意节点Nnew。
具体地说,距离计算部分41得到前面说明的距离dn和最大距离dq,并把距离dn和最大距离dq提供给确定部分42。距离dn是基于预定距离标度的距离,作为布置在注意位置的注意数据picnew和在与分支节点的子节点对应的丛集中选择的候选丛集中的最接近图片数据之间的距离,所述分支节点自如上所述的分支节点搜索部分31接收。对应于候选丛集的节点被称为候选节点。从而,候选节点是充当从分支节点搜索部分31接收的分支节点的子节点之一的节点。但是,在新节点Nin被增加到丛集树中以充当与包括注意数据picnew的丛集对应的注意节点Nnew的父节点的情况下,候选节点变成新节点Nin的候选子节点,即,和注意数据picnew所属的候选丛集对应的节点的候选节点。距离dq是属于候选丛集的任何两条相互相邻图片数据之间的距离的最大值。
确定部分42相互比较从距离计算部分41接收的距离dn和最大距离dq,并把比较结果提供给增加部分43。如上所述,距离dn是注意数据和与候选节点对应的候选丛集中的最接近图片数据之间的基于预定距离标度的距离,而距离dq是属于对应于候选节点的候选丛集的任何两条相邻图片数据之间的距离的最大值。
增加部分43根据从确定部分42接收的比较结果,把充当与包含注意数据picnew的丛集对应的节点的父节点的新节点Nin增加到保存在丛集树存储设备14中的当前丛集树中,以便把当前的丛集树更新为新的丛集树。新节点Nin被布置在最终根据从确定部分42接收的比较结果识别的分支节点和候选节点之间的弧线上的一个位置。从而,分支节点变成新节点Nin的父节点,而候选节点和注意节点Nnew变成新节点Nin的子节点。
具体地说,当确定部分42确定注意数据picnew与对应于候选节点的候选丛集中的最接近图片数据之间的距离dn大于(或者不小于)距离dq,距离dq表示属于对应于候选节点的候选丛集的任何两条相互相邻图片数据之间距离的最大值,那么增加部分43把新节点Nin增加到当前的丛集树中,并形成新的丛集树。新节点Nin被布置在所述弧线上,以致分支节点变成父节点,而候选节点和受到注意的节点New变成子节点。
另一方面,如果确定部分42确定注意数据picnew与对应于候选节点的候选丛集中的最接近图片数据之间的距离dn不大于(或者小于)属于对应于候选节点的候选丛集的任何两条相互相邻图片数据之间的最大距离dq,那么候选节点被用作新的分支节点,候选节点的子节点被用作新的候选节点。随后,距离计算部分41计算注意数据picnew与对应于新的候选节点的候选丛集中的最接近图片数据之间的距离dn,和属于对应于新的候选节点的候选丛集的任何两条相互相邻图片数据之间的最大距离dq,而确定部分42相互比较从距离计算部分41接收的距离dn和最大距离dq。重复计算距离dn和最大距离dq的处理,及相互比较距离dn和最大距离dq的处理。
当确定部分42确定距离dn大于(或者不小于)距离dq时,增加部分43把新节点Nin增加到目前的丛集树中,形成新的丛集树。最后的分支节点变成父节点,而候选节点和注意节点Nnew变成子节点。
下面参考图20,说明由图19中所示的分支节点搜索部分31进行的搜索丛集树寻找分支节点的分支节点搜索处理。
图20表示保存在丛集树存储设备14中的当前丛集树的一部分。
在下面的说明中,符号Np表示分支节点,符号l(Np)表示分支节点Np的左节点,而符号r(Np)表示分支节点Np的右节点。
如上所述,分支节点Np的一个子节点是与在左侧或右侧邻近注意数据picnew的最大邻近丛集对应的节点,注意数据picnew布置在按照从左到右的顺序排列的处理对象图片数据的阵列中的注意位置上,所述从左到右的顺序表示拍摄日期/时间的顺序。
从而,在左侧邻近布置在注意位置的注意数据picnew的最大邻近丛集是与分支节点Np的节点l(Np)对应的丛集Cl,而在右侧邻近布置在注意位置的注意数据picnew的最大邻近丛集是与分支节点Np的节点r(Np)对应的丛集Cr。
假定符号Rm(N)表示可通过从节点N下溯丛集树的弧线而找到的最右侧的叶节点,符号Lm(N)表示可通过从节点N下溯丛集树的弧线而找到的最左侧的叶节点。从而,符号Rm(l(Np))表示可通过从分支节点Np的左节点l(Np)下溯丛集树的弧线而找到的最右侧的叶节点,符号Lm(r(Np))表示可通过从分支节点Np的右节点r(Np)下溯丛集树的弧线而找到的最左侧的叶节点。
由于节点Rm(l(Np))是可通过从分支节点Np的左节点l(Np)下溯丛集树的弧线而可找到的最右侧叶节点,因此在下面的说明中,节点Rm(l(Np))被称为左方最右边的叶节点Rm(l(Np))。出于同样的原因,由于节点Lm(r(Np))是可通过从分支节点Np的右节点r(Np)下溯丛集树的弧线而可找到的最左侧叶节点,因此在下面的说明中,节点Lm(r(Np))被称为右方最左边的叶节点Lm(r(Np))。
我们假定图片数据pic1是分配给左方最右边的叶节点Rm(l(Np))的图片数据。这种情况下,图片数据pic1是属于在左侧邻近注意数据picnew的上述丛集Cl的图片数据中的最右边图片数据。从而,图片数据pic1是在左侧邻近注意数据picnew的图片数据。
我们假定图片数据pic2是分配给右方最左边的叶节点Lm(r(Np))的图片数据。这种情况下,图片数据pic2是属于在右侧邻近注意数据picnew的上述丛集Cr的图片数据中的最左边图片数据。从而,图片数据pic2是在右侧邻近注意数据picnew的图片数据。
假定符号t(N)表示分配给叶节点N的图片数据的拍摄日期/时间。这种情况下,符号t(Rm(l(Np)))表示分配给左方最右边的叶节点Rm(l(Np))的图片数据pic1的拍摄日期/时间,符号t(Lm(r(Np)))表示分配给右方最左边的叶节点Lm(r(Np))的图片数据pic2的拍摄日期/时间,符号t(Nnew)表示分配给注意节点Nnew的注意数据picnew的拍摄日期/时间。拍摄日期/时间t(Rm(l(Np))),t(Lm(r(Np)))和t(Nnew)满足下面给出的关系(7)。
t(Rm(l(Np)))<t(Nnew)<t(Lm(r(Np))) (7)为了使下面的说明简单,假定均充当分层群集处理的对象的处理对象图片数据不包括具有相同拍摄日期/时间的图片数据。要注意的是,如果存在具有相同拍摄日期/时间的图片数据,那么用包括等于情况的运算符≤代替关系(7)中使用的运算符<中的任一来反映所述存在。
分支节点搜索部分31搜索当前的丛集树,寻找满足关系(7)的节点Np,并把搜索中得到的节点Np作为分支节点Np。分支节点搜索部分31通过从根节点Nroot沿着朝向下面各层的方向下溯丛集树的弧线,搜索当前的丛集树。
要注意的是分支节点搜索部分31把记录在保存于丛集树存储设备14中的当前图片树的左方最右边的叶节点Rm(l(Np))的元数据中的,分配给左方最右边的叶节点Rm(l(Np))的图片数据pic1的拍摄日期/时间t(Rm(l(Np)))识别为图片数据pic1的元数据。出于同样的原因,分支节点搜索部分31把记录在当前图片树的右方最左边的叶节点Lm(r(Np))的元数据中的,分配给右方最左边的叶节点Lm(r(Np))的图片数据pic2的拍摄日期/时间t(Lm(r(Np)))识别为图片数据pic2的元数据。另一方面,分支节点搜索部分31把从元数据读取部分20接收的元数据中的,分配给注意节点Nnew的的注意数据picnew的拍摄日期/时间t(Nnew)识别为注意数据picnew的元数据。
下面参考图21-26,说明由图19中所示的节点增加部分32进行的节点增加处理,以便把新节点Nin增加到丛集树中,作为以注意节点Nnew为其子节点之一的节点。
图21表示了保存在丛集树存储设备14中的当前丛集树的一部分。该部分当前丛集树(另外称为局部树)包括可通过从作为注意数据picnew的分支节点,由分支节点搜索部分找到的分支节点Np开始下溯丛集树的弧线而找到的节点。
如上所述,通过保持按照拍摄日期/时间的顺序排列的图片数据的阵列,群集图片数据。从而,由于分别被分配给一条图片数据的叶节点的阵列也被原样保持,因此分配给注意数据picnew的注意节点Nnew不会被置于(或者移动到)左方最右边的叶节点Rm(l(Np))的左侧,或者被置于(或者移动到)右方最左边的叶节点Lm(r(Np))的右侧。
从而,分配给注意节点Nnew的注意数据picnew属于对应于分支节点Np的丛集。
另外,对应于分支节点Np的丛集包括与充当分支节点Np的左侧子节点的左节点l(Np)对应的丛集Cl,和与充当分支节点Np的右侧子节点的右节点r(Np)对应的丛集Cr。
在节点增加处理中,以分配给注意数据picnew的注意节点Nnew作为其子节点之一的新节点Nin被增加到丛集树中,作为通过从分支节点Np开始下溯丛集树的弧线而找到的节点的子节点之一。以此方式,增加了对应于新节点Nin的丛集,作为包含在对应于分支节点Np的丛集中的一个丛集。从而,注意数据picnew被群集到与新节点Nin对应的丛集中。
首先,在图19中所示的节点增加部分32中,距离计算部分41选择候选节点。选择的候选节点是与从丛集Cl和Cr中选择的一个丛集对应的节点,该选择的丛集具有在该丛集中的最接近图片数据与注意数据picnew之间的较短距离。选择的候选节点是对应于一个候选丛集的节点,所述候选丛集充当对应于新节点Nin的一个子节点的候选丛集,即,所述候选丛集充当与对应于注意数据picnew所属丛集的节点的父节点的一个子节点对应的候选丛集。如前所述,丛集Cl是对应于左节点l(Np)的丛集,左节点l(Np)是从分支节点搜索部分31接收的分支节点Np的左侧子节点。另一方面,丛集Cr是对应于右节点r(Np)的丛集,右节点r(Np)是分支节点Np的右侧子节点。
符号dl表示注意数据picnew与对应于左节点l(Np)的丛集Cl中的最接近图片数据之间的距离,符号dr表示注意数据picnew与对应于右节点r(Np)的丛集Cr中的最接近图片数据之间的距离,如图21中所示。这种情况下,如果距离dl小于(或者不大于)距离dr,那么对应于丛集Cl的左节点l(Np)被选为候选节点。另一方面,如果距离dl不小于(或者大于)距离dr,那么对应于丛集Cr的右节点r(Np)被选为候选节点。
在下面的说明中,候选节点用符号Nq表示,对应于候选节点Nq的候选丛集用符号Cq表示。
对应于左节点l(Np)的丛集Cl中的最接近图片数据是分配给左方最右边的叶节点Rm(l(Np))的图片数据或者图21中所示的图片数据pic1。另一方面,对应于右节点r(Np)的丛集Cr中的最接近图片数据是分配给右方最左边的叶节点Lm(r(Np))的图片数据或者图21中所示的图片数据pic2。
距离计算部分41计算距离dl和dr。如果计算的距离dl小于计算的距离dr,例如,那么距离计算部分41选择对应于丛集Cl的左节点l(Np)作为候选节点Nq。在左节点l(Np)被选为对应于候选丛集Cq的候选节点Nq的情况下,距离dl是对应于候选节点Nq的候选丛集Cq中的最接近图片数据与注意数据picnew之间的距离dn。这种情况下,距离计算部分41还计算最大距离dq,它是属于对应于候选节点Nq的候选丛集Cq的所有两条相邻图片数据之间的距离的最大值,如图22的左侧所示。属于候选丛集Cq的图片数据是已按照丛集树群集到候选丛集Cr中的图片数据。
这种情况下,从分支节点搜索部分31收到的分支节点Np的左节点l(Np)充当候选节点Nq。从而,对应于候选节点Nq的候选丛集Cq是与从分支节点搜索部分31接收的分支节点Np的左节点l(Np)对应的丛集Cl。另外,与候选节点Nq对应的候选丛集Cq中的图片数据与注意数据picnew之间的距离dn是与左节点l(Np)对应的丛集Cl中的最接近图片数据与注意数据picnew之间的距离dn。
如上所述,距离计算部分41计算属于与候选节点Nq对应的候选丛集Cq的所有两条相邻图片数据之间的最大距离dq。如在图22的左侧所示,最大距离dq是作为与候选节点Nq的左节点l(Nq)对应的丛集和与候选节点Nq的右节点r(Nq)对应的丛集之间的距离,按照等式(5)计算的距离dC(l(Nq),r(Nq))。即,最大距离dq是分配给候选节点Nq的左方最右边的叶节点Rm(l(Nq))的图片数据与分配给候选节点Nq的右方最左边的叶节点Lm(r(Nq))的图片数据之间的距离。
下面将解释表示属于对应于节点N的丛集的所有两条图片数据间的距离最大值的最大距离dq是分配给节点N的左方最右边叶节点Rm(l(N))的图片数据与分配给节点N的右方最左边叶节点Lm(r(N))的图片数据之间的距离的事实。
如果如上所述得到的距离dn和最大距离dq之间的关系dq<dn(或者dq≤dn)成立,那么在节点增加部分32中采用的增加部分43在当前的丛集树中增加一个新节点Nin,如下创建一个新的丛集。如图22的右侧所示,新节点Nin被布置在分支节点Np和候选节点Nq之间的弧线上,作为以分支节点Np为父节点,以候选节点Nq及注意节点Nnew为子节点的节点。
从而,通过在当前的丛集树中增加新节点Nin,候选节点Nq和注意节点Nnew变成新节点Nin的子节点。
另外,对应于新节点Nin的丛集Cin包括属于充当新节点Nin的子节点之一的候选节点Nq的图片数据,和属于充当新节点Nin的子节点之一的注意节点Nnew的注意数据picnew。
候选丛集Cq中的最接近图片数据与注意数据picnew之间的距离dn按照等式(2)被计算为注意数据picnew与包括在候选丛集Cq中的作为拍摄日期/时间与注意数据picnew最接近的图片数据之间的距离dpic()。包括在候选丛集Cq中的作为拍摄日期/时间与注意数据picnew最接近的图片数据是与注意数据picnew相邻图片数据。从而,在图22中所示的丛集树中,距离dn是注意数据picnew与邻近注意数据picnew布置在左侧的图片数据pic1之间的距离。
如上所述,如果距离dn和最大距离dq之间的关系dq<dn(或者dq≤dn)成立,那么增加部分43在当前的丛集树中增加一个新节点Nin。从而,属于对应于新节点Nin的丛集Cin的所有两条相邻图片数据之间的最大距离是注意数据picnew与邻近注意数据picnew布置在左侧的图片数据pic1之间的距离。
如果从新节点Nin来看,左侧的邻近注意数据picnew的图片数据pic1是分配给新节点Nin的左方最右边的叶节点Rm(l(Nin))的图片数据,而注意数据picnew是分配给新节点Nin的右方最左边的叶节点Lm(r(Nin))的图片数据。从而,属于对应于新节点Nin的丛集Cin的所有两条相邻图片数据间的最大值(最大距离)是分配给新节点Nin的左方最右边的叶节点Rm(l(Nin))的图片数据与分配给新节点Nin的右方最左边的叶节点Lm(r(Nin))的图片数据之间的距离。
即,属于对应于节点N的丛集的所有两条相邻图片数据间的最大距离(最大值)是分配给节点N的左方最右边的叶节点Rm(l(N))的图片数据与分配给节点N的右方最左边的叶节点Lm(r(N))的图片数据之间的距离。
要注意的是分配给节点N的左方最右边的叶节点Rm(l(N))的图片数据是具有在属于与节点N的左节点l(N)对应的丛集的所有图片数据的拍摄日期/时间中,和属于与节点N的右节点r(N)对应的丛集的图片数据的拍摄日期/时间最接近的拍摄日期/时间的图片数据。出于同样的原因,分配给节点N的右方最左边的叶节点Lm(r(N))的图片数据是具有在属于与节点N的右节点r(N)对应的丛集的所有图片数据的拍摄日期/时间中,和属于与节点N的左节点l(N)对应的丛集的图片数据的拍摄日期/时间最接近的拍摄日期/时间的图片数据。
从而,按照把两个丛集之间的距离定义为作为在分别包含在两个丛集中的所有两条图片数据中,具有最接近的拍摄日期/时间的图片数据,分别包括在两个丛集中的两条图片数据之间的距离的等式(5),分配给节点N的左方最右边的叶节点Rm(l(N))的图片数据与分配给节点N的右方最左边的叶节点Lm(r(N))的图片数据之间的距离等于与节点N的左节点l(N)对应的丛集和与节点N的右节点r(N)对应的丛集之间的距离。
另外,从上面的说明可看出,属于对应于节点N的丛集的所有两条相邻图片数据之间的最大值(最大距离)等于与节点N的左节点l(N)对应的丛集和与节点N的右节点r(N)对应的丛集之间的距离。
我们假定距离dn和最大距离dq之间的关系dq≥dn(或者dq>dn)成立,如上所述,其中距离dn是与候选节点Nq对应的候选丛集Cq中的最接近图片数据与注意数据picnew之间的距离,而最大距离dq表示属于候选丛集Cq的所有两条相邻图片数据之间的距离。这种情况下,在节点增加部分32中采用的距离计算部分41把候选节点Nq作为新的分支节点Np,并在更新分支节点Np和候选节点Nq的处理中,识别新的分支节点Np中的新的候选节点Nq,如图23中所示。
随后,如前参考图22所述那样,距离计算部分41得到与新的候选节点Nq对应的新的候选丛集Cq中的最接近图片数据与注意数据picnew之间的距离dn,以及属于新的候选丛集Cq的所有两条相邻图片数据之间的渐减的最大距离dq。
距离计算部分41反复进行更新分支节点Np和候选节点Nq的处理,以及计算距离dn和最大距离dq的处理,直到距离dn和最大距离dq之间的关系dq<dn成立为止。
当距离dn和最大距离dq之间的关系dq<dn(或者dq≤dn)成立时,如前参考图22所述,增加部分43把新节点Nin增加到当前的丛集树中,创建一个新的丛集树。新节点Nin被布置在最终的分支节点Np和最终的候选节点Nq之间的弧线上,作为以最终的分支节点Np为父节点,以最终的候选节点Nq以及注意节点Nnew为子节点的节点。
即,我们假定例如在图23左侧显示的丛集树被更新为在右侧显示的丛集树,并且在右侧的丛集树中,距离dn和最大距离dq之间的关系dq<dn成立。这种情况下,新节点Nin被布置在最终的分支节点Np和最终的候选节点Nq之间的弧线上,作为以最终的分支节点Np为父节点,以最终的候选节点Nq以及注意节点Nnew为子节点的节点,如图24中所示。
从而,通过沿朝着比分支节点Np低的层次的方向,从分支节点Np下溯弧线,节点增加部分32识别与邻近位于注意位置的注意数据picnew的候选丛集Cq对应的候选节点Nq。随后,节点增加部分32计算属于邻近注意数据picnew的候选丛集Cq的所有两条相邻图片数据之间的最大距离dq,以及候选丛集Cq中的最接近图片数据和注意数据picnew之间的距离dn。节点增加部分32反复进行识别候选节点Nq的处理,以及计算距离dn和最大距离dq的处理,直到找到满足关系dq<dn(或者dq≤dn)的最大候选节点Nq为止。当找到满足关系dq<dn(或者dq≤dn)的最大候选节点Nq时,节点增加部分32增加新节点Nin,并把新节点Nin布置在最终的分支节点Np和最终的候选节点Nq之间的弧线上,作为以最终的分支节点Np为父节点,以最终的候选节点Nq以及注意节点Nnew为子节点的节点,如图24中所示。
如果在图21中所示的丛集树中,对应于右节点r(Np)的候选丛集Cr中的最接近图片数据与注意数据picnew之间的距离dr小于(或不大于)对应于左节点l(Np)的候选丛集Cl中的最接近图片数据与注意数据picnew之间的距离dl,那么对应于候选丛集Cr的右节点r(Np)被作为候选节点Nq,并按照和如上所述其中对应于候选丛集Cl的左节点l(Np)被作为候选节点Nq的情况的处理相同的方式进行处理。即,对把对应于丛集Cr的右节点r(Np)作为候选节点Nq的情况的处理的描述与对把对应于丛集Cl的左节点l(Np)作为候选节点Nq的情况的处理的描述相同,除了在对把对应于丛集Cl的左节点l(Np)作为候选节点Nq的情况的处理的说明中使用的单词‘左’和‘右’被相互交换之外。
另外,我们假定注意数据picnew被布置在按照拍摄日期/时间的顺序排列的图片数据的阵列的右端,如图25中所示。即,在其他图片数据中,注意数据picnew的拍摄日期/时间最晚。这种情况下,不存在位于布置在注意位置的注意数据picnew的右侧的丛集,邻近注意数据picnew存在于左侧的最大丛集是对应于根节点的丛集。借助这种树形结构,能够进行节点增加处理,增加一个虚拟节点,作为以现有的根节点为左节点的分支节点Np,现有的根节点还充当候选节点Nq。
出于同样的原因,作为另一例子,我们假定注意数据picnew被布置在按照拍摄日期/时间的顺序排列的图片数据的阵列的左端,如图26中所示。即,在图片数据中,注意数据picnew的拍摄日期/时间最早。这种情况下,不存在位于布置在注意位置的注意数据picnew的左侧的丛集,邻近注意数据picnew存在于右侧的最大丛集是对应于根节点的丛集。借助这种树形结构,能够进行节点增加处理,增加一个虚拟节点,作为以现有的根节点为右节点的分支节点Np,现有的根节点还充当候选节点Nq。
下面参考图27中所示的流程图,说明在图18中所示的流程图的步骤S12,由图19中所示的树形结构处理部分22进行的树形结构处理。
如图27中所示,表现树形结构处理的流程图从步骤S21开始,在步骤S21,分支节点搜索部分31根据从元数据读取部分20接收的注意数据picnew的元数据,以及保存在丛集树存储设备14中的丛集树,进行分支节点搜索处理,以搜索丛集树寻找分支节点。随后,分支节点搜索部分31把通过分支节点搜索处理而获得的分支节点提供给节点增加部分32。随后,处理流程进入下一步骤S22。
在步骤S22,根据从分支节点搜索部分31接收的分支节点,和从元数据读取部分20接收的注意数据picnew的元数据,节点增加部分32进行节点增加处理,在保存于丛集树存储设备14中的丛集树中增加一个新节点Nin,并创建一个新的丛集树。节点增加部分32把新节点Nin增加到丛集树中,作为以分配给注意数据picnew的注意节点Nnew为子节点之一的节点。随后,处理流程进入下一步骤S23。
在步骤S23,节点增加部分32把在步骤S22创建的丛集树用作保存在丛集树存储设备14中的丛集树的更新。随后,节点增加部分32把处理的控制返回给调用程序,结束执行树形结构处理。
下面参考图28中所示的流程图,说明在图27中所示的流程图的步骤S21,由在如图19中所示的树形结构处理部分22中采用的分支节点搜索部分31进行的分支节点搜索处理。
如图28中所示,表示分支节点搜索处理的流程图从步骤S41开始,在步骤S41,分支节点搜索部分31把保存在丛集树存储设备14中的当前丛集树的根节点作为暂定分支节点Np。具体地说,分支节点搜索部分31在表示分支节点Np的变量中设定指示根节点的信息。随后,处理流程进入下一步骤S42。
在步骤S42,分支节点搜索部分31把一个叶节点分配给注意数据picnew,并把从元数据读取部分20接收的注意数据picnew的元数据保存在分配的叶节点中。具体地说,分支节点搜索部分31通过在代表叶节点的变量中设定有关注意数据picnew的信息,把一个叶节点分配给注意数据picnew,所述叶节点也被称为注意节点Nnew。
在步骤42,分支节点搜索部分31还根据保存在注意节点Nnew中的元数据识别拍摄日期/时间t(Nnew),和根据暂定分支节点Np的左方最右边的叶节点Rm(l(Np))识别拍摄日期/时间t(Rm(l(Np)))。如上所述,拍摄日期/时间t(Nnew)是分配给注意节点Nnew的注意数据picnew的拍摄日期/时间。另一方面,拍摄日期/时间t(Rm(l(Np)))是分配给暂定分支节点Np的左方最右边的叶节点Rm(l(Np))的图片数据的拍摄日期/时间。随后,分支节点搜索部分31确定分配给注意节点Nnew的注意数据picnew的拍摄日期/时间t(Nnew)是否早于分配给左方最右边的叶节点Rm(l(Np))的图片数据的拍摄日期/时间t(Rm(l(Np)))。即,分支节点搜索部分31确定关系t(Nnew)<t(Rm(l(Np)))是否成立。
如果在步骤S42产生的确定结果指出拍摄日期/时间t(Nnew)早于拍摄日期/时间t(Rm(l(Np))),那么处理流程进入步骤S43。分支节点搜索部分31用使其左方最右边的叶节点Rm(l(N))比丛集树中的左方最右边的叶节点Rm(l(Np))进一步左移的节点N代替暂定分支节点Np,因为暂定分支节点Np不是分配给注意节点Nnew的注意数据picnew的分支节点Np。这是因为暂定分支节点Np的左方最右边的叶节点Rm(l(Np))是布置在注意节点Nnew的右侧的节点,尽管分配给暂定分支节点Np的左方最右边的叶节点Rm(l(Np))的图片数据应被放置在与分配给注意节点Nnew的注意数据picnew相邻的左侧,如图20中所示。
具体地说,在步骤S43,分支节点搜索部分31用新的暂定分支节点Np代替当前的暂定分支节点Np,新的暂定分支节点Np是当前的暂定分支节点Np的左节点l(Np)。随后,处理流程从步骤S43返回步骤S41,重复上述处理。
另一方面,如果在步骤S42产生的确定结果指出拍摄日期/时间t(Nnew)不早于拍摄日期/时间t(Rm(l(Np))),即,如果暂定分支节点Np的左方最右边的叶节点Rm(l(Np))不被放置在注意节点Nnew的右侧,那么处理流程进入步骤S44。分支节点搜索部分31根据右方最左边的叶节点Lm(r(Np))保持的元数据,识别分配给右方最左边的叶节点Lm(r(Np))的图片数据的拍摄日期/时间t(Lm(r(Np)))。分支节点搜索部分31确定分配给注意节点Nnew的注意数据picnew的拍摄日期/时间t(Nnew)是否晚于分配给右方最左边的叶节点Lm(r(Np))的图片数据的拍摄日期/时间t(Lm(r(Np)))。即,分支节点搜索部分31确定关系t(Nnew)>t(Lm(r(Np)))是否成立。
如果在步骤S44产生的确定结果指出拍摄日期/时间t(Nnew)晚于拍摄日期/时间t(Lm(r(Np))),那么处理流程进入步骤S45。分支节点搜索部分31用使其右方最左边的叶节点Lm(r(N))比丛集树中的右方最左边的叶节点Lm(r(Np))进一步右移的节点N代替暂定分支节点Np,因为暂定分支节点Np不是分配给注意节点Nnew的注意数据picnew的分支节点Np。这是因为暂定分支节点Np的右方最左边的叶节点Lm(r(Np))是布置在注意节点Nnew的左侧的节点,尽管分配给暂定分支节点Np的右方最左边的叶节点Lm(r(Np))的图片数据应被放置在与分配给注意节点Nnew的注意数据picnew相邻的右侧,如图20中所示。
具体地说,在步骤S45,分支节点搜索部分31用新的暂定分支节点Np代替当前的暂定分支节点Np,新的暂定分支节点Np是当前的暂定分支节点Np的右节点r(Np)。随后,处理流程从步骤S45返回步骤S42,在步骤S42,分支节点搜索部分31开始重复上述处理。
另一方面,如果在步骤S44产生的确定结果指出拍摄日期/时间t(Nnew)不晚于拍摄日期/时间t(Lm(r(Np))),即,如果拍摄日期/时间t(Nnew)早于拍摄日期/时间t(Rm(l(Np))),但是晚于拍摄日期/时间t(Lm(r(Np)))并且满足关系(7),那么处理流程进入步骤S46。分支节点搜索部分31确认暂定分支节点Np为注意节点Nnew的最终分支节点,并把最终的分支节点提供给节点增加部分32。随后,分支节点搜索部分31把处理的控制返回给调用程序,终止执行分支节点搜索处理。
下面参考图29中所示的流程图,说明在图27中所示的流程图的步骤S22,由在图19所示的树形结构处理部分22中采用的节点增加部分32进行的节点增加处理。
如图29中所示,该流程图从步骤S51开始,在步骤S51,根据从分支节点搜索部分31接收的分支节点Np和保存在丛集树存储设备14中的丛集树,在节点增加部分32中采用的距离计算部分41(图19)计算与类似于图21中所示的丛集树中的分支节点Np的左节点l(Np)对应的丛集Cl中的最接近图片数据和分配给注意节点new的注意数据picnew之间的距离dl。在下面的说明中,距离dl被称为左丛集距离。距离计算部分41还计算与丛集树中的分支节点Np的右节点r(Np)对应的丛集Cr中的最接近图片数据和注意数据picnew之间的距离dr。在下面的说明中,距离dr被称为右丛集距离。随后,处理流程进入下一步骤S52。
在步骤S52,距离计算部分41确定左丛集距离dl是否小于(或不大于)右丛集距离dr。
如果在步骤S52产生的确定结果指出左丛集距离dl小于右丛集距离dr,那么处理流程进入步骤S61。另一方面,如果在步骤S52产生的确定结果指出左丛集距离dl不小于右丛集距离dr,那么处理流程进入步骤S71。
在步骤S61,距离计算部分41把分支节点Np的左节点l(Np)作为候选节点Nq。随后,处理流程进入下一步骤S62。在步骤S62,距离计算部分41计算对应于候选节点Nq的候选丛集Cq中的最接近图片数据和分配给注意节点new的注意数据picnew之间的距离dn。如前参考图22-24所述,候选丛集Cq中的最接近图片数据是属于候选丛集Cq的多条图片数据中的最右侧图片数据,属于候选丛集Cq的多条图片数据中的最右侧图片数据是邻近注意数据picnew在左侧的图片数据。距离计算部分41随后把距离dn提供给确定部分42。随后,处理流程进入下一步骤S63。
在步骤S63,距离计算部分41计算最大距离dq,最大距离dq表示属于与候选节点Nq对应的候选丛集Cq的所有两条相邻图片数据(已群集到丛集树中的图片数据)之间的距离的最大值,并把最大距离dq提供给确定部分42。随后,处理流程进入下一步骤S64。
在步骤S64,确定部分42比较作为候选丛集Cq中的最接近图片数据与注意数据picnew之间的距离从距离计算部分41接收的距离dn和从距离计算部分41接收的最大距离dq(最大距离dq表示属于候选丛集Cq的所有两条相邻图片数据之间的距离),以便确定距离dn是否大于(或不小于)最大距离dq。
如果在步骤S64产生的确定结果指出候选丛集Cq中的最接近图片数据与注意数据picnew之间的距离dn不大于(或者既不等于又不大于)属于候选丛集Cq的所有两条相邻图片数据之间的最大距离dq,那么处理流程进入步骤S65。即,如果属于候选丛集Cq的所有两条相邻图片数据之间的距离包括大于(或者不小于)注意数据picnew与候选丛集Cq中的最接近图片数据之间的距离dn的距离,那么注意数据picnew被包括在该候选丛集Cq中。距离计算部分41分别用新的分支节点Np和新的候选节点Nq替换分支节点Np和候选节点Nq,以便进一步把包括在当前候选丛集Cq中的较小规模的丛集识别为包括注意数据picnew的丛集。
即,在步骤S65,距离计算部分41通过把当前的候选节点Nq作为新的分支节点Np,以及把当前充当候选节点Nq的两个子节点之一的右节点r(Nq)作为新的候选节点Nq,更新分支节点Np和候选节点Nq。
在距离计算部分41在步骤S65更新分支节点Np和候选节点Nq之后,处理流程返回步骤S62,重复上述处理。
要注意的是此时在步骤S62,距离计算部分41计算与新的候选节点Nq对应的候选丛集Cq中的最接近图片数据与分配给注意节点Nnew的注意数据picnew之间的距离dn。与候选节点Nq对应的候选丛集Cq中的最接近图片数据是当在步骤S61,左节点l(Nq)被作为候选节点Nq时,邻近注意数据picnew的左侧的图片数据。即,即使距离计算部分41在步骤S65更新分支节点Np和候选节点Nq,邻近注意数据picnew的左侧的图片数据仍然相同。从而,由于距离dn是邻近注意数据picnew的左侧的图片数据与注意数据picnew之间的距离,因此即使距离计算部分41更新分支节点Np和候选节点Nq,距离dn仍然不变。
因此,在流程图的第二次和后续各次迭代中,能够跳过在步骤S62进行的得到关于注意数据picnew的距离dn的处理。
如果在步骤S64产生的确定结果指出候选丛集Cq中的最接近图片数据与注意数据picnew之间的距离dn大于(或者不小于)属于候选丛集Cq的所有两条相邻图片数据之间的最大距离dq,那么处理流程进入步骤S53。即,如果属于候选丛集Cq的所有两条相邻图片数据之间的距离不包括大于(或者不小于)注意数据picnew与候选丛集Cq中的最接近图片数据之间的距离dn的距离,那么注意数据picnew不属于包含在与当前候选节点Nq对应的当前候选丛集Cq中的丛集。换句话说,注意数据picnew可能属于与当前分支节点Np或者恰在前次迭代的步骤S65进行的处理之前的候选节点Nq对应的丛集,但是不属于对应于当前候选节点Nq的丛集。从而,增加部分43把新节点Nin增加到丛集树中,以致注意数据picnew可被属于与当前分支节点Np或者恰在前次迭代处理之前的候选节点Nq对应的丛集。
即,在步骤S53,增加部分43更新当前的丛集树,以便通过把新节点Nin增加到当前丛集树中,作为放置在分支节点Np和候选节点Nq之间的弧线上某一位置的节点,创建一个新的丛集树。这样,新节点Nin具有作为父节点的分支节点Np和作为子节点之一的候选节点Nq。另一方面,注意节点Nnew充当新节点Nin的另一子节点。最后,处理的控制被返回给调用程序,以结束节点增加处理。
如上所述,另一方面,如果在步骤S52产生的确定结果指出左丛集距离dl不小于右丛集距离dr,那么处理流程进入步骤S71。在步骤S71,距离计算部分41把分支节点Np的右节点r(Np)作为候选节点Nq。随后,处理流程进入下一步骤S72。在步骤S72,距离计算部分41计算对应于候选节点Nq的候选丛集Cq中的最接近图片数据和分配给注意节点new的注意数据picnew之间的距离dn。距离计算部分41随后把距离dn提供给确定部分42。
在步骤S71,距离计算部分41把分支节点Np的右节点r(Np)作为候选节点Nq的情况下,对应于候选节点Nq的候选丛集Cq中的最接近图片数据是属于候选丛集Cq的多条图片数据中的最左侧图片数据,是邻近注意数据picnew在右侧的图片数据。随后,处理流程进入步骤S73。
在步骤S73,距离计算部分41计算属于与候选节点Nq对应的候选丛集Cq的所有两条相邻图片数据(已群集到候选丛集Cq中的图片数据)之间的最大距离dq,并把最大距离dq提供给确定部分42。随后,处理流程进入步骤S74。
在步骤S74,确定部分42比较作为候选丛集Cq中的最接近图片数据与注意数据picnew之间的距离从距离计算部分41接收的距离dn和从距离计算部分41接收的最大距离dq(最大距离dq表示属于候选丛集Cq的所有两条相邻图片数据之间的距离),以便确定距离dn是否大于(或不小于)最大距离dq。
如果在步骤S74产生的确定结果指出候选丛集Cq中的最接近图片数据与注意数据picnew之间的距离dn不大于(或者既不等于又不大于)属于候选丛集Cq的所有两条相邻图片数据之间的最大距离dq,那么处理流程进入步骤S75。即,如果属于候选丛集Cq的所有两条相邻图片数据之间的距离包括大于(或者不小于)注意数据picnew与候选丛集Cq中的最接近图片数据之间的距离dn的距离,那么注意数据picnew可被包括在包含于当前候选丛集Cq中的丛集中。距离计算部分41分别用新的分支节点Np和新的候选节点Nq替换分支节点Np和候选节点Nq,以便进一步把包括在当前候选丛集Cq中的较小规模的丛集识别为包括注意数据picnew的丛集。
即,在步骤S75,距离计算部分41通过把当前的候选节点Nq作为新的分支节点Np,以及把当前充当候选节点Nq的两个子节点之一的左节点l(Nq)作为新的候选节点Nq,更新分支节点Np和候选节点Nq。
在距离计算部分41在步骤S75更新分支节点Np和候选节点Nq之后,处理流程返回步骤S72,重复上述处理。
要注意的是此时在步骤S72,距离计算部分41计算与新的候选节点Nq对应的候选丛集Cq中的最接近图片数据与分配给注意节点Nnew的注意数据picnew之间的距离dn。与候选节点Nq对应的候选丛集Cq中的最接近图片数据是当邻近注意数据picnew的右侧的图片数据。从而,候选丛集Cq中的最接近图片数据和把右节点r(Np)作为与第一候选丛集Cq对应的第一候选节点Nq的步骤S71的第一候选丛集Cq的最接近图片数据相同。即,即使距离计算部分41在步骤S75更新分支节点Np和候选节点Nq,邻近注意数据picnew的右侧的图片数据仍然相同。从而,由于距离dn是邻近注意数据picnew的右侧的图片数据与注意数据picnew之间的距离,因此即使距离计算部分41更新分支节点Np和候选节点Nq,距离dn仍然不变。
因此,在流程图的第二次和后续各次迭代中,能够跳过在步骤S72进行的得到关于注意数据picnew的距离dn的处理。
如果在步骤S74产生的确定结果指出候选丛集Cq中的最接近图片数据与注意数据picnew之间的距离dn大于(或者不小于)属于候选丛集Cq的所有两条相邻图片数据之间的最大距离dq,那么处理流程进入步骤S53。即,如果属于候选丛集Cq的所有两条相邻图片数据之间的距离不包括大于(或者不小于)注意数据picnew与候选丛集Cq中的最接近图片数据之间的距离dn的距离,那么注意数据picnew不属于包含在与当前候选节点Nq对应的当前候选丛集Cq中的丛集。换句话说,注意数据picnew可能属于与当前分支节点Np或者恰在前次迭代的步骤S75进行的处理之前的候选节点Nq对应的丛集,但是不属于包括在与当前候选节点Nq对应的丛集中的丛集。从而,增加部分43把新节点Nin增加到丛集树中,以致注意数据picnew可被属于与当前分支节点Np或者恰在前次迭代处理之前的候选节点Nq对应的丛集。
即,在步骤S53,增加部分43更新当前的丛集树,以便通过把新节点Nin增加到当前丛集树中,作为放置在分支节点Np和候选节点Nq之间的弧线上某一位置的节点,来创建一个新的丛集树。这样,新节点Nin具有作为父节点的分支节点Np和作为子节点之一的候选节点Nq。另一方面,注意节点Nnew充当新节点Nin的另一子节点。最后,处理的控制被返回给调用程序,以结束节点增加处理。
下面参考图30-35中所示的流程图,说明在图17中所示的流程图的步骤S5,由图1中所示的群集设备13进行的群集处理的另一实施例。
群集设备13从数据存储设备12读出注意数据picnew的元数据,并产生分配给注意数据picnew的注意节点Nnew。随后,群集设备13把用于识别注意数据picnew的信息和保存在数据存储设备12中的注意数据picnew的元数据保存在表示注意数据picnew的变量中。随后,在图30中所示的流程图的第一步骤S101中,群集设备13计数均分配给保存在丛集树存储设备14中当前丛集树的叶节点的图片数据的数目。
如果在步骤S101,发现均分配给当前丛集树的叶节点的图片数据的数目为0,那么处理流程进入步骤S102,在步骤S102,群集设备13产生一个新的丛集树,其根节点Nroot充当分配给注意数据picnew的注意节点Nnew。具体地说,群集设备13把表示注意节点Nnew的变量的内容复制到表示根节点Nroot的变量。随后,群集设备13覆盖现有的丛集树把新的丛集树保存在丛集树存储设备14中。最后,处理的控制返回给调用程序,以终止群集处理的执行。
如果在步骤S101,发现均分配给当前丛集树的叶节点的图片数据的数目为1,即,如果当前的丛集树只包括根节点Nroot,并且一条图片数据已被分配给根节点Nroot,那么处理流程进入步骤S103。群集设备13根据保持在根节点Nroot中的元数据,识别分配给丛集树的根节点Nroot的图片数据的拍摄日期/时间t(Nroot),和根据保持在注意节点Nnew中的元数据,识别分配给注意节点Nnew的注意数据picnew的拍摄日期/时间t(Nnew)。随后,群集设备13确定分配给丛集树的根节点Nroot的图片数据的拍摄日期/时间t(Nroot)是否早于分配给注意节点Nnew的注意数据picnew的拍摄日期/时间t(Nnew)。
如果在步骤S103产生的确定结果指出分配给根节点Nroot的图片数据的拍摄日期/时间t(Nroot)早于分配给注意节点Nnew的注意数据picnew的拍摄日期/时间t(Nnew),那么处理流程进入步骤S104。即,如果分配给根节点Nroot的图片数据是在比注意数据picnew早的时间进行的拍摄操作中获得的图片数据,那么处理流程进入步骤S104。群集设备13产生新的丛集树,并把新的丛集树保存在丛集树存储设备14中。在新的丛集树中,先前的根节点被用作新的根节点Nroot的左节点l(Nroot),注意节点Nnew被用作新的根节点Nroot的右节点r(Nroot)。随后,处理的控制被返回给调用程序。
如果在步骤S103产生的确定结果指出分配给根节点Nroot的图片数据的拍摄日期/时间t(Nroot)不早于分配给注意节点Nnew的注意数据picnew的拍摄日期/时间t(Nnew),那么处理流程进入步骤S105。即,如果分配给根节点Nroot的图片数据是在和注意数据picnew相同或者较晚的时间进行的拍摄操作中获得的图片数据,那么处理流程进入步骤S105。群集设备13产生新的丛集树,并把新的丛集树保存在丛集树存储设备14中。在新的丛集树中,先前的根节点被用作新的根节点Nroot的右节点r(Nroot),注意节点Nnew被用作新的根节点Nroot的左节点l(Nroot)。随后,处理的控制被返回给调用程序。
如果在步骤S101,发现均分配给当前丛集树的叶节点的图片数据的数目至少为2,那么处理流程进入步骤S106,在步骤S106,群集设备13搜索通过从布置在丛集树右端的节点Rm(Nroot)的根节点Nroot,下溯当前丛集树的弧线可找到的节点。在下面的说明中,布置在丛集树右端的节点Rm(Nroot)被适当地称为最右边叶节点Rm(Nroot)。
通过利用根节点Nroot作为自变量,调用函数Rm(Nroot),找到布置在丛集树右端的最右边叶节点Rm(Nroot),作为在从根节点Nroot下溯当前丛集树的弧线的搜索处理中找到的节点。
下面参考图31中所示的流程图,说明把丛集树的节点N作为自变量的函数Rm(N)的搜索通过从最右边叶节点Rm(N)的节点N,沿弧线下溯丛集树可找到节点的处理。
图31中所示的流程图从步骤S131开始,在步骤S131,群集设备13确定已被群集到(或者属于)与丛集树的节点N对应的丛集的图片数据的数目是否为1。
如果在步骤S131产生的确定结果指出已被群集到(或者属于)与丛集树的节点N对应的丛集的图片数据的数目不为1,即,如果节点N不是叶节点,那么处理流程进入步骤S132。群集设备13用节点N的右节点r(N)代替用作自变量的节点N。随后,处理流程返回步骤S131,重复步骤S131和步骤S132的处理。
当在步骤S131产生的确定结果指出已被群集到(或者属于)与丛集树的节点N对应的丛集的图片数据的数目为1,即,如果节点N是叶节点,那么群集设备13把节点N返回给调用程序,作为函数Rm(N)的返回值,并结束函数Rm(N)的处理。
返回参见图30中所示的流程图。如上所述,在步骤S106,群集设备13搜索通过从布置在丛集树右端的最右边叶节点Rm(Nroot),即在丛集树右端的叶节点Rm(Nroot)的根节点Nroot,下溯当前丛集树的弧线可找到的节点。随后,群集设备13确定分配给最右边叶节点Rm(Nroot)的图片数据的拍摄日期/时间t(Rm(Nroot))是否早于分配给注意节点Nnew的注意数据picnew的拍摄日期/时间t(Nnew)。
分配给可通过从根节点Nroot下溯当前丛集树的弧线找到的最右边叶节点Rm(Nroot)的图片数据是在利用当前丛集树群集的所有图片数据中拍摄日期/时间最晚的图片数据。
如果在步骤S106产生的确定结果指出分配给最右边叶节点Rm(Nroot)的图片数据的拍摄日期/时间t(Rm(Nroot))早于分配给注意节点Nnew的注意数据picnew的拍摄日期/时间t(Nnew),即,如果注意数据picnew是所有处理对象图片数据中拍摄日期/时间最晚的图片数据,那么处理流程进入步骤S108。处理对象图片数据是均充当分层群集处理对象的多条图片数据。处理对象图片数据包括已利用当前丛集树群集的所有图片数据以及注意数据picnew。
如果在步骤S106产生的确定结果指出分配给最右边叶节点Rm(Nroot)的图片数据的拍摄日期/时间t(Rm(Nroot))不早于分配给注意节点Nnew的注意数据picnew的拍摄日期/时间t(Nnew),那么处理流程进入步骤S107。即,如果分配给注意节点Nnew的注意数据picnew的拍摄日期/时间t(Nnew)早于分配给最右边叶节点Rm(Nroot)的图片数据的拍摄日期/时间t(Rm(Nroot)),分配给最右边叶节点Rm(Nroot)的图片数据是利用当前丛集树群集的所有图片数据中拍摄日期/时间最晚的图片数据,那么处理流程进入步骤S107。群集设备13搜索可通过从布置在丛集树左端的节点Lm(Nroot)的根节点Nroot,下溯当前丛集树的弧线找到的节点。在下面的说明中,节点Lm(Nroot)被适当地称为最左边叶节点Lm(Nroot)。
通过利用根节点Nroot作为自变量,调用函数Lm(Nroot),找到布置在丛集树左端的最左边叶节点Rm(Nroot),作为在从根节点Nroot下溯当前丛集树的弧线的搜索处理中找到的节点。
下面参考图32中所示的流程图,说明把丛集树的节点N作为自变量的函数Lm(N)的搜索通过从最左边叶节点Lm(N)的节点N,沿弧线下溯丛集树可找到节点的处理。
图32中所示的流程图从步骤S141开始,在步骤S141,群集设备13确定已被群集到(或者属于)与丛集树的节点N对应的丛集的图片数据的数目是否为1。
如果在步骤S141产生的确定结果指出已被群集到(或者属于)与丛集树的节点N对应的丛集的图片数据的数目不为1,即,如果节点N不是叶节点,那么处理流程进入步骤S142,在步骤S142,群集设备13用节点N的左节点l(N)代替用作自变量的节点N。随后,处理流程返回步骤S141,重复步骤S141和步骤S142的处理。
当在步骤S141产生的确定结果指出已被群集到(或者属于)与丛集树的节点N对应的丛集的图片数据的数目为1,即,如果节点N是叶节点,那么群集设备13把节点N返回给调用程序,作为函数Lm(N)的返回值,并结束函数Lm(N)的处理。
返回图30中所示的流程图,如上所述,在步骤S107,群集设备13搜索通过从布置在丛集树左端的最左边叶节点Lm(Nroot),即在丛集树左端的叶节点Lm(Nroot)的根节点Nroot,下溯当前丛集树的弧线可找到的节点。随后,群集设备13确定分配给最左边叶节点Lm(Nroot)的图片数据的拍摄日期/时间t(Lm(Nroot))是否晚于分配给注意节点Nnew的注意数据picnew的拍摄日期/时间t(Nnew)。
分配给通过从根节点Nroot下溯当前丛集树的弧线可找到的最左边叶节点Lm(Nroot)的图片数据是利用当前的丛集树群集的所有图片数据中拍摄日期/时间最早的图片数据。
如果在步骤S107产生的确定结果指出分配给最左边叶节点Lm(Nroot)的图片数据的拍摄日期/时间t(Lm(Nroot))晚于分配给注意节点Nnew的注意数据picnew的拍摄日期/时间t(Nnew),即,如果注意数据picnew是所有处理对象图片数据中拍摄日期/时间最早的图片数据,那么处理流程进入步骤S111。处理对象图片数据包括已利用当前的丛集树群集的所有图片数据以及注意数据picnew。
如果在步骤S107产生的确定结果指出分配给最左边叶节点Lm(Nroot)的图片数据的拍摄日期/时间t(Lm(Nroot))不晚于分配给注意节点Nnew的注意数据picnew的拍摄日期/时间t(Nnew),那么处理流程进入步骤S112。换句话说,如果分配给注意节点Nnew的注意数据picnew的拍摄日期/时间t(Nnew)比分配给最左边叶节点Lm(Nroot)的图片数据的拍摄日期/时间t(Lm(Nroot))新,分配给最左边叶节点Lm(Nroot)的图片数据是利用当前的丛集树群集的所有图片数据中拍摄日期/时间最早的图片数据,那么处理流程进入步骤S112。
进行步骤S106和S107的处理,以确定注意数据picnew是被布置在按照从左到右的顺序(从左到右的顺序表示拍摄日期/时间的顺序)排列的处理对象图片数据的阵列的左端,右端还是不同于左端和右端的位置。处理对象图片数据包括已利用当前的丛集树群集的所有图片数据以及注意数据picnew。如果注意数据picnew被布置在阵列的右端,那么处理流程从步骤S106进入步骤S108。如果注意数据picnew被布置在阵列的左端,那么处理流程从步骤S107进入步骤S111。如果注意数据picnew被布置在不同于阵列的左端和右端的位置,那么处理流程从步骤S107进入步骤S112。下面说明在步骤S108,S111和S112进行的处理。
如果注意数据picnew被布置在按照从左到右的顺序(从左到右的顺序表示拍摄日期/时间的顺序)排列的处理对象图片数据的阵列的右端,作为处理对象图片数据中的拍摄日期/时间最晚的图片数据,那么处理流程从步骤S106进入步骤S108。群集设备13调用以表示根节点Nroot和注意节点Nnew的变量作为其自变量的函数IRM(Nroot,Nnew),并把函数IRM(Nroot,Nnew)的返回值保存在变量TMP中。
一般来说,函数IRM(Nroot,Nnew)是以候选节点Nq和注意节点Nnew作为自变量的函数。通过执行函数IRM(Nroot,Nnew),进行处理以便把新节点Nin增加到丛集树中,作为以注意节点Nnew为子节点之一,以候选节点Nq为另一子节点的节点。如果根节点Nroot被用作Nq自变量,那么把新节点Nin增加到丛集树中的处理与如图25中所示的增加分支节点Np的处理类似。在图25中所示的处理中,根节点Nroot变成增加的分支节点Np的左节点l(Np)。
图33是表示函数IRM(Nroot,Nnew)的处理的流程图。
如图33中所示,流程图从步骤S151开始,在步骤S151,群集设备13把一个节点作为满足下述条件的分支节点Np。分支节点Np以规定为函数IRM(Nroot,Nnew)的自变量的候选节点Nq作为左节点l(Np)。随后,处理流程进入下一步骤S152,在步骤S152,群集设备13计算最大距离dq,最大距离dq表示属于与候选节点Nq对应的候选丛集Cq的所有两条相邻图片数据之间的距离的最大值。
如前所述,属于与节点N对应的丛集的所有两条相邻图片数据之间的最大距离dq是对应于节点N的左节点l(N)的丛集和对应于节点N的右节点r(N)的丛集之间的距离。另外如前所述,丛集C1和另一丛集Cj之间的距离是属于丛集C1的第一图片数据和属于另一丛集Cj的第二图片数据之间的距离,其它各对图片数据的距离中最短的距离。
从而,属于与节点N对应的丛集的所有两条相邻图片数据之间的最大距离dq是群集到与节点N的左节点l(N)对应的丛集中的图片数据(最右边的图片数据)和群集到与节点N的右节点r(N)对应的丛集中的图片数据(最左边的图片数据)之间的距离。
根据上面的说明,通过利用等式(2)或(3),以分配给候选节点Nq的左方最右边叶节点Rm(l(Nq))的图片数据和分配给候选节点Nq的右方最左边叶节点Lm(r(Nq))的图片数据之间的距离dpic(Rm(l(Nq)),Lm(r(Nq)))的形式,可得到属于对应于候选节点Nq的候选丛集Cq的所有两条相邻图片数据之间的最大距离dq。
在完成步骤S152的处理之后,处理流程进入步骤S153,在步骤S153,群集设备13计算候选丛集Cq中的最接近图片数据与分配给注意节点Nnew的注意数据picnew之间的距离dn。
这种情况下,如果如上所述,分支节点Np的左节点l(Np)被用作候选节点Nq,那么候选丛集Cq中的最接近图片数据是邻近注意数据picnew在左侧的图片数据。该图片数据也是分配给分支节点Np的左方最右边叶节点Rm(l(Np))的图片数据。
从而,作为候选丛集Cq中的最接近图片数据与注意数据picnew之间的距离dn,在步骤S153得到的距离可通过利用等式(2)或(3),被计算为分配给分支节点Np的左方最右边叶节点Rm(l(Np))的图片数据和分配给注意节点Nnew的注意数据picnew之间的距离dpic(Rm(l(Np)),Nnew)。
在完成步骤S153的处理之后,处理流程进入步骤S154。群集设备13确定与候选节点Nq对应的候选丛集Cq中的最接近图片数据与注意数据picnew之间的距离dn是否大于(或者不小于)属于与候选节点Nq对应的候选丛集Cq的所有两条相邻图片数据之间的最大距离dq。
如果在步骤S154产生的确定结果指出距离dn大于(或者不小于)最大距离dq,那么处理流程进入步骤S155。群集设备13把新节点Nin增加到保存在丛集树存储设备14中的丛集树中,并在结束函数IRM(Nq,Nnew)的处理之前,把新节点Nin作为函数IRM(Nq,Nnew)的返回值返回给调用程序。群集设备13把新节点Nin布置在丛集树中使左节点l(Nin)变成候选节点Nq,使右节点r(Nin)变成注意节点Nnew的位置。这是因为注意数据picnew不应属于与当前的候选节点Nq对应的丛集(当前的候选丛集Cq)。
如果在步骤S154产生的确定结果指出距离dn不大于(或者既不等于又不大于)最大距离dq,那么处理流程进入步骤S156。换句话说,如果属于候选丛集Cq的所有两条相邻图片数据之间的距离包括大于(或者不小于)注意数据picnew和分配给分支节点Np的左方最右边叶节点Rm(l(Np))的图片数据间的距离(注意数据picnew与邻近注意数据picnew在左侧的图片数据间的距离)的距离,那么处理流程进入步骤S156。群集设备13更新分支节点Np和候选节点Nq。这是因为注意数据picnew属于候选丛集Cq,并且注意数据picnew可能属于包含在候选丛集Cq中的一个丛集。
即,在步骤S156,群集设备13把当前的候选节点Nq作为新的分支节点Np,并把当前候选节点Nq的右节点r(Nq)作为新的候选节点Nq。
在完成步骤S156的处理之后,处理流程进入步骤S157,在步骤S157,群集设备13确定与新的候选节点Nq对应的候选丛集Cq是否只包含一条图片数据。
如果在步骤S157产生的确定结果指出与新的候选节点Nq对应的候选丛集Cq包含多条图片数据,即,如果候选节点Nq不是叶节点,而是具有子节点的父节点,那么处理流程进入步骤S159。按照与在步骤S152进行的处理相同的方式,群集设备13得到属于候选丛集Cq的所有两条相邻图片数据之间的最大距离dq,所述候选丛集Cq与通过在紧接于步骤S157之前的步骤S156进行的处理而获得的新的候选节点Nq对应。随后,处理流程进入下一步骤S160。
按照和步骤S154相同的方式,在步骤S160,群集设备13确定与候选节点Nq对应的候选丛集Cq中的最接近图片数据(邻近注意数据picnew在左侧的图片数据)和注意数据picnew之间的距离dn是否大于(或者不小于)与候选节点Nq对应的候选丛集Cq中的所有两条相邻图片数据之间的最大距离dq。
如果在步骤S160产生的确定结果指出距离dn不大于(或者既不等于又不大于)最大距离dq,即,如果属于候选丛集Cq的所有两条相邻图片数据之间的距离包括大于(或者不小于)注意数据picnew和分配给分支节点Np的左方最右边叶节点Rm(l(Np))的图片数据(邻近注意数据picnew在左侧的图片数据)之间距离的距离,那么处理流程返回步骤S156。群集设备13更新分支节点Np和候选节点Nq。这是因为注意数据picnew属于候选丛集Cq,并且注意数据picnew可能属于包含在候选丛集Cq中的一个丛集。反复进行步骤S156和后续步骤的处理。
当在步骤S157产生的确定结果指出对应于新候选节点Nq的候选丛集Cq只包含一条图片数据,或者当在步骤S160产生的确定结果指出距离dn大于(或者不小于)最大距离dq时,处理流程进入步骤S158。群集设备把新节点Nin增加到保存在丛集树存储设备14中的丛集树中,并在结束函数IRM(Nq,Nnew)的处理之前,把零值作为函数IRM(Nq,Nnew)的返回值返回给调用程序。群集设备13把新节点Nin布置在丛集树中使新节点Nin充当分支节点Np的右节点r(Np),左节点l(Nin)变成候选节点Nq,以及右节点r(Nin)变成注意节点Nnew的位置。这是因为新的候选节点Nq是叶节点,或者注意数据picnew不应属于与当前候选节点Nq对应的候选丛集Cq。
返回图30中所示的流程图。在步骤S108,群集设备13收到在由图33中所示的流程图表示的处理中返回的返回值(函数IRM(Nq,Nnew)的返回值),并把该值保存在变量TMP中。随后,处理流程进入下一步骤S109。
在步骤S109,群集设备13确定变量TMP的值是否为零。如果在步骤S109产生的确定结果指出变量TMP的值为零,那么群集设备13结束执行群集处理。
如果在步骤S109产生的确定结果指出变量TMP具有不同于零的值,即,如果变量TMP包含作为函数IRM(Nq,Nnew)的返回值,从由图33中所示的流程图表示的处理(函数IRM(Nq,Nnew)的处理)接收的新节点Nin,那么处理流程进入步骤S110。群集设备13更新保存在丛集树存储设备14中的丛集树,以致根节点Nroot变成在变量TMP中设定的新节点Nin。最后,群集设备13结束执行群集处理。
如上所述,如果注意数据picnew是所有处理对象图片数据中,拍摄日期/时间最早的图片数据,即,如果注意数据picnew是布置在按照从左到右的顺序(从左到右的顺序表示拍摄日期/时间的顺序)排列的处理对象图片数据的阵列的左端的图片数据,那么由图30中所示的流程图表示的处理流程从步骤S107进入步骤S111。在步骤S111,群集设备13调用以表示根节点Nroot和注意节点Nnew的变量为其自变量的函数ILM(Nroot,Nnew),并把函数ILM(Nroot,Nnew)的返回值保存在变量TMP中。
一般来说,函数ILM(Nroot,Nnew)是以候选节点Nq和注意节点Nnew作为自变量的函数。通过执行函数ILM(Nroot,Nnew),进行处理以便把新节点Nin增加到丛集树中,作为以注意节点Nnew为子节点之一,以候选节点Nq为另一子节点的节点。如果根节点Nroot被用作Nq自变量,那么把新节点Nin增加到丛集树中的处理与如图26中所示的增加分支节点Np的处理类似。在图26中所示的处理中,根节点Nroot变成增加的分支节点Np的右节点r(Np)。
图34是表示函数ILM(Nroot,Nnew)的处理的流程图。
如图34中所示,流程图从步骤S171开始,在步骤S171,群集设备13把一个节点作为满足下述条件的分支节点Np。分支节点Np以规定为函数ILM(Nroot,Nnew)的自变量的候选节点Nq作为右节点r(Np)。随后,处理流程进入下一步骤S172,在步骤S172,群集设备13按照和图33中所示的流程图的步骤S152相同的方式,计算最大距离dq,最大距离dq表示属于与候选节点Nq对应的候选丛集Cq的所有两条相邻图片数据之间的距离的最大值。
在完成步骤S172的处理之后,处理流程进入步骤S173,在步骤S173,群集设备13计算候选丛集Cq中的最接近图片数据与分配给注意节点Nnew的注意数据picnew之间的距离dn。
这种情况下,如果如上所述,分支节点Np的右节点r(Np)被用作候选节点Nq,那么候选丛集Cq中的最接近图片数据是邻近注意数据picnew在右侧的图片数据。该图片数据也是分配给分支节点Np的右方最左边叶节点Lm(r(Np))的图片数据。
从而,作为候选丛集Cq中的最接近图片数据与注意数据picnew之间的距离dn,在步骤S173得到的距离可通过利用等式(2)或(3),被计算为分配给分支节点Np的右方最左边叶节点Lm(r(Np))的图片数据和分配给注意节点Nnew的注意数据picnew之间的距离dpic(Lm(r(Np)),Nnew)。
在完成步骤S173的处理之后,处理流程进入步骤S174,在步骤S174,群集设备13确定与候选节点Nq对应的候选丛集Cq中的最接近图片数据和注意数据picnew之间的距离dn是否大于(或者不小于)属于与候选节点Nq对应的候选丛集Cq的所有两条相邻图片数据之间的最大距离dq。
如果在步骤S174产生的确定结果指出距离dn大于(或者不小于)最大距离dq,那么处理流程进入步骤S175。群集设备13把新节点Nin增加到保存在丛集树存储设备14中的丛集树中,并在结束函数ILM(Nq,Nnew)的处理之前,把新节点Nin作为函数ILM(Nq,Nnew)的返回值返回给调用程序。群集设备13把新节点Nin布置在丛集树中使右节点r(Nin)变成候选节点Nq,左节点l(Nin)变成注意节点Nnew的位置。这是因为注意数据picnew不应属于与当前的候选节点Nq对应的候选丛集Cq。
如果在步骤S174产生的确定结果指出距离dn不大于最大距离dq,即,如果属于候选丛集Cq的所有两条相邻图片数据之间的距离包括大于(或者不小于)注意数据picnew和分配给分支节点Np的右方最左边叶节点Lm(r(Np))的图片数据(邻近注意数据picnew在右侧的图片数据)之间距离的距离,那么处理流程进入步骤S176。群集设备13更新分支节点Np和候选节点Nq。这是因为注意数据picnew属于候选丛集Cq,并且注意数据picnew可能属于包含在候选丛集Cq中的一个丛集。
即,在步骤S176,群集设备13把当前候选节点Nq作为新的分支节点Np,并把当前候选节点Nq的左节点l(Nq)作为新的候选节点Nq。
在完成步骤S176的处理之后,处理流程进入步骤S177,在步骤S177,群集设备13确定与新的候选节点Nq对应的候选丛集Cq是否只包含一条图片数据。
如果在步骤S177产生的确定结果指出与新的候选节点Nq对应的候选丛集Cq包含多条图片数据,即,如果候选节点Nq不是叶节点,而是具有子节点的父节点,那么处理流程进入步骤S179。按照与在步骤S172进行的处理相同的方式,群集设备13得到属于候选丛集Cq的所有两条相邻图片数据之间的最大距离dq,所述候选丛集Cq与通过在紧接于步骤S177之前的步骤S176进行的处理而获得的新的候选节点Nq对应。随后,处理流程进入下一步骤S180。
按照和步骤S174相同的方式,在步骤S180,群集设备13确定与候选节点Nq对应的候选丛集Cq中的最接近图片数据和注意数据picnew之间的距离dn是否大于(或者不小于)与候选节点Nq对应的候选丛集Cq中的所有两条相邻图片数据之间的最大距离dq。
如果在步骤S180产生的确定结果指出距离dn不大于最大距离dq,即,如果属于候选丛集Cq的所有两条相邻图片数据之间的距离包括大于(或者不小于)注意数据picnew和分配给分支节点Np的右方最左边叶节点Lm(r(Np))的图片数据(邻近注意数据picnew在右侧的图片数据)之间距离的距离,那么处理流程返回步骤S176。这是因为注意数据picnew属于候选丛集Cq,并且注意数据picnew可能属于包含在候选丛集Cq中的一个丛集。反复进行步骤S176和后续步骤的处理。
当在步骤S177产生的确定结果指出对应于新候选节点Nq的候选丛集Cq只包含一条图片数据,或者当在步骤S180产生的确定结果指出距离dn大于最大距离dq时,处理流程进入步骤S178。群集设备13把新节点Nin增加到保存在丛集树存储设备14中的丛集树中,并在结束函数ILM(Nq,Nnew)的处理之前,把零值作为函数ILM(Nq,Nnew)的返回值返回给调用程序。群集设备13把新节点Nin布置在丛集树中使新节点Nin充当分支节点Np的左节点l(Np),右节点r(Nin)变成候选节点Nq,以及左节点l(Nin)变成注意节点Nnew的位置。这是因为新的候选节点Nq是叶节点,或者注意数据picnew不属于与当前候选节点Nq对应的候选丛集Cq。
返回图30中所示的流程图。在步骤S111,群集设备13接收在由图34中所示的流程图表示的处理中返回的返回值(函数ILM(Nq,Nnew)的返回值),并把该值保存在变量TMP中。随后,处理流程进入下一步骤S109。
在步骤S109,群集设备13确定变量TMP的值是否为零。如果在步骤S109产生的确定结果指出变量TMP的值为零,那么群集设备13结束执行群集处理。
如果在步骤S109产生的确定结果指出变量TMP具有不同于零的值,即,如果变量TMP包含作为函数ILM(Nq,Nnew)的返回值,从由图34中所示的流程图表示的处理(函数ILM(Nq,Nnew)的处理)接收的新节点Nin,那么处理流程进入步骤S110。通过把在变量TMP中设定的新节点Nin用作新的丛集树的根节点Nroot,群集设备13把保存在丛集树存储设备14中的丛集树根节点更新为新的丛集树根节点。最后,群集设备13结束执行群集处理。
下面说明其中注意数据picnew既不是处理对象图片数据中的最早图片数据,又不是最新图片数据的情况。即,注意数据picnew是既不布置在按照从左到右的顺序(它表示拍摄日期/时间的顺序)排列的处理对象图片数据的阵列的左端,又不布置在其右端的图片数据。这种情况下,如前所述,由图30中所示的流程图表示的群集处理的流程从步骤S107进入步骤S112。在步骤S112,群集设备13调用以根节点Nroot和注意节点Nnew为其自变量的函数FBN(Nroot,Nnew),并接收函数FBN(Nroot,Nnew)的返回值。随后,群集设备13把返回值作为分支节点Np。具体地说,群集设备13把返回值保存在表示分支节点Np的变量中。
群集设备13调用以根节点Nroot和注意节点Nnew为其自变量的函数FBN(Nroot,Nnew),以便进行处理,从而按照和前面参考图28中所示的流程图说明的分支节点搜索处理相同的方式,找出注意数据picnew被分配给的指定注意节点Nnew的分支节点。
图35是表示函数FBN(Nroot,Nnew)的处理的流程图。
如图35中所示,该流程图从步骤S191开始,在步骤S191,群集设备13把保存在丛集树存储设备14中的当前丛集树的根节点Nroot作为暂定分支节点Np。随后,处理流程进入下一步骤S192。
在步骤S192,群集设备13根据保持在注意节点Nnew中的元数据,识别拍摄日期/时间t(Nnew),根据保存在左方最右边叶节点Rm(l(Np))中保持的元数据,识别拍摄日期/时间t(Rm(l(Np)))。如前所述,拍摄日期/时间t(Nnew)是分配给注意节点Nnew的注意数据picnew的拍摄日期/时间。另一方面,拍摄日期/时间t(Rm(l(Np)))是分配给暂定分支节点Np的左方最右边叶节点Rm(l(Np))的图片数据的拍摄日期/时间。随后,群集设备13确定分配给注意节点Nnew的注意数据picnew的拍摄日期/时间t(Nnew)是否早于分配给左方最右边叶节点Rm(l(Np))的图片数据的拍摄日期/时间t(Rm(l(Np)))。即,群集设备13确定关系t(Nnew)<t(Rm(l(Np)))是否成立。
如果在步骤S192产生的确定结果指出拍摄日期/时间t(Nnew)早于图片数据的拍摄日期/时间t(Rm(l(Np))),那么处理流程进入步骤S193。群集设备13用丛集树中,其左方最右边叶节点Rm(l(N))被布置在左方最右边叶节点Rm(l(Np))的左侧的节点替换暂定分支节点Np,因为暂定分支节点Np不是分配给注意节点Nnew的注意数据picnew的分支节点Np。这是因为暂定分支节点Np的左方最右边叶节点Rm(l(Np))目前被布置在注意数据picnew的右侧,尽管分配给暂定分支节点Np的左方最右边叶节点Rm(l(Np))的图片数据应是邻近分配给注意节点Nnew的注意数据picnew布置在左侧的图片数据,如图20中所示。
具体地说,在步骤S193,群集设备13用新的暂定分支节点Np替换当前的暂定分支节点Np,新的暂定分支节点Np是当前的暂定分支节点Np的左节点l(Np)。随后,处理流程从步骤S193进入步骤S196。
另一方面,如果在步骤S192产生的确定结果指出拍摄日期/时间t(Nnew)不早于图片数据的拍摄日期/时间t(Rm(l(Np))),那么处理流程进入步骤S194。群集设备13根据由右方最左边叶节点Lm(r(Np))保持的元数据,识别分配给暂定分支节点Np的右方最左边叶节点Lm(r(Np))的拍摄日期/时间t(Lm(r(Np)))。群集设备13确定分配给注意节点Nnew的注意数据picnew的拍摄日期/时间t(Nnew)是否晚于分配给右方最左边叶节点Lm(r(Np))的拍摄日期/时间t(Lm(r(Np)))。即,群集设备13确定关系t(Lm(r(Np)))<t(Nnew)是否成立。
如果在步骤S194产生的确定结果指出拍摄日期/时间t(Nnew)不晚于拍摄日期/时间t(Lm(r(Np))),即,如果拍摄日期/时间t(Nnew)晚于拍摄日期/时间t(Rm(l(Np))),但是早于拍摄日期/时间t(Rm(l(Np))),并且满足关系(7),那么通过把分支节点Np作为函数FBN(Nroot,Nnew)的返回值返回给调用程序,群集设备13结束处理的执行。具体地说,群集设备13返回表示节点的变量,所述节点被用作当前的暂定分支节点Np。
如果在步骤S194产生的确定结果指出拍摄日期/时间t(Nnew)晚于拍摄日期/时间t(Lm(r(Np))),那么处理流程进入步骤S195。群集设备13用丛集树中,其右方最左边叶节点Lm(r(N))被布置在右方最左边叶节点Lm(r(Np))的右侧的节点替换暂定分支节点Np,因为暂定分支节点Np不是分配给注意节点Nnew的注意数据picnew的分支节点Np。这是因为暂定分支节点Np的右方最左边叶节点Lm(r(Np))目前被布置在注意数据picnew的左侧,尽管分配给暂定分支节点Np的右方最左边叶节点Lm(r(Np))的图片数据应是邻近分配给注意节点Nnew的注意数据picnew布置在右侧的图片数据,如图20中所示。
具体地说,在步骤S195,群集设备13用新的暂定分支节点Np替换当前的暂定分支节点Np,新的暂定分支节点Np是当前的暂定分支节点Np的右节点r(Np)。
随后,处理流程从步骤S195进入步骤S196,在步骤S196,群集设备13确定与暂定分支节点Np对应的丛集是否包括一条以上的图片数据。
如果在步骤S196产生的确定结果指出与暂定分支节点Np对应的丛集包括一条以上的图片数据,即,如果暂定分支节点Np不是叶节点,那么处理流程返回步骤S192,重复上面说明的处理。
另一方面,如果在步骤S196产生的确定结果指出与暂定分支节点Np对应的丛集只包括一条图片数据,即,如果暂定分支节点Np是叶节点,那么通过把分支节点Np作为函数FBN(Nroot,Nnew)的返回值返回给调用程序,群集设备13结束处理的执行。具体地说,群集设备13返回表示节点的变量,所述节点被用作当前的暂定分支节点Np。
返回图30中所示的流程图。在步骤S112,群集设备13接收由图35中所示的流程图表示的处理产生的值,作为函数FBN(Nroot,Nnew)的返回值。随后,群集设备13把返回值作为分支节点Np。具体地说,群集设备13把返回值保存在代表分支节点Np的变量中。随后,处理流程进入下一步骤S113。
在步骤S113,群集设备13得到左丛集距离dl和右丛集距离dr。如前所述,左丛集距离dl是与在步骤S112找到的分支节点Np的左节点l(Np)对应的丛集Cl中的最接近图片数据与分配给注意节点Nnew的注意数据picnew之间的距离。另一方面,右丛集距离dr是与分支节点Np的右节点r(Np)对应的丛集Cr中的最接近图片数据与注意数据picnew之间的距离。
与分支节点Np的左节点l(Np)对应的丛集Cl中的最接近图片数据是属于与分支节点Np的左节点l(Np)对应的丛集Cl的所有图片数据中,拍摄日期/时间最接近注意数据Picnew的图片数据。
属于与分支节点Np的左节点l(Np)对应的丛集Cl的所有图片数据中,拍摄日期/时间和注意数据picnew最接近的图片数据是属于丛集Cl的多条图片数据中,布置在阵列右端的图片数据,即,分配给分支节点Np的左方最右边叶节点Rm(l(Np))的图片数据,或者邻近注意数据picnew布置在左侧的图片数据。
从而,通过按照等式(2)或(3)计算距离dpic(Rm(l(Nx)),Nnew),作为分配给分支节点Np的左方最右边叶节点Rm(l(Np))的图片数据和分配给注意节点Nnew的注意数据picnew之间的距离,可得到与分支节点Np的左节点l(Np)对应的丛集Cl中的最接近图片数据和分配给注意节点Nnew的注意数据picnew之间的左丛集距离dl。
出于同样的原因,通过按照等式(2)或(3)计算距离dpic(Lm(r(Np)),Nnew)(=dpic(Nnew,Lm(r(Np)))),作为分配给分支节点Np的右方最左边叶节点Lm(r(Np))的图片数据和分配给注意节点Nnew的注意数据picnew之间的距离,可得到与分支节点Np的右节点r(Np)对应的丛集Cl中的最接近图片数据和分配给注意节点Nnew的注意数据picnew之间的右丛集距离dr。
即,在步骤S113,群集设备13如上所述得到左丛集距离dl(=dpic(Rm(l(Np)),Nnew))和右丛集距离dr(=dpic(Nnew,Lm(r(Np))),并确定左丛集距离dl是否小于(或者不大于)右丛集距离dr。
如果在步骤S113产生的确定结果指出左丛集距离dl小于右丛集距离dr,即,如果注意数据picnew更接近于与分支节点Np的左节点l(Np)对应的丛集中的最接近图片数据,以致左节点l(Np)应被作为候选节点Nq,那么处理流程进入步骤S114。群集设备13把分支节点Np的左节点l(Np)作为候选节点Nq。随后,群集设备13调用以分支节点Np和注意节点Nnew为自变量的函数IRM(l(Np),Nnew),并接收函数IRM(l(Np),Nnew)返回的返回值,如前参考图33中所示的流程图说明的一样。随后,群集设备13把返回值保存在变量TMP中。
随后,处理流程从步骤S114进入步骤S115,在步骤S115,群集设备13确定变量TMP的值是否为零。如果确定结果指出变量TMP的值为零,那么群集设备13结束处理的执行。
如果在步骤S115产生的确定结果指出变量TMP具有不同于零的值,即,如果变量TMP具有表示作为函数IRM(Np,Nnew)的返回值,从函数IRM(Np,Nnew)接收的新节点Nin的值,如前参考图33中所示的流程图说明的那样,那么处理流程进入步骤S116。群集设备13把保存在丛集树存储设备14中的丛集树更新为新的丛集树,所述新的丛集树包括保存在变量TMP中的节点Nin,作为分支节点Np的左节点l(Np)。最后,处理的控制被返回给调用程序。
另一方面,如果在步骤S113产生的确定结果指出左丛集距离dl不小于右丛集距离dr,即,如果注意数据picnew更接近于与分支节点Np的右节点r(Np)对应的丛集中的最接近图片数据,以致右节点r(Np)应被作为候选节点Nq,那么处理流程进入步骤S117。群集设备13把分支节点Np的右节点r(Np)作为候选节点Nq。随后,群集设备13调用以分支节点Np和注意节点Nnew为自变量的函数ILM(r(Np),Nnew),并接收函数ILM(r(Np),Nnew)返回的返回值,如前参考图34中所示的流程图说明的一样。随后,群集设备13把返回值保存在变量TMP中。
随后,处理流程从步骤S117进入步骤S118,在步骤S118,群集设备13确定变量TMP的值是否为零。如果确定结果指出变量TMP的值为零,那么群集设备13结束处理的执行。
如果在步骤S118产生的确定结果指出变量TMP具有不同于零的值,即,如果变量TMP具有表示作为函数ILM(Np,Nnew)的返回值,从函数ILM(Np,Nnew)接收的新节点Nin的值,如前参考图34中所示的流程图说明的那样,那么处理流程进入步骤S119。群集设备13把保存在丛集树存储设备14中的丛集树更新为新的丛集树,所述新的丛集树包括保存在变量TMP中的节点Nin,作为分支节点Np的右节点r(Np)。最后,处理的控制被返回给调用程序。
下面参考图36-42,说明按照图30中所示的流程图,由群集设备13进行的群集处理产生的丛集树的例子。
要注意的是图片数据的拍摄位置用以某一位置为原点的xy坐标系的坐标(x,y)来表示,图片数据的拍摄日期/时间用以某一日期/时间为基准,通过测量获得的t秒来表示。用作xy坐标系的原点的某一位置的例子是照相机1的用户的家的位置。这种情况下,用于表示拍摄位置(x,y)的x和y坐标的单位可以是米或者另一距离标度。
在下面的说明中,图片数据的拍摄信息(x,y,t)被用于总体表示图片数据的拍摄位置(x,y)和拍摄日期/时间。
一般通过使用等式(2),得到图片数据pic#i和图片数据pic#j之间的距离dpic(i,j)。另外,等式(2)中的加权系数α,β和γ被如下设定α=β=1,γ=0。从而,假定图片数据pic#1的拍摄信息(x,y,t)是(x1,y1,t1),图片数据pic,2的拍摄信息(x,y,t)是(x2,y2,t2),那么图片数据pic#i和图片数据pic#j之间的距离dpic(i,j)被如下表示dpic(i,j)=|t1-t2|+|x1-x2|+|y1-y2|
图36表示利用照相机1获得的典型图片数据。
更具体地说,图36表示了9条图片数据,即图片数据pic1,pic2,pic3,pic4,pic5,pic6,pic7,pic8和pic9。
注意在图36中,每条图片数据pic#i(i=1,2,...,和9)被表示成一个正方形标志。每条图片数据的正方形标志中的符号(x,y,t)表示图片数据的拍摄信息。另外在图36中,图片数据pic#i的正方形标志被布置在图片数据pic#i的拍摄位置(x,y)。
在图36中,图片数据pic1的拍摄位置(x,y)为(0,0),图片数据pic1的拍摄日期/时间t为0。图片数据pic2的拍摄位置(x,y)为(0,10),图片数据pic2的拍摄日期/时间t为10。图片数据pic3的拍摄位置(x,y)为(20,10),图片数据pic3的拍摄日期/时间t为40。图片数据pic4的拍摄位置(x,y)为(20,20),图片数据pic4的拍摄日期/时间t为60。图片数据pic5的拍摄位置(x,y)为(60,20),图片数据pic5的拍摄日期/时间t为100。图片数据pic6的拍摄位置(x,y)为(20,40),图片数据pic6的拍摄日期/时间t为80。图片数据pic7的拍摄位置(x,y)为(10,20),图片数据pic7的拍摄日期/时间t为70。图片数据pic8的拍摄位置(x,y)为(5,10),图片数据pic8的拍摄日期/时间t为20。图片数据pic9的拍摄位置(x,y)为(12,10),图片数据pic9的拍摄日期/时间t为20。
图37表示通过进行由图30中所示的流程图表示的群集处理而获得的丛集树。在图37中所示的丛集树中,从图36中所示的9条图片数据,即图片数据pic1-pic9中相继选择的特定注意数据picnew是4条图片数据,即图片数据pic1-pic4。
图片数据pic1-pic4的拍摄日期/时间分别为0,10,40和60,如图36中所示。从而,按照拍摄日期/时间的顺序,图片数据pic1-pic4被顺序排列成pic1,pic2,pic3和pic4。
在包括按照拍摄日期/时间的顺序,排列在图37中所示的丛集树中的图片数据pic1-pic4的阵列中,叶节点N1被分配给图片数据pic1,叶节点N2被分配给图片数据pic2,叶节点N3被分配给图片数据pic3,叶节点N4被分配给图片数据pic4。叶节点N1和N2分别充当节点N12的左节点和右节点。另一方面,叶节点N3和N4分别充当节点N34的左节点和右节点。节点N12和N34分别充当节点N1234的左节点和右节点。
在下面的说明中,符号dij表示图片数据pic#i和图片数据pic#j之间的距离dpic(i,j)。
如下得到在包括按照拍摄日期/时间的顺序,排列在丛集树中的图片数据pic1-pic4的阵列中,彼此相邻的图片数据pic#i和图片数据pic#(i+1)之间的距离dij。
图片数据pic1和图片数据pic2之间的距离d12为|0-0|+|0-10|+|0-10|=20。图片数据pic2和图片数据pic3之间的距离d23为|0-20|+|10-10|+|10-40|=50。图片数据pic3和图片数据pic4之间的距离d34为|20-20|+|10-20|+|40-60|=30。
下面参考图38,说明通过执行由图30中所示的流程图表示的群集处理而获得的丛集树。图片数据pic5充当注意数据picnew,注意数据picnew和已被群集的图片数据pic1-pic4充当处理对象图片数据。
如上所述,已被群集的图片数据pic1-pic4的拍摄日期/时间t分别为0,10,40和60。另一方面,充当注意数据picnew的图片数据pic5的拍摄日期/时间t为100。从而,充当处理对象图片数据的图片数据pic1-pic5的拍摄日期/时间被按照pic1,pic2,pic3,pic4和pic5的顺序排列,第一个图片数据pic1被放置在图38的左端。
已被分配给当前丛集树的叶节点的图片数据,即图片数据pic1-pic4的数目为4。从而,当从用作注意数据picnew的图片数据pic5开始由图30中所示的流程图表示的群集处理时,处理流程从步骤S101进入步骤S106。在步骤S106,通过从根节点Nroot(N1234)下溯当前丛集树的弧线,搜索节点,以寻找布置在右端的最右边叶节点Rm(Nroot),即,寻找位于丛集树右端的叶节点Rm(Nroot)。随后,如上所述,确定分配给最右边的叶节点Rm(Nroot)的图片数据的拍摄日期/时间t(Rm(Nroot))是否早于分配给注意节点Nnew的注意数据picnew的拍摄日期/时间t(Nnew)。
这种情况下,分配给丛集树的最右边的叶节点Rm(Nroot)的图片数据是图片数据pic4,图片数据pic4的拍摄日期/时间t为60。另一方面,用作注意节点Nnew的图片数据pic5的拍摄日期/时间t为100。
从而,在步骤S106产生的确定结果指出分配给最右边的叶节点Rm(Nroot)的图片数据的拍摄日期/时间t(Rm(Nroot))早于分配给注意节点Nnew的注意数据picnew的拍摄日期/时间t(Nnew)。这是因为拍摄日期/时间t(Rm(Nroot))为60,拍摄日期/时间t(Nnew)为100。这种情况下,处理流程从步骤S106进入步骤S108,调用由图33中所示的流程图表示的,分别以表示根节点Nroot(N1234)和注意节点Nnew的变量作为Nq和Nnew自变量的函数IRM(Nq,Nnew)。
在由图33中所示的流程图表示的函数IRM(Nq,Nnew)的处理的步骤S152,如上所述,属于与候选节点Nq对应的候选丛集Cq的所有两条相邻图片数据之间的最大距离dq被计算为分配给候选节点Nq的左方最右边叶节点Rm(l(Nq))的图片数据和分配给候选节点Nq的右方最左边叶节点Lm(r(Nq))的图片数据之间的距离dpic(Rm(l(Nq)),Lm(r(Nq)))。
这种情况下,由于候选节点Nq是根节点N1234,因此分配给左方最右边叶节点Rm(l(Nq))的图片数据是图片数据pic2,而分配给右方最左边叶节点Lm(r(Nq))的图片数据是图片数据pic3。从而,在步骤S152,作为最大距离dq,得到图片数据pic2和图片数据pic3之间的距离。
如图37中所示,图片数据pic2和图片数据pic3之间的距离为50。从而,最大距离dq被认为为50,如图38的左端的第二个丛集树中所示。
随后,在由图33中所示的流程图表示的函数IRM(Nq,Nnew)的处理的步骤S153,如上所述,与候选节点Nq对应的候选丛集Cq中的最接近图片数据和分配给注意节点Nnew的注意数据picnew之间的距离dn被计算为分配给分支节点Np的左方最右边叶节点Rm(l(Np))的图片数据和注意数据picnew之间的距离dpic(Rm(l(Np)),Nnew)。
在由图33中所示的流程图表示的函数IRM(Nq,Nnew)的处理的步骤S151,候选节点Nq是根节点N1234,以候选节点Nq作为左节点l(Np)的节点被用作分支节点Np。这种情况下,分配给分支节点Np的左方最右边叶节点Rm(l(Np))的图片数据是分配给通过从候选节点Nq,沿弧线下溯丛集树可到达的叶节点中的最右边叶节点Rm(Nq)的图片数据,所述候选节点Nq是左节点l(Nq),分配给最右边的叶节点Rm(Nq)的图片数据是邻近注意数据picnew在左侧的图片数据。
邻近充当注意数据picnew的图片数据pic5在左侧的图片数据是图片数据pic4。图片数据pic4的拍摄信息(x,y,t)是(20,20,60)。另一方面,图片数据pic5的拍摄信息(x,y,t)是(60,20,100)。从而,候选丛集Cq中的最接近图片数据和分配给注意节点Nnew的注意数据picnew之间的距离dn是图片数据pic4和图片数据pic5之间的距离,图片数据pic4和图片数据pic5之间的距离为|20-60|+|20-20|+|60-100|=80,如图38左端的第二个丛集树中所示。
从上面的说明可看出,在由图33中所示的流程图表示的函数IRM(Nq,Nnew)的处理的步骤S154产生的确定结果指出距离dn(=80)大于最大距离dq(=50),导致处理流程进入步骤S155。一个新节点Nin被增加到丛集树中,并被放置在使左节点l(Nin)充当候选节点Nq,使右节点r(Nin)充当注意节点Nnew的位置。
即,在候选节点Nq是根节点N1234的情况下,新节点Nin被增加到丛集树中,并被放置在使根节点N1234变成左节点l(Nin),使注意节点Nnew变成右节点r(Nin)的位置,如图38左端的第二个丛集树中所示。
随后,处理的控制从由图33中所示的流程图表示的函数IRM(Nq,Nnew)的处理返回到图30中所示的流程图的步骤S108。在步骤S110,作为根节点的新节点Nin被增加到丛集树中。从而,在Nin充当其根节点的情况下,获得与图38左端的第三个丛集树或者说图38右端的第一个丛集树类似的丛集树。
下面,参考图39,说明通过执行由图30中所示的流程图表示的群集处理而获得的丛集树。图片数据pic6充当注意数据picnew,已被群集的图片数据pic1-pic4,以及注意数据picnew充当处理对象图片数据。
如上所述,已被群集的图片数据pic1-pic4的拍摄日期/时间t分别为0,10,40和60。另一方面,用作注意数据picnew的图片数据pic6的拍摄日期/时间t为80。从而,充当处理对象图片数据的图片数据pic1-pic6的拍摄日期/时间被按照pic1,pic2,pic3,pic4和pic6的顺序排列,第一个图片数据pic1被布置在图39的左端。
已被分配给当前丛集树的叶节点的图片数据,即图片数据pic1-pic4的数目为4。从而,当从用作注意数据picnew的图片数据pic6开始由图30中所示的流程图表示的群集处理时,处理流程从步骤S101进入步骤S106。在步骤S106,通过从根节点Nroot(N1234)下溯当前丛集树的弧线,搜索节点,以寻找布置在右端的最右边叶节点Rm(Nroot),即,寻找位于丛集树右端的叶节点Rm(Nroot)。随后,如上所述,确定分配给最右边的叶节点Rm(Nroot)的图片数据的拍摄日期/时间t(Rm(Nroot))是否早于分配给注意节点Nnew的注意数据picnew的拍摄日期/时间t(Nnew)。
这种情况下,分配给丛集树的最右边的叶节点Rm(Nroot)的图片数据是图片数据pic4,图片数据pic4的拍摄日期/时间t为60。另一方面,用作注意节点Nnew的图片数据pic6的拍摄日期/时间t为80。
从而,在步骤S106产生的确定结果指出分配给最右边的叶节点Rm(Nroot)的图片数据的拍摄日期/时间t(Rm(Nroot))早于分配给注意节点Nnew的注意数据picnew的拍摄日期/时间t(Nnew)。这是因为拍摄日期/时间t(Rm(Nroot))为60,拍摄日期/时间t(Nnew)为80。这种情况下,处理流程从步骤S106进入步骤S108,调用由图33中所示的流程图表示的,分别以表示根节点Nroot(N1234)和注意节点Nnew的变量作为Nq和Nnew自变量的函数IRM(Nq,Nnew)。
在由图33中所示的流程图表示的函数IRM(Nq,Nnew)的处理的步骤S152,如上所述,属于与候选节点Nq对应的候选丛集Cq的所有两条相邻图片数据之间的最大距离dq被计算为分配给候选节点Nq的左方最右边叶节点Rm(l(Nq))的图片数据和分配给候选节点Nq的右方最左边叶节点Lm(r(Nq))的图片数据之间的距离dpic(Rm(l(Nq)),Lm(r(Nq)))。
这种情况下,由于候选节点Nq是根节点N1234,因此分配给左方最右边叶节点Rm(l(Nq))的图片数据是图片数据pic2,而分配给右方最左边叶节点Lm(r(Nq))的图片数据是图片数据pic3。从而,在步骤S152,作为最大距离dq,得到图片数据pic2和图片数据pic3之间的距离。
如图37中所示,图片数据pic2和图片数据pic3之间的距离为50。从而,最大距离dq被认为为50,如在图39左端的第二个丛集树上面的顶部丛集树中所示。
随后,在由图33中所示的流程图表示的函数IRM(Nq,Nnew)的处理的步骤S153,如上所述,候选丛集Cq中的最接近图片数据和分配给注意节点Nnew的注意数据picnew之间的距离dn被计算为分配给分支节点Np的左方最右边叶节点Rm(l(Np))的图片数据和注意数据picnew之间的距离dpic(Rm(l(Np)),Nnew)。
在由图33中所示的流程图表示的函数IRM(Nq,Nnew)的处理的步骤S151,候选节点Nq是根节点N1234,以候选节点Nq作为左节点l(Np)的节点被用作分支节点Np。这种情况下,分配给分支节点Np的左方最右边叶节点Rm(l(Np))的图片数据是分配给通过从候选节点Nq,沿弧线下溯丛集树可到达的叶节点中的最右边叶节点Rm(Nq)的图片数据,所述候选节点Nq是左节点l(Nq),分配给最右边的叶节点Rm(Nq)的图片数据是邻近注意数据picnew在左侧的图片数据。
邻近充当注意数据picnew的图片数据pic6在左侧的图片数据是图片数据pic4。图片数据pic4的拍摄信息(x,y,t)是(20,20,60)。另一方面,图片数据pic6的拍摄信息(x,y,t)是(20,40,80)。从而,候选丛集Cq中的最接近图片数据和分配给注意节点Nnew的注意数据picnew之间的距离dn是图片数据pic4和图片数据pic6之间的距离,图片数据pic4和图片数据pic6之间的距离为|20-20|+|20-40|+|60-80|=40,如图39左端的第二个丛集树中所示。
从上面的说明可看出,在由图33中所示的流程图表示的函数IRM(Nq,Nnew)的处理的步骤S154产生的确定结果指出距离dn(=40)不大于最大距离dq(=50),导致处理流程进入步骤S156。分支节点Np被候选节点Nq代替,候选节点Nq被候选节点Nq的右节点r(Nq)代替。由于根节点N1234充当候选节点Nq,因此根节点N1234被用作新的分支节点Np,充当根节点N1234的右节点的节点N34被用作新的候选节点Nq。
如从图39顶部开始的,另外从图39左端开始的第二丛集树中所示,与充当新候选节点Nq的节点N34对应的丛集C34包括两条图片数据,即图片数据pic3和pic4。在步骤S156更新候选节点Nq和分支节点Np之后,处理流程通过步骤S157进入步骤S159。在步骤S159,按照和步骤S152相同的方式,得到分配给新候选节点Nq的左方最右边叶节点Rm(l(Nq))的图片数据与分配给新候选节点Nq的右方最左边叶节点Lm(r(Nq))的图片数据之间的距离dpic(Rm(l(Nq)),Lm(r(Nq))),作为属于与候选节点Nq对应的候选丛集Cq的所有两条相邻图片数据之间的最大距离dq。
这样,由于新的候选节点Nq是节点N34,因此分配给左方最右边叶节点Rm(l(Nq))的图片数据是图片数据pic3,而分配给右方最左边叶节点Lm(r(Nq))的图片数据是图片数据pic4。从而,在步骤S159,得到图片数据pic3和pic4之间的距离作为最大距离dq。
如图37中所示,图片数据pic3和图片数据pic4之间的距离为30。从而,最大距离dq被认为是30,如从图39顶部开始的,另外从图39左端开始的第二丛集树中所示。
在如上所述在步骤S159得到最大距离dq之后,处理流程进入下一步骤S160,在步骤S160,比较距离dn与最大距离dq,以便确定距离dn是否大于最大距离dq。这种情况下,由于距离dn为40,最大距离dq为30,确定结果指出距离dn大于最大距离dq,导致处理流程进入步骤S158。一个新节点Nin被增加到丛集树中,并被放置在丛集树中的使新节点Nin充当分支节点Np的右节点r(Np),左节点l(Nin)变成候选节点Nq,并且右节点r(Nin)变成注意节点Nnew的位置。
这种情况下,由于新的候选节点Nq是节点N34,分支节点Np是根节点N1234,如从图39顶部开始的,另外从图39左端开始的第二丛集树中所示,新节点Nin被增加到丛集树中,并被放置在丛集树中的使新节点Nin充当根节点N1234的右节点r(Np),左节点l(Nin)变成节点N34,右节点r(Nin)变成注意节点Nnew的位置。
随后,处理的控制从由图33中所示的流程图表示的函数IRM(Nq,Nnew)的处理返回到图30中所示的流程图的步骤S108。从而,在节点N1234照样充当其根节点的情况下,获得与图39左端的第三个丛集树或者说图39右端的第一个丛集树类似的丛集树。
下面参考图40,说明通过对充当注意数据picnew的图片数据pic7,和包括注意数据picnew及已被群集的图片数据pic1-pic4的处理对象图片数据,执行由图30中所示的流程图表示的群集处理而获得的丛集树。
如上所述,已被群集的图片数据pic1-pic4的拍摄日期/时间t分别为0,10,40和60。另一方面,用作注意数据picnew的图片数据pic7的拍摄日期/时间t为70。从而,充当处理对象图片数据的图片数据pic1-pic7的拍摄日期/时间t被按照pic1,pic2,pic3,pic4和pic7的顺序排列,第一个图片数据pic1被布置在图40的左端。
已被分配给当前丛集树的叶节点的图片数据,即图片数据pic1-pic4的数目为4。从而,当从用作注意数据picnew的图片数据pic7开始由图30中所示的流程图表示的群集处理时,处理流程从步骤S101进入步骤S106。从根节点Nroot(N1234)搜索通过下溯当前丛集树的弧线可找到的节点,寻找布置在右端的最右边叶节点Rm(Nroot),即,寻找位于丛集树右端的叶节点Rm(Nroot)。随后,如上所述,确定分配给最右边的叶节点Rm(Nroot)的图片数据的拍摄日期/时间t(Rm(Nroot))是否早于分配给注意节点Nnew的注意数据picnew的拍摄日期/时间t(Nnew)。
这种情况下,分配给丛集树的最右边的叶节点Rm(Nroot)的图片数据是图片数据pic4,图片数据pic4的拍摄日期/时间t为60。另一方面,用作注意节点Nnew的图片数据pic7的拍摄日期/时间t为70。
从而,在步骤S106产生的确定结果指出分配给最右边的叶节点Rm(Nroot)的图片数据的拍摄日期/时间t(Rm(Nroot))早于分配给注意节点Nnew的注意数据picnew的拍摄日期/时间t(Nnew)。这是因为拍摄日期/时间t(Rm(Nroot))为60,拍摄日期/时间t(Nnew)为70。这种情况下,处理流程从步骤S106进入步骤S108,调用由图33中所示的流程图表示的,分别以表示根节点Nroot(N1234)和注意节点Nnew的变量作为Nq和Nnew自变量的函数IRM(Nq,Nnew)。
在由图33中所示的流程图表示的函数IRM(Nq,Nnew)的处理的步骤S152,如上所述,属于与候选节点Nq对应的候选丛集Cq的所有两条相邻图片数据之间的最大距离dq被计算为分配给候选节点Nq的左方最右边叶节点Rm(l(Nq))的图片数据和分配给候选节点Nq的右方最左边叶节点Lm(r(Nq))的图片数据之间的距离dpic(Rm(l(Nq)),Lm(r(Nq)))。
这种情况下,候选节点Nq是根节点N1234。从而,和图38及39中所示的情况很相似,图片数据pic2和图片数据pic3之间的距离(它为50)被认为是最大距离dq,如在图40左端的第二丛集树之上的丛集树中所示。
随后,在由图33中所示的流程图表示的函数IRM(Nq,Nnew)的处理的步骤S153,如上所述,在分配给分支节点Np的左方最右边叶节点Rm(l(Np))的图片数据和注意数据picnew之间计算候选丛集Cq中的最接近图片数据和注意数据picnew之间的距离dn。
在由图33中所示的流程图表示的函数IRM(Nq,Nnew)的处理的步骤S151,候选节点Nq是根节点N1234,以候选节点Nq作为左节点l(Np)的节点被用作分支节点Np。这种情况下,分配给分支节点Np的左方最右边叶节点Rm(l(Np))的图片数据是分配给通过从候选节点Nq,沿弧线下溯丛集树可到达的叶节点中的最右边叶节点Rm(Np)的图片数据,所述候选节点Nq是左节点l(Nq),分配给最右边的叶节点Rm(Np)的图片数据是邻近注意数据picnew在左侧的图片数据。
邻近充当注意数据picnew的图片数据pic7在左侧的图片数据是图片数据pic4。图片数据pic4的拍摄信息(x,y,t)是(20,20,60)。另一方面,图片数据pic7的拍摄信息(x,y,t)是(10,20,70)。从而,候选丛集Cq中的最接近图片数据和分配给注意节点Nnew的注意数据picnew之间的距离dn是图片数据pic4和图片数据pic7之间的距离,图片数据pic4和图片数据pic7之间的距离为|20-10|+|20-20|+|60-70|=20,如图40左端的第二个丛集树中所示。
从上面的说明可看出,在由图33中所示的流程图表示的函数IRM(Nq,Nnew)的处理的步骤S154产生的确定结果指出距离dn(=20)不大于最大距离dq(=50),导致处理流程进入步骤S156。分支节点Np被候选节点Nq代替,候选节点Nq被候选节点Nq的右节点r(Nq)代替。由于根节点N1234充当候选节点Nq,因此根节点N1234被用作新的分支节点Np,充当根节点N1234的右节点的节点N34被用作新的候选节点Nq。
如从图40顶部开始以及从图40左端开始的第二丛集树中所示,与充当新候选节点Nq的节点N34对应的丛集C34包括两条图片数据,即图片数据pic3和pic4。在步骤S156更新候选节点Nq和分支节点Np之后,处理流程通过步骤S157进入步骤S159。在步骤S159,按照和步骤S152相同的方式,得到分配给新候选节点Nq的左方最右边叶节点Rm(l(Nq))的图片数据与分配给新候选节点Nq的右方最左边叶节点Lm(r(Nq))的图片数据之间的距离dpic(Rm(l(Nq)),Lm(r(Nq))),作为属于与候选节点Nq对应的候选丛集Cq的所有两条相邻图片数据之间的最大距离dq。
这样,由于新的候选节点Nq是节点N34,因此分配给左方最右边叶节点Rm(l(Nq))的图片数据是图片数据pic3,而分配给右方最左边叶节点Lm(r(Nq))的图片数据是图片数据pic4。从而,在步骤S159,得到图片数据pic3和pic4之间的距离作为最大距离dq。
如图37中所示,图片数据pic3和图片数据pic4之间的距离为30。从而,最大距离dq被认为是30,如从图40顶部开始以及从图40左端开始的第二丛集树中所示。
在如上所述在步骤S159得到最大距离dq之后,处理流程进入下一步骤S160,在步骤S160,比较距离dn与最大距离dq,以便确定距离dn是否大于最大距离dq。这种情况下,由于距离dn为20,最大距离dq为30,确定结果指出距离dn不大于最大距离dq,导致处理流程返回步骤S156。如上所述,分支节点Np被候选节点Nq代替,候选节点Nq被候选节点Nq的右节点r(Nq)代替。
由于节点N34充当候选节点Nq,因此节点N34被用作新的分支节点Np,充当根节点N34的右节点的节点N4被用作新的候选节点Nq。
如同布置在图40底部的充当图40左端的第二个丛集树的丛集树中所示,与新的候选节点N4对应的丛集C4只包括一个图片数据pic4。在步骤S156更新候选节点Nq和分支节点Np之后,处理流程通过步骤S157进入步骤S158。在步骤S158,一个新节点Nin被增加到丛集树中,并被放置在丛集树中的使新节点Nin充当分支节点Np的右节点r(Np),新节点Nin的左节点1(Nin)变成候选节点Nq,并且新节点Nin的右节点r(Nin)变成注意节点Nnew的位置。
这种情况下,由于新的候选节点Nq是节点N4,分支节点Np是节点N34,如同布置在图40底部的充当图40左端的第二个丛集树的丛集树中所示,新节点Nin被增加到丛集树中,并被放置在丛集树中的使新节点Nin充当节点N34的右节点r(Np),新节点Nin的左节点l(Nin)变成节点N4,新节点Nin的右节点r(Nin)变成注意节点Nnew的位置。
随后,处理的控制从由图33中所示的流程图表示的函数IRM(Nq,Nnew)的处理返回到图30中所示的流程图的步骤S108。从而,在节点N1234照样充当其根节点的情况下,获得与图40左端的第三个丛集树或者说图40右端的第一个丛集树类似的丛集树。
下面参考图41,说明通过对充当注意数据picnew的图片数据pic8,和包括注意数据picnew及已被群集的图片数据pic1-pic4的处理对象图片数据,执行由图30中所示的流程图表示的群集处理而获得的丛集树。
如上所述,已被群集的图片数据pic1-pic4的拍摄日期/时间t分别为0,10,40和60。另一方面,用作注意数据picnew的图片数据pic8的拍摄日期/时间t为20。从而,充当处理对象图片数据的图片数据pic1-pic8的拍摄日期/时间t被按照pic1,pic2,pic8,pic3和pic4的顺序排列,第一个图片数据pic1被布置在图41的左端。
已被分配给当前丛集树的叶节点的图片数据,即图片数据pic1-pic4的数目为4。从而,当从用作注意数据picnew的图片数据pic8开始由图30中所示的流程图表示的群集处理时,处理流程从步骤S101进入步骤S106。从根节点Nroot(N1234)搜索通过下溯当前丛集树的弧线可找到的节点,以寻找布置在右端的最右边叶节点Rm(Nroot),即,寻找位于丛集树右端的叶节点Rm(Nroot)。随后,如上所述,确定分配给最右边的叶节点Rm(Nroot)的图片数据的拍摄日期/时间t(Rm(Nroot))是否早于分配给注意节点Nnew的注意数据picnew的拍摄日期/时间t(Nnew)。
这种情况下,分配给丛集树的最右边的叶节点Rm(Nroot)的图片数据是图片数据pic4,图片数据pic4的拍摄日期/时间t为60。另一方面,用作注意节点Nnew的图片数据pic8的拍摄日期/时间t为20。
从而,在步骤S106产生的确定结果指出分配给最右边的叶节点Rm(Nroot)的图片数据的拍摄日期/时间t(Rm(Nroot))不早于分配给注意节点Nnew的注意数据picnew的拍摄日期/时间t(Nnew)。这是因为拍摄日期/时间t(Rm(Nroot))为60,拍摄日期/时间t(Nnew)为20。这种情况下,处理流程从步骤S106进入步骤S107,如上所述,确定分配给注意节点Nnew的注意数据picnew的拍摄日期/时间t(Nnew)是否早于分配给最左边的叶节点Lm(Nroot)的图片数据的拍摄日期/时间t(Lm(Nroot))。另外还被称为位于丛集树的左端的叶节点Lm(Nroot),通过从根节点Nroot下溯当前丛集树的弧线,可找到最左边的叶节点Lm(Nroot)。
分配给最左边的叶节点Lm(Nroot)的图片数据是图片数据pic1,其拍摄日期/时间t为0。另一方面,充当注意数据picnew的图片数据是图片数据pic8,其拍摄日期/时间t为20。
从而,在步骤S107产生的确定结果指出分配给注意节点Nnew的注意数据picnew的拍摄日期/时间t(Nnew)不早于分配给最左边的叶节点Lm(Nroot)的图片数据的拍摄日期/时间t(Lm(Nroot))。这是因为拍摄日期/时间t(Nnew)为20,而拍摄日期/时间t(Lm(Nroot))为0。这种情况下,处理流程进入步骤S112,调用由图35中所示的流程图表示的函数FBN(Nroot,Nnew)。
在由图35中所示的流程图表示的函数FBN(Nroot,Nnew)的步骤S191,当前丛集树的根节点Nroot(或者N1234)被作为暂定分支节点Np。随后,处理流程进入下一步骤S192,确定分配给注意节点Nnew的注意数据picnew的拍摄日期/时间t(Nnew)是否早于分配给左方最右边叶节点Rm(l(Np))的图片数据的拍摄日期/时间t(Rm(l(Np)))。即,在步骤S192产生的确定结果是关于关系t(Nnew)<t(Rm(l(Np)))是否成立的确定结果。
这种情况下,注意数据picnew(它是图片数据pic8)的拍摄日期/时间t(Nnew)为20。分支节点Np是根节点N1234,从而,左方最右边叶节点Rm(l(Np))是分配给图片数据pic2的叶节点N2,图片数据pic2具有为10的拍摄日期/时间t(Rm(l(Np)))。
因此,在步骤S192产生的确定结果指出分配给注意节点Nnew的注意数据picnew的拍摄日期/时间t(Nnew)不早于分配给左方最右边叶节点Rm(l(Np))的图片数据的拍摄日期/时间t(Rm(l(Np)))。这是因为拍摄日期/时间t(Nnew)为20,而拍摄日期/时间t(Rm(l(Np)))为10。这种情况下,处理流程进入步骤S194,确定分配给注意节点Nnew的注意数据picnew的拍摄日期/时间t(Nnew)是否晚于分配给右方最左边叶节点Lm(r(Np))的图片数据的拍摄日期/时间t(Lm(r(Np)))。即,在步骤S194产生的确定结果是关于关系t(Lm(r(Np)))<t(Nnew)是否成立的确定结果。
这种情况下,暂定分支节点Np是根节点N1234,从而,右方最左边叶节点Lm(r(Np))是被分配图片数据pic3的叶节点N3,图片数据pic3具有为40的拍摄日期/时间t(Lm(r(Np)))。
因此,在步骤S194产生的确定结果指出拍摄日期/时间t(Nnew)不晚于分配给右方最左边叶节点Lm(r(Np))的图片数据的拍摄日期/时间t(Lm(r(Np)))。这是因为拍摄日期/时间t(Nnew)为20,而拍摄日期/时间t(Lm(r(Np)))为40。这种情况下,作为函数FBN(Nroot,Nnew)的返回值,充当目前的暂定分支节点Np的根节点N1234被返回给调用程序,所述调用程序实现由图30中所示的流程图表示的群集处理。
从而,在图30中所示的流程图的步骤S112,根节点N1234被作为分支节点Np。随后,处理流程进入下一步骤S113,比较左丛集距离dl与右丛集距离dr。如前所述,左丛集距离dl是与分支节点Np的左节点l(Np)对应的丛集Cl中的最接近图片数据与分配给注意节点Nnew的注意数据picnew之间的距离。另一方面,右丛集距离dr是与分支节点Np的右节点r(Np)对应的丛集Cr中的最接近图片数据与注意数据picnew之间的距离。
从而,与分支节点Np的左节点l(Np)对应的丛集Cl中的最接近图片数据与分配给注意节点Nnew的注意数据picnew之间的左丛集距离dl也是分配给分支节点Np的左方最右边叶节点Rm(l(Np))的图片数据与分配给注意节点Nnew的注意数据picnew之间的距离dpic(Rm(l(Np)),Nnew)。
这种情况下,由于分支节点Np是根节点N1234,因此左丛集距离dl是分配给根节点N1234的左方最右边叶节点Rm(l(Np))的图片数据与分配给注意节点Nnew的注意数据picnew之间的距离dpic(Rm(l(Np)),Nnew),或者说图片数据pic2与图片数据pic8之间的距离。
图片数据pic2的拍摄信息(x,y,t)是(0,10,10),而图片数据pic8的拍摄信息(x,y,t)是(5,10,20)。从而,表示图片数据pic2与图片数据pic8之间距离的左丛集距离dl为|0-5|+|10-10|+|10-20|=15。
出于同样的原因,右丛集距离dr是分配给根节点N1234的右方最左边叶节点Lm(r(Np))的图片数据与分配给注意节点Nnew的注意数据picnew之间的距离dpic(Lm(r(Np)),Nnew)或者说距离dpic(Nnew,Lm(r(Np)))。
图片数据pic3的拍摄信息(x,y,t)是(20,10,40),而图片数据pic8的拍摄信息(x,y,t)是(5,10,20)。从而,表示图片数据pic3与图片数据pic8之间距离的右丛集距离dr为|20-5|+|10-10|+|40-20|=35。
因此,在图30中所示的流程图的步骤S113产生的确定结果指出左丛集距离dl(=15)小于右丛集距离dr(=35),导致处理流程进入步骤S114,通过把Nq自变量设定在分支节点Np(它是根节点N1234)的左节点l(Np),即通过把Nq自变量设定在节点N12,调用由图33中所示的流程图表示的函数IRM(Nq,Nnew)。
在由图33中所示的流程图表示的函数IRM(Nq,Nnew)的处理的步骤S152,如上所述,属于与候选节点Nq对应的候选丛集Cq的所有两条相邻图片数据之间的最大距离dq被计算为分配给候选节点Nq的左方最右边叶节点Rm(l(Nq))的图片数据和分配给候选节点Nq的右方最左边叶节点Lm(r(Nq))的图片数据之间的距离dpic(Rm(l(Nq)),Lm(r(Nq)))。
这种情况下,由于候选节点Nq是N12,因此分配给候选节点Nq的左方最右边叶节点Rm(l(Nq))的图片数据是图片数据pic1,而分配给候选节点Nq的右方最左边叶节点Lm(r(Nq))的图片数据是图片数据pic2。从而,在步骤S152,图片数据pic1和pic2之间的距离被认为是最大距离dq。
如图37中所示,图片数据pic1和pic2之间的距离为20。从而,最大距离dq被认为是20,如图41左端的第二个丛集树中所示。
随后,在由图33中所示的流程图表示的函数IRM(Nq,Nnew)的处理的步骤S153,如上所述,对应于候选节点Nq的候选丛集Cq中的最接近图片数据和分配给注意节点Nnew的注意数据picnew之间的距离dn被计算为分配给分支节点Np的左方最右边叶节点Rm(l(Np))的图片数据和注意数据picnew之间的距离dpic(Rm(l(Np)),Nnew)。
在由图33中所示的流程图表示的函数IRM(Nq,Nnew)的处理的步骤S151,候选节点Nq是节点N12,以候选节点Nq作为左节点l(Np)的节点被用作分支节点Np。由于候选节点Nq是节点N12,因此以候选节点N12作为左节点l(Np)的节点从而是根节点N1234。这种情况下,分配给分支节点Np的左方最右边叶节点Rm(l(Np))的图片数据是分配给通过从候选节点Nq,沿弧线下溯丛集树可到达的叶节点中的最右边叶节点Rm(Nq)的图片数据,所述候选节点Nq是左节点l(Np),分配给最右边的叶节点Rm(Nq)的图片数据是邻近注意数据picnew在左侧的图片数据。
邻近充当注意数据picnew的图片数据pic8在左侧的图片数据是图片数据pic2。图片数据pic2的拍摄信息(x,y,t)是(0,10,10)。另一方面,图片数据pic8的拍摄信息(x,y,t)是(5,10,20)。从而,候选丛集Cq中的最接近图片数据和分配给注意节点Nnew的注意数据picnew之间的距离dn是图片数据pic2和图片数据pic8之间的距离,图片数据pic2和图片数据pic8之间的距离为|0-5|+|10-10|+|10-20|=15,如图41左端的第二个丛集树中所示。
从上面的说明可看出,在由图33中所示的流程图表示的函数IRM(Nq,Nnew)的处理的步骤S154产生的确定结果指出距离dn(=15)不大于最大距离dq(=20),导致处理流程进入步骤S156。如上所述,分支节点Np被候选节点Nq代替,候选节点Nq被候选节点Nq的右节点r(Nq)代替。即,由于节点N12充当候选节点Nq,因此节点N12被用作新的分支节点Np,充当根节点N12的右节点的节点N2被用作新的候选节点Nq。
如图41左端的第二个丛集树中所示,与充当新候选节点Nq的节点N2对应的丛集C2只包括图片数据pic2。从而,在步骤S156更新候选节点Nq和分支节点Np之后,处理流程通过步骤S157进入步骤S158。在步骤S158,新节点Nin被增加到丛集树中,被放置在丛集树中使新节点Nin充当分支节点Np的右节点r(Np),新节点Nin的左节点l(Nin)变成候选节点Nq,新节点Nin的右节点r(Nin)变成注意节点Nnew的位置。
即,在候选节点Nq为叶节点N2,分支节点Np为节点N12的情况下,新节点Nin被增加到丛集树中,被放置在使叶节点N2变成新节点Nin的左节点l(Nin),注意节点Nnew变成新节点Nin的右节点r(Nin),并且新节点Nin变成节点N12的右节点r(Np)的位置,如图41的左端的第二个丛集树中所示。
随后,处理的控制从由图33中所示的流程图表示的函数IRM(Nq,Nnew)的处理返回到图30中所示的流程图的步骤S108。从而,在根节点N1234照样充当其根节点的情况下,获得与图41左端的第三个丛集树或者说图41右端的第一个丛集树类似的丛集树。
下面参考图42,说明通过对充当注意数据picnew的图片数据pic9,和包括注意数据picnew及已被群集的图片数据pic1-pic4的处理对象图片数据,执行由图30中所示的流程图表示的群集处理而获得的丛集树。
如上所述,已被群集的图片数据pic1-pic4的拍摄日期/时间t分别为0,10,40和60。另一方面,用作注意数据picnew的图片数据pic9的拍摄日期/时间t为20。从而,充当处理对象图片数据的图片数据pic1-pic9的拍摄日期/时间t被按照pic1,pic2,pic9,pic3和pic4的顺序排列,第一个图片数据pic1被布置在图42的左端。
已被分配给当前丛集树的叶节点的图片数据,即图片数据pic1-pic4的数目为4。从而,当从用作注意数据picnew的图片数据pic9开始由图30中所示的流程图表示的群集处理时,处理流程从步骤S101进入步骤S106。从根节点Nroot(N1234)搜索通过下溯当前丛集树的弧线可找到的节点,以寻找布置在右端的最右边叶节点Rm(Nroot),即,寻找位于丛集树右端的叶节点Rm(Nroot)。随后,如上所述,确定分配给最右边的叶节点Rm(Nroot)的图片数据的拍摄日期/时间t(Rm(Nroot))是否早于分配给注意节点Nnew的注意数据picnew的拍摄日期/时间t(Nnew)。
这种情况下,分配给丛集树的最右边的叶节点Rm(Nroot)的图片数据是图片数据pic4,图片数据pic4的拍摄日期/时间t为60。另一方面,用作注意节点Nnew的图片数据pic9的拍摄日期/时间t为20。
从而,在步骤S106产生的确定结果指出分配给最右边的叶节点Rm(Nroot)的图片数据的拍摄日期/时间t(Rm(Nroot))不早于分配给注意节点Nnew的注意数据picnew的拍摄日期/时间t(Nnew)。这是因为拍摄日期/时间t(Rm(Nroot))为60,拍摄日期/时间t(Nnew)为20。这种情况下,处理流程从步骤S106进入步骤S107,如上所述,确定分配给注意节点Nnew的注意数据picnew的拍摄日期/时间t(Nnew)是否早于分配给最左边的叶节点Lm(Nroot)的图片数据的拍摄日期/时间t(Lm(Nroot))。另外还被称为位于丛集树的左端的叶节点Lm(Nroot),通过从根节点Nroot下溯当前丛集树的弧线,可找到最左边的叶节点Lm(Nroot)。
分配给最左边的叶节点Lm(Nroot)的图片数据是图片数据pic1,其拍摄日期/时间t为0。另一方面,充当注意数据picnew的图片数据是图片数据pic9,其拍摄日期/时间t为20。
从而,在步骤S107产生的确定结果指出分配给注意节点Nnew的注意数据picnew的拍摄日期/时间t(Nnew)不早于分配给最左边的叶节点Lm(Nroot)的图片数据的拍摄日期/时间t(Lm(Nroot))。这是因为拍摄日期/时间t(Nnew)为20,而拍摄日期/时间t(Lm(Nroot))为0。这种情况下,处理流程进入步骤S112,调用由图35中所示的流程图表示的函数FBN(Nroot,Nnew)。
在由图35中所示的流程图表示的函数FBN(Nroot,Nnew)的步骤S191,当前丛集树的根节点Nroot(或者N1234)被作为暂定分支节点Np。随后,处理流程进入下一步骤S192,确定分配给注意节点Nnew的注意数据picnew的拍摄日期/时间t(Nnew)是否早于分配给左方最右边叶节点Rm(l(Np))的图片数据的拍摄日期/时间t(Rm(l(Np)))。即,在步骤S192产生的确定结果是关于关系t(Nnew)<t(Rm(l(Np)))是否成立的确定结果。
这种情况下,注意数据picnew(它是图片数据pic9)的拍摄日期/时间t(Nnew)为20。分支节点Np是根节点N1234,从而,左方最右边叶节点Rm(l(Np))是分配给图片数据pic2的叶节点N2,图片数据pic2具有为10的拍摄日期/时间t(Rm(l(Np)))。
因此,在步骤S192产生的确定结果指出分配给注意节点Nnew的注意数据picnew的拍摄日期/时间t(Nnew)不早于分配给左方最右边叶节点Rm(l(Np))的图片数据的拍摄日期/时间t(Rm(l(Np)))。这是因为拍摄日期/时间t(Nnew)为20,而拍摄日期/时间t(Rm(l(Np)))为10。这种情况下,处理流程进入步骤S194,确定分配给注意节点Nnew的注意数据picnew的拍摄日期/时间t(Nnew)是否晚于分配给右方最左边叶节点Lm(r(Np))的图片数据的拍摄日期/时间t(Lm(r(Np)))。即,在步骤S194产生的确定结果是关于关系t(Lm(r(Np)))<t(Nnew)是否成立的确定结果。
这种情况下,暂定分支节点Np是根节点N1234,从而,右方最左边叶节点Lm(r(Np))是被分配图片数据pic3的叶节点N3,图片数据pic3具有为40的拍摄日期/时间t(Lm(r(Np)))。
因此,在步骤S194产生的确定结果指出拍摄日期/时间t(Nnew)不晚于拍摄日期/时间t(Lm(r(Np)))。这是因为拍摄日期/时间t(Nnew)为20,而拍摄日期/时间t(Lm(r(Np)))为40。这种情况下,作为函数FBN(Nroot,Nnew)的返回值,充当目前的暂定分支节点Np的根节点N1234被返回给调用程序,所述调用程序实现由图30中所示的流程图表示的群集处理。
从而,在图30中所示的流程图的步骤S112,根节点N1234被作为分支节点Np。随后,处理流程进入下一步骤S113,以比较左丛集距离dl与右丛集距离dr。如前所述,左丛集距离dl是与分支节点Np的左节点l(Np)对应的丛集Cl中的最接近图片数据与分配给注意节点Nnew的注意数据picnew之间的距离。另一方面,右丛集距离dr是与分支节点Np的右节点r(Np)对应的丛集Cr中的最接近图片数据和注意数据picnew之间的距离。
从而,左丛集距离dl也是分配给分支节点Np的左方最右边叶节点Rm(l(Np))的图片数据与分配给注意节点Nnew的注意数据picnew之间的距离dpic(Rm(l(Np)),Nnew)。
这种情况下,由于分支节点Np是根节点N1234,因此左丛集距离dl是分配给根节点N1234的左方最右边叶节点Rm(l(Np))的图片数据与分配给注意节点Nnew的注意数据picnew之间的距离dpic(Rm(l(Np)),Nnew),或者说图片数据pic2与图片数据pic9之间的距离。
图片数据pic2的拍摄信息(x,y,t)是(0,10,10),而图片数据pic9的拍摄信息(x,y,t)是(12,10,20)。从而,表示图片数据pic2与图片数据pic9之间距离的左丛集距离dl为|0-12|+|10-10|+|10-20|=22。
出于同样的原因,右丛集距离dr是分配给根节点N1234的右方最左边叶节点Lm(r(Np))的图片数据与分配给注意节点Nnew的注意数据picnew之间的距离dpic(Lm(r(Np)),Nnew)。右丛集距离dr是距离dpic(Lm(r(Np)),Nnew)或者说距离dpic(Nnew,Lm(r(Np))),即,图片数据pic3和pic9之间的距离。
图片数据pic3的拍摄信息(x,y,t)是(20,10,40),而图片数据pic9的拍摄信息(x,y,t)是(12,10,20)。从而,表示图片数据pic3与图片数据pic9之间距离的右丛集距离dr为|20-12|+|10-10|+|40-20|=28。
因此,在图30中所示的流程图的步骤S113产生的确定结果指出左丛集距离dl(=22)小于右丛集距离dr(=28),导致处理流程进入步骤S114,通过把Nq自变量设定在分支节点Np(它是根节点N1234)的左节点l(Np),即通过把Nq自变量设定在节点N12,调用由图33中所示的流程图表示的函数IRM(Nq,Nnew)。
在由图33中所示的流程图表示的函数IRM(Nq,Nnew)的处理的步骤S152,如上所述,属于与候选节点Nq对应的候选丛集Cq的所有两条相邻图片数据之间的最大距离dq被计算为分配给候选节点Nq的左方最右边叶节点Rm(l(Nq))的图片数据和分配给候选节点Nq的右方最左边叶节点Lm(r(Nq))的图片数据之间的距离dpic(Rm(l(Nq)),Lm(r(Nq)))。
这种情况下,由于候选节点Nq是N12,因此分配给候选节点Nq的左方最右边叶节点Rm(l(Nq))的图片数据是图片数据pic1,而分配给候选节点Nq的右方最左边叶节点Lm(r(Nq))的图片数据是图片数据pic2。从而,在步骤S152,图片数据pic1和pic2之间的距离被认为是最大距离dq。
如图37中所示,图片数据pic1和pic2之间的距离为20。从而,最大距离dq被认为是20,如图42左端的第二个丛集树中所示。
随后,在由图33中所示的流程图表示的函数IRM(Nq,Nnew)的处理的步骤S153,如上所述,对应于候选节点Nq的候选丛集Cq中的最接近图片数据和分配给注意节点Nnew的注意数据picnew之间的距离dn被计算为分配给分支节点Np的左方最右边叶节点Rm(l(Np))的图片数据和分配给注意节点Nnew的注意数据picnew之间的距离dpic(Rm(l(Np)),Nnew)。
在由图33中所示的流程图表示的函数IRM(Nq,Nnew)的处理的步骤S151,候选节点Nq是节点N12,以候选节点Nq作为左节点l(Np)的节点被用作分支节点Np。由于候选节点Nq是节点N12,因此以候选节点N12作为左节点l(Np)的节点从而是根节点N1234。这种情况下,分配给分支节点Np的左方最右边叶节点Rm(l(Np))的图片数据是分配给通过从候选节点Nq,沿弧线下溯丛集树可到达的叶节点中的最右边叶节点Rm(Np)的图片数据,所述候选节点Nq是左节点l(Np),并且分配给最右边的叶节点Rm(Np)的图片数据是邻近注意数据picnew在左侧的图片数据。
邻近充当注意数据picnew的图片数据pic9在左侧的图片数据是图片数据pic2,图片数据pic2的拍摄信息(x,y,t)是(0,10,10)。另一方面,图片数据pic9的拍摄信息(x,y,t)是(12,10,20)。从而,候选丛集Cq中的最接近图片数据和分配给注意节点Nnew的注意数据picnew之间的距离dn是图片数据pic2和图片数据pic9之间的距离,图片数据pic2和图片数据pic9之间的距离为|0-12|+|10-10|+|10-20|=22,如图42左端的第二个丛集树中所示。
从上面的说明可看出,在由图33中所示的流程图表示的函数IRM(Nq,Nnew)的处理的步骤S154产生的确定结果指出距离dn(=22)大于最大距离dq(=20),导致处理流程进入步骤S155。一个新节点Nin被增加到丛集树中,被放置在使新节点Nin的左节点l(Nin)充当候选节点Nq,新节点Nin的右节点r(Nin)充当注意节点Nnew的位置。
即,在候选节点Nq为节点N12的情况下,新节点Nin被增加到丛集树中,被放置在使节点N12变成新节点Nin的左节点l(Nin),注意节点Nnew变成新节点Nin的右节点r(Nin)的位置,如图42左端的第二个丛集树中所示。
随后,处理的控制从由图33中所示的流程图表示的函数IRM(Nq,Nnew)的处理返回到图30中所示的流程图的步骤S114。稍后,在步骤S116,丛集树被更新为新的丛集树,其包括作为分支节点Np的左节点l(Np)的新节点Nin,这种情况下,分支节点Np是根节点N1234。从而,获得与图42左端的第三个丛集树或者说图42右端的第一个丛集树类似的丛集树。
下面参考图43-47,说明作为图片数据的显示,在图1所示的显示设备16上出现的典型显示。
例如,当用户操纵操作部分17在显示设备16上显示图片数据时,显示控制设备15查阅保存在丛集树存储设备14中的丛集树,并根据丛集树在显示设备16上显示多条图片数据的缩略图。
我们假定图6中所示的丛集树是保存在丛集树存储设备14中的丛集树。这种情况下,显示控制设备15一般在父节点区16U中显示图6中所示的丛集树的根节点N11(表示所述根节点N11的符号),父节点区16U是显示设备16的显示屏幕的上半部,如在图43的顶端所示。
另外,显示控制设备15在左节点区16L中显示图片数据pic1-pic10的缩略图,并在右节点区16R中显示图片数据pic11和pic12的缩略图,如在图43的顶端的显示设备16的显示屏幕的下半部中所示。图片数据pic1-pic10是属于与节点N21对应的丛集的多条图片数据,节点N21充当在父节点区16U中显示的根节点N11的左节点。另一方面,图片数据pic11和pic12是属于与节点N22对应的丛集的图片数据,节点N22充当在父节点区16U中显示的根节点N11的右节点。左节点区16L是出现在显示设备16上的显示屏的下半部的左侧区域。另一方面,右节点区16R是相同显示屏的下半部的右侧区域。
注意显示控制设备15根据图片数据的元数据,产生保存在数据存储设备12中的每个图片数据的缩略图。
如图43中所示,操作部分17具有上按钮17U,左按钮17L和右按钮17R。例如,我们假定在出现在图43顶端的显示状态作为显示设备16的显示状态的情况下,用户操作左按钮17L一次,以便重新显示其缩略图已被显示在左节点区16L上的图片数据pic1-pic10。这种情况下,显示设备16的显示状态被改变为在图43的底端显示的显示状态。
具体地说,如在图43底端的显示状态中所示,显示控制设备15在示于显示设备16的显示屏的上半部中的父节点区16U中显示根节点N11的左节点N21(表示左节点N21的符号),以及在左节点区16L中显示图片数据pic1-pic6的缩略图,和在右节点区16R中显示图片数据pic7-pic10的缩略图,如在显示设备16的显示屏的下半部中所示。图片数据pic1-pic6是属于与节点N31对应的丛集的图片数据,节点N31充当显示在父节点区16U中的节点N21的左节点。另一方面,图片数据pic7-pic10是属于与节点N32对应的丛集的图片数据,节点N32充当节点N21的右节点。
作为另一例子,我们假定在出现在图43底端或者图44顶端的显示状态作为显示设备16的显示状态的情况下,用户再次操作左按钮17L一次,以便重新显示其缩略图已被显示在左节点区16L上的图片数据pic1-pic6。这种情况下,显示设备16的显示状态被改变为在图44的底端显示的显示状态。
具体地说,如在图44底端的显示状态中所示,显示控制设备15在示于显示设备16的显示屏的上半部中的父节点区16U中显示节点N21的左节点N31(表示左节点N31的符号),以及在左节点区16L中显示图片数据pic1-pic3的缩略图,和在右节点区16R中显示图片数据pic4-pic6的缩略图,如在显示设备16的显示屏的下半部中所示。图片数据pic1-pic3是属于与节点N41对应的丛集的多条图片数据,节点N41充当显示在父节点区16U中的节点N31的左节点。另一方面,图片数据pic4-pic6是属于与节点N42对应的丛集的多条图片数据,节点N42充当节点N31的右节点。
要注意的是作为另一例子,我们假定在出现在图44底端的显示状态作为显示设备16的显示状态的情况下,用户操作上按钮17U一次,以便显示在父节点区16U中显示的节点N31上面的一层。这种情况下,显示设备16的显示状态被改变为示于图44的顶端或图43的底端的显示状态。
作为又一例子,我们假定在出现在图43底端,图44顶端或者图45顶端的显示状态作为显示设备16的显示状态的情况下,用户操作右按钮17R一次,以便重新显示其缩略图已被显示在右节点区16R上的图片数据pic7-pic10。这种情况下,显示设备16的显示状态被改变成示于图45底端的显示状态。
具体地说,如在图45底端的显示状态中所示,显示控制设备15在示于显示设备16的显示屏的上半部中的父节点区16U中显示节点N21的右节点N32(表示左节点N32的符号),以及在左节点区16L中显示图片数据pic7-pic9的缩略图,和在右节点区16R中显示图片数据pic10的缩略图,如在显示设备16的显示屏的下半部中所示。图片数据pic7-pic9是属于与节点N43对应的丛集的多条图片数据,节点N43充当显示在父节点区16U中的节点N32的左节点。另一方面,图片数据pic10是属于与节点N44对应的丛集的图片数据,节点N44充当节点N32的右节点。
要注意的是作为另一例子,我们假定在出现在图45底端的显示状态作为显示设备16的显示状态的情况下,用户操作上按钮17U一次,以便显示在父节点区16U中显示的节点N32上面的一层。这种情况下,显示设备16的显示状态被改变为示于图45的顶端,图44的顶端,或者图43的底端的显示状态。
如上所述,节点(表示节点的符号)被显示在显示设备16的父节点区16U中。另外,属于与显示在父节点区16U中的节点的左节点对应的丛集的每条图片数据的缩略图被显示在左节点区16L中。另一方面,属于与显示在父节点区16U中的节点的右节点对应的丛集的每条图片数据的缩略图被显示在右节点区16R中。
从而,当用户按下左按钮17L时,显示在父节点区16U中的节点的左节点被显示在父节点区16U中。另外,属于与显示在父节点区16U中的节点的左节点对应的丛集的每条图片数据的缩略图被显示在左节点区16L中。另一方面,属于与显示在父节点区16U中的节点的右节点对应的丛集的每条图片数据的缩略图被显示在右节点区16R中。
另一方面,当用户按下右按钮17R时,显示在父节点区16U中的节点的右节点被显示在父节点区16U中。另外,属于与显示在父节点区16U中的节点的左节点对应的丛集的每条图片数据的缩略图被显示在左节点区16L中。另一方面,属于与显示在父节点区16U中的节点的右节点对应的丛集的每条图片数据的缩略图被显示在右节点区16R中。
当用户按下上按钮17U时,以显示在父节点区16U中的节点作为子节点的节点,即显示在父节点区16U中的节点的父节点被显示在父节点区16U中。另外,属于与显示在父节点区16U中的节点的左节点对应的丛集的每个图片数据的缩略图被显示在左节点区16L中。另一方面,属于与显示在父节点区16U中的节点的右节点对应的丛集的每个图片数据的缩略图被显示在右节点区16R中。
从而,通过恰当地操纵操作部分17的上按钮17U,左按钮17L或右按钮17R,用户能够容易地找到所需的图片数据。
要注意的是,在图43-45中,在左节点区16L中显示的缩略图是属于与显示在父节点区16U中的节点的左节点对应的丛集的所有图片数据的缩略图。另一方面,在右节点区16R中显示的缩略图是属于与显示在父节点区16U中的节点的右节点对应的丛集的所有图片数据的缩略图。作为一种备选方案,如图46和47中所示,在左节点区16L中显示的缩略图只是属于与显示在父节点区16U中的节点的左节点对应的丛集的所有图片数据的代表性缩略图。另一方面,在右节点区16R中显示的缩略图只是属于与显示在父节点区16U中的节点的右节点对应的丛集的所有图片数据的代表性缩略图。
具体地说,在图46中,节点N11被显示在父节点区16U中。另外,在左节点区16L中只显示属于与显示在父节点区16U中的节点N11的左节点N21对应的丛集的图片数据pic1-pic10中的代表性图片数据。例如,所述代表性图片数据是在图片数据pic1-pic10中具有最早的拍摄日期/时间的图片数据pic1。出于同样的原因,在右节点区16R中只显示属于与显示在父节点区16U中的节点N11的右节点N22对应的丛集的图片数据pic11和pic12中的代表性图片数据。例如,所述代表性图片数据是在图片数据pic11和pic12中具有较早的拍摄日期/时间的图片数据pic11。
作为另一例子,在图47中,节点N31被显示在父节点区16U中。另外,在左节点区16L中只显示属于与显示在父节点区16U中的节点N31的左节点N41对应的丛集的图片数据pic1-pic3中的代表性图片数据。例如,所述代表性图片数据是在图片数据pic1-pic3中具有最早的拍摄日期/时间的图片数据pic1。出于同样的原因,在右节点区16R中只显示属于与显示在父节点区16U中的节点N31的右节点N42对应的丛集的图片数据pic4-pic6中的代表性图片数据。例如,所述代表性图片数据是在图片数据pic4-pic6中具有最早的拍摄日期/时间的图片数据pic4。
要注意的是用户一般可操纵操作部分17来确定和图43-45的情况一样地显示缩略图,或者和图46和47的情况一样地显示代表性图片数据的设置。
如前所述,通过利用硬件和/或执行软件,能够实现前面说明的一系列处理。如果通过执行软件来实现前面说明的一系列处理,那么构成软件的程序可被安装到通用计算机等中。
图48表示了实现其中可安装实现上面所述一系列处理的程序的计算机的典型实施例。
程序也可被事先记录到硬盘105或者ROM103中,硬盘105或者ROM103都起嵌入计算机中的记录介质的作用。
作为另一备选方案,程序还可被临时或者永久保存(记录)在可拆卸的记录介质111中,记录介质111可以是软盘,CD-ROM(只读光盘存储器),MO(磁光)盘,DVD(数字通用光盘),磁盘,或者半导体。这样的可拆卸记录介质111可作为软件包记录介质提供给用户,程序从软件包记录介质被安装到计算机中。
除了从可拆卸的记录介质111把程序安装到计算机中之外,借助利用无线电传输的数字卫星广播用人造卫星,或者借助利用有线传输的网络,例如LAN(局域网)或因特网,程序可从下载点传送到计算机。在计算机中,通信部分108接收程序,并在所谓的程序安装过程中,把程序保存在硬盘105中。
计算机具有嵌入式CPU(中央处理器)102。CPU102通过总线101与输入/输出接口110连接。当CPU102通过输入/输出接口110,收到由输入部分107(包括键盘,鼠标和麦克风)提供的一般表示用户在输入部分107上进行的操作的命令时,CPU102按照所述命令,执行事先保存在ROM(只读存储器)103中的程序。作为一种备选方案,根据命令,CPU执行从硬盘105装入RAM(随机存取存储器)104的程序。从硬盘105装入RAM104的程序可以是事先保存在硬盘105中的程序,或者安装到硬盘105中的程序。如上所述,安装到硬盘105中的程序可以是借助卫星或网络,从充当程序的提供者的下载点下载,并由通信部分108接收的程序,或者从安装在驱动器109上的可拆卸记录介质111读出的程序。通过执行这样的程序,CPU102按照前面解释的任意流程图进行处理,或者根据前面描述的方框图中所示的配置进行处理。随后,如果需要,CPU102一般把处理结果提供给包括LCD(液晶显示器)部分和扬声器的输出部分106,通过通信部分108把处理结果传送给外部目的地,或者把结果保存在硬盘105中。
值得注意的是,在本说明书中,不仅可沿时间轴按照预定顺序执行上面说明的流程图的步骤,而且可以同时或者单独地执行所述步骤。
另外,程序可由一台计算机执行,或者可在所谓的分布式处理中由多台计算机执行。作为一种备选方案,程序可被传送给安装在远程位置的计算机,以便由这样的计算机执行。
如上所述,在由图1中所示的信息处理设备2进行的分层群集处理中,在维持所有各层上按照拍摄日期/时间的顺序排列的多条图片数据的阵列的时候,可以群集一条新数据。
另外,在分层处理过程中,通过从丛集树的根节点沿弧线下溯丛集树的节点,或者更具体地说,通过在图33中所示的流程图的步骤S156,或者图34中所示的流程图的步骤S176更新分支节点Np和候选节点Nq,新节点Nin可被增加到丛集树中,被放置在使分配给注意数据picnew的注意节点Nnew变成新节点Nin的节点之一的位置。
除此之外,在分层群集处理中,只需要得到按照拍摄日期/时间的顺序排列的多条图片数据的阵列中的任意两条相邻图片数据之间的距离。即,不必得到阵列中的任意两条图片数据之间的距离。从而,能以少量的计算群集一条数据。
按照最短距离法,最大距离法或者Ward法(它们是公知的数据群集方法)中的任意一种,通过集中或者组合均充当群集对象的元素中彼此间隔最短距离的元素,来进行分层群集处理。
但是,按照最短距离法,最大距离法或Ward法,必须得到任意组合的两条相邻图片数据之间的距离。我们假定均充当群集处理的对象的图片数据的数目为n。这种情况下,必须得到n(n-1)/2种组合任意一种的两条相邻图片数据之间的距离。从而,如果均充当按照最短距离法,最大距离法或Ward法的群集处理的对象的图片数据的数目增大,那么计算距离的处理量也正比于n的平方增大,n表示均充当群集处理的对象的图片数据的数目。
另一方面,在由信息处理设备2进行的分层群集处理中,如上所述,只需要得到按照拍摄日期/时间的顺序排列的多条图片数据的阵列中的任意两条相邻图片数据之间的距离。即使计算距离的处理量取决于充当分层群集处理的对象的图片数据的性质,距离计算的数量仍然较小。我们假定充当分层群集处理的对象的图片数据是随机数,并且图片数据的数目为n。这种情况下,丛集树的高度或者层数为log2(n),计算距离的处理量约为0(n×log2(n))的级别。
要注意的是,在根据本实施例的群集图片数据的分层群集处理中,图片数据被按照拍摄日期/时间的顺序排列。但是,图片数据也可按照拍摄位置的顺序排列。具体地说,例如以用户的家为基准,按照均用离家的距离表示的拍摄位置的顺序排列多条图片数据。
另外,在本实施例中,图片数据(它是静止图像)被用作分层群集处理的对象。但是,其它类型的图片数据也可被用作分层群集处理的对象。其它类型的图片数据的例子是包含运动图像的运动图像文件的数据,和可按照预定规则排列并且具有基于预定标度的可计算的相邻数据距离的图片数据。
要注意的是可通过使诸如拍摄日期/时间,拍摄位置和移动速度之类的因素对如等式(2)和(3)所示的计算产生影响,来计算两条相邻图片数据之间的距离,以便更正确地进行群集多条图片数据的群集处理。
即,例如我们假定加权系数α和β被设为1,而加权系数γ被设为0。这种情况下,在不使移动速度对计算产生影响的情况下,按照等式(2)得到图片数据pic#i和pic#j之间的距离dpic(i,j)。我们还假定第一种情况,其中在通过拍摄操作而获得图片数据pic#i之后,拍摄者用1000秒的时间行走500m到达通过另一拍摄操作而获得图片数据pic#j的位置。这种情况下,图片数据pic#i和pic#j之间的距离dpic(i,j)为1000+500=1500。我们还假定第二种情况,其中在通过拍摄操作而获得图片数据pic#i之后,拍摄者用500秒的时间开车行驶1000m到达通过另一拍摄操作而获得图片数据pic#j的位置。这种情况下,图片数据pic#i和pic#j之间的距离dpic(i,j)为1000+500=1500,和第一种情况相同。
另一方面,如果加权系数γ被设为1,那么对拍摄者走路的第一种情况,图片数据pic#i和pic#j之间的距离dpic(i,j)为1000+500+500/1000=1500.5。另一方面,对拍摄者开车的第二种情况,图片数据pic#i和pic#j之间的距离dpic(i,j)为1000+500+1000/500=1502。
从而,拍摄者走路的第一种情况下的图片数据pic#i和pic#j之间的距离dpic(i,j)不同于拍摄者开车的第二种情况下的图片数据pic#i和pic#j之间的距离dpic(i,j)。更具体地说,拍摄者走路的第一种情况下的图片数据pic#i和pic#j之间的距离dpic(i,j)小于拍摄者开车的第二种情况下的图片数据pic#i和pic#j之间的距离dpic(i,j)。
从而,与拍摄者开车的第二种情况下的图片数据pic#i和pic#j相比,拍摄者走路的第一种情况下的图片数据pic#i和pic#j更可能被群集到规模较小的丛集中。
即,在通过使移动速度对距离的计算产生影响而进行的群集处理中,我们假定属于第一对并且具有第一拍摄日期/时间差(或者时间距离)的两条图片数据被群集,属于第二对并且具有与第一拍摄日期/时间差相等的第二拍摄日期/时间差的另两条图片数据也被群集。这种情况下,拍摄位置彼此更接近的那对图片数据更可能被群集到规模较小的丛集中。另一方面,我们还假定属于第一对并且具有第一拍摄位置差(或者空间距离)的两条图片数据被群集,属于第二对并且具有与第一拍摄位置差相等的第二拍摄位置差的另两条图片数据也被群集。这种情况下,拍摄日期/时间彼此更接近的那对图片数据更可能被群集到规模较小的丛集中。
许多情况下,人(或用户)一般会把属于拍摄位置彼此较接近的第一对的两条图片数据群集到与用于群集属于拍摄位置彼此较远的第二对的另两条图片数据的丛集相比,规模较小的丛集中,只要属于第一对的两条图片数据的拍摄日期/时间差等于属于第二对的另两条图片数据之间的拍摄日期/时间差。出于同样的原因,人(或用户)一般会把属于拍摄日期/时间彼此较接近的第一对的两条图片数据群集到与用于群集属于拍摄日期/时间彼此较远的第二对的另两条图片数据的丛集相比,规模较小的丛集中,只要属于第一对的两条图片数据的拍摄位置差等于属于第二对的另两条图片数据之间的拍摄位置差。从而,通过进行使移动速率对距离的计算产生影响而完成的群集处理,能够实现按照人(或用户)匹配主观分类的群集。
要注意的是,在本实施例中,分层群集处理由信息处理设备2执行,信息处理设备2是不同于照相机1的设备,如图1中所示。但是,也可在照相机1内部进行分层群集处理。
另外,本领域的技术人员应明白根据设计要求和其它因素,可产生各种修改,组合,子组合和变更,只要它们在附加权利要求或其等同物的范围之内。
权利要求
1.一种通过把多条数据中的每一条分配给树形结构的一个叶节点,把所述多条数据群集成分别与所述树形结构中各层上的节点对应的丛集的信息处理设备,所述信息处理设备包括获得所述多条数据的元数据的元数据采集装置;和树形结构处理装置,用于根据所述元数据得到第一距离和第二距离,并根据所述第一和第二距离把一个新节点增加到所述树形结构中,作为以注意节点为子节点的节点,所述注意节点被分配给布置在根据所述多条数据的所述元数据排列的所述多条数据的阵列中的受到注意位置的注意数据,其中所述第一距离是在属于一个丛集的多条数据中选择的两条相邻图片数据之间的基于预定距离标度的距离,所述一个丛集是在与所述树形结构的节点对应的丛集中选择的与布置在所述受到注意位置的所述注意数据相邻的丛集,所述第二距离是所述注意数据和在属于与所述注意数据相邻的所述丛集的所述多条数据中选择的与所述注意数据相邻的一条数据之间的基于所述预定距离标度的距离。
2.按照权利要求1所述的信息处理设备,其中所述数据是通过利用拍摄设备获得的图片数据,所述数据的所述元数据包括所述图片数据的拍摄日期/时间和拍摄位置,所述受到注意位置是包括在根据拍摄日期/时间排列的多条图片数据的阵列中的位置,作为所述注意数据的位置,和所述树形结构处理装置根据拍摄日期/时间和拍摄位置,得到所述第一和第二距离。
3.按照权利要求2所述的信息处理设备,其中所述树形结构处理装置根据拍摄日期/时间、拍摄位置和当从任意特定图片数据的拍摄位置移动到紧接在所述特定图片数据之后的下一图片数据的拍摄位置时,所述拍摄设备产生的移动速度,得到所述第一和第二距离。
4.按照权利要求1所述的信息处理设备,其中所述树形结构是两节点结构,包括均被理解为具有两个子节点的父节点的节点,所述树形结构处理装置包括分支节点搜索装置,用于所述搜索树形结构,以寻找定义为节点的分支节点,所述节点的子节点之一或者是与位于和布置在所述受到注意位置的所述注意数据相邻侧之一的最大相邻丛集对应的节点,或者是与位于邻近所述注意数据的另一侧的最大相邻丛集对应的节点;计算第一和第二距离的距离计算装置,其中所述第一距离是在属于和候选节点对应的丛集的多条数据中选择的任意两条相邻图片数据间的均基于预定距离标度的距离的最大值,所述第二距离是所述注意数据和在属于与所述候选节点对应的所述丛集的所述多条数据中选择的和所述注意数据相邻的一条数据间的基于预定距离标度的距离,以及与对应于包括所述注意数据的丛集的节点共有相同父节点的所述候选节点是与在均对应于所述分支节点的所述子节点的所述最大相邻丛集中选择的,作为最大相邻丛集的丛集对应的节点,该最大相邻丛集包括属于所选择的最大相邻丛集的所有数据中,到布置在所述受到注意位置的所述注意数据的基于预定距离标度的距离最短的一条数据,距离确定装置,用于相互比较所述第一和第二距离,以产生指示所述第一和第二距离之间的量值关系的确定结果,和节点增加装置,用于根据所述距离确定装置产生的比较结果,把新节点增加到树形结构中,并把所述新节点布置在所述分支节点和所述候选节点之间,并作为以所述分支节点为父节点,以所述候选节点以及与包括所述注意数据的所述丛集对应的所述节点为子节点的节点。
5.按照权利要求4所述的信息处理设备,其中如果所述距离确定装置产生的比较结果指出所述第二距离大于所述第一距离,那么所述节点增加装置向树形结构中增加一个新节点,把所述新节点布置在所述分支节点和所述候选节点之间,作为以所述分支节点为父节点,并以所述候选节点以及与包括所述注意数据的所述丛集对应的节点为子节点的节点,或者另一方面,如果所述距离确定装置产生的比较结果指出所述第二距离不大于所述第一距离,那么只要所述距离确定装置产生的所述比较结果指出所述第二距离不大于所述第一距离,所述信息处理设备就反复执行下述步骤用所述候选节点代替所述分支节点,以充当新的分支节点,用所述候选节点的子节点之一代替所述候选节点,以充当新的候选节点;驱动所述距离计算节点以计算表示在属于与所述新的候选节点对应的丛集的多条数据中选择的任何两条相邻数据间的距离的最大值的第一距离,和计算所述注意数据和在属于与所述新的候选节点对应的所述丛集的所述多条数据中选择的作为与所述注意数据相邻的一条图片数据之间的第二距离;和驱动所述距离确定装置以相互比较所述第一和第二距离,以便产生指出所述第一和第二距离的量值之间的关系的确定结果。
6.按照权利要求1所述的信息处理设备,其中所述树形结构处理装置进行搜索处理,以便通过沿着从较高层到较低层的方向追踪来搜索属于与所述注意数据相邻的所述丛集的节点,寻找与一个最大的相邻丛集对应的节点,在所述一个最大的相邻丛集中,表示在属于所述最大相邻丛集的多条数据中选择的任何两条相邻数据间的距离的最大值的第一距离小于所述注意数据与作为邻近所述注意数据的一条数据在属于所述最大的相邻丛集的所述多条数据中选择的一条数据之间的第二距离;和把新节点增加到所述树形结构中,作为以在所述搜索处理中找到的所述节点及与包括所述注意数据的丛集对应的节点为子节点的节点。
7.一种通过把多条数据中的每一条分配给树形结构的一个叶节点,把所述多条数据群集成分别与所述树形结构中各层上的节点对应的丛集的信息处理方法,所述信息处理方法包括下述步骤获得所述多条数据的元数据;和根据所述元数据得到第一距离和第二距离,并根据所述第一和第二距离把一个新节点增加到所述树形结构中,作为以注意节点为子节点的节点,所述注意节点被分配给布置在根据所述多条数据的所述元数据排列的所述多条数据的阵列中的受到注意位置的注意数据,其中所述第一距离是在属于一个丛集的多条数据中选择的两条相邻图片数据之间的基于预定距离标度的距离,所述一个丛集是在与所述树形结构的节点对应的丛集中选择的与布置在所述受到注意位置的所述注意数据相邻的丛集,所述第二距离是所述注意数据和在属于与所述注意数据相邻的所述丛集的所述多条数据中选择的与所述注意数据相邻的一条图片数据之间的基于所述预定距离标度的距离。
8.一种由计算机执行的程序,用于通过把多条数据中的每一条分配给树形结构的一个叶节点,执行把所述多条数据群集成分别与所述树形结构中各层上的节点对应的丛集的信息处理,所述程序使计算机执行包括下述步骤的信息处理获得所述多条数据的元数据;和根据所述元数据得到第一距离和第二距离,并根据所述第一和第二距离把一个新节点增加到所述树形结构中,作为以注意节点为子节点的节点,所述注意节点被分配给布置在根据所述多条数据的所述元数据排列的所述多条数据的阵列中的受到注意位置的注意数据,其中所述第一距离是在属于一个丛集的多条数据中选择的两条相邻图片数据之间的基于预定距离标度的距离,所述一个丛集是在与所述树形结构的节点对应的丛集中选择的与布置在所述受到注意位置的所述注意数据相邻的丛集,以及所述第二距离是所述注意数据和在属于与所述注意数据相邻的所述丛集的所述多条数据中选择的与所述注意数据相邻的一条图片数据之间的基于所述预定距离标度的距离。
9.一种通过把多条数据中的每一条分配给树形结构的一个叶节点,把所述多条数据群集成分别与所述树形结构中各层上的节点对应的丛集的信息处理设备,所述信息处理设备包括元数据采集部分,所述元数据采集部分被配置成获得所述多条数据的元数据;和树形结构处理部分,所述树形结构处理部分被配置成根据所述元数据得到第一距离和第二距离,并根据所述第一和第二距离把一个新节点增加到所述树形结构中,作为以注意节点为子节点的节点,所述注意节点被分配给布置在根据所述多条数据的所述元数据排列的所述多条数据的阵列中的受到注意位置的注意数据,其中所述第一距离是在属于一个丛集的多条数据中选择的两条相邻图片数据之间的基于预定距离标度的距离,所述一个丛集是在与所述树形结构的节点对应的丛集中选择的与布置在所述受到注意位置的所述注意数据相邻的丛集,以及所述第二距离是所述注意数据和在属于与所述注意数据相邻的所述丛集的所述多条数据中选择的与所述注意数据相邻的一条图片数据之间的基于所述预定距离标度的距离。
全文摘要
本发明提供一种信息处理设备、信息处理方法和信息处理程序,其中通过把多条数据中的每一条分配给树形结构的一个叶节点,把所述多条数据群集成分别与所述树形结构中各层上的节点对应的丛集的信息处理设备。所述信息处理设备包括获得所述多条数据的元数据的元数据采集装置;和树形结构处理装置,用于根据所述元数据得到第一距离和第二距离,并根据所述第一和第二距离把一个新节点增加到树形结构中,作为以注意节点为子节点的节点,所述注意节点被分配给布置在根据所述多条数据的元数据排列的所述多条数据的阵列中的受到注意位置的注意数据。
文档编号H04L29/02GK1897556SQ20061009167
公开日2007年1月17日 申请日期2006年6月9日 优先权日2005年6月9日
发明者花形理 申请人:索尼株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1