System and method for supporting three-dimensional display in first person view (FPV)

System and method can support three-dimensional display. The system can receive a plurality of image frames, which are captured by an imaging device on a movable object. Furthermore, the system can obtain state information of the imaging device on the movable object, and use the state information to configure a pair of image frames based on the plurality of image frames for supporting a three-dimensional first person view (FPV). Additionally, an image frame selected from the plurality of image frames can be used for a first image frame in the pair of image frames.

BACKGROUND OF THE INVENTION

The disclosed embodiments relate generally to supporting digital display and more particularly, but not exclusively, to supporting three-dimensional display.

The ubiquitous displaying experience for various mobile platforms, such as the unmanned aerial vehicle (UAV) systems, has been limited to two-dimensional. This is because the display equipment for most mobile platforms (e.g. the external display screens, special display screens, notebook display screens, and tablets) are designed for panel display.

On the other hand, different stereoscopic display equipment may be needed for displaying depth information, which increases both the complexity and cost of the overall system. For example, the unmanned aerial vehicle (UAV) systems may need to deploy more sophisticated image capturing modules, encoding/decoding modules, and communication modules, in addition to various special 3D display equipment, in order to display stereoscopic information on a three-dimensional (3D) display.

Thus, there is a need for developing a simple and inexpensive three-dimensional (3D) display. This is the general area that embodiments of the invention are intended to address.

BRIEF SUMMARY OF THE INVENTION

Described herein are systems and methods that can support three-dimensional display. The system can receive a plurality of image frames, which are captured by an imaging device on a movable object. Furthermore, the system can obtain state information of the imaging device on the movable object, and use the state information to configure a pair of image frames based on the plurality of image frames for supporting a three-dimensional first person view (FPV). Additionally, an image frame selected from the plurality of image frames can be used for a first image frame in the pair of image frames.

DETAILED DESCRIPTION OF THE INVENTION

The description of the invention as following uses an unmanned aerial vehicle (UAV) as example for a movable object. It will be apparent to those skilled in the art that other types of movable object can be used without limitation.

FIG. 1illustrates a movable object environment, in accordance with various embodiments of the present invention. As shown inFIG. 1, a movable object118in a movable object environment100can include a carrier102and a payload104. Although the movable object118can be depicted as an aircraft, this depiction is not intended to be limiting, and any suitable type of movable object can be used. One of skill in the art would appreciate that any of the embodiments described herein in the context of aircraft systems can be applied to any suitable movable object (e.g., a UAV). In some instances, the payload104may be provided on the movable object118without requiring the carrier102.

In accordance with various embodiments of the present invention, the movable object118may include one or more movement mechanisms106(e.g. propulsion mechanisms), a sensing system108, and a communication system110.

The movement mechanisms106can include one or more of rotors, propellers, blades, engines, motors, wheels, axles, magnets, nozzles, animals, or human beings. For example, the movable object may have one or more propulsion mechanisms. The movement mechanisms106may all be of the same type. Alternatively, the movement mechanisms106can be different types of movement mechanisms. The movement mechanisms106can be mounted on the movable object118(or vice-versa), using any suitable means such as a support element (e.g., a drive shaft). The movement mechanisms106can be mounted on any suitable portion of the movable object118, such on the top, bottom, front, back, sides, or suitable combinations thereof.

In some embodiments, the movement mechanisms106can enable the movable object118to take off vertically from a surface or land vertically on a surface without requiring any horizontal movement of the movable object118(e.g., without traveling down a runway). Optionally, the movement mechanisms106can be operable to permit the movable object118to hover in the air at a specified position and/or orientation. One or more of the movement mechanisms106may be controlled independently of the other movement mechanisms. Alternatively, the movement mechanisms106can be configured to be controlled simultaneously. For example, the movable object118can have multiple horizontally oriented rotors that can provide lift and/or thrust to the movable object. The multiple horizontally oriented rotors can be actuated to provide vertical takeoff, vertical landing, and hovering capabilities to the movable object118. In some embodiments, one or more of the horizontally oriented rotors may spin in a clockwise direction, while one or more of the horizontally rotors may spin in a counterclockwise direction. For example, the number of clockwise rotors may be equal to the number of counterclockwise rotors. The rotation rate of each of the horizontally oriented rotors can be varied independently in order to control the lift and/or thrust produced by each rotor, and thereby adjust the spatial disposition, velocity, and/or acceleration of the movable object118(e.g., with respect to up to three degrees of translation and up to three degrees of rotation).

