TECHNIQUES FOR PROVIDING USER NOTICE AND SELECTION OF DUPLICATE IMAGE PRUNING
20200074217 ยท 2020-03-05
Inventors
Cpc classification
H04N1/2125
ELECTRICITY
G06F3/04842
PHYSICS
H04N1/00411
ELECTRICITY
International classification
Abstract
A photograph is processed using signal image comparison to determine whether it is a substantial duplicate of another photo. The camera alerts the user when the photo just obtained is very similar to one that was previously taken, and then based on camera settings either offers to delete the picture from the camera's memory for the user or deletes automatically. The camera may determine whether two photos are nearly identical by a pixel by pixel comparison.
Claims
1. An assembly, comprising: a housing; at least one processor in the housing; at least one imager supported on the housing and configured to communicate with the processor; at least one computer storage in the housing and comprising instructions executable by the processor to: receive a first photograph; compare the first photograph to at least one earlier photograph to determine whether the first photograph is a substantial duplicate of the at least one earlier photograph; and responsive to determining that the first photograph is a substantial duplicate of the at least one earlier photograph perform at least one of the following: present on the assembly at least one user interface (UI) indicating that the first photograph is a substantial duplicate of the at least one earlier photograph, automatically delete the first photograph
2. The assembly of claim 1, wherein the instructions are executable to: select the at least one earlier photograph based on the at least one earlier photograph having been generated within a time period prior to generation of the first photograph, and not select earlier photographs for comparison with the first photograph that were generated outside of the time period.
3. The assembly of claim 1, wherein the instructions are executable to: compare, on a pixel-by-pixel basis, the first photograph to at least one earlier photograph to determine whether the first photograph is a substantial duplicate of the at least one earlier photograph.
4. The assembly of claim 3, wherein a pixel-by-pixel comparison to determine whether the first photograph is a substantial duplicate of the at least one earlier photograph comprises comparing each pixel in the first photograph to a same pixel location in a grid of pixels of the at least one earlier photograph.
5. The assembly of claim 4, wherein the instructions are executable to: determine for each pixel-to-pixel comparison a difference between pixel values.
6. The assembly of claim 5, wherein the instructions are executable to compare cumulative differences between all corresponding pixel values to a test value, and based on the comparison meeting a first criterion, indicate duplicate photo.
7. The assembly of claim 5, Wherein the instructions are executable to average differences between all corresponding pixel values and compare the average to a test value, and based on the comparison meeting a first criterion, indicate duplicate photo.
8. The assembly of claim 5, wherein the instructions are executable to square differences between all corresponding pixel values and divide by a sum of the squares of individual pixel differences.
9. The assembly of claim 1, wherein the instructions are executable to: identify a subset of pixels in the first photograph; and compare only the subset to the at least earlier photograph and not compare pixels in the first image outside the subset to the at least earlier photograph.
10. The assembly of claim 9, wherein the subset is identified based at least in part on corresponding to an image of a human face.
11. The assembly of claim 9, wherein the subset is identified based at least in part on having a histogram satisfying a criterion.
12. The assembly of claim 9, wherein the subset is identified based at least in part on being center-most pixels in the first photograph.
13. The assembly of claim 9, wherein the subset is identified based at least in part on being pixels that are in-focus.
14. The assembly of claim 1, wherein the UI visually indicates that the first photograph is a substantial duplicate of the at least one earlier photograph.
15. The assembly of claim 1, wherein the UI audibly indicates that the first photograph is a substantial duplicate of the at least one earlier photograph.
16. The assembly of claim 1, wherein the instructions are executable to: responsive to determining that the first photograph is a substantial duplicate of the at least one earlier photograph perform at least one of the following: present on the assembly the at least one UI indicating that the first photograph is a substantial duplicate of the at least one earlier photograph.
17. A computer storage device that is not a transitory signal and that comprises instructions executable by at least one processor to: present on at least one computer display at least one user interface (UI) comprising: at least a first image representing a first photograph; and at least a second image representing a second photograph taken prior to the first photograph and determined to be a potential duplicate of the first photograph, input to save or delete one or both of the first and second photographs being receivable from the UI by the at least one processor.
18. The computer storage device of claim 17, wherein the second photograph is selected based at least in part as having been taken within a period prior to taking the first photograph, such that the second photograph is not presented responsive to being taken outside the period.
19. The computer storage device of claim 17, wherein the device is implemented in a camera.
20. A method, comprising: receiving a first photograph; comparing the first photograph to at least one earlier photograph at least in part based on the at least one earlier image having been taken in a most recent period prior to taking the first photograph; determining whether the first photograph is a substantial duplicate of the at least one earlier photograph, and responsive to determining that the first photograph is a substantial duplicate of the at least one earlier photograph presenting on a display at least one user interface (UI) permitting a user to delete at least one of the photographs.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0012]
[0013]
[0014]
[0015]
[0016]
[0017]
DETAILED DESCRIPTION
[0018] This disclosure relates generally to computer ecosystems including aspects of consumer electronics (CE) device-based user information in computer ecosystems. A system herein may include server and client components, connected over a network such that data may be exchanged between the client and server components. The client components may include one or more computing devices including imaging devices such as standalone digital cameras and cameras in mobile telephones, alone or in conjunction with portable televisions (e.g. smart TVs, Internet-enabled TVs), portable computers such as laptops and tablet computers, and other mobile devices. These client devices may operate with a variety of operating environments. For example, some of the client computers may employ, as examples, operating systems from Microsoft, or a Unix operating system, or operating systems produced by Apple, Inc. or Google. These operating environments may be used to execute one or more browsing programs, such as a browser made by Microsoft or Google or Mozilla or other browser program that can access web applications hosted by the Internet servers discussed below.
[0019] Servers may include one or more processors executing instructions that configure the servers to receive and transmit data over a network such as the Internet. Or, a client and server can be connected over a local intranet or a virtual private network. A server or controller may be instantiated by a game console such as a Sony PlayStation, a personal computer, etc.
[0020] Information may be exchanged over a network between the clients and servers. To this end and for security, servers and/or clients can include firewalls, load balancers, temporary storages, and proxies, and other network infrastructure for reliability and security. One or more servers may form an apparatus that implement methods of providing a secure community such as an online social website to network members.
[0021] As used herein, instructions refer to computer-implemented steps for processing information in the system. Instructions can be implemented in software, firmware or hardware and include any type of programmed step undertaken by components of the system.
[0022] A processor may be any conventional general-purpose single- or multi-chip processor that can execute logic by means of various lines such as address lines, data lines, and control lines and registers and shift registers.
[0023] Software modules described by way of the flow charts and user interfaces herein can include various sub-routines, procedures, etc. Without limiting the disclosure, logic stated to be executed by a particular module can be redistributed to other software modules and/or combined together in a single module and/or made available in a shareable library.
[0024] Present principles described herein can be implemented as hardware, software, firmware, or combinations thereof; hence, illustrative components, blocks, modules, circuits, and steps are set forth in terms of their functionality.
[0025] Further to what has been alluded to above, logical blocks, modules, and circuits described below can be implemented or performed with a general-purpose processor, a digital signal processor (DSP), a field programmable gate array (FPGA) or other programmable logic device such as an application specific integrated circuit (ASIC), discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described herein. A processor can be implemented by a controller or state machine or a combination of computing devices.
[0026] The functions and methods described below, when implemented in software, can be written in an appropriate language such as but not limited to C# or C++, and can be stored on or transmitted through a computer-readable storage medium such as a random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), compact disk read-only memory (CD-ROM) or other optical disk storage such as digital versatile disc (DVD), magnetic disk storage or other magnetic storage devices including removable thumb drives, etc. A connection may establish a computer-readable medium. Such connections can include, as examples, hard-wired cables including fiber optics and coaxial wires and digital subscriber line (DSL) and twisted pair wires.
[0027] Components included in one embodiment can be used in other embodiments an appropriate combination. For example, any of the various components described herein and/or depicted in the Figures may be combined, interchanged or excluded from other embodiments.
[0028] A system having at least one of A, B, and C (likewise a system having at least one of A, B, or C and a system having at least one of A, B, C) includes systems that have A alone, B alone, C alone, A and B together, A and C together, B and C together, and/or A, B, and C together, etc.
[0029] Now specifically referring to
[0030] Accordingly, to undertake such principles the ID 12 can be established by some or all of the components shown in
[0031] It is to be understood that the processor 24 controls the ID 12 to undertake present principles, including the other elements of the ID 12 described herein such as e.g. controlling the display 14 to present images thereon and receiving input therefrom. Furthermore, note the network interface 20 may be, e.g., a wired or wireless modem or router, or other appropriate interface such as, e.g., a wireless telephony transceiver, or Wi-Fi transceiver as mentioned above, etc.
[0032] In addition to the foregoing, the ID 12 may also include one or more input ports 26 such as, e.g., a USB port to physically connect using a wired connection) to another CE device and/or a headphone port to connect headphones to the ID 12 for presentation of audio from the ID 12 to a consumer through the headphones. The ID 12 may further include one or more computer memories 28 that are not transitory signals, such as disk-based or solid-state storage (including but not limited to flash memory). Also, in some embodiments, the ID 12 can include a position or location receiver such as but not limited to a cellphone receiver, GPS receiver and/or altimeter 30 that is configured to e.g. receive geographic position information from at least one satellite or cellphone tower and provide the information to the processor 24 and/or determine an altitude at which the ID 12 is disposed in conjunction with the processor 24. However, it is to be understood that that another suitable position receiver other than a cellphone receiver, GPS receiver and/or altimeter may be used in accordance with present principles to e.g. determine the location of the ID 12 in e.g. all three dimensions.
[0033] Continuing the description of the ID 12, in some embodiments the ID 12 may include one or more imagers 32 that may he, e.g., a thermal imaging camera, a digital camera such as a webcam, and/or a camera integrated into the ID 12 and controllable by the processor 24 to gather pictures/images and/or video in accordance with present principles. An imager may he implemented by, without limitation, a charge-coupled device (CCD) or complementary metal-oxide-semiconductor (CMOS) device.
[0034] Light from objects may enter the imager 32 through one or more lenses 34. The lens 34 may be movable by a lens actuator 36 to focus the image on the imager 32. Without limitation, the imager 32 with lens 34 may be implemented in a digital single lens reflex (DSLR) package.
[0035] One or more shutter actuators 38 may be provided on the ID 12. The shutter actuator 38 can be manipulated to cause a shutter to open or otherwise take a picture. The shutter actuator may be implemented by s hardware key or soft key.
[0036] Also included on the ID 12 may be a Bluetooth transceiver 42 and other Near Field Communication (NFC) element 40 for communication with other devices using Bluetooth and/or NFC technology, respectively. An example NFC element can be a radio frequency identification (RFID) element. A battery (not shown) may be provided for powering the 12.
[0037] Still referring to
[0038] In the example shown, to illustrate present principles all three devices 12, 44, 46 are assumed to be members of an entertainment network.
[0039] The example non-limiting first CE device 44 may be established by any one of the above-mentioned devices, for example, an internet-enabled TV, a portable wireless laptop computer or tablet computer or notebook computer, and accordingly may have one or more of the components described below. The first CE device 44 alternatively may be embodied in the form of eyeglasses or a wireless telephone. The second CE device 46 without limitation may be established by a wireless telephone. The second CE device 46 may implement a portable hand-held remote control (RC).
[0040] The first CE device 44 may include one or more displays 50 that may be touch-enabled for receiving consumer input signals via touches on the display. The first CE device 44 may include one or more speakers 52 for outputting audio in accordance with present principles, and at least one additional input device 54 such as e.g. an audio receiver/microphone for e.g. entering audible commands to the first CE device 44 to control the device 44. The example first CE device 44 may also include one or more network interfaces 56 for communication over the network 22 under control of one or more CE device processors 58. Thus, the interface 56 may be, without limitation, a Wi-Fi transceiver, which is an example of a wireless computer network interface. It is to be understood that the processor 58 may control the first CE device 44 to undertake present principles, including the other elements of the first CE device 44 described herein such as e.g. controlling the display 50 to present images thereon and receiving input therefrom. Furthermore, note the network interface 56 may be, e.g., a wired or wireless modem or router, or other appropriate interface such as, e.g., a wireless telephony transceiver, or Wi-Fi transceiver as mentioned above, etc.
[0041] In addition to the foregoing, the first CE device 44 may also include one or more input ports 60 such as, e.g., a USB port to physically connect (e.g. using a wired connection) to another CE device such as the ID 12 and/or a headphone port to connect headphones to the first CE device 44 for presentation of audio from the first CE device 44 to a consumer through the headphones. The first CE device 44 may further include one or more computer memories 62 such as disk-based or solid-state storage. Also in some embodiments, the first CE device 44 can include a position or location receiver such as but not limited to a cellphone and/or GPS receiver and/or altimeter 64 that is configured to e.g. receive geographic position information from at least one satellite and/or cell tower, sing triangulation, and provide the information to the CE device processor 58 and/or determine an altitude at which the first CE device 44 is disposed in conjunction with the CE device processor 58. However, it is to be understood that that another suitable position receiver other than a cellphone and/or GPS receiver and/or altimeter may be used in accordance with present principles to e.g. determine the location of the first CE device 44 in e.g. all three dimensions.
[0042] Continuing the description of the first CE device 44, in some embodiments the first CE device 44 may include one or more cameras 66 that may be, e.g., a thermal imaging camera, a digital camera such as a webcam, and/or a camera integrated into the first CE device 44 and controllable by the CE device processor 58 to gather pictures/images and/or video in accordance with present principles. Also included on the first CE device 44 may be a Bluetooth transceiver 68 and other Near Field Communication (NFC) element 70 for communication other devices using Bluetooth and/or NFC technology, respectively. An example NFC element can be a radio frequency identification (RFID) element.
[0043] Further still, the first CE device 44 may include one or more auxiliary sensors 72 (e.g., a motion sensor such as an accelerometer, gyroscope, cyclometer, or a magnetic sensor, an infrared (IR) sensor, an optical sensor, a speed and/or cadence sensor, a gesture sensor (e.g. for sensing gesture command, etc.) providing input to the CE device processor 58. The first CE device 44 may include still other sensors such as e.g. one or more climate sensors 74 (e.g. barometers, humidity sensors, wind sensors, light sensors, temperature sensors, etc.) and/or one or more biometric sensors 76 providing input to the CE device processor 58. In addition to the foregoing, it is noted that in some embodiments the first CE device 44 may also include an infrared (IR) transmitter and/or IR receiver and/or IR transceiver 78 such as an IR data association (IRDA) device. A battery (not shown) may be provided for powering the first CE device 44.
[0044] The second CE device 46 may include some or all of the components shown for the CE device 44.
[0045] Now in reference to the afore-mentioned at least one server 80, it includes at least one server processor 82, at least one computer memory 84 such as disk-based or solid-state storage, and at least one network interface 86 that, under control of the server processor 82, allows for communication with the other devices of
[0046] Accordingly, in some embodiments the server 80 may be an Internet server and may include and perform cloud functions such that the devices of the system 10 may access a cloud environment via the server 80 in example embodiments. Or, the server 80 may be implemented by a game console or other computer in the same room as the other devices shown in
[0047]
[0048] As shown in
[0049]
[0050]
[0051] In executing a pixel-by-pixel comparison, each pixel in the photo under test may be compared to the same pixel location in a grid of pixels of a prior photo and the difference between pixel values determined. The cumulative differences between all corresponding pixels may be summed and compared to a test value, and if the cumulative differences are less than the test value, the output of decision diamond 404 can indicate duplicate photo, to cause the logic to flow to block 406. On the other hand, if the cumulative differences are not less than the test value, the output of decision diamond 404 can indicate not a duplicate photo, to cause the logic to loop back to block 400 to receive another photo under test (or to compare the current photo under test with another prior photograph if any remain untested from block 402).
[0052] Or, other operations may be performed to compare pixels. For example, the differences between pixel values may be averaged and compared to a test average, or the differences may be squared and then divided by a sum of the squares of individual pixel differences and compared to a test value. These are but examples of techniques to compare pixels in two photographs to determine whether any substantially duplicate photographs have been taken.
[0053] At block 406, a user interface (UI) may be presented on a display of the camera to inform the user of potential duplicate photographs and to afford the user the option of deleting duplicates or retaining them, as the user may wish to retain seemingly duplicate photographs owing to small differences between them that are nonetheless important to the user. An example UI is shown in
[0054]
[0055] In example implementations, the subset of pixels may be identified as those establishing an image of a human face, as indicated by, e.g., image recognition of an image shape in the photograph corresponding to the shape of a human head, or as indicated by image recognition indicating facial features such as human eyes. In another embodiment, the subset of pixels to be analyzed may be identified based on a histogram indicating that the subset has a higher variance in pixel values exceeding a threshold. In other embodiments, the center-most pixels in the photo are identified as the subset to be compared against prior photographs. In other embodiments, the subset of pixels may be identified as being those pixels in images within the photograph that are in-focus. Other heuristics may be used for selecting the subset.
[0056] Moving to block 504, the subset of pixels from block 502 of the new photograph can be compared with other photos already taken by the same camera and typically stored on the local data storage of the camera. In examples, the comparison may be executed only against the corresponding subsets of pixels of earlier photos that have timestamps or other metadata indicating that they were taken in a most recent period, for example, within the last ten seconds prior to taking the photo under test, as photos taken outside the most recent period are less likely to be duplicates than photos taken within the most recent period. This may be done using a pixel-by-pixel comparison between subsets of pixels under test according to principles above, with pixels outside the subset identified at block 502 not being tested.
[0057] If a photo under test at block 504 is determined to be a substantial duplicate of an earlier photo at decision diamond 506, the logic moves block 508. On the other hand, if the output of decision diamond 506 is negative the logic can loop back to block 500 to receive another photo under test (or to compare the current photo under test with another prior photograph if any remain untested from block 504).
[0058] At block 508, a UI may be presented on a display of the camera to inform the user of potential duplicate photographs and to afford the user the option of deleting duplicates or retaining them, as the user may wish to retain seemingly duplicate photographs owing to small differences between them that are nonetheless important to the user. An example UI is shown in
[0059]
[0060] The UI 600 may include one or more selectors such as one or more of the example selectors shown and discussed now. For example, the UI 600 may include a selector 604 to keep both (or all, if more than two) potentially duplicate photos. A selector 606 may be provided to delete both (or all, if more than two) potentially duplicate photos. A selector 608 may be provided to keep only photos selected by the user from, e.g., a list, or by touching presentations of the photos as will be described shortly. Yet again, a selector 610 may be provided to delete only photos selected by the user from, e.g., a list, or by touching presentations of the photos as will be described shortly. A selector 611 also may be provided that, if selected, causes the processor to automatically delete the earlier photo or the later photo as set by the manufacturer or as modified by the user.
[0061] Indeed, in the example shown in
[0062] While particular techniques are herein shown and described in detail, it is to he understood that the subject matter which is encompassed by the present application is limited only by the claims.