WO2016074128A1 - Image capturing apparatus and method - Google Patents

Image capturing apparatus and method Download PDF

Info

Publication number
WO2016074128A1
WO2016074128A1 PCT/CN2014/090711 CN2014090711W WO2016074128A1 WO 2016074128 A1 WO2016074128 A1 WO 2016074128A1 CN 2014090711 W CN2014090711 W CN 2014090711W WO 2016074128 A1 WO2016074128 A1 WO 2016074128A1
Authority
WO
WIPO (PCT)
Prior art keywords
face
image frame
image
tracker
facial expression
Prior art date
Application number
PCT/CN2014/090711
Other languages
French (fr)
Inventor
Xiaolu Shen
Lidan ZHANG
Wenlong Li
Yangzhou Du
Fucen ZENG
Qiang Li
Xiaofeng Tong
Original Assignee
Intel Corporation
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corporation filed Critical Intel Corporation
Priority to US14/775,387 priority Critical patent/US20160300100A1/en
Priority to PCT/CN2014/090711 priority patent/WO2016074128A1/en
Priority to EP14905858.8A priority patent/EP3218879A4/en
Priority to CN201480082621.7A priority patent/CN107251096B/en
Publication of WO2016074128A1 publication Critical patent/WO2016074128A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/16Human faces, e.g. facial parts, sketches or expressions
    • G06V40/161Detection; Localisation; Normalisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/98Detection or correction of errors, e.g. by rescanning the pattern or by human intervention; Evaluation of the quality of the acquired patterns
    • G06V10/993Evaluation of the quality of the acquired pattern
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/30Scenes; Scene-specific elements in albums, collections or shared content, e.g. social network photos or video
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/14Image acquisition
    • G06V30/142Image acquisition using hand-held instruments; Constructional details of the instruments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/16Human faces, e.g. facial parts, sketches or expressions
    • G06V40/161Detection; Localisation; Normalisation
    • G06V40/165Detection; Localisation; Normalisation using facial parts and geometric relationships
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/16Human faces, e.g. facial parts, sketches or expressions
    • G06V40/174Facial expression recognition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/20Movements or behaviour, e.g. gesture recognition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/60Static or dynamic means for assisting the user to position a body part for biometric acquisition
    • G06V40/67Static or dynamic means for assisting the user to position a body part for biometric acquisition by interactive indications to the user

