# Neural Networks for Path Planning

Salim Janji, , Adrian Kliks

###### Abstract

The scientific community is able to present a new set of solutions to
practical problems that substantially improve the performance of modern
technology in terms of efficiency and speed of computation due to the
advancement in neural networks architectures. We present the latest works
considering the utilization of neural networks in robot path planning. Our
survey shows the contrast between different formulations of the problems that
consider different inputs, outputs, and environments and how different neural
networks architectures are able to provide solutions to all of the presented
problems.

##  I Introduction

Robot path planning has been receiving increased interest within the research
community due to the numerous emerging technologies it advances [1]. The most
prominent of these technologies include robots [2], autonomous vehicles [3]
and UAV path planning [4]. The problem of path planning is concerned with
finding an optimal path between the source and destination. An optimal
decision usually takes into consideration the following aspects:

  * •

Minimizing traversed distance.

  * •

Reducing the magnitude of turning angles.

  * •

Avoiding both static and dynamic obstacles with a certain clearance.

Planning the path completely requires consideration of two layers of planning:
The first layer develops a low-resolution high-level solution which is the
goal of an offline path planner or global path planning. This is usually
performed using an existing environment map which clearly does not take into
consideration dynamic obstacles or unexpected events. To deal with the
aforementioned dynamicity an online or local path planner is required which
results in a high-resolution low-level path that guides the robot locally in a
slice along the previously determined global path.

Depending on the space dimensionality, number of sensors acting as inputs,
dynamicity of the environment, and different movement constraints such as
maximum speed and turning angles, the problem of finding an optimal path can
become increasingly complex [5]. To cope with the increased complexity of path
planning modules, and to reduce the computation time required during
operation, neural networks (NN) have been employed in various path planning
solutions [6, 7, 8, 9, 10, 11, 12, 13]. In this paper we present the most
recent works that utilize NNs in solving the robot path planning problem.

The paper is structured as follows. In section II we present the scheme
proposed in [8] for 2D path planning which is based on rapidly random-
exploring tree (RRT), followed by its generalization to 3D problem by the same
authors which we present in section III based on [9]. Then, in section IV, a
framework utilizing value iteration networks (VINs) for UAV 3D online path
planning is described based on the work in [10]. The authors in [11]
demonstrated the differences in performance when a multi-layer perceptron
(MLP) network is trained using different offline-path planning algorithms and
with different environment. We present their work and results in section V. In
[12], the authors consider the existence of moving obstacles and devise a
scheme for online path planning which we present in VI. Finally, in [13] the
authors present the weaknesses in utilizing neural dynamics [14] to find
paths, and propose modifications to overcome them. We present their findings
and proposal in section VII and then conclude our paper with section VIII.

##  II Neural Rapidly Random-exploring Tree* (NRRT*)

###  II-A RRT and RRT*

RRT was first introduced in [15] to design high-dimensional spaces by randomly
building a space-filling tree. In the case of robot path planning, and when
using uniform sampling distributions, such sampling methods like RRT and
probabilistic roadmap (RPM) provide probabilistic completeness in the sense
that by allowing the sampling process to run infinitely, the probability of
sampling all the points in the state space increases monotonically.
Furthermore, they ensure asymptotic optimality which means that the algorithm
is guaranteed to converge to the optimal solution asymptotically.

Figure 1 demonstrates the process of RRT in the context of path planning.
Specifically, the process begins with the starting node, $x_{\text{start}}$,
where different points in space are sampled around it. If a sampled point,
$x_{\text{rand}}$, does not overlap with any obstacle, then that sample is
added to the tree as a leaf node to the nearest parent ($x_{3}$ in the
figure). In the enhanced version RRT*, the procedure further includes a
ChooseParent and Rewire processes. The former selects the parent for the new
leaf node based on a defined cost minimization, and the latter process will
test neighbor vertices to check if a path with less cost is now available
through the new node.

Figure 1: RRT sampling.

Clearly, if a solution exists, then RRT* is guaranteed to find it. However, in
real-life implementations, this process consumes a lot of time and memory
until it reaches the optimal solution which motivated the authors in [8] to
consider the utilization of NNs to speed-up the convergence such that the
proposed mechanism can be used as an online-planning scheme.

###  II-B NRRT*

Instead of uniformly sampling the sate space, the authors in [8] propose using
a convolutional neural networks (CNNs) architecture, ResNet50 [16], to
generate the sampling distribution of the state space.

