This invention generally relates to removing aberrations in an image that are caused by a moving object. More specifically, the inventions relates to using a sequence of images to determine regions in an image, generated using a flash light source, that depict the motion of an object, and removing such aberrations from the image.
When capturing an image, a flash can be used to illuminate a scene with artificial light. The flash can illuminate the scene over such a short period of time that moving objects can appear stationary in a captured image. However, when using a flash, the background of a scene may appear darker than the foreground. In contrast, an image captured using only ambient light may provide a brighter depiction of the background than that produced in an image captured using a flash. By capturing both an ambient image and a flash image of a scene and fusing the images, an image can be generated having preferred features of each. However, motion of an object between the time at which the first image is captured and the time at which the second image is captured may cause the appearance of motion regions in the fused image.
Traditionally, motion in an image is detected by comparing a desired image with a reference image and determining a difference in the pixels between the images. Motion detection between images using flash and ambient lighting is challenging and often results in false-positives, which can be the result of shadows caused by a flash and/or having different visible areas in the flash and ambient images.
One innovation is a method for compensating for aberrations produced by a moving object in an image. In some embodiments, the method includes generating a first image of a scene having a first exposure and a first external lighting, generating a second image of the scene having a second exposure and a second external lighting, the second exposure and the second external lighting being different from the first exposure and the first external lighting, the second image captured at a time subsequent to the first image, and generating a third image of the scene having the first exposure and the first external lighting, the third image captured at a time subsequent to the second image. The method may further include determining one or more motion regions using the first image and third image, the one or more motion regions indicating areas in one or more of the first image, second image, and third image that indicate the position of a moving object during the period of time over which the first image, second image, and third image are captured. Another innovation is a method for compensating for aberrations produced by a moving object in an image that was captured using a flash illumination system. In some embodiments, the method includes capturing a first image at a time t−Δt1, capturing a second image subsequent to the first image at a time t, said capturing the second image including activating the flash illumination system, where Δt1 represents the time between capturing the first image and capturing the second image, and capturing a third image subsequent to the second image at a time t+Δt2, where Δt2 represents the time between capturing the second image and capturing the third image. The method may further include determining motion information of an object that is depicted in the first, second and third image and modifying at least one portion of the second image using the motion information and a portion of the first image, a portion of the third image, or a portion of the first image and a portion of the third image.
In one example, the first image and the third image are captured using ambient light. The second image can be captured using a flash illumination system. The method can further include modifying one or more pixels of the first image and the third image, quantifying a difference value between each set of corresponding pixels, a set of corresponding pixels comprising a pixel in one of the first image or the third image and a pixel in the other of the first image or the third image corresponding to the same location in the image, and thresholding the difference values between each set of corresponding pixels. In one example, determining one or more motion regions is based at least in part on the location of each set of corresponding pixels having a difference value above a threshold value. In some embodiments, the method can further include generating a fourth image using one or more portions of the second image corresponding to motion regions in one or more of the first image and the third image and one or more portions of one or more of the first image and the third image. In some embodiments, the method further includes merging a portion of the second image with a portion of the first image, a portion of the third image, or a portion of the first image and a portion of the third image. In one example, merging a portion of the second image with a portion of the first image, a portion of the third image, or a portion of the first image and a portion of the third image includes layering one or more sections of one or more of the first image, second image, or third image, over a motion region detected in another one of the first image, second image, or third image, where the one or more sections comprise the same area of a scene as that concealed by a motion region from an image where the area was not concealed by a motion region.
Another aspect of the invention is computer readable medium having stored thereon instructions which when executed perform a method for compensating for aberrations produced by a moving object in an image.
Another aspect of the invention is an apparatus configured to compensate for aberrations produced by a moving object in an image. In some embodiments, the apparatus may include a flash system capable of producing illumination for imaging. In some embodiments, the apparatus may include a camera coupled to the flash system. The camera can be configured to generate a first image of a scene having a first exposure and a first external lighting, generate a second image of the scene having a second exposure and a second external lighting, the second exposure and the second external lighting being different from the first exposure and the first external lighting, the second image captured at a time subsequent to the first image, and generate a third image of the scene having the first exposure and the first external lighting, the third image captured at a time subsequent to the second image. The apparatus can also include a memory component configured to store images captured by the camera. In some embodiments, the apparatus can also include a processor configured to determine one or more motion regions using the first image and third image, the one or more motion regions indicating areas in one or more of the first image, second image, and third image that indicate the position of a moving object during the period of time over which the first image, second image, and third image are captured.
In one example, the first image and the third image are generated using ambient light and the second image is generated using a flash to illuminate the scene. In some embodiments, the processor is further configured to adjust auto white balance, auto exposure, and auto focusing parameters of the first image and the third image before determining the one or more motion regions. In some embodiments, the processor is further configured to modify one or more pixels of the first image and the third image, quantify a difference value between each set of corresponding pixels, a set of corresponding pixels comprising a pixel in one of the first image or the third image and a pixel in the other of the first image or the third image corresponding to the same location in the image, and threshold the difference values between each set of corresponding pixels. In some embodiments, the processor is configured to determine one or more motion regions based at least in part on the location of each set of corresponding pixels having a difference value above a threshold value. In some embodiments, the processor is further configured to generate a fourth image using one or more portions of the second image corresponding to motion regions in one or more of the first image and the third image and one or more portions of one or more of the first image and the third image. In some embodiments, the processor is further configured to merge a portion of the second image with a portion of the first image, a portion of the third image, or a portion of the first image and a portion of the third image. In some embodiments, the processor is configured to layer one or more sections of one or more of the first image, second image, or third image, over a motion region detected in another one of the first image, second image, or third image, where the one or more sections comprise the same area of a scene as that concealed by a motion region from an image where the area was not concealed by a motion region.
The following detailed description is directed to certain specific embodiments of the invention. However, the invention can be embodied in a multitude of different ways. It should be apparent that the aspects herein may be embodied in a wide variety of forms and that any specific structure, function, or both being disclosed herein is merely representative of one or more embodiments of the invention. An aspect disclosed herein may be implemented independently of any other aspects and that two or more of these aspects may be combined in various ways. For example, an apparatus may be implemented or a method may be practiced using any number of the aspects set forth herein. In addition, such an apparatus may be implemented or such a method may be practiced using other structure, functionality, or structure and functionality in addition to, or other than one or more of the aspects set forth herein.
The examples, systems, and methods described herein are described with respect to digital camera technologies. The systems and methods described herein may be implemented on a variety of different digital camera devices. These include general purpose or special purpose digital camera systems, environments, or configurations. Examples of digital camera systems, environments, and configurations that may be suitable for use with the invention include, but are not limited to, digital cameras, hand-held or laptop devices, and mobile devices (e.g., phones, smart phones, Personal Data Assistants (PDAs), Ultra Mobile Personal Computers (UMPCs), and Mobile Internet Devices (MIDs)).
Embodiments may be used to correct motion aberrations in an image that includes a moving object. Embodiments may use a series of three images taken in quick succession, the first and third image having the same exposure and external lighting, to detect motion regions in a scene. Some embodiments use a series of ambient-flash-ambient images. “Ambient-flash-ambient” refers to a series of three images captured in a relatively short time frame, where the first and third images are captured using ambient light and the second image is captured using a flash. For example, a first image may be exposed using ambient light at a time t−Δt1 where Δt1 represents the time between the first image and the second image. A second image may be subsequently exposed at a time t, using a flash light source. A third image may be subsequently exposed using ambient light at a time t+Δt2, where Δt2 represents the time between the second image and the third image. In some embodiments, Δt1 is equal to Δt2. In some embodiments, Δt1 is greater or less than Δt2.
Portions of an image representative of one or more moving objects may be determined in the two ambient images that temporally surround the flash image (a first ambient image captured before the flash image and a second ambient image captured after the flash image). In some embodiments, one or more image parameters are set to be the same for capturing the ambient-lit images in a sequence of images captured using ambient light for the first image, a flash light source for the second image, and ambient light for the third image helps to detect motion of an object in the two ambient images. For example, in some embodiments, one or more of auto white balance, auto exposure, and auto focusing image parameters (collectively referred to herein as the “3A parameters”) may be set to the same or similar values for the two ambient images. Portions of two or more of the ambient-flash-ambient images may be fused to remove the appearance of so-called “ghost regions” or motion regions, that is, image aberrations in regions of an image caused by motion of an object.
In an illustrative embodiment of methods and apparatuses relating to certain inventive aspects, three images are captured consecutively to detect motion regions in a scene and allow for compensation of those motion regions. Other embodiments may include only two images or more than three images.
Two or more images can be fused (or merged) to create a resulting image having features of each of the two or more images. In some embodiments, a flash image is fused with an ambient image so that one or more sections of the fused image will have features of the flash image and one or more sections of the fused image will have features of the ambient image. However, fusing two or more images capturing a moving object in a scene can result in several regions of the fused image that indicate the position of the moving object at different points in time.
In some embodiments, an apparatus and a method may detect motion regions in the scene using information from the two ambient images in a series of ambient-flash-ambient images.
The pixels determined to indicate motion can indicate the position of the moving object 105 at the time that image 101 was captured, t−Δt1, and at the time that image 103 was captured, t+Δt2, represented by regions 105A1 and 105A2 respectively in
In some embodiments, an apparatus and a method may merge (or fuse) image 101, image 102, and image 103 to generate an image having one or more portions from the flash image 102 and one or more portions of ambient image 101 and/or one or more portions of ambient image 103. A portion of the fused image corresponding to region 205, or part of region 205, can be taken from one of images 101, 102, and 103 so that the fused image depicts the position of the moving object 105 at a single one of times t−Δt1, t, and t+Δt2.
Image 106 depicts a fused image having portions of two or more of images 101, 102, and 103 (
Image 107 depicts a fused image having portions of two or more of images 101, 102, and 103, where the portion of the fused image corresponding to region 205 has been taken from image 102. Consequently, the image 107 depicts the position of the object 105 at time t, represented by region 105F, without aberrations in the motion regions representing the position of the object at the times at which images 101 and 103 were captured.
Image 108 depicts a fused image having portions of two or more of images 101, 102, and 103, where the portion of the fused image corresponding to region 205 has been taken from image 103. Consequently, the image 108 depicts the position of the object 105 at time t+Δt2, represented by region 105A2, without aberrations in the motion regions representing the position of the object at the times at which images 101 and 103 were captured.
In other implementations, the functionality described as being associated with the illustrated modules may be implemented in other modules, as one having ordinary skill in the art will appreciate.
In an illustrative embodiment, light enters the lens 310 and is focused on the imaging sensor 314. In some embodiments, the imaging sensor 314 can include a charge coupled device (CCD). In another aspect, the imaging sensor 314 can include a complimentary metal-oxide-semiconductor (CMOS) device. The lens 310 may be coupled to the actuator 312, and moved by the actuator 312. The actuator 312 is configured to move the lens 310 in a series of one or more lens movements during an AF operation. When the lens 310 reaches a boundary of its movement range, the lens 310 or actuator 312 may be referred to as saturated. The lens 310 may be actuated by any method known in the art including a voice coil motor (VCM), Micro-Electronic Mechanical System (MEMS), or a shape memory allow (SMA).
The display 380 is configured to display images captured via lens 310 and may also be utilized to implement configuration functions of device 300. In one implementation, display 380 can be configured to display one or more objects selected by a user, via an input device 390, of the imaging device.
The input device 390 may take on many forms depending on the implementation. In some implementations, the input device 390 may be integrated with the display 380 so as to form a touch screen display. In other implementations, the input device 390 may include separate keys or buttons on the imaging device 300. These keys or buttons may provide input for navigation of a menu that is displayed on the display 380. In other implementations, the input device 390 may be an input port. For example, the input device 390 may provide for operative coupling of another device to the imaging device 300. The imaging device 300 may then receive input from an attached keyboard or mouse via the input device 390.
Still referring to
The memory 320 may be considered a computer readable media and stores several modules. The modules store data values defining instructions for processor 305. These instructions configure the processor 305 to perform functions of device 300. For example, in some aspects, memory 320 may be configured to store instructions that cause the processor 305 to perform one or more of methods 400, 425, and 600, or portions thereof, as described below and as illustrated in
The control module 360 may be configured to control the operations of one or more of the modules in memory 320. The operating system module 365 includes instructions that configure the processor 305 to manage the hardware and software resources of the device 300.
The lens control module 325 includes instructions that configure the processor 305 to control the lens 310. Instructions in the lens control module 325 may configure the processor 305 to effect a lens position for lens 310. In some aspects, instructions in the lens control module 325 may configure the processor 305 to control the lens 310, in conjunction with image sensor 314 to capture an image. Therefore, instructions in the lens control module 325 may represent one means for capturing an image with an image sensor 314 and lens 310.
Still referring to
The input processing module 330 includes instructions that configure the processor 305 to read input data from the input device 390. In one aspect, input processing module 330 may configure the processor 305 to detect objects within an image captured by the image sensor 314. In another aspect, input processing module 330 may configure processor 305 to receive a user input from input device 390 and identify a user selection or configuration based on the user manipulation of input device 390. Therefore, instructions in the input processing module 330 may represent one means for identifying or selecting one or more objects within an image.
The parameter module 335 includes instructions that configure the processor 305 to determine the auto white balance, the auto exposure, and the auto focusing parameters of an image captured by the imaging device 300. The parameter module 335 may also include instructions that configure the processor 305 to adjust the auto white balance, auto exposure, and auto focusing parameters of one or more images.
The motion detection module 340 includes instructions that configure the processor 305 to detect a section of an image that may indicate motion of an object. In some embodiments, the motion detection module 340 includes instructions that configure the processor to compare sections of two or more images to detect sections of the images that may indicate motion of an object. The processor can compare sections of the two or more images by quantifying differences between pixels in the two or more images. In some embodiments, the motion detection module 340 includes instructions that configure the processor to threshold the values determined by quantifying the differences between pixels in the two or more images. In some embodiments, the two or more images are two ambient images in a series of ambient-flash-ambient images. The motion detection module 340 can also include instructions that configure the processor to modify the two or more images prior to comparison to account for innate differences in the images that could be mistakenly identified as motion regions.
The image layering module 345 includes instructions that configure the processor 305 to detect a section of an image that may be used to add to or modify another image. The image layering module 345 may also include instructions that configure the processor 305 to layer a section of an image on top of another image. In an illustrative embodiment, the image layering module 345 may include instructions for detecting sections of an image corresponding to a motion region in another image. The image layering module 345 may further include instructions to use a section of an image to add to or modify a section of another image corresponding to an aberration in a motion region. The image layering module 345 may also include instructions to layer a section of an image on to a section of another image.
After capturing the first image, the process 400 moves to block 410, where a second image, for example image 102 depicted in
After capturing the second image, the process 400 moves to block 415, where a third image, for example image 103 as depicted in
After capturing the third image, the process 400 moves to block 420, where the auto white balance, auto exposure, and auto focusing parameters of the first image and the third image may be adjusted to the same or similar values.
The process 400 then moves to process block 425, where motion regions are detected. An embodiment of detecting motion regions is described below with respect to
After motion regions are detected, the process moves to block 430, where one or more portions of the first image, of the second image, and of the third image that correspond to a region indicative of an object in motion in the scene, such as region 205 depicted in
The process 400 then moves to block 435, where a determination is made of a selection of a corresponding region from one of the first image, the second image, and the third image.
After a selection of a corresponding region from one of the first image, the second image, and the third image is determined, the process moves to block 440 where an image is generated having portions from two or more of the first image, second image, and third image, where one of the portions is the determined corresponding region. Consequently, the image is generated without motion regions. The process then concludes.
After the images are modified, the process moves to block 520, where differences are determined between pixels corresponding to the same location in two images of the modified images. The difference can be determined by subtracting a value for each pixel, such as an intensity value, from one of the modified images from a value for a corresponding pixel in the other modified image. Non-zero difference values indicate a difference exists in the corresponding pixels of the two images that are being compared, which can indicate that an object may have been moving in the region of the image shown in the pixel during the time period between the two images.
After difference values between corresponding pixels are determined, the process 425 moves to block 530, where the absolute value of each difference value is thresholded. The absolute value of each difference value can be thresholded to account for innate differences that could incorrectly be determined to indicate motion. Values above a threshold level can be determined to indicate motion in the scene captured in the series of ambient-flash-ambient images. The threshold level can be a preset value determined by experimentation. The threshold level may be determined empirically to minimize false motion determinations while identifying as much motion as possible. In some embodiments, the threshold level can be dynamically set by a user. Alternatively, the threshold level can be semi-automatically set based on a user input and processing results. After the absolute value of each difference value is thresholded, the process 425 concludes.
After the first image is generated using ambient light, the process moves to a step 620, where a second image of the scene (for example, image 102 depicted in
After the second image is generated using a flash to illuminate the scene, the process 600 moves to step 630, where a third image of the scene (for example, image 103 depicted in
After the third image of the scene is captured, the process moves to block 640, where one or more motion regions are determined. Determining motion regions can include determining a difference in characteristics of corresponding pixels that are in the first image and the third image. Such differences can be, for example, an intensity difference or a color difference. Embodiments of determining one or more motion regions are explained above with reference to
Implementations disclosed herein provide systems, methods and apparatus for multiple aperture array cameras free from parallax and tilt artifacts. One skilled in the art will recognize that these embodiments may be implemented in hardware, software, firmware, or any combination thereof.
In some embodiments, the circuits, processes, and systems discussed above may be implemented in a wireless communication device. The wireless communication device may be a kind of electronic device used to wirelessly communicate with other electronic devices. Examples of wireless communication devices include cellular telephones, smart phones, Personal Digital Assistants (PDAs), e-readers, gaming systems, music players, netbooks, wireless modems, laptop computers, tablet devices, etc.
The wireless communication device may include one or more image sensors, two or more image signal processors, and a memory including instructions or modules for carrying out the processes discussed above. The device may also have data, a processor loading instructions and/or data from memory, one or more communication interfaces, one or more input devices, one or more output devices such as a display device and a power source/interface. The wireless communication device may additionally include a transmitter and a receiver. The transmitter and receiver may be jointly referred to as a transceiver. The transceiver may be coupled to one or more antennas for transmitting and/or receiving wireless signals.
The wireless communication device may wirelessly connect to another electronic device (e.g., base station). A wireless communication device may alternatively be referred to as a mobile device, a mobile station, a subscriber station, a user equipment (UE), a remote station, an access terminal, a mobile terminal, a terminal, a user terminal, a subscriber unit, etc. Examples of wireless communication devices include laptop or desktop computers, cellular phones, smart phones, wireless modems, e-readers, tablet devices, gaming systems, etc. Wireless communication devices may operate in accordance with one or more industry standards such as the 3rd Generation Partnership Project (3GPP). Thus, the general term “wireless communication device” may include wireless communication devices described with varying nomenclatures according to industry standards (e.g., access terminal, user equipment (UE), remote terminal, etc.).
The functions described herein may be stored as one or more instructions on a processor-readable or computer-readable medium. The term “computer-readable medium” refers to any available medium that can be accessed by a computer or processor. By way of example, and not limitation, such a medium may include RAM, ROM, EEPROM, flash memory, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium that can be used to store desired program code in the form of instructions or data structures and that can be accessed by a computer. Disk and disc, as used herein, includes compact disc (CD), laser disc, optical disc, digital versatile disc (DVD), floppy disk and Blu-ray® disc where disks usually reproduce data magnetically, while discs reproduce data optically with lasers. It should be noted that a computer-readable medium may be tangible and non-transitory. The term “computer-program product” refers to a computing device or processor in combination with code or instructions (e.g., a “program”) that may be executed, processed or computed by the computing device or processor. As used herein, the term “code” may refer to software, instructions, code or data that is/are executable by a computing device or processor.
The methods disclosed herein include one or more steps or actions for achieving the described method. The method steps and/or actions may be interchanged with one another without departing from the scope of the claims. In other words, unless a specific order of steps or actions is required for proper operation of the method that is being described, the order and/or use of specific steps and/or actions may be modified without departing from the scope of the claims.
It should be noted that the terms “couple,” “coupling,” “coupled” or other variations of the word couple as used herein may indicate either an indirect connection or a direct connection. For example, if a first component is “coupled” to a second component, the first component may be either indirectly connected to the second component or directly connected to the second component. As used herein, the term “plurality” denotes two or more. For example, a plurality of components indicates two or more components.
The term “determining” encompasses a wide variety of actions and, therefore, “determining” can include calculating, computing, processing, deriving, investigating, looking up (e.g., looking up in a table, a database or another data structure), ascertaining and the like. Also, “determining” can include receiving (e.g., receiving information), accessing (e.g., accessing data in a memory) and the like. Also, “determining” can include resolving, selecting, choosing, establishing and the like.
The phrase “based on” does not mean “based only on,” unless expressly specified otherwise. In other words, the phrase “based on” describes both “based only on” and “based at least on.”
In the foregoing description, specific details are given to provide a thorough understanding of the examples. However, it will be understood by one of ordinary skill in the art that the examples may be practiced without these specific details. For example, electrical components/devices may be shown in block diagrams in order not to obscure the examples in unnecessary detail. In other instances, such components, other structures and techniques may be shown in detail to further explain the examples.
Headings are included herein for reference and to aid in locating various sections. These headings are not intended to limit the scope of the concepts described with respect thereto. Such concepts may have applicability throughout the entire specification.
It is also noted that the examples may be described as a process, which is depicted as a flowchart, a flow diagram, a finite state diagram, a structure diagram, or a block diagram. Although a flowchart may describe the operations as a sequential process, many of the operations can be performed in parallel, or concurrently, and the process can be repeated. In addition, the order of the operations may be re-arranged. A process is terminated when its operations are completed. A process may correspond to a method, a function, a procedure, a subroutine, a subprogram, etc. When a process corresponds to a software function, its termination corresponds to a return of the function to the calling function or the main function.
The previous description of the disclosed implementations is provided to enable any person skilled in the art to make or use the present disclosure. Various modifications to these implementations will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other implementations without departing from the spirit or scope of the disclosure. Thus, the present disclosure is not intended to be limited to the implementations shown herein but is to be accorded the widest scope consistent with the principles and novel features disclosed herein.
This application claims the benefit of U.S. Provisional Application No. 62/113,289 filed on Feb. 6, 2015, and entitled “DETECTING MOTION REGIONS IN A SCENE USING AMBIENT-FLASH-AMBIENT IMAGES,” which is incorporated by reference herein in its entirety.
Number | Date | Country | |
---|---|---|---|
62113289 | Feb 2015 | US |