Definitions

  • the present disclosure relates to the field of imaging. More particularly, the present disclosure relates to image capturing apparatus and method.
  • Face related application takes facial image as input, and extracts information like identity, expression or age for some purposes. Accuracy of such information highly relies on the quality of the facial image, where partial or large-angle face generally should be avoided.
  • image capturing devices or applications provide some form of guidance. For example, some image capturing devices or applications draw some markers on the camera preview screen to guide the end user, allowing the end user to align his/her face with the markers. This method requires some effort to follow, which may be hard for children or elderly users. In addition, it does not allow for rotation or expression, which is not particularly helpful for animation or photo enhancement applications.
  • the expressive expressions may include e.g., exaggerated laughing, being surprised, or any other funny facial expressions.
  • the current approach is to use professional video editing software to pick out these interesting moments from the input or generated avatar video. However, since these special moments, typically, occur infrequently, and in short periods of time, the current approach is not very user friendly for the average users.
  • Figure 1 illustrates a block diagram of an example imaging device, according to the disclosed embodiments.
  • Figure 2 illustrates various maneuvering of an imaging device, according to the disclosed embodiments.
  • Figure 3 illustrates example user instructions for capturing image frames with better face poses, according to the disclosed embodiments.
  • Figure 4 illustrates a process for capturing an image frame with an acceptable face pose, according to the disclosed embodiments.
  • Figure 5 illustrates two image frames taken without and with user instructions, according to the disclosed embodiments.
  • Figure 6 illustrates an example process for automatically capturing snapshots, according to the disclosed embodiments.
  • Figure 7 illustrates another example process for automatically capturing snapshots, according to the disclosed embodiments.
  • FIG. 8 illustrates an example computer system suitable for use to practice various aspects of the present disclosure, according to the disclosed embodiments.
  • Figure 9 illustrates a storage medium having instructions for practicing methods described with references to Figures 1-7, according to disclosed embodiments.
  • an apparatus may include a face tracker to receive an image frame, analyze the image frame for a face, and on identification of a face in the image frame, evaluate the face to determine whether the image frame comprises an acceptable or unacceptable face pose. Further, the face tracker may be configured to provide instructions for taking another image frame, on determination of the image frame having an unacceptable face pose, with the instructions designed to improve likelihood that the other image frame will comprise an acceptable face pose.
  • the image frame may be received from an image capturing engine (e.g., a camera) , and the apparatus may further comprise the image capturing engine.
  • an apparatus may include a face tracker to receive an image frame, analyze the image frame for a face, and on identification of a face in the image frame, extract a face shape of the face or determine a facial expression of the face. Further, the face tracker may be configured to make a determination on whether to add the image frame to a collection of snapshots. The determination may be based at least in part on the extracted face shape or the determined facial expression of the face in the image frame.
  • the image frame may be received from an image capturing engine (e.g., a camera) or an image generating engine (e.g., an animation-rendering engine) , and the apparatus may further comprise the image capturing and/or generating engine.
  • phrase “Aand/or B” means (A) , (B) , or (A and B) .
  • phrase “A, B, and/or C” means (A) , (B) , (C) , (A and B) , (A and C) , (B and C) , or (A, B and C) .
  • module may refer to, be part of, or include an Application Specific Integrated Circuit (ASIC) , an electronic circuit, a processor (shared, dedicated, or group) and/or memory (shared, dedicated, or group) that execute one or more software or firmware programs, a combinational logic circuit, and/or other suitable components that provide the described functionality.
  • ASIC Application Specific Integrated Circuit
  • imaging device 100 may include face tracker 102, one or more applications 104, and image capture engine 106, coupled with each other as shown.
  • Face tracker 102 may be configured to receive image frame 110 from image capturing engine 106, analyze image frame 110 for a face, and identify landmarks, facial expressions (such as eye and/or mouth movements) in the face.
  • Face tracker 102 may be configured to output face pose and expressions data 108 for applications 104, for use by applications 104.
  • An example of applications 104 may include, but is not limited to, an animation-rendering engine 104 configured to animate one or more avatars based at least in part on the face pose and expression data 108.
  • face tracker 102 may include image capture guiding function 112 configured to evaluate the face to determine whether image frame 110 comprises an acceptable or unacceptable face pose, on identification of a face in image frame 110. Further, image capture guiding function 112 may be configured to provide instructions 122, e.g., to a user, for taking another image frame, on determination of image frame 110 having an unacceptable face pose. The instructions may be designed to improve the likelihood that the next image frame 110 will comprise an acceptable face pose.
  • image frame 110 may be received from an image capturing engine 106.
  • An example of image capturing engine 106 may include, but is not limited to, a camera.
  • face tracker 102 may further include snapshot auto capture function 114 configured to extract a face shape of a face or determine a facial expression of a face, on identification of the face in image frame 110, and make a determination on whether to add image frame 110 (or an avatar image 111 generated based on face pose and expression data 108 of image frame 110) to a collection of snapshots (not shown) . The determination may be made based at least in part of the extracted face shape or the determined facial expression of the face in image frame 110.
  • image frame 110 may be received from image capturing engine 106 (e.g., a camera)
  • avatar image may be received from an application 104 (such as, an avatar animation-rendering engine) .
  • An avatar animation-rendering engine/application 104 that generates images may also be referred to as an image generating engine.
  • face tracker 102 may be any one of a number of known face tracker including, but is not limited to, the facial mesh tracker disclosed in PCT Application PCT/CN2014/073695, entitled FACIAL EXPRESSION AND/OR INTERACTION DRIVEN AVATAR APPARATUS AND METHOD, filed on March 19, 2014.
  • the face mesh tracker of PCT/CN2014/073695 may include a face detection function block to detect a face through window scan of one or more of a plurality of image frames, and a landmark detection function block to detect landmark points on the face.
  • it may also include an initial face mesh fitting function block to initialize a 3D pose of a face mesh based at least in part on a plurality of landmark points detected on the face, a facial expression estimation function block to initialize a plurality of facial motion parameters based at least in part on a plurality of landmark points detected on the face, a head pose tracking function block to calculate rotation angles of the user’s head, based on a subset of sub-sampled pixels of the plurality of image frames, a mouth openness estimation function block to calculate opening distance of an upper lip and a lower lip of the mouth, based on a subset of sub-sampled pixels of the plurality of image frames, a facial mesh tracking function block to adjust position, orientation or deformation of a face mesh to maintain continuing coverage of the face and reflection of facial movement by the face mesh, a tracking validation function block to monitor face mesh tracking status, to determine whether it is necessary to relocate the face, a mouth shape correction function block to correct mouth shape, through detection of inter-frame histogram differences for
  • Applications 104 may be any one of a number of known applications that can use face pose and expression data 108 provided by face tracker 102.
  • one of applications 104 may be an image generating engine such as the avatar animation-rendering engine disclosed in PCT Application PCT/CN2014/087248, entitled USER GESTURE DRIVEN AVATAR APPARATUS AND METHOD, filed on September 26, 2014.
  • the avatar animation-rendering engine of PCT/CN2014/087248 may be configured to animate a canned facial expression by blending first one or more pre-defined shapes into a neutral face during a start period, further blending or un-blending second one or more pre-defined shapes into the canned facial expression to animate the facial movements of the canned facial expression for the duration during a keep period, and un-blending the first or second one or more pre-defined shapes to return the avatar to the neutral face during an end period.
  • image capturing engine 106 may be any one of a number of known image capturing engines.
  • imaging device 100 may be practiced without applications 104 (including image generating applications) and/or image capturing engine 106.
  • Imaging device 100 with image capturing engine 106, and not image generating applications 104 may also be referred to as an image capturing device.
  • imaging device 100 with an image generating application 104, and not image capturing engine 106 may be referred to as an image generating device.
  • image device 100 may also be referred to as image capturing or generating device.
  • imaging device 100 may be a wide range of known imaging devices including, but are not limited to, wearable computing devices, smartphones, computing tablets, e-books, notebook computers, laptop computers, and so forth, equipped with image capturing engine and/or image generating applications.
  • an imaging device such as a smartphone
  • an image capturing engine such as a camera
  • the imaging device may also be rotated towards or away from the user 208, in a clockwise or counterclockwise direction 210, and/or to the left or right 212.
  • the instructions may include simple, easy-to-understand graphics, such as arrows in the form of arcs 302 to instruct e.g., a user, to move imaging device 100 in a clockwise or counterclockwise direction.
  • the instructions may include up and down arrows 304 to instruct e.g., a user, to move imaging device 100 in a positive Y or negative Y direction, or horizontal arrows 306 to instruct e.g., a user, to move imaging device 100 in a positive X or negative X direction.
  • the instructions may include arrows in the form of a cross 308 to instruct e.g., a user, to rotate imaging device 100 towards or away from a user, in a clockwise or counterclockwise direction, or towards the left or right, as earlier described with reference to Figure 2.
  • These example instructions are meant to be illustrative and non-limiting. It is anticipated that a wide range of simple and easy-to-understand graphics and/or textual instructions may be provided to guide a user in moving or rotating imaging device 100, such that the likelihood of the face pose of the next captured image will improve may increase.
  • process 400 for capturing an image frame with an acceptable face pose may include operations performed in blocks 402-410. The operations may be performed e.g., by the earlier described face tracker 102 with image capture guiding function 112.
  • Process 400 may start at block 402.
  • an image frame may be received.
  • analysis may be performed against the image frame, to identify a face in the image frame.
  • landmarks and/or facial expressions such as eye and/or mouth movements
  • Various methods may be used to identify the facial landmark positions including, but are not limited to, the supervised descent method, the active appearance models, and so forth.
  • the “supervised descent method, ” see e.g., Xiong, Xuehan, and Fernando De la Torre.
  • Supervised descent method and its applications to face alignment. Computer Vision and Pattern Recognition (CVPR) , 2013 IEEE Conference on. IEEE, 2013.
  • process 400 may proceed to block 406.
  • the face pose may be evaluated.
  • the evaluation may include computation of a number of translation positions along the x, y and z axes, tx, ty, tz, and angle positions of rotation around the x, y and z axes, rx, ry, rz, for the face pose.
  • Various method may be utilized to compute tx, ty, tz, and rx, ry, rz, including, but are not limited to a model based approach, a Perspective n point (pnp) problem approach.
  • pnp Perspective n point
  • tx, ty, tz, and rx, ry, rz may be compared to corresponding reference ranges to determine if the quantities are within or outside the reference ranges, position (tx 1 , tx 2 , ty 1 , ty 2 , tz 1 , tz 2 ) and angle (rx 1 , rx 2 , ry 1 , ry 2 , rz 1 , rz 2 ) as follows:
  • a face pose may be considered acceptable or good, if tx, ty, tz, and rx, ry, rz, are all within the reference ranges, otherwise, the face pose may be considered not acceptable or not good.
  • process 400 may proceed from block 406 to block 408.
  • instructions may be given to guide the user in moving imaging device 100 and take at least another image frame.
  • the instructions e.g., moving imaging device 100 in a positive or negative direction along an X, Y and/or Z axis, closer or away from the user, clockwise or counterclockwise, tilting left or right and so forth, may be provided, based at least in part on the amounts the various reference ranges are exceeded.
  • a six dimensional data structure, tx, ty, tz, and rx, ry, rz, having various instructions for moving imaging device 100 in a positive or negative direction along an X, Y and/or Z axis, closer or away from the user, clockwise or counterclockwise, tilting left or right and so forth, for various excess amounts may be pre-configured/maintained, e.g., by image capture guiding function 112.
  • Operations at blocks 402-408 may be repeated a number of times, until eventually, the result of the evaluation at block 406 indicates that the face pose is acceptable or good. At such time, process 400 may proceed from block 406 to block 410. At block 410, the image frame with the acceptable or good face pose may be output, e.g., for one or more applications 104.
  • Figure 5 illustrates two image frames taken without and with user instructions, according to the disclosed embodiments. More specifically, image frame 502 is taken without guidance, resulting in a face pose that is not acceptable or not good. Image frame 504 is a subsequent re-take following the instructions provided to move imaging device 100, resulting in a face pose that is acceptable or good.
  • process 600 for automatically capturing snapshots may include operations performed at blocks 602-610. The operations may be performed e.g., by the earlier described snapshots auto capture function 114.
  • Process 600 may begin at block 602.
  • a collection of snapshots (S) of user or avatar images may be initialized with a snapshot with a neutral face shape b 0 .
  • the collection may be initialized e.g., at a user’s request, during a user registration, and so forth.
  • a current image frame e.g., a current image frame captured by image capturing engine 106 may be processed and analyzed to identify a face. Further, on identification of a face, the face shape of the face b’ may be extracted.
  • the face shape b’ of the face in the current image frame may be compared with face shapes of the faces of the snapshots in the collection S, to select a snapshot with face that has the closest face shape b i .
  • a determination may be made on whether the current image frame should be considered as similar or dissimilar to the closest snapshot selected. The determination may be made e.g., based on a dissimilarity measure.
  • the dissimilarity measure may be the absolute distance between b’ and b i , i.e.,
  • the current image frame may be considered to be dissimilar to the closest selected snapshot if
  • process 600 may proceed from block 608 to block 610.
  • the current image frame (and/or an avatar image generated based on the face pose and expression data of the image frame) may be automatically added to the collection of snapshots.
  • process 600 may return to block 604, and continue therefrom as earlier described to analyze a next image frame. Operations at bock 604 to block 608 may be repeated any number of times for as long as there are image frames being captured/generated.
  • process 700 for automatically capturing snapshots may include operations performed at blocks 702-708. The operations may be performed e.g., by the earlier described snapshots auto capture function 114.
  • Process 700 may start at block 702.
  • an image frame may be received.
  • the image frame may be received e.g., from image capturing engine 106.
  • the image frame may be processed and analyzed to identify a face. Further, the face may be analyzed for facial expression, such as eye and/or mouth movements, head pose, and so forth.
  • a determination may be made on whether the facial expression is a facial expression of interest that a collection of snapshots does not have of the user or an avatar.
  • facial expression of interest may include, but are not limited to, facial expressions with exaggerated eye and/or mouth movements, tongue-out, big smiles, grin, and so forth.
  • the facial expression of interest may be pre-defined and maintained in a facial expression of interest list. Similarly, corresponding lists may be maintained to track whether snapshots of a user or an avatar with the facial expressions of interest have been previously captured and saved into the collection of snapshots.
  • process 700 may proceed from block 706 to block 708.
  • the current image frame (and/or an avatar image generated based on face pose and expression data of the image frame) may be automatically added to the collection of snapshots.
  • process 700 may return to block 702, and continue therefrom as earlier described to analyze a next image frame. Operations at bock 702 to block 706 may be repeated any number of times for as long as there are image frames captured/generated.
  • FIG. 8 illustrates an example computer system that may be suitable for use to practice selected aspects of the present disclosure.
  • computer 800 may include one or more processors or processor cores 802, and system memory 804.
  • processors or processor cores may be considered synonymous, unless the context clearly requires otherwise.
  • computer 800 may include mass storage devices 806 (such as diskette, hard drive, compact disc read only memory (CD-ROM) and so forth) , input/output devices 808 (such as display, keyboard, cursor control and so forth) and communication interfaces 610 (such as network interface cards, modems and so forth) .
  • the elements may be coupled to each other via system bus 812, which may represent one or more buses. In the case of multiple buses, they may be bridged by one or more bus bridges (not shown) .
  • system memory 804 and mass storage devices 806 may be employed to store a working copy and a permanent copy of the programming instructions implementing the operations associated with face tracker 102, in particular, image capture guiding function 112 and/or snapshot auto capture function 114, earlier described, collectively referred to as computational logic 822.
  • the various elements may be implemented by assembler instructions supported by processor (s) 802 or high-level languages, such as, for example, C, that can be compiled into such instructions.
  • the number, capability and/or capacity of these elements 810 -812 may vary, depending on whether computer 800 is used as a mobile device, a stationary device or a server. When use as mobile device, the capability and/or capacity of these elements 810 -812 may vary, depending on whether the mobile device is a smartphone, a computing tablet, an ultrabook or a laptop. Otherwise, the constitutions of elements 810-812 are known, and accordingly will not be further described.
  • the present disclosure may be embodied as methods or computer program products. Accordingly, the present disclosure, in addition to being embodied in hardware as earlier described, may take the form of an entirely software embodiment (including firmware, resident software, micro-code, etc. ) or an embodiment combining software and hardware aspects that may all generally be referred to as a “circuit, ” “module” or “system. ” Furthermore, the present disclosure may take the form of a computer program product embodied in any tangible or non-transitory medium of expression having computer-usable program code embodied in the medium.
  • Non-transitory computer-readable storage medium 902 may include a number of programming instructions 904.
  • Programming instructions 904 may be configured to enable a device, e.g., computer 800, in response to execution of the programming instructions, to perform, e.g., various operations associated with face tracker 102, in particular, image capture guiding function 112 and/or snapshot auto capture function 114.
  • programming instructions 904 may be disposed on multiple computer-readable non-transitory storage media 902 instead.
  • programming instructions 904 may be disposed on computer-readable transitory storage media 902, such as, signals.
  • the computer-usable or computer-readable medium may be, for example but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, device, or propagation medium.
  • the computer-readable medium would include the following: an electrical connection having one or more wires, a portable computer diskette, a hard disk, a random access memory (RAM) , a read-only memory (ROM) , an erasable programmable read-only memory (EPROM or Flash memory) , an optical fiber, a portable compact disc read-only memory (CD-ROM) , an optical storage device, a transmission media such as those supporting the Internet or an intranet, or a magnetic storage device.
  • RAM random access memory
  • ROM read-only memory
  • EPROM or Flash memory erasable programmable read-only memory
  • CD-ROM compact disc read-only memory
  • CD-ROM compact disc read-only memory
  • a transmission media such as those supporting the Internet or an intranet, or a magnetic storage device.
  • a computer-usable or computer-readable medium could even be paper or another suitable medium upon which the program is printed, as the program can be electronically captured, via, for instance, optical scanning of the paper or other medium, then compiled, interpreted, or otherwise processed in a suitable manner, if necessary, and then stored in a computer memory.
  • a computer-usable or computer-readable medium may be any medium that can contain, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device.
  • the computer-usable medium may include a propagated data signal with the computer-usable program code embodied therewith, either in baseband or as part of a carrier wave.
  • the computer usable program code may be transmitted using any appropriate medium, including but not limited to wireless, wireline, optical fiber cable, RF, etc.
  • Computer program code for carrying out operations of the present disclosure may be written in any combination of one or more programming languages, including an object oriented programming language such as Java, Smalltalk, C++ or the like and conventional procedural programming languages, such as the “C” programming language or similar programming languages.
  • the program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user’s computer and partly on a remote computer or entirely on the remote computer or server.
  • the remote computer may be connected to the user’s computer through any type of network, including a local area network (LAN) or a wide area network (WAN) , or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider) .
  • LAN local area network
  • WAN wide area network
  • Internet Service Provider for example, AT&T, MCI, Sprint, EarthLink, MSN, GTE, etc.
  • These computer program instructions may also be stored in a computer-readable medium that can direct a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer-readable medium produce an article of manufacture including instruction means which implement the function/act specified in the flowchart and/or block diagram block or blocks.
  • the computer program instructions may also be loaded onto a computer or other programmable data processing apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide processes for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
  • each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function (s) .
  • the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved.
  • Embodiments may be implemented as a computer process, a computing system or as an article of manufacture such as a computer program product of computer readable media.
  • the computer program product may be a computer storage medium readable by a computer system and encoding a computer program instructions for executing a computer process.
  • processors 802 may be packaged together with memory having computational logic 822 (in lieu of storing on memory 804 and storage 806) .
  • processors 802 may be packaged together with memory having computational logic 822 to form a System in Package (SiP) .
  • SiP System in Package
  • processors 802 may be integrated on the same die with memory having computational logic 822.
  • processors 802 may be packaged together with memory having computational logic 822 to form a System on Chip (SoC) .
  • SoC System on Chip
  • the SoC may be utilized in, e.g., but not limited to, a smartphone or computing tablet.
  • Example 1 may be an apparatus for capturing or generating image.
  • the apparatus may comprise an image capturing engine; and a face tracker coupled with the image capturing engine.
  • the face tracker may be configured to receive an image frame from the image capturing engine, analyze the image frame for a face, and on identification of a face in the image frame, evaluate the face to determine whether the image frame comprises an acceptable or unacceptable face pose. On determination of the image frame having an unacceptable face pose, the face tracker may further provide instructions for taking another image frame, with the instructions designed to improve likelihood that the other image frame will comprise an acceptable face pose.
  • Example 2 may be example 1, wherein the face tracker, as part of evaluation of the face pose, may determine a plurality of translation positions or a plurality of angles of the face pose.
  • Example 3 may be example 2, wherein the face tracker, as part of evaluation of the face pose, may first determine a plurality of landmarks of the face, and then determine the plurality of translation positions or the plurality of angles of the face pose, based at least in part on the determined landmarks.
  • Example 4 may be example 2, wherein the face tracker, as part of evaluation of the face pose, may further determine whether the plurality of translation positions or the plurality of angles for the face pose are within corresponding ranges for the translation positions and the angles.
  • Example 5 may be example 4, wherein the face tracker may provide the instructions, on determination that at least one of the plurality of translation positions or the plurality of angles is out of a corresponding range for the translation position or angle.
  • Example 6 may be any one of examples 1-5, wherein the face tracker may instruct rotating the apparatus towards or away from a user, in a clockwise or counterclockwise direction, or to a left or right direction, prior to taking another image frame.
  • Example 7 may be any one of examples 1-5, wherein the face tracker may instruct moving the apparatus along an X-axis, a Y-axis or a Z-axis, in a positive or negative direction, prior to taking another image frame.
  • Example 8 may be any one of examples 1-7, wherein the face tracker may further receive a second image frame from either the image capturing engine or an image generating engine, analyze the second image frame for a second face, and on identification of a second face in the second image frame, extract a face shape of the second face or determine a facial expression of the second face, and make a determination on whether to automatically add the second image frame or an avatar image generated based at least in part on the second image frame to a collection of snapshots. The determination may be based at least in part of the extracted face shape or the determined facial expression of the second face in the second image frame.
  • Example 9 may be example 8, wherein the face tracker, on identification of a second face in the second image frame, may extract a face shape of the second face; wherein the face tracker is also to initialize the collection of snapshots with a snapshot having a third face with a neutral face shape.
  • Example 10 may be example 9, wherein the face tracker, as part of making the determination, may select a snapshot within the collection of snapshots that has a fourth face that is closest to the second face in the second image frame.
  • Example 11 may be example 10, wherein the face tracker, as part of making the determination, may further compute a dissimilarity measure between the face shape of the second face in the second image frame, and the face shape of the fourth face in the selected snapshot.
  • Example 12 may be example 11, wherein the face tracker, as part of making the determination, may further determine whether the dissimilarity measure exceeds a threshold.
  • Example 13 may be example 12, wherein the face tracker may automatically add the second image frame or an avatar image generated based at least in part on the second image frame to the collection of snapshots on determination that the dissimilarity measure exceeded the threshold.
  • Example 14 may be example 8, wherein the face tracker, on identification of a second face in the second image frame, may determine a facial expression of the second face. The face tracker may also determine whether the determined facial expression of the second face is a facial expression of interest.
  • Example 15 may be example 14, wherein the face tracker may automatically add the second image frame or an avatar image generated based at least in part on the second image frame to the collection of snapshots on determination that the determined facial expression is a facial expression of interest.
  • Example 16 may be an apparatus for capturing or generating image.
  • the apparatus may comprise an image capturing or generating engine; and a face tracker coupled with the image capturing or generating engine.
  • the face tracker may be configured to receive an image frame from the image capturing or generating engine, analyze the image frame for a face, and on identification of a face in the image frame, extract a face shape of the face or determine a facial expression of the face.
  • the face tracker may further make a determination on whether to automatically add the image frame or an avatar image generated based at least in part on the image frame to a collection of snapshots. The determination may be based at least in part of the extracted face shape or the determined facial expression of the face in the image frame.
  • Example 17 may be example 16, wherein the face tracker, on identification of a face in the image frame, may extract a face shape of the face.
  • the face tracker may also initialize the collection of snapshots with a snapshot having a face with a neutral face shape.
  • Example 18 may be example 17, wherein the face tracker, as part of making the determination, may select a snapshot within the collection of snapshots that has a face that is closest to the face in the image frame.
  • Example 19 may be example 18, wherein the face tracker, as part of making the determination, may further compute a dissimilarity measure between the face shape of the face in the image frame, and the face shape of the face in the selected snapshot.
  • Example 20 may be example 19, wherein the face tracker, as part of making the determination, may further determine whether the dissimilarity measure exceeds a threshold.
  • Example 21 may be example 20, wherein the face tracker may automatically add the image frame or an avatar image generated based at least in part on the image frame to the collection of snapshots on determination that the dissimilarity measure exceeded the threshold.
  • Example 21 may be any one of examples 16-21, wherein the face tracker, on identification of a face in the image frame, may determine a facial expression of the face. The face tracker may also determine whether the determined facial expression of the face is a facial expression of interest.
  • Example 23 may be example 22, wherein the face tracker may automatically add the image frame or an avatar image generated based at least in part on the image frame to the collection of snapshots on determination that the determined facial expression is a facial expression of interest.
  • Example 24 may be a method for capturing or generating an image.
  • the method may comprise: receiving, by a face tracker of an image capturing or generating apparatus, an image frame; analyzing the image frame, by the face tracker, for a face; on identification of a face in the image frame, evaluating the face, by the face tracker, to determine whether the image frame comprises an acceptable or unacceptable face pose; and on determination of the image frame having an unacceptable face pose, providing, by the face tracker, instructions for taking another image frame, with the instructions designed to improve likelihood that the other image frame will comprise an acceptable face pose.
  • Example 25 may be example 24, wherein evaluating may comprise determining a plurality of translation positions or a plurality of angles of the face pose.
  • Example 26 may be example 25, wherein evaluating may comprise first determining a plurality of landmarks of the face, and then determining the plurality of translation positions or the plurality of angles of the face pose, based at least in part on the determined landmarks.
  • Example 27 may be example 25, wherein evaluating may comprise determining whether the plurality of translation positions or the plurality of angles for the face pose are within corresponding ranges for the translation positions and the angles.
  • Example 28 may be example 27, wherein providing instructions may comprise providing the instructions, on determining that at least one of the plurality of translation positions or the plurality of angles is out of a corresponding range for the translation position or angle.
  • Example 29 may be any one of examples 24-28, wherein providing instructions may comprise providing instructions to rotate the apparatus towards or away from a user, in a clockwise or counterclockwise direction, or to a left or right direction, prior to taking another image frame.
  • Example 30 may be any one of examples 24-28, wherein providing instructions may comprise providing instructions to move the apparatus along an X-axis, a Y-axis or a Z-axis, in a positive or negative direction, prior to taking another image frame.
  • Example 31 may be any one of examples 24-30, further comprising receiving, by the face tracker, a second image frame; analyzing, by the face tracker, the second image frame for a second face; on identification of a second face in the second image frame, extracting, by the face tracker, a face shape of the second face or determining, by the face tracker, a facial expression of the second face; and determining, by the face tracker, whether to automatically add the second image frame or an avatar image generated based at least in part on the second image frame to a collection of snapshots. Further, determining may be based at least in part of the extracted face shape or the determined facial expression of the second face in the second image frame.
  • Example 32 may be example 31, further comprising, initializing, by the face tracker, the collection of snapshots with a snapshot having a third face with a neutral face shape; and on identification of a second face in the second image frame, extracting by the face tracker, a face shape of the second face.
  • Example 33 may be example 32, wherein determining whether to automatically add the second image frame to a collection of snapshots may comprise selecting a snapshot within the collection of snapshots that has a fourth face that is closest to the second face in the second image frame.
  • Example 34 may be example 33, wherein determining whether to automatically add the second image frame to a collection of snapshots may further comprise computing a dissimilarity measure between the face shape of the second face in the second image frame, and the face shape of the fourth face in the selected snapshot.
  • Example 35 may be example 34, wherein determining whether to automatically add the second image frame to a collection of snapshots may further comprise determining whether the dissimilarity measure exceeds a threshold.
  • Example 36 may be example 35, further comprising automatically adding, by the face tracker, the second image frame or an avatar image generated based at least in part on the second image frame to the collection of snapshots on determination that the dissimilarity measure exceeded the threshold.
  • Example 37 may be example 31, further comprising, on identification of a second face in the second image frame, determining, by the face tracker, a facial expression of the second face, including determining whether the determined facial expression of the second face is a facial expression of interest.
  • Example 38 may be example 37, further comprising automatically adding, by the face tracker, the second image frame or an avatar image generated based at least in part on the second image frame to the collection of snapshots on determination that the determined facial expression is a facial expression of interest.
  • Example 39 may be a method for capturing or generating an image.
  • the method may comprise: receiving, by a face tracker of an image capturing or generating apparatus, an image frame; analyzing, by the face tracker, the image frame for a face; on identification of a face in the image frame, extracting, by the face tracker, a face shape of the face or determining, by the face tracker, a facial expression of the face; and determining, by the face tracker, whether to automatically add the image frame or an avatar image generated based at least in part on the image frame to a collection of snapshots, wherein the determination is based at least in part of the extracted face shape or the determined facial expression of the face in the image frame.
  • Example 40 may be example 39, further comprising, initializing, by the face tracker, the collection of snapshots with a snapshot having a face with a neutral face shape; and on identification of a face in the image frame, extracting, by the face tracker, a face shape of the face.
  • Example 41 may be example 40, wherein determining whether to automatically add the second image to a collection of snapshots may further comprise selecting a snapshot within the collection of snapshots that has a face that is closest to the face in the image frame.
  • Example 42 may be example 41, wherein determining whether to automatically add the second image to a collection of snapshots may further comprise computing a dissimilarity measure between the face shape of the face in the image frame, and the face shape of the face in the selected snapshot.
  • Example 43 may be example 42, wherein determining whether to automatically add the second image to a collection of snapshots may further comprise determining whether the dissimilarity measure exceeds a threshold.
  • Example 44 may be example 43, further comprising automatically adding, by the face tracker, the image frame or an avatar image generated based at least in part on the image frame to the collection of snapshots on determining that the dissimilarity measure exceeded the threshold.
  • Example 45 may be any one of examples 39-44, further comprising, on identification of a face in the image frame, determining, by the face tracker, a facial expression of the face; wherein the face tracker is also to determine whether the determined facial expression of the face is a facial expression of interest.
  • Example 46 may be example 45, further comprising automatically adding, by the face tracker, the image frame or an avatar image generated based at least in part on the image frame to the collection of snapshots on determination that the determined facial expression is a facial expression of interest.
  • Example 47 may be at least one computer-readable medium having instructions to cause an image capturing or generating apparatus, in response to execution of the instructions by the apparatus, to implement a face tracker.
  • the face tracker may receive an image frame from the image capturing engine, analyze the image frame for a face, and on identification of a face in the image frame, evaluate the face to determine whether the image frame comprises an acceptable or unacceptable face pose. On determination of the image frame having an unacceptable face pose, the face tracker may further provide instructions for taking another image frame, with the instructions designed to improve likelihood that the other image frame will comprise an acceptable face pose.
  • Example 48 may be example 47, wherein the face tracker, as part of evaluation of the face pose, may determine a plurality of translation positions or a plurality of angles of the face pose.
  • Example 49 may be example 48, wherein the face tracker, as part of evaluation of the face pose, may first determine a plurality of landmarks of the face, and then determine the plurality of translation positions or the plurality of angles of the face pose, based at least in part on the determined landmarks.
  • Example 50 may be example 48, wherein the face tracker, as part of evaluation of the face pose, may further determine whether the plurality of translation positions or the plurality of angles for the face pose are within corresponding ranges for the translation positions and the angles.
  • Example 51 may be example 50, wherein the face tracker may provide the instructions, on determination that at least one of the plurality of translation positions or the plurality of angles is out of a corresponding range for the translation position or angle.
  • Example 52 may be any one of examples 47-51, wherein the face tracker may instruct rotating the apparatus towards or away from a user, in a clockwise or counterclockwise direction, or to a left or right direction, prior to taking another image frame.
  • Example 53 may be any one of examples 47-51, wherein the face tracker may instruct moving the apparatus along an X-axis, a Y-axis or a Z-axis, in a positive or negative direction, prior to taking another image frame.
  • Example 54 may be any one of examples 47-53, wherein the face tracker may further receive a second image frame from either the image capturing engine or an image generating engine, analyze the second image frame for a second face, and on identification of a second face in the second image frame, extract a face shape of the second face or determine a facial expression of the second face, and make a determination on whether to automatically add the second image frame or an avatar image generated based at least in part on the image frame to a collection of snapshots. Further, the determination may be based at least in part of the extracted face shape or the determined facial expression of the second face in the second image frame.
  • Example 55 may be example 54, wherein the face tracker, on identification of a second face in the second image frame, may extract a face shape of the second face. Further, the face tracker may also initialize the collection of snapshots with a snapshot having a third face with a neutral face shape.
  • Example 56 may be example 55, wherein the face tracker, as part of making the determination, may select a snapshot within the collection of snapshots that has a fourth face that is closest to the second face in the second image frame.
  • Example 57 may be example 56, wherein the face tracker, as part of making the determination, may further compute a dissimilarity measure between the face shape of the second face in the second image frame, and the face shape of the fourth face in the selected snapshot.
  • Example 58 may be example 57, wherein the face tracker, as part of making the determination, may further determine whether the dissimilarity measure exceeds a threshold.
  • Example 59 may be example 58, wherein the face tracker may automatically add the second image frame or an avatar image generated based at least in part on the second image frame to the collection of snapshots on determination that the dissimilarity measure exceeded the threshold.
  • Example 60 may be example 54, wherein the face tracker, on identification of a second face in the second image frame, may determine a facial expression of the second face; wherein the face tracker is also to determine whether the determined facial expression of the second face is a facial expression of interest.
  • Example 61 may be example 60, wherein the face tracker may automatically add the second image frame or an avatar image generated based at least in part on the second image frame to the collection of snapshots on determination that the determined facial expression is a facial expression of interest.
  • Example 62 may be at least one computer-readable medium having instructions to cause an image capturing or generating apparatus, in response to execution of the instructions by the apparatus, to implement a face tracker.
  • the face tracker may receive an image frame from the image capturing or generating engine, analyze the image frame for a face, and on identification of a face in the image frame, extract a face shape of the face or determine a facial expression of the face; wherein the face tracker is to further make a determination on whether to automatically add the image frame or an avatar image generated based at least in part on the image frame to a collection of snapshots. The determination may be based at least in part of the extracted face shape or the determined facial expression of the face in the image frame.
  • Example 63 may be example 62, wherein the face tracker, on identification of a face in the image frame, may extract a face shape of the face; wherein the face tracker is also to initialize the collection of snapshots with a snapshot having a face with a neutral face shape.
  • Example 64 may be example 63, wherein the face tracker, as part of making the determination, may select a snapshot within the collection of snapshots that has a face that is closest to the face in the image frame.
  • Example 65 may be example 64, wherein the face tracker, as part of making the determination, may further compute a dissimilarity measure between the face shape of the face in the image frame, and the face shape of the face in the selected snapshot.
  • Example 66 may be example 65, wherein the face tracker, as part of making the determination, may further determine whether the dissimilarity measure exceeds a threshold.
  • Example 67 may be example 66, wherein the face tracker may automatically add the image frame or an avatar image generated based at least in part on the image frame to the collection of snapshots on determination that the dissimilarity measure exceeded the threshold.
  • Example 68 may be any one of examples 62-67, wherein the face tracker, on identification of a face in the image frame, may determine a facial expression of the face; wherein the face tracker is also to determine whether the determined facial expression of the face is a facial expression of interest.
  • Example 69 may be example 68, wherein the face tracker may automatically add the image frame or an avatar image generated based at least in part on the image frame to the collection of snapshots on determination that the determined facial expression is a facial expression of interest.
  • Example 70 may be an apparatus for capturing or generating image.
  • the apparatus may comprise: an image capturing engine; and face tracking means for receiving an image frame, analyzing the image frame for a face, and on identification of a face in the image frame, evaluating the face to determine whether the image frame comprises an acceptable or unacceptable face pose; and providing instructions for taking another image frame, on determining that the image frame having an unacceptable face pose, with the instructions designed to improve likelihood that the other image frame will comprise an acceptable face pose.
  • Example 71 may be example 70, wherein the face tracking means may comprise means for determining, as part of evaluation of the face pose, a plurality of translation positions or a plurality of angles of the face pose.
  • Example 72 may be example 71, wherein the face tracking means may comprise means for first determining, as part of evaluation of the face pose, a plurality of landmarks of the face, and then determining the plurality of translation positions or the plurality of angles of the face pose, based at least in part on the determined landmarks.
  • Example 73 may be example 71, wherein the face tracking means may comprise means for determining, as part of evaluation of the face pose, whether the plurality of translation positions or the plurality of angles for the face pose are within corresponding ranges for the translation positions and the angles.
  • Example 74 may be example 73, wherein the face tracking means may comprise means for providing the instructions, on determining that at least one of the plurality of translation positions or the plurality of angles is out of a corresponding range for the translation position or angle.
  • Example 75 may be any one of examples 70-74, wherein the face tracking means may comprise means for instructing rotating the apparatus towards or away from a user, in a clockwise or counterclockwise direction, or to a left or right direction, prior to taking another image frame.
  • Example 76 may be any one of examples 70-74, wherein the face tracking means may comprise means for instructing moving the apparatus along an X-axis, a Y-axis or a Z-axis, in a positive or negative direction, prior to taking another image frame.
  • Example 77 may be any one of examples 70-76, wherein the face tracking means may comprise means for receiving a second image frame, analyzing the second image frame for a second face, and on identification of a second face in the second image frame, extracting a face shape of the second face or determining a facial expression of the second face, and determining whether to automatically add the second image frame or an avatar image generated based at least in part on the second image frame to a collection of snapshots. Further, determining may be based at least in part of the extracted face shape or the determined facial expression of the second face in the second image frame.
  • Example 78 may be example 77, wherein the face tracking means may comprise means for extracting, on identification of a second face in the second image frame, a face shape of the second face; wherein the face tracker is also to initialize the collection of snapshots with a snapshot having a third face with a neutral face shape.
  • Example 79 may be example 78, wherein the face tracking means may comprise means for selecting, as part of making the determination, a snapshot within the collection of snapshots that has a fourth face that is closest to the second face in the second image frame.
  • Example 80 may be example 79, wherein the face tracking means may comprise means for computing, as part of determining whether to automatically add, a dissimilarity measure between the face shape of the second face in the second image frame, and the face shape of the fourth face in the selected snapshot.
  • Example 81 may be example 80, wherein the face tracking means may comprise means for determining, as part of determining whether to automatically add, whether the dissimilarity measure exceeds a threshold.
  • Example 82 may be example 81, wherein the face tracking means may comprise means for automatically adding the second image frame or an avatar image generated based at least in part on the second image frame to the collection of snapshots on determination that the dissimilarity measure exceeded the threshold.
  • Example 83 may be example 77, wherein the face tracking means may comprise means for determining, on identification of a second face in the second image frame, a facial expression of the second face; and means for determining whether the determined facial expression of the second face is a facial expression of interest.
  • Example 84 may be example 83, wherein the face tracking means may comprise means for automatically adding the second image frame or an avatar image generated based at least in part on the second image frame to the collection of snapshots on determining that the determined facial expression is a facial expression of interest.
  • Example 85 may be an image capturing or generating apparatus, comprising: an image capturing or generating engine; and face tracking means for receiving an image frame, analyzing the image frame for a face, and on identification of a face in the image frame, extracting a face shape of the face or determine a facial expression of the face; and determining whether to automatically add the image frame or an avatar image generated based at least in part on the image frame to a collection of snapshots, and wherein determining is based at least in part of the extracted face shape or the determined facial expression of the face in the image frame.
  • Example 86 may be example 85, wherein the face tracking means may comprise means for initializing the collection of snapshots with a snapshot having a face with a neutral face shape; and means for extracting, on identification of a face in the image frame, a face shape of the face.
  • Example 87 may be example 86, wherein the face tracking means may comprise means for selecting, as part of determining whether to automatically add, a snapshot within the collection of snapshots that has a face that is closest to the face in the image frame.
  • Example 88 may be example 87, wherein the face tracking means may comprise means for computing, as part of determining whether to automatically add, a dissimilarity measure between the face shape of the face in the image frame, and the face shape of the face in the selected snapshot.
  • Example 89 may be example 88, wherein the face tracking means may comprise means for determining, as part of determining whether to automatically add, whether the dissimilarity measure exceeds a threshold.
  • Example 90 may be example 89, wherein the face tracking means may comprise means for automatically adding the image frame or an avatar image generated based at least in part on the image frame to the collection of snapshots on determination that the dissimilarity measure exceeded the threshold.
  • Example 91 may be any one of examples 85-90, wherein the face tracking means may comprise means for determining, on identification of a face in the image frame, a facial expression of the face; and means for determining whether the determined facial expression of the face is a facial expression of interest.
  • Example 92 may be example 91, wherein the face tracking means may comprise means for automatically adding the image frame or an avatar image generated based at least in part on the image frame to the collection of snapshots on determination that the determined facial expression is a facial expression of interest.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Oral & Maxillofacial Surgery (AREA)
  • Quality & Reliability (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Geometry (AREA)
  • Psychiatry (AREA)
  • Social Psychology (AREA)
  • Image Analysis (AREA)

Abstract

Apparatuses, methods and storage medium associated with capturing images are provided. An apparatus may include a face tracker to receive an image frame, analyze the image frame for a face, and on identification of a face in the image frame, evaluate the face to determine whether the image frame comprises an acceptable or unacceptable face pose. Further, the face tracker may be configured to provide instructions for taking another image frame, on determination of the image frame having an unacceptable face pose, with the instructions designed to improve likelihood that the other image frame will comprise an acceptable face pose.

Description

IMAGE CAPTURING APPARATUS AND METHOD Technical Field
The present disclosure relates to the field of imaging. More particularly, the present disclosure relates to image capturing apparatus and method.
Background
The background description provided herein is for the purpose of generally presenting the context of the disclosure. Unless otherwise indicated herein, the materials described in this section are not prior art to the claims in this application and are not admitted to be prior art by inclusion in this section.
Face related application takes facial image as input, and extracts information like identity, expression or age for some purposes. Accuracy of such information highly relies on the quality of the facial image, where partial or large-angle face generally should be avoided. To facilitate capturing of facial images with appropriate quality, many image capturing devices or applications provide some form of guidance. For example, some image capturing devices or applications draw some markers on the camera preview screen to guide the end user, allowing the end user to align his/her face with the markers. This method requires some effort to follow, which may be hard for children or elderly users. In addition, it does not allow for rotation or expression, which is not particularly helpful for animation or photo enhancement applications.
Further, users often would like to share an image or an avatar animation image with exaggerated or funny expression in messaging or as personalized face icons. The expressive expressions may include e.g., exaggerated laughing, being surprised, or any other funny facial expressions. The current approach is to use professional video editing software to pick out these interesting moments from the input or generated avatar video. However, since these special moments, typically, occur infrequently, and in short periods of time, the current approach is not very user friendly for the average users.
Brief Description of the Drawings
Embodiments will be readily understood by the following detailed description in conjunction with the accompanying drawings. To facilitate this description, like reference  numerals designate like structural elements. Embodiments are illustrated by way of example, and not by way of limitation, in the figures of the accompanying drawings. 
Figure 1 illustrates a block diagram of an example imaging device, according to the disclosed embodiments.
Figure 2 illustrates various maneuvering of an imaging device, according to the disclosed embodiments.
Figure 3 illustrates example user instructions for capturing image frames with better face poses, according to the disclosed embodiments.
Figure 4 illustrates a process for capturing an image frame with an acceptable face pose, according to the disclosed embodiments.
Figure 5 illustrates two image frames taken without and with user instructions, according to the disclosed embodiments.
Figure 6 illustrates an example process for automatically capturing snapshots, according to the disclosed embodiments.
Figure 7 illustrates another example process for automatically capturing snapshots, according to the disclosed embodiments.
Figure 8 illustrates an example computer system suitable for use to practice various aspects of the present disclosure, according to the disclosed embodiments.
Figure 9 illustrates a storage medium having instructions for practicing methods described with references to Figures 1-7, according to disclosed embodiments.
Detailed Description
Apparatuses, methods and storage medium associated with capturing images are disclosed herein. In embodiments, an apparatus may include a face tracker to receive an image frame, analyze the image frame for a face, and on identification of a face in the image frame, evaluate the face to determine whether the image frame comprises an acceptable or unacceptable face pose. Further, the face tracker may be configured to provide instructions for taking another image frame, on determination of the image frame having an unacceptable face pose, with the instructions designed to improve likelihood that the other image frame will comprise an acceptable face pose. In embodiments, the image frame may be received from an image capturing engine (e.g., a camera) , and the apparatus may further comprise the image capturing engine.
In embodiments, an apparatus may include a face tracker to receive an image frame, analyze the image frame for a face, and on identification of a face in the image  frame, extract a face shape of the face or determine a facial expression of the face. Further, the face tracker may be configured to make a determination on whether to add the image frame to a collection of snapshots. The determination may be based at least in part on the extracted face shape or the determined facial expression of the face in the image frame. In embodiments, the image frame may be received from an image capturing engine (e.g., a camera) or an image generating engine (e.g., an animation-rendering engine) , and the apparatus may further comprise the image capturing and/or generating engine.
In the following detailed description, reference is made to the accompanying drawings which form a part hereof wherein like numerals designate like parts throughout, and in which is shown by way of illustration embodiments that may be practiced. It is to be understood that other embodiments may be utilized and structural or logical changes may be made without departing from the scope of the present disclosure. Therefore, the following detailed description is not to be taken in a limiting sense, and the scope of embodiments is defined by the appended claims and their equivalents.
Aspects of the disclosure are disclosed in the accompanying description. Alternate embodiments of the present disclosure and their equivalents may be devised without parting from the spirit or scope of the present disclosure. It should be noted that like elements disclosed below are indicated by like reference numbers in the drawings. 
Various operations may be described as multiple discrete actions or operations in turn, in a manner that is most helpful in understanding the claimed subject matter. However, the order of description should not be construed as to imply that these operations are necessarily order dependent. In particular, these operations may not be performed in the order of presentation. Operations described may be performed in a different order than the described embodiment. Various additional operations may be performed and/or described operations may be omitted in additional embodiments.
For the purposes of the present disclosure, the phrase “Aand/or B” means (A) , (B) , or (A and B) . For the purposes of the present disclosure, the phrase “A, B, and/or C” means (A) , (B) , (C) , (A and B) , (A and C) , (B and C) , or (A, B and C) .
The description may use the phrases “in an embodiment, ” or “in embodiments, ” which may each refer to one or more of the same or different embodiments. Furthermore, the terms “comprising, ” “including, ” “having, ” and the like, as used with respect to embodiments of the present disclosure, are synonymous.
As used herein, the term “module” may refer to, be part of, or include an Application Specific Integrated Circuit (ASIC) , an electronic circuit, a processor (shared,  dedicated, or group) and/or memory (shared, dedicated, or group) that execute one or more software or firmware programs, a combinational logic circuit, and/or other suitable components that provide the described functionality.
Referring now to Figure 1, wherein an imaging device, according to the disclosed embodiments, is shown. As illustrated, for the embodiments, imaging device 100 may include face tracker 102, one or more applications 104, and image capture engine 106, coupled with each other as shown. Face tracker 102 may be configured to receive image frame 110 from image capturing engine 106, analyze image frame 110 for a face, and identify landmarks, facial expressions (such as eye and/or mouth movements) in the face. Face tracker 102 may be configured to output face pose and expressions data 108 for applications 104, for use by applications 104. An example of applications 104 may include, but is not limited to, an animation-rendering engine 104 configured to animate one or more avatars based at least in part on the face pose and expression data 108.
Additionally, face tracker 102 may include image capture guiding function 112 configured to evaluate the face to determine whether image frame 110 comprises an acceptable or unacceptable face pose, on identification of a face in image frame 110. Further, image capture guiding function 112 may be configured to provide instructions 122, e.g., to a user, for taking another image frame, on determination of image frame 110 having an unacceptable face pose. The instructions may be designed to improve the likelihood that the next image frame 110 will comprise an acceptable face pose. In embodiments, image frame 110 may be received from an image capturing engine 106. An example of image capturing engine 106 may include, but is not limited to, a camera.
Still further, face tracker 102 may further include snapshot auto capture function 114 configured to extract a face shape of a face or determine a facial expression of a face, on identification of the face in image frame 110, and make a determination on whether to add image frame 110 (or an avatar image 111 generated based on face pose and expression data 108 of image frame 110) to a collection of snapshots (not shown) . The determination may be made based at least in part of the extracted face shape or the determined facial expression of the face in image frame 110. In embodiments, image frame 110 may be received from image capturing engine 106 (e.g., a camera) , and avatar image may be received from an application 104 (such as, an avatar animation-rendering engine) . An avatar animation-rendering engine/application 104 that generates images may also be referred to as an image generating engine.
Except for image capture guiding function 112, and snapshot auto capture function  114, which will be described in further detail below, face tracker 102 may be any one of a number of known face tracker including, but is not limited to, the facial mesh tracker disclosed in PCT Application PCT/CN2014/073695, entitled FACIAL EXPRESSION AND/OR INTERACTION DRIVEN AVATAR APPARATUS AND METHOD, filed on March 19, 2014. In embodiments, the face mesh tracker of PCT/CN2014/073695 may include a face detection function block to detect a face through window scan of one or more of a plurality of image frames, and a landmark detection function block to detect landmark points on the face. In embodiments, it may also include an initial face mesh fitting function block to initialize a 3D pose of a face mesh based at least in part on a plurality of landmark points detected on the face, a facial expression estimation function block to initialize a plurality of facial motion parameters based at least in part on a plurality of landmark points detected on the face, a head pose tracking function block to calculate rotation angles of the user’s head, based on a subset of sub-sampled pixels of the plurality of image frames, a mouth openness estimation function block to calculate opening distance of an upper lip and a lower lip of the mouth, based on a subset of sub-sampled pixels of the plurality of image frames, a facial mesh tracking function block to adjust position, orientation or deformation of a face mesh to maintain continuing coverage of the face and reflection of facial movement by the face mesh, a tracking validation function block to monitor face mesh tracking status, to determine whether it is necessary to relocate the face, a mouth shape correction function block to correct mouth shape, through detection of inter-frame histogram differences for the mouth, an eye blinking detection function block to estimate eye blinking, a face mesh adaptation function block to reconstruct a face mesh according to derive facial action units, and re-sample a current image frame under the face mesh to set up processing of a next image frame, or a blend-shape mapping function block to convert facial action units into blend-shape coefficients for the animation of the avatar. It may be implemented with Application Specific Integrated Circuits (ASIC) , programmable circuits programmed with the implementation logic, software implemented in assembler languages or high level languages compilable into machine instructions supported by underlying general purpose and/or graphics processors.
Applications 104, as alluded to earlier, may be any one of a number of known applications that can use face pose and expression data 108 provided by face tracker 102. In particular, one of applications 104 may be an image generating engine such as the avatar animation-rendering engine disclosed in PCT Application PCT/CN2014/087248,  entitled USER GESTURE DRIVEN AVATAR APPARATUS AND METHOD, filed on September 26, 2014. In embodiments, the avatar animation-rendering engine of PCT/CN2014/087248 may be configured to animate a canned facial expression by blending first one or more pre-defined shapes into a neutral face during a start period, further blending or un-blending second one or more pre-defined shapes into the canned facial expression to animate the facial movements of the canned facial expression for the duration during a keep period, and un-blending the first or second one or more pre-defined shapes to return the avatar to the neutral face during an end period. Similarly, image capturing engine 106 may be any one of a number of known image capturing engines.
While for completeness, embodiments of imaging device 100 has been described as having applications 104 and image capturing engine 106, in alternate embodiments, imaging device 100 may be practiced without applications 104 (including image generating applications) and/or image capturing engine 106. Imaging device 100 with image capturing engine 106, and not image generating applications 104 may also be referred to as an image capturing device. Similarly, imaging device 100 with an image generating application 104, and not image capturing engine 106 may be referred to as an image generating device. Thus, image device 100 may also be referred to as image capturing or generating device. Except for face tracker 102 having image capture guiding function 112 and snapshot auto capture function 114, imaging device 100 may be a wide range of known imaging devices including, but are not limited to, wearable computing devices, smartphones, computing tablets, e-books, notebook computers, laptop computers, and so forth, equipped with image capturing engine and/or image generating applications.
Referring now to Figure 2, wherein various maneuvering of an imaging device, according to the disclosed embodiments, is shown. As illustrated, an imaging device (such as a smartphone) with an image capturing engine (such as a camera) may be moved in a positive or negative direction along an X-axis, a Y-axis and/or a Z-axis, 202, 204 and 206. The imaging device may also be rotated towards or away from the user 208, in a clockwise or counterclockwise direction 210, and/or to the left or right 212.
Referring now to Figure 3, wherein example user instructions for capturing image frames with better face poses, for an imaging device with maneuverability of Figure 2, according to the disclosed embodiments, is shown. As illustrated, the instructions may include simple, easy-to-understand graphics, such as arrows in the form of arcs 302 to instruct e.g., a user, to move imaging device 100 in a clockwise or counterclockwise direction. Additionally, the instructions may include up and down arrows 304 to instruct  e.g., a user, to move imaging device 100 in a positive Y or negative Y direction, or horizontal arrows 306 to instruct e.g., a user, to move imaging device 100 in a positive X or negative X direction. Further, the instructions may include arrows in the form of a cross 308 to instruct e.g., a user, to rotate imaging device 100 towards or away from a user, in a clockwise or counterclockwise direction, or towards the left or right, as earlier described with reference to Figure 2. These example instructions are meant to be illustrative and non-limiting. It is anticipated that a wide range of simple and easy-to-understand graphics and/or textual instructions may be provided to guide a user in moving or rotating imaging device 100, such that the likelihood of the face pose of the next captured image will improve may increase.
Referring now to Figure 4, wherein a process for capturing an image frame with an acceptable face pose, according to the disclosed embodiments, is shown. As illustrated, process 400 for capturing an image frame with an acceptable face pose may include operations performed in blocks 402-410. The operations may be performed e.g., by the earlier described face tracker 102 with image capture guiding function 112.
Process 400 may start at block 402. At block 402, as earlier described, an image frame may be received. At block 404, analysis may be performed against the image frame, to identify a face in the image frame. On identification of a face, landmarks and/or facial expressions (such as eye and/or mouth movements) may be identified. Various methods may be used to identify the facial landmark positions including, but are not limited to, the supervised descent method, the active appearance models, and so forth. For further information on the “supervised descent method, ” see e.g., Xiong, Xuehan, and Fernando De la Torre. "Supervised descent method and its applications to face alignment. " Computer Vision and Pattern Recognition (CVPR) , 2013 IEEE Conference on. IEEE, 2013. For further information on “active appearance models, ” see e. g., Cootes, Timothy F., Gareth J. Edwards, and Christopher J. Taylor. "Active appearance models. " IEEE Transactions on pattern analysis and machine intelligence 23.6 (2001) : 681-685. From block 404, process 400 may proceed to block 406.
At block 406, the face pose may be evaluated. In embodiments, the evaluation may include computation of a number of translation positions along the x, y and z axes, tx, ty, tz, and angle positions of rotation around the x, y and z axes, rx, ry, rz, for the face pose. Various method may be utilized to compute tx, ty, tz, and rx, ry, rz, including, but are not limited to a model based approach, a Perspective n point (pnp) problem approach. For further information on a “model based” approach, see e.g., Dementhon, Daniel F.,  and Larry S. Davis. "Model-based object pose in 25 lines of code. " International j ournal of computer vision 15.1-2 (1995) : 123-141. For further information on a pnp problem approach, see e.g., Lepetit, Vincent, Francesc Moreno-Noguer, and Pascal Fua. "Epnp: An accurate o (n) solution to the pnp problem. "International journal of computer vision 81.2 (2009) : 155-166.
Thereafter, tx, ty, tz, and rx, ry, rz, may be compared to corresponding reference ranges to determine if the quantities are within or outside the reference ranges, position (tx1, tx2, ty1, ty2, tz1, tz2) and angle (rx1, rx2, ry1, ry2, rz1, rz2) as follows:
tx1 <= tx <= tx2 and
ty1 <= ty <= ty2 and
tz1 <= tz <= tz2 and
rx1 <= rx <= rx2 and
ry1 <= ry <= ry2 and
rz1 <= rz <= rz2
In embodiments, a face pose may be considered acceptable or good, if tx, ty, tz, and rx, ry, rz, are all within the reference ranges, otherwise, the face pose may be considered not acceptable or not good.
If the face pose is considered not acceptable or not good, process 400 may proceed from block 406 to block 408. At block 408, instructions may be given to guide the user in moving imaging device 100 and take at least another image frame. The instructions, e.g., moving imaging device 100 in a positive or negative direction along an X, Y and/or Z axis, closer or away from the user, clockwise or counterclockwise, tilting left or right and so forth, may be provided, based at least in part on the amounts the various reference ranges are exceeded.
In embodiments, a six dimensional data structure, tx, ty, tz, and rx, ry, rz, having various instructions for moving imaging device 100 in a positive or negative direction along an X, Y and/or Z axis, closer or away from the user, clockwise or counterclockwise, tilting left or right and so forth, for various excess amounts may be pre-configured/maintained, e.g., by image capture guiding function 112.
Operations at blocks 402-408 may be repeated a number of times, until eventually, the result of the evaluation at block 406 indicates that the face pose is acceptable or good. At such time, process 400 may proceed from block 406 to block 410. At block 410, the image frame with the acceptable or good face pose may be output, e.g., for one or more applications 104.
Figure 5 illustrates two image frames taken without and with user instructions, according to the disclosed embodiments. More specifically, image frame 502 is taken without guidance, resulting in a face pose that is not acceptable or not good. Image frame 504 is a subsequent re-take following the instructions provided to move imaging device 100, resulting in a face pose that is acceptable or good.
Referring now to Figure 6, wherein an example process for automatically capturing snapshots, according to the disclosed embodiments, is shown. As illustrated, in embodiments, process 600 for automatically capturing snapshots may include operations performed at blocks 602-610. The operations may be performed e.g., by the earlier described snapshots auto capture function 114.
Process 600 may begin at block 602. At block 602, a collection of snapshots (S) of user or avatar images may be initialized with a snapshot with a neutral face shape b0. The collection may be initialized e.g., at a user’s request, during a user registration, and so forth. At block 604, a current image frame, e.g., a current image frame captured by image capturing engine 106 may be processed and analyzed to identify a face. Further, on identification of a face, the face shape of the face b’ may be extracted.
Next, at block 606, the face shape b’ of the face in the current image frame may be compared with face shapes of the faces of the snapshots in the collection S, to select a snapshot with face that has the closest face shape bi. At block 608, a determination may be made on whether the current image frame should be considered as similar or dissimilar to the closest snapshot selected. The determination may be made e.g., based on a dissimilarity measure. In embodiments, the dissimilarity measure may be the absolute distance between b’ and bi, i.e., |b’ -bi |. The current image frame may be considered to be dissimilar to the closest selected snapshot if |b’ -bi | is greater than a threshold, otherwise, the current image frame and the closest selected snapshot may be considered as similar. 
On determining that the current image frame and the closest selected snapshot are dissimilar, process 600 may proceed from block 608 to block 610. At block 610, the current image frame (and/or an avatar image generated based on the face pose and expression data of the image frame) may be automatically added to the collection of snapshots. On the other hand, on determining that the current image frame and the closest selected snapshot are similar, process 600 may return to block 604, and continue therefrom as earlier described to analyze a next image frame. Operations at bock 604 to block 608 may be repeated any number of times for as long as there are image frames being captured/generated.
Referring now to Figure 7, wherein another example process for automatically capturing snapshots, according to the disclosed embodiments, is shown. As illustrated, in embodiments, process 700 for automatically capturing snapshots may include operations performed at blocks 702-708. The operations may be performed e.g., by the earlier described snapshots auto capture function 114.
Process 700 may start at block 702. At block 702, an image frame may be received. As described earlier, the image frame may be received e.g., from image capturing engine 106. At block 704, the image frame may be processed and analyzed to identify a face. Further, the face may be analyzed for facial expression, such as eye and/or mouth movements, head pose, and so forth.
At block 706, a determination may be made on whether the facial expression is a facial expression of interest that a collection of snapshots does not have of the user or an avatar. Examples of facial expression of interest may include, but are not limited to, facial expressions with exaggerated eye and/or mouth movements, tongue-out, big smiles, grin, and so forth. The facial expression of interest may be pre-defined and maintained in a facial expression of interest list. Similarly, corresponding lists may be maintained to track whether snapshots of a user or an avatar with the facial expressions of interest have been previously captured and saved into the collection of snapshots.
On determining that the current image frame has a face with facial expression of interest, and a snapshot of a user or avatar with such facial expression had not been previously captured, process 700 may proceed from block 706 to block 708. At block 708, the current image frame (and/or an avatar image generated based on face pose and expression data of the image frame) may be automatically added to the collection of snapshots. On the other hand, on determining that either the current image frame does not have a facial expression of interest, or a snapshot of the user or avatar with the facial expression of interest has been previously captured, process 700 may return to block 702, and continue therefrom as earlier described to analyze a next image frame. Operations at bock 702 to block 706 may be repeated any number of times for as long as there are image frames captured/generated.
Figure 8 illustrates an example computer system that may be suitable for use to practice selected aspects of the present disclosure. As shown, computer 800 may include one or more processors or processor cores 802, and system memory 804. For the purpose of this application, including the claims, the terms “processor” and “processor cores” may be considered synonymous, unless the context clearly requires otherwise. Additionally,  computer 800 may include mass storage devices 806 (such as diskette, hard drive, compact disc read only memory (CD-ROM) and so forth) , input/output devices 808 (such as display, keyboard, cursor control and so forth) and communication interfaces 610 (such as network interface cards, modems and so forth) . The elements may be coupled to each other via system bus 812, which may represent one or more buses. In the case of multiple buses, they may be bridged by one or more bus bridges (not shown) .
Each of these elements may perform its conventional functions known in the art. In particular, system memory 804 and mass storage devices 806 may be employed to store a working copy and a permanent copy of the programming instructions implementing the operations associated with face tracker 102, in particular, image capture guiding function 112 and/or snapshot auto capture function 114, earlier described, collectively referred to as computational logic 822. The various elements may be implemented by assembler instructions supported by processor (s) 802 or high-level languages, such as, for example, C, that can be compiled into such instructions.
The number, capability and/or capacity of these elements 810 -812 may vary, depending on whether computer 800 is used as a mobile device, a stationary device or a server. When use as mobile device, the capability and/or capacity of these elements 810 -812 may vary, depending on whether the mobile device is a smartphone, a computing tablet, an ultrabook or a laptop. Otherwise, the constitutions of elements 810-812 are known, and accordingly will not be further described.
As will be appreciated by one skilled in the art, the present disclosure may be embodied as methods or computer program products. Accordingly, the present disclosure, in addition to being embodied in hardware as earlier described, may take the form of an entirely software embodiment (including firmware, resident software, micro-code, etc. ) or an embodiment combining software and hardware aspects that may all generally be referred to as a “circuit, ” “module” or “system. ” Furthermore, the present disclosure may take the form of a computer program product embodied in any tangible or non-transitory medium of expression having computer-usable program code embodied in the medium. Figure 9 illustrates an example computer-readable non-transitory storage medium that may be suitable for use to store instructions that cause an apparatus, in response to execution of the instructions by the apparatus, to practice selected aspects of the present disclosure. As shown, non-transitory computer-readable storage medium 902 may include a number of programming instructions 904. Programming instructions 904 may be configured to enable a device, e.g., computer 800, in response to execution of the programming  instructions, to perform, e.g., various operations associated with face tracker 102, in particular, image capture guiding function 112 and/or snapshot auto capture function 114. In alternate embodiments, programming instructions 904 may be disposed on multiple computer-readable non-transitory storage media 902 instead. In alternate embodiments, programming instructions 904 may be disposed on computer-readable transitory storage media 902, such as, signals.
Any combination of one or more computer usable or computer readable medium (s) may be utilized. The computer-usable or computer-readable medium may be, for example but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, device, or propagation medium. More specific examples (a non-exhaustive list) of the computer-readable medium would include the following: an electrical connection having one or more wires, a portable computer diskette, a hard disk, a random access memory (RAM) , a read-only memory (ROM) , an erasable programmable read-only memory (EPROM or Flash memory) , an optical fiber, a portable compact disc read-only memory (CD-ROM) , an optical storage device, a transmission media such as those supporting the Internet or an intranet, or a magnetic storage device. Note that the computer-usable or computer-readable medium could even be paper or another suitable medium upon which the program is printed, as the program can be electronically captured, via, for instance, optical scanning of the paper or other medium, then compiled, interpreted, or otherwise processed in a suitable manner, if necessary, and then stored in a computer memory. In the context of this document, a computer-usable or computer-readable medium may be any medium that can contain, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device. The computer-usable medium may include a propagated data signal with the computer-usable program code embodied therewith, either in baseband or as part of a carrier wave. The computer usable program code may be transmitted using any appropriate medium, including but not limited to wireless, wireline, optical fiber cable, RF, etc.
Computer program code for carrying out operations of the present disclosure may be written in any combination of one or more programming languages, including an object oriented programming language such as Java, Smalltalk, C++ or the like and conventional procedural programming languages, such as the “C” programming language or similar programming languages. The program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user’s  computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user’s computer through any type of network, including a local area network (LAN) or a wide area network (WAN) , or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider) .
The present disclosure is described with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the disclosure. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
These computer program instructions may also be stored in a computer-readable medium that can direct a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer-readable medium produce an article of manufacture including instruction means which implement the function/act specified in the flowchart and/or block diagram block or blocks.
The computer program instructions may also be loaded onto a computer or other programmable data processing apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide processes for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
The flowchart and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments of the present disclosure. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function (s) . It should also be noted that, in some alternative implementations, the functions noted in the block may occur out of the order  noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.
The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the disclosure. As used herein, the singular forms “a, ” “an” and “the” are intended to include plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms “comprises” and/or “comprising, ” when used in this specification, specific the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operation, elements, components, and/or groups thereof.
Embodiments may be implemented as a computer process, a computing system or as an article of manufacture such as a computer program product of computer readable media. The computer program product may be a computer storage medium readable by a computer system and encoding a computer program instructions for executing a computer process.
The corresponding structures, material, acts, and equivalents of all means or steps plus function elements in the claims below are intended to include any structure, material or act for performing the function in combination with other claimed elements are specifically claimed. The description of the present disclosure has been presented for purposes of illustration and description, but is not intended to be exhaustive or limited to the disclosure in the form disclosed. Many modifications and variations will be apparent to those of ordinary skill without departing from the scope and spirit of the disclosure. The embodiment was chosen and described in order to best explain the principles of the disclosure and the practical application, and to enable others of ordinary skill in the art to understand the disclosure for embodiments with various modifications as are suited to the particular use contemplated.
Referring back to Figure 8, for one embodiment, at least one of processors 802 may be packaged together with memory having computational logic 822 (in lieu of storing on memory 804 and storage 806) . For one embodiment, at least one of processors 802  may be packaged together with memory having computational logic 822 to form a System in Package (SiP) . For one embodiment, at least one of processors 802 may be integrated on the same die with memory having computational logic 822. For one embodiment, at least one of processors 802 may be packaged together with memory having computational logic 822 to form a System on Chip (SoC) . For at least one embodiment, the SoC may be utilized in, e.g., but not limited to, a smartphone or computing tablet.
Thus various example embodiments of the present disclosure have been described including, but are not limited to:
Example 1 may be an apparatus for capturing or generating image. The apparatus may comprise an image capturing engine; and a face tracker coupled with the image capturing engine. The face tracker may be configured to receive an image frame from the image capturing engine, analyze the image frame for a face, and on identification of a face in the image frame, evaluate the face to determine whether the image frame comprises an acceptable or unacceptable face pose. On determination of the image frame having an unacceptable face pose, the face tracker may further provide instructions for taking another image frame, with the instructions designed to improve likelihood that the other image frame will comprise an acceptable face pose.
Example 2 may be example 1, wherein the face tracker, as part of evaluation of the face pose, may determine a plurality of translation positions or a plurality of angles of the face pose.
Example 3 may be example 2, wherein the face tracker, as part of evaluation of the face pose, may first determine a plurality of landmarks of the face, and then determine the plurality of translation positions or the plurality of angles of the face pose, based at least in part on the determined landmarks.
Example 4 may be example 2, wherein the face tracker, as part of evaluation of the face pose, may further determine whether the plurality of translation positions or the plurality of angles for the face pose are within corresponding ranges for the translation positions and the angles.
Example 5 may be example 4, wherein the face tracker may provide the instructions, on determination that at least one of the plurality of translation positions or the plurality of angles is out of a corresponding range for the translation position or angle. 
Example 6 may be any one of examples 1-5, wherein the face tracker may instruct rotating the apparatus towards or away from a user, in a clockwise or counterclockwise direction, or to a left or right direction, prior to taking another image frame.
Example 7 may be any one of examples 1-5, wherein the face tracker may instruct moving the apparatus along an X-axis, a Y-axis or a Z-axis, in a positive or negative direction, prior to taking another image frame.
Example 8 may be any one of examples 1-7, wherein the face tracker may further receive a second image frame from either the image capturing engine or an image generating engine, analyze the second image frame for a second face, and on identification of a second face in the second image frame, extract a face shape of the second face or determine a facial expression of the second face, and make a determination on whether to automatically add the second image frame or an avatar image generated based at least in part on the second image frame to a collection of snapshots. The determination may be based at least in part of the extracted face shape or the determined facial expression of the second face in the second image frame.
Example 9 may be example 8, wherein the face tracker, on identification of a second face in the second image frame, may extract a face shape of the second face; wherein the face tracker is also to initialize the collection of snapshots with a snapshot having a third face with a neutral face shape.
Example 10 may be example 9, wherein the face tracker, as part of making the determination, may select a snapshot within the collection of snapshots that has a fourth face that is closest to the second face in the second image frame.
Example 11 may be example 10, wherein the face tracker, as part of making the determination, may further compute a dissimilarity measure between the face shape of the second face in the second image frame, and the face shape of the fourth face in the selected snapshot.
Example 12 may be example 11, wherein the face tracker, as part of making the determination, may further determine whether the dissimilarity measure exceeds a threshold.
Example 13 may be example 12, wherein the face tracker may automatically add the second image frame or an avatar image generated based at least in part on the second image frame to the collection of snapshots on determination that the dissimilarity measure exceeded the threshold.
Example 14 may be example 8, wherein the face tracker, on identification of a second face in the second image frame, may determine a facial expression of the second face. The face tracker may also determine whether the determined facial expression of the second face is a facial expression of interest.
Example 15 may be example 14, wherein the face tracker may automatically add the second image frame or an avatar image generated based at least in part on the second image frame to the collection of snapshots on determination that the determined facial expression is a facial expression of interest.
Example 16 may be an apparatus for capturing or generating image. The apparatus may comprise an image capturing or generating engine; and a face tracker coupled with the image capturing or generating engine. The face tracker may be configured to receive an image frame from the image capturing or generating engine, analyze the image frame for a face, and on identification of a face in the image frame, extract a face shape of the face or determine a facial expression of the face. The face tracker may further make a determination on whether to automatically add the image frame or an avatar image generated based at least in part on the image frame to a collection of snapshots. The determination may be based at least in part of the extracted face shape or the determined facial expression of the face in the image frame.
Example 17 may be example 16, wherein the face tracker, on identification of a face in the image frame, may extract a face shape of the face. The face tracker may also initialize the collection of snapshots with a snapshot having a face with a neutral face shape.
Example 18 may be example 17, wherein the face tracker, as part of making the determination, may select a snapshot within the collection of snapshots that has a face that is closest to the face in the image frame.
Example 19 may be example 18, wherein the face tracker, as part of making the determination, may further compute a dissimilarity measure between the face shape of the face in the image frame, and the face shape of the face in the selected snapshot.
Example 20 may be example 19, wherein the face tracker, as part of making the determination, may further determine whether the dissimilarity measure exceeds a threshold.
Example 21 may be example 20, wherein the face tracker may automatically add the image frame or an avatar image generated based at least in part on the image frame to the collection of snapshots on determination that the dissimilarity measure exceeded the threshold.
Example 21 may be any one of examples 16-21, wherein the face tracker, on identification of a face in the image frame, may determine a facial expression of the face.  The face tracker may also determine whether the determined facial expression of the face is a facial expression of interest.
Example 23 may be example 22, wherein the face tracker may automatically add the image frame or an avatar image generated based at least in part on the image frame to the collection of snapshots on determination that the determined facial expression is a facial expression of interest.
Example 24 may be a method for capturing or generating an image. The method may comprise: receiving, by a face tracker of an image capturing or generating apparatus, an image frame; analyzing the image frame, by the face tracker, for a face; on identification of a face in the image frame, evaluating the face, by the face tracker, to determine whether the image frame comprises an acceptable or unacceptable face pose; and on determination of the image frame having an unacceptable face pose, providing, by the face tracker, instructions for taking another image frame, with the instructions designed to improve likelihood that the other image frame will comprise an acceptable face pose.
Example 25 may be example 24, wherein evaluating may comprise determining a plurality of translation positions or a plurality of angles of the face pose.
Example 26 may be example 25, wherein evaluating may comprise first determining a plurality of landmarks of the face, and then determining the plurality of translation positions or the plurality of angles of the face pose, based at least in part on the determined landmarks.
Example 27 may be example 25, wherein evaluating may comprise determining whether the plurality of translation positions or the plurality of angles for the face pose are within corresponding ranges for the translation positions and the angles.
Example 28 may be example 27, wherein providing instructions may comprise providing the instructions, on determining that at least one of the plurality of translation positions or the plurality of angles is out of a corresponding range for the translation position or angle.
Example 29 may be any one of examples 24-28, wherein providing instructions may comprise providing instructions to rotate the apparatus towards or away from a user, in a clockwise or counterclockwise direction, or to a left or right direction, prior to taking another image frame.
Example 30 may be any one of examples 24-28, wherein providing instructions may comprise providing instructions to move the apparatus along an X-axis, a Y-axis or a Z-axis, in a positive or negative direction, prior to taking another image frame.
Example 31 may be any one of examples 24-30, further comprising receiving, by the face tracker, a second image frame; analyzing, by the face tracker, the second image frame for a second face; on identification of a second face in the second image frame, extracting, by the face tracker, a face shape of the second face or determining, by the face tracker, a facial expression of the second face; and determining, by the face tracker, whether to automatically add the second image frame or an avatar image generated based at least in part on the second image frame to a collection of snapshots. Further, determining may be based at least in part of the extracted face shape or the determined facial expression of the second face in the second image frame.
Example 32 may be example 31, further comprising, initializing, by the face tracker, the collection of snapshots with a snapshot having a third face with a neutral face shape; and on identification of a second face in the second image frame, extracting by the face tracker, a face shape of the second face.
Example 33 may be example 32, wherein determining whether to automatically add the second image frame to a collection of snapshots may comprise selecting a snapshot within the collection of snapshots that has a fourth face that is closest to the second face in the second image frame.
Example 34 may be example 33, wherein determining whether to automatically add the second image frame to a collection of snapshots may further comprise computing a dissimilarity measure between the face shape of the second face in the second image frame, and the face shape of the fourth face in the selected snapshot.
Example 35 may be example 34, wherein determining whether to automatically add the second image frame to a collection of snapshots may further comprise determining whether the dissimilarity measure exceeds a threshold.
Example 36 may be example 35, further comprising automatically adding, by the face tracker, the second image frame or an avatar image generated based at least in part on the second image frame to the collection of snapshots on determination that the dissimilarity measure exceeded the threshold.
Example 37 may be example 31, further comprising, on identification of a second face in the second image frame, determining, by the face tracker, a facial expression of the  second face, including determining whether the determined facial expression of the second face is a facial expression of interest.
Example 38 may be example 37, further comprising automatically adding, by the face tracker, the second image frame or an avatar image generated based at least in part on the second image frame to the collection of snapshots on determination that the determined facial expression is a facial expression of interest.
Example 39 may be a method for capturing or generating an image. The method may comprise: receiving, by a face tracker of an image capturing or generating apparatus, an image frame; analyzing, by the face tracker, the image frame for a face; on identification of a face in the image frame, extracting, by the face tracker, a face shape of the face or determining, by the face tracker, a facial expression of the face; and determining, by the face tracker, whether to automatically add the image frame or an avatar image generated based at least in part on the image frame to a collection of snapshots, wherein the determination is based at least in part of the extracted face shape or the determined facial expression of the face in the image frame.
Example 40 may be example 39, further comprising, initializing, by the face tracker, the collection of snapshots with a snapshot having a face with a neutral face shape; and on identification of a face in the image frame, extracting, by the face tracker, a face shape of the face.
Example 41 may be example 40, wherein determining whether to automatically add the second image to a collection of snapshots may further comprise selecting a snapshot within the collection of snapshots that has a face that is closest to the face in the image frame.
Example 42 may be example 41, wherein determining whether to automatically add the second image to a collection of snapshots may further comprise computing a dissimilarity measure between the face shape of the face in the image frame, and the face shape of the face in the selected snapshot.
Example 43 may be example 42, wherein determining whether to automatically add the second image to a collection of snapshots may further comprise determining whether the dissimilarity measure exceeds a threshold.
Example 44 may be example 43, further comprising automatically adding, by the face tracker, the image frame or an avatar image generated based at least in part on the image frame to the collection of snapshots on determining that the dissimilarity measure exceeded the threshold.
Example 45 may be any one of examples 39-44, further comprising, on identification of a face in the image frame, determining, by the face tracker, a facial expression of the face; wherein the face tracker is also to determine whether the determined facial expression of the face is a facial expression of interest. 
Example 46 may be example 45, further comprising automatically adding, by the face tracker, the image frame or an avatar image generated based at least in part on the image frame to the collection of snapshots on determination that the determined facial expression is a facial expression of interest.
Example 47 may be at least one computer-readable medium having instructions to cause an image capturing or generating apparatus, in response to execution of the instructions by the apparatus, to implement a face tracker. The face tracker may receive an image frame from the image capturing engine, analyze the image frame for a face, and on identification of a face in the image frame, evaluate the face to determine whether the image frame comprises an acceptable or unacceptable face pose. On determination of the image frame having an unacceptable face pose, the face tracker may further provide instructions for taking another image frame, with the instructions designed to improve likelihood that the other image frame will comprise an acceptable face pose.
Example 48 may be example 47, wherein the face tracker, as part of evaluation of the face pose, may determine a plurality of translation positions or a plurality of angles of the face pose.
Example 49 may be example 48, wherein the face tracker, as part of evaluation of the face pose, may first determine a plurality of landmarks of the face, and then determine the plurality of translation positions or the plurality of angles of the face pose, based at least in part on the determined landmarks.
Example 50 may be example 48, wherein the face tracker, as part of evaluation of the face pose, may further determine whether the plurality of translation positions or the plurality of angles for the face pose are within corresponding ranges for the translation positions and the angles.
Example 51 may be example 50, wherein the face tracker may provide the instructions, on determination that at least one of the plurality of translation positions or the plurality of angles is out of a corresponding range for the translation position or angle. 
Example 52 may be any one of examples 47-51, wherein the face tracker may instruct rotating the apparatus towards or away from a user, in a clockwise or  counterclockwise direction, or to a left or right direction, prior to taking another image frame.
Example 53 may be any one of examples 47-51, wherein the face tracker may instruct moving the apparatus along an X-axis, a Y-axis or a Z-axis, in a positive or negative direction, prior to taking another image frame.
Example 54 may be any one of examples 47-53, wherein the face tracker may further receive a second image frame from either the image capturing engine or an image generating engine, analyze the second image frame for a second face, and on identification of a second face in the second image frame, extract a face shape of the second face or determine a facial expression of the second face, and make a determination on whether to automatically add the second image frame or an avatar image generated based at least in part on the image frame to a collection of snapshots. Further, the determination may be based at least in part of the extracted face shape or the determined facial expression of the second face in the second image frame.
Example 55 may be example 54, wherein the face tracker, on identification of a second face in the second image frame, may extract a face shape of the second face. Further, the face tracker may also initialize the collection of snapshots with a snapshot having a third face with a neutral face shape.
Example 56 may be example 55, wherein the face tracker, as part of making the determination, may select a snapshot within the collection of snapshots that has a fourth face that is closest to the second face in the second image frame.
Example 57 may be example 56, wherein the face tracker, as part of making the determination, may further compute a dissimilarity measure between the face shape of the second face in the second image frame, and the face shape of the fourth face in the selected snapshot.
Example 58 may be example 57, wherein the face tracker, as part of making the determination, may further determine whether the dissimilarity measure exceeds a threshold.
Example 59 may be example 58, wherein the face tracker may automatically add the second image frame or an avatar image generated based at least in part on the second image frame to the collection of snapshots on determination that the dissimilarity measure exceeded the threshold.
Example 60 may be example 54, wherein the face tracker, on identification of a second face in the second image frame, may determine a facial expression of the second  face; wherein the face tracker is also to determine whether the determined facial expression of the second face is a facial expression of interest.
Example 61 may be example 60, wherein the face tracker may automatically add the second image frame or an avatar image generated based at least in part on the second image frame to the collection of snapshots on determination that the determined facial expression is a facial expression of interest.
Example 62 may be at least one computer-readable medium having instructions to cause an image capturing or generating apparatus, in response to execution of the instructions by the apparatus, to implement a face tracker. The face tracker may receive an image frame from the image capturing or generating engine, analyze the image frame for a face, and on identification of a face in the image frame, extract a face shape of the face or determine a facial expression of the face; wherein the face tracker is to further make a determination on whether to automatically add the image frame or an avatar image generated based at least in part on the image frame to a collection of snapshots. The determination may be based at least in part of the extracted face shape or the determined facial expression of the face in the image frame.
Example 63 may be example 62, wherein the face tracker, on identification of a face in the image frame, may extract a face shape of the face; wherein the face tracker is also to initialize the collection of snapshots with a snapshot having a face with a neutral face shape.
Example 64 may be example 63, wherein the face tracker, as part of making the determination, may select a snapshot within the collection of snapshots that has a face that is closest to the face in the image frame.
Example 65 may be example 64, wherein the face tracker, as part of making the determination, may further compute a dissimilarity measure between the face shape of the face in the image frame, and the face shape of the face in the selected snapshot.
Example 66 may be example 65, wherein the face tracker, as part of making the determination, may further determine whether the dissimilarity measure exceeds a threshold.
Example 67 may be example 66, wherein the face tracker may automatically add the image frame or an avatar image generated based at least in part on the image frame to the collection of snapshots on determination that the dissimilarity measure exceeded the threshold.
Example 68 may be any one of examples 62-67, wherein the face tracker, on identification of a face in the image frame, may determine a facial expression of the face; wherein the face tracker is also to determine whether the determined facial expression of the face is a facial expression of interest.
Example 69 may be example 68, wherein the face tracker may automatically add the image frame or an avatar image generated based at least in part on the image frame to the collection of snapshots on determination that the determined facial expression is a facial expression of interest.
Example 70 may be an apparatus for capturing or generating image. The apparatus may comprise: an image capturing engine; and face tracking means for receiving an image frame, analyzing the image frame for a face, and on identification of a face in the image frame, evaluating the face to determine whether the image frame comprises an acceptable or unacceptable face pose; and providing instructions for taking another image frame, on determining that the image frame having an unacceptable face pose, with the instructions designed to improve likelihood that the other image frame will comprise an acceptable face pose.
Example 71 may be example 70, wherein the face tracking means may comprise means for determining, as part of evaluation of the face pose, a plurality of translation positions or a plurality of angles of the face pose.
Example 72 may be example 71, wherein the face tracking means may comprise means for first determining, as part of evaluation of the face pose, a plurality of landmarks of the face, and then determining the plurality of translation positions or the plurality of angles of the face pose, based at least in part on the determined landmarks.
Example 73 may be example 71, wherein the face tracking means may comprise means for determining, as part of evaluation of the face pose, whether the plurality of translation positions or the plurality of angles for the face pose are within corresponding ranges for the translation positions and the angles.
Example 74 may be example 73, wherein the face tracking means may comprise means for providing the instructions, on determining that at least one of the plurality of translation positions or the plurality of angles is out of a corresponding range for the translation position or angle.
Example 75 may be any one of examples 70-74, wherein the face tracking means may comprise means for instructing rotating the apparatus towards or away from a user, in  a clockwise or counterclockwise direction, or to a left or right direction, prior to taking another image frame.
Example 76 may be any one of examples 70-74, wherein the face tracking means may comprise means for instructing moving the apparatus along an X-axis, a Y-axis or a Z-axis, in a positive or negative direction, prior to taking another image frame.
Example 77 may be any one of examples 70-76, wherein the face tracking means may comprise means for receiving a second image frame, analyzing the second image frame for a second face, and on identification of a second face in the second image frame, extracting a face shape of the second face or determining a facial expression of the second face, and determining whether to automatically add the second image frame or an avatar image generated based at least in part on the second image frame to a collection of snapshots. Further, determining may be based at least in part of the extracted face shape or the determined facial expression of the second face in the second image frame.
Example 78 may be example 77, wherein the face tracking means may comprise means for extracting, on identification of a second face in the second image frame, a face shape of the second face; wherein the face tracker is also to initialize the collection of snapshots with a snapshot having a third face with a neutral face shape.
Example 79 may be example 78, wherein the face tracking means may comprise means for selecting, as part of making the determination, a snapshot within the collection of snapshots that has a fourth face that is closest to the second face in the second image frame.
Example 80 may be example 79, wherein the face tracking means may comprise means for computing, as part of determining whether to automatically add, a dissimilarity measure between the face shape of the second face in the second image frame, and the face shape of the fourth face in the selected snapshot.
Example 81 may be example 80, wherein the face tracking means may comprise means for determining, as part of determining whether to automatically add, whether the dissimilarity measure exceeds a threshold.
Example 82 may be example 81, wherein the face tracking means may comprise means for automatically adding the second image frame or an avatar image generated based at least in part on the second image frame to the collection of snapshots on determination that the dissimilarity measure exceeded the threshold.
Example 83 may be example 77, wherein the face tracking means may comprise means for determining, on identification of a second face in the second image frame, a  facial expression of the second face; and means for determining whether the determined facial expression of the second face is a facial expression of interest.
Example 84 may be example 83, wherein the face tracking means may comprise means for automatically adding the second image frame or an avatar image generated based at least in part on the second image frame to the collection of snapshots on determining that the determined facial expression is a facial expression of interest.
Example 85 may be an image capturing or generating apparatus, comprising: an image capturing or generating engine; and face tracking means for receiving an image frame, analyzing the image frame for a face, and on identification of a face in the image frame, extracting a face shape of the face or determine a facial expression of the face; and determining whether to automatically add the image frame or an avatar image generated based at least in part on the image frame to a collection of snapshots, and wherein determining is based at least in part of the extracted face shape or the determined facial expression of the face in the image frame.
Example 86 may be example 85, wherein the face tracking means may comprise means for initializing the collection of snapshots with a snapshot having a face with a neutral face shape; and means for extracting, on identification of a face in the image frame, a face shape of the face.
Example 87 may be example 86, wherein the face tracking means may comprise means for selecting, as part of determining whether to automatically add, a snapshot within the collection of snapshots that has a face that is closest to the face in the image frame.
Example 88 may be example 87, wherein the face tracking means may comprise means for computing, as part of determining whether to automatically add, a dissimilarity measure between the face shape of the face in the image frame, and the face shape of the face in the selected snapshot.
Example 89 may be example 88, wherein the face tracking means may comprise means for determining, as part of determining whether to automatically add, whether the dissimilarity measure exceeds a threshold.
Example 90 may be example 89, wherein the face tracking means may comprise means for automatically adding the image frame or an avatar image generated based at least in part on the image frame to the collection of snapshots on determination that the dissimilarity measure exceeded the threshold.
Example 91 may be any one of examples 85-90, wherein the face tracking means may comprise means for determining, on identification of a face in the image frame, a facial expression of the face; and means for determining whether the determined facial expression of the face is a facial expression of interest.
Example 92 may be example 91, wherein the face tracking means may comprise means for automatically adding the image frame or an avatar image generated based at least in part on the image frame to the collection of snapshots on determination that the determined facial expression is a facial expression of interest.
It will be apparent to those skilled in the art that various modifications and variations can be made in the disclosed embodiments of the disclosed device and associated methods without departing from the spirit or scope of the disclosure. Thus, it is intended that the present disclosure covers the modifications and variations of the embodiments disclosed above provided that the modifications and variations come within the scope of any claims and their equivalents.

