Embodiments generally relate to camera technology. More particularly, embodiments relate to a voice-controlled camera with artificial intelligence (AI) scene detection for precise focusing.
With digital cameras, it is still hard for the user to select the right camera settings to enable the user to take a photograph in which the subject is focused as expected by the user. While experts know all the menus and buttons to select to obtain the correct focus points to be used, this is often complicated and does not work well for the majority of amateur photographers.
Touching the screen of the camera or smartphone to focus on a certain object is a workaround, but when the object moves or rotates around too much, problems occur. Tracking may be lost and there is no real information on how to recover automatic tracking.
Conventional voice control methods to operate a camera are limited to thumb control commands that have been directly mapped to voice control. For example, the user command “power off” will operate the same as one pressing the power off button. The ability for the camera to receive more complex camera tasks is needed to help the amateur photographer obtain expert-like photographs. However, doing more complex camera tasks such as, for example, asking the camera to focus on certain objects using natural language, and allowing the camera to execute the command would make it easier for the amateur photographer to obtain expert-like photographs.
The various advantages of the embodiments will become apparent to one skilled in the art by reading the following specification and appended claims, and by referencing the following drawings, in which:
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.
Technology for a voice-controlled camera with artificial intelligence (AI) scene detection for precise focusing. In embodiments, a user may tell the camera what photograph it wants using natural language. In other words, the user may tell the camera what subject to take and how it wants to see the subject using voice commands. This is accomplished using natural language techniques. The camera, upon receiving the voice commands from the user, parses the voice commands for understanding. The camera captures a preview image of the user desired scene and applies artificial intelligence to the preview image to obtain context and to detect objects within the preview image. A depth map of the preview image is generated to obtain distances from the detected objects in the preview image to the camera. It is then determined whether the detected objects in the preview image match the voice commands from the user. If they match, the camera focus point and the camera settings based on the voice commands of the user are determined. The camera is focused and the camera settings are adjusted automatically to obtain the desired user image. A photograph of the desired user image is taken.
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.
References in the specification to “one embodiment,” “an embodiment,” “an illustrative embodiment,” etc., indicate that the embodiment described may include a particular feature, structure, or characteristic, but every embodiment may or may not necessarily include that particular feature, structure, or characteristic. Moreover, such phrases are not necessarily referring to the same embodiment. Further, when a particular feature, structure, or characteristic is described in connection with an embodiment, it is submitted that it is within the knowledge of one skilled in the art to affect such feature, structure, or characteristic in connection with other embodiments whether or not explicitly described. Additionally, it should be appreciated that items included in a list in the form of “at least one of A, B, and C” can mean (A); (B); (C); (A and B); (B and C); (A and C); or (A, B, and C). Similarly, items listed in the form of “at least one of A, B, or C” can mean (A); (B); (C); (A and B); (B and C); (A and C); or (A, B, and C).
The disclosed embodiments may be implemented, in some cases, in hardware, firmware, software, or any combination thereof. The disclosed embodiments may also be implemented as instructions carried by or stored on one or more transitory or non-transitory machine-readable (e.g., computer-readable) storage medium, which may be read and executed by one or more processors. A machine-readable storage medium may be embodied as any storage device, mechanism, or other physical structure for storing or transmitting information in a form readable by a machine (e.g., a volatile or non-volatile memory, a media disc, or other media device). As used herein, the term “logic” and “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 having machine instructions (generated from an assembler and/or a compiler), a combinational logic circuit, and/or other suitable components that provide the described functionality.
In the drawings, some structural or method features may be shown in specific arrangements and/or orderings. However, it should be appreciated that such specific arrangements and/or orderings may not be required. Rather, in some embodiments, such features may be arranged in a different manner and/or order than shown in the illustrative figures. Additionally, the inclusion of a structural or method feature in a particular figure is not meant to imply that such feature is required in all embodiments and, in some embodiments, it may not be included or may be combined with other features.
Embodiments are described for obtaining photographs using a voice-controlled camera with AI scene detection for precise focusing. Although embodiments are described for obtaining photographs, one skilled in the relevant art(s) would know that embodiments may also be applied to capturing video as well.
Whether the camera is a compact camera, a mirrorless camera, a DSLR (Digital Single-Lens Reflex) camera, a camera incorporated in a mobile phone, or any other type of camera, unless the owner is an expert, they probably don't know about all the menus and options available to them for setting objects into focus. And with the incorporation of cameras in mobile phones, one can safely say that the majority of camera owners may be classified as amateur photographers. Cameras having touchscreens allow a user to tap their finger on an area or object (i.e., the subject) they want to be in focus and take the photograph, but there are drawbacks to this feature. If the subject moves before the user has a chance to take the photograph, the focus may be lost. The feature is also limited in that it only allows the user to tap their finger on one subject. If the user wants more than one person to be in focus while having other persons in the scene be out of focus, this feature does not allow the user to accomplish this.
Embodiments aid the novice or amateur photographer by receiving complex camera commands from the user, such as, for example, asking the camera to focus on certain desired objects using natural language, and allowing the camera to execute the command using AI techniques, depth mapping, and determining aperture, shutter speed, ISO and any other optical settings that will enable the camera to provide precise focusing of the desired subjects in the scene.
The camera includes AI based on natural language processing to convert speech into sounds, words, and ideas that enable the identification of keywords. The keywords allow the camera to recognize commands and adjust camera settings to perform precise focusing as requested by the user. The camera, via a microphone, is constantly listening, but will only respond when it hears an appropriate wake word. In one embodiment, the wake word may be “camera”. In other embodiments, the user may customize the wake word. Once the camera hears the wake word, it will then listen for and begin analyzing what the user says next, such as, the instructions from the user as to what the user is trying to capture in the photograph.
Another example of an instruction for precise focusing may include, “camera, take a group photo with all people inside it being sharp.” Besides focusing, embodiments could also be enhanced to provide a natural language interface to the camera for other settings. For example, an instruction might be “camera take a photo in which the two closest persons are in focus and where the one person behind is blurred.” Another example from
For example, computer program code to carry out operations shown in the method 300 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. Additionally, logic instructions might include assembler instruction, instruction set architecture (ISA) instructions, machine instruction, machine depended instruction, microcode, state setting data, configuration data for integrated circuitry, state information that personalizes electronic circuitry and/or other structural components that are native to hardware (e.g., host processor, central processing unit (CPU), microcontroller, etc.).
With the camera in the ON position, the process begins in block 302. The process immediately proceeds to block 304.
In block 304, the camera, via a microphone, listens for voice commands based on the wake word “camera.” As previously indicated, a user may change the wake word during the initialization of the camera if he or she so desires. The wake word operates as a trigger to let the camera know that voice commands following the wake word are instructions for focusing the camera to achieve a desired photograph for the user. Upon hearing the wake word, the process proceeds to blocks 306 and 308 simultaneously to receive the instructions for focusing the camera to achieve the desired photograph for the user in block 306 and to simultaneously capture an image in block 308.
In block 306, once the instructions are received, natural language processing (NLP) begins by parsing the speech into keywords that will allow the camera to understand the task at hand. In an embodiment, the natural language process may use deep learning techniques, such as, for example, neural networks based on dense vector representations. Such neural networks may include, but are not limited to, convolutional neural networks (CNN), recurrent neural networks (RNN), and/or recursive neural networks. Other machine learning based NLP techniques may also be used to understand the received instructions for focusing the camera.
In block 308, as previously indicated, an image is captured. In one embodiment, the image may be the preview image captured by the camera when in preview mode. The process then proceeds to block 310.
In block 310, AI (Artificial Intelligence) techniques are applied to perform scene analysis on the captured preview image for detecting objects within the preview image and providing context as to what is in the image. Such object detection and context techniques may include, but are not limited to, Semantic Segmentation in real-time using Fully Convolutional Networks (FCN), R-CNN (Region-based Convolutional Neural Network), Fast R-CNN, Faster R-CNN, YOLO (You Only Look Once), and Mask R-CNN Using TensorRT, or a combination of one or more of the above. AI object detection usually returns in which image segment an object has been identified by placing bounding boxes around the recognized objects.
In block 312, the distance from the recognized objects to the camera are determined.
In one embodiment, a depth map indicating the distances of the recognized objects from the camera may be obtained using monocular SLAM (Simultaneous Localization and Mapping). Using SLAM, the camera may build a map of the environment in which the photograph is to be taken. SLAM is well known to those skilled in the art.
In another embodiment, depth sensors, such as Intel® RealSense, may be used. The depth sensors are used to determine the distances of the recognized objects from the camera.
In yet another embodiment, depending upon the type of camera used, many cameras, especially DSLR cameras, are able to estimate the distance from the camera to an object that is in focus. When the camera's shutter button pressed halfway, an indication of the shooting distance and the aperture value are displayed as shown in
Returning to
Returning to
In decision block 314, it is determined whether the requested objects in the voice command are part of the scene obtained from the preview image. If it is determined that the requested objects in the voice command are not part of the scene obtained from the preview image, the process proceeds to block 316 where an error message is displayed to the user. The error message will indicate to the user that the requested objects are not found in the preview image. The process may then return back to block 308 to enable the user to capture another preview image, to apply AI scene analysis (block 310) for object detection in the preview image, and to obtain distance measurements (block 312) for the detected objects in the preview image.
Returning to decision block 314, if it is determined that the requested objects in the voice command are part of the scene obtained from the preview image, the process proceeds to block 318.
At this point, a list of identified objects along with the positions of the identified objects in the preview image, as indicated by the bounded boxes or the exact pixel segmentations, and their estimated distances or depths have been obtained. In block 318, the focus point and camera settings are determined based on the requirements provided by the voice commands, i.e., special camera instructions given by the user as to what is to be captured in the photograph and how the objects in the photograph are to be displayed.
In one embodiment, well known optical formulas for camera settings may be solved using the information above (objects to be captured, the position of the objects in the preview image, and the distance of the objects to the camera) to obtain the focus point and camera settings.
In some instances, the camera may or may not need to manipulate other settings besides focusing in order to provide the photograph requested by the user. For example, after the instruction “focus on the right eye of the closest person to me,” the camera may be able to adjust the focus for the right eye and take the picture in whatever mode has already been set for the camera.
For instructions like “capture all three people and make sure they are in focus, the camera may experiment by setting an initial f/stop value and automatically looking at the results using the depth-of-field preview. The area of the three people would then be analyzed for sharpness based on edge detection. Next, the f/stop may be changed in one direction and then the results, using the depth-of-field preview, may be viewed again to see if the sharpness has increased or decreased. This process would repeat until a satisfying sharpness result is provided. This process could also be repeated for different camera settings, such as, for example, shutter speed and ISO.
For instructions like “capture all three people and make sure they are in focus,” the camera optical formulas stated above may be used. The distance to the three people as well as where the three people are located in the image are known factors from using AI scene analysis and depth maps described above. An estimate of a focal plane to have all three persons in focus may need to be determined. One would not only want the nose of the closest object to be sharp but would also want other parts of the three people, such as arms, shoulders and other facial features located at different depths to also be in focus. This may require, for example, adding 20 cm before the three people and 50 cm behind the three people.
In another embodiment, various smartphone applications, like, for example, Photographer's Companion, may use the defined values listed above to estimate the value of various camera settings needed to accomplish the goal of precise focusing.
The process then proceeds to block 320, where the camera adjusts the focus point and camera settings to achieve the desired photograph of the user. The process then proceeds to block 322.
In block 322, the photograph is taken. In one embodiment, the photograph may be taken by the user. In another embodiment, the photograph may automatically be taken by the camera after the proper camera settings have been adjusted.
The computer system 630 includes multiprocessors such as a first processor 602 (e.g., host processor, central processing unit/CPU) and a second processor 604 (e.g., graphics processing unit/GPU). The first processor or CPU 602 is the central or main processor for carrying out instructions of computer programs, such as, for example, a method for precise focusing of a voice-controlled camera using AI scene detection. The second processor or GPU 604 is primarily used to render 3D graphics. The GPU 604 may also be utilized to assist the CPU 602 in non-graphics computations. The CPU 602 and/or the GPU 604 may include a core region with one or more processor cores (not shown).
The computer system 630 also includes multiple compute engines to provide artificial machine intelligence. The compute engines include a neuromorphic compute engine 606 and a DSP (Digital Signal Processor) 608. The neuromorphic compute engine 606 is a hardware based accelerator used to increase the performance of deep neural networks. The neuromorphic compute engine 606 may be used to run neural networks, such as, for example, neural networks used to perform NLP and AI scene detection as described above. The DSP 608 is an on-chip hardware block designed to run deep neural networks at high speed and low power without compromising accuracy. The DSP 608 may be used to accelerate deep learning inferences at the edge. Thus, the DSP 608 may be used for machine learning to train a classifier to recognize voice-controlled camera commands and to detect objects in a scene captured by the camera 620 using semantic segmentation in real-time.
The CPU 602, GPU 604, and the compute engines 606 and 608 are communicatively coupled to an integrated memory controller (IMC) 610. The IMC 610 is coupled to a system memory 612 (volatile memory, 3D XPoint memory). The CPU 602, GPU 604, and the compute engines 606 and 608 may also be coupled to an input/output (I/O) module 616 that communicates with mass storage 618 (e.g., non-volatile memory/NVM, hard disk drive/HDD, optical disk, solid state disk/SSD, flash memory), the camera 620, one or more neural compute sticks (NCS) 624, such as, for example, the Intel® Movidius™ NCS (a USB-based deep learning/self-contained device used for artificial intelligence (AI) programming at the edge), and network interface circuitry 626 (e.g., network controller, network interface card/NIC).
The one or more NCS(s) 624 may provide dedicated deep neural network capabilities to the multiprocessors (602 and 604) and the compute engines (606 and 608) at the edge. Each of the one or more NCS(s) 624 include a VPU (Vision Processing Unit) to run real-time deep neural networks directly from the device to deliver dedicated high performance processing in a small form factor. In embodiments, the one or more NCS(s) 624 may be used to perform pattern matching based on the classifier trained to recognize voice-controlled camera instructions and/or detect objects in images captured by camera 620.
The network interface circuitry 626 may provide off platform communication functionality for a wide variety of purposes, such as, for example, cellular telephone (e.g., Wideband Code Division Multiple Access/W-CDMA (Universal Mobile Telecommunications System/UMTS), CDMA2000 (IS-856/IS-2000), etc.), WiFi (Wireless Fidelity, e.g., Institute of Electrical and Electronics Engineers/IEEE 802.11-2007, Wireless Local Area Network/LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications, 4G LTE (Fourth Generation Long Term Evolution), Bluetooth, WiMax (e.g., IEEE 802.16-2004, LAN/MAN Broadband Wireless LANS), Global Positioning System (GPS), spread spectrum (e.g., 900 MHz), and other radio frequency (RF) telephony purposes. Other standards and/or technologies may also be implemented in the network interface circuitry 626. In one embodiment, the network interface circuitry 626 may enable communication with various cloud services to perform AI tasks in the cloud.
Although the CPU 602, the GPU 604, the compute engines 606 and 608, the IMC 610, and the I/O controller 616 are illustrated as separate blocks, these components may be implemented as a system on chip (SoC) 628 on the same semiconductor die.
The system memory 612 and/or the mass memory 618 may be memory devices that store instructions 614, which when executed by the processors 602 and/or 604 or the compute engines 606 and/or 608, cause the camera system 600 to perform one or more aspects of method 300 for precise focusing of a voice-controlled camera using AI scene detection, described above with reference to
In another embodiment, the computer system 630 may be integrated onto camera 620. In this instance, all deep learning techniques may be performed directly on camera 620.
The processor core 800 is shown including execution logic 850 having a set of execution units 855-1 through 855-N. Some embodiments may include a number of execution units dedicated to specific functions or sets of functions. Other embodiments may include only one execution unit or one execution unit that can perform a particular function. The illustrated execution logic 850 performs the operations specified by code instructions.
After completion of execution of the operations specified by the code instructions, back end logic 860 retires the instructions of the code 805. In one embodiment, the processor core 800 allows out of order execution but requires in order retirement of instructions. Retirement logic 865 may take a variety of forms as known to those of skill in the art (e.g., re-order buffers or the like). In this manner, the processor core 800 is transformed during execution of the code 805, at least in terms of the output generated by the decoder, the hardware registers and tables utilized by the register renaming logic 825, and any registers (not shown) modified by the execution logic 850.
Although not illustrated in
Example 1 may include a system for performing precise focusing comprising a camera, the camera having a microphone to receive natural language instructions (NLIs) from a user for focusing the camera to achieve a desired photograph, the camera coupled to one or more processors, the one or more processors coupled to one or more memory devices, the one or more memory devices including instructions, which when executed by the one or more processors, cause the system to process the NLIs for understanding using natural language processing (NLP) techniques, capture a preview image of a user desired scene and apply artificial intelligence (AI) to the preview image to obtain context and to detect objects within the preview image, generate a depth map of the preview image to obtain distances of detected objects in the preview image to the camera, when the detected objects match the NLIs, determine and adjust camera focus point and camera settings based on the NLIs to obtain the desired user image, and take a photograph of the desired user image.
Example 2 may include the system of example 1, wherein the photograph is taken automatically by the camera.
Example 3 may include the system of example 1, wherein the user is prompted to take the photograph using the camera.
Example 4 may include the system of example 1, wherein when the detected objects in the image do not match the NLIs from the user, the one or more memory devices including further instructions, which when executed by the one or more processors, cause the system to recapture the preview image of the user desired scene, apply the AI to the preview image to obtain the context and to detect the objects within the preview image, generate the depth map of the preview image to obtain the distances from the detected objects in the preview image to the camera, when the detected objects in the preview image match the NLIs, determine and adjust the camera focus point and the camera settings based on the NLIs of the user to obtain the desired user image, and take the photograph of the desired user image.
Example 5 may include the system of example 1, wherein the camera continuously listens, via a microphone, to voice commands from the user based on a wake word, the wake word to operate as a trigger to inform the camera that the voice commands following the wake word are instructions for focusing the camera to achieve the desired photograph of the user.
Example 6 may include the system of example 1, wherein NLP uses deep learning techniques based on dense vector representations, wherein the deep learning techniques include one or more of Convolutional Neural Networks (CNN), Recurrent Neural Networks (RNN), and recursive neural networks.
Example 7 may include the system of example 1, wherein AI uses Semantic Segmentation in real-time using Fully Convolutional Networks (FCN), R-CNN (Regional-based Convolutional Neural Network), Fast R-CNN, Faster R-CNN, YOLO (You Only Look Once), and Mask R-CNN Using TensorRT, or a combination of one or more of the above.
Example 8 may include the system of example 1, wherein the camera focus point and the camera settings are determined by calculating optical formulas for cameras based on the identified objects to be photographed, their position in the preview image, and their estimated depth or distance to the camera.
Example 9 may include the system of example 1, wherein the camera focus point and the camera settings are determined through experimentation by selecting a camera parameter and viewing an image of that selection using depth of field preview, wherein if the image is not good, continuously changing the camera parameter and viewing the image until the image is correct.
Example 10 may include the system of example 1, wherein instructions to receive and process the NLIs and capture and apply AI to the preview image are simultaneously performed.
Example 11 may include a semiconductor package apparatus comprising one or more substrates, and logic coupled to the one or more substrates, wherein the logic includes one or more of configurable logic or fixed-functionality hardware logic, the logic coupled to the one or more substrates to receive natural language instructions (NLIs) from a user for focusing the camera to achieve a desired photograph, wherein the NLIs are processed using natural language processing (NLP) techniques to understand the instructions, capture a preview image of a user desired scene to apply artificial intelligence (AI) to the preview image to obtain context and to detect objects within the preview image, generate a depth map of the preview image to obtain distances of detected objects in the preview image to the camera, when the detected objects in the preview image match, determine and adjust camera focus point and camera settings based on the NLIs of the user to obtain the desired user image, and take a photograph of the desired user image.
Example 12 may include the apparatus of example 11, wherein the photograph is taken automatically by the camera.
Example 13 may include the apparatus of example 11, wherein the user is prompted to take the photograph using the camera.
Example 14 may include the apparatus of example 11, wherein when the detected objects in the image do not match the NLIs from the user, the logic coupled to the one or more substrates to recapture the preview image of the user desired scene, apply the AI to the preview image to obtain the context and to detect the objects within the preview image, generate the depth map of the preview image to obtain the distances from the detected objects in the preview image to the camera when the detected objects in the preview image match the NLIs, the logic coupled to the one or more substrates to determine and adjust the camera focus point and the camera settings based on the NLIs of the user to obtain the desired user image, and take the photograph of the desired user image.
Example 15 may include the apparatus of example 11, wherein the camera continuously listens, via a microphone, to voice commands from the user based on a wake word, the wake word to operate as a trigger to inform the camera that the voice commands following the wake word are instructions for focusing the camera to achieve a desired photograph of the user.
Example 16 may include the apparatus of example 11, wherein NLP uses deep learning techniques based on dense vector representations, wherein the deep learning techniques include one or more of Convolutional Neural Networks (CNN), Recurrent Neural Networks (RNN), and recursive neural networks.
Example 17 may include the apparatus of example 11, wherein AI uses Semantic Segmentation in real-time using Fully Convolutional Networks (FCN), R-CNN (Regional-based Convolutional Neural Network), Fast R-CNN, Faster R-CNN, YOLO (You Only Look Once), and Mask R-CNN Using TensorRT, or a combination of one or more of the above.
Example 18 may include the apparatus of example 11, wherein the camera focus point and the camera settings are determined by calculating optical formulas for cameras based on the identified objects to be photographed, their position in the preview image, and their estimated depth or distance to the camera.
Example 19 may include the apparatus of example 11, wherein the camera focus point and the camera settings are determined through experimentation by selecting a camera parameter and viewing an image of that selection using depth of field preview, wherein if the image is not good, continuously changing the camera parameter and viewing the image until the image is correct.
Example 20 may include the apparatus of example 11, wherein logic to receive and process the NLIs and capture and apply AI to the preview image are simultaneously performed.
Example 21 may include a method of performing precise focusing of a camera comprising receiving, by the camera, natural language instructions (NLIs) from a user for focusing the camera to achieve a desired photograph, wherein the NLIs are processed to understand the instructions using natural language processing (NLP), capturing, by the camera, a preview image of a user desired scene, wherein artificial intelligence (AI) is applied to the preview image to obtain context and to detect objects, generating a depth map of the preview image to obtain distances of detected objects in the preview image to the camera, when the detected objects in the preview image match the NLIs, determining camera focus point and camera settings based on the NLIs and adjusting the camera focus point and the camera settings to obtain the desired user image, and taking a photograph of the desired user image.
Example 22 may include the method of example 21, wherein the photograph is taken automatically by the camera.
Example 23 may include the method of example 21, wherein the user is prompted to take the photograph.
Example 24 may include the method of example 21, wherein when the detected objects in the image do not match the NLIs, recapturing, by the camera, the preview image of the user desired scene, applying the AI to the preview image to obtain the context and to detect the objects within the preview image, generating the depth map of the preview image to obtain the distances from the detected objects in the preview image to the camera, when the detected objects in the preview image match the NLIs, determining the camera focus point and the camera settings based on the NLIs and adjusting the camera focus point and the camera settings to obtain the desired user image, and taking the photograph of the desired user image.
Example 25 may include the method of example 21, wherein the camera continuously listens, via a microphone, to voice commands from the user based on a wake word, the wake word to operate as a trigger to inform the camera that the voice commands following the wake word are instructions for focusing the camera to achieve a desired photograph of the user.
Example 26 may include the method of example 21, wherein NLP uses deep learning techniques based on dense vector representations, wherein the deep learning techniques include one or more of Convolutional Neural Networks (CNN), Recurrent Neural Networks (RNN), and recursive neural networks.
Example 27 may include the method of example 21, wherein artificial intelligence uses Semantic Segmentation in real-time using Fully Convolutional Networks (FCN), R-CNN (Regional-based Convolutional Neural Network), Fast R-CNN, Faster R-CNN, YOLO (You Only Look Once), and Mask R-CNN Using TensorRT, or a combination of one or more of the above.
Example 28 may include the method of example 21, wherein the camera focus point and the camera settings are determined by calculating optical formulas for cameras based on the identified objects to be photographed, their position in the preview image, and their estimated depth or distance to the camera.
Example 29 may include the method of example 21, wherein the camera focus point and the camera settings are determined through experimentation by selecting a camera parameter and viewing an image of that selection using depth of field preview, wherein if the image is not good, continuously changing the camera parameter and viewing the image until the image is correct.
Example 30 may include the method of example 21, wherein receiving and processing the natural language instructions and capturing and applying AI to the preview image are performed simultaneously.
Example 31 may include at least one computer readable medium, comprising a set of instructions, which when executed by one or more computing devices, cause the one or more computing devices to receive, by the camera, natural language instructions (NLIs) from a user for focusing the camera to achieve a desired photograph, wherein the NLIs are processed to understand the instructions using natural language processing (NLP), capture, by the camera, a preview image of a user desired scene, wherein artificial intelligence (AI) is applied to the preview image to obtain context and to detect objects, generate a depth map of the preview image to obtain distances of detected objects in the preview image to the camera, when the detected objects in the preview image match the NLIs, determine camera focus point and camera settings based on the NLIs and adjust the camera focus point and the camera settings to obtain the desired user image, and take a photograph of the desired user image.
Example 32 may include the at least one computer readable medium of example 31, wherein the photograph is taken automatically by the camera.
Example 33 may include the at least one computer readable medium of example 31, wherein the user is prompted to take the photograph.
Example 34 may include the at least one computer readable medium of example 31, wherein when the detected objects in the image do not match the NLIs, the instructions, which when executed by one or more computing devices, further cause the one or more computing devices to recapture, by the camera, the preview image of the user desired scene, apply the AI to the preview image to obtain the context and to detect the objects within the preview image, generate the depth map of the preview image to obtain the distances from the detected objects in the preview image to the camera, when the detected objects in the preview image match the NLIs, determine the camera focus point and the camera settings based on the NLIs and adjust the camera focus point and the camera settings to obtain the desired user image, and take the photograph of the desired user image.
Example 35 may include the at least one computer readable medium of example 31, wherein the camera continuously listens, via a microphone, to voice commands from the user based on a wake word, the wake word to operate as a trigger to inform the camera that the voice commands following the wake word are instructions for focusing the camera to achieve a desired photograph of the user.
Example 36 may include the at least one computer readable medium of example 31, wherein NLP uses deep learning techniques based on dense vector representations, wherein the deep learning techniques include one or more of Convolutional Neural Networks (CNN), Recurrent Neural Networks (RNN), and recursive neural networks.
Example 37 may include the at least one computer readable medium of example 31, wherein artificial intelligence uses Semantic Segmentation in real-time using Fully Convolutional Networks (FCN), R-CNN (Regional-based Convolutional Neural Network), Fast R-CNN, Faster R-CNN, YOLO (You Only Look Once), and Mask R-CNN Using TensorRT, or a combination of one or more of the above.
Example 38 may include the at least one computer readable medium of example 31, wherein the camera focus point and the camera settings are determined by calculating optical formulas for cameras based on the identified objects to be photographed, their position in the preview image, and their estimated depth or distance to the camera.
Example 39 may include the at least one computer readable medium of example 31, wherein the camera focus point and the camera settings are determined through experimentation by selecting a camera parameter and viewing an image of that selection using depth of field preview, wherein if the image is not good, continuously changing the camera parameter and viewing the image until the image is correct.
Example 40 may include the at least one computer readable medium of example 31, wherein instructions to receive and process the NLIs and capture and apply AI to the preview image are performed simultaneously.
Example 41 may include an apparatus for performing precise focusing of a camera comprising means for receiving, by the camera, natural language instructions (NLIs) from a user for focusing the camera to achieve a desired photograph, wherein the NLIs are processed to understand the instructions using natural language processing (NLP), means for capturing, by the camera, a preview image of a user desired scene, wherein artificial intelligence (AI) is applied to the preview image to obtain context and to detect objects, means for generating a depth map of the preview image to obtain distances of detected objects in the preview image to the camera, when the detected objects in the preview image match the NLIs, means for determining camera focus point and camera settings based on the NLIs and means for adjusting the camera focus point and the camera settings to obtain the desired user image, and means for taking a photograph of the desired user image.
Example 42 may include the apparatus of example 41, wherein the photograph is taken automatically by the camera.
Example 43 may include the apparatus of example 41, wherein the user is prompted to take the photograph.
Example 44 may include the apparatus of example 41, wherein when the detected objects in the image do not match the NLIs, the apparatus further comprising means for recapturing, by the camera, the preview image of the user desired scene, means for applying the AI to the preview image to obtain the context and to detect the objects within the preview image, means for generating the depth map of the preview image to obtain the distances from the detected objects in the preview image to the camera, when the detected objects in the preview image match the NLIs, means for determining the camera focus point and the camera settings based on the NLIs and means for adjusting the camera focus point and the camera settings to obtain the desired user image, and means for taking the photograph of the desired user image.
Example 45 may include the apparatus of example 41, wherein the camera continuously listens, via a microphone, to voice commands from the user based on a wake word, the wake word to operate as a trigger to inform the camera that the voice commands following the wake word are instructions for focusing the camera to achieve a desired photograph of the user.
Example 46 may include the apparatus of example 41, wherein NLP uses deep learning techniques based on dense vector representations, wherein the deep learning techniques include one or more of Convolutional Neural Networks (CNN), Recurrent Neural Networks (RNN), and recursive neural networks.
Example 47 may include the apparatus of example 41, wherein artificial intelligence uses Semantic Segmentation in real-time using Fully Convolutional Networks (FCN), R-CNN (Regional-based Convolutional Neural Network), Fast R-CNN, Faster R-CNN, YOLO (You Only Look Once), and Mask R-CNN Using TensorRT, or a combination of one or more of the above.
Example 48 may include the apparatus of example 41, wherein the camera focus point and the camera settings are determined by calculating optical formulas for cameras based on the identified objects to be photographed, their position in the preview image, and their estimated depth or distance to the camera.
Example 49 may include the apparatus of example 41, wherein the camera focus point and the camera settings are determined through experimentation by selecting a camera parameter and viewing an image of that selection using depth of field preview, wherein if the image is not good, continuously changing the camera parameter and viewing the image until the image is correct.
Example 50 may include the apparatus of example 41, wherein means for receiving and processing the natural language instructions and means for capturing and applying AI to the preview image are performed simultaneously.
Example 51 may include at least one computer readable medium comprising a set of instructions, which when executed by a computing system, cause the computing system to perform the method of any one of examples 21 to 30.
Example 52 may include an apparatus comprising means for performing the method of any one of examples 21 to 30.
Embodiments are applicable for use with all types of semiconductor integrated circuit (“IC”) chips. Examples of these IC chips include but are not limited to processors, controllers, chipset components, programmable logic arrays (PLAs), memory chips, network chips, systems on chip (SoCs), SSD/NAND controller ASICs, and the like. In addition, in some of the drawings, signal conductor lines are represented with lines. Some may be different, to indicate more constituent signal paths, have a number label, to indicate a number of constituent signal paths, and/or have arrows at one or more ends, to indicate primary information flow direction. This, however, should not be construed in a limiting manner. Rather, such added detail may be used in connection with one or more exemplary embodiments to facilitate easier understanding of a circuit. Any represented signal lines, whether or not having additional information, may actually comprise one or more signals that may travel in multiple directions and may be implemented with any suitable type of signal scheme, e.g., digital or analog lines implemented with differential pairs, optical fiber lines, and/or single-ended lines.
Example sizes/models/values/ranges may have been given, although embodiments are not limited to the same. As manufacturing techniques (e.g., photolithography) mature over time, it is expected that devices of smaller size could be manufactured. In addition, well known power/ground connections to IC chips and other components may or may not be shown within the figures, for simplicity of illustration and discussion, and so as not to obscure certain aspects of the embodiments. Further, arrangements may be shown in block diagram form in order to avoid obscuring embodiments, and also in view of the fact that specifics with respect to implementation of such block diagram arrangements are highly dependent upon the computing system within which the embodiment is to be implemented, i.e., such specifics should be well within purview of one skilled in the art. Where specific details (e.g., circuits) are set forth in order to describe example embodiments, it should be apparent to one skilled in the art that embodiments can be practiced without, or with variation of, these specific details. The description is thus to be regarded as illustrative instead of limiting.
The term “coupled” may be used herein to refer to any type of relationship, direct or indirect, between the components in question, and may apply to electrical, mechanical, fluid, optical, electromagnetic, electromechanical or other connections. In addition, the terms “first”, “second”, etc. may be used herein only to facilitate discussion, and carry no particular temporal or chronological significance unless otherwise indicated.
As used in this application and in the claims, a list of items joined by the term “one or more of” may mean any combination of the listed terms. For example, the phrases “one or more of A, B or C” may mean A; B; C; A and B; A and C; B and C; or A, B and C.
Those skilled in the art will appreciate from the foregoing description that the broad techniques of the embodiments can be implemented in a variety of forms. Therefore, while the embodiments have been described in connection with particular examples thereof, the true scope of the embodiments should not be so limited since other modifications will become apparent to the skilled practitioner upon a study of the drawings, specification, and following claims.
The present application is a continuation of and claims the benefit of priority to U.S. Application No. 16/456,523 filed on Jun. 28, 2019.
Number | Date | Country | |
---|---|---|---|
Parent | 16456523 | Jun 2019 | US |
Child | 17706085 | US |