#### Input

Specifically, the NN architecture receives as inputs the following:

  1. 1.

The map of the environment whereas pixels are encoded according to

$p\in\begin{cases}0&\text{empty,}\\\ 1&\text{obstacle,}\\\ 3&\text{start
position, }\\\ 4&\text{goal position.}\\\ \end{cases}$ (1)

  2. 2.

The required step size, and clearance values.

#### output

The output of the proposed neural architecture is a map with the same
dimensions of the input map such that each pixels contains a value
$\hat{p}\in[0,1]$ which denotes the probability of this pixel being chosen
during the sampling process. To preserve the asymptotic optimality and
probabilstic completeness characteristics of RRT*, the authors propose
sampling with equal probabilities from two sources. The first being the
results of the NNs, and the second is the standard uniform sampling
distribution which considers the whole space.

#### Architecture

the map is fed into a convolutional layer which extracts a high level feature
map, which is in turn fed into another convolutional layer to extract low
level feature maps with smaller size. On the other path related to the step
size and clearance, the result of the first fully connected layer is
concatenated with the low-level feature map, and the result of the second
layer connected to the first one is concatenated with the high-level feature
map. The map which contains the previously mentioned low-level feature map is
passed through an Atrous convolution layer which is a form of dilated
convolution. Convolving with differnt dilution rate allows us to generate maps
with information based on different scales. The result is then concatenated to
the result from high-level features path which contains a Atrous spatial
pyramid pooling (ASPP) layer followed by upsampling to match the size of the
other path. Finally, the resulting map is fed to a decoding convolutional
layer which outputs the probability distribution map.

#### Training

To train the NNs architecture, the authors use a number of maps with optimal
solutions generated using the A* algorithm [17]. The cost function for
generating the optimal path penalizes both the traversed distance and turning
angle. After obtaining the optimal path using A*, a widened version of the
path is encoded in pixels on the map which is used for training.

#### Results

The authors simulate their mechanism for different input maps with different
clearance and step-size parameters and prove that utilizing NRRT* is indeed
able to speed up the convergence towards the optimal solution substantially.

##  III NRRT* 3D

The same authors of the mechanism introduced in the previous section have also
presented another NRRT* algorithm but for the case where the space is
3-dimensional [9]. To tackle this problem, they propose using one of two
architectures: the first is based on U-Net [18] which also makes use of CNNs,
and the second utilizes a conditional generative adversarial network (cGAN).

#### Input

Unlike the 2D case, in the proposed solution the input only includes two 3D
maps, one encoding the obstacles, and the second encoding the start and goal
locations. That is, the clearance and step size are no longer considered as
inputs.

#### output

The output is again a 3D distribution of the sampling space whereas favoured
pixels are given a binary value of one, while the rest are encoded by a zero.
The authors suggest that the algorithm is run in two phases. The first phase
favors sampling from the NN output with a probability of 0.9 vs. 0.1 for
sampling uniformly in the 3D space. After finding a solution, the second phase
begins where the solution is to be improved by sampling uniformly (i.e., equal
probability) from both sampling sources. Similarly to before, this ensures the
probabilistic completeness and the asymptotic optimality of the mechanism.

#### Architecture

In the case of U-Net, the network is composed on encoding and decoding layers.
Each map is first passed through a different convolutional layer, and the
results are then concatenated. Then 4 3x3x3 convolutional layers are applied.
In the decoding stage that follows, 4 3x3x3 deconvolutions are performed. A
channel is defined as the combination of two layers, one from the encoding
stage and the other with the same size from the corresponding decoding stage.
Unlike U-Net, the authors propose adding the results of the maps in each
channel before passing them to the next decoding layer.

As for the case of GAN, two networks are required, a generator and a
discriminator. The goal of the generator is to fool the discriminator by
generating noisy output. On the other hand, the discriminator is trained to
distinguish correct output from the generator. By adding conditional
information a cGAN is able to generate data that satisfies the start and end
location conditions. Briefly, the generator network proposed includes a third
map which contains the 3D noise. All three maps are passed through 3 seperate
convolutional layers, then concatenation layer, and then passed through an
network similar to the one explained above. The results is a probability
distribution map which is fed to the discriminator network next to the
environment and locations maps. The three maps are then passed through three
separate convolutional layers and the results are concatenated. Finally, 4
successive convolutional layers with reduced kernel size result in a binary
value which translates to a decision of fake or real.