Claims (30)

  1. An apparatus for capturing or generating image, comprising:
    an image capturing engine; and
    a face tracker coupled with the image capturing engine to receive an image frame from the image capturing engine, analyze the image frame for a face, and on identification of a face in the image frame, evaluate the face to determine whether the image frame comprises an acceptable or unacceptable face pose; wherein on determination of the image frame having an unacceptable face pose, the face tracker is to further provide instructions for taking another image frame, with the instructions designed to improve likelihood that the other image frame will comprise an acceptable face pose.
  2. The apparatus of claim 1, wherein the face tracker, as part of evaluation of the face pose, is to first determine a plurality of landmarks of the face, second determine a plurality of translation positions or the plurality of angles of the face pose, based at least in part on the determined landmarks; then third determine whether the plurality of translation positions or the plurality of angles for the face pose are within corresponding ranges for the translation positions and the angles.
  3. The apparatus of claim 2, wherein the face tracker is to provide the instructions, on determination that at least one of the plurality of translation positions or the plurality of angles is out of a corresponding range for the translation position or angle.
  4. The apparatus of claim 1, wherein the face tracker is to instruct rotating the apparatus towards or away from a user, in a clockwise or counterclockwise direction, or to a left or right direction, prior to taking another image frame; or to instruct moving the apparatus along an X-axis, a Y-axis or a Z-axis, in a positive or negative direction, prior to taking another image frame.
  5. The apparatus of any one of claims 1-4, wherein the face tracker is to further receive a second image frame from either the image capturing engine or an image generating engine, analyze the second image frame for a second face, and on identification of a second face in the second image frame, extract a face shape of the second face or  determine a facial expression of the second face, and make a determination on whether to automatically add the second image frame or an avatar image generated based at least in part on the second image frame to a collection of snapshots; wherein the determination is based at least in part of the extracted face shape or the determined facial expression of the second face in the second image frame.
  6. An apparatus for capturing or generating image, comprising:
    an image capturing or generating engine; and
    a face tracker coupled with the image capturing or generating engine to receive an image frame from the image capturing or generating engine, analyze the image frame for a face, and on identification of a face in the image frame, extract a face shape of the face or determine a facial expression of the face; wherein the face tracker is to further make a determination on whether to automatically add the image frame or an avatar image generated based at least in part on the image frame to a collection of snapshots, and wherein the determination is based at least in part of the extracted face shape or the determined facial expression of the face in the image frame.
  7. The apparatus of claim 6, wherein the face tracker, on identification of a face in the image frame, is to extract a face shape of the face; wherein the face tracker is also to initialize the collection of snapshots with a snapshot having a face with a neutral face shape.
  8. The apparatus of claim 7, wherein the face tracker, as part of making the determination, is to select a snapshot within the collection of snapshots that has a face that is closest to the face in the image frame.
  9. The apparatus of claim 8, wherein the face tracker, as part of making the determination, is to further compute a dissimilarity measure between the face shape of the face in the image frame, and the face shape of the face in the selected snapshot.
  10. The apparatus of claim 9, wherein the face tracker, as part of making the determination, is to further determine whether the dissimilarity measure exceeds a threshold.
  11. The apparatus of claim 10, wherein the face tracker automatically adds the image frame or an avatar image generated based at least in part on the image frame to the  collection of snapshots on determination that the dissimilarity measure exceeded the threshold.
  12. The apparatus of any one of claims 6-11, wherein the face tracker, on identification of a face in the image frame, is to determine a facial expression of the face; wherein the face tracker is also to determine whether the determined facial expression of the face is a facial expression of interest.
  13. The apparatus of claim 12, wherein the face tracker automatically adds the image frame or an avatar image generated based at least in part on the image frame to the collection of snapshots on determination that the determined facial expression is a facial expression of interest.
  14. A method for capturing or generating an image, comprising:
    receiving, by a face tracker of an image capturing or generating apparatus, an image frame;
    analyzing the image frame, by the face tracker, for a face;
    on identification of a face in the image frame, evaluating the face, by the face tracker, to determine whether the image frame comprises an acceptable or unacceptable face pose; and
    on determination of the image frame having an unacceptable face pose, providing, by the face tracker, instructions for taking another image frame, with the instructions designed to improve likelihood that the other image frame will comprise an acceptable face pose.
  15. The method of claim 14, further comprising receiving, by the face tracker, a second image frame; analyzing, by the face tracker, the second image frame for a second face; on identification of a second face in the second image frame, extracting, by the face tracker, a face shape of the second face or determining, by the face tracker, a facial expression of the second face; and determining, by the face tracker, whether to automatically add the second image frame or an avatar image generated based at least in part on the second image frame to a collection of snapshots; wherein determining is based at least in part of the extracted face shape or the determined facial expression of the second face in the second image frame.
  16. A method for capturing or generating an image, comprising:
    receiving, by a face tracker of an image capturing or generating apparatus, an image frame;
    analyzing, by the face tracker, the image frame for a face;
    on identification of a face in the image frame, extracting, by the face tracker, a face shape of the face or determining, by the face tracker, a facial expression of the face; and
    determining, by the face tracker, whether to automatically add the image frame or an avatar image generated based at least in part on the image frame to a collection of snapshots, wherein the determination is based at least in part of the extracted face shape or the determined facial expression of the face in the image frame.
  17. The method of claim 16, further comprising, initializing, by the face tracker, the collection of snapshots with a snapshot having a face with a neutral face shape; and on identification of a face in the image frame, extracting, by the face tracker, a face shape of the face.
  18. The method of claim 17, wherein determining whether to automatically add the second image frame or an avatar image generated based at least in part on the second image frame to a collection of snapshots further comprises selecting a snapshot within the collection of snapshots that has a face that is closest to the face in the image frame; computing a dissimilarity measure between the face shape of the face in the image frame, and the face shape of the face in the selected snapshot; determining whether the dissimilarity measure exceeds a threshold; and adding, by the face tracker, the image frame to the collection of snapshots on determining that the dissimilarity measure exceeded the threshold.
  19. The method of any one of claims 16-18, further comprising, on identification of a face in the image frame, determining, by the face tracker, a facial expression of the face; wherein the face tracker is also to determine whether the determined facial expression of the face is a facial expression of interest; and automatically adding, by the face tracker, the image frame or an avatar image generated based at least in part on the image frame to the collection of snapshots on determination that the determined facial expression is a facial expression of interest.
  20. At least one computer-readable medium having instructions to cause an image capturing or generating apparatus, in response to execution of the instructions by the apparatus, to cause the apparatus to practice any one of the methods of claims 14-19.
  21. An apparatus for capturing or generating image, comprising:
    an image capturing engine; and
    face tracking means for receiving an image frame, analyzing the image frame for a face, and on identification of a face in the image frame, evaluating the face to determine whether the image frame comprises an acceptable or unacceptable face pose; and providing instructions for taking another image frame, on determining that the image frame having an unacceptable face pose, with the instructions designed to improve likelihood that the other image frame will comprise an acceptable face pose.
  22. The apparatus of claim 21, wherein the face tracking means comprises means for receiving a second image frame, analyzing the second image frame for a second face, and on identification of a second face in the second image frame, extracting a face shape of the second face or determining a facial expression of the second face, and determining whether to automatically add the second image frame or an avatar image generated based at least in part on the second image frame to a collection of snapshots; wherein determining is based at least in part of the extracted face shape or the determined facial expression of the second face in the second image frame.
  23. An image capturing or generating apparatus, comprising:
    an image capturing or generating engine; and
    face tracking means for receiving an image frame, analyzing the image frame for a face, and on identification of a face in the image frame, extracting a face shape of the face or determine a facial expression of the face; and determining whether to automatically add the image frame or an avatar image generated based at least in part on the image frame to a collection of snapshots, and wherein determining is based at least in part of the extracted face shape or the determined facial expression of the face in the image frame.
  24. The apparatus of claim 23, wherein the face tracking means comprises means for initializing the collection of snapshots with a snapshot having a face with a neutral face shape; and means for extracting, on identification of a face in the image frame, a face shape of the face.
  25. The apparatus of claim 24, wherein the face tracking means further comprises means for selecting, as part of determining whether to automatically add, a snapshot within the collection of snapshots that has a face that is closest to the face in the image frame.
  26. The apparatus of claim 25, wherein the face tracking means further comprises means for computing, as part of determining whether to automatically add, a dissimilarity measure between the face shape of the face in the image frame, and the face shape of the face in the selected snapshot.
  27. The apparatus of claim 26, wherein the face tracking means further comprises means for determining, as part of determining whether to automatically add, whether the dissimilarity measure exceeds a threshold.
  28. The apparatus of claim 27, wherein the face tracking means further comprises means for automatically adding the image frame or an avatar image generated based at least in part on the image frame to the collection of snapshots on determination that the dissimilarity measure exceeded the threshold.
  29. The apparatus of claim 24, wherein the face tracking means comprises means for determining, on identification of a face in the image frame, a facial expression of the face; and means for determining whether the determined facial expression of the face is a facial expression of interest.
  30. The apparatus of claim 29, wherein the face tracking means further comprises means for automatically adding the image frame or an avatar image generated based at least in part on the image frame to the collection of snapshots on determination that the determined facial expression is a facial expression of interest.