The sensing system108can include one or more sensors that may sense the spatial disposition, velocity, and/or acceleration of the movable object118(e.g., with respect to various degrees of translation and various degrees of rotation). The one or more sensors can include any of the sensors, including GPS sensors, motion sensors, inertial sensors, proximity sensors, or image sensors. The sensing data provided by the sensing system108can be used to control the spatial disposition, velocity, and/or orientation of the movable object118(e.g., using a suitable processing unit and/or control module). Alternatively, the sensing system108can be used to provide data regarding the environment surrounding the movable object, such as weather conditions, proximity to potential obstacles, location of geographical features, location of manmade structures, and the like.

The communication system110enables communication with terminal112having a communication system114via wireless signals116. The communication systems110,114may include any number of transmitters, receivers, and/or transceivers suitable for wireless communication. The communication may be one-way communication, such that data can be transmitted in only one direction. For example, one-way communication may involve only the movable object118transmitting data to the terminal112, or vice-versa. The data may be transmitted from one or more transmitters of the communication system110to one or more receivers of the communication system112, or vice-versa. Alternatively, the communication may be two-way communication, such that data can be transmitted in both directions between the movable object118and the terminal112. The two-way communication can involve transmitting data from one or more transmitters of the communication system110to one or more receivers of the communication system114, and vice-versa.

In some embodiments, the terminal112can provide control data to one or more of the movable object118, carrier102, and payload104and receive information from one or more of the movable object118, carrier102, and payload104(e.g., position and/or motion information of the movable object, carrier or payload; data sensed by the payload such as image data captured by a payload camera; and data generated from image data captured by the payload camera). In some instances, control data from the terminal may include instructions for relative positions, movements, actuations, or controls of the movable object, carrier, and/or payload. For example, the control data may result in a modification of the location and/or orientation of the movable object (e.g., via control of the movement mechanisms106), or a movement of the payload with respect to the movable object (e.g., via control of the carrier102). The control data from the terminal may result in control of the payload, such as control of the operation of a camera or other image capturing device (e.g., taking still or moving pictures, zooming in or out, turning on or off, switching imaging modes, change image resolution, changing focus, changing depth of field, changing exposure time, changing viewing angle or field of view).

In some instances, the communications from the movable object, carrier and/or payload may include information from one or more sensors (e.g., of the sensing system108or of the payload104) and/or data generated based on the sensing information. The communications may include sensed information from one or more different types of sensors (e.g., GPS sensors, motion sensors, inertial sensor, proximity sensors, or image sensors). Such information may pertain to the position (e.g., location, orientation), movement, or acceleration of the movable object, carrier, and/or payload. Such information from a payload may include data captured by the payload or a sensed state of the payload. The control data transmitted by the terminal112can be configured to control a state of one or more of the movable object118, carrier102, or payload104. Alternatively or in combination, the carrier102and payload104can also each include a communication module configured to communicate with terminal112, such that the terminal can communicate with and control each of the movable object118, carrier102, and payload104independently.

In some embodiments, the movable object118can be configured to communicate with another remote device in addition to the terminal112, or instead of the terminal112. The terminal112may also be configured to communicate with another remote device as well as the movable object118. For example, the movable object118and/or terminal112may communicate with another movable object, or a carrier or payload of another movable object. When desired, the remote device may be a second terminal or other computing device (e.g., computer, laptop, tablet, smartphone, or other mobile device). The remote device can be configured to transmit data to the movable object118, receive data from the movable object118, transmit data to the terminal112, and/or receive data from the terminal112. Optionally, the remote device can be connected to the Internet or other telecommunications network, such that data received from the movable object118and/or terminal112can be uploaded to a website or server.

FIG. 2illustrates an exemplary carrier in a movable object environment, in accordance with embodiments. The carrier200can be used to couple a payload202such as an image capturing device to a movable object such as a UAV.

