Filming of spectacular action scenes is expensive and the creative possibilities are often limited. An ETH doctoral student has developed an algorithm that allows drones to implement the desired picture compositions independently.

The film *Skyfall* has its viewers spellbound as James Bond attempts to neutralise his adversary on the roof of a train as it races through the desert. Here, tension is created using a series of rapidly changing camera angles: a close-up of Bond's face, then a medium shot of the fight scene, and lastly a very long shot of the train, the desert and the two men fighting. This was an extremely expensive scene to film in terms of personnel, materials and technology. Several camera operators were deployed for hours on end at a number of different locations. And a camera crane even had to be mounted on the train's roof for the spectacular close-up shots.

Tobias Nägeli, a doctoral student in the Advanced Interactive Technologies Lab led by ETH professor Otmar Hilliges, is convinced that these scenes can be filmed with fewer resources. Together with researchers from Delft University of Technology and ETH spin-off Embotech, he has developed an algorithm that enables drones to film dynamic scenes independently in the way that directors and cinematographers intend.

**Maintaining control of the shooting angle**

Drones have been used in filming for a number of years, but good camera shots typically require two experienced experts – one to pilot the drone and one to control the camera angle. This is not only laborious but also expensive. It is true that commercial camera drones already exist that can follow a predefined person independently. "But this means that the director loses control over the shooting angle, as well as the option to keep several people in the image at once," says Nägeli. "That's why we've developed an intuitive control system."

To explain how this works, Nägeli draws an analogy with robotic vacuum cleaners: "We don't specify the exact path that the robot should take. We simply define the objective: that the room should be clean at the end of the process." If we apply this analogy to film, it means that the director is not concerned with exactly where the drone is at a specific point in time. The most important thing is that the final shot meets their expectations.

This process of translation between cinematographer and drone is the job of Nägeli's algorithm. Parameters such as the shooting angle, the person to follow, or tracking shots by the crane and camera can also be defined before the flight. For safety purposes, these parameters are combined with spatial boundaries within which the drone can move freely. The precise path – and the timing of changes of direction – are recalculated by the drone 50 times per second, with GPS sensors providing the necessary data.

**Low-cost equipment and an efficient algorithm**

For the first proof of concept, Nägeli used a simple drone that is available to buy online for less than CHF 500. The algorithm does not run on the drone itself, but rather on an external laptop that is connected to the drone by radio via a directional aerial. This allows flights with a range of up to one and a half kilometres. "That's sufficient for most applications," says Nägeli.

In a first publication at the start of the year, Nägeli demonstrated in collaboration with researchers from Massachusetts Institute of Technology (MIT) that the drone can perform predefined shots independently, taking into account the image area and the position and angle of an actor within it.

The drone also identifies obstacles and avoids them automatically. For a second publication, Nägeli commissioned film-maker Christina Welter from Zurich University of the Arts (ZHdK) to outline a scene – with a predetermined plot – that would normally require multiple cameras and rails for tracking shots. Nägeli programmed the stage directions into two drones, which communicated between themselves.

In this way, he was able to film shots that are traditionally hard to implement, such as a tracking shot through an open window and filming with two cameras in a confined indoor space. Through appropriate programming, Nägeli was also able to prevent the drones from flying into each other's shots.

The ZHdK cinematographers were sceptical about Nägeli's innovation; after all, the art of good picture composition is a hard-learned craft. "However, we do not want to replace the director or the cinematographers," Nägeli explains. "Rather, our system is intended to expand the range of tools available to film-makers and allow them to take shots that were previously impossible or extremely laborious."

**Use in sports broadcasts and inspections**

Nägeli is currently thinking of founding a spin-off to market the technology after he finishes his doctoral thesis, and ETH Zurich has already applied to patent the algorithm. He is convinced that it could be of interest to media and film productions, as illustrated by a research project in collaboration with Deutsche Welle and Italian broadcaster RAI, which is funded by the EU as part of Horizon 2020.

Nägeli thinks that the algorithms could see their first application not in a film studio but in television sports broadcasting; for example, ski races. "This is an area with a huge demand for dynamic shots," says Nägeli. "But manually piloted film drones can present a hazard for the athletes, as we've seen from drone crashes in the past." That is why "spidercams" are typically used today; for example, at the World Ski Championships in St. Moritz. Here, the camera travels along a cable suspended above the athlete; however, this is not without risk either, as demonstrated when a plane collided with the installation in St. Moritz in February. "We are actually doing the same thing as spidercams, but we do it virtually and without cables," says Nägeli. "We can create a virtual flight path that prevents the drone from coming within a minimum safety distance of the athlete."

The algorithms could also be used for inspection of industrial facilities; for example, in the case of wind turbines that are examined for defects using drones. Or for transport purposes: it would be possible to define air corridors that could be used to transport blood or donor organs safely in an emergency. "The drone could identify the fastest and safest flight path independently within this corridor."

**Film sets full of drones**