PCT/CN2014/090711 2014-11-10 2014-11-10 Image capturing apparatus and method WO2016074128A1 (en)

Priority Applications (4)

Application Number Priority Date Filing Date Title
US14/775,387 US20160300100A1 (en) 2014-11-10 2014-11-10 Image capturing apparatus and method
PCT/CN2014/090711 WO2016074128A1 (en) 2014-11-10 2014-11-10 Image capturing apparatus and method
EP14905858.8A EP3218879A4 (en) 2014-11-10 2014-11-10 Image capturing apparatus and method
CN201480082621.7A CN107251096B (en) 2014-11-10 2014-11-10 Image capturing apparatus and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2014/090711 WO2016074128A1 (en) 2014-11-10 2014-11-10 Image capturing apparatus and method

Publications (1)

Publication Number Publication Date
WO2016074128A1 true WO2016074128A1 (en) 2016-05-19

Family

ID=55953536

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2014/090711 WO2016074128A1 (en) 2014-11-10 2014-11-10 Image capturing apparatus and method

Country Status (4)

Country Link
US (1) US20160300100A1 (en)
EP (1) EP3218879A4 (en)
CN (1) CN107251096B (en)
WO (1) WO2016074128A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107613102A (en) * 2017-08-30 2018-01-19 维沃移动通信有限公司 A kind of session information input method and mobile terminal

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2731037B1 (en) 2007-09-24 2019-08-07 Apple Inc. Embedded authentication systems in an electronic device
US8600120B2 (en) 2008-01-03 2013-12-03 Apple Inc. Personal computing device control using face detection and recognition
US9002322B2 (en) 2011-09-29 2015-04-07 Apple Inc. Authentication with secondary approver
US9898642B2 (en) 2013-09-09 2018-02-20 Apple Inc. Device, method, and graphical user interface for manipulating user interfaces based on fingerprint sensor inputs
CN104715227B (en) * 2013-12-13 2020-04-03 北京三星通信技术研究有限公司 Method and device for positioning key points of human face
US10482461B2 (en) 2014-05-29 2019-11-19 Apple Inc. User interface for payments
US20160358133A1 (en) 2015-06-05 2016-12-08 Apple Inc. User interface for loyalty accounts and private label accounts for a wearable device
US9940637B2 (en) 2015-06-05 2018-04-10 Apple Inc. User interface for loyalty accounts and private label accounts
CN105205462A (en) * 2015-09-18 2015-12-30 北京百度网讯科技有限公司 Shooting promoting method and device
GB2548154A (en) * 2016-03-11 2017-09-13 Sony Computer Entertainment Europe Ltd Virtual reality
EP3232368A1 (en) * 2016-04-14 2017-10-18 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Determining facial parameters
DK179186B1 (en) 2016-05-19 2018-01-15 Apple Inc REMOTE AUTHORIZATION TO CONTINUE WITH AN ACTION
US10621581B2 (en) 2016-06-11 2020-04-14 Apple Inc. User interface for transactions
DK201670622A1 (en) 2016-06-12 2018-02-12 Apple Inc User interfaces for transactions
US10496808B2 (en) 2016-10-25 2019-12-03 Apple Inc. User interface for managing access to credentials for use in an operation
CN117077102A (en) 2017-09-09 2023-11-17 苹果公司 Implementation of biometric authentication
KR102185854B1 (en) 2017-09-09 2020-12-02 애플 인크. Implementation of biometric authentication
US11170085B2 (en) 2018-06-03 2021-11-09 Apple Inc. Implementation of biometric authentication
CN110634174B (en) * 2018-06-05 2023-10-10 深圳市优必选科技有限公司 Expression animation transition method and system and intelligent terminal
US11100349B2 (en) 2018-09-28 2021-08-24 Apple Inc. Audio assisted enrollment
US10860096B2 (en) 2018-09-28 2020-12-08 Apple Inc. Device control using gaze information
US11328352B2 (en) 2019-03-24 2022-05-10 Apple Inc. User interfaces for managing an account
US20210034880A1 (en) 2019-07-30 2021-02-04 Sling Media Pvt Ltd Time-based automatic video feed selection for a digital video production system
CN110705478A (en) * 2019-09-30 2020-01-17 腾讯科技(深圳)有限公司 Face tracking method, device, equipment and storage medium
US11816194B2 (en) 2020-06-21 2023-11-14 Apple Inc. User interfaces for managing secure operations
CN113453034B (en) * 2021-06-29 2023-07-25 上海商汤智能科技有限公司 Data display method, device, electronic equipment and computer readable storage medium
US11792506B2 (en) * 2022-02-09 2023-10-17 Motorola Mobility Llc Electronic devices and corresponding methods for defining an image orientation of captured images

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070122001A1 (en) * 2005-11-30 2007-05-31 Microsoft Corporation Real-time Bayesian 3D pose tracking
CN101419666A (en) * 2007-09-28 2009-04-29 富士胶片株式会社 Image processing apparatus, image capturing apparatus, image processing method and recording medium
CN101499128A (en) * 2008-01-30 2009-08-05 中国科学院自动化研究所 Three-dimensional human face action detecting and tracing method based on video stream

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6937745B2 (en) * 2001-12-31 2005-08-30 Microsoft Corporation Machine vision system and method for estimating and tracking facial pose
CN201213278Y (en) * 2008-07-02 2009-03-25 希姆通信息技术(上海)有限公司 Intelligent human face tracing device taking image by mobile phone
KR101527408B1 (en) * 2008-11-04 2015-06-17 삼성전자주식회사 System and method for sensing facial gesture
KR101537948B1 (en) * 2008-12-16 2015-07-20 삼성전자주식회사 Photographing method and apparatus using pose estimation of face
CN103443804B (en) * 2011-03-31 2019-02-19 英特尔公司 Method of facial landmark detection
US8824749B2 (en) * 2011-04-05 2014-09-02 Microsoft Corporation Biometric recognition
WO2012139276A1 (en) * 2011-04-11 2012-10-18 Intel Corporation Avatar facial expression techniques
US9165404B2 (en) * 2011-07-14 2015-10-20 Samsung Electronics Co., Ltd. Method, apparatus, and system for processing virtual world
US8254647B1 (en) * 2012-04-16 2012-08-28 Google Inc. Facial image quality assessment
WO2014036708A1 (en) * 2012-09-06 2014-03-13 Intel Corporation System and method for avatar creation and synchronization
US9589357B2 (en) * 2013-06-04 2017-03-07 Intel Corporation Avatar-based video encoding
US9378576B2 (en) * 2013-06-07 2016-06-28 Faceshift Ag Online modeling for real-time facial animation
US9508197B2 (en) * 2013-11-01 2016-11-29 Microsoft Technology Licensing, Llc Generating an avatar from real time image data
US9361510B2 (en) * 2013-12-13 2016-06-07 Intel Corporation Efficient facial landmark tracking using online shape regression method
CN106104633A (en) * 2014-03-19 2016-11-09 英特尔公司 Facial expression and/or the mutual incarnation apparatus and method driving
WO2016011654A1 (en) * 2014-07-25 2016-01-28 Intel Corporation Avatar facial expression animations with head rotation
US9405967B2 (en) * 2014-09-03 2016-08-02 Samet Privacy Llc Image processing apparatus for facial recognition
US9633463B2 (en) * 2014-09-24 2017-04-25 Intel Corporation User gesture driven avatar apparatus and method
US9430696B2 (en) * 2014-10-09 2016-08-30 Sensory, Incorporated Continuous enrollment for face verification
US9898849B2 (en) * 2014-11-05 2018-02-20 Intel Corporation Facial expression based avatar rendering in video animation and method
KR102374446B1 (en) * 2014-12-11 2022-03-15 인텔 코포레이션 Avatar selection mechanism
US20170039750A1 (en) * 2015-03-27 2017-02-09 Intel Corporation Avatar facial expression and/or speech driven animations

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070122001A1 (en) * 2005-11-30 2007-05-31 Microsoft Corporation Real-time Bayesian 3D pose tracking
CN101419666A (en) * 2007-09-28 2009-04-29 富士胶片株式会社 Image processing apparatus, image capturing apparatus, image processing method and recording medium
CN101499128A (en) * 2008-01-30 2009-08-05 中国科学院自动化研究所 Three-dimensional human face action detecting and tracing method based on video stream

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
See also references of EP3218879A4 *
XUETAO FENG ET AL.: "Robust Facial Expression Tracking Based On Composite Constraints AAM", 2011 18TH IEEE INTERNATIONAL CONFERENCE ON IMAGE PROCESSING, 11 September 2011 (2011-09-11), XP032080312 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107613102A (en) * 2017-08-30 2018-01-19 维沃移动通信有限公司 A kind of session information input method and mobile terminal