#### Training

Similarly to the previous section, the optimal solution for each training map
is obtained using A* algorithm, and then the NNs are trained using a diluted
version of these paths.

#### Results

The authors simulations prove that using NRRT* reduces the required number of
sampling iterations by 20-30 times. Furthermore, they show that both NNs
architecture are similar in performance, however, the cGAN model is able to
improve slightly the accuracy and generalization ability.

##  IV Online-planning with Value Iteration Networks (VINs)

The authors in [10] target the problem of UAV navigation by proposing a deep
neural network framework which leverages VINs. They also test their mechanism
with a UAV that is equipped with a ZED camera in both indoor and outdoor
environment. They show impressive results in which the UAV is successfully
able to navigate through obstacles towards a given goal location. The problem
is formulated as a classification task with 26 possible actions (3 possible
actions in each dimension corresponding to moving forward, backward, and
staying still).

#### Input

The inputs for the UAV are obtained through processing the camera output such
that two 3D maps are built: a local 3D map encoding the obstacles within the
specified range, and another map which encodes the agent and goal locations.
In the second map, after adding the goal position, and before encoding the
current position, a 3D convolutional layer is applied to spread the goal
information to all pixels.

#### Architecture

The proposed framework is composed of three modules. We briefly describe each
module:

  1. 1.

Decomposition module: this module slices the input maps along each 2D plane,
with slices obtained around the local poisition in each map. Then a
permutation of maps formed from the slices of each map and through all
combinations of dimensions is obtained. Since only local information in each
dimension is required, these slices are assumed to be sufficient for making
the next decision.

  2. 2.

Planning module: for each map pair, the reward is first approximated for each
possible action using two convolutional layers. Then, the results are fed into
a VIN network for K iterations. The results of this module are Q values
approximations for each map pair. In terms of reinforcement learning, the Q
value corresponding to each action indicates how profitable it is.

  3. 3.

Composition module: this module concatenates the slices across plane and then
concatenates the results again. Finally, the results are passed through
convolutional layer, and then a fully connected layer which output the
resulting Q value for each possible action.

The action corresponding to the largest Q value in the final output layer is
then chosen. The authors propose using two instances of the proposed framework
with different parameters (i.e., size of the local map) such that if the first
preferred network fails to generate a collision free path, the output from the
others can be selected.

#### Training

using Dijkstra’s algorithm in virtual environments, the authors trained their
frameworks through imitation learning.

#### Results

First, it was shown that the computational time required per prediction is
around 3 ms, then, through grid-world simulations, the proposed algorithm was
shown to achieve superior performance in terms of success rate when compared
to RRT offline planning. Also, using virutal environments simulation, the
authors showed that their algorithm resulted in shorter travelling distance
when compared to RRT*. Finally, the authors tested their mechanism with a real
UAV and showed the applicability of their work to both outdoor and indoor
environments.

##  V Training a Multilayer Perceptron (MLP) for Online Path Planning

To deal with the uncertainties during navigation within a given environment in
a timely manner, a NN can be employed such that it will determine the local
path of a vehicle that is following a general path that is previously obtained
with an offline planner. That is, the NN acts as an online planner. In
contrast to the previously existing literature which describes how such a
planner can be built and trained, the authors in [11] consider how different
training data can affect the performance of such planners.

#### NN Architecture

The authors utilize a six-layered NN with 50 neurons in each of the four
hidden layers. The input layer consists of 3 neurons corresponding to the
input, and the output layer is made of a single neuron. Finally, they use the
recitified linear unit (ReLU) as the activation function.

#### Input

The vehicle state is represented by three parameters: $d_{obs}$, $a_{obs}$,
and $a_{g}$ that denote the distance to the nearest obstacle, bearing angle to
the nearest obstacle, and the bearing angle to goal direction, respectively.

#### Output

Given the state of the vehicle, $\Psi=\\{d_{obs},\theta_{obs},\theta_{g}\\}$,
the NN outputs a value $\theta\in\\{-\pi,\pi\\}$ which serves as the steering
angle deviating from the current direction.

#### Training

