The present invention relates to digital image management.
Real world images can be captured and stored as digital images. Devices that can capture and store real world images include but are not limited to digital cameras, scanners and digital camcorders.
Generally a digital image can be associated with a time stamp. For example, a digital image captured with a digital camera can include metadata that specifies when the image was captured. The digital image can be stored in one or more files, for example, a JPEG or TIFF file, and the metadata can be stored in any format, for example, a standard format such as EXIF. The digital image can be stored in any type of storage media, including but not limited to a disk drive of a computer and a CD.
The present invention relates to methods and apparatus, including computer-program products, for time-based image management.
In general, in one aspect, the invention provides a computer-implemented method for digital image management. The method includes receiving a digital image associated with a specific time. The method includes receiving a data unit associated with a time interval. The method includes associating the data unit with the digital image when the time interval associated with the data unit includes the specific time.
In general, in another aspect, the invention provides a computer-implemented method for generating a personal calendar. The method includes receiving selection specifying a calendar entry. The method includes retrieving digital images associated with the calendar entry. The method includes including the retrieved digital images in a calendar.
In general, in another aspect, the invention provides a method for displaying images. The method includes clustering images in an image library into groups. Each image includes a time stamp that indicates when the image was captured. The method includes determining, for each group, the number of images in the group and a time interval delimited by an earliest time stamp and a latest time stamp of images in the group. The method includes determining, for each group, a time scale for displaying the group. The determining is based on the number of images in the cluster and the time interval delimited by an earliest time stamp and a latest time stamp of images of the cluster. The method includes displaying, when an image of a cluster is selected, other images of the cluster over a timeline having the time scale determined for displaying the cluster.
In general, in another aspect, the invention provides a computer-program product, tangibly stored on machine-readable medium, for digital image management. The product comprising instructions to cause a processor to receive a digital image associated with a specific time. The product includes instructions to receive a data unit associated with a time interval. The product includes instructions to associate the data unit with the digital image when the time interval associated with the data unit includes the specific time.
In general, in another aspect, the invention provides a computer-program product, tangibly stored on machine-readable medium, for generating a personal calendar. The product comprising instructions to cause a processor to receive a selection specifying a calendar entry. The product includes instructions to retrieve digital images associated with the calendar entry. The product includes instructions to include the retrieved digital images in a calendar.
In general, in another aspect, the invention provides a computer-program product, tangibly stored on machine-readable medium, for displaying images. The product includes instructions to cluster images in an image library into groups, each image including a time stamp that indicates when the image was captured. The product includes instructions to determine, for each group, the number of images in the group and a time interval delimited by an earliest time stamp and a latest time stamp of images in the group. The product includes instructions to determine, for each group, a time scale for displaying the group, the determining being based on the number of images in the cluster and the time interval delimited by an earliest time stamp and a latest time stamp of images of the cluster. The product includes instructions to display, when an image of a cluster is selected, other images of the cluster over a timeline having the time scale determined for displaying the cluster.
A system in accordance with the invention facilitates the management of digital images. The system needs little or no user effort to organize even large volumes of digital images. The system can automatically associate a topic, for example, events, geographic locations, logical locations, personal notations, people, ages of people, recurring events, other objects, such as animals or automobiles, classes of people or classes of other objects with a digital image. Once associations have been made, the system can search for digital images according to events, geographic locations and any of the above kinds of things. The system also can provide a calendar that allows a user to browse through or search for digital images. The system automatically adjusts the time scale of the calendar to facilitate browsing. Digital images captured from multiple and different sources can thus be managed. Digital images captured by two or more different digital cameras or scanners can be managed. Time stamps may be adjusted to account for digital images captured in different time zones. The system can generate with little or no user effort calendar-centric creations such as, for example, a personal calendar or a journal of digital images.
The details of one or more implementations of the invention are set forth in the accompanying drawings and the description below. Other features and advantages of the invention will become apparent from the description, the drawings, and the claims.
Like reference numbers and designations in the various drawings indicate like elements.
Data sources include, for example, a calendar application, an address book application or both. Data sources typically include data units, which can be, for example, data objects in an object oriented computing environment. Calendar entries in a calendar application, for example, are data units. Although data units of a calendar application can represent any topic, they typically represent time-related topics that are associated with a specific time or time interval. Time related topics include events (e.g., vacations, birthdates and projects), geographic locations (e.g., Santa Rosa, United States and Europe), logical locations (e.g., home, work, church, school, river, mountain and building), people (e.g., mom, dad, Peter and Joe), and objects (e.g., car, lake, bike and clouds). An entry in a calendar describing a vacation, for example, represents an event. An entry in the calendar describing a visit to Belgium represents a geographic location. An entry in the calendar indicating an appointment with a particular individual can represent the particular individual. A data unit that represents a time-related topic is typically associated with a time interval. For example, the above-mentioned entry describing a vacation is associated with a two-week time interval.
Image sources include images capture devices and image storage devices. Examples of image capture device include digital cameras and scanners. Examples of image storage devices include disk drives, CDs or any other source of digital data. As discussed above, digital images are associated with time stamps. Although only one image source is shown in
The association component 102 is configured to associate data units with a digital image. The association component 102 includes and process configurable rules for automatically associating data units with a digital image. In one implementation, the rules are configured based on user input. Optionally, the association component 102 can request user confirmation of an automatic association. The user input can be a selection from a list or an actuation of an icon in a graphical user interface.
The search component 104 is configured to search in library 110 for digital images. Search criteria usually include a logical expression of one or more key words. The key words can be selected to specify any combination of topics, including the above-mentioned topics.
System 100 includes a software application for managing images, for example, Adobe® Photoshop® Album available from Adobe Systems of San Jose Calif. The application usually runs on a desktop computer or on a network.
Association component 402 and search component 404 are similar to the association component 102 and search component 104, respectively, described above in reference to
System 400 is configured to exchange information with a calendar application 418. The calendar application includes, for example, Microsoft Outlook available from the Microsoft Corporation of Redmond Wash.
System 400 is configured to receive information, including digital images, from a digital camera 420. The system 400 can interface with other sources of digital images such as additional digital cameras, scanners, disk drives, PDAs or the Internet. System 400 stores and retrieves information, including digital images and any associated metadata, to and from a database 422.
Calendar application 418 usually includes multiple calendar entries. An entry can represent any topic. As discussed above, examples of topics include an event, a geographic location, a logical location, one or more people, objects and so forth. Examples of an event include a European vacation, birthday and summer. Examples of a geographic location include Santa Rosa, the United States and Europe. Examples of a logical location include home, school, work, river, mountain and city hall.
There are various types of entries, one of which is a banner entry. Banner entries typically, but not necessarily, span over multiple days. The time interval associated with a banner entry is usually specified in terms of days and not hours. A banner entry usually, but not necessarily, represents an event or a geographic location.
Another type of entry is a day entry. Day entries typically, but not necessarily, span time intervals that fall within a day. The time interval associated with a day entry is usually specified in hours. A day entry usually, but not necessarily, represents a logical location, one or more people, objects or an event of short duration (e.g., a musical recital).
Calendar entries, whether a banner or a day entry, generally cover a contiguous time interval. A calendar entry usually includes a label and one or more notes. The label provides a general description of the entry, usually indicative, although not dispositively, of the topic the entry represents. The notes include one or more fields, which can store any sort of information. At least one of the fields can store information specifying the topic represented by the entry. Topic information provides an extra parameter, in addition to the time stamp typically stored with digital images, with which the system can organize and search its library of digital images.
The system has different techniques for obtaining topic information. In one implementation, the system identifies entries having time intervals that include the capture time of a digital image of interest. The system then prompts the user to specify a topic (for example, whether the entry represents an event, a geographic location, and so forth). Upon receipt of the user input, the system stores the input in one of the metadata fields of the digital image. Alternatively, the system receives user input specifying a topic when the user makes the entry into the calendar. In this case, the system stores the topic information in one of the notes field of the entry. In a third implementation, the system consults a list of events and applies search heuristics to identify entries that are likely to represent events. The system then presents its determination to the user for confirmation. The system takes similar actions to identify entries that represent geographic locations, logical locations, people, and objects. Examples of list consulted include address books and atlases.
Note that the system is not limited to storing only topic information in the note fields. The system can store nearly any sort of information in the note fields, even information that is not represented in the calendar. For example, the system can store in a note field of a banner entry information about a person who is not even listed in the calendar. The person can be associated with any digital image associated with the banner entry although the person is not represented by a calendar entry.
Calendar entries may overlap and, consequently, be related to one another. There may be parent-child relationships. A first entry is a child of a second entry when the following two conditions occur: (i) the duration of the time interval associated with the first entry is shorter than the duration of the time interval associated with the second entry; and (ii) the time intervals of the first and second time entries overlap. For example, the first entry is a child of the second entry when the entire time interval associated with the first entry is included in the time interval associated with the second entry.
In additional to having the first entry as its child, the second entry may have other children. Furthermore, the second entry may have one or more grandchildren. For example, the time interval of the first entry can include time intervals of a third entry and a fourth entry. In this case, the third and fourth entries are children of the first entry and grandchildren of the second entry.
The calendar also includes a day entry 512 that represents a tour of Keukenhof Flowers, a day entry 514 that represents a train trip to Leiden, a day entry 516 that represents a train trip to Bruge, and a day entry 518 that represents a bus tour of Brussels. Day entries 512, 514, and 516 are place entries. Day entry 518 is an event entry.
As can be seen from
In general, the relationship between or among entries can be represented in a hierarchy tree. In the tree, each node represents an entry and lines connecting the nodes represent relationships between or among entries. The tree may include multiple layers, each of which can include a generation of one or more nodes. The level of specificity of entries increases towards the bottom of the tree. That is, nodes located at a particular layer of the tree represent more specific entries than do nodes of the layers located above the particular layer.
Association component 402 is configured to associate calendar entries with a digital image.
Table 1 shows examples of association rules. The system 400 can receive user inputs and change a rule in accordance with such inputs.
Search component 404 is configured to search database 420 for digital images.
As discussed above in reference to
Browse component 406 can automatically adjust the scale of the calendar depending on a ratio of (i) the number of digital images being browsed through and (ii) a duration of the time interval being displayed. In one implementation, browser component 406 adjusts the interval so as to maintain this ratio at a predetermined value. The predetermine value is set so that the calendar is neither too sparsely nor too densely populated with images. For example, if a user is browsing through hundreds of digital images associated with an event that took place over only two hours, then the component can adjust the scale of the calendar to indicate a finer granularity of time units such as, for example, minutes. However, if the event took place over ten years and there are only ten digital images associated with the event, then the component can adjust the scale of the calendar to indicate time units as years.
Browse component 406 can provide special types of calendars such as, for example, a point-of-view (“POV”) calendar.
Grading component 410 is configured to allow a user to specify grades such as favorite, keeper, possible, backup and discard. In one implementation, grading component 410 receives a user input selecting one of these grades for each digital image being considered. The system 400 stores the selected grade as metadata of a digital image file.
During searching or browsing, system 400 receives user input specifying grading requirements to reduce the number of digital images being considered. In response, the system 400 presents in its graphical user interface a slider control with which a user can specify the grades that are of interest. Digital images having grades below the specified grade will not be searched or presented for browsing.
Time zone correlation component 414 is configured to correlate time stamps of images captured in different time zones. In one implementation, the default action of component 414 is to time shift time stamps of images captured in time zones that are different from a home time zone of the camera. If the clock of the capture device (camera) were not adjusted, but instead left on the home time zone, the time shift is needed.
In one implementation, component 414 is configured to identify, based on calendar entries that indicate geographic location and the capture time of a digital image, the time zone in which the image was captured. When the system 400 receives the digital image, the component 414 can shift the time stamp to the home time zone.
In implementations where location information is included in the metadata of a digital image file, component 414 can determine time shift based on the location information. A digital camera with a GPS device, for example, can produce digital image files having location information.
Component 412 is configured to update calendar 418 with data included in digital images system 400 receives. For example, when the digital image includes metadata indicating an event that is not already included in calendar 418, component 412 processes the metadata and make an entry in calendar 418 to indicate the occurrence of the event.
Component 408 is configured to automatically or semi-automatically generate calendar-centric creations. In one implementation, component 408 automatically generates a storybook of images for a particular time interval. Component 408 identifies events that occurred during the interval (as annotated on calendar 418). Component 408 prioritizes the events based on their position in the hierarchy of events. Events that are parent nodes, for example, would be selected over events that are child nodes in the hierarchy. The label of the top event in the hierarchy is used as the title of the storybook. Events in a next lower level of the hierarchy are used to describe chapters of the storybook. Component 408 selects digital images to include in the storybook based on the events selected. Component 408 optionally creates an index based on metadata associated with the digital images captured during the particular time interval.
Component 408 is configured to automatically generate a personalized calendar. Component 408 selects digital images to include in the calendar based on events that occurred throughout the previous year. Component 408 selects digital images based on themes specified by a user. One common theme is holidays. Images selected can be those associated with major holidays. Another theme can be birthdays. Images selected can be those associated with birthday events.
Component 408 is configured to generate a year-in-review creation. Component 408 selects digital images associated with major events of a past year, as annotated on a calendar being considered, and includes these in an archive for the past year.
Component 416 is configured to create journals. In one implementation, component 416 receives input specifying a time interval. Component 416 retrieves and display digital images captured during the interval. Component 416 receives user input selecting images from those being displayed. Component 416 generates a slide show of the images selected. Component 416 receives an input specifying the duration an image is to be displayed. Component 416 receives input associating any of the images with one or more text files, audio files or both. Component 416 further receives input specifying a specific time within a time duration that an image is being displayed so as to contemporaneously display or play the text or audio file, respectively. Alternatively, component 416 receives input specifying points along a timeline of an audio file and, furthermore, associates digital images to be displayed at the points.
Method steps of the invention can be performed by one or more programmable processors executing a computer program to perform functions of the invention by operating on input data and generating output. Method steps can also be performed by, and apparatus of the invention can be implemented as, special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application-specific integrated circuit).
Processors suitable for the execution of a computer program include, by way of example, both general and special purpose microprocessors, and any one or more processors of any kind of digital computer. Generally, a processor will receive instructions and data from a read-only memory or a random access memory or both. The essential elements of a computer are a processor for executing instructions and one or more memory devices for storing instructions and data. Generally, a computer will also include, or be operatively coupled to receive data from or transfer data to, or both, one or more mass storage devices for storing data, e.g., magnetic, magneto-optical disks, or optical disks. Information carriers suitable for embodying computer program instructions and data include all forms of non-volatile memory, including by way of example semiconductor memory devices, e.g., EPROM, EEPROM, and flash memory devices; magnetic disks, e.g., internal hard disks or removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks. The processor and the memory can be supplemented by, or incorporated in special purpose logic circuitry.
To provide for interaction with a user, the invention can be implemented on a computer having a display device, e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor, for displaying information to the user and a keyboard and a pointing device, e.g., a mouse or a trackball, by which the user can provide input to the computer. Other kinds of devices can be used to provide for interaction with a user as well; for example, feedback provided to the user can be any form of sensory feedback, e.g., visual feedback, auditory feedback, or tactile feedback; and input from the user can be received in any form, including acoustic, speech, or tactile input.
The invention can be implemented in a computing system that includes a back-end component, e.g., as a data server, or that includes a middleware component, e.g., an application server, or that includes a front-end component, e.g., a client computer having a graphical user interface or a Web browser through which a user can interact with an implementation of the invention, or any combination of such back-end, middleware, or front-end components. The components of the system can be interconnected by any form or medium of digital data communication, e.g., a communication network. Examples of communication networks include a local area network (“LAN”) and a wide area network (“WAN”), e.g., the Internet.
The computing system can include clients and servers. A client and server are generally remote from each other and typically interact through a communication network. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other.
The invention has been described in terms of particular embodiments. Other embodiments are within the scope of the following claims. For example, the steps of the invention can be performed in a different order and still achieve desirable results. A system of the invention can be implemented not only in a desktop computer but also in consumer electronic device such as DVD players, PDAs, and TiVo devices. The system provides override features that allow a user to override any automatic associations made or to change any manual association made. For example, dragging a digital image to a particular interval in a calendar causes the system to associate with the digital image entries that are associated with the particular interval. Furthermore, the system reassigns a new time stamp to the digital image. The previously stored time stamp is written over. The system is not limited to only topics included in a calendar but, rather, can define and use any topic to organize and search for digital images. The system has features for organizing digital images even when the images are missing a time, a date, or the time and date from its time stamp. In one implementation, the system provides a searchable value for unknown time information. The system provides features for grouping digital images over time intervals of various durations. In one implementation, the system groups images captured using exposure, balance and flash bracketing. In this case, the duration of the time interval of the group is on the scale of seconds. Alternatively, the system groups images taken on a long journey. The duration of the time interval of this grouping is on the scale of days.
Number | Name | Date | Kind |
---|---|---|---|
4888692 | Gupta et al. | Dec 1989 | A |
5214622 | Nemoto et al. | May 1993 | A |
5241671 | Reed et al. | Aug 1993 | A |
5260868 | Gupta et al. | Nov 1993 | A |
5491626 | Williams et al. | Feb 1996 | A |
5557747 | Rogers et al. | Sep 1996 | A |
5559942 | Gough et al. | Sep 1996 | A |
5644766 | Coy et al. | Jul 1997 | A |
5664063 | Johnson et al. | Sep 1997 | A |
5668966 | Ono et al. | Sep 1997 | A |
5692175 | Davies et al. | Nov 1997 | A |
5706457 | Dwyer et al. | Jan 1998 | A |
5734888 | Li et al. | Mar 1998 | A |
5751286 | Barber et al. | May 1998 | A |
5761655 | Hoffman | Jun 1998 | A |
5787412 | Bosch et al. | Jul 1998 | A |
5796945 | Tarabella | Aug 1998 | A |
5813014 | Gustman | Sep 1998 | A |
5832495 | Gustman | Nov 1998 | A |
5842218 | Robinson | Nov 1998 | A |
5844572 | Schott | Dec 1998 | A |
5884298 | Smith et al. | Mar 1999 | A |
5898431 | Webster et al. | Apr 1999 | A |
5907324 | Larson et al. | May 1999 | A |
5956730 | Burroughs et al. | Sep 1999 | A |
6017157 | Garfinkle et al. | Jan 2000 | A |
6085205 | Peairs et al. | Jul 2000 | A |
6094657 | Hailpern et al. | Jul 2000 | A |
6148260 | Musk et al. | Nov 2000 | A |
6148354 | Ban et al. | Nov 2000 | A |
6195651 | Handel et al. | Feb 2001 | B1 |
6199099 | Gershman et al. | Mar 2001 | B1 |
6202061 | Khosla et al. | Mar 2001 | B1 |
6240423 | Hirata | May 2001 | B1 |
6246410 | Bergeron et al. | Jun 2001 | B1 |
6370541 | Chou et al. | Apr 2002 | B1 |
6396963 | Shaffer et al. | May 2002 | B2 |
6401085 | Gershman et al. | Jun 2002 | B1 |
6408301 | Patton et al. | Jun 2002 | B1 |
6425017 | Dievendorff et al. | Jul 2002 | B1 |
6434546 | Williamowski et al. | Aug 2002 | B1 |
6442527 | Worthington | Aug 2002 | B1 |
6466940 | Mills | Oct 2002 | B1 |
6504571 | Narayanaswami et al. | Jan 2003 | B1 |
6581102 | Amini et al. | Jun 2003 | B1 |
6587668 | Miller et al. | Jul 2003 | B1 |
6587856 | Srinivasan et al. | Jul 2003 | B1 |
6598046 | Goldberg et al. | Jul 2003 | B1 |
6628899 | Kito | Sep 2003 | B1 |
6629104 | Parulski et al. | Sep 2003 | B1 |
6738155 | Rosenlund et al. | May 2004 | B1 |
6760884 | Vertelney et al. | Jul 2004 | B1 |
6845370 | Burkey et al. | Jan 2005 | B2 |
6904427 | Hagiwara et al. | Jun 2005 | B1 |
6947959 | Gill | Sep 2005 | B1 |
6957205 | Liongosari et al. | Oct 2005 | B1 |
6993723 | Danielsen et al. | Jan 2006 | B1 |
7017162 | Smith et al. | Mar 2006 | B2 |
7020686 | Banatwala | Mar 2006 | B2 |
7028262 | Estrada et al. | Apr 2006 | B2 |
7034691 | Rapaport et al. | Apr 2006 | B1 |
7069259 | Horvitz et al. | Jun 2006 | B2 |
7076503 | Platt et al. | Jul 2006 | B2 |
7076504 | Handel et al. | Jul 2006 | B1 |
7082430 | Danielsen et al. | Jul 2006 | B1 |
7103559 | Worthington | Sep 2006 | B2 |
7296032 | Beddow | Nov 2007 | B1 |
7298520 | Ohkubo et al. | Nov 2007 | B2 |
7363590 | Kerr et al. | Apr 2008 | B2 |
7415662 | Rothmuller et al. | Aug 2008 | B2 |
7472135 | Huuskonen | Dec 2008 | B2 |
20020087546 | Slater et al. | Jul 2002 | A1 |
20020097259 | Marshall et al. | Jul 2002 | A1 |
20020140730 | Linsey et al. | Oct 2002 | A1 |
20020140820 | Borden, IV | Oct 2002 | A1 |
20020149618 | Estrada et al. | Oct 2002 | A1 |
20020165753 | Worthington | Nov 2002 | A1 |
20020170040 | Idan | Nov 2002 | A1 |
20030084065 | Lin et al. | May 2003 | A1 |
20030154212 | Schirmer et al. | Aug 2003 | A1 |
20030167310 | Moody et al. | Sep 2003 | A1 |
20030200192 | Bell et al. | Oct 2003 | A1 |
20040002932 | Horvitz et al. | Jan 2004 | A1 |
20040078372 | Huuskonen | Apr 2004 | A1 |
20040078389 | Hamilton | Apr 2004 | A1 |
20050044066 | Hooper et al. | Feb 2005 | A1 |
20050044529 | Simons et al. | Feb 2005 | A1 |
20050050043 | Pyhalammi et al. | Mar 2005 | A1 |
20050057584 | Gruen et al. | Mar 2005 | A1 |
20050182752 | Rojer | Aug 2005 | A1 |
20050207645 | Nishimura et al. | Sep 2005 | A1 |
20080306921 | Rothmuller et al. | Dec 2008 | A1 |
Number | Date | Country |
---|---|---|
08030763 | Feb 1996 | JP |