Also Published As

Publication number Publication date
EP3218879A4 (en) 2018-07-04
US20160300100A1 (en) 2016-10-13
EP3218879A1 (en) 2017-09-20
CN107251096A (en) 2017-10-13
CN107251096B (en) 2022-02-11

Similar Documents

Publication Publication Date Title
WO2016074128A1 (en) Image capturing apparatus and method
US10769411B2 (en) Pose estimation and model retrieval for objects in images
EP3216008B1 (en) Avatar video apparatus and method
US10394318B2 (en) Scene analysis for improved eye tracking
US10204423B2 (en) Visual odometry using object priors
WO2019023921A1 (en) Gesture recognition method, apparatus, and device
EP3874458A1 (en) Cross-domain image translation
US9437011B2 (en) Method and apparatus for estimating a pose of a head for a person
CN113015978B (en) Processing images to locate novel objects
US20180068451A1 (en) Systems and methods for creating a cinemagraph
US10747371B1 (en) Detection of finger press from live video stream
JP2015219879A (en) Image recognition system, image recognition method, and program
WO2012117901A1 (en) Data processing device, data processing system, and program
US11941498B2 (en) Facial motion detection and image correction method and apparatus
KR101909326B1 (en) User interface control method and system using triangular mesh model according to the change in facial motion
CN116686006A (en) Three-dimensional scan registration based on deformable model
KR101844367B1 (en) Apparatus and Method for Head pose estimation using coarse holistic initialization followed by part localization
CN110266937A (en) The control method of terminal device and camera
JP6836985B2 (en) Programs, devices and methods for estimating the context of human behavior from captured images
JP2020021170A (en) Identification device, identification method and identification program
WO2018191058A1 (en) Image processing system with discriminative control
Christ et al. Vision-based Machine Learning Worker Assistance System for People with Disabilities on Low-Cost Hardware
TW202411949A (en) Cascaded detection of facial attributes
TWI623889B (en) 3d hand gesture image recognition method and system thereof
WO2014169441A1 (en) Method and system for eye tracking using combination of detection and motion estimation

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 14775387

Country of ref document: US

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 14905858

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

REEP Request for entry into the european phase

Ref document number: 2014905858

Country of ref document: EP