The carrier200can be configured to permit the payload202to rotate about one or more axes, such as three axes: X or pitch axis, Z or roll axis, and Y or yaw axis, relative to the movable object. For instance, the carrier200may be configured to permit the payload202to rotate only around one, two, or three of the axes. The axes may or may not be orthogonal to each other. The range of rotation around any of the axes may or may not be limited and may vary for each of the axes. The axes of rotation may or may not intersect with one another. For example, the orthogonal axes may intersect with one another. They may or may not intersect at a payload202. Alternatively, they may not intersect.

The carrier200can include a frame assembly211comprising one or more frame members. For example, a frame member can be configured to be coupled with and support the payload202(e.g., image capturing device).

In some embodiments, the carrier201can comprise one or more carrier sensors213useful for determining a state of the carrier201or the payload202carried by the carrier201. The state information may include a spatial disposition (e.g., position, orientation, or attitude), a velocity (e.g., linear or angular velocity), an acceleration (e.g., linear or angular acceleration), and/or other information about the carrier, a component thereof, and/or the payload202. In some embodiments, the state information as acquired or calculated from the sensor data may be used as feedback data to control the rotation of the components (e.g., frame members) of the carrier. Examples of such carrier sensors may include motion sensors (e.g., accelerometers), rotation sensors (e.g., gyroscope), inertial sensors, and the like.

The carrier sensors213may be coupled to any suitable portion or portions of the carrier (e.g., frame members and/or actuator members) and may or may not be movable relative to the UAV. Additionally or alternatively, at least some of the carrier sensors may be coupled directly to the payload202carried by the carrier201.

The carrier sensors213may be coupled with some or all of the actuator members of the carrier. For example, three carrier sensors can be respectively coupled to the actuator members212for a three-axis carrier and configured to measure the driving of the respective actuator members212for the three-axis carrier. Such sensors can include potentiometers or other similar sensors. In an embodiment, a sensor (e.g., potentiometer) can be inserted on a motor shaft of a motor so as to measure the relative position of a motor rotor and motor stator, thereby measuring the relative position of the rotor and stator and generating a position signal representative thereof. In an embodiment, each actuator-coupled sensor is configured to provide a positional signal for the corresponding actuator member that it measures. For example, a first potentiometer can be used to generate a first position signal for the first actuator member, a second potentiometer can be used to generate a second position signal for the second actuator member, and a third potentiometer can be used to generate a third position signal for the third actuator member. In some embodiments, carrier sensors213may also be coupled to some or all of the frame members of the carrier. The sensors may be able to convey information about the position and/or orientation of one or more frame members of the carrier and/or the image capturing device. The sensor data may be used to determine position and/or orientation of the image capturing device relative to the movable object and/or a reference frame.

The carrier sensors213can provide position and/or orientation data that may be transmitted to one or more controllers (not shown) on the carrier or movable object. The sensor data can be used in a feedback-based control scheme. The control scheme can be used to control the driving of one or more actuator members such as one or more motors. One or more controllers, which may be situated on a carrier or on a movable object carrying the carrier, can generate control signals for driving the actuator members. In some instances, the control signals can be generated based on data received from carrier sensors indicative of the spatial disposition of the carrier or the payload202carried by the carrier201. The carrier sensors may be situated on the carrier or the payload202, as previously described herein. The control signals produced by the controllers can be received by the different actuator drivers. Based on the control signals, the different actuator drivers may control the driving of the different actuator members, for example, to effect a rotation of one or more components of the carrier. An actuator driver can include hardware and/or software components suitable for controlling the driving of a corresponding actuator member and receiving position signals from a corresponding sensor (e.g., potentiometer). The control signals can be transmitted simultaneously to the actuator drivers to produce simultaneous driving of the actuator members. Alternatively, the control signals can be transmitted sequentially, or to only one of the actuator drivers. Advantageously, the control scheme can be used to provide feedback control for driving actuator members of a carrier, thereby enabling more precise and accurate rotation of the carrier components.

