1. Field of the Invention
The present invention relates to an information processing apparatus, an information processing method and an information processing program. More particularly, the present invention relates to an information processing apparatus, an information processing method, and an information processing program capable of easily searching data such as image data obtained as a result of a photographing operation carried out by using a digital camera for desired data by clustering the data to be searched.
2. Description of Related Art
For example, a digital camera stores digital image data in a memory along with metadata such as a date/time at which the image data is generated as a picture resulting from a photographing operation.
With popularization of the digital camera, a variety of applications for managing pieces of image data in a computer is also provided (or put in the market). For example, a management application clusters pieces of image data in a layer structure based on photographing dates, which are included in metadata. A photographing date includes a year, a month and a day, on which photographing operations are carried out to generate pieces of image data.
In addition, documents such as Japanese Patent Laid-Open No. 2001-228528 discloses an image photographing apparatus for managing pieces of picture data by clustering (or classifying) the pieces of picture data into groups on the basis of photographing dates/times and photographing locations.
There has been a demand for a proposal of a new clustering technology for clustering pieces of picture data in such a way that the user is capable of searching the clustered pieces of picture data for a desired picture with ease.
Addressing the demand described above, inventors of the present invention have devised a new clustering technology that allows the user to easily carry out operations including a process to search clustered pieces of picture data for a desired one such as a desired picture.
The present invention includes tree-structure processing means for(or a tree-structure processing step of) finding a first distance and a second distance on the basis of the metadata and adding a new node to the tree structure on the basis of the first and second distances as a node having an attention node, which is assigned to attention data placed at an attention-receiving position in an array of the pieces of picture data arranged on the basis of the metadata of the pieces of picture data, as a child node. In the tree-structure processing means or the tree-structure processing step, the first distance is a distance based on a predetermined distance scale as the distance between two adjacent pieces of picture data selected among pieces of picture data pertaining to a cluster selected among clusters corresponding to nodes of the tree structure as a cluster adjacent to the attention data placed at the attention-receiving position; and the second distance is a distance based on the predetermined distance scale as the distance between the attention data and a piece of picture data selected among the pieces of picture data pertaining to the cluster adjacent to the attention data as a piece of picture data adjacent to the attention data.
As described above, in accordance with the present invention, the first and second distances are found on the basis of the metadata. Then, a new node is added to the tree structure on the basis of the first and second distances as a node having an attention node, which is assigned to attention data placed at an attention-receiving position in an array of the pieces of picture data arranged on the basis of the metadata of the pieces of picture data, as a child node. As explained above, the first distance is a distance based on a predetermined distance scale as the distance between two adjacent pieces of picture data selected among pieces of picture data pertaining to a cluster selected among clusters corresponding to nodes of the tree structure as a cluster adjacent to the attention data placed at the attention-receiving position. On the other hand, the second distance is a distance based on the predetermined distance scale as the distance between the attention data and a piece of picture data selected among the pieces of picture data pertaining to the cluster adjacent to the attention data as a piece of picture data adjacent to the attention data.
In accordance with the present invention, a tree structure can be used as a structure for layer clustering. As a result, the user is capable of easily carrying out operations including a process to search clustered pieces of picture data for a desired one such as a desired picture.
Before preferred embodiments of the present invention are explained, relations between disclosed inventions and the embodiments are explained in the following comparative description. The following comparative description verifies that each embodiment supporting the present invention is explained in detailed description of the present invention. Thus, even if there is an embodiment described in the detailed description but not included in the following comparative description as an embodiment corresponding to an invention, such an embodiment is not to be interpreted as an embodiment not corresponding to an invention. Conversely, an embodiment included in the following comparative description as an embodiment corresponding to a specific invention is not to be interpreted as an embodiment not corresponding to an invention other than the specific invention.
Accordance to an embodiment of the present invention, an information processing apparatus (such as an information processing apparatus 2 shown in
Accordance to an embodiment of the present invention, in the information processing apparatus, the tree structure is a two-node structure including nodes each perceived as a parent node having two child nodes and the tree-structure processing means includes:
branch-node searching means (such as a branch-node searching section 31 shown in
Accordance to an embodiment of the present invention, in the information processing apparatus, if a comparison result produced by the distance determination means indicates that the second distance (such as the distance dn shown in
Accordance to an embodiment of the present invention, an information processing method includes the steps of clustering a plurality of pieces of picture data (such as the picture data pic1 to the picture data pic7, which are shown in
Preferred embodiments of the present invention are explained by referring to diagrams as follows.
As shown in the figure, the information processing system includes a camera 1 and an information-processing apparatus 2. To be more specific, the camera 1 is a digital still camera.
In accordance with an operation carried out by the user, the camera 1 performs a photographing process to take a picture of a photographing object and stores picture data obtained as a result of the photographing process in a memory. In addition, as metadata of the picture data, the camera 1 also stores metadata, which includes a photographing date/time of the photographing process and a photographing location of the process, in the memory. Typically, the photographing date/time includes a photographing date expressed in terms of a year, a month, and a day as well as a photographing time expressed in terms of hours and minutes. The camera 1 is also capable of transferring (or outputting) the stored picture data and the stored metadata to an external destination.
The camera 1 typically has an embedded clock for measuring the present time. On the basis of the present time measured by the clock, the camera 1 acquires a photographing time, which is a part of metadata of the picture data. In addition, the camera 1 also has an embedded receiver section for receiving a signal typically from a satellite provided for a GPS (Global Positioning System) and, on the basis of the signal received by the receiver section from the satellite, the camera 1 acquires a photographing location, which is another part of metadata of the picture data.
As shown in
The input interface 11 functions as an interface between the information-processing apparatus 2 and the camera 1. That is to say, when the information-processing apparatus 2 and the camera 1 are connected to each other by a cable, for example, the input interface 11 reads out (or retrieves) image data and metadata of the image data from the camera 1, and provides the pieces of picture data in the data storage apparatus 12.
The data storage apparatus 12 typically includes a hard disk or a semiconductor memory and is used for storing picture data and metadata, which are read out by the input interface 11 from the camera 1.
The clustering apparatus 13 clusters pieces of picture data stored in the data storage apparatus 12 into a cluster corresponding to a node of a cluster tree having a tree structure as will be described later in order to put the pieces of picture data in a layer structure by assigning the pieces of picture data to clusters on the basis of metadata also stored in the data storage apparatus 12. Then, the clustering apparatus 13 stores information on the cluster tree, which is obtained as a result of the process to cluster the pieces of picture data, in the cluster-tree storage apparatus 14.
The cluster-tree storage apparatus 14 is a memory used for storing information received from the clustering apparatus 13 as information on a cluster tree as described above.
The display control apparatus 15 is a controller for controlling the display apparatus 16 to display pieces of picture data stored in the data storage apparatus 12 in the so-called layer format on the basis of a cluster tree stored in the cluster-tree storage apparatus 14.
The display apparatus 16 is typically a CRT (Cathode Ray Tube) display unit or an LCD (Liquid Crystal Display) unit. Controlled by the display control apparatus 15 as described above, the display apparatus 16 displays information including pieces of picture data.
The operation unit 17 is a unit operated by the user to output an operation signal representing an operation carried out by the user to other functional blocks requiring the signal. For example, the input interface 11 retrieves picture data and metadata of the picture data from the camera 1 in accordance with an operation signal received from the operation unit 17. As another example, the clustering apparatus 13 clusters pieces of picture data stored in the data storage apparatus 12 in accordance with an operation signal received from the operation unit 17. As a further example, the display control apparatus 15 controls an operation to display pieces of picture data on the display apparatus 16 in accordance with an operation signal received from the operation unit 17.
With the camera 1 and the information-processing apparatus 2 connected to each other in the information processing system having the configuration described above, when the user operates the operation unit 17 to retrieve picture data from the camera 1, the input interface 11 reads out the picture data and metadata of the picture data from the camera 1 and stores the pieces of picture data in the data storage apparatus 12.
As described above, the clustering apparatus 13 clusters pieces of picture data stored in the data storage apparatus 12 into a cluster corresponding to a node of a cluster tree having a tree structure as will be described later in order to put the pieces of picture data in a layer structure by assigning the pieces of picture data to the cluster on the basis of metadata also stored in the data storage apparatus 12. Then, the clustering apparatus 13 stores information on the cluster tree, which is obtained as a result of the process to cluster the pieces of picture data, in the cluster-tree storage apparatus 14.
As a result of the clustering process carried out by the clustering apparatus 13 as described above, a cluster tree having a tree structure (or a layer structure) is obtained. In the following description, a layer clustering process to result in a cluster tree having a tree structure is properly referred to simply as a layer clustering process.
When the user operates the operation unit 17 in order to display pieces of picture data stored in the data storage apparatus 12, on the other hand, the display control apparatus 15 displays in layers the pieces of picture data on the display apparatus 16 on the basis of the cluster tree stored in the cluster-tree storage apparatus 14.
As shown in
In
A node can be connected to another node by using an arc. To be more specific, a node on a layer at a higher level can be connected to a node on a layer at a level lower than the higher-level layer by one layer. In this case, the node on the layer at the lower level is referred to as a child node, whereas the node on the layer at the higher level is referred to as a parent node.
In the typical cluster tree shown in the figure, a node can have only two child nodes. That is to say, a parent node can be connected to two child nodes. Thus, the typical cluster tree is a two-branch tree.
The cluster tree has a node not connected to a parent node (The parent node does not exist). The node without the parent node is referred to as the root node. On the other hand, the cluster tree also has a node not connected to a child node (The child node does not exist.) The node without the child node is referred to as a leaf node. A piece of picture data is assigned to a leaf node. A leaf node also holds metadata of a piece of picture data assigned to the leaf node.
In the following description, the layer placed at the highest level in the cluster tree as the layer of the root node is properly referred to as the first layer. By the same token, the layer of child nodes of the root node is properly referred to as the second layer. The child nodes of the root node are each a node findable by tracing down through an arc of the cluster tree from the root node by one level. The layer of nodes each findable by tracing down through arcs of the cluster tree from the root node by k levels in the same way is properly referred to as the (k+1)th layer.
In the typical cluster tree shown in
Similarly to the node N21, the node N22 on the second layer has two child nodes, i.e., nodes N33 and N34 on the third layer. Similarly to the node N31, the node N33 on the third layer has two child nodes, i.e., nodes N43 and N44 on the fourth layer.
In the cluster tree shown in
In
As described above, each node of the cluster tree corresponds to a cluster. Picture data assigned to a leaf node pertain a cluster corresponding to a node, which can be found by tracing up through arcs of the cluster tree from the leaf node. Thus, pieces of picture data assigned to leaf nodes are clustered in a large-size cluster corresponding to a node placed on a layer at a high level. On the other hand, pieces of picture data assigned to leaf nodes are clustered in a small-size cluster corresponding to a node placed on a layer at a low level.
To put it concretely, for example, the cluster tree shown in
As another example, on the second layer, the cluster tree has the node N21 from which the cluster tree can be traced down through arcs to the leaf nodes N41, N51, N52 and N32. On the same second layer, the cluster tree has the node N22 from which the cluster tree can be traced down through arcs to the leaf nodes N43, N44, and N34. Thus, the picture data pic1, pic2, pic3, and pic4 assigned to respectively the leaf nodes N41, N51, N52, and N32 each findable by tracing down the cluster tree through arcs from the node N21 on the second layer in the cluster tree are clustered in a small-size Cluster C21 corresponding to the node N21. By the same token, picture data pic5, pic6, and pic7 assigned to respectively the leaf nodes N43, N44, and N34 each findable by tracing down the cluster tree through arcs from the node N22 on the second layer in the cluster tree are clustered in a small-size Cluster C22 corresponding to the node N22.
The first block from the top of
As described earlier, all the picture data pic1 to pic7 are clustered in the cluster C11 corresponding to the root node N11 on the first layer in the cluster tree as shown in the first block from the top of
On the third layer, the picture data pic1 to pic3 assigned to respectively the leaf nodes N41, N51, and N52 each findable by tracing down the cluster tree through arcs from the node N31, which is one of the nodes N31, N32, N33, and N34 on the third layer in the cluster tree, are also clustered in a cluster C31 corresponding to the node N31 as shown in the third block from the top of
On the fourth layer, the picture data pic1 assigned to a leaf node findable by tracing down the cluster tree through arcs from the node N41 selected among the nodes N41, N42, N43, and N44 on the fourth layer in the cluster tree is also clustered in a Cluster C41 corresponding to the node N41 as shown in the fourth block from the top of
It is to be noted that a cluster corresponding to a leaf node inherits clustering from the parent node of the leaf node to the lower layer of the leaf node. For example, in
In the same way, on the fifth layer, the picture data pic1 assigned to the leaf node N41 is clustered in the Cluster C41 corresponding to the leaf node N41, the picture data pic2 assigned to the leaf node N51 is clustered in the cluster C51 corresponding to the leaf node N51, the picture data pic3 assigned to the leaf node N52 is clustered in the cluster C52 corresponding to the leaf node N52, the picture data pic4 assigned to the leaf node N32 is clustered in the cluster C32 corresponding to the leaf node N32, the picture data pic5 assigned to the leaf node N43 is clustered in the Cluster C43 corresponding to the leaf node N43, the picture data pic6 assigned to the leaf node N44 is clustered in the Cluster C44 corresponding to the leaf node N44, and the picture data pic7 assigned to the leaf node N34 is clustered in the cluster C34 corresponding to the leaf node N34 as shown in the fifth block (or the bottom block) of
In accordance with the results of the clustering process based on the cluster tree described above, a cluster corresponding to any specific node includes clusters each corresponding to a node findable by tracing down the cluster tree from the specific node as a node at a level lower than the specific node. In other words, for example, the cluster corresponding to the node, which is not the leaf node, includes each cluster corresponding to the two child nodes of the node. Thus, a cluster can be smaller or larger than another cluster. In the results of the clustering process based on the cluster tree described above, the largest cluster is a cluster corresponding to the node on the first layer, which is the layer at the highest level. That is to say, the largest cluster is a cluster corresponding to the root node.
Next, by referring to FIGS. 4 to 6, the following description explains an outline of the layer clustering process carried out by the clustering apparatus 13 employed in the clustering apparatus 13 as shown in
In general, many pieces of picture data obtained as a result of a photographing operation carried out by using the camera 1 are arranged in an order of photographing dates/times of the picture data. The order of photographing dates/times starts with the earliest photographing date/time sequentially followed by later photographing dates/times. This is because, if pieces of picture data are arranged in such an order of photographing dates/times, the user is capable of searching the pieces of picture data for a desired one by a sense of so-called tracing a history.
In the layer clustering process, a plurality of pieces of picture data is clustered so as to prevent changing an array obtained by typically arranging the pieces of picture data in an order of photographing dates/times.
That is to say, let us assume for example that picture data pic1 to pic7 are arranged into an array in an order from the left to right as shown in
Thus, let us assume for example that a plurality of pieces of picture data is arranged into an array in the left-to-right order representing an order of photographing dates/times, and a layer clustering process is carried out on the array of the pieces of picture data in order to generate a cluster tree. In this case, the following relation holds true for the cluster tree.
t(Nl)<t(Nr) (1)
In the above relation, notation t(N) denotes the photographing date/time of picture data assigned to the node N, which is a leaf node. Thus, in relation (1) given above, notations Nl and Nr each denote a leaf node in the cluster tree. However, notation Nl denotes a leaf node on the left side of the leaf node Nr. That is to say, notation Nr denotes a leaf node on the right side of the leaf node Nl.
In many cases, photographing operations to produce picture data are carried out by being concentrated on a certain location and a certain time. By collecting pieces of picture data, which are time-wise or spatially close to each other, that is, by collecting pieces of picture data, which have photographing locations close to each other or photographing times/dates close to each other in the same cluster, a desired picture is rather easy to be searched.
In the model shown in
When the 12 pieces of picture data, i.e. picture data pic1 to pic12 are produced as a result of photographing operations as described above, the 12 picture data pic1 to pic12 may be organized by event so as to allow them to be searched for a desired piece of picture data with ease.
To put it concretely, for example, the three pieces of picture data, i.e. the picture data pic1, pic2, and pic3, which have been produced as a result of photographing operations carried out at the home, are collected in a cluster. By the same token, the three pieces of picture data, i.e. the picture data pic4, pic5, and pic6, which have produced at the amusement park, are collected in another cluster. In the same way, the four pieces of picture data, i.e. the picture data pic7, pic8, pic9, and pic10, which have been produced at the restaurant, are collected in a further cluster. Likewise, the two pieces of picture data, i.e. the picture data picture data pic11 and pic12, which have been produced at the hotel, are collected in a still further cluster.
Let us assume for example that the photographing operations to produce the three pieces of picture data, i.e. the picture data pic1 to pic3 at the home and the photographing operations to produce the three pieces of picture data, i.e. the picture data pic4 to pic6 at the amusement park are carried out on the same day. By the same token, let us assume that the photographing operations to produce the four pieces of picture data, i.e. the picture data pic7 to pic10 at the restaurant and the photographing operations to produce the two pieces of picture data, i.e. the picture data pic11 and pic12 at the hotel are operations carried out on other days. In this case, the three pieces of picture data, i.e. the picture data pic1 to pic3 produced at the home and the three pieces of picture data, i.e. the picture data pic4 to pic6 produced at the amusement park may be collected in the same cluster so as to allow them to be searched for a desired piece of picture data with ease.
Let us further assume for example that the two pieces of picture data, i.e. the picture data pic1 and pic2 among the three pieces of picture data, i.e. the picture data pic1, pic2, and pic3 produced as a result of photographing operations carried out at the home are pieces of picture data produced at photographing times close to each other and photographing locations also close to each other. That is to say, the picture data pic3 is a piece of picture data produced at a photographing time and a photographing location, which are separated from the photographing time and photographing location of the two pieces of picture data, i.e. the picture data pic1 and pic2. In this case, the three pieces of picture data, i.e. the picture data pic1, pic2, and pic3 may be collected in the same first cluster and, on the top of that, the two pieces of picture data, i.e. the picture data pic1 and pic2 produced at photographing times and photographing locations close to each other may also be collected in the same second cluster so as to allow them to be searched for a desired piece of picture data with ease.
As described above, in a layer clustering process, pieces of picture data are clustered in the same cluster on the basis of distances between the pieces of picture data. To be more specific, the pieces of picture data are separated from each other by relatively short distances being clustered in the same cluster. The distance is based on a distance scale typically representing time-wise and/or spatial nearness (or farness). To put it concretely, the distance is the degree of non-resemblance indicating time-wise or spatial dissimilarities between pieces of picture data.
When only the two picture data pic1 and pic2 exist in a layer clustering process, for example, the two pieces of picture data, i.e. the picture data pic1 and pic2 are clustered in the same cluster even if the picture data pic1 and pic2 are separated from each other by a long distance. If picture data pic3 existing at a long distance from the two picture data pic1 and pic2 is further added to the picture data pic1 and pic2, the three pieces of picture data, i.e. the picture data pic1 to pic3 are clustered in another cluster having a large size with the picture data pic1 and pic2 sustained in a state of being clustered in the same cluster as they are.
The cluster size is the magnitude of a cluster in a space defined in terms of distance scales as a space of picture data. Typically, the size of a cluster corresponds to the distance between two most separated pieces of picture data in the cluster.
If picture data pic3 with the distance thereof from the picture data pic2 shorter than the distance thereof from the picture data pic1 is further added to the picture data pic1 and pic2, on the other hand, the picture data pic2 and pic3, which are relatively close to each other, are clustered in the same cluster. In addition, with the picture data pic2 and pic3 sustained in a state of being clustered in the same cluster as they are, the picture data pic1 to pic3 are clustered in another cluster having a large size.
As described above, in a layer clustering process, with pieces of picture data sustained in a state of being arranged into an array in an order of photographing dates/times as they are, pieces of picture data separated from each other by relatively short distances are clustered in a cluster having a comparatively small size whereas pieces of picture data separated from each other by relatively long distances are clustered in another cluster having a comparatively large size.
In a layer clustering process, with pieces of picture data sustained in a state of being arranged into an array in an order of photographing dates/times as they are, pieces of picture data separated from each other by relatively short distances are clustered in the same cluster. Therefore, the distance of any two pieces of picture data adjacent to each other in the array of the pieces of picture data arranged in an order of photographing dates/times is considered. The pieces of picture data separated from each other by relatively short distances are clustered in a cluster having a comparatively small size.
As a result, in accordance with a layer clustering process, as an example, the 12 pieces of picture data, i.e. the picture data pic1 to pic12 resulting from the photographing operations explained earlier by referring to
As shown in
The distance between the two adjacent pieces of picture data, i.e. the picture data pic10 and pic11 is the longest among the distances between any other two adjacent pieces of picture data among the picture data pic1 to pic12, which are clustered in the cluster corresponding to the root node N11. To be more specific, the distance between the two adjacent pieces of picture data, i.e. the picture data pic10 and pic11 is longer than the distances between any other two adjacent pieces of picture data among the 10 pieces of picture data, i.e. the picture data pic1 to pic10 on the left side of the picture data pic11. The 10 pieces of picture data, i.e. the picture data pic11 to pic10 are pieces of picture data produced at earlier photographing dates/times among the 12 pieces of picture data, i.e. the picture data pic1 to pic12. In addition, the distance between the two adjacent pieces of picture data, i.e. the picture data pic10 and pic11 is also longer than the distance between the two adjacent pieces of picture data, i.e. the picture data pic11 and pic12 on the right side of the picture data pic10. The two pieces of picture data, i.e. the picture data pic11 and pic12 are pieces of picture data produced at later photographing dates/times among the 12 pieces of picture data, i.e. the picture data pic1 to pic12.
For the reasons described above, the specific adjacent pieces of picture data, i.e. the picture data pic1 to pic10 selected among the 12 pieces of picture data, i.e. the picture data pic1 to pic12 as specific pieces of picture data with relatively short inter-picture distances are clustered in a cluster associated with a node N21, which serves as one of the child nodes of the root node N11, as a cluster having a size smaller than the cluster associated with the root node N11. An inter-picture distance is defined as the distance between two pieces of picture data adjacent to each other. By the same token, particular adjacent pieces of picture data, i.e. the picture data pic11 and picture data pic12 selected among the 12 pieces of picture data, i.e. the picture data pic1 to pic12 as particular pieces of picture data with relatively short inter-picture distances are clustered in a cluster associated with a node N22, which serves as the other child node of the root node N11, as a cluster having a size smaller than the cluster associated with the root node N11.
In addition, the picture data pic11 selected among the picture data pic11 and picture data pic12 clustered in the cluster associated with the node N22 is clustered in a cluster associated with the node N33, which corresponds to a leaf node serving as one of the child nodes of the node N22. By the same token, the picture data pic12 selected among the picture data pic11 and pic12 is clustered in a cluster associated with the node N34, which corresponds to a leaf node serving as the other child node of the node N22.
The distance between adjacent pieces of picture data, i.e. the picture data pic6 and pic7 is the longest among the distances between any other two adjacent pieces of picture data among the 10 pieces of picture data, i.e. the picture data pic1 to pic10, which are clustered in a cluster corresponding to the node N21. To be more specific, the distance between adjacent pieces of picture data, i.e. the picture data pic6 and pic7 is longer than the distances between any other two adjacent pieces of picture data among the sixth pieces of picture data, i.e. the picture data pic1 to pic6 placed on the left side of the picture data pic7. The sixth pieces of picture data, i.e. the picture data pic1 to pic6 are pieces of picture data produced at earlier photographing dates/times among the 10 pieces of picture data, i.e. the picture data pic1 to pic10. In addition, the distance between adjacent pieces of picture data, i.e. the picture data pic6 and pic7 is also longer than the distance between the four pieces of picture data, i.e. the picture data pic7 to pic10 placed on the right side of the picture data pic6. The four pieces of picture data, i.e. the picture data pic7 to pic10 are pieces of picture data produced at later photographing dates/times among the 10 pieces of picture data, i.e. the picture data pic1 to pic10.
For the reasons described above, the specific adjacent pieces of picture data, i.e. the picture data pic1 to pic6 selected among the 10 pieces of picture data, i.e. the picture data pic1 to pic10, as specific pieces of picture data with relatively short inter-picture distances are clustered in a cluster associated with a node N31, which serves as one of the child nodes of the node N21, as a cluster having a size smaller than the cluster associated with the node N21. By the same token, the particular adjacent pieces of picture data, i.e. the picture data pic7 and picture data pic10 selected among the 10 pieces of picture data, i.e. the picture data pic1 to pic10, as particular pieces of picture data with relatively short inter-picture distances are clustered in a cluster associated with a node N32, which serves as the other child node of the node N21, as a cluster having a size smaller than the cluster associated with the node N21.
Thereafter, in the same way, in the cluster tree shown in
In addition, the picture data pic1 and pic2 are clustered in a cluster associated with a node N51 as a cluster having a smaller size. The picture data pic3 is clustered in a cluster associated with a node (leaf node) N52 as a cluster having a smaller size. The picture data pic4 and pic5 are clustered in a cluster associated with a node N53 as a cluster having a smaller size. The picture data pic6 is clustered in a cluster associated with a node (leaf node) N54 as a cluster having a smaller size. The picture data pic7 is clustered in a cluster associated with a node (leaf node) N55 as a cluster having a smaller size. The picture data pic8 and pic9 are clustered in a cluster associated with a node N56 as a cluster having a smaller size.
Furthermore, the picture data pic1 is clustered in a cluster associated with a node (leaf node) N61 as a cluster having a smaller size. The picture data pic2 is clustered in a cluster associated with a node (leaf node) N62 as a cluster having a smaller size. The picture data pic4 is clustered in a cluster associated with a node (leaf node) N63 as a cluster having a smaller size. The picture data pic5 is clustered in a cluster associated with a node (leaf node) N64 as a cluster having a smaller size. The picture data pic8 is clustered in a cluster associated with a node (leaf node) N65 as a cluster having a smaller size. The picture data pic9 is clustered in a cluster associated with a node (leaf node) N66 as a cluster having a smaller size.
Thus, in the cluster tree shown in
In the above typical cluster tree, for example, the three specific adjacent pieces of picture data, i.e. the picture data pic7 to pic9 selected among the four pieces of picture data, i.e. the picture data pic7 to pic10, which result from photographing operations carried out at the restaurant and are clustered in a cluster associated with the node N32, as specific pieces of picture data with relatively short inter-picture distances are clustered in a cluster associated with a node N43 serving as one of the child nodes of the node N32. In addition, as another example, the two particular adjacent pieces of picture data, i.e. the picture data pic8 and picture data pic9 selected among the three pieces of picture data, i.e. the picture data pic7 to pic9 clustered in a cluster associated with the node N43 as particular pieces of picture data with relatively short inter-picture distances are clustered in a cluster associated with a node N56 serving as one of the child nodes of the node N43 As a distance scale used for expressing time-wise and spatial nearness between picture data pic#i and pic#j, for example, a distance scale for defining a distance dpic(i, j) in accordance with Eq. (2) or (3) can be adopted.
dpic(i, j)=α|t(i)−t(j)″+β(|px(i)−px(j)|+|py(i)−py(i)|)+γ|v(i, j)| (2)
dpic(i, j)=√{square root over ( )}(α(t(i)−t(j) )2+β((px(i)−px(j) )2+(py(i)−py(j) )2)+γ(v(i, j) )2) (3)
In Eqs. (2) and (3), notation t(i) denotes the photographing date/time of picture data pic#i. Notations px(i) and py(i) denote respectively the x and y coordinates of the photographing location of picture data pic#i. Notation v(i, j) denotes the velocity of the camera 1 between a photographing operation to produce picture data pic#i and a photographing operation to produce picture data pic#j. The velocity v(i, j) is expressed by Eq. (4) as follows:
v(i, j)=√{square root over ( )}( (px(i)−px(j) )2+(py(i)−py(j) )2)/(t(j)−t(i) ) (4)
Notations α, β, and γ used in Eqs. (2) and (3) each denote a weight coefficient, which is set at a proper value.
One or two of the weight coefficients α, β, and γ used in Eqs. (2) and (3) can be set at zero. If the weight coefficient α is set at zero, for example, the distance dpic(i, j) has a value independent of the term |t(i)−t(j)| representing a period (or a time-wise distance) between a photographing operation to produce picture data pic#i and a photographing operation to produce picture data pic#j. If the weight coefficient β is set at 0, on the other hand, the distance dpic(i, j) has a value independent of the term √{square root over ( )}( (px(i) −px(j))2+(py(i)−py(j) )2) representing a spatial distance between a photographing operation to produce picture data pic#i and a photographing operation to produce picture data pic#j. If the weight coefficient γ is set at zero, the distance dpic(i, j) has a value independent of the term v(i, j) representing the velocity of the camera 1 between a photographing operation to produce picture data pic#i and a photographing operation to produce picture data pic#j.
With regard to clusters each corresponding to a node of a cluster tree obtained as a result of a layer clustering process, for example, Eq. (5) defines the distance dC(Ni, Nj) between a cluster Ci corresponding to a node Nj and a cluster Cj corresponding to another node Nj, which is not found by tracing down the cluster tree through arcs from the node Ni.
dC(Ni, Nj)=dpic (g, h) (5)
Notations g and h used in Eq. (5) each denote a piece of picture data satisfying Eq. (6) as follows.
(g, h)=arg min|t(g)−t(h), (g ε Ni, h ε Nj) (6)
Notations t(g) and t(h) used in Eq. (6) denote the photographing dates/times of the picture data pic#g and pic#h respectively. Notation g ε Ni indicates that picture data pic#g is picture data assigned to a leaf node, from which the node Ni can be reached by tracing up the cluster tree through arcs. That is to say, the picture data pic#g is picture data pertaining to (or clustered in) a cluster Ci corresponding to the node Ni. By the same token, notation h ε Nj indicates that picture data pic#h is picture data assigned to a leaf node, from which the node Nj can be reached by tracing up the cluster tree through arcs. That is to say, the picture data pic#h is picture data pertaining to (or clustered in) a cluster Cj corresponding to the node Nj. Notation arg min |t(g)−t(h)| denotes the values of g and h that minimize the value of |t(g)−t(h)|. As is obvious from the above description, the values of g and h are numbers used for identifying the picture data pic#g and pic#h respectively.
Thus, in accordance with Eq. (5), the distance dC(Ni, Nj) between a cluster Ci and a cluster Cj is the distance between such two pieces of picture data pertaining to the clusters Ci and Cj respectively that the difference in photographing date/time between the two pieces of picture data is the shortest. Let us assume for example that pieces of picture data pertaining to the cluster Ci each have a photographing date/time earlier than pieces of picture data pertaining to the cluster Cj. In this case, the distance dC(Ni, Nj) between the cluster Ci and the cluster Cj is the distance dpic(9, h). The distance dpic(g, h) is the distance between the picture data pic#g and pic#h. The pic#g has the latest photographing date/time in the array of pieces of picture data arranged in an order of photographing dates/times as the pieces of picture data pertaining to the cluster Ci. The picture data pic#h has the earliest photographing date/time in the array of pieces of picture data arranged in an order of photographing dates/times as the pieces of picture data pertaining to the cluster Cj.
It is to be noted that, in a cluster tree, only a piece of picture data assigned to a leaf node pertains to a cluster corresponding to the leaf node. As described above, the distance dC(Ni, Nj) described by Eq. (5) is a distance between a specific piece of picture data pertaining to the cluster Ci corresponding to a node Ni and a particular piece of picture data pertaining to the cluster Cj corresponding to another node Nj. Thus, if the nodes Ni and Nj are both a leaf node, the distance dC(Ni, Nj) is the distance dpic(i, j) between the only picture data pic#i assigned to the leaf node Ni and the only picture data pic#j assigned to the leaf node Nj. For this reason, the distance between the picture data pic#i assigned to the leaf node Ni and the picture data pic#j assigned to the leaf node Nj can be expressed as the distance dpic(i, j) using the picture data pic#i and pic#j or the distance dC(Ni, Nj) using the node Ni and the node Nj.
With regard to the distance dC(Ni, Nj) between a cluster Ci corresponding to a node Ni and a cluster Cj corresponding to another node Nj, let us assume for example a case in which the node Ni is a leaf node while the node Nj is not a leaf node. In this case, the distance dC(Ni, Nj) expressed by Eq. (5) is the distance between the picture data pic#i assigned to the node Ni and the cluster Cj corresponding to the node Nj. The distance dC(Ni, Nj) between the picture data pic#i and the cluster Cj is calculated as the distance dpic(i, j) between the picture data pic#i and the picture data pic#j. The picture data pic#j is selected among pieces picture data pertaining to the cluster Cj as a piece of picture data having a photographing date/time closest to the picture data pic#i.
Next, by referring to FIGS. 7 to 15, the following description explains an outline of a procedure for creating a cluster tree in a layer clustering process.
In a layer clustering process, a piece of picture data to be newly clustered is brought to attention (or selected) as attention data picnew and the attention data picnew is assigned to a new leaf node.
If there is no piece of picture data to be subjected to a layer clustering process, that is, if the attention data picnew is the first piece of picture data serving as an object of the layer clustering process, the selected root node of the cluster tree is also a leaf node to which the attention data picnew is to be assigned.
To put it concretely, as shown on the left side of
Also as shown on the left side of
If the photographing date/time of the attention data picnew is later than the photographing date/time of the new picture data pic, that is, if the attention data picnew is more recent than the picture data pic1, the position on the right side of the picture data pic1 is the attention position as shown at the right upper portion of
Then, in the layer clustering process, a new leaf node N2 is assigned to the attention data picnew and located at the attention position in the cluster tree. That is to say, if the position on the right side of the picture data pic1 is the attention position as shown at the right upper portion of
Then, a node N3 is added to the cluster tree as the parent node of the leaf node N1 assigned to the picture data pic1 and the leaf node N2 assigned to the attention data picnew. As a result, as shown on the right side of
It is to be noted that, if the photographing date/time of the attention data picnew is later than the photographing date/time of the new picture data pic, the new leaf node N2 assigned to the attention data picnew is placed at the position on the right side adjacent to the leaf node Nl as shown at the right upper portion of
If the photographing date/time of the attention data picnew is earlier than the photographing date/time of the new picture data pic, on the other hand, the new leaf node N2 assigned to the attention data picnew is placed at the position on the left side adjacent to the leaf node N1 as shown at the right lower portion of
As explained earlier by referring to
It is to be noted that, each leaf node of a cluster tree is assigned to one of pieces of picture data, which are arranged in an order of photographing dates/times. Let us pay attention to left and right nodes serving as the two child nodes of a node. In this case, the photographing date/time of a piece of picture data assigned to any leaf node reachable by tracing down the cluster tree through arcs from the left node is earlier than the photographing date/time of a piece of picture data assigned to any leaf node reachable by tracing down the cluster tree through arcs from the right node. Conversely speaking, the photographing date/time of a piece of picture data assigned to any leaf node reachable by tracing down the cluster tree through arcs from the right node is later than the photographing date/time of a piece of picture data assigned to any leaf node reachable by tracing down the cluster tree through arcs from the left node. If the left node is a leaf node, a leaf node reachable by tracing down the cluster tree through arcs from the left node is the left node itself. By the same token, if the right node is a leaf node, a leaf node reachable by tracing down the cluster tree through arcs from the right node is the right node itself.
The first cluster tree from the left end of
Then, in the layer clustering process, a new leaf node N4 is assigned to the attention data picnew and placed at the detected attention position.
Let us assume for example that the photographing date/time of the attention data picnew is later than the photographing date/time of the picture data pic2. In this case, a position on the right side of the picture data pic2 is detected as the attention position. Thus, the leaf node N4 assigned to the attention data picnew is placed at a position on the right side adjacent to the leaf node N2 assigned to the picture data pic2 as shown in the second cluster tree from the left end of
Then, in a layer clustering process, a candidate for a cluster for handling the attention data picnew is found. The candidate cluster is the largest cluster adjacent to the attention data picnew and includes the nearest piece of picture data with the shortest distance to the attention data picnew. In the following description, the largest adjacent clusters adjacent to the attention data picnew are each also referred to as an adjacent cluster of the attention data picnew. The nearest piece of picture data will be explained later.
In the second cluster tree from the left end of
Then, the layer clustering process is carried out to find a distance dn between the attention data picnew and pic2 selected among pieces of picture data pertaining to the candidate cluster C3 as a piece of picture data adjacent to the attention data picnew. The layer clustering process is also carried out to find the maximum value (in the following, the maximum distance) dq of distances between any two mutually adjacent pieces of picture data pertaining to the candidate cluster C3.
The piece of picture data selected among pieces of picture data pertaining to the candidate cluster C3 as a piece of picture data adjacent to the attention data picnew is a piece of picture data having a photographing date/time closest to the photographing date/time of the attention data picnew. In the case shown in
In addition, since the picture data pic1 and pic2 are the only pieces of picture data pertaining to the candidate cluster C3, the maximum distance dq is found in accordance with Eq. (2) or Eq. (3) as the distance dpic(pic1, pic2) between the picture data pic1 and pic2.
If the distance dn between the attention data picnew and the nearest picture data pic2 pertaining to the candidate cluster C3 is greater than (or at least equal to) the maximum distance dq in the candidate cluster C3, the attention data picnew is clustered in a new cluster other than the candidate cluster C3. In addition, the other cluster has a size larger than the cluster C3. In order to cluster the attention data picnew in such another cluster, a new node corresponding to the other cluster is added to the cluster tree.
That is to say, in order to cluster the attention data picnew in a cluster that is other than the candidate cluster C3 and has a size larger than the cluster C3, a new node N5 is added to the cluster tree as a node having the node N3 corresponding to the cluster C3 as one of the child nodes and the leaf node N4 assigned to the attention data picnew as the other child node as shown in the third cluster tree from the left end of
As a result, the first cluster from the left end of
As described above, the leaf node N4 assigned to the attention data picnew is placed at a position on the right side adjacent to the leaf node N2 assigned to the picture data pic2 as shown in the second cluster tree from the left end of
That is to say, if the distance dn between the attention data picnew and the nearest picture data pic2 pertaining to the candidate cluster C3 is not greater than the maximum distance dq in the candidate cluster C3, the attention data picnew is clustered in a new cluster that is included in the candidate cluster C3. In order to cluster the attention data picnew in the new cluster, a new node corresponding to the new cluster is added to the cluster tree.
To put it concretely, as shown in the second cluster tree from the left end of
As a result, the first cluster from the left end of
As another example, let us assume that the photographing date/time of the attention data picnew is later than the photographing date/time of the picture data pic1 but earlier than the photographing date/time of the picture data pic2. In this case, a position between the picture data pic1 and pic2 is detected as the attention position. Thus, the leaf node N4 assigned to the attention data picnew is placed at a position between the leaf node N1 assigned to the picture data pic1 and the leaf node N2 assigned to the picture data pic2 as shown in the first cluster tree from the left end of
Then, as described earlier by referring to
In the first cluster tree from the left end of
Let us assume for example that the distance between the attention data picnew and the nearest piece of picture data in the cluster C2 is shorter than the distance between the attention data picnew and the nearest piece of picture data in the cluster C1. In this case, the cluster C2 is taken as the candidate cluster.
To put it concretely, assuming that the nearest piece of picture data in the cluster C1 is the picture data pic1 whereas the nearest piece of picture data in the cluster C2 is the picture data pic2, and the distance between the attention data picnew and pic2 is shorter than the distance between the attention data picnew and pic1, the cluster C2 is taken as the candidate cluster.
As described above, in a layer clustering process, the distance dn between the attention data picnew and the nearest piece of picture data in the candidate cluster is found. Also as explained above, the nearest piece of picture data is defined as a piece of picture data selected among pieces of picture data pertaining to the candidate cluster as a piece of picture data adjacent to the attention data picnew. Then, the maximum distance dq representing the maximum value of distances between all two pieces of picture data in the candidate cluster is found. In this case, since the cluster C2 serving as the candidate cluster corresponds to a leaf node N2 assigned to the picture data pic2, the picture data pic2 is the only picture data pertains to the candidate cluster C2. The candidate cluster C2 includes no pieces of picture data other than the picture data pic2.
In this case, a new node is added to the cluster tree as a node corresponding to a new cluster to include both the picture data pic2 pertaining to the candidate cluster C2 and the attention data picnew.
That is to say, if the node corresponding to the candidate cluster is a leaf node, a new node is added to the cluster tree as a node having the leaf node corresponding to the candidate cluster and a leaf node assigned to the attention data picnew as child nodes. In the cluster trees shown in
To put it concretely, as shown in the second cluster tree from the left end of
As a result, the first cluster from the left end of
As a further example, let us assume that the photographing date/time of the attention data picnew is again later than the photographing date/time of the picture data pic1 but earlier than the photographing date/time of the picture data pic2. In this case, however, the distance between the attention data picnew and the nearest piece of picture data in the cluster C2 is longer than the distance between the attention data picnew and the nearest piece of picture data in the cluster C1 as shown in the first cluster tree from the left end of
To put it concretely, the nearest piece of picture data in the cluster C1 is the picture data pic1 whereas the nearest piece of picture data in the cluster C2 is the picture data pic2, the distance between the attention data picnew and pic1 is shorter than the distance between the attention data picnew and pic2. In this case, the cluster C1 is taken as the candidate cluster.
In this case, since the cluster C1 serving as the candidate cluster corresponds to a leaf node N1 assigned to the picture data pic1, the picture data pic1 is the only picture data pertains to the candidate cluster C1. Thus, a new node is added to the cluster tree as a node corresponding to a new cluster to include both the picture data pic1 pertaining to the candidate cluster C1 and the attention data picnew in a way similar to the case explained earlier by referring to
That is to say, if the node corresponding to the candidate cluster is a leaf node, a new node is added to the cluster tree as a node having the leaf node corresponding to the candidate cluster and a leaf node assigned to the attention data picnew as child nodes. In the cluster trees shown in
To put it concretely, as shown in the second cluster tree from the left end of
As a result, the first cluster from the left end of
As a still further example, let us assume that the photographing date/time of the attention data picnew is earlier than the photographing date/time of the picture data pic1. In this case, a position on the left side of the picture data pic1 is detected as the attention position. Thus, the leaf node N4 assigned to the attention data picnew is placed at a position on the left side adjacent to the leaf node N1 assigned to the picture data pic1 as shown in the first cluster tree from the left end of
Then, in a layer clustering process, as described above, a candidate for a cluster for handling the attention data picnew is found. The candidate cluster is the largest cluster adjacent to the attention data picnew and includes the nearest piece of picture data with the shortest distance to the attention data picnew.
In the first cluster tree from the left end of
Then, the layer clustering process is carried out to find a distance dn between the attention data picnew and pic1 serving as the nearest piece of picture data in the candidate cluster C3. The layer clustering process is also carried out to find the maximum distance dq between two pieces of picture data among any two pieces of picture data in the candidate cluster C3. In the cluster trees shown in
If the distance dn between the attention data picnew and pic1 serving as the nearest piece of picture data in the candidate cluster C3 is longer than the maximum distance dq in the candidate cluster C3, the attention data picnew is clustered in a cluster other than the candidate cluster C3. The other cluster has a size larger than the cluster C3 to include the cluster C3 as is the case with the cluster trees shown in
That is to say, in order to cluster the attention data picnew in a cluster that is other than the candidate cluster C3 and has a size larger than the cluster C3, a new node N5 is added to the cluster tree as a node having the node N3 corresponding to the cluster C3 as one of the child nodes and the leaf node N4 assigned to the attention data picnew as the other child node as shown in the second cluster tree from the left end of
As a result, the first cluster from the left end of
As described above, the leaf node N4 assigned to the attention data picnew is placed at a position on the left side adjacent to the leaf node N1 assigned to the picture data pic1 as shown in the first cluster tree from the left end of
That is to say, if the distance dn between the attention data picnew and the nearest picture data pic1 pertaining to the candidate cluster C3 is not longer than the maximum distance dq in the candidate cluster C3, the attention data picnew is clustered in a new cluster that is included in the candidate cluster C3. In order to cluster the attention data picnew in the new cluster, a new node corresponding to the new cluster is added to the cluster tree.
To put it concretely, as shown in the second cluster tree from the left end of
As a result, the first cluster from the left end of
Next, the first cluster tree from the left end of
Then, in the layer clustering process, a new leaf node N6 is assigned to the attention data picnew and placed at the detected attention position.
As an example, let us assume that the photographing date/time of the attention data picnew is later than the photographing date/time of the picture data pic1 but earlier than the photographing date/time of the picture data pic2. In this case, a position between the picture data pic1 and pic2 is detected as the attention position. Thus, the leaf node N6 assigned to the attention data picnew is placed at a position between the leaf node N1 assigned to the picture data pic1 and the leaf node N2 assigned to the picture data pic2 as shown in the second cluster tree from the left end of
Then, as described earlier by referring to
In the second cluster tree from the left end of
In the cluster tree including the nodes N1, N2, and N4 as described above, the nodes N1 and N4 are nodes placed on the same layer as nodes corresponding to the largest adjacent clusters C1 and C4 respectively. On the other hand, the leaf node N2 is a node placed on a layer at a level lower than the layer of the nodes N1 and N4 as a node corresponding to the cluster C2. That is to say, in the cluster trees shown in
Thus, a candidate cluster is selected from the clusters C1 and C4 as a candidate cluster including the nearest piece of picture data with a smaller distance to the attention data picnew. In the cluster trees shown in
Let us assume for example that the distance between the attention data picnew and the nearest piece of picture data included in the cluster C1 is shorter than the distance between the attention data picnew and the nearest piece of picture data included in the cluster C4. That is to say, the distance between the attention data picnew and the pic1 included in the cluster C1 is shorter (or not longer) than the distance between the attention data picnew and pic2 included in the cluster C4. In this case, the cluster C1 is taken as the candidate cluster.
Since the cluster C1 serving as the candidate cluster corresponds to a leaf node N1 assigned to the picture data pic, the picture data pic1 is the only picture data pertaining to the candidate cluster C1. In this case, for the same reasons described earlier by referring to
That is to say, a new node N7 is added to the cluster tree as a node having the leaf node N1 serving as a leaf node corresponding to the candidate cluster C1 as one of the child nodes and the leaf node N6 assigned to the attention data picnew as the other child node.
To put it concretely, as shown in the third cluster tree from the left end of
As another example, let us assume that the distance between the attention data picnew and the nearest piece of picture data included in the cluster C1 is longer (or not shorter) than the distance between the attention data picnew and the nearest piece of picture data included in the cluster C4. That is to say, the distance between the attention data picnew and pic1 included in the cluster C1 is longer (or not shorter) than the distance between the attention data picnew and pic2 included in the cluster C4. In this case, the cluster C4 is taken as the candidate cluster.
In the cluster trees shown in
In the cluster trees shown in
If the distance dn between the attention data picnew and pic2 serving as the nearest piece of picture data in the candidate cluster C4 is greater than the maximum distance dq in the candidate cluster C4, the attention data picnew is clustered in a cluster other than the candidate cluster C4. The other cluster has a size larger than the cluster C4 as is the case with the cluster trees shown in
That is to say, in order to cluster the attention data picnew in a cluster that is other than the candidate cluster C4 and has a size larger than the candidate cluster C4, a new node N8 is added to the cluster tree as a node having the node N4 corresponding to the cluster C4 as one of the child nodes and the leaf node N6 assigned to the attention data picnew as the other child node as shown in the third cluster tree from the left end of
As a further example, let us assume that, in the second cluster tree from the left end of
That is to say, if the distance dn between the attention data picnew and pic2 serving as the nearest piece of picture data in the candidate cluster C4 is not greater than the maximum distance dq in the candidate cluster C4, a new node is added to the cluster tree as a node corresponding to a cluster including the candidate cluster C4 in order to cluster the attention data picnew in the candidate cluster C4.
To put it concretely, as shown in the third cluster tree from the left end of
To be more specific, the first row from the top of
In this case, the new node N7 is added to the cluster tree as a node having the leaf node N6 assigned to the attention data picnew as one of the child nodes, the leaf node N1 corresponding to the candidate cluster C1 as the other child node, and the node N5 as the parent node as shown in a cluster tree on the left side of the first row of from the top of
As a result, the first cluster tree from the left end of
The second row from the top of
In this case, the new node N8 is added to the cluster tree as a node having the leaf node N6 assigned to the attention data picnew as one of the child nodes, the node N4 corresponding to the candidate cluster C4 as the other child node, and the node N5 as the parent node as shown in a cluster tree on the left side of the second row of from the top of
As a result, the first cluster tree from the left end of
The third row from the top of
In this case, the new node Ng is added to the cluster tree as a node having the leaf node N6 assigned to the attention data picnew as one of the child nodes, the leaf node N2 as the other child node, and the node N4 corresponding to the candidate cluster C4 as the parent node.
As a result, the first cluster tree from the left end of
As shown in
The metadata reading section 20 is a section for acquiring metadata of attention data picnew by reading out the metadata from the data storage apparatus 12 and supplying the acquired metadata to the tree-structure processing section 22.
The position of the attention data picnew in an array of processing-object pieces of picture data arranged in the left-to-right order representing the order of photographing dates/times included in the metadata is referred to as an attention position as described earlier. The processing-object pieces of picture data are an object of a layer clustering process. The processing-object pieces of picture data include pieces of picture data already clustered in accordance with a cluster tree stored in the cluster-tree storage apparatus 14 and the attention data picnew.
The tree-structure processing section 22 is a section for carrying out a tree-structure process as follows. On the basis of the metadata, the tree-structure processing section 22 finds a second distance dn and a first distance, which is the maximum distance dq described earlier. Then, on the basis of the first distance dq and the second distance dn, the tree-structure processing section 22 adds a new node Nin to the cluster tree stored in the cluster-tree storage apparatus 14 as a node having a leaf node Nnew assigned to the attention data picnew as one of the child nodes thereof. In the following description, the leaf node Nnew assigned to the attention data picnew is properly referred to as an attention leaf node Nnew. The second distance dn is the distance based on a predetermined distance scale as a distance between the attention data picnew and the nearest piece of picture data in a candidate cluster. A candidate cluster is selected among clusters corresponding to nodes included in the cluster tree stored in the cluster-tree storage apparatus 14 as a cluster adjacent to the attention data picnew placed at the attention position. The first distance dq is a maximum value of distances between any two mutually adjacent pieces of picture data pertaining to an eventually selected candidate cluster.
To put it detail, as explained earlier by referring to FIGS. 7 to 15, on the basis of metadata, the tree-structure processing section 22 recognizes the nearest piece of picture data selected among pieces of picture data pertaining to a candidate cluster as a piece of picture data adjacent to the attention data picnew. That is to say, the nearest piece of picture data is picture data having a photographing date/time closest to the attention data picnew. The metadata used as a basis for recognizing the nearest piece of picture data includes metadata of pieces of picture data assigned to leaf nodes of the cluster tree stored in the cluster-tree storage apparatus 14 and metadata received from the metadata reading section 20 as the metadata of the attention data picnew. Then, the tree-structure processing section 22 finds the second distance dn as a distance dpic( ) between the nearest piece of picture data and the attention data picnew in accordance with Eq. (2) or (3) on the basis of the photographing date/time and photographing location of the nearest piece of picture data as well as the photographing date/time and photographing location of the attention data picnew. The photographing date/time and photographing location of the nearest piece of picture data and the photographing date/time as well as photographing location of the attention data picnew are included in respectively the metadata of the nearest piece of picture data and the metadata of the attention data picnew. The tree-structure processing section 22 also finds the first (longest) distance dq among distances between all two adjacent pieces of picture data in the candidate cluster. Each of the distances between all two adjacent pieces of picture data in the candidate cluster is found also in accordance with Eq. (2) or (3) on the basis of photographing dates/times and photographing locations. The photographing dates/times and photographing locations are included in metadata of pieces of picture data clustered in the candidate cluster. Then, on the basis of the second distance dn and first (longest) distance dq, the tree-structure processing section 22 adds a new node Nin to the present cluster tree stored in the cluster-tree storage apparatus 14 as a node having the attention leaf node Nnew assigned to the attention data picnew as one of its child nodes. In this way, the tree-structure processing section 22 creates a new cluster tree. That is to say, the tree-structure processing section 22 updates the present cluster tree to the new cluster tree and stores the new cluster tree over the present cluster tree in the cluster-tree storage apparatus 14.
Next, the processing carried out by the clustering apparatus 13 shown in
The flowchart begins with a step S1 at which the tree-structure processing section 22 employed in the clustering apparatus 13 produces a result of determination as to whether or not the cluster tree is to be initialized.
If the determination result produced at the step S1 indicates that the cluster tree is to be initialized for example in accordance with an operation carried out by the user on the operation unit 17 to request the information-processing apparatus 2 that the cluster tree be initialized, the flow of the processing goes on to a step S2 at which the tree-structure processing section 22 initializes the cluster tree and stores the cluster tree obtained as a result of the initialization over the pre-initialization cluster tree in the cluster-tree storage apparatus 14. Then, the flow of the processing goes on to the next step S3.
In particular, notation Nroot denotes a variable representing the root node Nroot of the cluster tree. Also notation l(N) denotes a variable representing the left node of the node N and notation r(N) denotes a variable representing the right node of the node N. In this case, at the step S2, the tree-structure processing section 22 sets each of the left node l(Nroot) and right node r(Nroot) of the root node Nroot at a value of NULL indicating that the left and right nodes do not exist.
If the determination result produced at the step S1 indicates that the cluster tree is not to be initialized as evidenced for example by no operation carried out by the user on the operation unit 17 to request the cluster tree be initialized, on the other hand, the flow of the processing skips the step S2, going on to a step S3 directly. At the step S3, the metadata reading section 20 refers to the cluster-tree storage apparatus 14 in order to produce a result of determination as to whether or not the data storage apparatus 12 contains picture data not clustered yet by using the cluster tree.
If the determination result produced at the step S3 indicates that the data storage apparatus 12 contains picture data not clustered yet by using the cluster tree, the flow of the processing goes on to a step S4 at which the metadata reading section 20 selects a piece of picture data stored in the data storage apparatus 12 but not clustered yet in the cluster tree as attention data picnew. Then, the flow of the processing goes on to a step S5.
At the step S5, the clustering apparatus 13 creates a new cluster tree for clustering processing-object pieces of picture data, which are each an object of a layer clustering process. The objects of a layer clustering process are pieces of picture data already clustered using the present cluster tree stored in the cluster-tree storage apparatus 14 and the attention data picnew. The created cluster tree is used as an updating cluster tress of the present cluster tree stored in the cluster-tree storage apparatus 14. Then, the flow of the processing goes back to the step S3.
If the determination result produced at the step S3 indicates that the data storage apparatus 12 no longer contains picture data not clustered yet by using the cluster tree, that is, if all pieces of picture data stored in the data storage apparatus 12 have been clustered by using the cluster tree, on the other hand, the execution of the processing is ended.
Next, by referring to a flowchart shown in
The flowchart representing the clustering processing begins with a step S11 at which the metadata reading section 20 acquires the metadata of attention data picnew by reading out the metadata from the data storage apparatus 12 and supplies the metadata to the tree-structure processing section 22. Then, the flow of the processing goes on to a step S12.
The tree-structure processing section 22 is a section for carrying out a tree-structure process as follows. At the step S12, on the basis of the metadata of processing-object pieces of picture data, the tree-structure processing section 22 finds the distance dn and the maximum distance dq described earlier. The processing-object pieces of picture data are pieces of picture data already clustered in accordance with a cluster tree stored in the cluster-tree storage apparatus 14 and the attention data picnew located at an attention position in an array of the processing-object pieces of picture data arranged in the left-to-right order representing the order of photographing dates/times included in the metadata. Then, on the basis of the distance dq and the distance dn, the tree-structure processing section 22 adds a new node Nin to the cluster tree stored in the cluster-tree storage apparatus 14 as a node having an attention leaf node Nnew assigned to the attention data picnew as one of the child nodes thereof. The distance dn is the distance based on a predetermined distance scale as a distance between the attention data picnew and the nearest piece of picture data in a candidate cluster. The first distance dq is a maximum value of distances between any two mutually adjacent pieces of picture data pertaining to the selected candidate cluster. After the tree-structure process has been carried out, the control of processing is returned to a calling program. That is to say, the execution of the processing is ended.
As shown in
The branch-node searching section 31 is a section for carrying out a branch-node searching process to search the cluster tree for a branch node on the basis of metadata received from the metadata reading section 20 as the metadata of attention data picnew and a cluster tree stored in the cluster-tree storage apparatus 14, and for supplying the branch mode obtained as a result of the branch-node searching process to the node addition section 32. The branch node is a node having a node corresponding to the largest adjacent cluster as a child node. The largest adjacent cluster is a cluster on the left or right side adjacent to the attention data picnew, which is placed at an attention position in the array of the processing-object pieces of picture data arranged in the left-to-right order representing the order of photographing dates/times.
Including a distance computation section 41, a determination section 42, and an addition section 43, the node addition section 32 is a section for carrying a node addition process to add a new node Nin to a cluster tree stored in the cluster-tree storage apparatus 14 on the basis of a branch node received from the branch-node searching section 31 and metadata received from the metadata reading section 20 as the metadata of attention data picnew. The new node Nin has an attention node Nnew assigned to the attention data picnew as one of its child nodes.
To put it in detail, the distance computation section 41 finds a distance dn and the maximum distance dq described earlier, supplying the distance dn and the maximum distance dq to the determination section 42. The distance dn is the distance based on a predetermined distance scale as a distance between the attention data picnew placed at an attention position and the nearest piece of picture data in a candidate cluster selected among clusters corresponding to the child nodes of the branch node received from the branch-node searching section 31 as described above. A node corresponding to the candidate cluster is referred to as a candidate node. Thus, the candidate node is the node serving as one of the child nodes of the branch node received from the branch-node searching section 31. With the new node Nin added to the cluster tree to serve as the parent node of an attention node Nnew corresponding to a cluster including the attention data picnew, however, the candidate node becomes a candidate for a child node of the new node Nin that is, a candidate node for the node corresponding to a candidate cluster to which the attention data picnew pertains. The distance dq is a maximum value of distances between any two mutually adjacent pieces of picture data pertaining to the candidate cluster.
The determination section 42 is a section for comparing the distance dn and the maximum distance dq received from the distance computation section 41 with each other and supplying a result of the comparison to the addition section 43. As described above, the distance dn is the distance based on a predetermined distance scale as a distance between the attention data and the nearest piece of picture data in the candidate cluster corresponding to the candidate node whereas the distance dq is a maximum value of distances between any two mutually adjacent pieces of picture data pertaining to the candidate cluster corresponding to the candidate node.
The addition section 43 is a section for adding the new node Nin serving as the parent node of a node corresponding to a cluster including the attention data picnew to the present cluster tree stored in the cluster-tree storage apparatus 14 on the basis of the comparison result received from the determination section 42 in order to update the present cluster tree to a new cluster tree. The new node Nin is placed at a position on the arc between the branch node and the candidate node, which are finally identified in dependence on the comparison result received from the determination section 42. Thus, the branch node becomes the parent node of the new node Nin while the candidate node and the attention node Nnew become the child nodes of the new node Nin. To put it in detail, when the determination section 42 determines that the distance dn between the attention data picnew and the nearest piece of picture data in the candidate cluster corresponding to the candidate node is greater (or not smaller) than the distance dq representing a maximum value of distances between any two mutually adjacent pieces of picture data pertaining to the candidate cluster corresponding to the candidate node, the addition section 43 adds the new node Nin to the present cluster tree and forms a new cluster tree. The new node Nin is positioned on the arc so that the branch node becomes the parent node while the candidate node and the attention-receiving node New become the child nodes.
If the determination section 42 determines that the distance dn between the attention data picnew and the nearest piece of picture data in the candidate cluster corresponding to the candidate node is not greater (or smaller) than the maximum distance dq between any two mutually adjacent pieces of picture data pertaining to the candidate cluster corresponding to the candidate node, on the other hand, the candidate node is used as a new branch node and a child node of the candidate node is used as a new candidate node. Then, the distance computation section 41 computes the distance dn between the attention data picnew and the nearest piece of picture data in a candidate cluster corresponding to the new candidate node and the maximum distance dq between any two mutually adjacent pieces of picture data pertaining to the candidate cluster corresponding to the new candidate node whereas the determination section 42 compares the distance dn and maximum distance dq received from the distance computation section 41 with each other. The process to compute the distance dn and the maximum distance dq and the process to compare them with each other are repeated.
As the determination section 42 determines that the distance dn is greater (or not smaller) than the distance dq, the addition section 43 adds the new node Nin to the present cluster tree and forms a new cluster tree. The final branch node becomes the parent node while the candidate node and the attention node Nnew become the child nodes.
Next, by referring to
In the following description, notation Np denotes a branch node, notation l(Np) denotes the left node of the branch node Np while notation r(Np) denotes the right node of the branch node Np.
As explained above, a branch node Np is a node, a child node of which is a node corresponding to the largest adjacent cluster on the left of right side adjacent to an attention data picnew placed at an attention position in an array of processing-object pieces of picture data arranged in the left-to-right order representing the order of photographing dates/times.
Thus, the largest adjacent cluster on the left side adjacent to an attention data picnew placed at an attention position is a cluster Cl corresponding to the node l(Np) of the branch node Np whereas the largest adjacent cluster on the right side adjacent to an attention data picnew placed at an attention position is a cluster Cr corresponding to the node r(Np) of the branch node Np.
Let notation Rm(N) denote the rightmost leaf node findable by tracing down arcs of the cluster tree from a node N and let notation Lm(N) denote the leftmost leaf node findable by tracing down arcs of the cluster tree from the node N. Thus, notation Rm(l(Np)) denotes the rightmost leaf node findable by tracing down arcs of the cluster tree from the left node l(Np) of a branch node Np. On the other hand, notation Lm(r(Np)) denotes the leftmost leaf node findable by tracing down arcs of the cluster tree from the right node r(Np) of the branch node Np.
Since the node Rm(l(Np)) is the rightmost leaf node findable by tracing down arcs of the cluster tree from the left node l(Np) of a branch node Np, in the following description, the node Rm(l(Np)) is properly referred to as a left-side rightmost leaf node Rm(l(Np)). By the same token, since the node Lm(r(Np)) is the leftmost leaf node findable by tracing down arcs of the cluster tree from the right node r(Np) of a branch node Np, in the following description, the node Lm(r(Np)) is properly referred to as a right-side leftmost leaf node Lm(r(Np)).
Let us assume that picture data pic1 is picture data assigned to the left-side rightmost leaf node Rm(l(Np)) In this case, the picture data pic1 is the rightmost picture data among pieces of picture data pertaining to the aforementioned cluster Cl on the left side adjacent to attention data picnew. Thus, the picture data pic1 is picture data on the left side adjacent to the attention data picnew.
Let us assume that picture data pic2 is picture data assigned to the right-side leftmost leaf node Lm(r(Np)). In this case, the picture data pic2 is the leftmost picture data among pieces of picture data pertaining to the aforementioned cluster Cr on the right side adjacent to attention data picnew. Thus, the picture data pic2 is picture data on the right side adjacent to the attention data picnew.
Let notation t(N) denotes the photographing date/time of picture data assigned to a leaf node N. In this case, notation t(Rm(l(Np))) denotes the photographing date/time of the picture data pic1 assigned to the left-side rightmost leaf node Rm(l(Np)), notation t(Lm(r(Np))) denotes the photographing date/time of the picture data pic2 assigned to the right-side leftmost leaf node Lm(r(Np)), and notation t(Nnew) denotes the photographing date/time of the attention data picnew assigned to the attention node Nnew. The photographing date/time t(Rm(l(Np))), t(Lm(r(Np))), and t(Nnew) satisfy relation (7) given as follows.
t(Rm(l(Np)))<t(Nnew)<t(Lm(r(Np))) (7)
In order to make the following description simple, it is assumed that processing-object pieces of picture data each serving as an object of the layer clustering process do not include pieces of picture data having the same photographing date/time. It is to be noted that, if pieces of picture data having the same photographing date/time exist, the existence is reflected by an operator≦including a case of equality in place of any ones of the operators<used in relation (7).
The branch-node searching section 31 searches the present cluster tree for a node Np satisfying relation (7) and takes the node Np found in the search as a branch node Np. The branch-node searching section 31 searches the present cluster tree by tracing down arcs of the tree from the root node Nroot in a direction toward layers at lower levels.
It is to be noted that the branch-node searching section 31 recognizes the photographing date/time t(Rm(l(Np))) of the picture data pic1 assigned to the left-side rightmost leaf node Rm(l(Np)) from metadata recorded at the left-side rightmost leaf node Rm(l(Np)) of the present picture tree stored in the cluster-tree storage apparatus 14 as the metadata of the picture data pic1. By the same token, the branch-node searching section 31 identifies the photographing date/time t(Lm(r(Np))) of the picture data pic2 assigned to the right-side leftmost leaf node Lm(r(Np)) from metadata recorded at the right-side leftmost leaf node Lm(r(Np)) of the present picture tree as the metadata of the picture data pic2. On the other hand, the branch-node searching section 31 recognizes the photographing date/time t(Nnew) of the attention data picnew assigned to the attention node Nnew from metadata received from the metadata reading section 20 as the metadata of the attention data picnew.
Next, by referring to FIGS. 21 to 26, the following description explains a node addition process carried out by the node addition section 32 shown in
As described above, a piece of picture data is clustered by maintaining the array of pieces of picture data arranged in an order of photographing dates/times. Thus, since the array of leaf nodes each assigned to a piece of picture data is also kept as it is, the attention node Nnew assigned to the attention data picnew is not placed (or moved) to the left side of the left-side rightmost leaf node Rm(l(Np)) or placed (or moved) to the right side of the right-side leftmost leaf node Lm(r(Np) ).
Thus, the attention data picnew assigned to the attention node Nnew pertains to a cluster corresponding to the branch node Np.
In addition, the cluster corresponding to the branch node Np includes a cluster C1 corresponding to the left node l(Np) serving as the left-side child node of the branch node Np and a cluster Cr corresponding to the right node r(Np) serving as the right-side child node of the branch node Np.
In the node-addition process, a new node Nin having an attention node Nnew assigned to the attention data picnew as one of its child nodes is added to a cluster tree as one of the child nodes of a node findable by tracing down arcs of the cluster tree from the branch node Np. In this way, a cluster corresponding to the new node Nin is added as a cluster included in a cluster corresponding to the branch node Np. As a result, the attention data picnew is clustered in the cluster corresponding to the new node Nin.
First of all, in the node addition section 32 shown in
Notation dl denote the distance between the attention data picnew and the nearest piece of picture data in the cluster Cl corresponding to the left node l(Np) and notation dr denote the distance between the attention data picnew and the nearest piece of picture data in the cluster Cr corresponding to the right node r(Np) as shown in
In the following description, the candidate node is properly denoted by notation Nq and the candidate cluster corresponding to the candidate node Nq is properly denoted by notation Cq.
The nearest piece of picture data in the cluster Cl corresponding to the left node l(Np) is picture data assigned to the left-side rightmost leaf node Rm(l(Nq)) or picture data pic1 shown in
The distance computation section 41 computes the distances dn and dr. If the computed distance dn is smaller than the computed distance dr, for example, the distance computation section 41 selects the left node l(Np) corresponding to the cluster Cl as the candidate node Nq. With the left node l(Np) selected as the candidate node Nq corresponding to the candidate cluster Cq, the distance dn is the distance dn between the nearest piece of picture data in the candidate cluster Cq corresponding to the candidate node Nq and the attention data picnew. In this case, the distance computation section 41 also computes the maximum distance dq, which is the maximum value of distances between all two adjacent pieces of picture data pertaining to the candidate cluster Cq corresponding to the candidate node Nq as shown on the left side of
In this case, the left node l(Np) of the branch node Np received from the branch-node searching section 31 serves as the candidate node Nq. Thus, the candidate cluster Cq corresponding to the candidate node Nq is the cluster Cl corresponding to the left node l(Np) of the branch node Np received from the branch-node searching section 31. In addition, the distance dn between the nearest piece of picture data in the candidate cluster Cq corresponding to the candidate node Nq and the attention data picnew is the distance dn between the nearest piece of picture data in the cluster Cl corresponding to the left node l(Np) and the attention data picnew.
As described above, the distance computation section 41 computes the maximum distance dq between all two adjacent pieces of picture data pertaining to the candidate cluster Cq corresponding to the candidate node Nq. As shown on the left side of
A later description will explain the fact that the maximum distance dq representing the maximum value of distances between all two adjacent pieces of picture data pertaining to a cluster corresponding to a node N is the distance between picture data assigned to the left-side rightmost leaf node Rm(l(N)) of the node N and picture data assigned to the right-side leftmost leaf node Lm(r(N)) of the node N.
If the relation dq<dn (or dq≦dn) between the distance dn and the maximum distance dq, which are found as described above, holds true, the addition section 43 employed in the node addition section 32 adds a new node Nin to the present cluster tree and creates a new cluster tree as follows. As shown on the right side of
Thus, by adding the new node Nin to the present cluster tree, the candidate node Nq and the attention node Nnew become the child nodes of the new node Nin.
In addition, a cluster Cin corresponding to the new node Nin includes pieces of picture data pertaining to the candidate node Nq serving as one of the child nodes of the new node Nin and the attention data picnew pertaining to the attention node Nnew serving as the other child node of the new node Nin.
The distance dn between the nearest piece of picture data in the candidate cluster Cq and the attention data picnew is computed in accordance with Eq. (2) as a distance dpic ( ) between the attention data picnew and a piece of picture data included in the candidate cluster Cq as a piece of picture data having a photographing date/time closest to the attention data picnew. The piece of picture data included in the candidate cluster Cq as a piece of picture data having a photographing date/time closest to the attention data picnew is a piece of picture data adjacent to the attention data picnew. Thus, in the cluster trees shown in
As described above, if the relation dq<dn (or dq≦dn) between the distance dn and the maximum distance dq holds true, the addition section 43 adds a new node Nin to the present cluster tree. Thus, the maximum distance between all two adjacent pieces of picture data pertaining to a cluster Cin corresponding to the new node Nin is the distance between the attention data picnew and the picture data pic1 placed on the left side adjacent to the attention data picnew.
If seen from the new node Nin the picture data pic1 on the left side adjacent to the attention data picnew is picture data assigned to the left-side rightmost leaf node Rm(l(Nin)) of the new node Nin whereas the attention data picnew is picture data assigned to the right-side leftmost leaf node Lm(r(Nin)) of the new node Nin. Thus, the maximum value (maximum distance) between all two adjacent pieces of picture data pertaining to a cluster Cin corresponding to the new node Nin is the distance between the picture data assigned to the left-side rightmost leaf node Rm(l(Nin)) of the new node Nin and the picture data assigned to the right-side leftmost leaf node Lm(r(Nin)) of the new node Nin.
That is to say, the maximum distance (maximum value) between all two adjacent pieces of picture data pertaining to a cluster corresponding to a node N is the distance between picture data assigned to the left-side rightmost leaf node Rm(l(N)) of the node N and picture data assigned to the right-side leftmost leaf node Lm(r(N)) of the node N as described above.
It is to be noted that picture data assigned to the left-side rightmost leaf node Rm(l(N)) of a node N is picture data having a photographing date/time closest to the photographing date/time of picture data pertaining to a cluster corresponding to the right node r(N) of the node N among the photographing dates/times of all pieces of picture data pertaining to a cluster corresponding to the left node l(N) of the node N. By the same token, picture data assigned to the right-side leftmost leaf node Lm(r(N)) of a node N is picture data having a photographing date/time closest to the photographing date/time of picture data pertaining to a cluster corresponding to the left node l(N) of the node N among the photographing dates/times of all pieces of picture data pertaining to a cluster corresponding to the right node r(N) of the node N.
Thus, in accordance with Eq. (5) defining the distance between two clusters as the distance between two pieces of picture data included in the two clusters respectively as pieces of picture data having the closest photographing date/time among all two pieces of picture data included in the two clusters respectively, the distance between picture data assigned to the left-side rightmost leaf node Rm(l(N)) of a node N and picture data assigned to the right-side leftmost leaf node Lm(r(N)) of the node N is equivalent to the distance between the cluster corresponding to the left node l(N) of the node N and the cluster corresponding to the right node r(N) of the node N.
In addition, as is obvious from the above description, the maximum value (maximum distance) between all two adjacent pieces of picture data pertaining to a cluster corresponding to a node N is equivalent to the distance between the cluster corresponding to the left node l(N) of the node N and the cluster corresponding to the right node r(N) of the node N.
Let us assume that the relation dq≧dn (or dq>dn) between the distance dn and the maximum distance dq holds true, where, as described above, the distance dn is the distance between the nearest piece of picture data in the candidate cluster Cq corresponding to the candidate node Nq and the attention data picnew whereas the maximum distance dq represents the distance between all two adjacent pieces of picture data pertaining to the candidate cluster Cq. In this case, the distance computation section 41 employed in the node addition section 32 takes the candidate node Nq as a new branch node Np and identifies a new candidate node Nq in the new branch node Np as shown in
Then, as explained earlier by referring to
The distance computation section 41 repeatedly carries out the process to update the branch node Np and the candidate node Nq as well as the process to compute the distance dn and the maximum distance dq till the relation dq<dn between the distance dn and the maximum distance dq holds true.
As the relation dq<dn (or dq≦dn) between the distance dn and the maximum distance dq holds true, as explained earlier by referring to
That is to say, let us assume for example that a cluster tree shown on the left side of
Thus, the node addition section 32 identifies a candidate node Nq corresponding a candidate cluster Cq adjacent to the attention data picnew located at the attention position by tracing down an arc from a branch node Np in a direction toward a layer at a level lower than the branch node Np. Then, the node addition section 32 computes the maximum distance dq between all two adjacent pieces of picture data pertaining to the candidate cluster Cq adjacent to the attention data picnew as well as the distance dn between the nearest piece of picture data in the candidate cluster Cq and the attention data picnew. The node addition section 32 repeatedly carries out the process to identify a candidate node Nq as well as the process to compute the distance dn and the maximum distance dq till the largest candidate node Nq satisfying the relation dq<dn (or dq≦dn) As the largest candidate node Nq satisfying the relation dq<dn (or dq≦dn) is found, the node addition section 32 adds a new node Nin and places the new node Nin on the arc between the final branch node Np and the final candidate node Nq as a node having the final branch node Np as the parent node and the final candidate node Nq as well as the attention node Nnew as the child nodes as shown in
If the distance dr between the nearest piece of picture data in the candidate cluster Cr corresponding to the right node r(Np) and the attention data picnew is shorter (or not longer) than the distance d1 between the nearest piece of picture data in the candidate cluster Cl corresponding to the left node l(Np) and the attention data picnew in the cluster tree shown in
In addition, let us assume for example that the attention data picnew is placed at the right end of an array of pieces of picture data arranged in the order of photographing dates/times as shown in
By the same token, as another example, let us assume that the attention data picnew is placed at the left end of an array of pieces of picture data arranged in the order of photographing dates/times as shown in FIG. 26. That is to say, the photographing date/time of the attention data picnew is earliest among the other pieces of picture data. In this case, there is no cluster existing on the left side of the attention data picnew, which is placed at the attention position, and the largest cluster existing on the right side adjacent to the attention data picnew is the cluster corresponding to the root node. With such a cluster tree, a node addition process may be carried out to add a virtual node as a branch node Np having the existing root node as the right node, which also serves as a candidate node Nq.
Next, by referring to a flowchart shown in
As shown in
At the step S22, on the basis of a branch node received from the branch-node searching section 31 and metadata received from the metadata reading section 20 as the metadata of the attention data picnew, the node addition section 32 carries out a node addition process to add a new node Nin to the cluster tree stored in the cluster-tree storage apparatus 14 and creates a new cluster tree. The node addition section 32 adds the new node Nin to the cluster tree as a node having an attention node Nnew assigned to the attention data picnew as one of the child nodes. Then, the flow of the processing goes on to the next step S23.
At the step S23, the node addition section 32 uses the cluster tree created at the step S22 as an update of the cluster tree stored in the cluster-tree storage apparatus 14. Then, the node addition section 23 returns the control of the processing to the calling program to end the execution of the tree-structure processing.
Next, by referring to a flowchart shown in
As shown in
At the step S42, the branch-node searching section 31 assigns a leaf node to attention data picnew and stores metadata received from the metadata reading section 20 as the metadata of the attention data picnew in the assigned leaf node. To put it concretely, the branch-node searching section 31 assigns a leaf node to the attention data picnew by setting information on the attention data picnew in a variable representing the leaf node, which is also referred to as an attention node Nnew.
At the same step S42, the branch-node searching section 31 also identifies a photographing date/time t(Nnew) from the metadata held in the attention node Nnew and a photographing date/time t(Rm(l(Np))) from the left-side rightmost leaf node Rm(l(Np)) of the tentative branch node Np. As described before, the photographing date/time t(Nnew) is the photographing date/time of the attention data picnew assigned to the attention node Nnew. On the other hand, the photographing date/time t(Rm(l(Np))) is the photographing date/time of picture data assigned to the left-side rightmost leaf node Rm(l(Np)) of the tentative branch node Np. Then, the branch-node searching section 31 produces a result of determination as to whether or not the photographing date/time t(Nnew) of the attention data picnew assigned to the attention node Nnew is earlier than the photographing date/time t(Rm(l(Np))) of picture data assigned to the left-side rightmost leaf node Rm(l(Np)). That is to say, the branch-node searching section 31 produces a result of determination as to whether or not the relation t(Nnew)<t(Rm(l(Np))) holds true.
If the determination result produced at the step S42 indicates that the photographing date/time t(Nnew) is earlier than the photographing date/time t(Rm(l(Np))), the flow of the processing goes on to a step S43. The branch-node searching section 31 replaces the tentative branch node Np with a node N having the left-side rightmost leaf node Rm(l(N)) thereof further shifted to the left side in comparison with the left-side rightmost leaf node Rm(l(Np)) in the cluster tree since the tentative branch point Np is not the branch point Np for the attention data picnew assigned to the attention node Nnew. This is because the left-side rightmost leaf node Rm(l(Np)) of the tentative branch point Np is a node placed on the right side of the attention node Nnew in spite of the fact that picture data assigned to the left-side rightmost leaf node Rm(l(Np)) of the tentative branch node Np should be placed on the left side adjacent to the attention data picnew assigned to the attention node Nnew as shown in
To put it concretely, at the step S43, the branch-node searching section 31 replaces the present tentative branch node Np with a new tentative branch node Np, which is the left node l(Np) of the present tentative node Np. Then, the flow of the processing goes back from the step S43 to the step S41 to repeat the processes described above.
If the determination result produced at the step S42 indicates that the photographing date/time t(Nnew) is not earlier than the photographing date/time t(Rm(l(Np))), that is if the left-side rightmost leaf node Rm(l(Np)) of the tentative branch point Np is not positioned on the right side of the attention node Nnew, on the other hand, the flow of the processing goes on to a step S44. The branch-node searching section 31 identifies the photographing date/time t(Lm(r(Np))) of picture data assigned to the right-side leftmost leaf node Lm(r(Np)) from the metadata held by the right-side leftmost leaf node Lm(r(Np)). The branch-node searching section 31 produces a result of determination as to whether or not the photographing date/time t(Nnew) of the attention data picnew assigned to the attention node Nnew is later than the photographing date/time t(Lm(r(Np))) of picture data assigned to the right-side leftmost leaf node Lm(r(Np)) That is to say, the branch-node searching section 31 produces a result of determination as to whether or not the relation t(Nnew)>t(Lm(r(Np))) holds true.
If the determination result produced at the step S44 indicates that the photographing date/time t(Nnew) is later than the photographing date/time t(Lm(r(Np))), the flow of the processing goes on to a step S45. The branch-node searching section 31 replaces the tentative branch node Np with a node N having the right-side leftmost leaf node Lm(r(N)) thereof further shifted to the right side in comparison with the right-side leftmost leaf node Lm(r(Np)) in the cluster tree since the tentative branch point Np is not the branch node Np for the attention data picnew assigned to the attention node Nnew. This is because the right-side leftmost leaf node Lm(r(Np)) of the tentative branch point Np is a node placed on the left side of the attention node Nnew in spite of the fact that picture data assigned to the right-side leftmost leaf node Lm(r(Np)) of the tentative branch node Np should be placed on the right side adjacent to the attention data picnew assigned to the attention node Nnew as shown in
To put it concretely, at the step S45, the branch-node searching section 31 replaces the present tentative branch node Np with a new tentative branch node Np, which is the right node r(Np) of the present tentative node Np. Then, the flow of the processing goes back from the step S45 to the step S42 at which the branch-node searching section 31 starts repetition of the processes described above.
If the determination result produced at the step S44 indicates that the photographing date/time t(Nnew) is not later than the photographing date/time t(Lm(r(Np))), that is, if the photographing date/time t(Nnew) are earlier than the photographing date/time t(Rm(l(Np))) but later than the photographing date/time t(Lm(r(Np))) and are satisfying relation (7), on the other hand, the flow of the processing goes on to a step S46. The branch-node searching section 31 confirms the tentative branch node Np as the final branch node of the attention node Nnew and supplies the final branch node to the node addition section 32. Then, the branch-node searching section 31 returns the control of processing to the calling program and ends the execution of the branch-node searching processing.
Next, by referring to a flowchart shown in
As shown in
At the step S52, the distance computation section 41 produces a result of determination as to whether or not the left cluster distance dl is shorter (or not longer) than the right cluster distance dr.
If the determination result produced at the step S52 indicates that the left cluster distance dl is shorter than the right cluster distance dr, the flow of the processing goes on to a step S61. If the determination result produced at the step S52 indicates that the left cluster distance dl is not shorter than the right cluster distance dr, on the other hand, the flow of the processing goes on to a step S71.
At the step S61, the distance computation section 41 takes the left node l(Np) of the branch node Np as a candidate node Nq. Then, the flow of the processing goes on to the next step S62. At the step S62, the distance computation section 41 computes a distance dn between the nearest piece of picture data in a candidate cluster Cq corresponding to the candidate node Nq and the attention data picnew assigned to the attention node Nnew. As explained earlier by referring to FIGS. 22 to 24, the nearest piece of picture data in the candidate cluster Cq is the rightmost picture data among pieces of picture data pertaining to the candidate cluster Cq, and the rightmost picture data among pieces of picture data pertaining to the candidate cluster Cq is picture data on the left side adjacent to the attention data picnew. The distance computation section 41 then supplies the distance dn to the determination section 42. Then, the flow of the processing goes on to the next step S63.
At the step S63, the distance computation section 41 computes the maximum distance dq representing the maximum value of distances between all two adjacent pieces of picture data pertaining to the candidate cluster Cq corresponding to the candidate node Nq (the pieces of picture data already clustered in the cluster tree) and supplies the maximum distance dq to the determination section 42. Then, the flow of the processing goes on to the next step S64.
At the step S64, the determination section 42 compares the distance dn received from the distance computation section 41 as the distance between the nearest piece of picture data in the candidate cluster Cq and the attention data picnew with the maximum distance dq received from the distance computation section 41 representing distances between all two adjacent pieces of picture data pertaining to the candidate cluster Cq in order to produce a result of determination as to whether or not the distance dn is longer (or not shorter) than the maximum distance dq.
If the determination result produced at the step S64 indicates that the distance dn between the nearest piece of picture data in the candidate cluster Cq and the attention data picnew is not longer than (or neither equal to nor longer than) the maximum distance dq between all two adjacent pieces of picture data pertaining to the candidate cluster Cq the flow of the processing goes on to a step S65. That is, if the distances between all two adjacent pieces of picture data pertaining to the candidate cluster Cq include a distance longer (or not shorter) than the distance dn between the attention data picnew and the nearest piece of picture data in a candidate cluster Cq, the attention data picnew is included in the candidate cluster Cq. The distance computation section 41 replaces the branch Np and the candidate node Nq with respectively a new branch Np and a new candidate node Nq in order to further identify a smaller-size cluster included in the present candidate cluster Cq as a cluster including the attention data picnew.
That is to say, at the step S65, the distance computation section 41 updates the branch Np and the candidate node Nq by taking the present candidate cluster Nq as a new branch cluster Np and taking the right node r(Nq) serving as one of the two child nodes of the present candidate cluster Nq as a new candidate cluster Nq.
After the distance computation section 41 updates the branch Np and the candidate node Nq at the step S65, the flow of the processing goes back to the step S62 to repeat the processes described above.
It is to be noted that, this time, at the step S62, the distance computation section 41 computes a distance dn between the nearest piece of picture data in a candidate cluster Cq corresponding to the new candidate node Nq and the attention data picnew assigned to the attention node Nnew. The nearest piece of picture data in the candidate cluster Cq corresponding to the candidate node Nq is picture data on the left side adjacent to the attention data picnew when the left node l(Np) is taken as the candidate node Nq at the step S61. That is to say, even if the distance computation section 41 updates the branch Np and the candidate node Nq at the step S65, the picture data on the left side adjacent to the attention data picnew remains the same. Thus, since the distance dn is the distance between the picture data on the left side adjacent to the attention data picnew and the attention data picnew, the distance dn remains unchanged even if the distance computation section 41 updates the branch Np and the candidate node Nq.
Accordingly, it is possible to skip the process carried out at the step S62 to find the distance dn for the attention data picnew in the second and subsequent iterations of the flowchart.
If the determination result produced at the step S64 indicates that the distance dn between the nearest piece of picture data in the candidate cluster Cq and the attention data picnew is longer (or not shorter) than the maximum distance dq between all two adjacent pieces of picture data pertaining to the candidate cluster Cq, the flow of the processing goes on to a step S53. That is, if the distances between all two adjacent pieces of picture data pertaining to the candidate cluster Cq include no distance longer (or not shorter) than the distance dn between the attention data picnew and the nearest piece of picture data in a candidate cluster Cq, the attention data picnew may not be pertained to a cluster included in the present candidate cluster Cq corresponding to the present candidate node Nq. In other words, the attention data picnew may be pertained to a cluster corresponding to the present branch node Np or the candidate node Nq right before the process carried out at the step S65 of the previous iteration, but may not be pertained to a cluster corresponding to the present candidate node Nq. Thus, the addition section 43 adds a new node Nin to the cluster tree so that the attention data picnew may be pertained to a cluster corresponding to the present branch node Np or the candidate node Nq right before the previous iteration process.
That is to say, at the step S53, the addition section 43 updates the present cluster tree in order to create a new cluster tree by adding the new node Nin to the present tree as a node placed at a position on an arc between the branch node Np and the candidate node Nq. In this way, the new node Nin has the branch node Np as the parent node and the candidate node Nq as one of the child nodes. On the other hand, the attention node Nnew serves as the other child node of the new node Nin. Finally, the control of the processing is returned to the calling program to end the node addition processing.
As described above, if the determination result produced at the step S52 indicates that the left cluster distance dl is not smaller than the right cluster distance dr, on the other hand, the flow of the processing goes on to a step S71. At the step S71, the distance computation section 41 takes the right node r(Np) of the branch node Np as a candidate node Nq. Then, the flow of the processing goes on to the next step S72. At the step S72, the distance computation section 41 computes a distance dn between the nearest piece of picture data in a candidate cluster Cq corresponding to the candidate node Nq and the attention data picnew assigned to the attention node Nnew. The distance computation section 41 then supplies the distance dn to the determination section 42.
With the distance computation section 41 taking the right node r(Np) of the branch node Np as a candidate node Nq at the step S71, the nearest piece of picture data in the candidate cluster Cq corresponding to the candidate node Nq is the leftmost picture data among pieces of picture data pertaining to the candidate cluster Cq and is picture data on the right side adjacent to the attention data picnew. Then, the processing goes to the step S73.
At the step S73, the distance computation section 41 computes the maximum distance dq between all two adjacent pieces of picture data pertaining to the candidate cluster Cq corresponding to the candidate node Nq (the pieces of picture data already clustered in the candidate cluster Cq) and supplies the maximum distance dq to the determination section 42. Then, the flow of the processing goes on to a step S74.
At the step S74, the determination section 42 compares the distance dn received from the distance computation section 41 as the distance between the nearest piece of picture data in the candidate cluster Cq and the attention data picnew with the maximum distance dq received from the distance computation section 41 as a distance representing distances between all two adjacent pieces of picture data pertaining to the candidate cluster Cq in order to produce a result of determination as to whether or not the distance dn is longer (or not shorter) than the maximum distance dq.
If the determination result produced at the step S74 indicates that the distance dn between the nearest piece of picture data in the candidate cluster Cq and the attention data picnew is not longer than (or neither equal to nor longer than) the maximum distance dq between all two adjacent pieces of picture data pertaining to the candidate cluster Cq, the flow of the processing goes on to a step S75. That is, if the distances between all two adjacent pieces of picture data pertaining to the candidate cluster Cq include a distance longer (or not shorter) than the distance dn between the attention data picnew and the nearest piece of picture data in a candidate cluster Cq, the attention data picnew may be included in a cluster included in the present candidate cluster Cq. The distance computation section 41 replaces the branch Np and the candidate node Nq with a new branch Np and a new candidate node Nq respectively in order to further identify a smaller-size cluster included in the present candidate cluster Cq as a cluster including the attention data picnew.
That is to say, at the step S75, the distance computation section 41 updates the branch Np and the candidate node Nq by taking the present candidate node Nq as a new branch cluster Np and taking the left node l(Nq) serving as one of the two child nodes of the present candidate node Nq as a new candidate node Nq.
After the distance computation section 41 updates the branch Np and the candidate node Nq at the step S75, the flow of the processing goes back to the step S72 to repeat the processes described above.
It is to be noted that, this time, at the step S72, the distance computation section 41 computes a distance dn between the nearest piece of picture data in a candidate cluster Cq corresponding to the new candidate node Nq and the attention data picnew assigned to the attention node Nnew. The nearest piece of picture data in the candidate cluster Cq corresponding to the candidate node Nq is picture data on the right side adjacent to the attention data picnew. Thus, the nearest piece of picture data in the candidate cluster Cq is the same nearest piece of picture data as the first candidate cluster Cq of the step S71 at which the right node r(Np) is taken as the first candidate node Nq corresponding to the first candidate cluster Cq. That is to say, even if the distance computation section 41 updates the branch Np and the candidate node Nq at the step S75, the picture data on the right side adjacent to the attention data picnew remains the same. Thus, since the distance dn and the attention data picnew is the distance between the picture data on the right side adjacent to the attention data picnew and the attention data picnew, the distance dn remains unchanged even if the distance computation section 41 updates the branch Np and the candidate node Nq.
Accordingly, it is possible to skip the process carried out at the step S72 to find the distance dn for the attention data picnew in the second and subsequent iterations.
If the determination result produced at the step S74 indicates that the distance dn between the nearest piece of picture data in the candidate cluster Cq and the attention data picnew is longer (or not shorter) than the maximum distance dq between all two adjacent pieces of picture data pertaining to the candidate cluster Cq, the flow of the processing goes on to the step S53. That is, if the distances between all two adjacent pieces of picture data pertaining to the candidate cluster Cq include no distance longer (or not shorter) than the distance dn between the attention data picnew and the nearest piece of picture data in a candidate cluster Cq, the attention data picnew may not be pertained to a cluster included in the present candidate cluster Cq corresponding to the present candidate node Nq. In other words, the attention data picnew may be pertained to a cluster corresponding to the present branch node Np or the candidate node Nq right before the process carried out at the step S75 of the previous iteration, but may not be pertained to a cluster included in a cluster corresponding to the present candidate node Nq. Thus, the addition section 43 adds a new node Nin to the cluster tree so that the attention data picnew may be pertained to a cluster corresponding to the present branch node Np or the candidate node Nq right before the previous iteration process.
That is to say, at the step S53, the addition section 43 updates the present cluster tree in order to create a new cluster tree by adding the new node Nin to the present tree as a node placed at a position on an arc between the branch node Np and the candidate node Nq. In this way, the new node Nin has the branch node Np as the parent node and the candidate node Nq as one of the child holes. On the other hand, the attention node Nnew serves as the other child node of the new node Nin. Finally, the control of the processing is returned to the calling program to end the node addition processing.
Next, by referring to flowcharts shown in FIGS. 30 to 35, the following description explains another embodiment of the clustering processing carried out by the clustering apparatus 13 as shown in
The clustering apparatus 13 reads out metadata of attention data picnew from the data storage apparatus 12 and generates an attention node Nnew assigned to the attention data picnew. Then, the clustering apparatus 13 stores information used for identifying the attention data picnew and metadata of the attention data picnew stored in the data storage apparatus 12 in a variable representing the attention node Nnew. Subsequently, at the first step S101 of the flowchart shown in
If the number of pieces of picture data each assigned to a leaf node of the present cluster tree is found to be zero at the step S101, the flow of the processing goes on to a step S102 at which the clustering apparatus 13 generates a new cluster tree having its root node Nroot serving as the attention node Nnew assigned to the attention data picnew. To put it concretely, the clustering apparatus 13 copies the contents of the variable representing the attention node Nnew to a variable representing the root node Nroot. Then, the clustering apparatus 13 stores the new cluster tree in the cluster-tree storage apparatus 14 over the existing cluster tree. Finally, the control of the processing is returned to the calling program to end the execution of the clustering processing.
If the number of pieces of picture data each assigned to a leaf node of the present cluster tree is found to be one at the step S101, that is, if the present cluster tree includes the root node Nroot only and a piece of picture data has been assigned to the root node Nroot, the flow of the processing goes on to a step S103. The clustering apparatus 13 recognizes the photographing date/time t(Nroot) of the piece of picture data assigned to the root node Nroot of the cluster tree from metadata held in the root node Nroot and the photographing date/time t(Nnew) of the attention data picnew assigned to the attention node Nnew from metadata held in the attention node Nnew. Then, the clustering apparatus 13 produce a result of determination as to whether or not the photographing date/time t(Nroot) of the piece of picture data assigned to the root node Nroot is earlier than the photographing date/time t(Nnew) of the attention data picnew assigned to the attention node Nnew.
If the determination result produced at the step S103 indicates that the photographing date/time t(Nroot) of the piece of picture data assigned to the root node Nroot is earlier than the photographing date/time t(Nnew) of the attention data picnew assigned to the attention node Nnew, he flow of the processing goes on to a step S104. That is, if the piece of picture data assigned to the root node Nroot is a piece of picture data obtained in a photographing operation carried out at a time earlier than the attention data picnew, the flow of the processing goes on to a step S104. The clustering apparatus 13 generates a new cluster tree and stores the new cluster tree in the cluster-tree storage apparatus 14. In the new cluster tree, the previous root node is used as the left node l(Nroot) of a new root node Nroot and the attention node Nnew is used as the right node r(Nroot) of the new root node Nroot. Then, control of the processing is returned to the calling program.
If the determination result produced at the step S103 indicates that the photographing date/time t(Nroot) of the piece of picture data assigned to the root node Nroot is not earlier than the photographing date/time t(Nnew) of the attention data picnew assigned to the attention node Nnew, the flow of the processing goes on to a step S105. That is, if the piece of picture data assigned to the root node Nroot is a piece of picture data obtained in a photographing operation carried out at the same time as or at a time later than the attention data picnew, the flow of the processing goes on to a step S105. The clustering apparatus 13 generates a new cluster tree and stores the new cluster tree in the cluster-tree storage apparatus 14. In the new cluster tree, the previous root node is used as the right node r(Nroot) of a new root node Nroot and the attention node Nnew is used as the left node l(Nroot) of the new root node Nroot. Then, control of the processing is returned to the calling program.
If the number of pieces of picture data each assigned to a leaf node of the present cluster tree is found to be at least two at the step S101, the flow of the processing goes on to a step S106 at which the clustering apparatus 13 searches nodes findable by tracing down through arcs of the present cluster tree from the root node Nroot for a node Rm(Nroot) placed at the right end of the cluster tree. In the following description, the node Rm(Nroot) placed at the right end of the cluster tree is properly referred to as a rightmost leaf node Rm(Nroot).
The rightmost leaf node Rm(Nroot) placed at the right end of the cluster tree as a node found in the search process of tracing down through arcs of the present cluster tree from the root node Nroot is found by calling a function Rm(Nroot) by using the root node Nroot as an argument.
By referring to the flowchart shown in
The flowchart shown in
If the determination result produced at the step S131 indicates that the number of pieces of picture data already clustered in (or pertaining to) a cluster corresponding to the node N of the cluster tree is not one, that is, if the node N is not a leaf node, the flow of the processing goes on to a step S132. The clustering apparatus 13 replaces the node N used as the argument with the right node r(N) of the node N. Then, the flow of the processing goes back to the step S131 to repeat the processes of this step and the step S132.
As the determination result produced at the step S131 indicates that the number of pieces of picture data already clustered in (or pertaining to) a cluster corresponding to the node N of the cluster tree is one, that is, if the node N is a leaf node, the clustering apparatus 13 returns the node N to the calling program as the return value of the function Rm(N) and ends the processing of the function Rm(N).
Let us refer back to the flowchart shown in
The piece of picture data assigned to the rightmost leaf node Rm(Nroot) findable by tracing down through arcs of the present cluster tree from the root node Nroot is a piece of picture data having the latest photographing date/time among all pieces of picture data clustered by using the present cluster tree.
If the determination result produced at the step S106 indicates that the photographing date/time t(Rm(Nroot)) of a piece of picture data assigned to the rightmost leaf node Rm(Nroot) is earlier than the photographing date/time t(Nnew) of the attention data picnew assigned to the attention node Nnew, that is, if the attention data picnew is piece of picture data having the latest photographing date/time among all processing-object pieces of picture data, the flow of the processing goes on to a step S108. The processing-object pieces of picture data are pieces of picture data each serving as an object of the layer clustering process. The processing-object pieces of picture data include all pieces of picture data already clustered by using the present cluster tree and the attention data picnew.
If the determination result produced at the step S106 indicates that the photographing date/time t(Rm(Nroot)) of a piece of picture data assigned to the rightmost leaf node Rm(Nroot) is not earlier than the photographing date/time t(Nnew) of the attention data picnew assigned to the attention node Nnew, the flow of the processing goes on to a step S107. That is, if the photographing date/time t(Nnew) of the attention data picnew assigned to the attention node Nnew is earlier than the photographing date/time t(Rm(Nroot)) of a piece of picture data assigned to the rightmost leaf node Rm(Nroot) as a piece of picture data having the latest photographing date/time among all pieces of picture data clustered by using the present cluster tree, the flow of the processing goes on to a step S107. The clustering apparatus 13 searches nodes findable by tracing down through arcs of the present cluster tree from the root node Nroot for a node Lm(Nroot) placed at the left end of the cluster tree. In the following description, the node Lm(Nroot) is properly referred to as a leftmost leaf node Lm(Nroot).
The leftmost leaf node Lm(Nroot) placed at the left end of the cluster tree as a node found in the search process of tracing down through arcs of the present cluster tree from the root node Nroot is found by calling a function Lm(Nroot) by using the root node Nroot as an argument.
By referring to the flowchart shown in
The flowchart shown in
If the determination result produced at the step S141 indicates that the number of pieces of picture data already clustered in (or pertaining to) a cluster corresponding to the node N of the cluster tree is not one, that is, if the node N is not a leaf node, the flow of the processing goes on to a step S142 at which the clustering apparatus 13 replaces the node N used as the argument with the left node l(N) of the node N. Then, the flow of the processing goes back to the step S141 to repeat the processes of this step and the step S142.
As the determination result produced at the step S141 indicates that the number of pieces of picture data already clustered in (or pertaining to) a cluster corresponding to the node N of the cluster tree is one, that is, if the node N is a leaf node, the clustering apparatus 13 returns the node N to the calling program as the return value of the function Lm(N) and ends the processing of the function Lm(N).
Let us refer back to the flowchart shown in
The piece of picture data assigned to the leftmost leaf node Lm(Nroot) findable by tracing down through arcs of the present cluster tree from the root node Nroot is piece of picture data having the earliest photographing date/time among all pieces of picture data clustered by using the present cluster tree.
If the determination result produced at the step S107 indicates that the photographing date/time t(Lm(Nroot)) of a piece of picture data assigned to the leftmost leaf node Lm(Nroot) is later than the photographing date/time t(Nnew) of the attention data picnew assigned to the attention node Nnew, that is, if the attention data picnew is a piece of picture data having the earliest photographing date/time among all processing-object pieces of picture data, the flow of the processing goes on to a step S111. The processing-object pieces of picture data include all pieces of picture data already clustered by using the present cluster tree and the attention data picnew.
If the determination result produced at the step S107 indicates that the photographing date/time t(Lm(Nroot)) of a piece of picture data assigned to the leftmost leaf node Lm(Nroot) is not later than the photographing date/time t(Nnew) of the attention data picnew assigned to the attention node Nnew, the flow of the processing goes on to a step S112. In other words, if the photographing date/time t(Nnew) of the attention data picnew assigned to the attention node Nnew is newer than the photographing date/time t(Lm(Nroot)) of a piece of picture data assigned to the leftmost leaf node Lm(Nroot) as a piece of picture data having the earliest photographing date/time among all pieces of picture data clustered by using the present cluster tree, the flow of the processing goes on to a step S112.
The processes of the steps S106 and S107 are carried out to produce a result of determination as to whether the attention data picnew is placed at the left end, the right end, or a position other than the left and right ends of an array of processing-object pieces of picture data arranged in the left-to-right order representing an order of photographing dates/times. The processing-object pieces of picture data include all pieces of picture data already clustered by using the present cluster tree and the attention data picnew. If the attention data picnew is placed at the right end of the array, the flow of the processing goes on from the step S106 to the step S108. If the attention data picnew is placed at the left end of the array, the flow of the processing goes on from the step S107 to the step S111. If the attention data picnew is placed at a position other than the left and right ends of the array, the flow of the processing goes on from the step S107 to the step S112. The following description explains processes carried out at the steps S108, S111, and S112.
If the attention data picnew is placed at the right end of the array of processing-object pieces of picture data arranged in the left-to-right order representing an order of photographing dates/times as a piece of picture data having the latest photographing date/time among the processing-object pieces of picture data, the flow of the processing goes on from the step S106 to the step S108. The clustering apparatus 13 calls a function IRM(Nroot, Nnew) having variables representing the root node Nroot and the attention node Nnew as its arguments and stores the return value of the function IRM(Nroot, Nnew) in a variable TMP.
In general, a function IRM(Nq, Nnew) is a function having a candidate node Nq and an attention node Nnew as arguments. By execution of the function IRM(Nq, Nnew), processing is carried out to add a new node Nin to the cluster tree as a node having the attention node Nnew as one of the child nodes and the candidate node Nq as the other child node. If the root node Nroot is used as the Nq argument, the processing to add a new node Nin to the cluster tree is similar to the processing to add a branch node Np as shown in
As shown in the figure, the flowchart begins with a step S151 at which the clustering apparatus 13 takes a node as a branch node Np meeting the following condition. The branch node Np has the candidate node Nq, which is specified as an argument of the function IRM(Nq, Nnew), as the left node l(Np) Then, the flow of the processing goes on to the next step S152 at which the clustering apparatus 13 computes the maximum distance dq representing the maximum value of distances between all two adjacent pieces of picture data pertaining to a candidate cluster Cq corresponding to the candidate node Nq.
As described earlier, the maximum distance dq between all two adjacent pieces of picture data pertaining to a cluster corresponding to a node N is the distance between a cluster corresponding to the left node l(N) of the node N and a cluster corresponding to the right node r(N) of the node N. Also as described before, the distance between a cluster Ci and another cluster Cj is the distance between a first piece of picture data pertaining to the cluster Ci and a second piece of picture data pertaining to the other cluster Cj the shortest distance among distances of other pairs of pieces of picture data.
Thus, the maximum distance dq between all two adjacent pieces of picture data pertaining to a cluster corresponding to a node N is the distance between a piece of picture data clustered in a cluster corresponding to the left node l(N) of the node N as the rightmost piece of picture data and a piece of picture data clustered in a cluster corresponding to the right node r(N) of the node N as the leftmost piece of picture data.
In accordance with the above description, the maximum distance dq between all two adjacent pieces of picture data pertaining to the candidate cluster Cq corresponding to the candidate node Nq can be found by using Eq. (2) or (3) as a distance dpic(Rm(l(Nq)), Lm(r(Nq)) between picture data assigned to the left-side rightmost leaf node Rm(l(Nq)) of the candidate node Nq and picture data assigned to the right-side leftmost leaf node Lm(r(Nq)) of the candidate node Nq.
After the process carried out at the step S152 is completed, the flow of the processing goes on to a step S153 at which the clustering apparatus 13 computes a distance dn between the nearest piece of picture data in the candidate cluster Cq and the attention data picnew assigned to the attention node Nnew.
In this case, if the left node l(Np) of the branch node Np is used as the candidate node Nq as described above, the nearest piece of picture data in the candidate cluster Cq is the picture data on the left side adjacent to the attention data picnew. This picture data are also picture data assigned to the left-side rightmost leaf node Rm(l(Np)) of the branch node Np.
Thus, the distance found at the step S153 as the distance dn between the nearest piece of picture data in the candidate cluster Cq and the attention data picnew can be computed by using Eq. (2) or (3) as a distance dpic(Rm(l(Np)), Nnew) between picture data assigned to the left-side rightmost leaf node Rm(l(Np)) of the branch node Np and the attention data picnew assigned to the attention node Nnew.
After the process carried out at the step S153 is completed, the flow of the processing goes on to a step S154. The clustering apparatus 13 produces a result of determination as to whether or not the distance dn between the nearest piece of picture data in the candidate cluster Cq corresponding to the candidate node Nq and the attention data picnew is longer (or not shorter) than the maximum distance dq between all two adjacent pieces of picture data pertaining to the candidate cluster Cq corresponding to the candidate node Nq.
If the determination result produced at the step S154 indicates the distance dn is longer (or not shorter) than the maximum distance dq, the flow of the processing goes on to a step S155. The clustering apparatus 13 adds a new node Nin to the cluster tree stored in the cluster-tree storage apparatus 14 and returns the new node Nin to the calling program as the return value of the function IRM(Nq, Nnew) before ending the execution of the processing of the function IRM(Nq, Nnew). The clustering apparatus 13 places the new node Nin at such a position in the cluster tree that the left node l(Nin) becomes the candidate node Nq and the right node r(Nin) becomes the attention node Nnew. This is because the attention data picnew should not pertain to a cluster (the present candidate cluster Cq) corresponding to the present candidate node Nq.
If the determination result produced at the step S154 indicates the distance dn is not longer than (or neither equal to nor longer than) the maximum distance dq, the flow of the processing goes on to a step S156. In other words, if the distances between all two adjacent pieces of picture data pertaining to the candidate cluster Cq include a distance longer (or not shorter) than the distance dn between the attention data picnew and the picture data assigned to the left-side rightmost leaf node Rm(l(Np)) of the branch node Np (the distance between the attention data picnew and the picture data on the left side adjacent to the attention data picnew), the flow of the processing goes on to a step S156. The clustering apparatus 13 updates the branch node Np and the candidate node Nq. This is because the attention data picnew are pertained to the candidate cluster Cq, and the attention data picnew may be pertained to a cluster included in the candidate cluster Cq.
That is to say, at the step S156, the clustering apparatus 13 takes the present candidate node Nq as a new branch node Np and the right node r(Nq) of the present candidate node Nq as a new candidate node Nq.
After the process carried out at the step S156 is completed, the flow of the processing goes on to a step S157 at which the clustering apparatus 13 produces a result of determination as to whether or not the candidate cluster Cq corresponding to the new candidate node Nq contains only a piece of picture data.
If the determination result produced at the step S157 indicates that the candidate cluster Cq corresponding to the new candidate node Nq contains a plurality of pieces of picture data, that is, if the candidate node Nq is not a leaf node but a parent node having child nodes, the flow of the processing goes on to a step S159. In the same way as the process carried out at the step S152, the clustering apparatus 13 finds the maximum distance dq between all two adjacent pieces of picture data pertaining to the candidate cluster Cq corresponding to the new candidate node Nq obtained as a result of the process carried out at the step S156 immediately preceding the step S157. Then, the flow of the processing goes on to the next step S160.
In the same way as the step S154, at the step S160, the clustering apparatus 13 produces a result of determination as to whether or not the distance dn between the nearest piece of picture data in the candidate cluster Cq corresponding to the candidate node Nq (the picture data on the left side adjacent to the attention data picnew) and the attention data picnew is longer (or not shorter) than the maximum distance dq between all two adjacent pieces of picture data pertaining to the candidate cluster Cq corresponding to the candidate node Nq.
If the determination result produced at the step S160 indicates the distance dn is not longer than (or neither equal to nor longer than) the maximum distance dq, that is, if the distances between all two adjacent pieces of picture data pertaining to the candidate cluster Cq include a distance longer (or not shorter) than the distance dn between the attention data picnew and the picture data assigned to the left-side rightmost leaf node Rm(l(Np)) of the branch node Np (the picture data on the left side adjacent to the attention data picnew), the flow of the processing goes back to the step S156. The clustering apparatus 13 updates the branch node Np and the candidate node Nq. This is because the attention data picnew are pertained to the candidate cluster Cq, and the attention data picnew may be pertained to a cluster included in the candidate cluster Cq. The processes of the step S156 and the subsequent steps are carried out repeatedly.
As the determination result produced at the step S157 indicates that the candidate cluster Cq corresponding to the new candidate node Nq contains only one piece of picture data or as the determination result produced at the step S160 indicates the distance dn is longer (or not shorter) than the maximum distance dq, the flow of the processing goes on to a step S158. The clustering apparatus 13 adds a new node Nin to the cluster tree stored in the cluster-tree storage apparatus 14 and returns a value of NULL to the calling program as the return value of the function IRM(Nq, Nnew) before ending the execution of the processing of the function IRM(Nq, Nnew). The clustering apparatus 13 places the new node Nin at such a position in the cluster tree that the new node Nin serves as the right node r(Np) of the branch node Np, the left node l(Nin) becomes the candidate node Nq, and the right node r(Nin) becomes the attention node Nnew. This is because the new candidate node Nq is a leaf node or the attention data picnew should not be pertained to the candidate cluster Cq corresponding to the present candidate node Nq.
Let us refer back to the flowchart shown in
At the step S109, the clustering apparatus 13 produces a result of determination as to whether or not the variable TMP has a value of NULL. If the determination result produced at the step S109 indicates that the variable TMP has a value of NULL, the clustering apparatus 13 ends the execution of the clustering processing.
If the determination result produced at the step S109 indicates that the variable TMP has a value other than NULL, that is, if the variable TMP contains a new node Nin received from the processing, which is represented by the flowchart shown in
As described above, if the attention data picnew is a piece of picture data having the earliest photographing date/time among all processing-object pieces of picture data, that is, if the attention data picnew is a piece of picture data placed at the left end of an array of processing-object pieces of picture data arranged in the left-to-right order representing an order of photographing dates/times, the flow of the processing represented by the flowchart shown in
In general, a function ILM(Nq, Nnew) is a function having a candidate node Nq and an attention node Nnew as arguments. By execution of the function ILM (Nq, Nnew), processing is carried out to add a new node Nin to the cluster tree as a node having the attention node Nnew as one of the child nodes and the candidate node Nq as the other child node. If the root node Nroot is used as the Nq argument, the processing to add a new node Nin to the cluster tree is similar to the processing to add a branch node Np as shown in
As shown in the figure, the flowchart begins with a step S171 at which the clustering apparatus 13 takes a node as a branch node Np meeting the following condition. The branch node Np has the candidate node Nq, which is specified as an argument of the function ILM(Nq, Nnew), as the right node r(Np). Then, the flow of the processing goes on to the next step S172 at which the clustering apparatus 13 computes the maximum distance dq representing the maximum value of distances between all two adjacent pieces of picture data pertaining to a candidate cluster Cq corresponding to the candidate node Nq in the same way as the step S152 of the flowchart shown in
After the process carried out at the step S172 is completed, the flow of the processing goes on to a step S173 at which the clustering apparatus 13 computes a distance dn between the nearest piece of picture data in the candidate cluster Cq and the attention data picnew assigned to the attention node Nnew.
In this case, if the right node r(Np) of the branch node Np is used as the candidate node Nq as described above, the nearest piece of picture data in the candidate cluster Cq is the picture data on the right side adjacent to the attention data picnew. This picture data are also picture data assigned to the right-side leftmost leaf node Lm(r(Np)) of the branch node Np.
Thus, the distance found at the step S173 as the distance dn between the nearest piece of picture data in the candidate cluster Cq and the attention data picnew can be computed by using Eq. (2) or (3) as a distance dpic(Lm(r(Np)), Nnew) between picture data assigned to the right-side leftmost leaf node Lm(l(Np)) of the branch node Np and the attention data picnew assigned to the attention node Nnew.
After the process carried out at the step S173 is completed, the flow of the processing goes on to a step S174 at which the clustering apparatus 13 produces a result of determination as to whether or not the distance dn between the nearest piece of picture data in the candidate cluster Cq corresponding to the candidate node Nq and the attention data picnew is longer (or not shorter) than the maximum distance dq between all two adjacent pieces of picture data pertaining to the candidate cluster Cq corresponding to the candidate node Nq.
If the determination result produced at the step S174 indicates the distance dn is longer (or not shorter) than the maximum distance dq, the flow of the processing goes on to a step S175. The clustering apparatus 13 adds a new node Nin to the cluster tree stored in the cluster-tree storage apparatus 14 and returns the new node Nin to the calling program as the return value of the function ILM(Nq, Nnew) before ending the execution of the processing of the function ILM(Nq, Nnew) The clustering apparatus 13 places the new node Nin at such a position in the cluster tree that the right node r(Nin) becomes the candidate node Nq and the left node l(Nin) becomes the attention node Nnew. This is because the attention data picnew should not be pertained to a candidate cluster Cq corresponding to the present candidate node Nq.
If the determination result produced at the step S174 indicates the distance dn is not longer than the maximum distance dq, that is, if the distances between all two adjacent pieces of picture data pertaining to the candidate cluster Cq include a distance longer (or not shorter) than the distance dn between the attention data picnew and the picture data assigned to the right-side leftmost leaf node Lm(r(Np)) of the branch node Np (the picture data on the right side adjacent to the attention data picnew), the flow of the processing goes on to a step S176. The clustering apparatus 13 updates the branch node Np and the candidate node Nq. This is because the attention data picnew are pertained to the candidate cluster Cq, and the attention data picnew may be pertained to a cluster included in the candidate cluster Cq.
That is to say, at the step S176, the clustering apparatus 13 takes the present candidate node Nq as a new branch node Np and the left node l(Nq) of the present candidate node Nq as a new candidate node Nq.
After the process carried out at the step S176 is completed, the flow of the processing goes on to a step S177 at which the clustering apparatus 13 produces a result of determination as to whether or not the candidate cluster Cq corresponding to the new candidate node Nq contains only a piece of picture data.
If the determination result produced at the step S177 indicates that the candidate cluster Cq corresponding to the new candidate node Nq contains a plurality of pieces of picture data, that is, if the candidate node Nq is not a leaf node but a parent node having child nodes, the flow of the processing goes on to a step S179. In the same way as the process carried out at the step S172, the clustering apparatus 13 finds the maximum distance dq between all two adjacent pieces of picture data pertaining to the candidate cluster Cq corresponding to the new candidate node Nq obtained as a result of the process carried out at the step S176 immediately preceding the step S177. Then, the flow of the processing goes on to the next step S180.
In the same way as the step S174, at the step S180, the clustering apparatus 13 produces a result of determination as to whether or not the distance dn between the nearest piece of picture data in the candidate cluster Cq corresponding to the candidate node Nq and the attention data picnew is longer (or not shorter) than the maximum distance dq between all two adjacent pieces of picture data pertaining to the candidate cluster Cq corresponding to the candidate node Nq.
If the determination result produced at the step S180 indicates the distance dn is not longer than the maximum distance dq, that is, if the distances between all two adjacent pieces of picture data pertaining to the candidate cluster Cq include a distance longer (or not shorter) than the distance dn between the attention data picnew and the picture data assigned to the right-side leftmost leaf node Lm(r(Np)) of the branch node Np (the picture data on the right side adjacent to the attention data picnew), the flow of the processing goes back to the step S176. This is because the attention data picnew are pertained to the candidate cluster Cq, and the attention data picnew may be pertained to a cluster included in the candidate cluster Cq. The processes of the step S176 and the subsequent steps are carried out repeatedly.
As the determination result produced at the step S177 indicates that the candidate cluster Cq corresponding to the new candidate node Nq contains only one piece of picture data or as the determination result produced at the step S180 indicates the distance dn is longer than the maximum distance dq, the flow of the processing goes on to a step S178. The clustering apparatus 13 adds a new node Nin to the cluster tree stored in the cluster-tree storage apparatus 14 and returns a value of NULL to the calling program as the return value of the function ILM(Nq, Nnew) before ending the execution of the processing of the function ILM(Nq, Nnew). The clustering apparatus 13 places the new node Nin at such a position in the cluster tree that the new node Nin serves as the left node l(Np) of the branch node Np, the right node r(Nin) becomes the candidate node Nq, and the left node l(Nin) becomes the attention node Nnew. This is because the new candidate node Nq is a leaf node or the attention data picnew is not pertained to the candidate cluster Cq corresponding to the present candidate node Nq.
Let us refer back to the flowchart shown in
At the step S109, the clustering apparatus 13 produces a result of determination as to whether or not the variable TMP has a value of NULL. If the determination result produced at the step S109 indicates that the variable TMP has a value of NULL, the clustering apparatus 13 ends the execution of the clustering processing.
If the determination result produced at the step S109 indicates that the variable TMP has a value other than NULL, that is, if the variable TMP contains a new node Nin received from the processing, which is represented by the flowchart shown in
The following description explains a case in which the attention data picnew is neither the least recent picture data nor the most recent picture data among processing-object pieces of picture data. That is to say, the attention data picnew is a piece of picture data neither placed at the left end nor placed at the right end of an array of processing-object pieces of picture data arranged in the left-to-right order representing an order of photographing dates/times. In this case, the flow of the clustering processing represented by the flowchart shown in
The clustering apparatus 13 calls a function FBN (Nroot, Nnew) having the root node Nroot and the attention node Nnew as its arguments in order to carry out processing to find a branch node for the given attention node Nnew, to which the attention data picnew is assigned, in the same way as the branch-node searching processing explained earlier by referring to the flowchart shown in
As shown in the figure, the flowchart begins with a step S191 at which the clustering apparatus 13 takes the root node Nroot of the present cluster tree stored in the cluster-tree storage apparatus 14 as a tentative branch node Np. Then, the flow of the processing goes on to the next step S192.
At the step S192, the clustering apparatus 13 identifies a photographing date/time t(Nnew) from metadata held in the attention node Nnew and a photographing date/time t(Rm(l(Np))) from metadata held in the left-side rightmost leaf node Rm(l(Np)). As described before, the photographing date/time t(Nnew) is the photographing date/time of the attention data picnew assigned to the attention node Nnew. On the other hand, the photographing date/time t(Rm(l(Np))) is the photographing date/time of picture data assigned to the left-side rightmost leaf node Rm(l(Np)) of the tentative branch node Np. Then, the clustering apparatus 13 produces a result of determination as to whether or not the photographing date/time t(Nnew) of the attention data picnew assigned to the attention node Nnew is earlier than the photographing date/time t(Rm(l(Np))) of picture data assigned to the left-side rightmost leaf node Rm(l(Np)). That is to say, the clustering apparatus 13 produces a result of determination as to whether or not the relation t(Nnew)<t(Rm(l(Np))) holds true.
If the determination result produced at the step S192 indicates that the photographing date/time t(Nnew) is earlier than the photographing date/time t(Rm(l(Np))) of picture data, the flow of the processing goes on to a step S193. The clustering apparatus 13 replaces the tentative branch node Np with a node having the left-side rightmost leaf node Rm(l(N)) thereof placed on the left side of the left-side rightmost leaf node Rm(l(Np)) in the cluster tree since the tentative branch point Np is not the branch point Np for the attention data picnew assigned to the attention node Nnew. This is because the left-side rightmost leaf node Rm(l(Np)) of the tentative branch point Np is currently placed on the right side of the attention node Nnew in spite of the fact that picture data assigned to the left-side rightmost leaf node Rm(l(Np)) of the tentative branch point Np should be picture data placed on the left side adjacent to the attention data picnew assigned to the attention node Nnew as shown in FIG. 20.
To put it concretely, at the step S193, the clustering apparatus 13 replaces the present tentative branch node Np with a new tentative branch node Np, which is the left node l(Np) of the present tentative node Np. Then, the flow of the processing goes on from the step S193 to a step S196.
If the determination result produced at the step S192 indicates that the photographing date/time t(Nnew) is not earlier than the photographing date/time t(Rm(l(Np))) of picture data, on the other hand, the flow of the processing goes on to a step S194. The clustering apparatus 13 identifies the photographing date/time t(Lm(r(Np))) assigned to the right-side leftmost leaf node Lm(r(Np)) of the tentative branch node Np from the metadata held by the right-side leftmost leaf node Lm(r(Np)). The clustering apparatus 13 produces a result of determination as to whether or not the photographing date/time t(Nnew) of the attention data picnew assigned to the attention node Nnew is later than the photographing date/time t(Lm(r(Np))) of picture data assigned to the right-side leftmost leaf node Lm(r(Np)). That is to say, the clustering apparatus 13 produces a result of determination as to whether or not the relation t(Lm(r(Np)))<t(Nnew) holds true.
If the determination result produced at the step S194 indicates that the photographing date/time t(Nnew) is not later than the photographing date/time t(Lm(r(Np))), that is, if the photographing date/time t(Nnew) are later than the photographing date/time t(Rm(l(Np))) but earlier than the photographing date/time t(Lm(r(Np))), and are satisfying relation (7), the clustering apparatus 13 ends the execution of the processing by returning the branch node Np to the calling program as the return value of the function FBN (Nroot, Nnew). To put it concretely, the clustering apparatus 13 returns a variable representing a node taken as the present tentative branch node Np.
If the determination result produced at the step S194 indicates that the photographing date/time t(Nnew) is later than the photographing date/time t(Lm(r(Np))), the flow of the processing goes on to a step S195. The clustering apparatus 13 replaces the tentative branch node Np with a node having the right-side leftmost leaf node Lm(r(N)) thereof placed on the right side of the right-side leftmost leaf node Lm(r(Np)) in the cluster tree since the tentative branch point Np is not the branch point Np for the attention data picnew assigned to the attention node Nnew. This is because the right-side leftmost leaf node Lm(r(Np)) of the tentative branch point Np is currently placed on the left side of the attention node Nnew in spite of the fact that picture data assigned to the right-side leftmost leaf node Lm(r(Np)) of the tentative branch point Np should be picture data placed on the right side adjacent to the attention data picnew assigned to the attention node Nnew as shown in
To put it concretely, at the step S195, the clustering apparatus 13 replaces the present tentative branch node Np with a new tentative branch node Np, which is the right node r(Np) of the present tentative node Np.
Then, the flow of the processing goes on from the step S195 to a step S196 at which the clustering apparatus 13 produces a result of determination as to whether or not a cluster corresponding to the tentative branch node Np includes more than one piece of picture data.
If the determination result produced at the step S196 indicates that the cluster corresponding to the tentative branch node Np includes more than one piece of picture data, that is, if the tentative branch node Np is not a leaf node, the flow of the processing goes back to the step S192 to repeat the processes described above.
If the determination result produced at the step S196 indicates that the cluster corresponding to the tentative branch node Np includes only one piece of picture data, that is, if the tentative branch node Np is a leaf node, on the other hand, the clustering apparatus 13 ends the execution of the processing by returning the branch node Np to the calling program as the return value of the function FBN (Nroot, Nnew). To put it concretely, the clustering apparatus 13 returns a variable representing a node taken as the present tentative branch node Np.
Let us refer back to the flowchart shown in
At the step S113, the clustering apparatus 13 finds a left cluster distance dl and a right cluster distance dr. As described earlier, the left cluster distance dl is the distance between the nearest piece of picture data in the cluster Cl corresponding to the left node l(Np) of the branch node Np found at the step S112 and the attention data picnew assigned to the attention node Nnew. On the other hand, the right cluster distance dr is the distance between the nearest piece of picture data in the cluster Crcorresponding to the right node r(Np) of the branch node Np and the attention data picnew.
The nearest piece of picture data in the cluster Cl corresponding to the left node l(Np) of the branch node Np is a piece of picture data having a photographing data/time closest to the attention data picnew among all pieces of picture data pertaining to the cluster Cl corresponding to the left node l(Np) of the branch node Np.
The piece of picture data having a photographing data/time closest to the attention data picnew among all pieces of picture data pertaining to the cluster Cl corresponding to the left node l(Np) of the branch node Np is a piece of picture data placed at the right end of an array in the pieces of picture data pertaining to the cluster Cl, that is, a piece of picture data assigned to the left-side rightmost leaf node Rm(l(Np)) of the branch node Np or a piece of picture data located on the left side adjacent to the attention data picnew.
Thus, the left cluster distance dl between the nearest piece of picture data in the cluster Cl corresponding to the left node l(Np) of the branch node Np and the attention data picnew assigned to the attention node Nnew can be found by computing a distance dpic(Rm(l(Np), Nnew) in accordance with Eq. (2) or (3) as the distance between the piece of picture data assigned to the left-side rightmost leaf node Rm(l(Np)) of the branch node Np and the attention data picnew assigned to the attention node Nnew.
By the same token, the right cluster distance dr between the nearest piece of picture data in the cluster Cl corresponding to the right node r(Np) of the branch node Np and the attention data picnew assigned to the attention node Nnew can be found by computing a distance dpic(Lm(r(Np), Nnew) (=dpic(Nnew, Lm(r(Np)))) in accordance with Eq. (2) or (3) as the distance between the piece of picture data assigned to the right-side leftmost leaf node Lm(r(Np)) of the branch node Np and the attention data picnew assigned to the attention node Nnew.
That is to say, at the step S113, the clustering apparatus 13 finds the left cluster distance dl(=dpic(Rm(l(Np), Nnew)) and the right cluster distance dr (=dpic(Nnew, Lm(r(Np)))) as described above, and produces a result of determination as to whether or not the left cluster distance dl is shorter (or not longer) than the right cluster distance dr.
If the determination result produced at the step S113 indicates that the left cluster distance dl is shorter than the right cluster distance dr, that is, if the attention data picnew is closer to the nearest piece of picture data in a cluster corresponding to the left node l(Np) of the branch node Np so that the left node l(Np) should be taken as the candidate node Nq, the flow of the processing goes on to a step S114. The clustering apparatus 13 takes the left node l(Np) of the branch node Np as the candidate node Nq. Then, the clustering apparatus 13 calls the function IRM(l(Np), Nnew), which takes the branch node Np and the attention node Nnew as arguments and receives a return value returned by the function IRM (l(Np), Nnew) as described earlier by referring to a flowchart shown in
Then, the flow of the processing goes on from the step S114 to a step S115 at which the clustering apparatus 13 produces a result of determination as to whether or not the variable TMP has a value of NULL. If the result of the determination indicates that the variable TMP has a value of NULL, the clustering apparatus 13 ends the execution of the processing.
If the determination result produced at the step S115 indicates that the variable TMP has a value other than NULL, that is, if the variable TMP has a value representing a new node Nin received as the return value of the function IRM(Nq, Nnew) from the function IRM(Nq, Nnew) as described earlier by referring to a flowchart shown in
If the determination result produced at the step S113 indicates that the left cluster distance dl is not shorter than the right cluster distance dr, that is, if the attention data picnew is closer to the nearest piece of picture data in a cluster corresponding to the right node r(Np) of the branch node Np so that the right node r(Np) should be taken as the candidate node Nq, on the other hand, the flow of the processing goes on to a step S117. The clustering apparatus 13 takes the right node r(Np) of the branch node Np as the candidate node Nq. Then, the clustering apparatus 13 calls the function ILM(r(Np), Nnew), which takes the branch node Np and the attention node Nnew as arguments and receives a return value returned by the function ILM(r(Np), Nnew) as described earlier by referring to a flowchart shown in
Then, the flow of the processing goes on from the step S117 to a step S118 at which the clustering apparatus 13 produces a result of determination as to whether or not the variable TMP has a value of NULL. If the result of the determination indicates that the variable TMP has a value of NULL, the clustering apparatus 13 ends the execution of the processing.
If the determination result produced at the step S118 indicates that the variable TMP has a value other than NULL, that is, if the variable TMP has a value representing a new node Nin received as the return value of the function ILM(Nq, Nnew) from the function ILM(Nq, Nnew) as described earlier by referring to a flowchart shown in
Next, by referring to FIGS. 36 to 42, the following description explains examples of a cluster tree generated by the clustering processing carried out by the clustering apparatus 13 in accordance with the flowchart shown in
It is to be noted that the photographing location of picture data is expressed in terms of coordinates (x, y) of an x and y coordinate system taking a certain position as the origin, and the photographing date/time of the picture data are expressed in terms of t seconds, which are obtained as a result of measurement taking a certain date/time as a reference. An example of the certain position taken as the origin of the x and y coordinate system is the location of the home owned by a user of the camera 1. In this case, the unit of the x and y coordinates used for expressing a photographing position (x, y) can be the meter or another distance scale.
In the following description, photographing information (x, y, t) of picture data is used for collectively representing the photographing position (x, y) and photographing date/time t of the picture data.
The distance dpic(i, j) between picture data pic#i and picture data pic#j is found by using typically Eq. (2). In addition, weight coefficients α, β, and γ in Eq. (2) are set as follows: α=β=1 and γ=0. Thus, assuming that photographing information (x, y, t) of picture data pic#1 is (x1, y1, t1) and photographing information (x, y, t) of picture data pic#2 is (x2, y2, t2), the distance dpic(i, j) between picture data pic#i and picture data pic#j is expressed as follows:
dpic(i, j)=|t1-t2|+|x1-x2|+|y1-y2|
To be more specific,
It is to be noted that, in
In
The photographing dates/times of the picture data pic1 to pic4 are 0, 10, 40, and 60 respectively as shown in
In the array including the picture data pic1 to pic4, which are arranged in the order of photographing dates/times in the cluster tree shown in
In the following description, notation dij denotes the distance dpic(i, j) between picture data pic#i and picture data pic#j.
The distance dij between picture data pic#i and picture data pic#(i+1) adjacent to each other in the array including the picture data pic1 to pic4, which are arranged in the order of photographing dates/times in the cluster tree, is found as follows.
The distance d12 between the picture data pic1 and the picture data pic2 is |0-0|+|0-10|+|0-20|=20. The distance d23 between the picture data pic2 and the picture data pic3 is |0-20|+|10-10|+|10-40|=50. The distance d34 between the picture data pic3 and the picture data pic4 is |20-20|+10-20|+|40-60|=30.
Next, by referring to
As described above, the photographing dates/times t of the picture data pic1 to pic4, which have already been clustered, are 0, 10, 40, and 60 respectively. On the other hand, the photographing date/time t of the picture data pic5 used as the attention data picnew is 100. Thus, the photographing dates/times of the picture data pic1 to pic5, which serve as processing-object pieces of picture data, are arranged in the order of pic1, pic2, pic3, pic4, and pic5 with the first picture data pic1 placed at the left end of
The number of pieces of picture data, i. e. the picture data pic1 to pic4, which have already been assigned to leaf nodes of the present cluster tree, is four. Thus, when the clustering processing represented by the flowchart shown in
In this case, the piece of picture data assigned to the rightmost leaf node Rm(Nroot) of the cluster tree is the picture data pic4 and the photographing date/time t of the picture data pic4 is 60. On the other hand, the photographing date/time t of the picture data pic5 used as the attention data picnew is 100.
Thus, the determination result produced at the step S106 indicates that the photographing date/time t(Rm(Nroot)) of a piece of picture data assigned to the rightmost leaf node Rm(Nroot) is earlier than the photographing date/time t(Nnew) of the attention data picnew assigned to the attention node Nnew. This is because the photographing date/time t(Rm(Nroot)) is 60 and the photographing date/time t(Nnew) is 100. In this case, the flow of the processing goes on from the step S106 to the step S108 to call a function IRM(Nq, Nnew) represented by the flowchart shown in
At the step S152 of the processing of the function IRM(Nq, Nnew) represented by the flowchart shown in
In this case, since the candidate node Nq is the root node N1234, the picture data assigned to the left-side rightmost leaf node Rm(l(Nq)) is the picture data pic2 whereas the picture data assigned to the right-side leftmost leaf node Lm(r(Nq)) is the picture data pic3. Thus, at the step S152, the distance between the picture data pic2 and the picture data pic3 is found as the maximum distance dq.
As shown in
Then, at the step S153 of the processing of the function IRM(Nq, Nnew) represented by the flowchart shown in
At the step S151 of the processing of the function IRM(Nq, Nnew) represented by the flowchart shown in
The picture data on the left side adjacent to the picture data pic5 serving as the attention data picnew is the picture data pic4. The photographing information (x, y, t) of the picture data pic4 is (20, 20, 60). On the other hand, the photographing information (x, y, t) of the picture data pic5 is (60, 20, 100). Thus, the distance dn between the nearest picture data in the candidate cluster Cq and the attention data picnew assigned to the attention node Nnew is the distance between the picture data pic4 and the picture data pic5, and the distance between the picture data pic4 and the picture data pic5 is |20-60|+|20-20|+|60-100|=80 as shown in the second cluster tree from the left end of
As is obvious from the above description, the determination result produced at the step S154 of the processing of the function IRM(Nq, Nnew) represented by the flowchart shown in
That is to say, in the present case where the candidate node Nq is the root node N1234, the new node Nin is added to the cluster tree and is placed at such a position that the root node N1234 becomes the left node l(Nin) and the attention node Nnew becomes the right node r(Nin) as shown in the second cluster tree from the left end of
Then, the control of the processing is returned from the processing of the function IRM(Nq, Nnew) represented by the flowchart shown in
Next, by referring to
As described above, the photographing dates/times t of the picture data pic1 to pic4, which have already been clustered, are 0, 10, 40, and 60 respectively. On the other hand, the photographing date/time t of the picture data pic6 used as the attention data picnew is 80. Thus, the photographing dates/times of the picture data pic1 to pic6, which serve as processing-object pieces of picture data, are arranged in the order of pic1, pic2, pic3, pic4, and pic6 with the first picture data pic1 placed at the left end of
The number of pieces of picture data, i. e. the picture data pic1 to pic4, which have already been assigned to leaf nodes of the present cluster tree, is four. Thus, when the clustering processing represented by the flowchart shown in
In this case, the piece of picture data assigned to the rightmost leaf node Rm(Nroot) of the cluster tree is the picture data pic4 and the photographing date/time t of the picture data pic4 is 60. On the other hand, the photographing date/time t of the picture data pic6 used as the attention data picnew is 80.
Thus, the determination result produced at the step S106 indicates that the photographing date/time t(Rm(Nroot)) of a piece of picture data assigned to the rightmost leaf node Rm(Nroot) is earlier than the photographing date/time t(Nnew) of the attention data picnew assigned to the attention node Nnew. This is because the photographing date/time t(Rm(Nroot)) is 60 and the photographing date/time t(Nnew) is 80. In this case, the flow of the processing goes on from the step S106 to the step S108 to call a function IRM(Nq, Nnew) represented by the flowchart shown in
At the step S152 of the processing of the function IRM(Nq, Nnew) represented by the flowchart shown in
In this case, since the candidate node Nq is the root node N1234, the picture data assigned to the left-side rightmost leaf node Rm(l(Nq)) is the picture data pic2 whereas the picture data assigned to the right-side leftmost leaf node Lm(r(Nq)) is the picture data pic3. Thus, at the step S152, the distance between the picture data pic2 and the picture data pic3 is found as the maximum distance dq.
As shown in
Then, at the step S153 of the processing of the function IRM(Nq, Nnew) represented by the flowchart shown in
At the step S151 of the processing of the function IRM(Nq, Nnew) represented by the flowchart shown in
The picture data on the left side adjacent to the picture data pic6 serving as the attention data picnew is the picture data pic4. The photographing information (x, y, t) of the picture data pic4 is (20, 20, 60). On the other hand, the photographing information (x, y, t) of the picture data pic6 is (20, 40, 80). Thus, the distance dn between the nearest picture data in the candidate cluster Cq and the attention data picnew assigned to the attention node Nnew is the distance between the picture data pic4 and the picture data pic6, and the distance between the picture data pic4 and the picture data pic6 is |20-20|+|20-40|+|60-80|=40 as shown in the second cluster tree from the left end of
As is obvious from the above description, the determination result produced at the step S154 of the processing of the function IRM(Nq, Nnew) represented by the flowchart shown in
As shown in the second cluster tree from the top of
In this case, since the new candidate node Nq is the node N34, the picture data assigned to the left-side rightmost leaf node Rm(l(Nq)) is the picture data pic3 whereas the picture data assigned to the right-side leftmost leaf node Lm(r(Nq)) is the picture data pic4. Thus, at the step S159, the distance between the picture data pic3 and pic4 is found as the maximum distance dq.
As shown in
After the maximum distance dq is found at the step S159 as described above, the flow of the processing goes on to the next step S160 at which the distance dn is compared with the maximum distance dq in order to produce a result of determination as to whether or not the distance dn is longer than the maximum distance dq. In this case, since the distance dn is 40 and the maximum distance dq is 30, the result of the determination indicates that the distance dn is longer than the maximum distance dq, causing the flow of the processing to go on to the step S158. A new node Nin is added to the cluster tree and is placed at such a position in the cluster tree that the new node Nin serves as the right node r(Np) of the branch node Np, the left node l(Nin) becomes the candidate node Nq and the right node r(Nin) becomes the attention node Nnew.
In this case, since the new candidate node Nq is the node N34 and the branch node Np is the root node N1234, as shown in the second cluster tree from the top of
Then, the control of the processing is returned from the processing of the function IRM(Nq, Nnew) represented by the flowchart shown in
Next, by referring to
As described above, the photographing dates/times t of the picture data pic1 to pic4, which have already been clustered, are 0, 10, 40, and 60 respectively. On the other hand, the photographing date/time t of the picture data pic7 used as the attention data picnew is 70. Thus, the photographing dates/times t of the picture data pic1 to pic7, which serve as processing-object pieces of picture data, are arranged in the order of pic1, pic2, pic3, pic4, and pic7 with the first picture data pic1 placed at the left end of
The number of pieces of picture data, i. e. the picture data pic1 to pic4, which have already been assigned to leaf nodes of the present cluster tree, is four. Thus, when the clustering processing represented by the flowchart shown in
In this case, the piece of picture data assigned to the rightmost leaf node Rm(Nroot) of the cluster tree is the picture data pic4 and the photographing date/time t of the picture data pic4 is 60. On the other hand, the photographing date/time t of the picture data pic7 used as the attention data picnew is 70.
Thus, the determination result produced at the step S106 indicates that the photographing date/time t(Rm(Nroot)) of a piece of picture data assigned to the rightmost leaf node Rm(Nroot) is earlier than the photographing date/time t(Nnew) of the attention data picnew assigned to the attention node Nnew. This is because the photographing date/time t(Rm(Nroot)) is 60 and the photographing date/time t(Nnew) is 70. In this case, the flow of the processing goes on from the step S106 to the step S108 to call a function IRM(Nq, Nnew) represented by the flowchart shown in
At the step S152 of the processing of the function IRM(Nq, Nnew) represented by the flowchart shown in
In this case, the candidate node Nq is the root node N1234. Thus, much like the cases shown in
Then, at the step S153 of the processing of the function IRM(Nq, Nnew) represented by the flowchart shown in
At the step S151 of the processing of the function IRM(Nq, Nnew) represented by the flowchart shown in
The picture data on the left side adjacent to the picture data pic7 serving as the attention data picnew is the picture data pic4. The photographing information (x, y, t) of the picture data pic4 is (20, 20, 60). On the other hand, the photographing information (x, y, t) of the picture data pic7 is (10, 20, 70). Thus, the distance dn between the nearest picture data in the candidate cluster Cq and the attention data picnew assigned to the attention node Nnew is the distance between the picture data pic4 and the picture data pic7, and the distance between the picture data pic4 and the picture data pic7 is |20-10|+|20-20|+|60-70|=20 as shown in the second cluster tree from the left end of
As is obvious from the above description, the determination result produced at the step S154 of the processing of the function IRM(Nq, Nnew) represented by the flowchart shown in
As shown in the second cluster tree from the top of
In this case, since the new candidate node Nq is the node N34, the picture data assigned to the left-side rightmost leaf node Rm(l(Nq)) is the picture data pic3 whereas the picture data assigned to the right-side leftmost leaf node Lm(r(Nq)) is the picture data pic4. Thus, at the step S159, the distance between the picture data pic3 and pic4 is found as the maximum distance dq.
As shown in
After the maximum distance dq is found at the step S159 as described above, the flow of the processing goes on to the next step S160 at which the distance dn is compared with the maximum distance dq in order to produce a result of determination as to whether or not the distance dn is longer than the maximum distance dq. In this case, since the distance dn is 20 and the maximum distance dq is 30, the result of the determination indicates that the distance dl is not longer than the maximum distance dq, causing the flow of the processing to go back to the step S156. The branch node Np is replaced by the candidate node Nq and the candidate node Nq is replaced by the right node r(Nq) of the candidate node Nq as described above.
Since the node N34 serves as the candidate node Nq, the node N34 is used as a new branch node Np and a node N4 serving as the right node of the root node N34 is used as a new candidate node Nq.
As shown in the cluster tree placed at the bottom of the figure to serve as the second cluster tree from the left end of
In this case, since the new candidate node Nq is the node N4 and the branch node Np is the node N34, as shown in the cluster tree placed at the bottom of the figure to serve as the second cluster tree from the left end of
Then, the control of the processing is returned from the processing of the function IRM(Nq, Nnew) represented by the flowchart shown in
Next, by referring to
As described above, the photographing dates/times t of the picture data pic1 to pic4, which have already been clustered, are 0, 10, 40, and 60 respectively. On the other hand, the photographing date/time t of the picture data pic8 used as the attention data picnew is 20. Thus, the photographing dates/times t of the picture data pic1 to pic8, which serve as processing-object pieces of picture data, are arranged in the order of pic1, pic2, pic8, pic3,and pic4 with the first picture data pic1 placed at the left end of
The number of pieces of picture data, i. e. the picture data pic1 to pic4, which have already been assigned to leaf nodes of the present cluster tree, is four. Thus, when the clustering processing represented by the flowchart shown in
In this case, the piece of picture data assigned to the rightmost leaf node Rm(Nroot) of the cluster tree is the picture data pic4 and the photographing date/time t of the picture data pic4 is 60. On the other hand, the photographing date/time t of the picture data pic8 used as the attention data picnew is 20.
Thus, the determination result produced at the step S106 indicates that the photographing date/time t(Rm(Nroot)) of a piece of picture data assigned to the rightmost leaf node Rm(Nroot) is not earlier than the photographing date/time t(Nnew) of the attention data picnew assigned to the attention node Nnew. This is because the photographing date/time t(Rm(Nroot)) is 60 and the photographing date/time t(Nnew) is 20. In this case, the flow of the processing goes on from the step S106 to the step S107 to produce a result of determination as to whether or not the photographing date/time t(Nnew) of the attention data picnew assigned to the attention node Nnew is earlier than the photographing date/time t(Lm(Nroot)) of a piece of picture data assigned to the leftmost leaf node Lm(Nroot) as described above. Also referred to as the leaf node Lm(Nroot) at the left end of the cluster tree, the leftmost leaf node Lm(Nroot) can be found by tracing down through arcs of the present cluster tree from the root node Nroot.
The piece of picture data assigned to the leftmost leaf node Lm(Nroot) is the picture data pic, which has a photographing date/time t of zero. On the other hand, the picture data serving as the attention data picnew is the picture data pic8, which has a photographing date/time t of 20.
Thus, the determination result produced at the step S107 indicates that the photographing date/time t(Nnew) of the attention data picnew assigned to the attention node Nnew is not earlier than the photographing date/time t(Lm(Nroot)) of a piece of picture data assigned to the leftmost leaf node Lm(Nroot). This is because the photographing date/time t(Nnew) is 20 while the photographing date/time t(Lm(Nroot)) is zero. In this case, the flow of the processing goes on to the step S112 to call a function FBN (Nroot, Nnew) represented by the flowchart shown in
At the step S191 of the function FBN (Nroot, Nnew) represented by the flowchart shown in
In this case, the photographing date/time t(Nnew) of the attention data picnew, which is the picture data pic8, is 20. The branch node Np is the root node N1234 and, thus, the left-side rightmost leaf node Rm(l(Np)) is the leaf node N2 assigned to the picture data pic2, which has the photographing date/time t(Rm(l(Np))) of 10.
Accordingly, the determination result produced at the step S192 indicates that the photographing date/time t(Nnew) of the attention data picnew assigned to the attention node Nnew is not earlier than the photographing date/time t(Rm(l(Np))) of picture data assigned to the left-side rightmost leaf node Rm(l(Np)). This is because the photographing date/time t(Nnew) is 20 while the photographing date/time t(Rm(l(Np))) is 10. In this case, the flow of the processing goes on to the step S194 to produce a result of determination as to whether or not the photographing date/time t(Nnew) of the attention data picnew assigned to the attention node Nnew is later than the photographing date/time t(Lm(r(Np))) of picture data assigned to the right-side leftmost leaf node Lm(r(Np)) That is to say, the determination result produced at the step S194 is a result of determination as to whether or not the relation t(Lm(r(Np)))<t(Nnew) holds true.
In this case, the tentative branch node Np is the root node N1234 and, thus, the right-side leftmost leaf node Lm(r(Np)) is the leaf node N3 assigned the picture data pic3, which has the photographing date/time t(Lm(r(Np))) of 40.
Accordingly, the determination result produced at the step S194 indicates that the photographing date/time t(Nnew) is not later than the photographing date/time t(Lm(r(Np))) of picture data assigned to the right-side leftmost leaf node Lm(r(Np)). This is because the photographing date/time t(Nnew) is 20 while the photographing date/time t(Lm(r(Np))) is 40. In this case, as the return value of the function FBN (Nroot, Nnew), the root node N1234 serving as the present tentative branch node Np is returned to the calling program, which implements the clustering processing represented by the flowchart shown in
As a result, at the step S112 of the flowchart shown in
Thus, the left cluster distance dl between the nearest piece of picture data in the cluster Cl corresponding to the left node l(Np) of the branch node Np and the attention data picnew assigned to the attention node Nnew is also the distance dpic(Rm(l(Np), Nnew) between the piece of picture data assigned to the left-side rightmost leaf node Rm(l(Np)) of the branch node Np and the attention data picnew assigned to the attention node Nnew.
In this case, since the branch node Np is the root node N1234, the left cluster distance dl is the distance dpic(Rm(l(Np), Nnew) between the piece of picture data assigned to the left-side rightmost leaf node Rm(l(Np)) of the root node N1234 and the attention data picnew assigned to the attention node Nnew or the distance between the picture data pic2 and the picture data pic8.
The photographing information (x, y, t) of the picture data pic2 is (0, 10, 10) whereas the photographing information (x, y, t) of the picture data pic8 is (5, 10, 20). Thus, the left cluster distance dl representing the distance between the picture data pic2 and the picture data pic8 is |0-5|+|10-10|+|10-20|=15.
By the same token, the right cluster distance dr is also the distance dpic(Lm(r(Np), Nnew) or the distance dpic(Nnew, Lm(r(Np)) between the piece of picture data assigned to the right-side leftmost leaf node Lm(r(Np)) of the root node N1234 and the attention data picnew assigned to the attention node Nnew.
The photographing information (x, y, t) of the picture data pic3 is (20, 10, 40) whereas the photographing information (x, y, t) of the picture data pic8 is (5, 10, 20). Thus, the right cluster distance dr representing the distance between the picture data pic3 and the picture data pic8 is |20-5|+|10-10|+|40-20|=35.
Accordingly, the determination result produced at the step S113 of the flowchart shown in
At the step S152 of the processing of the function IRM(Nq, Nnew) represented by the flowchart shown in
In this case, since the candidate node Nq is the node N12, the picture data assigned to the left-side rightmost leaf node Rm(l(Nq)) of the candidate node Nq is the picture data pic1 whereas the picture data assigned to the right-side leftmost leaf node Lm(r(Nq)) of the candidate node Nq is the picture data pic2. Thus, at the step S152, the distance between the picture data pic1 and the pic2 is found as the maximum distance dq.
As shown in
Then, at the step S153 of the processing of the function IRM(Nq, Nnew) represented by the flowchart shown in
At the step S151 of the processing of the function IRM(Nq, Nnew) represented by the flowchart shown in
The picture data on the left side adjacent to the picture data pic8 serving as the attention data picnew is the picture data pic2 and the photographing information (x, y, t) of the picture data pic2 is (0, 10, 10). On the other hand, the photographing information (x, y, t) of the picture data pic8 is (5, 10, 20). Thus, the distance dn between the nearest picture data in the candidate cluster Cq and the attention data picnew assigned to the attention node Nnew is the distance between the picture data pic2 and pic8, and the distance between the picture data pic4 and pic8 is |0-5|+|10-10|+|10-20|=15 as shown in the second cluster tree from the left end of
As is obvious from the above description, the determination result produced at the step S154 of the processing of the function IRM(Nq, Nnew) represented by the flowchart shown in
As shown in the second cluster tree from the left end of
That is to say, in the present case where the candidate node Nq is the leaf node N2 and the branch node Np is the node N12, the new node Nin is added to the cluster tree, being placed at such a position that the leaf node N2 becomes the left node l(Nin) of the new node Nin, the attention node Nnew becomes the right node r(Nin) of the new node Nin, and the new node Nin becomes the right node r(Np) of the node N12 as shown in the second cluster tree from the left end of
Then, the control of the processing is returned from the processing of the function IRM(Nq, Nnew) represented by the flowchart shown in
Next, by referring to
As described above, the photographing dates/times t of the picture data pic1 to pic4, which have already been clustered, are 0, 10, 40, and 60 respectively. On the other hand, the photographing date/time t of the picture data pic9 used as the attention data picnew is 20. Thus, the photographing dates/times t of the picture data pic1 to pic9, which serve as processing-object pieces of picture data, are arranged in the order of pic1, pic2, pic9, pic3, and pic4 with the first picture data pic1 placed at the left end of
The number of pieces of picture data, i. e. the picture data pic1 to pic4, which have already been assigned to leaf nodes of the present cluster tree, is four. Thus, when the clustering processing represented by the flowchart shown in
In this case, the piece of picture data assigned to the rightmost leaf node Rm(Nroot) of the cluster tree is the picture data pic4 and the photographing date/time t of the picture data pic4 is 60. On the other hand, the photographing date/time t of the picture data pic9 used as the attention data picnew is 20.
Thus, the determination result produced at the step S106 indicates that the photographing date/time t(Rm(Nroot)) of a piece of picture data assigned to the rightmost leaf node Rm(Nroot) is not earlier than the photographing date/time t(Nnew) of the attention data picnew assigned to the attention node Nnew. This is because the photographing date/time t(Rm(Nroot)) is 60 and the photographing date/time t(Nnew) is 20. In this case, the flow of the processing goes on from the step S106 to the step S107 to produce a result of determination as to whether or not the photographing date/time t(Nnew) of the attention data picnew assigned to the attention node Nnew is earlier than the photographing date/time t(Lm(Nroot)) of a piece of picture data assigned to the leftmost leaf node Lm(Nroot) as described above. Also referred to as the leaf node Lm(Nroot) at the left end of the cluster tree, the leftmost leaf node Lm(Nroot) can be found by tracing down through arcs of the present cluster tree from the root node Nroot.
The piece of picture data assigned to the leftmost leaf node Lm(Nroot) is the picture data pic1, which has a photographing date/time t of zero. On the other hand, the picture data serving as the attention data picnew is the picture data pic9, which has a photographing date/time t of 20.
Thus, the determination result produced at the step S107 indicates that the photographing date/time t(Nnew) of the attention data picnew assigned to the attention node Nnew is not earlier than the photographing date/time t(Lm(Nroot)) of a piece of picture data assigned to the leftmost leaf node Lm(Nroot). This is because the photographing date/time t(Nnew) is 20 while the photographing date/time t(Lm(Nroot)) is 0. In this case, the flow of the processing goes on to the step S112 to call a function FBN (Nroot, Nnew) represented by the flowchart shown in
At the step S191 of the function FBN (Nroot, Nnew) represented by the flowchart shown in
In this case, the photographing date/time t(Nnew) of the attention data picnew, which is the picture data pic9, is 20. The branch node Np is the root node N1234 and, thus, the left-side rightmost leaf node Rm(l(Np)) is the leaf node N2 assigned to the picture data pic2, which has the photographing date/time t(Rm(l(Np))) of 10.
Accordingly, the determination result produced at the step S192 indicates that the photographing date/time t(Nnew) of the attention data picnew assigned to the attention node Nnew is not earlier than the photographing date/time t(Rm(l(Np))) of picture data assigned to the left-side rightmost leaf node Rm(l(Np)). This is because the photographing date/time t(Nnew) is 20 while the photographing date/time t(Rm(l(Np))) is 10. In this case, the flow of the processing goes on to the step S194 to produce a result of determination as to whether or not the photographing date/time t(Nnew) of the attention data picnew assigned to the attention node Nnew is later than the photographing date/time t(Lm(r(Np))) of picture data assigned to the right-side leftmost leaf node Lm(r(Np)). That is to say, the determination result produced at the step S194 is a result of determination as to whether or not the relation t(Lm(r(Np)))<t(Nnew) holds true.
In this case, the tentative branch node Np is the root node N1234 and, thus, the right-side leftmost leaf node Lm(r(Np)) is the leaf node N3 assigned the picture data pic3, which has the photographing date/time t(Lm(r(Np))) of 40.
Accordingly, the determination result produced at the step S194 indicates that the photographing date/time t(Nnew) is not later than the photographing date/time t(Lm(r(Np))). This is because the photographing date/time t(Nnew) is 20 while the photographing date/time t(Lm(r(Np))) is 40. In this case, as the return value of the function FBN (Nroot, Nnew), the root node N1234 serving as the present tentative branch node Np is returned to the calling program, which implements the clustering processing represented by the flowchart shown in
As a result, at the step S112 of the flowchart shown in
Thus, the left cluster distance dl is also the distance dpic(Rm(l(Np), Nnew) between the piece of picture data assigned to the left-side rightmost leaf node Rm(l(Np)) of the branch node Np and the attention data picnew assigned to the attention node Nnew.
In this case, since the branch node Np is the root node N1234, the left cluster distance dl is the distance dpic(Rm(l(Np), Nnew) between the piece of picture data assigned to the left-side rightmost leaf node Rm(l(Np)) of the root node N1234 and the attention data picnew assigned to the attention node Nnew or the distance between the picture data pic2 and the picture data pic9.
The photographing information (x, y, t) of the picture data pic2 is (0, 10, 10) whereas the photographing information (x, y, t) of the picture data pic9 is (12, 10, 20). Thus, the left cluster distance dl representing the distance between the picture data pic2 and the picture data pic9 is |0-12|+|10-10|+|10-20|=22.
By the same token, the right cluster distance dr is also the distance dpic(Lm(r(Np), Nnew) between the piece of picture data assigned to the right-side leftmost leaf node Lm(r(Np)) of the root node N1234 and the attention data picnew assigned to the attention node Nnew. The right cluster distance dr is the distance dpic(Lm(r(Np), Nnew) or the distance dpic(Nnew, Lm(r(Np)), that is the distance between the picture data pic3 and pic9.
The photographing information (x, y, t) of the picture data pic3 is (20, 10, 40) whereas the photographing information (x, y, t) of the picture data pic9 is (12, 10, 20). Thus, the right cluster distance dr representing the distance between the picture data pic3 and pic9 is |20-12|+|10-10|+|40-20|=28.
Accordingly, the determination result produced at the step S113 of the flowchart shown in
At the step S152 of the processing of the function IRM(Nq, Nnew) represented by the flowchart shown in
In this case, since the candidate node Nq is the node N12, the picture data assigned to the left-side rightmost leaf node Rm(l(Nq)) of the candidate node Nq is the picture data pic1 whereas the picture data assigned to the right-side leftmost leaf node Lm(r(Nq)) of the candidate node Nq is the picture data pic2. Thus, at the step S152, the distance between the picture data pic1 and the picture data pic2 is found as the maximum distance dq.
As shown in
Then, at the step S153 of the processing of the function IRM(Nq, Nnew) represented by the flowchart shown in
At the step S151 of the processing of the function IRM(Nq, Nnew) represented by the flowchart shown in
The picture data on the left side adjacent to the picture data pic9 serving as the attention data picnew is the picture data pic2 and the photographing information (x, y, t) of the picture data pic2 is (0, 10, 10). On the other hand, the photographing information (x, y, t) of the picture data pic9 is (12, 10, 20). Thus, the distance dn between the nearest picture data in the candidate cluster Cq and the attention data picnew assigned to the attention node Nnew is the distance between the picture data pic2 and the picture data pic9, and the distance between the picture data pic4 and pic9 is |0-12|+|10-10|+|10-20|=22 as shown in the second cluster tree from the left end of
As is obvious from the above description, the determination result produced at the step S154 of the processing of the function IRM(Nq, Nnew) represented by the flowchart shown in
That is to say, in the present case where the candidate node Nq is the node N12, the new node Nin is added to the cluster tree, being placed at such a position that the node N12 becomes the left node l(Nin) of the new node Nin and the attention node Nnew becomes the right node r(Nin) of the new node Nin as shown in the second cluster tree from the left end of
Then, the control of the processing is returned from the processing of the function IRM(Nq, Nnew) represented by the flowchart shown in
Next, by referring to FIGS. 43 to 47, the following description explains typical displays appearing on the display apparatus 16 shown in
When the user operates the operation section 17 to display picture data on the display apparatus 16, for example, the display control apparatus 15 refers to a cluster tree stored in the cluster-tree storage apparatus 14 and displays thumb nails of pieces of picture data on the display apparatus 16 on the basis of the cluster tree.
Let us assume for example that the cluster tree shown in
In addition, the display control apparatus 15 displays the thumbnails of picture data pic1 to pic10 in a left-node area 16L and the thumbnails of picture data pic11 and pic12 in a right-node area 16R as shown in the lower half of the display screen of the display apparatus 16 on the top side of
It is to be noted that the display control apparatus 15 generates a thumbnail of each picture data stored in the data storage apparatus 12 from the metadata of the picture data.
As shown in
To put in detail, as shown in the display state seen on the bottom side of the figure, the display control apparatus 15 displays (a symbol representing) the left node N21 of the root node N11 in the parent-node area 16U shown in the upper half of the display screen of the display apparatus 16 as well as the thumbnails of the picture data pic1 to pic6 in the left-node area 16L and the thumbnails of the picture data pic7 to pic10 in the right-node area 16R as shown in the lower half of the display screen of the display apparatus 16. The picture data pic1 to pic6 are pieces of picture data, which pertain to a cluster corresponding to a node N31 serving as the left node of the node N21 displayed in the parent-node area 16U. On the other hand, the picture data pic7 to pic10 are pieces of picture data, which pertain to a cluster corresponding to a node N32 serving as the right node of the node N21.
As another example, let us assume that the user operates the left button 17L once again with a display state appearing on the bottom side of
To put in detail, as shown in the display state seen on the bottom side of
It is to be noted that, as a further example, let us assume that the user operates the top button 17U once with a display state appearing on the bottom side of
As a still further example, let us assume that the user operates the right button 17R once with a display state appearing on the bottom side of
To put in detail, as shown in the display state seen on the bottom side of
It is to be noted that, as a further example, let us assume that the user operates the top button 17U once with a display state appearing on the bottom side of
As described above, (a symbol representing) a node is displayed in the parent-node area 16U of the display apparatus 16. In addition, the thumbnail of each piece of picture data pertaining to a cluster corresponding to the left node of a node displayed in the parent-node area 16U is displayed in the left-node area 16L. On the other hand, the thumbnail of each piece of picture data pertaining to a cluster corresponding to the right node of a node displayed in the parent-node area 16U is displayed in the right-node area 16R.
Then, when the user presses the left button 17L, the left node of a node displayed in the parent-node area 16U is displayed in the parent-node area 16U. In addition, the thumbnail of each piece of picture data pertaining to a cluster corresponding to the left node of a node displayed in the parent-node area 16U is displayed in the left-node area 16L. On the other hand, the thumbnail of each piece of picture data pertaining to a cluster corresponding to the right node of a node displayed in the parent-node area 16U is displayed in the right-node area 16R.
When the user presses the right button 17R, on the other hand, the right node of a node displayed in the parent-node area 16U is displayed in the parent-node area 16U. In addition, the thumbnail of each piece of picture data pertaining to a cluster corresponding to the left node of a node displayed in the parent-node area 16U is displayed in the left-node area 16L. On the other hand, the thumbnail of each piece of picture data pertaining to a cluster corresponding to the right node of a node displayed in the parent-node area 16U is displayed in the right-node area 16R.
When the user presses the top button 17U, a node having a node displayed in the parent-node area 16U as a child node, that is, the parent node of the node displayed in the parent-node area 16U is displayed in the parent-node area 16U. In addition, the thumbnail of each piece of picture data pertaining to a cluster corresponding to the left node of a node displayed in the parent-node area 16U is displayed in the left-node area 16L. On the other hand, the thumbnail of each piece of picture data pertaining to a cluster corresponding to the right node of a node displayed in the parent-node area 16U is displayed in the right-node area 16R.
Thus, by properly operating the top button 17U, right button 17R, or left button 17L of the operation section 17, the user can find a desired piece of picture data with ease.
It is to be noted that, in FIGS. 43 to 45, the thumbnails shown in the left-node area 16L are the thumbnails of all pieces of picture data pertaining to a cluster corresponding to the left node of a node displayed in the parent-node area 16U. On the other hand, the thumbnails shown in the right-node area 16R are the thumbnails of all pieces of picture data pertaining to a cluster corresponding to the right node of a node displayed in the parent-node area 16U. As an alterative, as shown in
To put it in detail, in
As another example, in
It is to be noted that the user can typically operate the operation section 17 to establish setting in which either thumbnails are displayed as is the case with FIGS. 43 to 45 or a representative piece of picture data is displayed as is the case with
As explained earlier, the series of processes described previously can be carried out by using hardware and/or execution of software. If the series of processes described above is carried out by execution of software, programs composing the software can be installed into a general-purpose computer or the like.
The programs can also be recorded in advance in either of a hard disk 105 or a ROM 103, which each serve as a recording medium embedded in the computer.
As another alternative, the programs can also be stored (recorded) temporarily or permanently in a removable recording medium 111, which can be a flexible disc, a CD-ROM (Compact Disc Read Only Memory), an MO (Magneto Optical) disc, a DVD (Digital Versatile Disc), a magnetic disc, or a semiconductor. Such a removable recording medium 111 can be provided to the user as a package software recording medium from which the programs are installed into the computer.
In addition to installation of the programs from the removable recording medium 111 to the computer, the programs can be transmitted to the computer from a download site by way of an artificial satellite for digital satellite broadcasting through radio transmission or by way of a network such as a LAN (Local Area Network) or the Internet through wire transmission. In the computer, a communication section 108 receives the programs and stores the programs in the hard disk 105 in the so-called program installation process.
The computer has an embedded CPU (Central Processing Unit) 102. The CPU 102 is connected to an input/output interface 110 through a bus 101. When the CPU 102 receives a command supplied by an input section 107, which includes a keyboard, a mouse, and a microphone, by way of the input/output interface 110 as a command typically representing an operation carried out by the user on the input section 107, the CPU 102 executes a program stored in advance in the ROM (Read Only Memory) 103 in accordance with the command. As an alternative, in accordance with a command, the CPU 102 executes a program loaded into a RAM (Random Access Memory) 104 from the hard disk 105. The program loaded into the RAM 104 from the hard disk 105 can be a program stored in advance in the hard disk 105 or a program installed into the hard disk 105. As described above, a program installed into the hard disk 105 can be a program downloaded from the download site serving as a provider of programs by way of a satellite or a network and received by the communication section 108 or a program read out from the removable recording medium 111 mounted on a drive 109. By execution of such a program, the CPU 102 carries out processing according to any of the flowcharts explained earlier or processing in accordance with a configuration shown in a block diagram described before. Then, if necessary, the CPU 102 typically supplies a result of the processing to an output section 106 including an LCD (Liquid Crystal Display) section and a speaker, transmits the processing result to an external destination by way of the communication section 108 or stores the result in the hard disk 105.
It is also worth noting that, in this specification, steps of the flowchart described above can be carried out not only in a pre-prescribed order along the time axis, but also concurrently or individually.
In addition, a program can be executed by one computer or a plurality of computers in the so-called distributed processing. As an alternative, a program can be transmitted to a computer installed at a remote location to be executed by such a computer.
As described above, in a layer clustering process carried out by the information processing apparatus 2 shown in
In addition, in the layer processing process, by tracing down nodes of a cluster tree through arcs from the root node of the cluster tree or, to be more specific, by updating a branch node Np and a candidate node Nq at the step S156 of the flowchart shown in
On the top of that, in the layer processing process, it is necessary to find only the distance between any two adjacent pieces of picture data in an array of pieces of picture data arranged in the order of photographing dates/times. That is to say, it is not necessary to find the distance between any two pieces of picture data in an array. Thus, a piece of data can be clustered at a small amount of computation.
A layer clustering process is carried out by collecting or combining elements separated by shortest distances from each other among elements each serving an object of clustering in accordance with any of the shortest distance method, the maximum distance method, or the ward method, which are commonly known data clustering methods.
In accordance with the shortest distance method, the maximum distance method, or the ward method, however, it is necessary to find the distance between two adjacent pieces of picture data of any combination. Let us assume that the number of pieces of picture data each serving as an object of the clustering process is n. In this case, it is necessary to find the distance between two adjacent pieces of picture data of any of n(n−1)/2 combinations. Thus, if the number of pieces of picture data each serving as an object of the clustering process according to the shortest distance method, the maximum distance method, or the ward method increases, the amount of the processing to compute distances also rises in proportion to the second power of n representing the number of pieces of picture data each serving as an object of the clustering process.
In a layer clustering process carried out by the information processing apparatus 2, on the other hand, it is necessary to find only the distance between any two adjacent pieces of picture data in an array of pieces of picture data arranged in the order of photographing dates/times as described above. Even though the amount of the processing to compute distances is dependent on the property of the picture data serving as the object of the layer clustering process, the amount of distance computation is relatively small. Let us assume that the picture data serving as the object of the layer clustering process is random data and the number of pieces of picture data is n. In this case, the height of the cluster tree or the number of layers having different levels is log2(n) and the amount of the processing to compute distances is of the order of 0(n×log2(n)).
It is to be noted that, in a layer clustering process to cluster picture data in accordance with this embodiment, pieces of picture data are arranged in an order of photographing dates/times. However, the pieces of picture data can also be arranged in an order of photographing locations. To put it concretely, taking the home of the user as a reference, for example, the pieces of picture data are arranged in an order of photographing locations, which are each expressed in terms of the distance from the home.
In addition, in this embodiment, picture data, which is a still image, is used as an object of a layer clustering process. However, picture data of other kinds can also be used as an object of a layer clustering process. Examples of the picture data of other kinds are data of a moving-picture file containing a moving picture and pieces of picture data that can be arranged in accordance with a predetermined rule and have computable adjacent-data distances based on a predetermined scale.
It is to be noted that the distance between two adjacent pieces of picture data can be computed by letting factors such as photographing dates/times, photographing locations, and a movement velocity contribute to the computation as shown by Eqs. (2) and (3) in order to carry out a clustering process for clustering the pieces of picture data more properly.
That is to say, let us assume for example that the weight coefficients α and β are set at one whereas the weight coefficient γ is set at zero. In this case, the distance dpic(i, j) between picture data pic#i and pic#j is found in accordance with Eq. (2) without letting the movement velocity contribute to the computation. Let us further assume a first case in which, after the picture data pic#i was obtained as a result of a photographing operation, the photographer walked for 1000 seconds along a distance of 500 m to a location at which the picture data pic#j was obtained as a result of another photographing operation. In this case, the distance dpic(i, j) between the picture data pic#i and pic#j is 1000+500=1500. Let us further assume a second case in which, after the picture data pic#i was obtained as a result of a photographing operation, the photographer drove a car for 500 seconds along a distance of 1000 m to a location at which the picture data pic#j was obtained as a result of another photographing operation. In this case, the distance dpic(i, j) between the picture data pic#i and pic#j is 1000+500=1500, which is the same distance as the first case.
If the weight coefficient γ is set at one, on the other hand, the distance dpic(i, j) between the picture data pic#i and the picture data pic#j is 1000+500+500/1000=1500.5 for the first case in which the photographer walked. For the second case in which the photographer drove a car, on the other hand, the distance dpic(i, j) between the picture data pic#i and pic#j is 1000+500+1000/500=1502.
Thus, the distance dpic(i, j) between the picture data pic#i and pic#j for the first case in which the photographer walked is different from the distance dpic(i, j) between the picture data pic#i and pic#j for the second case in which the photographer drove a car. To be more specific, the distance dpic(i, j) between the picture data pic#i and pic#j for the first case in which the photographer walked is shorter than the distance dpic(i, j) between the picture data pic#i and pic#j for the second case in which the photographer drove a car.
As a result, the picture data pic#i and pic#j for the first case in which the photographer walked are more likely clustered in a cluster with a small size than the picture data pic#i and pic#j for the second case in which the photographer drove a car.
That is to say, let us assume that, in a clustering process carried out by letting the movement velocity contribute to the computation of a distance, two pieces of picture data pertaining to a first pair and having a first difference in photographing date/time (or a time-wise distance) are clustered, and two other pieces of picture data pertaining to a second pair and having a second difference in photographing date/time equal to the first difference are also clustered. In this case, the pair of pieces of picture data having photographing locations closer to each other is more likely clustered in a cluster with a smaller size. On the other hand, let us also assume that two pieces of picture data pertaining to a first pair and having a first difference in photographing location (or a spatial distance) are clustered, and two other pieces of picture data pertaining to a second pair and having a second difference in photographing location equal to the first difference are also clustered. In this case, the pair of pieces of picture data having photographing dates/times closer to each other is more likely clustered in a cluster with a smaller size.
In many cases, a person (or the user) generally tends to cluster two pieces of picture data pertaining to a first pair having photographing locations relatively close to each other in a cluster having a smaller size than a cluster for clustering two other pieces of picture data pertaining to a second pair having photographing locations relatively far from each other provided that the pieces of picture data pertaining to the first pair have a difference in photographing date/time equal to the difference in photographing date/time between the two other pieces of picture data pertaining to the second pair. By the same token, a person (or the user) generally tends to cluster two pieces of picture data pertaining to a first pair having photographing dates/times relatively close to each other in a cluster having a smaller size than a cluster for clustering two other pieces of picture data pertaining to a second pair having photographing dates/times relatively far from each other provided that the pieces of picture data pertaining to the first pair have a difference in photographing location equal to the difference in photographing location between the two other pieces of picture data pertaining to the second pair. Thus, by carrying out a clustering process carried out by letting the movement velocity contribute to the computation of a distance, it is possible to implement clustering, which matches subjective classification according to the person (or the user).
It is to be noted that, in this embodiment, the layer clustering process is carried out by the information processing apparatus 2, which is an apparatus different from the camera 1 as shown in
In addition, it should be understood by those skilled in the art that a variety of modifications, combinations, sub-combinations and alterations may occur in dependence on design requirements and other factors insofar as they are within the scope of the appended claims or the equivalents thereof.
Number | Date | Country | Kind |
---|---|---|---|
2005-169092 | Jun 2005 | JP | national |
The present invention contains subject matter related to Japanese Patent Application JP 2005-169092 filed in the Japanese Patent Office on Jun. 9, 2005 the entire contents of which being incorporated herein by reference.