1. Field of the Invention
The present invention relates to an information processing apparatus, in particular, an information processing apparatus which displays contents such as image files, an information processing method, and a program for causing a computer to execute the information processing method.
2. Description of the Related Art
In recent years, there has been a proliferation of image capturing apparatuses such as a digital still camera and a digital video camera (for example, an integrated camera-recorder) which capture a subject such as a landscape or a person to generate an image, and record the generated image as an image file (content). Also, there are image capturing apparatuses which can record a generated image in association with positional information on the position where the image is captured. There have been proposed information processing apparatuses with which, when displaying contents generated in this way, the generated positions of the contents identified by their positional information are displayed in association with the contents.
For example, there has been proposed an information processing apparatus which arranges thumbnail icons of images side by side in time series and displays the thumbnail icons in a film window, displays position icons indicating the shooting locations of these images in a map window, and displays these icons in association with each other (see, for example, Japanese Unexamined Patent Application Publication No. 2001-160058 (FIG. 12)). This information processing apparatus is configured such that, for example, when a click operation on a thumbnail icon is performed by the user, a position icon indicating the shooting location of an image corresponding to the clicked thumbnail icon is displayed at the center of the map window.
Also, there has been proposed an information processing system which arranges thumbnail images side by side in time series and displays the thumbnail images on an image list display section, displays markers at positions on a map corresponding to the shooting locations of these images, and displays these images and markers in association with each other (see, for example, Japanese Unexamined Patent Application Publication No. 2007-323544 (FIG. 7)). In this information processing system, when a click operation on a marker displayed on the map is performed by the user, an image associated with the clicked marker is displayed on the map as a pop-up.
According to the related art described above, images representing contents are displayed while being arranged side by side, and marks indicating the generated positions of these contents are displayed on a map. Thus, the user can grasp the correspondence between individual contents and their generated positions on a single screen. Also, the correspondence between each individual content and its generated position can be grasped more clearly through a click operation on an image representing a content or a mark indicating its generated position.
However, in the related art described above, images representing contents, and marks indicating the generated positions of these contents are displayed relatively far apart from each other, which supposedly makes it difficult to intuitively grasp the geographical correspondence between individual contents.
Also, for example, it is supposed that images taken by a person living in Tokyo include relatively many images of Tokyo and its vicinity (for example, Shinagawa ward, Setagaya ward, and Saitama city), and relatively few images of other regions (for example, United States or United Kingdom visited by the person on a trip). Accordingly, when displaying the correspondence between images taken in Tokyo and its vicinity and images taken in other regions, and their generated positions, for example, it is necessary to display the map at a scale sufficiently large to show the countries of the world. In this case, marks indicating the generated positions of the images taken in Tokyo and its vicinity (for example, Shinagawa ward, Setagaya ward, and Saitama city) are displayed at substantially the same position on the map, which may make it difficult to grasp the geographical correspondence between the images taken in Tokyo and its vicinity.
On the other hand, for example, when the map is displayed at a scale sufficiently small to show regions in the vicinity of Tokyo, marks indicating the generated positions of the images taken in Tokyo and its vicinity (for example, Shinagawa ward, Setagaya ward, and Saitama city) are displayed in suitable placement on the map. Therefore, the generated positions of the images taken in Tokyo and its vicinity can be grasped. However, in this case, it is not possible to display the generated positions of images taken in other regions (for example, the United States or United Kingdom) on the map, making it difficult to grasp the generated positions of individual images.
Accordingly, when displaying images representing contents associated with positions on a map, it is important to be able to easily grasp the correspondence between a plurality of contents on the map, and each individual content.
It is thus desirable to be able to easily grasp, when displaying superimposed images associated with positions in a background image, the correspondence between a plurality of superimposed images in the background image, and each individual superimposed image.
According to an embodiment of the present invention, there are provided an information processing apparatus, an information processing method, and a program for causing a computer to execute the information processing method, the information processing apparatus including: a transformed-coordinate calculating section that calculates transformed coordinates for each of a plurality of superimposed images associated with coordinates in a background image, by taking one superimposed image of the plurality of superimposed images as a reference image, and transforming coordinates of other superimposed images on the basis of corresponding coordinates of the reference image in the background image, distances in the background image from the reference image to the other superimposed images, and a distance in the background image from the reference image to a boundary within a predetermined area with respect to the reference image, the coordinates of the other superimposed images being transformed in such a way that coordinate intervals within the predetermined area become denser with increasing distance from the reference image toward the boundary within the predetermined area; a coordinate setting section that sets coordinates of the reference image on the basis of a mean value obtained by calculating a mean of the calculated coordinates of the other superimposed images with respect to the reference image; and a display control section that displays the background image and the plurality of superimposed images on a display section in such a way that the reference image is placed at the set coordinates in the background image. Therefore, transformed coordinates are calculated for each of superimposed images by transforming coordinates of other superimposed images in such a way that coordinate intervals within a predetermined area become denser with increasing distance from a reference image toward a boundary within the predetermined area, and coordinates of the reference image are set on the basis of a mean value obtained by calculating a mean of the calculated coordinates of the other superimposed images with respect to the reference image, and a background image and a plurality of superimposed images are displayed in such a way that the reference image is placed at the set coordinates in the background image.
Also, in an embodiment of the present invention, the information processing apparatus may further include a second transformed-coordinate calculating section that calculates transformed coordinates for each of the superimposed images by transforming the set coordinates on the basis of a size of the background image on a display screen of the display section, the number of the superimposed images, and distances between the superimposed images in the background image, the set coordinates being transformed in such a way that the distances between the superimposed images increase under a predetermined condition in accordance with the distances between the superimposed images in the background image, and the display control section may display the background image and the plurality of superimposed images in such a way that the superimposed images are placed at the coordinates in the background image calculated by the second transformed-coordinate calculating section. Therefore, transformed coordinates are calculated for each of the superimposed images by transforming the coordinates in such a way that the distances between the superimposed images increase under a predetermined condition in accordance with the distances between the superimposed images in the background image, and the background image and the plurality of superimposed images are displayed in such a way that the superimposed images are placed at the calculated coordinates in the background image.
Also, in an embodiment of the present invention, the information processing apparatus may further include a magnification/shrinkage processing section that magnifies or shrinks the coordinates calculated by the second transformed-coordinate calculating section with reference to a specific position on the display screen, on the basis of a coordinate size subject to coordinate transformation by the second transformed-coordinate calculating section, and a size of the background image on the display screen of the display section, and the display control section may display the background image and the plurality of superimposed images in such a way that the superimposed images are placed at the coordinates in the background image magnified or shrunk by the magnification/shrinkage processing section. Therefore, the coordinates of the superimposed images are magnified or shrunk with reference to a specific position on the display screen, and the background image and the plurality of superimposed images are displayed in such a way that the superimposed images are placed at the magnified or shrunk coordinates in the background image.
Also, in an embodiment of the present invention, the background image may be an image representing a map, and the superimposed images may be images representing a plurality of contents with each of which positional information indicating a position in the map is associated. Therefore, images representing a map and a plurality of contents are displayed so that the reference image is placed at the set coordinates on the map.
Also, in an embodiment of the present invention, the information processing apparatus may further include a group setting section that sets a plurality of groups by classifying the plurality of contents on the basis of the positional information, and a mark generating section that generates marks representing the groups on the basis of the positional information associated with each of contents belonging to the set groups, and the display control section may display a listing of the marks representing the groups as the superimposed images. Therefore, a plurality of groups are set by classifying the plurality of contents on the basis of the positional information, marks representing the groups are generated on the basis of the positional information associated with each of contents belonging to the set groups, and a listing of the marks representing the groups is displayed as the superimposed images.
Also, in an embodiment of the present invention, the mark generating section may generate maps as the marks representing the groups, the maps each corresponding to an area including a position identified by the positional information associated with each of the contents belonging to the set groups. Therefore, maps are generated as the marks representing the groups, the maps each corresponding to an area including a position identified by the positional information associated with each of the contents belonging to the set groups.
Also, in an embodiment of the present invention, the mark generating section may generate the marks representing the groups by changing a map scale for each of the set groups so that each of the maps becomes an image with a predetermined size. Therefore, the marks representing the groups are generated by changing a map scale for each of the set groups so that each of the maps becomes an image with a predetermined size.
Also, in an embodiment of the present invention, the information processing apparatus may further include a background map generating section that generates a background map corresponding to each of the groups at a scale determined in accordance with a scale of each of maps generated as the marks representing the groups, and the display control section may display, as the background image, the background map generated with respect to a group corresponding to a map selected from among the displayed listing of maps. Therefore, a background map corresponding to each of the groups is generated at a scale determined in accordance with a scale of each of maps generated as the marks representing the groups, and as the background image, the background map generated with respect to a group corresponding to a map selected from among the displayed listing of maps is displayed.
Hereinbelow, modes for carrying out the present invention (hereinafter, referred to as embodiments) will be described. The description will be given in the following order.
1. First Embodiment (cluster information generation control; example of generating cluster information on the basis of positional information and date and time information)
2. Second Embodiment (cluster information display control; example of displaying cluster information while taking geographical position relationship into consideration)
3. Modifications
The content storing section 210 stores contents such as image files recorded by an image capturing apparatus such as a digital still camera, and supplies the stored contents to the attribute information acquiring section 110 and the display control section 180. Also, attribute information including positional information and date and time information is recorded in association with each content stored in the content storing section 210. It should be noted that a description of contents stored in the content storing section 210 will be given later in detail with reference to
The map information storing section 220 stores map data related to maps displayed on the display section 181. The map information storing section 220 supplies the stored map data to the cluster information generating section 170. For example, the map data stored in the map information storing section 220 is data identified by latitude and longitude, and divided into a plurality of areas in units of predetermined latitude and longitude widths. Also, the map information storing section 220 stores map data corresponding to a plurality of scales.
The address information storing section 230 stores conversion information for converting positional information into addresses, and supplies the stored conversion information to the cluster information generating section 170. It should be noted that information stored in the address information storing section 230 will be described later with reference to
The cluster information storing section 240 stores cluster information generated by the cluster information generating section 170, and supplies the stored cluster information to the display control section 180. It should be noted that information stored in the cluster information storing section 240 will be described later with reference to
The attribute information acquiring section 110 acquires attribute information associated with contents stored in the content storing section 210, in accordance with an operational input accepted by the operation accepting section 200. Then, the attribute information acquiring section 110 outputs the acquired attribute information to the tree generating section 120, the event cluster generating section 130, or the face cluster generating section 140.
The tree generating section 120 generates binary tree structured data on the basis of attribute information (positional information) outputted from the attribute information acquiring section 110, and outputs the generated binary tree structured data to the hierarchy determining section 150. The method of generating this binary tree structured data will be described later in detail with reference to
The event cluster generating section 130 generates binary tree structured data on the basis of attribute information (date and time information) outputted from the attribute information acquiring section 110, and generates event clusters (clusters based on date and time information) on the basis of this binary tree structured data. Then, the event cluster generating section 130 outputs information related to the generated event clusters to the hierarchy determining section 150 and the cluster information generating section 170. The event clusters are generated on the basis of various kinds of condition corresponding to a user operation outputted from the condition setting section 190. It should be noted that the method of generating the event clusters will be described later in detail with reference to
The face cluster generating section 140 generates face clusters related to faces on the basis of attribute information (face information and the like) outputted from the attribute information acquiring section 110, and outputs information related to the generated face clusters to the cluster information generating section 170. The face clusters are generated on the basis of various kinds of condition corresponding to a user operation outputted from the condition setting section 190. For example, the face clusters are generated in such a way that on the basis of the similarity between faces, similar faces belong to the same face cluster.
The hierarchy determining section 150 determines a plurality of groups related to contents, on the basis of information related to event clusters outputted from the event cluster generating section 130, and binary tree structured data outputted from the tree generating section 120. Specifically, the hierarchy determining section 150 calculates the frequency distributions of a plurality of contents with respect to a plurality of groups identified by the event clusters generated by the event cluster generating section 130, for individual nodes in the binary tree structured data generated by the tree generating section 120. Then, the hierarchy determining section 150 compares the calculated frequency distributions with each other, extracts nodes that satisfy a predetermined condition from among the nodes in the binary tree structured data on the basis of this comparison result, and determines a plurality of groups corresponding to the extracted nodes. Then, the hierarchy determining section 150 outputs tree information generated by the determination of the plurality of groups (for example, the binary tree structured data and information related to the extracted nodes) to the tree restructuring section 160. The extraction of nodes in the binary tree structured data is performed on the basis of various kinds of condition corresponding to a user operation outputted from the condition setting section 190. Also, the method of extracting nodes in the binary true structured data will be described later in detail with reference to
The tree restructuring section 160 generates clusters by restructuring tree information outputted from the hierarchy determining section, on the basis of various kinds of condition corresponding to a user operation outputted from the condition setting section 190. Then, the tree restructuring section 160 outputs information related to the generated clusters to the cluster information generating section 170. It should be noted that the method of restructuring tree information will be described later in detail with reference to
The cluster information generating section 170 records the information related to clusters outputted from the tree restructuring section 160, to the cluster information storing section 240 as cluster information. In addition, the cluster information generating section 170 generates individual pieces of attribute information related to clusters on the basis of the information related to clusters outputted from the tree restructuring section 160, causes these pieces of attribute information to be included in cluster information, and stores the cluster information into the cluster information storing section 240. These pieces of attribute information (such as Cluster Map 247 and Cluster Title 248 shown in
The display control section 180 displays various kinds of image on the display section 181 in accordance with an operational input accepted by the operation accepting section 200. For example, in accordance with an operational input accepted by the operation accepting section 200, the display control section 180 displays on the display section 181 cluster information (for example, a listing of cluster maps) stored in the cluster information storing section 240. Also, in accordance with an operational input accepted by the operation accepting section 200, the display control section 180 displays contents stored in the content storing section 210 on the display section 181. These examples of display will be described later in detail with reference to
The display section 181 is a display section that displays various kinds of image on the basis of control of the display control section 180.
The condition setting section 190 sets various kinds of condition in accordance with an operational input accepted by the operation accepting section 200, and outputs information related to the set condition to individual sections. That is, the condition setting section 190 outputs information related to the set condition to the event cluster generating section 130, the face cluster generating section 140, the hierarchy determining section 150, and the tree restructuring section 160.
The operation accepting section 200 is an operation accepting section that accepts an operational input from the user, and outputs information on an operation corresponding to the accepted operational input to the attribute information acquiring section 110, the display control section 180, and the condition setting section 190.
The image file 211 is a still image file recorded in the DCF standard. As shown in
As shown in
The maker note 214 is generally an area in which data unique to the user is recorded, and is an extension area in which each maker can freely record information (TAGID=37500, MakerNote). It should be noted that date and time information such as time of shooting, positional information such as GPS information, or face information related to a face included in an image (for example, the position and size of the face) may be recorded in the maker note 214. While the first embodiment is directed to the case in which cluster information is generated by using positional information recorded in an image file, it is also possible to record positional information into a management file for managing contents, and generate cluster information by using this positional information.
In the Positional Information 231, data for identifying each of locations corresponding to addresses stored in the Address Information 232 is stored. The example shown in
In the Address Information 232, data related to addresses assigned to cluster information generated by the cluster information generating section 170 is stored. As each address assigned to cluster information generated by the cluster information generating section 170, for example, a place name corresponding to administrative divisions, and a building name etc. can be used. The units of such administrative divisions can be, for example, countries, prefectures, and municipalities. It should be noted that in the first embodiment of the present invention, it is assumed that the prefecture, municipality, chome (district in Japanese)/banchi (block in Japanese), and building name etc. are divided into corresponding hierarchical levels, and data thus separated by hierarchical levels is stored in the Address Information 232. Thus, each piece of data divided into hierarchical levels can be used. An example of using each piece of data divided into hierarchical levels in this way will be described later in detail with reference to
The cluster information generating section 170 acquires address information from the address information storing section 230 shown in
Subsequently, on the basis of the address information acquired with respect to the individual contents belonging to the target cluster, the cluster information generating section 170 determines an address to be assigned to the cluster. It should be noted that as the address information used for this determination, for example, all the pieces of address information acquired with respect to the individual contents belonging to the cluster can be used. However, it is also possible to use only a predetermined number of pieces of address information selected in accordance with a preset rule (for example, randomly selecting a predetermined number of pieces of address information) from among all the pieces of acquired address information. Also, if another cluster (child node) belongs to a level below a target cluster (parent node), only address information acquired with respect to a content corresponding to the center position (or in its close proximity) of the other cluster (child node) may be used.
As described above, address information acquired from the address information storing section 230 can be divided into hierarchical levels such as Prefecture 251, Municipality 252, Chome/Banchi 253, and Building Name etc. 254 for use, for example. Accordingly, in the first embodiment of the present invention, each piece of address information acquired with respect to each of contents belonging to a target cluster is divided into hierarchical levels, and an address to be assigned to the group is determined on the basis of frequencies calculated at each level. That is, frequencies of individual pieces of address information are calculated at each level, and of the calculated frequencies, the most frequent value is calculated at each level. Then, if the calculated most frequent value accounts for a fixed percentage (ADDRESS_ADOPT_RATE) or more within the entire level, it is determined to use the address information corresponding to the most frequent value. This fixed percentage can be set as, for example, 70%. This fixed percentage may be changed by a user operation to suit the user's preferences. If it is determined to use address information at a given level, then an address determination process is performed similarly with respect to levels below that level. On the other hand, if the calculated most frequent value accounts for less than the fixed percentage within the entire level, it is determined not to use the address information corresponding to the most frequent value. If it is determined not to use address information corresponding to the most frequent value in this way, the address determination process with respect to levels below that level is discontinued. That is, if it is determined not to use address information corresponding to the most frequent value, the address determination process is discontinued because there is supposedly a strong possibility that a determination not to use address information corresponding to the most frequent value will be similarly made with respect to levels below that level. For example, if it is determined not to use address information at the level of the Prefecture 251, it is supposed that a determination not to use address information will be similarly made with respect to levels (the Municipality 252, the Chome/Banchi 253, and the Building Name etc. 254) below that level.
For example, with respect to the first level (the Prefecture 251), the prefecture representing the most frequent value is identified from among 34 pieces of address information. In the example shown in
Subsequently, with respect to the level (the Municipality 252) below the Prefecture 251, the municipality representing the most frequent value is identified from among 34 pieces of address information. In the example shown in
Subsequently, with respect to the level (the Chome/Banchi 253) below the Municipality 252, the chome/banchi representing the most frequent value is identified from among 34 pieces of address information. In the example shown in
Subsequently, with respect to the level (the Building Name etc. 254) below the Chome/Banchi 253, the building name etc. representing the most frequent value is identified from among 34 pieces of address information. In the example shown in
As described above, “Tokyo-prefecture Shinagawa-ward Osaki 1-chome” is determined as the place name assigned to the target group.
By determining a place name assigned to each group in this way, for example, “Tokyo-prefecture” is determined as the place name for a group including image files (so-called photographs) shot throughout the Tokyo-prefecture. Also, for example, even in the case of a group including image files captured throughout the Tokyo-prefecture, if the group includes many images shot mostly throughout the Shinagawa-ward, a place name such as “Tokyo-prefecture Shinagawa-ward” is determined for the group.
Since in many cases the person who has shot the images knows the place name, there are supposedly cases where it is redundant to write the place name starting with the prefecture name. For this reason, address display may be simplified in such a way that if a place name includes only a prefecture name, the place name is displayed as it is, and if a place name continues down to the municipality name and so on, the place name may be displayed with the prefecture name omitted.
If, for example, the above-described address determination method is used with respect to a cluster including image files shot throughout a plurality of prefectures (for example, Tokyo-prefecture and Saitama-prefecture), cases can also be supposed where an address is not determined. In such cases, for example, with respect to the first level (Prefecture), the prefecture representing the most frequent value and the prefecture representing the second most frequent value are identified from among a plurality of pieces of address information. Then, it is judged whether or not the percentages of these two prefectures are equal to or more than a fixed percentage, and the prefecture part of address information may be determined on the basis of this judgment result. The same applies to the case of determining an address with respect to three or more prefectures. Also, each of these place name determination methods may be set by a user operation. Also, if a plurality of prefectures (for example, Tokyo-prefecture, Chiba-prefecture, and Saitama-prefecture) are determined as address information, for example, the top two prefectures ranked in order of highest frequency may be displayed. For example, the display may be in the manner of “Tokyo-prefecture, Chiba-prefecture, and Others”.
While this example is directed to the case in which an address in Japan is assigned as a place name to be assigned to a group, the same applies to the case where an address in a foreign country is assigned as a place name to be assigned to a group. An address in a foreign country often differs from an address in Japan in the order in which the address is written but is the same in that the address is made up of a plurality of hierarchical levels. Therefore, a place name can be determined by the same method as the address determination method described above.
While the first embodiment of the present invention is directed to the case in which address information is stored in the information processing apparatus 100 in advance, and an address assigned to a cluster is determined on the basis of this address information, an address assigned to a cluster may be determined by using address information stored in an external apparatus.
The Cluster Identification Information 241 stores identification information for identifying each cluster. For example, identification information “#2001”, identification information “#2002”, and so on are stored in order of generation by the cluster information generating section 170.
The Cluster Position Information 242 stores positional information related to each cluster. As the positional information, for example, the latitude and longitude of the center position of a circle corresponding to each cluster is stored.
The Cluster Size 243 stores a size related to each cluster. As this size, for example, the value of the radius of a circle corresponding to each cluster is stored. Here, if, for example, the great-circle distance is used as the distance between two points as shown in
The Content List 244 stores information (for example, content addresses and the like) for acquiring contents belong to each cluster. It should be noted that in
The Parent Cluster Identification Information 245 stores identification information for identifying another cluster (parent cluster) to which each cluster belongs. It should be noted that since there is normally a single parent cluster, the Parent Cluster Identification Information 245 stores identification information for a single parent cluster.
The Child Cluster Identification Information 246 stores identification information for identifying other clusters (child clusters) that belong to each cluster. That is, all the pieces of identification information for one or a plurality of clusters belonging to each cluster and existing at levels below the cluster are stored. It should be noted that since there are normally a plurality of child clusters, the Child Cluster Identification Information 246 stores identification information for each of a plurality of child clusters.
The Cluster Map 247 stores the image data of a thumbnail image representing each cluster. This thumbnail image is, for example, a map image formed by a map included in a circle corresponding to each cluster. The thumbnail image is generated by the cluster information generating section 170. In
The Cluster Title 248 stores a title assigned to each cluster. For example, an address “Tokyo-prefecture Shinagawa-ward Osaki 1-chome” determined by the cluster information generating section 170 as shown in
It should be noted that depending on the content or application, cluster information may include, in addition to the data shown in
Next, a clustering method for clustering (hierarchical clustering) a plurality of contents will be described in detail with reference to the drawings.
Clustering refers to grouping (classifying) together a plurality of pieces of data within a short distance from each other in a data set. It should be noted that in the first embodiment of the present invention, contents (for example, image contents such as still image files) are used as data. The distance between contents refers to the distance between the positions (such as geographical positions, positions along the temporal axis, or positions along the axis representing the similarity between faces) of two points corresponding to contents. A cluster is a unit in which contents are grouped together by clustering. Through an operation such as linking or splitting of such clusters, it finally becomes possible to handle grouped contents. It should be noted that the first embodiment of the present invention is directed to a case in which such grouping is performed by using binary tree structured data as described below.
d1=arccos(sin(x1)sin(x2)+cos(x1)cos(x2)cos(y1−y2))
where arccos(x)=cos−1(x).
In the case where clustering is performed with respect to such localized contents that all the target contents can be approximated to exist on a plane, for example, the Euclidean distance may be used as the distance between two points. Also, for example, the Manhattan distance may be used as the distance between two points.
The first embodiment of the present invention is directed to a case in which, as a cluster-to-cluster distance identified by two clusters, the distance between the farthest edges of two circles corresponding to the two clusters is used. Specifically, as shown in
d2=d10+r11+r12
Here, for example, the area of a cluster made up of two contents can be represented as the area of a circle including the two contents and in which the two contents are inscribed. The center position of the cluster made up of the two contents can be represented as the middle position on a straight line connecting between the positions of the two contents. The radius of the cluster can be represented as half of the straight line connecting between the positions of the two contents.
Also, for example, the area of a cluster 305 made up of the two clusters 313 and 314 shown in
If, as shown in
d4=d40+r41
For example, the contents #1 and #2 are generated during a wedding ceremony 381 attended by Goro Koda (the user of the information processing apparatus 100), and the contents #3 to #5 are generated during a 2007 Sports Day 382 in which a Goro Koda's child participated. Also, the contents #6 to #8 are generated during a ◯◯ trip 383 done by Goro Koda, and the contents #9 to #12 are generated during a 2008 Sports Day 384 in which the Goro Koda's child participated. Further, the contents #13 and #14 are generated during a ΔΔ trip 385 done by Goro Koda.
In the first embodiment of the present invention, clustering performed by the tree generating section 120 generates binary tree structured data with each content as a leaf. Each node in this binary tree structured data corresponds to a cluster.
First, the tree generating section 120 calculates distances between individual contents on the basis of positional information. On the basis of the calculation results, the tree generating section 120 extracts two contents with the smallest inter-content distance, and generates a new node having these two contents as its child elements. Subsequently, the tree generating section 120 calculates distances between the generated new node and the other individual contents on the basis of positional information. Then, on the basis of the calculation results, and the results of calculation of the distances between individual contents described above, the tree generating section 120 extracts a pair of two elements with the smallest distance, and generates a new node having this pair of two elements as its child elements. Here, the pair of two elements to be extracted is one of a pair of a node and a content, a pair of two contents, and a pair of two nodes.
Subsequently, the tree generating section 120 repetitively performs the new node generation process in the same manner until the number of nodes to be extracted becomes 1. Thus, binary tree structured data with respect to the contents #1 to #14 is generated. For example, as shown in
The above example is directed to the case in which distances between individual contents are calculated, and binary tree structured data is generated while keeping on extracting a pair with the smallest distance. However, when shooting photographs or moving images, for example, in many cases shooting is performed successively within a predetermined range. For example, when shooting photographs at a destination visited on a trip, in many cases group photographs or landscape photographs are shot in the same region. For this reason, for example, an initial grouping process may be performed to group together those contents which are shot within a short distance from each other in advance. By performing an initial grouping process in this way, the number of nodes to be processed can be reduced, thereby enabling a faster clustering process. This initial grouping process will be described later in detail with reference to
For example, the contents #1 and #2 are generated in a wedding ceremony hall 386 (corresponding to the wedding ceremony 381 shown in
The above example is directed to the case in which binary tree structured data is generated on the basis of positional information. Next, a description will be given of event clustering performed on the basis of date and time information. This event clustering generates binary tree structured data on the basis of date and time information (see, for example, Japanese Unexamined Patent Application Publication No. 2007-94762). Also, event clusters generated by this event clustering are used to generate event IDs used to extract desired nodes by the user from among nodes in binary tree structured data generated on the basis of positional information.
In the first embodiment of the present invention, separately from the binary tree structured data generated on the basis of positional information (shown in
Now, the method of generating binary tree structured data on the basis of date and time information will be specifically described. The event cluster generating section 130 calculates time intervals between individual contents on the basis of date and time information. On the basis of the calculation results, the event cluster generating section 130 extracts two contents that make the inter-content time interval smallest, and generates a new node having these two contents as its child elements. Subsequently, the event cluster generating section 130 calculates time intervals between the generated new node and the other individual contents on the basis of date and time information. Then, on the basis of this calculation results, and the results of calculation of the time intervals between individual contents described above, the event cluster generating section 130 extracts a pair of two elements with the smallest time interval, and generates a new node having this pair of two elements as its child elements. Here, the pair of two elements to be extracted is one of a pair of a node and a content, a pair of two contents, and a pair of two nodes.
Subsequently, the event cluster generating section 130 repetitively performs the new node generation process in the same manner until the number of nodes to be extracted becomes 1. Thus, binary tree structured data with respect to the contents #1 to #14 is generated. For example, as shown in
It should be noted that the leaves in the binary tree shown in
After the binary tree structured data corresponding to the binary tree shown in
First, the event cluster generating section 130 calculates the standard deviation of the time intervals between individual contents, with respect to each of nodes in the binary tree generated on the basis of date and time information. Specifically, by taking one node in the binary tree generated by the event cluster generating section 130 as a focus node, the standard deviation sd of time intervals between the times of shooting associated with all of individual contents belonging to this focus node is calculated by using equation (1) below.
Here, N denotes the number of time intervals between the times of shooting of contents, and N=(the number of contents belonging to the focus node)−1. Also, td with “
Subsequently, with respect to two child nodes whose parent node is the focus node, the deviation of the time interval between these two nodes (the absolute value of the difference between the time interval between the child nodes and the mean of the time intervals between the times of shooting) is calculated. Specifically, the deviation dev of the time interval between the two nodes is calculated by using equation (2) below.
dev=|td
c
−
Here, tdc is a value indicating the time interval between the two child nodes whose parent node is the focus node. Specifically, the time interval tdc is the time interval between the time of shooting of the last content of contents belonging to the child node of the two child nodes which is located earlier along the temporal axis, and the time of shooting of the first content of contents belonging to the child node located later along the temporal axis.
Subsequently, the event cluster generating section 130 calculates the value of the ratio between the deviation dev calculated using equation (2), and the standard deviation sd calculated using equation (1), as a splitting parameter th1 for the focus node. Specifically, the splitting parameter th1 as the value of the ratio between the deviation dev and the standard deviation sd is calculated by using equation (3) below.
th1=dev/sd (3)
The splitting parameter th1 calculated by using equation (3) in this way is a parameter that serves as a criterion for determining whether or not to split the two child nodes whose parent node is the focus node from each other as belonging to different clusters. That is, the event cluster generating section 130 compares the splitting parameter th1 with a threshold th2 that is set as a grouping condition, and judges whether or not the splitting parameter th1 exceeds the threshold th2. Then, if the splitting parameter th1 exceeds the threshold th2, the event cluster generating section 130 splits the two child nodes whose parent node is the focus node, as child nodes belonging to different clusters. On the other hand, if the splitting parameter th1 does not exceed the threshold th2, the event cluster generating section 130 judges the two child nodes whose parent node is the focus node as belonging to the same cluster. It should be noted that the threshold th2 is set by the condition setting section 190 in accordance with a user operation, and is held by the event cluster generating section 130. In the following, a description will be given of a specific example of event clustering, by using the binary tree structured data shown in
For example, of the nodes constituting the binary tree structured data shown in
Here, N=4 since the number of time intervals between the times of shooting of the contents #1 to #5 belonging to the focus node 350 is 4. Also, the mean value (td attached with “
Subsequently, with respect to the two child nodes 341 and 347 whose parent node is the focus node 350, the event cluster generating section 130 calculates the deviation dev of the time interval between the two nodes by using equation (2). Specifically, the deviation dv is calculated by the following equation.
dev=|td
3
−
Here, the last content belonging to the child node 341 located earlier along the temporal axis is the content #2, and the first content belonging to the child node 347 located later along the temporal axis is the content #3. Therefore, the time interval tdc between the two child nodes 341 and 347 whose parent node is the focus node 350 is the time interval td3.
Subsequently, by using equation (3), the event cluster generating section 130 calculates the value (the splitting parameter th1 for the focus node 350) of the ratio between the deviation dev calculated using equation (2), and the standard deviation sd calculated using equation (1). The splitting parameter th1 calculated in this way is held by the event cluster generating section 130 as the splitting parameter th1 for the focus node 350. Also, the event cluster generating section 130 similarly calculates the splitting parameter th1 with respect to each of the other nodes in the binary tree structured data.
Subsequently, the event cluster generating section 130 compares the splitting parameter th1 calculated with respect to each of nodes in the binary tree structured data, with the threshold th2, thereby sequentially judging whether or not to split two child nodes belonging to each node. Then, with respect to a node for which the splitting parameter th1 exceeds the threshold th2, the event cluster generating section 130 splits two child nodes having this node as their parent node from each other as belonging to different clusters. On the other hand, with respect to a node for which the splitting parameter th1 does not exceed the threshold th2, the event cluster generating section 130 judges two child nodes having this node as their parent node as belonging to the same cluster.
That is, if the value of a calculated splitting parameter is equal to or smaller than the threshold, individual contents belonging to the node with respect to which the splitting parameter has been calculated are regarded as nodes belonging to a single cluster. That is, the node with respect to which the splitting parameter has been calculated serves as a boundary. Therefore, for example, the larger the threshold, the less likely each node becomes a boundary, so the granularity of clusters in the binary tree as a whole becomes coarser. On the other hand, if the value of a calculated splitting parameter is larger than the threshold, two child nodes belonging to the node with respect to which the splitting parameter has been calculated are classified into different clusters. That is, a boundary is set between the two child nodes belonging to the node with respect to which the splitting parameter has been calculated. Therefore, for example, the smaller the threshold, the more likely each node becomes the boundary between clusters, so the granularity of clusters in the binary tree as a whole becomes finer.
In this way, with respect to each node in the binary tree structured data, the event cluster generating section 130 sequentially judges whether or not to split two child nodes belonging to each node, and generates clusters based on date and time information on the basis of the judgment results. For example, it is determined to split two child nodes belonging to each of the respective nodes corresponding to the clusters 350 to 353. That is, respective event clusters (clusters based on date and time information) corresponding to the wedding ceremony 381, the 2007 Sports Day 382, the ◯◯trip 383, the 2008 Sports Day 384, and the ΔΔ trip 385 are generated.
Here, each of the clusters generated by the event cluster generating section 130 is referred to as event. Also, letting the number of such events be M, event IDs (id1 to idM) are assigned to the respective events. Then, the event cluster generating section 130 associates the generated event clusters and the event IDs assigned to these event clusters with each other, and outputs the event clusters and the event IDs to the hierarchy determining section 150. In
In this example, as the classes in a frequency distribution, individual events (event IDs) of event clusters generated by the event cluster generating section 130 are defined. Then, the hierarchy determining section 150 calculates the number of contents with respect to each of event IDs, for each of nodes in the binary tree structured data generated by the tree generating section 120. For example, contents belonging to the node 327 in the binary tree structured data based on positional information shown in
Then, the hierarchy determining section 150 calculates the frequency distribution of contents with the cluster IDs generated by the event cluster generating section 130 taken as classes, with respect to each of nodes in the binary tree structured data generated by the tree generating section 120. For example, as shown in
The frequency distribution of individual contents calculated in this way can be expressed by an M-th order vector like H1=(v1, v2, . . . , vM). That is, this M-th order vector is generated with respect to each of nodes in the binary tree structured data generated by the tree generating section 120. For example, the histogram generated with respect to the node 327 shown in
A linking process of nodes is performed on the basis of the frequency distribution calculated with respect to each of nodes in the binary tree structured data generated by the tree generating section 120 in this way. This linking process will be described later in detail with reference to
It should be noted that while histograms can be similarly generated for the nodes 321 to 326, and 333 shown in
As shown in
For example, the contents #3 to #5, and #9 to #12 belonging to the nodes 327, 328, and 330 shown in
In this way, by comparison between histograms generated with respect to individual nodes in the binary tree structured data generated by the tree generating section 120, the degree of relevance between two nodes to be compared can be determined. This determination process is performed by comparing between two child nodes belonging to a single parent node.
For example, as shown in
Also, for example, as shown in
Specifically, the hierarchy determining section 150 calculates a linkage score S with respect to each of nodes in the binary tree structured data generated by the tree generating section 120. This linkage score S is calculated by using, for example, an M-th order vector generated with respect to each of two child nodes belonging to a target node (parent node) for which to calculate the linkage score S.
For example, the hierarchy determining section 150 normalizes the inner product between an M-th order vector HL, which is calculated with respect to one of the two child nodes belonging to a parent node as a calculation target, and an M-th order vector HR calculated with respect to the other child node, by the vector size. Then, the hierarchy determining section 150 calculates the normalized value (that is, the cosine between the vectors) as the linkage score S. That is, the linkage score is calculated by using equation (4) below.
S=(HL·HR)/|HL∥HR| (4)
At this time, the value of the cosine between the vectors is −1≦x≦1. Also, the M-th order vector HL and the M-th order vector HR for which to calculate the linkage score S are both vectors including only non-negative values. Therefore, the value of the linkage score S is 0≦S≦1. Also, the linkage score S of a leaf is defined as 1.0.
On the basis of the linkage score S calculated in this way, the degree of relevance between two child nodes belonging to a parent node as a calculation target can be determined. For example, if the linkage score S of the parent node as a calculation target is relatively small, the relevance between two child nodes belonging to the parent node can be judged to be low. On the other hand, if the linkage score S of the parent node as a calculation target is relatively large, the relevance between two child nodes belonging to the parent node can be judged to be high.
Specifically, the hierarchy determining section 150 calculates the linkage score S with respect to each of nodes in binary tree structured data generated by the tree generating section 120. Then, the hierarchy determining section 150 compares the calculated linkage score S with a linkage threshold (Linkage_Threshold) th3, and performs a node linking process on the basis of this calculation result. In this case, the hierarchy determining section 150 sequentially performs calculation and comparison processes of the linkage score S from the root node in the binary tree structured data generated by the tree generating section 120 toward the lower levels. Then, if the calculated linkage score S is larger than the linkage threshold th3, the hierarchy determining section 150 determines the corresponding node as an extraction node. On the other hand, if the calculated linkage score S is not larger than the linkage threshold th3, the hierarchy determining section 150 does not determine the corresponding node as an extraction node but repeats the same linking process with respect to each of two child nodes belonging to that node. These linking processes are repeated until there is no more node whose linkage score S is equal to the linkage threshold th3 or smaller, or until the node (content) at the bottom level is reached. It should be noted that the linkage threshold th3 is set by the condition setting section 190 in accordance with a user operation, and held by the hierarchy determining section 150. As the linkage threshold th3, for example, 0.25 can be used.
By performing linking processes in this way, for example, the nodes 321, 325, 329, and 330 shown in
Subsequently, the hierarchy determining section 150 generates a root node whose child elements (child nodes) are the extraction nodes determined by the linkage score calculation and comparison processes, thereby generating a tree. An example of a tree generated in this way is shown in
The above-described example is directed to the case in which, as the method of calculating the linkage score S, the cosine between vectors related to two child nodes belonging to a parent node as a calculation target is calculated. However, for example, it is also possible to calculate the Euclidean distance between vectors related to two child nodes belonging to a parent node as a calculation target, and use this Euclidean distance as the linkage score S. In the case where the Euclidean distance is used as the linkage score S in this way, if the value of the linkage score S is relatively large, for example, the relevance between two child nodes belonging to the parent node as a calculation target is judged to be high. On the other hand, if the value of the linkage score S is relatively small, for example, the relevance between the two child nodes belonging to the parent node as a calculation target is judged to be low. Also, a similarity may be calculated by using another similarity calculation method (for example, a method using the sum of histogram differences in individual classes) that can calculate the similarity between two frequency distributions to be compared (degree of how similar the two frequency distributions are), and this similarity may be used as the linkage score.
Extraction nodes determined by the hierarchy determining section 150 are determined on the basis of event clustering based on date and time information. Thus, by adjusting the parameter for clustering based on date and time, the granularity of extraction nodes can be adjusted. For example, if the granularity of event clusters is set relatively small, relatively small nodes are determined as extraction nodes.
By linking two clusters (nodes) together through the linking process described above, contents belonging to a plurality of clusters of high mutual event-based relevance can be classified into the same cluster. However, when displaying a listing of marks (for example, cluster maps) representing individual clusters, it is supposed that unless the number of cluster maps is appropriate, the number of pages will become large, making it difficult to view the cluster maps. For this reason, for example, it is preferable to set an upper limit for the number of clusters, and perform a further linking process if the number of clusters generated by the hierarchy determining section 150 exceeds this upper limit. This upper limit may be set in accordance with the size of the display screen on the display section 181, or user's preferences.
Also, for example, a case can be supposed where the precision of positional information (for example, GPS information) acquired at the time of generation of a content is poor, and such positional information is associated with the content in that state. In such a case, if the distance between two adjacent clusters is very short, then there will not be much point in clearly separating those clusters from each other. Also, even when the relevance between two adjacent clusters is low, if these clusters are within a very short distance from each other, then in some cases it will be more convenient for the user to regard the two clusters as the same cluster. For example, if clusters (two adjacent clusters) corresponding to a region far from the region where the user lives are within a moderate distance (for example, 100 m) from each other, in some cases it will be more convenient for the user to regard these two clusters as the same cluster. For example, even if hot spring trips to two hot spring areas (◯◯ hot spring and AA hot spring) separated by a moderate distance (for example, 500 m) are taken on different dates, it will be better in some cases to regard those two clusters as the same cluster so that the user can view them as a single hot spring trip cluster.
Accordingly, after the linking process by the hierarchy determining section 150 is finished, the tree restructuring section 160 restructures the tree generated by the hierarchy determining section 150, on the basis of a specified constraint.
As this constraint, a minimum cluster size (MINIMUM_LOCATION_DISTANCE) or a tree's child element count (MAXIMUM_CHILD_NUM) can be specified. This constraint is set by the condition setting section 190 in accordance with a user operation, and held by the tree restructuring section 160.
Here, when a minimum cluster size is set as the constraint, it is possible to generate a tree in which the diameter of each cluster is larger than the minimum cluster size. For example, if a node whose diameter is equal to or smaller than the minimum cluster size exists among nodes in the tree generated by the hierarchy determining section 150, the node and another node located at the shortest distance to the node are linked together to generate a new node. In this way, for example, in cases when the accuracy of positional information associated with each content is poor, or when there is no much point in clearly separating two adjacent clusters from each other, these clusters can be linked together as the same cluster. Also, for example, if the ΔΔ trip destination 388 and the ◯◯ trip destination 389 are both narrow regions and located very close to each other, by linking the respective corresponding nodes 325 and 329 together as the same cluster, easy-to-view cluster information can be provided to the user.
When a child element count is specified as the constraint, it is possible to generate a tree whose number of nodes is equal to or less than the child element count. Each of these examples of tree restructuring is shown is
If, for example, the number of nodes determined by the hierarchy determining section 150 is larger than the child element count that is a specified constraint, the tree restructuring section 160 extracts a pair of nodes with the smallest distance from among those nodes, and merges this pair. If the number of nodes after this merging is larger than the child element count as a specified constraint, the tree restructuring section 160 extracts a pair of nodes with the smallest distance from among the nodes obtained after the merging, and merges this pair. These merging processes are repeated until the number of child nodes belonging to the root node becomes equal to or less than the child element count.
For example, as shown in
As shown in
By performing these tree restructuring processes, grouping can be performed in an appropriate manner in accordance with the user's preferences. It should be noted that the first embodiment of the present invention is directed to the case in which positional information (first attribute information) and date and time information (second attribute information) are used as two different pieces of attribute information. However, among the pieces of attribute information associated with contents, other pieces of attribute information that can identify the relationship between contents may be used as the first attribute information and the second attribute information. For example, the first embodiment of the present invention can be applied to a case in which, with respect to song contents, attribute information corresponding to coordinates in the xy-coordinate system with the mood of each song taken along the x-axis and the tempo of each song taken along the y-axis is used as the first attribute information, and attribute information related to the writer of each song is used as the second attribute information. In this case, for example, binary tree structured data with respect to a plurality of songs is generated on the basis of distances on the xy-coordinates, and the songs are grouped by their characteristics on the basis of attribute information related to the writers of the songs (for example, age, sex, nationality, and the number of songs written). Then, on the basis of the binary tree structured data based on the first attribute information, and the song groups based on the second attribute information, a plurality of groups are determined with respect to the songs. It should be noted that the above example is directed to the case in which a plurality of groups are set by classifying individual contents. In the following, a description will be given of a case in which marks (for example, cluster maps) representing the set groups are generated.
As described above, for clusters generated by the three stages of clustering process, for example, marks representing individual clusters are displayed on the display section 181, thereby making it possible to select a desired cluster from a plurality of clusters. Here, as images representing individual clusters, for example, maps corresponding to individual clusters can be used. For example, on the basis of positional information associated with each of contents belonging to a cluster, an area corresponding to the cluster can be identified, and a map covering this identified area can be used as a map (cluster map) corresponding to the cluster.
However, the size of a cluster generated through the three stages of clustering process is based on the positions of contents belonging to each cluster. Thus, as for the size of each cluster, there is no relevance whatsoever between clusters. Therefore, the size of an area (for example, a circle) specified by such a cluster varies from cluster to cluster.
Here, suppose that, when using a map as a mark representing each cluster, for example, a map at a specific scale is used. In this case, the position corresponding to each cluster can be grasped from a map corresponding to each cluster. However, it is supposed that by changing the scale of a map representing each cluster in accordance with the size of a circle corresponding to each cluster, the shooting area or the like of each of contents belonging to each cluster can be also easily grasped by the user. Accordingly, in the first embodiment of the present invention, a case is illustrated in which the scale of a map stored in association with each cluster is changed in accordance with the size of a circle corresponding to each cluster. In the following, with reference to the drawings, a detailed description will be given of the method of generating a map associated with each of clusters generated by the tree restructuring section 160.
The correspondence table shown in
The Cluster Diameter 171 is a value indicating the range of the size of each cluster generated by the tree restructuring section 160. The size of a cluster is identified by the diameter of a circle corresponding to the cluster.
The Map Scale 172 is a map scale that is to be stored in association with each cluster generated by the tree restructuring section 160. It should be noted that in this example, a plurality of segments are set in advance for the Cluster Diameter 171, and these segments and a plurality of scales corresponding to these segments are prepared in advance. However, it is also possible, for example, to sequentially calculate a map scale corresponding to a cluster diameter, and use this calculated map scale.
When generating a map corresponding to a cluster generated by the tree restructuring section 160, the cluster information generating section 170 uses the correspondence table shown in
Subsequently, with respect to the cluster for which the map scale has been identified, the cluster information generating section 170 identifies the center position of the cluster, and extracts from the map information storing section 220 a map covering a predetermined area from the center position (a map of the identified scale). Then, the cluster information generating section 170 records the extracted map as a thumbnail in association with the cluster to the cluster information storing section 240 (the Cluster Map 247 shown in
It is also possible to set a circle corresponding to the radius of a cluster from the center position of the cluster as an extraction range, extract a map covering this extraction range from a map of a predetermined scale, and magnify or shrink the extracted map in accordance with the size of the cluster to thereby generate a cluster map. In this way, in the same manner as in the above-described case, a thumbnail image of a cluster map according to the size of the corresponding cluster can be generated.
Now, consider a case where the size of a cluster generated by the tree restructuring section 160 is small. If the size of a cluster is small as in this case, when a map is extracted by using the map extraction method described above, a map covering a relatively small area is generated. In the case of such a map covering a relatively small area, a case can be supposed where no landmark (for example, a public facility or a park) is present in the map. In such a case, for example, there is a possibility that when a map is displayed as a thumbnail image, although the details of the map can be grasped, it is hard to easily grasp what region the map is showing. Accordingly, when creating the correspondence table shown in
As shown in
Then, the cluster information generating section 170 records the thumbnail image (cluster map) generated in this way into the cluster information storing section 240 in association with the corresponding cluster (the Cluster Map 247 shown in
It should be noted that in the case where map information stored in the map information storing section 220 is the map information of a vector map, and the positions of landmarks or the like can be detected on the basis of the map information, the position of the area that has been cut out or the scale may be adjusted so that the landmarks or the like are included. For example, even if no landmark is included in the extraction area from which to extract a cluster map, if a landmark exists in the vicinity of the extraction area, the position of the extraction area or the scale of the map from which to extract the extraction area is changed so that the landmark is included. Also, the size of the extraction area may be changed. In the case where the information processing apparatus 100 can access a database in which the positions of landmarks or the like are stored, likewise, the position of the area that has been cut out or the scale may be adjusted so that the landmarks or the like are included. With landmarks or the like included in the map cut out in this way, it is possible to create a thumbnail image which makes it easy for the user to grasp the region corresponding to the map, as compared with a map inclusive of only roads.
For example, when an operational input for activating a content playback application is accepted by the operation accepting section 200 in the information processing apparatus 100, the display control section 180 displays an index screen 401 on the display section 181. The index screen 401 is a display screen that displays a listing of clusters from which to select a desired cluster. Examples of display of the index screen 401 are shown in
On an index screen 410 shown in
The “EVENT” tab 411, the “FACE” tab 412, and the “PLACE” tab 413 are tabs for displaying another index screen. For example, when the “FACE” tab 412 is depressed using the cursor 419 by a user operation, an index screen 420 shown in
In the cluster map display area 414, a listing of marks (cluster maps) representing clusters generated by the tree restructuring section 160 and stored in the cluster information storing section 240 is displayed. For example, as shown in
The left and right buttons 415 and 416 are operating buttons that are displayed when there are cluster maps other than the cluster maps being displayed in the cluster map display area 414. For example, when the left button 415 or the right button 416 is depressed, in accordance with this depressing operation, the cluster maps being displayed in the cluster map display area 414 are moved to the left or right, thereby making it possible to display other cluster maps.
Here, a description will be given of a case in which a mouse-over is performed on a desired cluster map by a user operation on the index screen 410 shown in
For example, when the mouse is placed over a cluster map 417 by a user operation on the index screen 410 shown in
As the pieces of information 418 related to the cluster map 417, information indicating the size of the cluster may be also displayed together. For example, the diameter of a circle corresponding to the cluster can be displayed as “◯◯ km”. Also, for example, in order to allow the user to intuitively grasp whether the size of a circle corresponding to a cluster is large or small, display of icons or color can be made to differ depending on whether the size is large or not. For example, when comparing an urban area and a rural area with each other, it is supposed that while buildings, roads, and the like are densely packed in the urban area, in the rural area, there are relatively many mountains, farms, and the like, and there are relatively few buildings, roads, and the like. For this reason, the amount of information in a map often differs between the urban area and the rural area. Due to this difference in the amount of information in a map, it is supposed that when cluster maps of the urban area and rural area are displayed simultaneously, the user feels a difference in the perceived sense of scale between the urban area and the rural area. Accordingly, for example, by displaying these cluster maps in different manners depending on whether the size of a circle corresponding to a cluster is large or small, it is possible to prevent a difference in the perceived sense of scale between the urban area and the rural area, and intuitively grasp whether the size of a circle corresponding to a cluster is large or small. Also, as the pieces of information 418 related to the cluster map 417, other pieces of information such as the time range of the corresponding contents may be displayed.
On the index screen 420 shown in
On the index screen 430 shown in
In the event cluster image display area 421 shown in
Also, for example, when the mouse is placed over a thumbnail image 422 by a user operation on the index screen 420 shown in
In the face cluster image display area 431 shown in
Also, for example, when the mouse is placed over a thumbnail image 432 by a user operation on the index screen 430 shown in
When a desired cluster is determined by a user operation on the index screen shown in each of
The content display area 441 is an area for displaying a content in the central portion of the content playback screen 440. The preceding content display area 442 is an area for displaying a content positioned before the content being displayed in the content display area 441. The succeeding content display area 443 is an area for displaying a content positioned after the content being displayed in the content display area 441. That is, in the content display area 441, the preceding content display area 442, and the succeeding content display area 443, successive contents are displayed while being arranged side by side in accordance with a predetermined rule. Also, when no user operation is made for a predetermined period of time (for example, three seconds) in the state with the content playback screen 440 displayed on the display section 181, the content displayed in the succeeding content display area 443 is displayed in the content display area 441. That is, the contents displayed in the content display area 441, the preceding content display area 442, and the succeeding content display area 443 are displayed while being made to slide over one another.
When a user operation (for example, a mouse operation) is made in the state with the content playback screen 440 displayed on the display section 181, a content playback screen 450 shown in
On the content playback screen 450, display mode information 451, content information 452, an index screen transition button 453, a date and time cluster transition button 454, and a position cluster transition button 455 are displayed. That is, various kinds of operation assistance information are displayed on the content playback screen 440 shown in
The display mode information 451 is information indicating the current display mode. For example, when “FACE” is displayed as the display mode information 451 as shown in
The content information 452 is information related to the content being displayed in the content display area 441. In the content information 452, as information related to a content, for example, the time of generation of the content, the time range of the contents of a cluster to which the content belongs, and the like are displayed.
The index screen transition button 453 is a button that is depressed when transitioning to an index screen. For example, as shown in
The date and time cluster transition button 454 is a button that is depressed when transitioning to the content playback screen for date and time cluster. In the date and time cluster transition button 454, the time range of a date and time cluster to which the content displayed in the content display area 441 belongs is displayed inside a rectangular box indicated by broken lines. It should be noted that in the date and time cluster transition button 454, other pieces of information related to the date and time cluster to which the content displayed in the content display area 441 belongs may be displayed as well. Also, an example of display when the mouse is placed over the date and time cluster transition button 454 is shown in
The position cluster transition button 455 is a button that is depressed when transitioning to the content playback screen for position cluster. In the position cluster transition button 455, an icon representing a compass depicted in graphic form is displayed inside a rectangular box indicated by broken lines. It should be noted that in the position cluster transition button 455, information related to a position cluster to which the content displayed in the content display area 441 belongs may be displayed as well. It should be noted that an example of display when the mouse is placed over the position cluster transition button 455 is shown in
When a person's face is included in the content displayed in the content display area 441, a face box (for example, a rectangular box indicated by broken lines) is attached to the face and displayed. This face box is used as a button that is depressed when transitioning to the content playback screen for face cluster. For example, since the faces of four persons are included in the content displayed in the content display area 441 shown in
An example of display when the mouse is placed over the face portion included in the face box 458 on the content playback screen 450 shown in
Also, for example, as shown in
Also, for example, as shown in
Also, for example, as shown in
Each one of contents stored in the content storing section 210 belongs to any one cluster of each of position clusters, event clusters, and face clusters. That is, each one of contents belongs to any one cluster of positional clusters, belongs to any one cluster of event clusters, and belongs to any one cluster of face clusters. For this reason, with one of the contents stored in the content storing section 210 taken as a base point, display can be made to transition from a given cluster to another cluster.
For example, suppose a case in which a desired cluster map is selected on the index screen 420 shown in
Also, a case can be supposed where among contents belonging to a face cluster to which a desired face belongs, it is desired to see other contents generated at times close to the time of generation of a given content. In this case, by performing a user operation in the state in which the content playback screen 440 is displayed, as shown in
Also, a case can be supposed where among the contents belonging to a date and time cluster to which a content generated during a desired time period belongs, it is desired to see other contents generated at places close to the place of generation of a given content. In this case, by performing a user operation in the state in which the content playback screen 440 is displayed, as shown in
In this way, with one of the contents stored in the content storing section 210 taken as a base point, transition of display from a given cluster to another cluster can be easily performed, thereby making it possible to enhance interest during content playback. In addition, since content search can be performed quickly, and searching can be performed from a variety of perspectives, it is possible to enhance the fun of content playback.
The foregoing description is directed to the case in which cluster maps are displayed on an index screen or content playback screen. In this regard, a cluster map includes the generated positions of contents belonging to a cluster corresponding to the cluster map. Accordingly, on the cluster map to be displayed, generated-position marks (for example, inverted triangles) indicating the generated positions of contents belonging to a cluster corresponding to this cluster map may be displayed in a superimposed fashion. The generated-position marks may be superimposed when, for example, a cluster map is generated by the cluster information generating section 170, or may be superimposed when the display control section 180 displays a cluster map. When marks indicating the generated positions of contents are displayed while being superimposed on a cluster map in this way, in addition to an overview of the corresponding position cluster, the user can easily grasp the distribution of the locations of generation of contents included in the position cluster, and the like.
Also, for example, by using event IDs calculated at the time of event clustering, contents belonging to a position cluster can be classified by event within the position cluster to generate sub-clusters. For example, as for contents generated in an annual theme park event held every year on a huge site, the contents can be classified by year to generate sub-clusters. Accordingly, for example, each generated-position mark superimposed on a cluster map can be displayed in a different manner for each event ID (for example, in a different color). Also, a case can be supposed where there are many overlapping areas. In this case, for example, a circle corresponding to each sub-cluster may be displayed so as to be superimposed on a cluster map. Such a circle corresponding to a sub-cluster can be displayed in a different manner for each event ID, for example, like the generated-position mark. Thus, the distribution of the generated positions of contents generated in different years can be easily grasped.
Also, when displaying pieces of information related to the cluster being displayed, as sub-items related to the cluster map, for example, pieces of attribute information on a sub-cluster basis may be displayed. Such pieces of attribute information on a sub-cluster basis are, for example, the range of the times of generation of contents belonging to a sub-cluster (the start time and the end time), the number of the contents, and the center position and radius of a circle corresponding to the sub-cluster.
For example, as the pieces of information 418 related to the cluster map 417 displayed when the mouse is placed over the cluster map 417 by a user operation on the index screen 410 shown in
The list display area 481 is an area in which a listing of the cluster titles of position clusters is displayed. For example, by placing the mouse over a desired cluster title among the cluster titles displayed in the list display area 481, the desired cluster title can be selected. In
The map display area 482 is an area for displaying a cluster map corresponding to the cluster title being currently selected from among the listing of the position clusters displayed in the list display area 481. For example, a wide-area map including a cluster map corresponding to the cluster title “Downtown Walk” being selected is displayed, and within this wide-area map, a circle corresponding to the cluster map is displayed by a dotted circle 483. Also, on the wide-area map displayed in the map display area 482, generated-position marks having the shape of an inverted triangle are displayed in a superimposed manner. Each of the generated-position marks is displayed in a different manner for each event ID. For example, for every three event IDs, it is possible to use an inverted triangle with oblique lines drawn inside, an inverted triangle that is painted black inside, and an inverted triangle that is painted white inside. This makes it possible to easily grasp the distribution of generated positions of contents corresponding to different events. While this example is directed to the case in which a wide-area map including a cluster map corresponding to the cluster title being selected is displayed in the map display area 482, it is also possible to display a cluster map corresponding to the cluster title being selected. Also, it is also possible to display a wide-area map of a certain size (for example, a map of the entire Tokyo-prefecture), and display all the position clusters included within this wide-area map.
The sub-cluster attribute information display area 487 is an area in which, when a predetermined operation is made on the cluster title being displayed in the list display area 481, pieces of attribute information on a sub-cluster basis corresponding to the cluster title are displayed. For example, when a predetermined operation is made on the cluster title “Downtown Walk” being displayed in the list display area 481, pieces of attribute information on a sub-cluster basis corresponding to the cluster title “Downtown Walk” are displayed in the sub-cluster attribute information display area 487. As the pieces of attribute information on a sub-cluster basis, for example, the date and time of contents belonging to a sub-cluster, and the number of the contents are displayed. The example shown in
For example, when a desired cluster title is selected from among the cluster titles displayed in the list display area 481, contents belonging to a position cluster corresponding to the selected cluster title are sequentially displayed on a content playback screen.
First, it is judged whether or not an instructing operation for generating content information has been performed (step S901). If an instruction operation for generating content information has not been performed, monitoring is continuously performed until an instructing operation for generating content information is performed. If an instruction operation for generating content information has been performed (step S901), the attribute information acquiring section 110 acquires attribute information associated with contents stored in the content storing section 210 (step S902).
Subsequently, the tree generating section 120 performs a tree generation process of generating binary tree structured data on the basis of the acquired attribute information (positional information) (step S910). Subsequently, the event cluster generating section 130 generates binary tree structured data on the basis of the acquired attribute information (date and time information), and generates event clusters (clusters based on date and time information) on the basis of this binary tree structured data (step S903).
Subsequently, the hierarchy determining section 150 performs a hierarchy determination process of linking and correcting nodes in the binary tree structured data generated by the tree generating section (step S970). This hierarchy determination process will be described later in detail with reference to
Subsequently, the tree restructuring section 160 performs a tree restructuring process of restructuring the tree generated by the hierarchy determining section 150 to generate clusters (step S990). This tree restructuring process will be described later in detail with reference to
Subsequently, on the basis of information related to the clusters generated by the tree restructuring section 160, the cluster information generating section 170 generates individual pieces of attribute information related to the clusters (for example, cluster maps and cluster titles) (step S904). Subsequently, the cluster information generating section 170 records information (cluster information) related to the clusters generated by the tree restructuring section 160, and the individual pieces of attribute information related to these clusters, into the cluster information storing section 240 (step S905).
First, individual events (event IDs) of the event clusters generated by the event cluster generating section 130 are set (step S971). Subsequently, the hierarchy determining section 150 calculates the frequency distribution of individual contents with the cluster IDs generated by the event cluster generating section 130 taken as classes, with respect to each of nodes in the binary tree structured data generated by the tree generating section 120 (step S972).
Subsequently, the hierarchy determining section 150 calculates a linkage score S with respect to each of the nodes in the binary tree structured data generated by the tree generating section 120 (step S973). This linkage score S is calculated by using, for example, an M-th order vector generated with respect to each of two child nodes belonging to a target node (parent node) for which to calculate the linkage score S.
Subsequently, the hierarchy determining section 150 selects one node from among the nodes in the binary tree structured data generated by the tree generating section 120, and sets this node as a target node (step S974). For example, with each of the nodes in the binary tree structured data generated by the tree generating section 120 as a node to be selected, each node is sequentially selected, beginning with the nodes at upper levels.
Subsequently, the hierarchy determining section 150 compares the calculated linkage score S with the linkage threshold th3, and judges whether or not S<th3 (step S975). If S<th3 (step S975), the corresponding target node is excluded from the nodes to be selected (step S976), and the process returns to step S974. On the other hand, if S≧th3 (step S975), the hierarchy determining section 150 determines the corresponding target node as an extraction node, and excludes the target node and child nodes belonging to this target node from the nodes to be selected (step S977). That is, for the target node determined as an extraction node, since its child nodes are linked together, no comparison process is performed with respect to other lower-level nodes belonging to the extraction node.
Subsequently, it is judged whether or not another node to be selected exists among the nodes in the binary tree structured data generated by the tree generating section 120 (step S978). If there is another node to be selected (step S978), the process returns to step S974, in which one node is selected from the nodes to be selected, and set as a target node. On the other hand, if there is no another node to be selected (step S978), the hierarchy determining section 150 generates a tree with each of determined extraction nodes as a child element (child node) (step S979).
First, with the root node of the tree generated by the hierarchy determining section 150 as a target node, the tree restructuring section 160 judges whether or not the number of child nodes belonging to this target node is equal to or smaller than 1 (step S991). If the number of child nodes belonging to the target node is equal to or smaller than 1 (step S991), the operation of the tree restructuring process is ended. On the other hand, if the number of child nodes belonging to the target node is equal to or larger than 2 (step S991), the tree restructuring section 160 extracts a pair with the smallest distance from among the child nodes belonging to the target node (step S992).
Subsequently, it is judged whether or not the extracted pair satisfies a specified constraint (step S993). If the extracted pair does not satisfy the specified constraint, the tree restructuring section 160 merges the pair into a single node (step S994). On the other hand, if the extracted pair satisfies the specified constraint (step S993), the operation of the tree restructuring process is ended. While this example is directed to a tree restructuring process with respect to a one-level tree, the same can be applied to the case of performing a tree restructuring process with respect to a multi-level tree (for example, a tree with a binary tree structure). When performing a tree restructuring process with respect to a multi-level tree, if it is determined that the extracted pair satisfies a specified constraint (step S993), each of the nodes of the extracted pair is set as a new target node. Then, with respect to the newly set target node, the above-mentioned tree restructuring process (steps S991 to S994) is repeated.
First, it is judged whether or not a content playback instructing operation for instructing content playback has been performed (step S1001). If a content playback instructing operation has not been performed, monitoring is continuously performed until a content playback instructing operation is performed. If a content playback instructing operation has been performed (step S1001), an index screen that displays a listing of cluster maps is displayed (step S1002). Subsequently, it is judged whether or not a switching operation of the index screen has been performed (step S1003). If a switching operation of the index screen has been performed (step S1003), the index screen is switched in accordance with the switching operation (step S1004), and the process returns to step S1003.
If a switching operation of the index screen has not been performed (step S1003), it is judged whether or not a scroll operation has been performed (step S1005). If a scroll operation has been performed (step S1005), display of the index screen is switched in accordance with the scroll operation (step S1006). If a scroll operation has not been performed (step S1005), the process proceeds to step S1007.
If display of the index screen has been switched in accordance with the scroll operation (step S1006), it is judge whether or not a selecting operation (for example, a mouse-over) of selecting any one of index images has been performed (step S1007). If the selecting operation has been performed (step S1007), pieces of information related to a cluster corresponding to the index image on which the selecting operation has been performed are displayed (step S1008). If the selecting operation has not been performed (step S1007), the process returns to step S1003.
Subsequently, it is judged whether or not a determining operation has been performed on the index image on which the selecting operation has been performed (step S1009). If the determining operation has been performed (step S1009), a content playback screen display process is performed (step S1020). This content playback screen display process will be described later in detail with reference to
Subsequently, after the content playback screen display process is performed (step S1020), it is judged whether or not a content playback ending operation for instructing the end of content playback has been performed (step S1010). If the content playback ending operation has not been performed, the process returns to step S1003. On the other hand, if the content playback ending operation has been performed (step S1010), the operation of the content playback process is ended.
First, it is judged whether or not an operational input (for example, a mouse operation) has been made (step S1021). If an operational input has been made (step S1021), face boxes are attached to faces included in the content displayed on the content playback screen (step S1022), and content information and operation assistance information are displayed (step S1023). It should be noted that no face box is displayed if there is no face included in the content displayed on the content playback screen.
Subsequently, it is determined whether or not a display switching operation to an index screen has been performed (step S1024). If the display switching operation to an index screen has been performed (step S1024), the operation of the content playback screen display process is ended. If the display switching operation to an index screen has not been performed (step S1024), the process proceeds to step S1031.
Also, if an operational input has not been made (step S1021), it is judged whether or not content information and operation assistance information are displayed (step S1025). If content information and operation assistance information are displayed (step S1025), it is judged whether or not no operational input has been made within a predetermined period of time (step S1026), and if an operational input has been made within a predetermined period of time, the process proceeds to step S1031. On the other hand, if no operational input has been made within a predetermined period of time (step S1026), the displayed face boxes are erased (step S1027), the displayed content information and operation assistance information are erased (step S1028), and the process returns to step S1021.
Also, if content information and operation assistance information are not displayed (step S1025), it is judged whether or not no operational input has been made within a predetermined period of time (step S1029). If no operational input has been made within a predetermined period of time (step S1029), the next content is displayed (step S1030). That is, a slide display is performed. On the other hand, if an operational input has been made within a predetermined period of time (step S1029), the process returns to step S1021.
Subsequently, it is judged whether or not a content playback screen for event cluster is displayed (step S1031), and if the content playback screen of event cluster is not displayed, event icons are displayed (step S1032). Also, it is judged whether or not a content playback screen for position cluster is displayed (step S1033), and if the content playback screen for position cluster is not displayed, position icons are displayed (step S1034).
Subsequently, it is judged whether or not a selecting operation (for example, a mouse-over) on a face has been performed (step S1035). If the selecting operation on a face has not been performed, the process proceeds to step S1040. On the other hand, if the selecting operation on a face has been performed (step S1035), information related to a face cluster related to the face on which the selecting operation has been performed (for example, a listing of the thumbnail images of contents belonging to the face cluster) is displayed (step S1036). Subsequently, the image of the vicinity of the face on which the selecting operation has been performed is displayed in magnified form (step S1037). Subsequently, it is judged whether or not a determining operation (for example, a mouse click operation) on the face has been performed (step S1038). If the determining operation has not been performed, the process proceeds to step S1040. On the other hand, if the determining operation on the face has been performed (step S1038), a content playback screen for the face cluster to which the face on which the determining operation has been performed belongs is displayed (step S1039).
Subsequently, it is judged whether or not a selecting operation (for example, a mouse-over) on an event icon has been performed (step S1040). If the selecting operation on an event icon has not been performed, the process proceeds to step S1045. On the other hand, if the selecting operation on an event icon has been performed (step S1040), information related to an event cluster to which the content being currently displayed belongs is displayed (step S1041). As this information related to the event cluster, for example, a listing of the thumbnail images of contents belonging to the event cluster is displayed. Subsequently, the manner of display of the event icon is changed (step S1042). For example, information related to the event cluster to which the content being currently displayed belongs (for example, the representative image and date and time information of the event cluster) is displayed. Subsequently, it is judged whether or not a determining operation (for example, a mouse click operation) on the event icon has been performed (step S1043). If the determining operation has not been performed, the process proceeds to step S1045. On the other hand, if the determining operation on the event icon has been performed (step S1043), a content playback screen for the event cluster to which the content being currently displayed belongs is displayed (step S1044).
Subsequently, it is judged whether or not a selecting operation (for example, a mouse-over) on a position icon has been performed (step S1045). If the selecting operation on a position icon has not been performed, the process returns to step S1021. On the other hand, if the selecting operation on a position icon has been performed (step S1045), information related to a position cluster to which the content being currently displayed belongs (for example, a listing of the thumbnail images of contents belonging to the position cluster) is displayed (step S1046). Subsequently, the manner of display of the position icon is changed (step S1047). For example, information related to the position cluster to which the content being currently displayed belongs (for example, the cluster map of the position cluster) is displayed. Subsequently, it is judged whether or not a determining operation (for example, a mouse click operation) on the position icon has been performed (step S1048). If the determining operation has not been performed, the process returns to step S1021. On the other hand, if the determining operation on the position icon has been performed (step S1048), a content playback screen for the position cluster to which the content being currently displayed belongs is displayed (step S1049), and the process returns to step S1021.
The first embodiment of the present invention is directed to the case of displaying a listing of cluster maps or the case of displaying cluster maps together with contents. In this regard, for example, in the case when a listing of cluster maps having the same size is displayed in a matrix fashion, there is a fear that it may not be possible to intuitively grasp the geographical correspondence between the cluster maps. Also, for example, in the case when cluster maps are displayed so as to be placed at their corresponding positions on a map, there is a fear that not all the cluster maps can be displayed unless a map of an area corresponding to the cluster maps is displayed. Accordingly, for example, it is conceivable to display a world map so that it is possible to get a bird's eye view of the entire world. Although all cluster maps can be displayed when a world map is displayed in this way, in a region where cluster maps are concentrated, there is a fear that the cluster maps overlap each other, and thus it is not possible to display some cluster maps. Accordingly, in a second embodiment of the present invention, by taking the geographical correspondence between cluster maps into consideration, the cluster maps are displayed while being placed in such a way that the geographical correspondence between the cluster maps can be grasped intuitively.
The background map generating section 610 generates a background map (cluster wide-area map) corresponding to each cluster on the basis of cluster information stored in the cluster information storing section 240, and stores the generated background map into the background map information storing section 620 in association with each cluster. Specifically, on the basis of the cluster information stored in the cluster information storing section 240, the background map generating section 610 acquires map information from the map information storing section 220, and generates a background map corresponding to the cluster information on the basis of this acquired map information. It should be noted that the method of generating a background map will be described later in detail with reference to
The background map information storing section 620 stores the background map generated by the background map generating section 610 in associated with each cluster, and supplies the stored background map to the display control section 670.
The coordinate calculating section 630 calculates the coordinates of the center positions of cluster maps on a display screen in accordance with an alteration input accepted by an operation accepting section 690, on the basis of cluster information stored in the cluster information storing section 240. Then, the coordinate calculating section 630 outputs the calculated coordinates to the non-linear zoom processing section 640.
The non-linear zoom processing section 640 performs coordinate transformation on the coordinates outputted from the coordinate calculating section 630 (the coordinates of the center positions of cluster maps on the display screen) by a non-linear zoom process, and outputs the transformed coordinates to the relocation processing section 650 or the display control section 670. This non-linear zoom process is a process which performs coordinate transformation so that the coordinates of the center positions of cluster maps associated with a highly concentrated region are scattered apart from each other. This non-linear zoom process will be described later in detail with reference to
The relocation processing section 650 performs coordinate transformation by a force-directed relocation process on the coordinates outputted from the non-linear zoom processing section 640, on the basis of the distances between individual coordinates, the size of the display screen on the display section 680, and the number of cluster maps to be displayed. Then, the relocation processing section 650 outputs the transformed coordinates to the magnification/shrinkage processing section 660. This force-directed relocation process will be described later in detail with reference to
The magnification/shrinkage processing section 660 performs coordinate transformation by magnification or shrinking, on the coordinates outputted from the relocation processing section 650, on the basis of the size of an area subject to coordinate transformation by the relocation process, and the size of the display screen on the display section 680. Then, the magnification/shrinkage processing section 660 outputs the transformed coordinates to the display control section 670. This magnification/shrinkage process will be described later in detail with reference to
Each of the coordinate transformations by the non-linear zoom processing section 640, the relocation processing section 650, and the magnification/shrinkage processing section 660 is a coordinate transformation with respect to the center positions of cluster maps. Therefore, in these coordinate transformations, the cluster maps themselves do not undergo deformation (for example, magnification/shrinkage of their circular shape, or deformation from a circle to an ellipse).
The display control section 670 displays various kinds of image on the display section 680 in accordance with an operational input accepted by the operation accepting section 690. For example, in accordance with an operational input accepted by the operation accepting section 690, the display control section 670 displays on the display section 680 cluster information (for example, a listing of cluster maps) stored in the cluster information storing section 240. When a predetermined user operation is performed in the state with a listing of cluster maps displayed on the display section 680, the display control section 670 displays a background map (cluster wide-area map) stored in the background map information storing section 620 on the display section 680. Also, in accordance with an operational input accepted by the operation accepting section 690, the display control section 670 displays contents stored in the content storing section 210 on the display section 680. These examples of display will be described later in detail with reference to
The display section 680 is a display section that displays various kinds of image on the basis of control by the display control section 670.
The operation accepting section 690 is an operation accepting section that accepts an operational input from the user, and outputs information on an operation corresponding to the accepted operational input to the coordinate calculating section 630 and the display control section 670.
[Example of Display in which Cluster Maps are Superimposed on Generated Positions of Contents]
In the case when the scale of the background map is set relatively large in this way, it is supposed that the cluster maps overlap each other, making it difficult to grasp individual cluster maps in regions where the cluster maps are densely concentrated. Accordingly, for example, it is also conceivable to display individual cluster maps in a smaller size. However, it is necessary for cluster maps to be somewhat large for the user to recognize these cluster maps. That is, if cluster maps are reduced in size, it is supposed that the cluster maps become hard to see, making it difficult to grasp the details of the cluster maps.
Accordingly, the second embodiment of the present invention is directed to optimal placement of individual cluster maps on a map which makes it possible to avoid overlapping of cluster maps in regions where the cluster maps are densely concentrated, without changing the size of the cluster maps. When placing the cluster maps in this way, the placement is performed in accordance with the following placement criteria (1) to (3).
(1) For cluster maps overlapping each other on the background map, their center positions are to be spaced apart by some interval.
(2) The positional relationship between cluster maps is to be maintained. This positional relationship includes, for example, the distances between the cluster maps, and their orientations.
(3) When cluster maps overlap each other, the order (precedence) in which individual cluster maps are overlaid at the upper side are determined in accordance with a predetermined condition.
As the predetermined condition mentioned in (3) above, for example, it is possible to adopt such a condition that the larger the number of contents belonging to a cluster, the higher the precedence. That is, the cluster map of the cluster to which the largest number of contents belong is assigned the first precedence. Also, as the predetermined condition, for example, it is possible to use a condition such as the relative size of a cluster, the relative number of events (the number of times of visit) corresponding to contents belonging to a cluster, or the frequency of the number of times a cluster is browsed. Such a predetermined condition can be set by a user operation. Thus, cluster maps with higher precedence can be overlaid at the upper side, and it is possible to prevent part of the cluster maps with higher precedence from being hidden, and quickly grasp their details.
In this regard, a cluster map is a map related to a location where contents belonging to the corresponding cluster are generated. Therefore, even when latitudes and longitudes on a background map do not completely match latitudes and longitudes on cluster maps, it is possible to grasp the geographical relationship between individual cluster maps. As described above, although it is not necessary to match latitudes and longitudes on a background map with latitudes and longitudes on cluster maps, if the cluster maps are spaced too far apart, it may become no longer possible to recognize where on the background map the cluster maps correspond to in the first place. Accordingly, it is important to minimize overlaps while still allowing the geographical correspondence to be recognized.
Here, the second embodiment of the present invention is directed to a case in which in order to satisfy the criteria (1) and (2) mentioned above, on a map with a scale specified by a user operation, the coordinates of the center positions of cluster maps associated with a highly concentrated region are transformed. For example, in the related art, there exists a fisheye coordinate transformation method for displaying coordinates within a predetermined area around a focus area in magnified view in the manner of a fisheye lens. For example, a fisheye coordinate transformation method (“Graphical Fisheye Views of Graphs”, Manojit Sarkar and Marc H. Brown, Mar. 17, 1992) has been proposed. The second embodiment of the present invention is directed to a case in which this fisheye coordinate transformation method is applied to a scattering technique for a concentrated region. Specifically, a description will be given of a case in which the placement positions of individual cluster maps on a map which satisfy the criteria (1) and (2) mentioned above are determined by a non-linear zoom process to which the fisheye coordinate transformation method is applied.
For example, suppose a case in which when marks (for example, cluster maps) having a predetermined surface area are displayed in an overlaid manner within a background image (for example, a background map), the fisheye coordinate transformation method alone is applied independently with respect to each such mark. In this case, the background map covering a predetermined range around a focus area of the mark (for example, the center position of the mark) is magnified. However, since the entire mark also undergoes coordinate transformation simultaneously with this magnification, areas close to the focus area of the mark are magnified, whereas areas far from the focus area are shrunk. In this way, when the fisheye coordinate transformation method alone is applied independently, the background image covering a predetermined range around the focus area is magnified, and also the entire mark undergoes coordinate transformation, with the result that the mark itself is distorted. In contrast, in the second embodiment of the present invention, coordinate transformation is performed only with respect to the focus area of a mark (for example, the center position of the mark), thereby making it possible to appropriately scatter individual marks in accordance with distances from the focus area, without deforming (magnifying/shrinking) the background image and the marks.
This fisheye coordinate transformation method is a coordinate transformation method which performs coordinate transformation in such a way that the rate of distortion of coordinates becomes greater with increasing proximity to the focus. Also, the coordinates of the cluster map 764 itself do not change because the center position of the cluster map 764 is taken as the focus. In the following, a description will be given in detail of a non-linear zoom process which performs coordinate transformation through application of this fisheye coordinate transformation method.
Here, the transformation target area 720 is a square whose center is located at the focus and which has a side equal to 2α times the radius r of each cluster map. For example, α can be set as α=3. Also, let a parameter d be a parameter that determines the extent to which the transformation target area 720 is stretched. For example, the larger the value of the parameter d, the greater the degree of stretching. For example, the parameter d can be set as d=1.5.
Here, let the vector from the focus P1 to a point as a transformation target (transformation target point) Ei(xEi, yEi) be DNi(xDNi, yDNi). Also, let the vector determined in accordance with the position of the transformation target point Ei(xEi, yEi) (vector from the focus P1 to the boundary of the transformation target area 720) be DMi(xDMi, yDMi). Here, in
Here, g(x)=(d+1)x/(dx+1). In this equation, x denotes a variable. In this case, coordinates PE(xPE, yPE) obtained after applying coordinate transformation using the fisheye coordinate transformation method to the transformation target point Ei with respect to the focus P1 can be found by equation (11) below.
PE(xPE,yPE)=(g(xDNi/xDMi)xDMi+xP1,g(yDNi/yDMi)yDMi+yP1) (11)
In this way, by using the fisheye coordinate transformation method described above, the coordinates of the points arranged in a grid as shown in
In the case where a plurality of cluster maps exist in the transformation target area as shown in
For this reason, in the second embodiment of the present invention, in the case when the center coordinates of a given cluster map are taken as a focus, the coordinates obtained after coordinate transformations of the other cluster maps that exist in the transformation target area with respect to this focus are calculated for each of cluster maps. Then, by using the coordinates calculated for each of cluster maps, the coordinates of each individual cluster map are calculated anew.
Specifically, the non-linear zoom processing section 640 selects a cluster map i (0≦i≦N−1: N is the number of cluster maps). Then, with the center coordinates of the cluster map i taken as a focus, the non-linear zoom processing section 640 calculates coordinates PEij with respect to another cluster map j (i≠j, and 0≦j≦N−1: N is the number of cluster maps) by using equation (11). Here, as for the coordinates PEij, only the coordinates PEij for another cluster map j that exists in the transformation target area with respect to the focus (the center coordinates of the cluster map i) are calculated. That is, the coordinates PEij for the cluster map j that does not exist within the transformation target area are not calculated. In this way, the coordinates PEij are sequentially calculated by using equation (11) with respect to N cluster maps.
Subsequently, when calculation of the coordinates PEij with respect to the N cluster maps is finished, the non-linear zoom processing section 640 calculates the mean of the individual coordinates PEij, as transformed coordinates with respect to the cluster map i. Specifically, the non-linear zoom processing section 640 calculates the mean value of the individual coordinates PEij (i≠j, and 0≦j≦N−1: N is the number of cluster maps). Then, the non-linear zoom processing section 640 sets the calculated mean value as the transformed coordinates of the cluster map i.
For example, in the example shown in
Subsequently, by using the respective coordinates PEij calculated with respect to the four cluster maps, the non-linear zoom processing section 640 calculates the mean of transformed coordinates with respect to the cluster map i (i=1 to 3). For example, in the case of the cluster map 710 (i=0), the non-linear zoom processing section 640 calculates the mean value of the coordinates PE10 and PE20. That is, the mean value TM1 of the coordinates PE10 and PE20 is calculated by the following equation.
TM1=(PE10+PE20)/2
As described above, transformed coordinates PEij are calculated only for cluster maps whose center coordinates exist within the transformation target area with respect to a cluster map selected as a focus. Therefore, the denominator on the right side of this equation is the number of cluster maps for which the transformed coordinates PEij have been calculated. That is, coordinates PE30 are not calculated with respect to the cluster map 710 (i=0). Therefore, when calculating the mean value TM1 of the coordinates PE10 and PE20, not “3” but “2” is used as the denominator on the right side of the corresponding equation. Then, the non-linear zoom processing section 640 sets the calculated mean value as the transformed center coordinates of the cluster map 710.
In this way, cluster maps can be placed on the basis of the calculated center coordinates of the cluster maps.
In the case when, for example, as shown in
The map view screen 780 includes a scale-changing bar 781. By operating the scale-changing bar 781, the user can change the scale of a map displayed on the map view screen 780. When the scale of a map is changed in this way, every time the scale of a map is changed, the above-described non-linear zoom process is performed, and placement of map clusters is changed.
Also, when a desired cluster map is selected by a user operation from among cluster maps displayed on the map view screen 780, a listing of contents belonging to the selected cluster map is displayed in a content listing display area 782.
Also, in the cluster map groups 771 and 772, the display control section 670 overlays cluster maps with higher precedence at the upper side for display, on the basis of pieces of information stored in the content storing section 210 or the cluster information storing section 240.
By placing cluster maps on the map in this way for display, overlapping cluster maps are spread out in accordance with a predetermined condition. Therefore, the geographical correspondence between contents can be intuitively grasped, and a listing screen that is easy for the user to view can be provided.
Also, the display control section 670 may display a background image while changing its display state on the basis of the straight lines corresponding to coordinates shown in
Next, a description will be given of a case in which a listing of cluster maps is displayed so that the geographical correspondence between the cluster maps can be intuitively grasped.
In this force-directed relocation process, processing is performed to achieve the criteria (4) to (6) below.
(4) The positional relationship between cluster maps is to be maintained.
(5) Cluster maps are not to overlap each other.
(6) There is to be no unnecessary gap between cluster maps.
The relocation processing section 650 finds a repulsive force vector Fij exerted on a cluster map i (0≦i≦N−1: N is the number of cluster maps) from another cluster map j (i#j, and 0≦j≦N−1: N is the number of cluster maps) by equation (12) below.
F
ij
=K×K/D
ij (12)
Here, Dij is a vector from the center position of the cluster map j to the center position of the cluster map i. Also, K is a parameter identified by the size of the display screen and the number of cluster maps, and can be found by equation (13) below.
K=√/(DW1×DH1/N) (13)
Here, DW1 is the length in the left-right direction of the display screen of the display section 680 (the width of the display screen), and DH1 is the length in the top-bottom direction of the display screen of the display section 680 (the height of the display screen). Also, N is the number of cluster maps. It should be noted that the width and height of the display screen correspond to the number of pixels in the display screen. When the display area of cluster maps on the display screen is to be magnified or shrunk, the values of DW1 and DH1 are changed as appropriate in accordance with the size of the display area.
Then, by using equation (12), the relocation processing section 650 calculates the repulsive force vectors Fij with respect to the cluster map i, for all the other cluster maps. That is, repulsive force vectors Fil to FiN (where i≠1, N) with respect to the cluster map i are calculated.
Then, after finishing calculation of the repulsive force vectors Fi1 to FiN with respect to all cluster maps, the relocation processing section 650 calculates the mean of the repulsive force vectors Fij with respect to the cluster map i (repulsive force vector Fi). The mean of the repulsive force vectors Fij (repulsive force vector Fi) is a value indicating a repulsive force supposed to be exerted on the cluster map i from each of the other cluster maps.
Subsequently, the relocation processing section 650 performs coordinate transformation on the cluster map i by using the repulsive force vector Fi. Specifically, the absolute value |Fi| of the repulsive force vector Fi is compared with the parameter K, and coordinate transformation is performed on the cluster map i on the basis of this comparison result. For example, if |Fi| is equal to or smaller than the parameter K (that is, if |Fi|≦K), coordinate transformation is performed so as to move the coordinates of the center position of the cluster map i by the repulsive force vector Fi. On the other hand, if |Fi| is larger than the parameter K (that is, if |Fi|>K), coordinate transformation is performed so as to move the coordinates of the center position of the cluster map i by the distance of K in the direction of the repulsive force vector Fi. That is, coordinate transformation is performed so as to move the coordinates by a vector K (Fi/|Fi|). Here, the parameter K is scalar. Therefore, by multiplying the unit vector of the repulsive force vector Fi by K so that the direction becomes the same as the repulsive force vector Fi, the amount of movement (vector K(Fi/|Fi|) is determined.
In this way, the relocation processing section 650 performs a coordinate transformation process using a repulsive force vector with respect to each of cluster maps. That is, until coordinate transformation using a repulsive force vector is performed with respect to all of cluster maps, the relocation processing section 650 sequentially selects a cluster map on which a coordinate transformation process has not been performed, and repetitively performs the above-described coordinate transformation process.
Then, if coordinate transformation using a repulsive force vector has been performed with respect to all of cluster maps, it is judged whether or not the repulsive force vectors |Fi| (0≦i≦N−1: N is the number of cluster maps) calculated with respect to individual cluster maps are less than a threshold th11. If all the repulsive force vectors |Fi| are less than the threshold th11, the coordinate transformation process is ended.
If any one of the repulsive force vectors |Fi| is equal to or greater than the threshold th11, the coordinate transformation process is repeated until all the repulsive force vectors |Fi| become less than the threshold th11.
Here, for example, if the threshold th11 is set to a relatively large value (for example, th11>1), the iteration count becomes small, and thus the computation time becomes short. Also, since the relocation process is discontinued midway, the probability of overlapping of cluster maps becomes higher.
On the other hand, for example, if the threshold th11 is set to a relatively small value (for example, th11<1), the iteration count becomes large, and thus the computation time becomes long. Also, due to the larger number of iterations, the probability of overlapping of cluster maps becomes lower.
For example, the threshold th11 can be set as th11=1. If the threshold th11 is set as th11=1 in this way, a plurality of cluster maps can be displayed with substantially no overlap. Also, for example, if the threshold th11 is set as th11=0, by appropriately determining the size of each cluster map with respect to the display area on the display screen, a plurality of cluster maps can be displayed with no overlap without fail. In this regard, for example, since cluster maps have a circular shape, a gap occurs between the cluster maps. Also, in this example, relocation is performed so as to maintain the positional relationship between cluster maps. Thus, it is necessary to make the total surface area occupied by the cluster maps to be displayed smaller than the display area. For this reason, it is necessary to set an appropriate cluster map size. It should be noted that a description regarding a cluster map size will be described later in detail with reference to
It should be noted that while the threshold th11 is used in this example as the criterion for judging whether or not to repeat a coordinate transformation process, this may be judged on the basis of whether or not another criterion is satisfied. For example, whether or not “|Fi|<th11” and “iteration count <upper limit count” are satisfied with respect to all repulsive force vectors Fi may serve as the criterion for judging whether or not to repeat a coordinate transformation process. This iteration count is a count indicating how many times a loop based on this conditional expression has been passed.
Now, a description will be given of a case in which, as shown in
The relocation processing section 650 calculates repulsive force vectors F01, F02, and F03 with respect to the cluster map 730 by using equation (12). It should be noted that the repulsive force vector F01 is a repulsive force vector on the cluster map 730 with respect to the cluster map 731. Also, the repulsive force vector F02 is a repulsive force vector on the cluster map 730 with respect to the cluster map 732, and the repulsive force vector F03 is a repulsive force vector on the cluster map 730 with respect to the cluster map 733.
Then, upon finishing calculation of the repulsive force vectors F01, F02, and F03 with respect to the cluster map 730, the relocation processing section 650 calculates the mean (repulsive force vector F0) of the repulsive force vectors F01, F02, and F03.
Subsequently, the relocation processing section 650 performs coordinate transformation on the cluster map 730 by using the repulsive force vector F0. Specifically, if |F0| is equal to or smaller than the parameter K, coordinate transformation is performed so as to move the coordinates of the center position of the cluster map 730 by the repulsive force vector F0. On the other hand, if |F0| is larger than the parameter K, coordinate transformation is performed so as to move the coordinates of the center position of the cluster map 730 by the distance of K in the direction of the repulsive force vector F0.
Thereafter, likewise, the coordinate transformation process using a repulsive force vector is repetitively performed for the cluster maps 731 to 733. For example, let the repulsive force vector calculated with respect to the cluster map 731 be a repulsive force vector F1, the repulsive force vector calculated with respect to the cluster map 733 be a repulsive force vector F2, and the repulsive force vector calculated with respect to the cluster map 733 be a repulsive force vector F3.
Subsequently, when coordinate transformation using a repulsive force vector has been performed with respect to all of the cluster maps 730 to 733, it is judged whether or not all of the repulsive force vectors calculated with respect to the respective cluster maps 730 to 733 are smaller than the threshold th11. That is, it is judged whether or not all of |F0|, |F1|, |F2|, and |F3| are smaller than the threshold th11. If all of |F0|, |F1|, |F2|, and |F3| are smaller than the threshold th11, the coordinate transformation process is ended.
If any one of |F0|, |F1|, |F2|, and |F3| is equal to or larger than the threshold th11, the coordinate transformation process is repeated until all of |F0|, |F1|, |F2|, and |F3| become smaller than the threshold th11.
In this magnification/shrinkage process, processing is performed to achieve criteria (7) and (8) below.
(7) All cluster maps are to fit within a single screen.
(8) There is to be no unnecessary gap between cluster maps.
In
Here, if relocation is performed with respect to the cluster maps (#1 to #22) by a force-directed relocation process as shown in
Also, for example, with respect to the center coordinates (x, y) of all cluster maps, the coordinates of the respective cluster maps after correction can be found by using xy coordinates with the respective minimum values x0 and y0 of x and y coordinates taken as an origin. For example, in
CC1(xCC1,yCC1)=((x−x0)×(DW1−R)/(CW1−R)+R/2,(y−y0)×(DH1−R)/(CH1−R)+R/2) (14)
Here, the transformation performed using equation (14) involves transformation of only the center coordinates CC1(xCC1, yCC1) of each cluster map, and does not change the size of each cluster map.
As shown in
Here, if the number of cluster maps to be displayed is large, cases can be supposed where not all the cluster maps fit within a single screen. For example, letting the radius of each cluster map be R, and the number of cluster maps to be displayed be N, not all the cluster maps fit within a single screen if equation (15) below does not hold.
DW1×DH1>N×π×R2 (15)
Here, the left side of equation (15) represents the surface area of the display screen 751, and the right side of equation (15) represents the sum of the surface areas of cluster maps to be displayed.
It should be noted that considering the facts that relocation is determined by taking the positional correspondence into account to some extent in the force-directed relocation process, and that gaps occur between cluster maps having a circular shape, it is necessary to set the value of the right side of equation (15) to a further smaller value.
In the case when the value of the right side of equation (15) is set to a further smaller value in this way, if equation (15) does not hold, it is supposed that not all the cluster maps fit within a single screen. In this case, for example, to ensure that the cluster maps can fit within a single screen, the cluster maps may be shrunk, and then the above-mentioned three processes (the non-linear zoom process, the force-directed relocation process, and the magnification/shrinkage process) may be performed anew. In this case, it is preferable to set the shrinkage ratio for cluster maps appropriately by taking the size of the display screen 751 and the number of cluster maps into account.
In this regard, if cluster maps are excessively shrunk, it is supposed that the cluster maps displayed on the display screen 751 become hard to view. For this reason, if the number of cluster maps is relatively large (for example, if the number of cluster maps exceeds a threshold th12), the cluster maps may be placed so as to be presented across a plurality of screens to prevent the cluster maps from becoming extremely small. In this case, for example, cluster maps included in the display screens can be displayed by a user's scroll operation.
When displaying a listing of cluster maps coordinate-transformed through the three processes (the non-linear zoom process, the force-directed relocation process, and the magnification/shrinkage process) described above, for example, a wide-area map corresponding to a cluster map that has been selected can be displayed as a background image. Thus, the location where contents constituting each cluster are generated can be grasped more easily. As this wide-area map, for example, a map with a diameter that is 10 times the diameter of the corresponding cluster map can be used. However, it is supposed that depending on the size of the cluster map selected, this size may not be an appropriate size. Accordingly, in the following, a description will be given of a case in which a wide-area map (cluster wide-area map) corresponding to such maps is generated.
First, the background map generating section 610 acquires map data from the map information storing section 220, on the basis of cluster information stored in the cluster information storing section 240. Then, on the basis of the acquired map data, the background map generating section 610 generates a background map (cluster wide-area map) corresponding to the cluster information.
For example, as shown in
Here, as described above, the scale of each cluster map varies with the generated position of each content constituting the corresponding cluster. That is, the size of a location corresponding to a cluster map varies from cluster to cluster. For example, when the diameter of a cluster map is relatively large, this means that a map covering a relatively wide area is included, so the general outline of the cluster map is easy to grasp. Therefore, it is considered that when the diameter of a cluster map is relatively large, it is not necessary for the background map corresponding to the cluster map to cover a relatively wide area.
In contrast, for example, when the diameter of a cluster map is relatively small, this means that only a map covering a relatively narrow area is included, so it is supposed that the general outline of the cluster map is hard to grasp. For this reason, when the diameter of a cluster map is relatively small, it is preferable that the background map corresponding to the cluster map be relatively large with respect to the cluster map.
Accordingly, for example, the size of an extraction area may be changed in accordance with the diameter of a cluster map. In the following, a description will be given of a case in which the size of an extraction area is changed in accordance with the diameter of a cluster map.
In the graph shown in
Here, for example, let S0 be the minimum value of the diameter of a cluster map generated by the cluster information generating section 170 (shown in
w=a(s−2π)2+2π (16)
Here, a=(R0S0−2π/(S0−2π)2. Also, equation (16) corresponds to a curve 805 of the graph shown in
In this way, the minimum value S0 of the cluster map generated by the cluster information generating section 170 is set in advance, and the minimum value R0S0 of the diameter of the cluster wide-area map corresponding to this minimum value S0 is set in advance. Then, as the diameter size of the cluster map becomes larger, the magnification ratio per unit of the diameter of the cluster wide-area map with respect to the diameter of the cluster map is decreased. As a result, a more appropriate cluster wide-area map can be generated.
A scatter view screen 820 shown in
When a desired cluster map is selected by a user operation from among the listing of cluster maps displayed on the scatter view screen 820, a background map (cluster wide-area map) corresponding to the selected cluster map is displayed in the background area.
Also, a listing of contents belonging to the selected cluster map is displayed in a content listing display area 823.
In this way, the scatter view screen can provide a display of a listing of contents which satisfies the criteria (4) to (8) mentioned above. This allows a display of a listing of cluster maps to be viewed by the user while taking the geographical positional relationship into consideration. Since a cluster map is a map obtained by extracting only an area corresponding to a cluster, cases can be supposed where when there are no characteristic place names, geographical features, or the like within the cluster map. Accordingly, by displaying a background map (cluster wide-area map) corresponding to a cluster map that has been selected, it becomes easier to grasp which location is indicated by the cluster.
[Example of Display when Plural Cluster Maps are Selected]
The above description is directed to the case in which one cluster map is selected. Here, suppose a case in which a plurality of cluster maps can be selected simultaneously with a single operation (for example, a multi-tap). For example, when two cluster maps are selected by using two fingers, it is supposed that the respective background maps (cluster wide-area maps) corresponding to the selected cluster maps are different from each other. In this case, a case can be also supposed where one of the background maps does not include the position corresponding to the other selected cluster map. Accordingly, when a plurality of cluster maps are selected, it is preferable to display background maps corresponding to the respective cluster maps selected. Also, when a plurality of cluster maps are selected in this way, it is supposed that the selected cluster maps have different sizes. Accordingly, when a plurality of cluster maps are selected, it is preferable to display the cluster maps at the same scale (or at such scales that allow their relative size comparison) so that the sizes of the selected cluster maps can be grasped intuitively.
Also, for example, the two selected cluster maps (the cluster map 831 and the cluster map 832) are displayed at such scales that allow their relative size comparison. For example, with the cluster map 832 of the smaller size taken as a reference, the other cluster map 831 is displayed in magnified form.
For example, when an operational input for activating a content playback application is accepted by the operation accepting section 690 in the information processing apparatus 600, the display control section 670 displays a map view screen 811 on the display section 680. Also, when the operational input for activating a content playback application is accepted, the coordinate calculating section 630 calculates the coordinates of the center position of each cluster map on the display screen, on the basis of cluster information stored in the cluster information storing section 240.
The map view screen 811 is a display screen that displays cluster maps in an overlaid manner on a map, and corresponds to the map view screen 780 shown in
Such an operational input can be made by using, for example, an operating member such as a mouse including two left and right buttons, and a wheel placed between these two buttons. In the following, a description will be given of a case in which a mouse is used as the operating member. For example, a cursor (mouse pointer) that moves with each mouse movement is displayed. The cursor is a mouse pointer used on the screen displayed on the display section 680 to point to an object of instruction or operation.
For example, by operating the mouse's wheel up and down, the scale of a background map can be changed. Also, by a drag operation on a background map, the latitudes and longitudes of the background map can be changed. This drag operation is, for example, an operation of moving a target image by moving the mouse while keeping on pressing the left-side button of the mouse.
When a changing operation for changing the scale or latitudes and longitudes of a background map is made by the user in the state with the map view screen 811 displayed on the display section 680 in this way, the coordinate calculating section 630 calculates new coordinates of the corresponding cluster maps in accordance with the changing operation. That is, in accordance with updating of the background map, the corresponding coordinates are calculated and updated.
A mode switch from the map view screen 811 to the scatter view screen 812 is effected by performing a right click operation in the state with the map view screen 811 displayed on the display section 680. Also, a mode switch from the scatter view screen 812 to the map view screen 811 is effected by performing a right click operation in the state with the scatter view screen 812 displayed on the display section 680. That is, the modes are switched between each other every time a right click operation is done by the user in the state with the map view screen 811 or the scatter view screen 812 displayed on the display section 680. The scatter view screen 812 is a display screen that displays a listing of cluster maps, and corresponds to, for example, the scatter view screens 820 and 822 respectively shown in
In the state with the map view screen 811 or the scatter view screen 812 displayed on the display section 680, one of cluster maps can be selected by a user's mouse operation. For example, in the state with the map view screen 811 or the scatter view screen 812 displayed on the display section 680, a cursor is moved over (moused-over) one of cluster maps by a user's mouse operation. By this mouse operation, the moused-over cluster map becomes selected (focused). It should be noted that when, in the state with a cluster map selected, a cursor is moved from the selected cluster map to another display area by a user's mouse operation, the selection is deselected. It should be noted, however, that when a cursor is moved from a selected cluster map to another cluster map, the cluster map to which the cursor has been moved becomes newly selected.
When a selecting operation is performed in the state with the map view screen 811 or the scatter view screen 812 displayed on the display section 680 in this way, a content listing display area is displayed on the view screen on which the selecting operation has been performed (a content listing display state 813). This content listing display area is an area that displays a listing of contents belonging to a cluster corresponding to the cluster map being selected. Such an example of display is shown in each of
When a left click operation is performed in the state with one of cluster maps selected on the map view screen 811 or the scatter view display screen 812, a play view screen 816 is displayed. That is, this left click operation corresponds to a determining operation. The play view screen 816 displays a listing of contents belonging to a cluster corresponding to the cluster map on which a determining operation has been made, a content's magnified image, and the like. Also, for example, when a right click operation is performed in the state with the play view screen 816 displayed on the display section 680, the state returns to the state before the display of the play view screen 816. That is, this right click operation corresponds to a deselecting operation. An example of display of this play view screen will be described later in detail with reference to
As described above, a play view screen 890 shown in
The play view screen 890 includes, for example, three display areas, a map display area 891, a magnified image display area 892, and a content listing display area 893. It should be noted that although not shown in
In the map display area 891, a map related to the corresponding cluster (for example, a magnified map of the cluster map corresponding to the cluster) is displayed. In the example shown in
In the magnified image display area 892, an image corresponding to the content (the content with the selection box 894 attached) being selected in the content listing display area 893 is displayed in magnified form.
In the content listing display area 893, a listing of contents belonging to the corresponding cluster is displayed as thumbnails. For example, if there is a large number of contents to be listed for display, only some of the contents to be listed for display may be displayed in the content listing display area 893, and the other contents may be displayed by a scroll operation. For example, the other contents may be scroll displayed by a scroll operation using a left button 895 and a right button 896. Also, at least one content can be selected from among the listing of contents displayed in the content listing display area 893. In the example shown in
First, the background map generating section 610 acquires cluster information stored in the cluster information storing section 240 (step S1101). Subsequently, on the basis of the acquired cluster information, the background map generating section 610 generates a background map (cluster wide-area map) corresponding to the cluster, and stores the generated background map into the background map information storing section 620 in association with the cluster (step S1102). Subsequently, it is judged whether or not generation of a background image (cluster wide-area map) has been finished for every cluster (step S1103). If generation of a background image has not been finished for every cluster, the process returns to step S1101. On the other hand, if generation of a background image has been finished for every cluster (step S1103), the operation of the background map generation process is ended.
First, it is judged whether or not a content playback instructing operation for instructing content playback has been performed (step S1111). If a content playback instructing operation has not been performed, monitoring is continuously performed until a content playback instructing operation is performed. If a content playback instructing operation has been performed (step S1111), a map view screen is displayed (step S1112).
Subsequently, it is determined whether or not a mode switching operation has been performed (step S1113). If a mode switching operation has been performed (step S1113), it is determined whether or not a map view screen is displayed (step S1114). If a map view screen is not displayed, a map view screen is displayed (step S1115). Subsequently, a map view process is performed (step S1130), and the process proceeds to step S1117. This map view process will be described later in detail with reference to
If a map view screen is displayed (step S1114), a scatter view screen is displayed (step S1116), a scatter view process is performed (step S1160), and the process proceeds to step S1117. This scatter view process will be described later in detail with reference to
Subsequently, it is judged whether or not the accepted operation is a mode switching operation (step S1117). If the accepted operation is a mode switching operation (step S1117), the process returns to step S1114. If the accepted operation is not a mode switching operation (step S1117), it is judged whether or not the operation is a determining operation on a cluster map (step S1118). If the operation is a determining operation on a cluster map (step S1118), a play view map is displayed (step S1119), and a play view process is performed (step S1120). Subsequently, it is determined whether or not a cancelling operation on the play view screen has been performed (step S1121). If a cancelling operation on the play view screen has been performed, a screen (a map view screen or scatter view screen) displayed at the time of the determining operation on the current play view screen is displayed (step S1122). Subsequently, it is judged whether or not the displayed screen is a map view screen (step S1123). If the displayed screen is a map view screen, the process returns to step S1130. On the other hand, if the displayed screen is not a map view screen (that is, if the displayed screen is a scatter view screen) (step S1123), the process returns to step S1160.
If a cancelling operation on the play view screen has not been performed (step S1121), it is judged whether or not a content playback ending operation for instructing the end of content playback has been performed (step S1124). If the content playback ending operation has not been performed, the process returns to step S1120. On the other hand, if the content playback ending operation has been performed (step S1124), the operation of the content playback process is ended.
First, on the basis of cluster information stored in the cluster information storing section 240, the display control section 670 acquires map data from the map information storing section 220, and generates a background map (step S1131). Subsequently, the coordinate calculating section 630 calculates the coordinates of cluster maps corresponding to the generated background map (step S1132), and the non-linear zoom processing section 640 performs a non-linear zoom process (step S1150). This non-linear zoom process will be described later in detail with reference to
Subsequently, the display control section 670 displays the cluster maps while overlaying the cluster maps on the coordinates on the map found by the non-linear zoom process (step S1133). It should be noted that step S1133 is an example of a display control step described in the claims. Subsequently, it is judged whether or not a move/scale-change operation on a map has been performed (step S1134). If a move/scale-change operation on a map has been performed (step S1134), in accordance with the operation performed, the display control section 670 generates a background map (step S1135), and the process returns to step S1132. On the other hand, if a move/scale-change operation on a map has not been performed (step S1134), it is judged whether or not a selecting operation on a cluster map has been performed (step S1136). If a selecting operation on a cluster map has been performed (step S1136), the display control section 670 displays a content listing display area on the map view screen (step S1137), and the process proceeds to step S1138.
If a selecting operation on a cluster map has not been performed (step S1136), it is judged whether or not a deselecting operation on a cluster map has been performed (step S1138). If a deselecting operation on a cluster map has been performed (step S1138), the display control section 670 erases the content listing display area displayed on the map view screen (step S1139), and the process returns to step S1134.
If a deselecting operation on a cluster map has not been performed (step S1138), it is judged whether or not a determining operation on a cluster map has been performed (step S1140). If a determining operation on a cluster map has been performed (step S1140), the operation of the map view process is ended. On the other hand, if a determining operation on a cluster map has not been performed (step S1140), it is judged whether or not a mode switching operation has been performed (step S1141). If a mode switching operation has been performed (step S1141), the operation of the map view process is ended. On the other hand, if a mode switching operation has not been performed (step S1141), the process returns to step S1134.
First, the non-linear zoom processing section 640 selects one cluster map from among cluster maps whose coordinates have been calculated by the coordinate calculating section 630, and sets this cluster map as a cluster map i (step S1151). Subsequently, the non-linear zoom processing section 640 sets the coordinates (center position) of the cluster map i as a focus (step S1152), and calculates transformed coordinates PEij with respect to every cluster map j existing within a transformation target area (step S1153). It should be noted that steps S1151 to S1153 are each an example of a transformed coordinate calculating step described in the claims.
Subsequently, it is judged whether or not calculation of transformed coordinates has been finished with every one of the cluster maps whose coordinates have been calculated by the coordinate calculating section 630 set as a focus (step S1154). If calculation of transformed coordinates has not been finished with every cluster map set as a focus (step S1154), a cluster map for which the calculation has not been finished is selected, and this cluster map is set as the cluster map i (step S1151). On the other hand, if calculation of transformed coordinates has been finished with every one of cluster maps set as a focus (step S1154), one cluster map is selected from among the cluster maps for which calculation of the transformed coordinates has been finished, and this cluster map is set as the cluster map i (step S1155). Subsequently, the non-linear zoom processing section 640 calculates the mean of the calculated transformed coordinates PEij (step S1156), and set the calculated mean as the coordinates of the cluster map i (step S1157). It should be noted that steps S1155 to 1157 are each an example of a coordinate setting step described in the claims.
Subsequently, it is judged whether or not setting of coordinates has been finished with respect to every one of the cluster maps for which calculation of the transformed coordinates has been finished (step S1158). If setting of coordinates has been finished with respect to every cluster map (step S1158), a cluster map for which the setting has not been finished is selected, and this cluster map is set as the cluster map i (step S1155). On the other hand, if setting of coordinates has been finished with respect to every cluster map (step S1158), the operation of the non-linear zoom process is ended.
First, the coordinate calculating section 630 calculates the coordinates of cluster maps on the basis of cluster information stored in the cluster information storing section 240 (step S1161). Subsequently, the non-linear zoom processing section 640 performs a non-linear zoom process (step S1150). Since this non-linear zoom process is the same as the procedure shown in
Subsequently, the relocation processing section 650 performs a force-directed relocation process (step S1170). This force-directed relocation process will be described later in detail with reference to
Subsequently, the magnification/shrinkage processing section 660 performs coordinate transformation by a magnification/shrinkage process, on the basis of the size of an area subject to coordinate transformation by the relocation process, and the size of the display screen on the display section 680 (step S1162).
Subsequently, the display control section 670 displays the cluster maps while superimposing the cluster maps on coordinates on the map found by the magnification/shrinkage process (step S1163). It should be noted that since steps S1136 to S1141 are the same as those of the procedure shown in
First, the relocation processing section 650 selects one cluster map from among the cluster maps whose coordinates have been set by the non-linear zoom processing section 640, and sets this cluster map as a cluster map i (step S1171). Subsequently, the relocation processing section 650 calculates all of repulsive force vectors Fij exerted on the cluster map i from cluster maps j (step S1172). Subsequently, the relocation processing section calculates the mean of the calculated repulsive force vectors Fij as a repulsive force vector Fi on the cluster map i (step S1173).
Subsequently, it is judged whether or not the absolute value |Fi| of the calculated repulsive force vector Fi is equal to or smaller than K (step S1174). If |Fi| is equal to or smaller than K, the process proceeds to step S1176. On the other hand, if |Fi| is larger than K (step S1174), the relocation processing section 650 substitutes the repulsive force vector Fi by K(Fi/|Fi|) (step S1175).
Subsequently, it is judged whether or not calculation of the repulsive force vector Fi has been finished with respect to every one of the cluster maps whose coordinates have been set by the non-linear zoom processing section 640 (step S1176). If calculation of the repulsive force vector Fi has not been finished with respect to every cluster map (step S1176), a cluster map for which the calculation has not been finished is selected, and this cluster map is set as the cluster map i (step S1171). On the other hand, if calculation of the repulsive force vector Fi has been finished with respect to every cluster map (step S1176), a cluster map is selected from among the cluster maps whose coordinates have been set by the non-linear zoom processing section 640, and this cluster map is set as the cluster map i (step S1177). Subsequently, the relocation processing section 650 adds the repulsive force vector Fi to the coordinates of the cluster map i (step S1178).
Subsequently, it is judged whether or not addition of the repulsive force vector Fi has been finished with respect to every one of the cluster maps whose coordinates have been set by the non-linear zoom processing section 640 (step S1179). If addition of the repulsive force vector Fi has not been finished with respect to every cluster map (step S1179), a cluster map for which the addition has not been finished is selected, and this cluster map is set as the cluster map i (step S1177). On the other hand, if addition of the repulsive force vector Fi has been finished with respect to every cluster map (step S1179), it is judged whether or not repulsive force vectors |Fi| calculated with respect to individual cluster maps are smaller than the threshold th11 (step S1180). If all the repulsive force vectors |Fi| are smaller than the threshold th11 (step S1180), the force-directed relocation process is ended. On the other hand, if any one of the repulsive force vectors |Fi| is equal to or larger than the threshold th11 (step S1180), the process returns to step S1171, and the force-directed relocation process is repeated (steps S1171 to S1179).
It should be noted that while the second embodiment of the present invention is directed to the case in which a listing of cluster maps is displayed, the second embodiment of the present invention is also applicable to a case in which a listing of superimposed images other than cluster maps is displayed. For example, the second embodiment of the present invention is also applicable to a case in which icons representing individual songs are placed as superimposed images (for example, a music playback app) on the xy-coordinate system (background image) with the mood of each song taken along the x-axis and the tempo of each song taken along the y-axis. Also, the second embodiment of the present invention is applicable to a case in which short-cut icons or the like superimposed on the wallpaper displayed on a personal computer or the like are placed as superimposed images. For example, a non-linear zoom process can be performed with the superimposed image to be selected taken as the center. Also, a non-linear zoom process can be performed also when a plurality of superimposed images are to be selected.
Also, for example, in the case when a specific button is to be selected with respect to a group of buttons placed in a predetermined positional relationship, a non-linear zoom process can be performed with the button to be selected taken as the center. Also, a non-linear zoom process can be performed in the case when a plurality of buttons are to be selected. By these processes, overlapping of superimposed images is eliminated, thereby making it possible to provide a user interface that is easy to view and operate for the user.
The first embodiment of the present invention is directed to the case of generating binary tree structured data while calculating distances between individual contents and sequentially extracting a pair with the smallest distance. In the following, a description will be given of a case in which binary tree structured data is generated by performing an initial grouping process and a sequential clustering process. By performing this initial clustering process, the number of pieces of data to be processed in tree generation can be reduced. That is, a faster clustering process can be achieved by reducing the number of nodes to be processed. Also, by performing a sequential clustering process, the amount of computation can be reduced as compared with a case in which exhaustive clustering (for example, the tree generation process shown in
First, a variable i is initialized (step S921), and a content ni is set in a set S (step S922). Subsequently, “1” is added to the variable i (step S923), and a distance d(head(S), ni) is calculated (step S924). Here, head(S) represents the first content along the temporal axis among contents included in the set S. Also, the distance d(head(S), ni) is the distance between head(S) and the content ni.
Subsequently, it is judged whether or not the calculated distance d(head(S), ni) is smaller than a threshold (INITIAL_GROUPING_DISTANCE) th20 (step S925). If the calculated distance d(head(S), ni) is smaller than the threshold th20 (step S925), the content ni is added to the set S (step S926), and the process proceeds to step S930. On the other hand, if the calculated distance d(head(S), ni) is equal to or larger than the threshold th20 (step S925), a tree generation process is performed with respect to the contents included in the set S (step S940). This tree generation process will be described later in detail with reference to
Subsequently, the results of the tree generation process are held (step S927), the contents in the set S are deleted (step S928), and the content ni is set in the set S (step S929).
Subsequently, it is judged whether or not the variable i is smaller than N (step S930), and if the variable i is smaller than N, the process returns to step S923. On the other hand, if the variable i is equal to or larger than N (step S930), the held results of the tree generation process are used as nodes to be processed (step S931), and the operation of the initial grouping process is ended. In this regard, while individual contents are inputted as elements to be processed in the tree generation process described above with reference to the first embodiment of the present invention, in the case when the initial grouping process is performed, a plurality of nodes held in step S927 are inputted as elements subject to a tree generation process. That is, nodes inputted as elements subject to a tree generation process (the plurality of nodes held in step S927) serve as the nodes to be processed.
That is, in the initial grouping process, respective pieces of positional information of the first content and the second content along the temporal axis are acquired, and the distance d between the two contents is calculated on the basis of the acquired pieces of positional information of the two contents. Subsequently, the calculated distance d and the threshold th20 are compared with each other, and it is judged whether or not the distance d is less than the threshold th20. If the distance d is less than the threshold th20, the two contents with respect to which the distance d has been calculated are determined as being subject to initial grouping, and these contents are added to the set S.
Subsequently, respective pieces of positional information of the first content and the third content along the temporal axis are acquired, and the distance d between the two contents is calculated on the basis of the acquired pieces of positional information of the two contents. Subsequently, the calculated distance d and the threshold th20 are compared with each other, and it is judged whether or not the distance d is less than the threshold th20. If the distance d is less than the threshold th20, the two contents with respect to which the distance d has been calculated are determined as being subject to initial grouping, and these contents are added to the set S. That is, the first to third contents are set in the set S. Thereafter, likewise, with respect to the N-th (N is an integer not smaller than 2) content, addition of the corresponding content to the set S is performed until the distance d becomes larger than the threshold th20. On the other hand, when the distance d becomes equal to or larger than the threshold th20, the N-th content with respect to which this distance d has been calculated is determined as not being subject to initial grouping. That is, at the point in time when the distance d becomes equal to or larger than the threshold th20, contents up to the content ((N−1)-th content) immediately preceding the N-th content with respect to which this distance d has been calculated become subject to initial grouping. That is, a grouping is interrupted at the N-th content. Then, by taking the N-th content where a grouping is interrupted as the first content along the temporal axis, with respect to the (N+1)-th content (N is an integer not smaller than 2), addition of the corresponding content to a new set S is performed until the distance d becomes larger than the threshold th20.
For example, suppose that in the example shown in
In the example shown in
First, a node insertion process is performed (step S950). This node insertion process will be described later in detail with reference to
First, on the basis of two contents at the beginning, a minimum tree structure is generated with the two contents taken as leaves, and a new node containing the two contents taken as root node a. Then, each of the third and subsequent contents (addition node n) is acquired (step S951). That is, a node insertion process is performed with respect to the root node a and the addition node n.
Subsequently, on the basis of the relationship between the root node a and the addition node n, case analysis is performed in accordance with the relationships shown in
If the relationship between the root node a and the addition node n corresponds to the relationship in Case 4 or 7 shown in
Also, if the relationship between the root node a and the addition node n is the relationship corresponding to any one of Cases 0 to 2, 5, and 6 shown in
Specifically, when the distance d(b, n) is the smallest among the calculated distances between individual nodes (step S957), it is judged whether or not the node b is a leaf, or whether or not the radius of the node b is equal to 0 (step S958). If the radius of a node is equal to 0, this means that all the child elements exist at the same position. If the node b is not a leaf, and the radius of the node b is not equal to 0 (step S958), the node b is substituted by “a”, and the process returns to step S951. On the other hand, if the node b is a leaf, or the radius of the node b is equal to 0 (step S958), a new node m having the nodes b and n as child elements is generated, and the position of the original node b is substituted by the new node m (step S960). Then, the node m is substituted by “a” (step S960), and the operation of the node insertion process is ended. A schematic of these processes is shown in
Also, when the distance d(c, n) is the smallest among the calculated distances between individual nodes (step S961), by reading “b” in steps S958 to S960 described above as “c”, the same processes are performed (steps S962 and S963). A schematic of these processes is shown in
Also, when the distance d(b, c) is the smallest among the calculated distances between individual nodes, the state of the existing tree is held, and a new node m having the nodes a and n as child nodes is generated (step S965). Then, the node m is substituted by “a” (step S965), and the operation of the node insertion process is ended. A schematic of these processes is shown in
First, S={a}, Sb={ }, and p=a are set (step S981). Subsequently, it is judged whether or not p is a root node (step S982). If p is a root node, a tree generation process is performed with respect to elements within S (step S989), and the operation of the tree updating process after node insertion is ended. This tree generation process is the same as the process described in step S954. On the other hand, if p is not a root node (step S982), Sb={brother(p)} is set (step S983), and it is judged whether or not head(Sb) and “a” coincide with each other (step S984).
If head(Sb) and “a” coincide with each other (step S984), tmp=head(Sb), Sb=Sb−{tmp}, and Sb={left(tmp), right(tmp)}+Sb are set (step S985). Subsequently, it is judged whether or not Sb={ } (step S987). That is, it is judged whether or not the set Sb is empty. If Sb={ } does not hold, the process returns to step S984. On the other hand, if Sb={ } (step S987), p=parent(p) is set (step S988), and the process returns to step S982.
Also, if head(Sb) and “a” do not coincide with each other (step S984), S=S+head(Sb) and Sb=Sb−head(Sb) are set (step S986), and the process proceeds to step S987.
It should be noted that while the embodiments of the present invention are directed to the case in which still images are used as contents, for example, the embodiments of the present invention can be also applied to cases where moving image contents are used. For example, in a case where one piece of positional information is assigned to one moving image content, the embodiments of the present invention can be applied in the same manner as in the case of still image contents. Also, in a case where a plurality of pieces of positional information (for example, for every frame or for every predetermined interval of frames) are assigned to one moving image content, by determining one piece of positional information with respect to one moving image content, the embodiments of the present invention can be applied in the same manner as in the case of still image contents. For example, one piece of positional information can be determined with respect to one moving image content by using the start position of shooting of a moving image content, the end position of shooting of a moving image content, the mean of positions assigned to a moving image content, or the like. Also, the embodiments of the present invention can be also applied to contents such as text files and music files with which positional information and date and time information are associated.
Also, the embodiments of the present invention can be applied to information processing apparatuses capable of handling contents, such as a portable telephone with an image capturing function, a personal computer, a car navigation system, and a portable media player.
It should be noted that the embodiments of the present invention are illustrative of an example for implementing the present invention, and as explicitly stated in the embodiments of the present invention, there is a mutual correspondence between matters in the embodiments of the present invention, and invention-defining matters in the claims. Likewise, there is a mutual correspondence between invention-defining matters in the claims, and matters in the embodiments of the present invention which are denoted by the same names as those of the invention-defining matters. It should be noted, however, that the present invention is not limited to the embodiments, and the present invention can be implemented by making various modifications to the embodiments without departing from the scope of the present invention.
The process steps described above with reference to the embodiments of the present invention may be grasped as a method having a series of these steps, or may be grasped as a program for causing a computer to execute a series of these steps or a recording medium that stores the program. As this recording medium, for example, a CD (Compact Disc), an MD (MiniDisc), a DVD (Digital Versatile Disk), a memory card, a Blur-ray Disc (registered trademark), or the like can be used.
The present application contains subject matter related to that disclosed in Japanese Precedence Patent Application JP 2009-268661 filed in the Japan Patent Office on Nov. 26, 2009, the entire content of which is hereby incorporated by reference.
It should be understood by those skilled in the art that various modifications, combinations, sub-combinations and alterations may occur depending 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 |
---|---|---|---|
P2009-268661 | Nov 2009 | JP | national |