In some instances, the carrier201can be coupled indirectly to the UAV via one or more damping elements. The damping elements can be configured to reduce or eliminate movement of the load (e.g., payload, carrier, or both) caused by the movement of the movable object (e.g., UAV). The damping elements can include any element suitable for damping motion of the coupled load, such as an active damping element, a passive damping element, or a hybrid damping element having both active and passive damping characteristics. The motion damped by the damping elements provided herein can include one or more of vibrations, oscillations, shaking, or impacts. Such motions may originate from motions of the movable object that are transmitted to the load. For example, the motion may include vibrations caused by the operation of a propulsion system and/or other components of a UAV.

The damping elements may provide motion damping by isolating the load from the source of unwanted motion by dissipating or reducing the amount of motion transmitted to the load (e.g., vibration isolation). The damping elements may reduce the magnitude (e.g., amplitude) of the motion that would otherwise be experienced by the load. The motion damping applied by the damping elements may be used to stabilize the load, thereby improving the quality of images captured by the load (e.g., image capturing device), as well as reducing the computational complexity of image stitching steps required to generate a panoramic image based on the captured images.

The damping elements described herein can be formed from any suitable material or combination of materials, including solid, liquid, or gaseous materials. The materials used for the damping elements may be compressible and/or deformable. For example, the damping elements can be made of sponge, foam, rubber, gel, and the like. For example, damping elements can include rubber balls that are substantially spherical in shape. The damping elements can be of any suitable shape such as substantially spherical, rectangular, cylindrical, and the like. Alternatively or in addition, the damping elements can include piezoelectric materials or shape memory materials. The damping elements can include one or more mechanical elements, such as springs, pistons, hydraulics, pneumatics, dashpots, shock absorbers, isolators, and the like. The properties of the damping elements can be selected so as to provide a predetermined amount of motion damping. In some instances, the damping elements may have viscoelastic properties. The properties of the damping elements may be isotropic or anisotropic. For instance, the damping elements may provide motion damping equally along all directions of motion. Conversely, the damping element may provide motion damping only along a subset of the directions of motion (e.g., along a single direction of motion). For example, the damping elements may provide damping primarily along the Y (yaw) axis. As such, the illustrated damping elements can be configured to reduce vertical motions.

Although various embodiments may be depicted as utilizing a single type of damping elements (e.g., rubber balls), it shall be understood that any suitable combination of types of damping elements can be used. For example, the carrier may be coupled to the movable object using one or more damping elements of any suitable type or types. The damping elements may have the same or different characteristics or properties such as stiffness, viscoelasticity, and the like. Each damping element can be coupled to a different portion of the load or only to a certain portion of the load. For instance, the damping elements may be located near contact or coupling points or surfaces of between the load and the movable objects. In some instances, the load can be embedded within or enclosed by one or more damping elements.

FIG. 3illustrates supporting three-dimensional (3D) display via a movable object in a movable object environment, in accordance with various embodiments of the present invention. As shown inFIG. 3, an imaging device303on a movable object301can capture a plurality of image frames, such as the image frames311-313in an image stream310.

Furthermore, the captured image frames can be stored in an image cache304for a time period before being purged and/or replaced with other newly captured image frames. For example, the image cache304, which has a limited size, can be used for (dynamically) maintaining a portion of the stream of image frames310, which may be in a compressed format. Alternatively, the image cache304can be used for (dynamically) maintaining a buffer of frames, which may not be compressed.

In accordance with various embodiments of the present invention, a processor, such as a convertor305, which may be residing on the movable object301, can receive the captured image frames311-313stored in the image cache304. Then, the convertor305can convert the two-dimensional (2D) information contained in the plurality of image frames into pseudo three-dimensional (3D) information. For example, the pseudo 3D information can be in the form of a pair of image frames.

Furthermore, a three-dimensional (3D) first person view (FPV) equipment302can be used for displaying the pseudo three-dimensional information (3D). The 3D FPV equipment302can display the pair of image frames on a split 2D screen, with one image displayed on the left portion of the screen and the other image displayed on the right portion of the screen. Additionally, the 3D FPV equipment302can use two lenses with identical focus distance, which may be configured to be substantially close or equal to the distance between the lenses and the display screen. Also the field of view (FOV) for each lens may be configured to match only half of the screen. Thus, using the 3D FPV equipment302, the system can take advantage of the image capturing module, encoding/decoding module, and communication module, which are typically used for handling 2D information.

