At least one embodiment of this disclosure relates generally to techniques for filming, producing, editing/modifying, and/or presenting media content using data created by one or more non-visual sensors.
Video production is the process of creating video by capturing moving images, and then creating combinations and reductions of parts of the video in live production and post-production. Finished video productions range in size and can include, for example, television programs, television commercials, corporate videos, event videos, etc. The type of recording device used to capture video often changes based on the intended quality of the finished video production. For example, one individual may use a mobile phone to record a short video clip that will be uploaded to social media (e.g., Facebook or Instagram), while another individual may use a multiple-camera setup to shoot a professional-grade video clip.
Video editing software is often used to handle the post-production video editing of digital video sequences. Video editing software typically offers a range of tools for trimming, splicing, cutting, and arranging video recordings (also referred to as “video clips”) across a timeline. Examples of video editing software include Adobe Premiere Pro, Final Cut Pro X, iMovie, etc. However, video editing software may be difficult to use, particularly for those individuals who capture video using a personal computing device (e.g., a mobile phone) and only intend to upload the video to social media or retain it for personal use.
Various objects, features, and characteristics will become apparent to those skilled in the art from a study of the Detailed Description in conjunction with the appended claims and drawings, all of which form a part of this specification. While the accompanying drawings include illustrations of various embodiments, the drawings are not intended to limit the claimed subject matter.
The figures depict various embodiments described throughout the Detailed Description for the purposes of illustration only. While specific embodiments have been shown by way of example in the drawings and are described in detail below, one skilled in the art will readily recognize the subject matter is amenable to various modifications and alternative forms without departing from the principles of the invention described herein. Accordingly, the claimed subject matter is intended to cover all modifications, equivalents, and alternatives falling within the scope of the invention as defined by the appended claims.
Introduced herein are systems and techniques for automatically producing media content (e.g., a video composition) using several inputs uploaded by an unmanned aerial vehicle (UAV) copter, an operator device, and/or some other computing device (e.g., a mobile phone associated with the owner/user of the UAV copter). More specifically, production and modification techniques based on sensor-driven events are described herein that allow videos to be created on behalf of a user of the UAV copter. Interesting segments of video recorded by the UAV copter can be formed into a video composition based on sensor events that are indicative of an interesting real world event. For example, interesting segments of video can be identified based on large changes in acceleration as detected by an accelerometer or large changes in elevation as detected by a barometer. The accelerometer and barometer may be connected to (or housed within) the UAV copter, the operator device, and/or some other computing device.
Video compositions (and other media content) can be created using different “composition recipes” that specify an appropriate style or mood and that allow video content to be timed to match audio content (e.g., music and sound effects). While the “composition recipes” allow videos to be automatically created (e.g., by a network-accessible platform or computing device, such as a mobile phone, tablet, or personal computer), some embodiments enable additional levels of user input. For example, an editor may be able to reorder or discard certain segments, select different raw video clips, and use video editing tools to modify color, warping, stabilization, etc.
Also introduced herein are techniques for modifying filming characteristics or flight parameters of the UAV copter based on the sensor events. For example, sensor measurements may prompt changes to be made to the positioning, orientation, or movement pattern of the UAV copter. As another example, sensor measurements may cause the UAV copter to modify its filming technique (e.g., by changing the resolution, focal point, etc.). Accordingly, the UAV copter (or some other computing device) may continually or periodically monitor the sensor measurements to determine whether they exceed an upper threshold value, fall below a lower threshold value, or exceed a certain variation in a specified time period.
Brief definitions of terms, abbreviations, and phrases used throughout this disclosure are given below.
As used herein, the terms “connected,” “coupled,” or any variant thereof, means any connection or coupling, either direct or indirect, between two or more elements; the coupling of connection between the elements can be physical, logical, or a combination thereof. For example, two components may be coupled directly to one another or via one or more intermediary channels or components. Additionally, the words “herein,” “above,” “below,” and words of similar import shall refer to this application as a whole and not to any particular portions of this application.
The active components described for the UAV copter 100 may operate individual and independently of other active components. Some or all of the active components can be controlled, partially or in whole, remotely or via an intelligence system (not shown) in the UAV copter 100. The separate active components can be coupled together through one or more communication channels (e.g., wireless or wired channels) to coordinate their operations. Some of all of the active components may be combined as a single component or device. A single component may also be divided into sub-components, each sub-component performing separate functional part of method step(s) of the single component. The UAV copter 100 may include additional, fewer, or different components for various applications.
In some embodiments, the UAV copter 100 has the support structure 106 constructed to be maintained in parallel to the ground surface (e.g., a plane perpendicular to the g-force vector of earth) at steady state flight. Substantially near the outer perimeter of the support structure 106 are the propeller drivers 108 for driving one or more propellers with respective motor shafts of the propeller drivers 108. Each of the propeller drivers 108 can include at least two propellers driven by a motor. Further examples of the UAV copter 100 and the propeller drivers 108 can be found in co-pending U.S. application Ser. No. 15/053,592 (Attorney Docket No. 113427-8004.US01), which is incorporated by reference herein in its entirety.
The mechanical structure 202 includes a frame 214 and an external shell 216. The external shell 216 can include the bottom cover 102 of
The control system 204 can be implemented as electronic components and/or circuitry including a logic unit 222, such as a processor, an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), or any combination thereof. The control system 204 can also include a memory device 224, such as a non-transitory computer-readable storage medium. The memory device 224 can store executable instructions for controlling the UAV copter 200. The executable instructions can be executed by the logic unit 222. The control system 204 can receive instructions remotely from or send information to an operator device via the communication system 212.
The control system 204 can include one or more sensors, such as inertial sensors 226, a global positioning system (GPS) module 228, and a barometer 230. The inertial sensors 226 provide navigational information (e.g., via dead reckoning) including at least one of the position, orientation, and velocity (e.g., direction and speed of movement) of the UAV copter 200. The inertial sensors 226 can include one or more accelerometers (providing motion sensing readings), one or more gyroscopes (providing rotation sensing readings), one or more magnetometers (providing direction sensing), or any combination thereof. The inertial sensors 226 can provide up to three dimensions of readings, such as via 3-axis accelerometer, 3-axis gyroscope, and 3-axis magnetometer. The GPS module 228 can provide three-dimensional coordinate information of the UAV copter 200 via communication with one or more GPS towers, satellites, or stations. The barometer 230 can provide ambient pressure readings used to approximate elevation level (e.g., absolute elevation level) of the UAV copter 200.
The power system 206 includes at least a power circuitry 232, a primary battery pack 234, and a backup battery module 236. When the UAV copter 200 is powered on, the primary battery pack 234 supplies power to the control system 204, the camera system 208, the motor system 210, and the communication system 212, whenever power is needed. The primary battery pack 234 also supplies power to recharge the backup battery module 236. In some embodiments, the backup battery module 236 is embedded within the UAV copter 200 and is not removable or replaceable.
The power circuitry 232 can be configured to regulate the power drawn from the primary battery pack 234. The power circuitry 232 can be configured to monitor the charge level of the primary battery pack 234. The power circuitry 232 can further be configured to detect potential faults and estimate a lifespan of the primary batter pack 234 and/or the backup battery module 236. The power circuitry 232 can be configured to detect a disruption of power from the primary battery pack 234 (e.g., when the primary batter pack 234 is removed from the UAV copter 200 or when the primary battery pack 234 is out of charge). The power circuitry 232 can be configured to detect opening of a battery compartment in the mechanical structure 202. The power circuitry 232 can route power from the backup battery module 236 to the control system 204 upon detecting the disruption of power or the opening of the battery compartment. The backup battery module 236 is able to maintain sufficient charge to power the control system 204 for a short duration, such as 60 seconds. In some embodiments, the backup battery module 236 is only used to power the control system 204 in the absence of the primary battery pack 234, but not to power other systems in the UAV copter 200.
The camera system 208 includes one or more cameras 242 and an image processing component 244. The camera system 208 can include a local memory device 246 to store multimedia observations made by the cameras 242, including photos, audio clips (e.g., from cameras with microphones), and/or videos. The camera system 208 can also have access to the memory device 224. In some embodiments, the local memory device 242 is the memory device 224. The image processing component 244 can be implemented in the form of a processing, an ASIC, a FPGA, or other logical circuitry. The image processing component 244 can be implemented by the logic unit 222 in the control system 204. For example, the image processing component 244 can be implemented as a set of executable instructions stored in the memory device 224. Each of the cameras 242 may include sub-components other than image capturing sensors, including auto-focusing circuitry, International Standards Organization (ISO) adjustment circuitry, shutter speed adjustment circuitry, etc.
The image processing component 244 can be configured to detect obstacles within the UAV copter 200's trajectory. The image processing component 244 can also be configured to detect a target subject, such as the owner of the UAV copter 200. In some embodiments, the image processing component 244 can track multiple target subjects. The image processing component 244 can perform other tasks, such as image filtering, image calling, video frame sampling, and other image processing, audio processing, and/or video processing techniques. The image processing component 244 can also predict the trajectory of the obstacles or the target subject. In some embodiments, an operator device that is expected to be possessed by the target subject can emit certain light or visual signals to render the target subject detectable by the camera system 208 to help locate the target subject.
The motor system 210 includes one or more propeller drivers 252. Each of the propeller drivers 252 includes a motor 254, a motor shaft 256, and a propeller 258. The propeller drivers 252 can be controlled by the control system 204 and powered by the power system 206.
The communication system 212 includes an antenna 262 and a transceiver device 264. The transceiver device 264 can include any of modulators, de-modulators, encoders, decoders, encryption modules, decryption modules, amplifiers, and filters. The communication system 212 can receive control instructions (e.g., navigational mode toggling, trajectory instructions, general settings, etc.) from one of the operator devices. The communication system 212 can send reporting of status of the UAV copter 200 to one of the operator devices. The communication system 212 further enables the camera system 208 to send the multimedia content it captures to one of the operator devices.
The active components described for the UAV copter 100, the UAV copter 200, and/or the operator device 300 may operate individually and independently of other active components. Some or all of the active components can be controlled, partially or in whole, remotely or via an intelligence system in the UAV copter 100, the UAV copter 200, and/or the operator device 300. The separate active components can be coupled together through one or more communication channels (e.g., wireless or wired channels) to coordinate their operations. Some or all of the active components may be combined as one component or device. A single active component may be divided into sub-components, each sub-component performing separate functional part of method step(s) of the single active component. The UAV copter 100, the UAV copter 200, and/or the operator device 300 may include additional, fewer, or different components for various applications.
The operator device 300, for example, can include one or more inertial sensors 302. The inertial sensors 302 can include at least one of accelerometers (e.g., 3-axis accelerometer), magnetometers (e.g., a 3-axis magnetometer), and gyroscopes (e.g., a 3-axis gyroscope). The operator device 300 can also include a barometer 304. The barometer 304 is used to measure ambient pressure, which is then used to approximate the elevation of the target subject, who is assumed to possess the operator device 300. The operator device 300 can further include a GPS module 306, which can determine the location of the operator device 300. The GPS module 306 can determine the longitude and latitude of the operator device 300 with accuracy when GPS signals are available. The GPS module 306 can also determine the elevation (e.g., a z-axis coordinate) of the operator device 300. In some embodiments, the elevation reading of the GPS module 306 has a lower resolution than the longitude and latitude reading.
The operator device 300 can include a communication module 312 (e.g., including an antenna and a transceiver device). The communication module 312 can wirelessly communicate with the UAV copter via one or more wireless communication protocols, such as WiFi Direct, WiFi, Bluetooth, or other long-range or short-range radio frequency (RF) communication. The operator device 300 can send the sensor readings from the inertial sensors 302, the barometer 304, or the GPS module 306 to the UAV copter.
In some embodiments, the operator device 300 includes a logic unit 314. The logic unit 314 can be a processor, an ASIC, a FPGA, or other electronic circuitry for performing computations. The operator device 300 can also include a memory module 316, such as a non-transitory computer-readable storage medium. The memory module 316 can store executable instructions to configure the logic unit 314 to implement the processes disclosed in this disclosure. For example, the logic unit 314 can process the sensor readings of the inertial sensors 302 to determine coordinates of the operator device 300. In some embodiments, once the coordinates are determined, the coordinates are sent to the UAV copter. In other embodiments, the raw sensor readings are sent to the UAV copter.
In some embodiments, the operator device 300 can include a display device 322 and input device 324. In some embodiments, the display device 322 and the input device 324 can be coupled together, such as a touchscreen display. The display device 322 and the input device 324 can be used to implement a user interface to control and monitor the UAV copter.
The network-accessible platform 400 may also be communicatively coupled to an editing device 408 (e.g., a mobile phone, tablet, or personal computer) on which an editor views content recorded by the UAV copter 402, operator device 404, and/or the other computing device 406. The editor could be, for example, the same individual as the owner/used of the UAV copter 402 (and, thus, the editing device 408 could be the same computing device as the operator device 404 and/or the other computing device 406). The network-accessible platform 400 is connected to one or more computer networks, which may include local area networks (LANs), wide area networks (WANs), metropolitan area networks (MANs), cellular networks, and/or the Internet.
Various system architectures could be used to build the network-accessible platform 400. Accordingly, the content may be viewable and editable by the editor using the editing device 408 through one or more of a web browser, software program, mobile application, and over-the-top (OTT) application. The network-accessible platform 400 may be executed by cloud computing services operated by, for example, Amazon Web Services (AWS) or a similar technology. Oftentimes, a host server 410 is responsible for supporting the network-accessible platform and generating interfaces (e.g., media editing interfaces and compilation timelines) that can be used by the editor to produce media content (e.g., a video) using several different data streams as input. As further described below, some or all of the production/editing process may be automated by the network-accessible platform 400. For example, media content (e.g., a video) could be automatically produced by the network-accessible platform 400 based on events discovered within sensor data uploaded by the UAV copter 402, operator device 404, and/or other computing device 406.
The host server 410 may be communicatively coupled (e.g., across a network) to one or more servers 412 (or other computing devices) that include media content and other assets (e.g., user information, computing device information, social media credentials). This information may be hosted on the host server 410, the server(s) 412, or distributed across both the host server 410 and the server(s) 412.
Raw logs of sensor information 506 can also be uploaded by the UAV copter, operator device, and/or some other computing device. For example, the user's mobile phone may upload video 508 that is synced with GPS information. Other information can also be uploaded to, or retrieved by, a network-accessible platform, including user-inputted remote controls, Global Positioning System (GPS) information (e.g., user speed, user path), inertial measurement unit (IMU) activity, flight state of the filming device, voice commands, audio intensity, etc. In some embodiments, audio 510, such as songs and sound effects, is retrieved by the network-accessible platform (e.g., from server(s) 412 of
The importance of each of these inputs can be ranked using one or more criteria. The criteria may be used to identify which input(s) should be used to automatically produce media content on behalf of the user. The criteria can include, for example, camera distance, user speed, camera speed, video stability, tracking accuracy, chronology, and deep learning.
More specifically, raw sensor data 506 uploaded to the network-accessible platform by the UAV copter, operator device, and/or other computing device can be used to automatically identify relevant segments of raw video 502 (step 512). Consequently, media content production/modification may be based on sensor-driven or sensor-recognized events. For example, interesting segments of raw video 502 can be identified based on large changes in acceleration as detected by an accelerometer or large changes in elevation as detected by a barometer. As noted above, the accelerometer and barometer may be connected to (or housed within) the UAV copter, operator device, and/or other computing device. One skilled in the art will recognize that while accelerometers and barometers have been used as examples, other sensors are can be (and often are) used. In some embodiments, the interesting segment(s) of raw video identified by the network-accessible platform are ranked using the criteria discussed above (step 514).
The network-accessible platform can then automatically create a video composition that includes at least some of the interesting segment(s) on behalf of the user of the UAV copter (step 516). For example, the video composition could be created by following different “composition recipes” that allow the style of the video composition to be tailored (e.g., to a certain mood or these) and timed to match certain music and other audio inputs (e.g., sound effects). After production of the video composition is completed, a media file (often a multimedia file) is output for further review and/or modification by the editor (step 518).
In some embodiments, one or more editors guide the production of the video composition by manually changing the “composition recipe” or selecting different audio files or video segments. Some embodiments also enable the editor(s) to take additional steps to modify the video composition (step 520). For example, the editor(s) may be able to reorder interesting segment(s), choose different raw video segments, and utilize video editing tools to modify color, warping, and stabilization.
After the editor(s) have finished making any desired modifications, the video composition is stabilized into its final form. In some embodiments, post-processing techniques can be used on the stabilized video composition, such as dewarping, color correction, etc. The final form of the video composition may be cut, recorded, and/or downscaled for easier sharing on social media (e.g., Facebook, Instagram, and YouTube) (step 522). For example, video compositions may naturally be downscaled to 720p based on a preference previously specified by the editor(s) or the owner/user of the UAV copter.
As video compositions are produced, machine learning techniques can be implemented that allow the network-accessible platform to improve in its ability to automatically create media content (step 524). For example, the network-accessible platform may analyze how different editors compare and rank interesting segment(s) (e.g., by determining why certain identified segments are not considered interesting, or by determining how certain non-identified segments that are considered interesting were missed) to help improve the algorithms used to identify and/or rank interesting segments of raw video using sensor data. Similarly, editor(s) can also reorder interesting segments of video compositions and remove undesired segments to better train the algorithms. Machine learning can be performed offline (e.g., where an editor compares multiple segments and indicates which one is most interesting) or online (e.g., where an editor manually recorders segments within a video composition and removes undesired clips). The results of both offline and online machine learning processes can be used to train a machine learning module executed by the network-accessible platform for ranking and/or composition ordering.
One skilled in the art will recognize that although the process 500 described herein is executed by a network-accessible platform, the same process could also be executed by another computing device, such as a mobile phone, tablet, or personal computer (e.g., laptop or desktop computer).
Moreover, unless contrary to physical possibility, it is envisioned that the steps described above may be performed in various sequences and combinations. For instance, an editor may accept or discard individual segments that are identified as interesting before the video composition is formed. Other steps could also be included in some embodiments.
In some embodiments, the video/image data uploaded by these computing devices is also synced (step 608). That is, the video/image data uploaded by each source may be temporally aligned (e.g., along a timeline) so that interesting segments of media can be more intelligently cropped and mixed. Temporal alignment permits the identification of interesting segments of a media stream when matched with secondary sensor data streams. Temporal alignment (which may be accomplished by timestamps or tags) may also be utilized in the presentation-time composition of a story. For example, a computing device may compose a story by combining images or video from non-aligned times of a physical location (e.g., as defined by GPS coordinates). However, the computing device may also generate a story based on other videos or photos that are time-aligned, which may be of interest to, or related to, the viewer (e.g., a story that depicts what each member of a family might have been doing within a specific time window).
The remainder of the process 600 may be similar to process 500 of
The processor(s) 710 is/are the central processing unit (CPU) of the computing device 700 and thus controls the overall operation of the computing device 700. In certain embodiments, the processor(s) 710 accomplishes this by executing software or firmware stored in memory 720. The processor(s) 710 may be, or may include, one or more programmable general-purpose or special-purpose microprocessors, digital signal processors (DSPs), programmable controllers, application specific integrated circuits (ASICs), programmable logic devices (PLDs), trusted platform modules (TPMs), or the like, or a combination of such devices.
The memory 720 is or includes the main memory of the computing device 700. The memory 720 represents any form of random access memory (RAM), read-only memory (ROM), flash memory, or the like, or a combination of such devices. In use, the memory 720 may contain a code 770 containing instructions according to the mesh connection system disclosed herein.
Also connected to the processor(s) 710 through the interconnect 730 are a network adapter 740 and a storage adapter 750. The network adapter 740 provides the computing device 700 with the ability to communicate with remote devices, over a network and may be, for example, an Ethernet adapter or Fibre Channel (FC) adapter. The network adapter 740 may also provide the computing device 700 with the ability to communicate with other computers. The storage adapter 750 allows the computing device 700 to access a persistent storage, and may be, for example, a Fibre Channel (FC) adapter or SCSI adapter.
The code 770 stored in memory 720 may be implemented as software and/or firmware to program the processor(s) 710 to carry out actions described above. In certain embodiments, such software or firmware may be initially provided to the computing device 700 by downloading it from a remote system through the computing device 700 (e.g., via network adapter 740).
The techniques introduced herein can be implemented by, for example, programmable circuitry (e.g., one or more microprocessors) programmed with software and/or firmware, or entirely in special-purpose hardwired circuitry, or in a combination of such forms. Special-purpose hardwired circuitry may be in the form of, for example, one or more application-specific integrated circuits (ASICs), programmable logic devices (PLDs), field-programmable gate arrays (FPGAs), etc.
Software or firmware for use in implementing the techniques introduced here may be stored on a machine-readable storage medium and may be executed by one or more general-purpose or special-purpose programmable microprocessors. A “machine-readable storage medium”, as the term is used herein, includes any mechanism that can store information in a form accessible by a machine (a machine may be, for example, a computer, network device, cellular phone, personal digital assistant (PDA), manufacturing tool, any device with one or more processors, etc.). For example, a machine-accessible storage medium includes recordable/non-recordable media (e.g., read-only memory (ROM); random access memory (RAM); magnetic disk storage media; optical storage media; flash memory devices; etc.), etc.
The term “logic”, as used herein, can include, for example, programmable circuitry programmed with specific software and/or firmware, special-purpose hardwired circuitry, or a combination thereof.
Reference in this specification to “various embodiments” or “some embodiments” means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the disclosure. Alternative embodiments (e.g., referenced as “other embodiments”) are not mutually exclusive of other embodiments. Moreover, various features are described which may be exhibited by some embodiments and not by others. Similarly, various requirements are described which may be requirements for some embodiments but not other embodiments.
This application claims priority to U.S. Provisional Patent Application No. 62/407,076, filed Oct. 12, 2016, the entire contents of which are herein incorporated by reference in their entirety.
Number | Date | Country | |
---|---|---|---|
62407076 | Oct 2016 | US |