Back in the world of film, however, how will this technology change the industry in the longer term? Will scenes lasting several minutes soon be filmed exclusively with drones? "I see no reason why not," says Nägeli. "It's already possible to synchronise 50 drones at once. Using our algorithm, they can all be programmed to shoot precisely the images that the director wants." Would it therefore be possible to film, for example, the heroic battle on the moving train in Skyfall without mounted camera systems and without an army of camera operators? "At present, the algorithm is still in its infancy," explains Nägeli. "But with appropriate investment in the technology and a dedicated team, we could reach that stage in one or two years."

**More information:**Tobias Nageli et al. Real-Time Motion Planning for Aerial Videography With Dynamic Obstacle Avoidance and Viewpoint Optimization, *IEEE Robotics and Automation Letters* (2017). DOI: 10.1109/LRA.2017.2665693

Tobias Nägeli et al. Real-time planning for automated multi-view drone cinematography, *ACM Transactions on Graphics* (2017). DOI: 10.1145/3072959.3073712

**Citation**: Spectacular images thanks to an efficient algorithm (2017, August 7) retrieved 4 September 2022 from https://phys.org/news/2017-08-spectacular-images-efficient-algorithm.html

This document is subject to copyright. Apart from any fair dealing for the purpose of private study or research, no part may be reproduced without the written permission. The content is provided for information purposes only.

## FAQs

### How can you make an algorithm more efficient? ›

**Most Common Ways To Speed up an algorithm**

- Replace a nested loop by first building a hash and then looping.
- Remove unnecessary accumulations.
- Cache intermediate or previous results.
- Zip merge.

### What is the most efficient type of algorithm? ›

**Quicksort**. Quicksort is one of the most efficient sorting algorithms, and this makes of it one of the most used as well. The first thing to do is to select a pivot number, this number will separate the data, on its left are the numbers smaller than it and the greater numbers on the right.

### Which algorithm is more efficient and why? ›

The most efficient algorithm is **one that takes the least amount of execution time and memory usage possible while still yielding a correct answer**.

### Which algo is used for image processing? ›

12.4.

The widely used algorithms in this context include **denoising, region growing, edge detection**, etc. The contrast equalization is often performed in image-processing and contrast limited adaptive histogram equalization (CLAHE) is a very popular method as a preprocessing step to do it [57].

### What is efficiency of an algorithm with example? ›

The efficiency of an algorithm is defined as **the number of computational resources used by the algorithm**. An algorithm must be analyzed to determine its resource usage. The efficiency of an algorithm can be measured based on the usage of different resources.

### What is the definition of efficiency of an algorithm? ›

Overview. An algorithm is considered efficient **if its resource consumption, also known as computational cost, is at or below some acceptable level**. Roughly speaking, 'acceptable' means: it will run in a reasonable amount of time or space on an available computer, typically as a function of the size of the input.

### Why the efficiency of the algorithm is important? ›

Understanding the efficiency of an algorithm is important **for growth**. As programmers we code with the future in mind and to do that, efficiency is key. Creating efficient algorithms is about reducing the amount of iterations needed to complete your task in relation to the size of the dataset.

### What are the 2 kinds of algorithm efficiency? ›

**Time efficiency - a measure of amount of time for an algorithm to execute.** **Space efficiency** - a measure of the amount of memory needed for an algorithm to execute.

### How do we measure the efficiency of algorithms Mcq? ›

Two main measures for the efficiency of an algorithm are: **Processor and Memory**. Complexity and Capacity.

### What is an example of an algorithm? ›

Common examples include: **the recipe for baking a cake, the method we use to solve a long division problem, the process of doing laundry, and the functionality of a search engine** are all examples of an algorithm.

### What is the purpose of algorithm? ›

Regardless of the context in which they are used, algorithms are essentially problem solvers - their purpose is **to solve and often automate a solution to a particular problem**. Introductory textbooks on algorithms tend to outline their subject broadly, defining an algorithm as 'a set of steps to accomplish a task' ^{3}.

### What does it mean to say one algorithm is more efficient than another? ›

One way to say one algorithm is asymptotically more efficient than another is if there is some (problem-specific) input size such that for any larger input size the more efficient algorithm will take fewer "computational steps", usually by some abstract measure, e.g. number of comparisons.

### Which algorithm is best for image recognition? ›

**CNN** is a powerful algorithm for image processing. These algorithms are currently the best algorithms we have for the automated processing of images. Many companies use these algorithms to do things like identifying the objects in an image. Images contain data of RGB combination.

### Which machine learning algorithm is best for image processing? ›

1. **Convolutional Neural Networks (CNNs)** CNN's, also known as ConvNets, consist of multiple layers and are mainly used for image processing and object detection.

### Which machine learning algorithm is best for image classification? ›

Two popular algorithms used for unsupervised image classification are '**K-mean**' and 'ISODATA. ' K-means is an unsupervised classification algorithm that groups objects into k groups based on their characteristics.