Additionally, the convertor305can obtain state information306of the imaging device303on the movable object301, e.g. an attitude, an instantaneous position, a velocity, and an acceleration of the imaging device303. The state information306may be determined based on the positional and attitude information of the movable object, which may be received from a control module for the movable object (e.g. a flight control module of a UAV). Also, the state information306may be determined based on the attitude information of the imaging device received from a payload stabilization control module. For example, the payload stabilization control module may be used for controlling a stabilization system such as a gimbal system that stabilizes an imaging device on a UAV.

In accordance with various embodiments of the present invention, the convertor305can configure a pair of image frames, based on the image frames311-313that are stored in an image cache304, for supporting three-dimensional (3D) display.

As shown inFIG. 3, an image frame313, which is selected from the image frames that are maintained in the image cache304, may be used as a first image frame in the pair of image frames. For example, the image frame313may be the latest image frame in the stream of image frames310. Then, the convertor305may select and/or generate a second image frame from the stream of image frames, which may be displayed along with the first image frame to create a three-dimensional effect.

Then, the convertor305can provide the pair of image frames311and313to a displaying device302that is adapted to display a three-dimensional FPV. Additionally, the system can configure a size for the image cache304on the movable object301based on an estimated frame count difference between a first image frame and a second image frame in the pair of image frames for creating a three-dimensional (3D) effect.

FIG. 4illustrates supporting three-dimensional (3D) display via a terminal in a movable object environment, in accordance with various embodiments of the present invention. As shown inFIG. 4, an imaging device403on a movable object401can capture a plurality of image frames, such as the image frames411-413in an image stream410. Then, the movable object can transmit the captured image frames to a terminal407, which is remote from the movable object401

Furthermore, the captured image frames can be stored in an image cache404for a time period before being purged and/or replaced with other newly captured image frames. For example, the image cache404, which has a limited size, can be used for (dynamically) maintaining a portion of the stream of image frames410, which may be in a compressed format. Alternatively, the image cache304can be used for (dynamically) maintaining a buffer of frames, which may not be compressed.

In accordance with various embodiments of the present invention, a processor, such as a convertor405on the terminal407can receive the captured image frames411-413, which are stored in an image cache404. Then, the convertor405can convert the two-dimensional (2D) information contained in the captured image frames into pseudo three-dimensional information (3D). For example, the pseudo 3D information may be in the form of a pair of image frames.

Furthermore, a three-dimensional (3D) first person view (FPV) equipment402can be used for displaying the pseudo three-dimensional information (3D). The 3D FPV equipment402can display the pair of image frames on a split 2D screen, with one image displayed on the left portion of the screen and the other image displayed on the right portion of the screen. Additionally, the 3D FPV equipment402can use two lenses with identical focus distance, which may be configured to be the distance between the lenses and the display screen. Also the field of view (FOV) for each lens may be configured to match only half of the screen. Thus, using the 3D FPV equipment402, the system can take advantage of the image capturing module, encoding/decoding module, and communication module, which are typically used for handling 2D information.

Additionally, the convertor405can obtain state information406of the imaging device403on the movable object401, e.g. an attitude, an instantaneous position, a velocity, and an acceleration of the imaging device403. The state information406may be determined based on the positional and attitude information of the movable object, which may be received from a control module for the movable object (e.g. a flight control module of a UAV). Also, the state information406may be determined based on the attitude information of the imaging device received from a payload stabilization control module. For example, the payload stabilization control module may be used for controlling a stabilization system such as a gimbal system that stabilizes an imaging device on a UAV.

In accordance with various embodiments of the present invention, the convertor405can configure a pair of image frames, based on the image frames411-413that are stored in an image cache404, for supporting three-dimensional (3D) display.

As shown inFIG. 4, an image frame413, which is selected from the image frames that are maintained in the image cache404, may be used as a first image frame in the pair of image frames. For example, the image frame413may be the latest image frame in the stream of image frames410. Then, the convertor405may select and/or generate a second image frame from the stream of image frames, which may be displayed with the first image frame to create a three-dimensional effect.