Similarly to the previous works, the authors train the NN with offline
planning algorithms. They use two different algorithms and compare the
achieved results to analyze the impact of algorithm selection. The first
algorithm used is the Bellman-Ford (BF) algorithm which is commonly used to
find the shortest path in a graph. Using this algorithm results in a
discretized solution space obtained through decomposing the area into a grid
whereas the vehicle can travel on 8 different paths from each vertex (i.e.,
through the square edges and diameters). In contrast, the second algorithm
used implements a quadratic program (QP) which solves the optimization problem
that minimizes the distance between the current position and goal position at
each time instance given the obstacle clearance, maximum velocity, and maximum
acceleration constraints. For each case, the NN is trained using the optimal
paths outputs resulting from 10,000 different problems, each with 10 obstacles
in the map.

#### Results

Then, the NNs were tested against two different sets of problems: the first
one contained 30 maps with similar area and number of obstacles as the
training set, and the second set contained 30 maps with double the area and
with 80 obstacles instead of 10. It was found that using the BF algorithm with
discrete solution space outperforms the QP scenario in both case.
Specifically, the BF was able to succeed in avoiding all obstacles and finding
the goal location in the first set of problem, whereas it failed at 5 out of
30 in the second more dense set. However, in the case of QP, the NN failed in
5 test maps of the first set, and 21 of the second set. An interesting
observation is that when training the NN while using the BF algorithm, the NN
was actually able to find paths with shorter distance than those obtained by
the BF itself applied as an offline algorithm to the same maps. This is
because the offline BF solution space is constrained to the grid waypoints,
unlike the steering resulting from the NN.

##  VI Path Planning with Moving Obstacles

The uncertainties in an environment can include moving obstacles as well,
which was not considered by any of the previous works. However, the authors in
[12] take into consideration the existence of obstacles moving with a constant
speed less than a specified value in a random direction. As shown in figure 2,
and at any time instant, the robot’s field of view with an range of
$150^{\circ}$ is divided into 5 segments (i.e., each segment contains
$30^{\circ}$ of range) that are spread around the perpendicular line in the
direction of the goal.

Figure 2: Navigating through moving obstacles.

The authors proceed by obtaining for each segment a critical obstacle which is
defined as the moving obstacle reaching the segment in the nearest time. That
is, referring to figure 2, and by assuming that O1 is a moving obstacle moving
in the direction of I, then this obstacle is selected as the critical obstacle
for segment 3I2. Also, it is assumed that after each decision interval, the
robot moves with a fixed distance of 20 units with a variable speed determined
by the NN as will be explained below.

#### NN Architecture

The NN used is a 3-layer MLP with 25, 5, 5 neurons in the hidden, input, and
output layers, respectively. As for the activation function, the authors use
the sigmoid function.

#### Input

Each of the input layer neurons correspond to a different segment whereas the
value of the input is as follows:

  1. 1.

If the segment is already occupied by an obstacle, then the input is 0

  2. 2.

Otherwise, the estimated time duration required for the critical obstacle to
reach the segment is fed as an input.

  3. 3.

A value of 1.5 is fed if there are no obstacles blocking the segment, or
critical obstacles approaching it.

#### Output

For each segment, the NN outputs the following:

  1. 1.

0 means no possible movement in that direction because it is blocked.

  2. 2.

A value ranging from 0.1 to 0.5 mean that the critical obstacle disallows
movement in the corresponding segment.

  3. 3.

A value greater than 0.5 and less than 1.0 is interpreted as a decision for
the robot to reach the destination within 0.5 seconds.

  4. 4.

Whereas if the output is greater than 1.0, then this means that the robot can
head to the corresponding location within a duration of 1s.

If more than one segment is allowed, the robot chooses the one that moves it
closer to the goal.

#### Training

The authors train the network with given environments by manually calculating
the desired outputs for each state, and performing backpropagation to fix the
weights of the network.

#### Results

The authors show that the robot is able to avoid obstacles successfully for
two different maps, and they compare the performance of their mechanism to
other algorithms mentioned in literature in terms of computational time. They
show that unlike other algorithms which require a computational time of at
least 190 ms, forward propagation through the NN takes only 50 ms to output a
response.

##  VII Path-planning Based on Neural Activity Dynamics

The authors in [14] first presented a path-planning solution based on a
different type of neural networks. These neural networks provide a nerual
activity map. We briefly present the solution below.

#### Input

The input needed for the mechanism described below is a map of the complete
environment with obstacles locations marked along the goal and start
positions.

#### NN Architecture