### What are the 4 types of algorithm? ›

Introduction To Types of Algorithms

**Brute Force algorithm**. Greedy algorithm. Recursive algorithm. Backtracking algorithm.

### What factors affect the efficiency of an algorithm? ›

**Algorithm Efficiency**

- instruction space. Affected by: the compiler, compiler options, target computer (cpu)
- data space. Affected by: the data size/dynamically allocated memory, static program variables,
- run-time stack space.

### How do you find the efficiency of an algorithm in data structure? ›

Efficiency of an algorithm is **measured by assuming that all other factors, for example, processor speed, are constant and have no effect on the implementation**. A Posterior Analysis − This is an empirical analysis of an algorithm. The selected algorithm is implemented using programming language.

### What are the essential characteristics of an efficient algorithm explain efficiency with example? ›

Ans: The efficiency of an algorithm defines the number of computational resources used by an algorithm and time taken by an algorithm to produce the desired result. An algorithm which **takes fewer resources and computes results in a minimum time for a problem** then that algorithm is known as efficient.

### How do you compare the efficiency of two algorithms? ›

**By measuring both the time complexity (which defined is the time needed to execute all instructions) and the space needed for each algorithm**. You can also use the amount of space it takes up in bits...

### What affects the efficiency of an algorithm? ›

The two main measures for the efficiency of an algorithm are **time complexity and space complexity**, but they cannot be compared directly. So, time and space complexity is considered for algorithmic efficiency. An algorithm must be analyzed to determine the resource usage of the algorithm.

### How can I make my code run faster? ›

- 5 Simple Techniques to Write Your Code More Efficiently in Python. Make your code faster, easier to read, and more understandable. ...
- Creating Functions. ...
- Eliminate Unessential Operations. ...
- Use Packages to Your Advantage. ...
- Avoid Declaring Unnecessary Variables. ...
- Break Loops When Necessary.

### What kind of problems are solved by algorithms? ›

Algorithms can be designed for any type of problem, i.e. **mathematical, logical, or any complex problems**. Example: Depth-first-search, traveling salesman, sorting algorithms, etc. But, after some steps, the algorithm would result in a finite solution before ending.

### How can I practice coding everyday? ›

**Practice!**

**Practice!**

- Code challenges. As I said in this article, code challenges are a great way to practice and to improve your programming skills. ...
- Learn a new language. If you already know a programming language, try to learn a new one. ...
- Performance tests. ...
- Debug your code. ...
- Learn from others. ...
- Make changes.

### How do I make Python faster than C++? ›

**Here are a few ideas that might move you in that general direction:**

- Choose unequal programmers for the two languages. ...
- Choose inefficient algorithms in C++ and efficient algorithms in Python. ...
- Use an old clunky C++ compiler and turn off all optimizations.
- Use completely different hardware to run the code.

### How can I make Python EXE run faster? ›

**How to Make Python Code Run Incredibly Fast**

- Proper algorithm & data structure. Each data structure has a significant effect on runtime. ...
- Using built-in functions and libraries. ...
- Use multiple assignments. ...
- Prefer list comprehension over loops. ...
- Proper import. ...
- String Concatenation.

### What are 3 examples of algorithms? ›

Common examples include: **the recipe for baking a cake, the method we use to solve a long division problem, the process of doing laundry, and the functionality of a search engine** are all examples of an algorithm.

### What are 5 examples of algorithms? ›

**Examples of Algorithms in Everyday Life**

- Tying Your Shoes. Any step-by-step process that is completed the same way every time is an algorithm. ...
- Following a Recipe. ...
- Classifying Objects. ...
- Bedtime Routines. ...
- Finding a Library Book in the Library. ...
- Driving to or from Somewhere. ...
- Deciding What to Eat.

### What algorithms do we use in everyday life? ›

**Here are some examples of algorithms you interact with everyday.**

- Recipes. Just like sorting papers and even tying your shoes, following a recipe is a type of algorithm. ...
- Sorting Papers. A simple task and yet it uses algorithmic thinking. ...
- Traffic Signals. ...
- Bus Schedules. ...
- GPS. ...
- Facial Recognition. ...
- Spotify. ...
- Google Search.

### What are the 4 types of algorithm? ›

Introduction To Types of Algorithms

**Brute Force algorithm**. Greedy algorithm. Recursive algorithm. Backtracking algorithm.

### What is an algorithm in simple terms? ›

An algorithm is **a procedure used for solving a problem or performing a computation**. Algorithms act as an exact list of instructions that conduct specified actions step by step in either hardware- or software-based routines. Algorithms are widely used throughout all areas of IT.

### What is the algorithm Mcq? ›

Explanation: An algorithm is **a stepwise solution to the problem**. Explanation: In Divide and Conquer we divide the problem and then recombine the solution. Explanation: In Dynamic programming algorithms we utilize previous results for new ones. Explanation: For Complexity, we calculate both time and space consumed.