For example, the converter405can select an image frame411as the second image frame in the pair of image frames for creating three-dimensional (3D) effect. Then, the convertor405can provide the pair of image frames411and413to a displaying device402that is adapted to display a three-dimensional FPV.

Additionally, the system can configure a size for the image cache404on the terminal407based on various factors, such as an estimated frame count difference between a first image frame and a second image frame in the pair of image frames for creating a three-dimensional effect.

FIG. 5illustrates supporting three-dimensional first person view (FPV) in a movable object environment, in accordance with various embodiments of the present invention. As shown inFIG. 5, at step501, the system can obtain a pair of image frames that are suitable for three-dimensional (3D) display.

Then, the system can determine a movement of a field of view (FOV) for the three-dimensional FPV, based on the state information of the imaging device on the movable object. For example, at step502, the system can determine whether the FOV for the three-dimensional FPV moves from left to right.

At step503, if the FOV for the three-dimensional (3D) FPV moves from left to right, the system can configure the first image frame in the pair of image frames for a right eye of a viewer in the three dimensional FPV. Or, at step504, the system can configure the first image frame in the pair of image frames for a left eye of a viewer in the three dimensional FPV, if the FOV for the three-dimensional (3D) FPV moves from right to left.

FIG. 6illustrates supporting three-dimensional (3D) first person view (FPV) in a movable object environment with the field of view (FOV) moving from left to right, in accordance with various embodiments of the present invention. As shown inFIG. 6, a movable object environment600includes a three-dimensional (3D) first person view (FPV)601, which displays a left image602and a right image603to create three-dimensional (3D) effect by taking consideration of state information of the imaging device on a movable object that captures the image frames611-613.

When the FOV of the 3D FPV601moves from left to right, the system can select an image frame from the stream of image frames610as a right image in the pair of image frames. For example, the system can select the latest image frame613as the right image in the pair of image frames. Alternatively, the system can select the latest image frame613for configuring (e.g. modifying/editing/rescaling) the right image in the pair of image frames. Then, the system can configure the left image in the pair of image frames based on another image stored in an image cache.

In accordance with various embodiments of the present invention, the system can configure the left image in the 3D FPV601using different strategies. For example, the system can select another image frame611in the stream of image frames610as the left image in the pair of image frames, e.g. based on a predetermined frame count difference relative to the image frame613in the stream of image frames610. Alternatively, the system can construct or reconstruct the left image602based on the image frame611in the stream of image frames610.

In accordance with various embodiments of the present invention, the system can dynamically reconfigure the frame count difference between the first image frame and the second image frame in the pair of image frames based on the state information604of the imaging device on the movable object. For example, the system can configure a smaller frame count difference when the imaging device (i.e. the movable object) moves at a higher speed, and configure a larger frame count difference when the imaging device (i.e. the movable object) moves at a lower speed.

Alternatively, the system allows a user to configure the frame count difference between the first image frame and the second image frame in the pair of image frames, while viewing the three-dimensional FPV in order to achieve the best user experience.

In accordance with various embodiments of the present invention, the system can provide different viewing experience by using configurable frame count difference between the first image frame and the second image frame in the pair of image frames that are used by the 3D FPV601for creating 3D effect.

For example, the greater the frame count difference is, the greater the parallax distance (i.e. the disparity) for the nearby objects can be, and the closer the human eyes may perceive the nearby objects to be (to the extent that 3D effect may still be created). On the other hand, the perceived distance for a remote object may hardly change as the frame count difference changes. That is because, the remote objects are perceived to be at an infinite distance. Thus, the depth change for a remote object, as it is perceived by the human eyes, is small when the frame difference increases.

Conversely, when the frame count difference decreases, the nearby objects may be perceived by the human eyes to be moving farther away. For similar reason as above, the perceived distance for a remote object may hardly change as the frame count difference decreases.

FIG. 7illustrates supporting three-dimensional (3D) first person view (FPV) with the field of view (FOV) moving from right to left in a movable object environment, in accordance with various embodiments of the present invention. As shown inFIG. 7, a movable object environment700includes a three-dimensional (3D) first person view (FPV)701, which displays a left image702and a right image703to create three-dimensional (3D) effect by taking consideration of state information of the imaging device on a movable object that captures the image frames711-713.