The neural map generated from the environment map contains a grid of neurons
where each neuron is characterized by a shunting equation [19] which
determines the neuron’s activity dynamics. In this model, each neuron is
connected to its neighbouring neurons, and both excitatory and inhibitory
signals flow throughout the network through these connections. The activity of
each neuron, $x_{i}$, is obtained through solving the following shunting
differential equation

$\frac{dx_{i}}{dt}=-Ax_{i}+(B-x_{i})\underbrace{\left([I_{i}]^{+}+\sum^{N}_{j=1}w_{ij}[x_{j}]^{+}\right)}_{S^{+}_{i}}-(D+x_{i})[I_{i}]^{-}$
(2)

where $w_{ij}$ is the weight of the connection between the $j-th$ and $i-th$
and it is proportional to the distance between them up to a certain value
where futher neurons are excluded, $[I_{i}]^{+}$ and $[I_{i}]^{-}$ denote the
excitatory and inhibitory inputs respectively, and finally, $A$, $B$, and $D$
represent the passive decay rate, upper bound, and lower bound of the neural
activity, respectively. The summation between excitatory input and positive
neighbouring neuron activity, $[x_{j}]^{+}$, is denoted by $S^{+}_{i}$. To
model the path planning problem, the inputs at a given neuron (i.e., location)
are defined as follows:

$I_{i}=\begin{cases}E,&\text{if there is a target}\\\ -E,&\text{if there is an
obstacle}\\\ 0,&\text{otherwise}\end{cases}$ (3)

whereas $E>>B$ is a large positive constant.

#### Output

Finally, after obtaining complete neural activity map values, and given the
starting location, the robot selects the next neuron (i.e., spatial step) that
has the maximum neural activity value taking into consideration an additional
cost related to the turning angles of the robot. Therefore, the target
attracts the robot towards it through the propagation of excitatory input,
while obstacles repel the robot away.

However, the authors of the recent work [13] proposed a modification to the
proposed mechanism because it was found that the paths generated by this
approach were sub-optimal in given situations. A plot of such a case which the
authors presented is shown in figure 3

Figure 3: Sub-optimal path generated by neural dynamics.

To fix this problem of sub-optimal paths generation in challenging
environments, the authors propose two modifications that include padding and
averaging operations. The padding operation pads neurons to the boundary of
the map such that the activity value of each neuron is equal to the average of
the neighbouring neurons inside the map. Secondly, they modified the
excitatory input modeling $S^{+}_{i}$ as follows:

$S^{+}_{i}=[I_{i}]^{+}+\frac{\left(\sum^{N}_{j=1}w_{ij}[x_{j}]^{+}\right)n-n_{\text{neg}}}{n_{\text{pos}}n}$
(4)

whereas $n_{\text{neg}}$ and $n_{\text{pos}}$ denote the number of
neighbouring neurons with negative and positive activity, respectively, and
$n$ is the total number of neighbouring neurons which also includes
$n_{\text{out}}$ which is the number of neurons outside the map that are
padded to the boundary of the map as explained above.

#### Results

The authors test their proposed algorithm in both dynamic (i.e., with moving
obstacles) and static environments, and they compare their results with
several other common path-planning solutions including those based on neural
dynamics and neuro-fuzzy tools. The show cases where their proposed method was
the only one able to find the optimal path with reduced number of turns and
total turning angles. However, the clearance distance from obstacles resulting
from their work is less on average from other solutions.

##  VIII Conclusions

As presented, the application of neural networks to path-planning problems
provides a substantial degree of freedom in terms of the problems inputs,
outputs, and environments. Different inputs can exist in practical situations
(i.e., sensors, cameras, maps, etc.), and neural networks can be designed
appropriately as presented above. Furthermore, the output can take several
forms such as turning angle, speed, next step location, etc. Finally, the
neural network architecture can be designed depending on the amount of
information that is available about the environment such as the speed of
obstacles, map, or camera input, etc.