When the FOV of the 3D FPV701moves from right to left, the system can select an image frame from the stream of image frames710as a left image in the pair of image frames. For example, the system can select the latest image frame713as the left image in the pair of image frames. Alternatively, the system can select the latest image frame713for configuring (e.g. modifying/editing/rescaling) the left image in the pair of image frames. Then, the system can configure the right image in the pair of image frames based on another image stored in an image cache.

In accordance with various embodiments of the present invention, the system can configure the right image in the 3D FPV701using different strategies. For example, the system can select another image frame711in the stream of image frames710as the right image in the pair of image frames, e.g. based on a predetermined frame count difference relative to the image frame713in the stream of image frames710. Alternatively, the system can construct or reconstruct the right image702based on the image frame711in the stream of image frames710.

In accordance with various embodiments of the present invention, the system can dynamically reconfigure the frame count difference between the first image frame and the second image frame in the pair of image frames based on the state information704of the imaging device on the movable object. For example, the system can configure a smaller frame count difference when the imaging device (i.e. the movable object) moves at a higher speed, and configure a larger frame count difference when the imaging device (i.e. the movable object) moves at a lower speed.

Alternatively, the system allows a user to configure the frame count difference between the first image frame and the second image frame in the pair of image frames, while viewing the three-dimensional FPV in order to achieve the best user experience.

FIG. 8shows a flowchart of supporting three-dimensional display in a movable object environment, in accordance with various embodiments of the present invention. As shown inFIG. 8, at step801, the system can receive a plurality of image frames, which are captured by an imaging device on a movable object. Then, at step802, the system can obtain state information of the imaging device on the movable object. Furthermore, at step803, the system can use the state information of the imaging device on the movable object to configure a pair of image frames based on the plurality of image frames, wherein an image frame selected from the plurality of image frames can be used as a first image frame in the pair of image frames.

FIG. 9illustrates supporting three-dimensional first person view (FPV) for different states in a movable object environment, in accordance with various embodiments of the present invention. As shown inFIG. 9, an imaging device on a movable object can capture a plurality of image frames (e.g. for an object902), which includes the image frames911-915, along a trace910in a movable object environment900.

In accordance with various embodiments of the present invention, the convertor can obtain the state information of the imaging device on the movable object. For example, the state information includes positional information, such as the location, speed, and acceleration of the movable object based on the information received from a control module for the movable object. Additionally, the convertor can obtain the attitude information for the imaging device based on the attitude information received from both the control module for the movable object and the payload control module. Thus, the system can obtain the actual location and attitude of the imaging device by combining the positional information received from the control module for the movable object and the attitude information received from the payload control module.

In the example as shown inFIG. 9, without limitation, the FOV of the 3D FPV901may move from left to right along a line facing the object902(e.g. at the time point, t1). Then, the FOV of the 3D FPV901moves toward the object902(e.g. at the time point, t2 and t3).

The image frame912, which is captured at the time point, t1, may be selected as the right image (i.e. R1) for the 3D FPV901.

Then, the system can look back into the captured image frames to select the image frame911as the left image (i.e. L1) in order to support the 3D FPV901. The selection of the left image (i.e. L1) may be based on a frame count difference, which can be preconfigured based on the state information of the imaging device. For example, the system can configure a smaller frame count difference when the imaging device (i.e. the movable object) moves at a higher speed, and can configure a larger frame count difference when the imaging device (i.e. the movable object) moves at a lower speed.

Thus, the image frame911and the image frame913can be provided to the 3D FPV for creating a three-dimensional (3D) effect. Also, the initial pair of image frames911and913, or any subsequent image frame pairs, can be used as a base for determining a pair of image frames for a new time point.

For example, at the time point t2, the system can select an image frame914as the right image (i.e. R2) for the 3D FPV display901. Since the movable object and the imaging device moves toward the object902at the time point t2, in order to create a three-dimensional (3D) effect for the 3D FPV display901. Instead of directly selecting an image from the captured image frames as the left image, the system can construct or reconstruct an image916(i.e. L2), based on the base image911in the captured image frames.

As shown inFIG. 9, the system may need to construct the second image (i.e. L2), which is an image that is (virtually) positioned on a line also facing the object902(i.e. parallel to the line along the pair of image frames L1 and R1).

The system can obtain a transformation relationship910between the image R2, which is the first image in the pair of image frames, and the image R1, which is the first image in a base pair of image frames. For example, the transformation relationship910can be based on a homography that is obtained based on matching feature points between the image frame R1912and the image frame R2914.

In accordance with various embodiments of the present invention, the feature point based image matching may involve different steps such as feature point detecting, feature point characterization, and feature point matching. At the feature point detecting step, the system can detect the feature points and their coordinates. Then, at the feature point characterization step, the system can calculate the feature vectors, each of which represents the image information in a neighborhood surrounding a feature point.

Furthermore, after matching the feature point set, the system can obtain the transformation relationship910. For example, when the object920locates at a substantially far away from the imaging device, each pair of matching feature points (e.g. U1 and U2) on the image frame R1 and R2 may satisfy a consistent relationship, U2=H*U1. Thus, the system can estimate the matrix, H, based on the set of matched feature points instead of from the whole set of image points, which is costly.

As shown inFIG. 9, the matrix, H, which includes attitude transformation information and internal parameter information, are the same for both transforming between the left images L1 and L2 and transforming between the right images R1 and R2. Thus, the system can configure the left image, L2, in the pair of image frames based on the transformation matrix, H, and the image L1, which is the left image in the base pair of image frames.

Furthermore, the system can obtain another pair of image frames, R3915and L3917, for the time point t3, based on the pair of image frames, R2914and L2916, and the transformation relationship920.

FIG. 10shows a flowchart of supporting three-dimensional first person view (FPV) for different states in a movable object environment, in accordance with various embodiments of the present invention. As shown inFIG. 10, at step1001, the system can match feature points in a first image frame in a first pair of image frames with feature points in a first image frame in a second pair of image frames. Then, at step1002, the system can obtain a transformation relationship between the first image frame in the first pair of image frames and the first image frame in the second pair of image frames. Furthermore, at step1003, the system can use the obtained transformation relationship to convert a second image frame in the first pair of image frames into a second image frame in the second pair of image frames.

Many features of the present invention can be performed in, using, or with the assistance of hardware, software, firmware, or combinations thereof. Consequently, features of the present invention may be implemented using a processing system (e.g., including one or more processors). Exemplary processors can include, without limitation, one or more general purpose microprocessors (for example, single or multi-core processors), application-specific integrated circuits, application-specific instruction-set processors, graphics processing units, physics processing units, digital signal processing units, coprocessors, network processing units, audio processing units, encryption processing units, and the like.

Features of the present invention can be implemented in, using, or with the assistance of a computer program product which is a storage medium (media) or computer readable medium (media) having instructions stored thereon/in which can be used to program a processing system to perform any of the features presented herein. The storage medium can include, but is not limited to, any type of disk including floppy disks, optical discs, DVD, CD-ROMs, microdrive, and magneto-optical disks, ROMs, RAMs, EPROMs, EEPROMs, DRAMs, VRAMs, flash memory devices, magnetic or optical cards, nanosystems (including molecular memory ICs), or any type of media or device suitable for storing instructions and/or data.

Stored on any one of the machine readable medium (media), features of the present invention can be incorporated in software and/or firmware for controlling the hardware of a processing system, and for enabling a processing system to interact with other mechanism utilizing the results of the present invention. Such software or firmware may include, but is not limited to, application code, device drivers, operating systems and execution environments/containers.

Features of the invention may also be implemented in hardware using, for example, hardware components such as application specific integrated circuits (ASICs) and field-programmable gate array (FPGA) devices. Implementation of the hardware state machine so as to perform the functions described herein will be apparent to persons skilled in the relevant art.

The present invention has been described above with the aid of functional building blocks illustrating the performance of specified functions and relationships thereof. The boundaries of these functional building blocks have often been arbitrarily defined herein for the convenience of the description. Alternate boundaries can be defined so long as the specified functions and relationships thereof are appropriately performed. Any such alternate boundaries are thus within the scope and spirit of the invention.