## References

  * [1] T. T. Mac, C. Copot, D. T. Tran, and R. De Keyser, “Heuristic approaches in robot path planning: A survey,” Robotics and Autonomous Systems, vol. 86, pp. 13–28, 2016.
  * [2] B. K. Patle, G. L. Babu, A. Pandey, D. R. K. Parhi, and A. Jagadeesh, “A review: On path planning strategies for navigation of mobile robot,” DEFENCE TECHNOLOGY, vol. 15, pp. 582–606, AUG 2019.
  * [3] D. González, J. Pérez, V. Milanés, and F. Nashashibi, “A review of motion planning techniques for automated vehicles,” IEEE Transactions on Intelligent Transportation Systems, vol. 17, no. 4, pp. 1135–1145, 2016.
  * [4] S. Aggarwal and N. Kumar, “Path planning techniques for unmanned aerial vehicles: A review, solutions, and challenges,” Computer Communications, vol. 149, pp. 270–299, 2020.
  * [5] I. A. Sucan and L. E. Kavraki, “A sampling-based tree planner for systems with complex dynamics,” IEEE Transactions on Robotics, vol. 28, no. 1, pp. 116–131, 2012.
  * [6] A.-M. Zou, Z.-G. Hou, S.-Y. Fu, and M. Tan, “Neural networks for mobile robot navigation: A survey,” in Advances in Neural Networks - ISNN 2006 (J. Wang, Z. Yi, J. M. Zurada, B.-L. Lu, and H. Yin, eds.), (Berlin, Heidelberg), pp. 1218–1226, Springer Berlin Heidelberg, 2006.
  * [7] S. H. Dezfoulian, D. Wu, and I. S. Ahmad, A Generalized Neural Network Approach to Mobile Robot Navigation and Obstacle Avoidance, pp. 25–42.  Berlin, Heidelberg: Springer Berlin Heidelberg, 2013.
  * [8] J. Wang, W. Chi, C. Li, C. Wang, and M. Q.-H. Meng, “Neural rrt*: Learning-based optimal path planning,” IEEE Transactions on Automation Science and Engineering, vol. 17, no. 4, pp. 1748–1758, 2020.
  * [9] J. Wang, X. Jia, T. Zhang, N. Ma, and M. Q.-H. Meng, “Deep neural network enhanced sampling-based path planning in 3d space,” IEEE Transactions on Automation Science and Engineering, pp. 1–10, 2021.
  * [10] K. Wu, H. Wang, M. A. Esfahani, and S. Yuan, “Achieving real-time path planning in unknown environments through deep neural networks,” IEEE Transactions on Intelligent Transportation Systems, vol. 23, no. 3, pp. 2093–2102, 2022.
  * [11] I. Sung, B. S. Choi, and P. Nielsen, “On the training of a neural network for online path planning with offline path planning algorithms,” Int. J. Inf. Manag., vol. 57, p. 102142, 2021.
  * [12] N. H. Singh and K. Thongam, “Neural network-based approaches for mobile robot navigation in static and moving obstacles environments,” INTELLIGENT SERVICE ROBOTICS, vol. 12, pp. 55–67, JAN 2019.
  * [13] Y. Chen, J. Liang, Y. Wang, Q. Pan, J. Tan, and J. Mao, “Autonomous mobile robot path planning in unknown dynamic environments using neural dynamics,” Soft Comput., vol. 24, p. 13979–13995, sep 2020.
  * [14] S. Yang and M. Meng, “Neural network approaches to dynamic collision-free trajectory generation,” IEEE Transactions on Systems, Man, and Cybernetics, Part B (Cybernetics), vol. 31, no. 3, pp. 302–318, 2001.
  * [15] S. M. LaValle, “Rapidly-exploring random trees : a new tool for path planning,” The annual research report, 1998.
  * [16] K. He, X. Zhang, S. Ren, and J. Sun, “Deep residual learning for image recognition,” in 2016 IEEE Conference on Computer Vision and Pattern Recognition (CVPR), pp. 770–778, 2016.
  * [17] P. E. Hart, N. J. Nilsson, and B. Raphael, “A formal basis for the heuristic determination of minimum cost paths,” IEEE Transactions on Systems Science and Cybernetics, vol. 4, no. 2, pp. 100–107, 1968.
  * [18] O. Ronneberger, P. Fischer, and T. Brox, “U-net: Convolutional networks for biomedical image segmentation,” in Medical Image Computing and Computer-Assisted Intervention – MICCAI 2015 (N. Navab, J. Hornegger, W. M. Wells, and A. F. Frangi, eds.), (Cham), pp. 234–241, Springer International Publishing, 2015.
  * [19] H. Öǧmen and S. Gagné, “Neural network architectures for motion perception and elementary motion detection in the fly visual system,” Neural Networks, vol. 3, no. 5, pp. 487–505, 1990.