# Differentiable Multi-modal Camera Position Optimization

Sean Zanyk-McLean
Krishna Kumar
Paul Navratil

###### Abstract

This article describes a multi-modal method using simulated Lidar data via
ray-tracing and image pixel loss with differentiable rendering to optimize
camera position. Camera position optimization is completed using gradient
descent with the loss function being influenced by both modalities. Typical
camera optimization is done with image pixel loss with differentiable
rendering only, the use of a second data input with Lidar leads to a faster
convergence. This method fusing sensor input presents a potential utility with
autonomous vehicles, as these methods can be used to establish the locations
of multiple actors in a scene. This article also presents a method for
simulation of multiple types of data to be used in training of autonomous
vehicles.

###### Index Terms:

Differentiable Rendering, Lidar, Camera Optimization, Gradient Descent

##  I Introduction

Differentiable rendering is a technique used in computer graphics that allows
for the calculation of gradients with respect to the parameters of a 3D
rendering pipeline. Recent advances in physics-based differentiable rendering
allows for realistic images to be generated and optimized over, and also
realistic simulation of light through a scene. This technology allows for the
solving of many complex inverse rendering problems via gradient descent.
Multi-modal Sensor Fusion has become an important focus of researchers in
recent years as it is an important problem to solve in autonomous vehicles.
Multiple modalities, such as vision systems and Lidar can be utilized together
to improve the performance of autonomous systems. Lidar (Light Detection and
Ranging) is a remote sensing technology that uses laser pulses to measure
distances to objects and create precise 3D representations of the surrounding
environment. It works by emitting a laser beam that bounces off objects and
returns to the sensor, allowing the creation of high-resolution 3D maps of the
environment. Lidar technology can be used in conjunction with 3D object
detection algorithms to identify and classify objects in the environment. 3D
object detection algorithms analyze the Lidar data to identify the location,
size, and shape of objects in the environment, such as cars, pedestrians, and
bicycles. Lidar data can be combined with other sensor data, such as cameras
and radar, to provide a more complete and accurate picture of the environment,
and to help identify and track objects in real-time. This technology has
numerous applications, including self-driving cars, robotics, and urban
planning.

##  II Related Works

##  III Methods

The differentiable optimization used Mitsuba3 for rendering and gradient
computation, Mitsuba is a research-oriented rendering system for forward and
inverse light-transport simulation. Mitsuba uses automatic differentiation via
Drjit, which is a similar library to PyTorch. The system utilizes the light-
transport system to simulate Lidar data and the built-in optimization tools to
perform differentiable rendering with a joint loss function. When rendering a
scene in Mitsuba, users must select multiple specifications, such as
integrator, max depth, samples per pixel, and sampler type. For the system,
Mitsuba’s Reparameterized Path Replay Backpropagation Integrator is used. This
specifies the differentiable rendering technique to be used, the technique
will perform integration over a high-dimensional space. The Reparameterized
Path Replay Backpropagation Integrator [PRB] provides an efficient light path
simulation that can handle discontinuities in 3D scenes. A max depth of 3 and
samples per pixel of 16 was selected to simplify and limit computation while
still providing rich pixel data for the optimization. These configurations can
be increased for improved realistic image rendering. The sample type selected
is independent.

###  III-A Lidar Data

In order to generate Lidar data, the system uses the built in ray-tracing
functionality of the Reparameterized Path Replay Backpropagation Integrator
and during rendering, the ray intersections at a depth of 0 are recorded and
written to a text file. Each ray intersection is a record of light bouncing
off some object in the scene and an (x,y,z) coordinate is recorded. All of the
intersection points together are a simple point cloud without intensity data.
This point cloud is effectively simulating Lidar data, a common modality of
data in autonomous driving. Lidar data allows for distance estimation. This
data used in conjunction with large trained 3D object detection networks will
allow for the system to utilize distance measures from the camera to the car.

###  III-B 3D Object Detection

After the Lidar data is generated, a 3D object detection algorithm is used to
generate a bounding box for the car located in the scene. The detection
algorithm used is PointPillars which is an encoder which utilizes PointNets to
learn a representation of point clouds organized in vertical columns
(pillars). This encoder is used pre-trained on the KITTI 3D object detection
dataset, which is a large, commonly used autonomous vehicle dataset. This pre-
training allows for the algorithm to detect specific objects after training,
specifically objects like cars, buses, and pedestrians. Point Pillars
inference is applied to the text file containing Lidar data in (x,y,z) format
generated via the previous section. The inference detects a car object in the
scene and is able to generate a bounding box around the object. Depending on
the target camera location and resulting point cloud of Lidar data, this
algorithm may have some slight variations and will not be effective all the
time at detecting the car. This makes intuitive sense as car location being
far away or at unique locations with respect to the camera will alter the
Lidar data and potentially cause it to be unrecognizable to the system. In
practice, the system works well in simple scenes and will utilize the most
confident bounding box for a predicted car class in order to establish the (x,
y, z) location of the car in the scene and the distance from the camera
location to the car.

###  III-C 3D Object Detection

The goal of the camera position optimization is to move a camera from an
initial position to a target position with respect to the objects in the
scene. To experiment and show the utility of using multi-modal data for camera
optimization, an initial and target camera location were used with a simple 3D
computer graphics scene containing one car object. The initial camera location
has an (x,y,z) coordinate of (20.0, 13.0, 23.0) and the target camera location
is (8.0, 5.0, 14.0). In other words, the target camera location was translated
(12.0, 8.0, 9.0) to be used at the start of the optimization loop. In the
images below, we can clearly see that the initial camera location is much
further away from the car and that the car is not centered in the camera view.

###  III-D Camera Optimization

In order to move the camera location to the target position, the system
utilizes Adam,a first-order gradient-based optimization method. For the
experiments, 30 iterations of gradient descent were used and at each step the
camera location was moved based on the gradients of the loss function. In each
iteration, the previously computed transformation based on the previous
gradients is first applied to the camera location, then a new image is
rendered based on this new camera location using Mitsuba. Then, the new (x, y,
z) camera location is compared to the location of the 3D Object Detected Car
bounding box location and the distance between the current camera location and
the car is computed. Then, the current camera distance to the car is compared
to the target camera location’s distance to the car. A loss function is used
to compare these two values and this loss is combined with image pixel wise
loss between the target ending image and current camera location rendered
image. These two losses combined help steer the camera location to the target
through each step of gradient descent and help weight the optimization to
consider not only the gradients of the pixels with respect to scene
parameters, but also to consider the current distance of the camera from the
car using the simulated Lidar data. The goal of this is to help the camera
avoid moving in the wrong direction during the optimization as the camera can
often lose the car off screen when searching for a lower image wise pixel
loss.

###  III-E Joint Loss Function

The joint loss function is defined as: Loss = imgloss+alpha*distanceloss Put
math in overleaf

##  IV Results

(a)

(b)

Figure 1: Camera positions. (a) Initial Position. (b) Target Position.

See [1, 2, 3, 4, 5] for resources on formatting math into text and additional
help in working with LaTeX.

##  V Discussion

For some of the remainer of this sample we will use dummy text to fill out
paragraphs rather than use live text that may violate a copyright.

Itam, que ipiti sum dem velit la sum et dionet quatibus apitet voloritet
audam, qui aliciant voloreicid quaspe volorem ut maximusandit faccum
conemporerum aut ellatur, nobis arcimus. Fugit odi ut pliquia incitium latum
que cusapere perit molupta eaquaeria quod ut optatem poreiur? Quiaerr ovitior
suntiant litio bearciur?

Onseque sequaes rectur autate minullore nusae nestiberum, sum voluptatio. Et
ratem sequiam quaspername nos rem repudandae volum consequis nos eium aut as
molupta tectum ulparumquam ut maximillesti consequas quas inctia cum
volectinusa porrum unt eius cusaest exeritatur? Nias es enist fugit pa vollum
reium essusam nist et pa aceaqui quo elibusdandis deligendus que nullaci
lloreri bla que sa coreriam explacc atiumquos simolorpore, non prehendunt lam
que occum[6] si aut aut maximus eliaeruntia dia sequiamenime natem sendae
ipidemp orehend uciisi omnienetus most verum, ommolendi omnimus, est, veni aut
ipsa volendelist mo conserum volores estisciis recessi nveles ut poressitatur
sitiis ex endi diti volum dolupta aut aut odi as eatquo cullabo remquis
toreptum et des accus dolende pores sequas dolores tinust quas expel moditae
ne sum quiatis nis endipie nihilis etum fugiae audi dia quiasit quibus. Ibus
el et quatemo luptatque doluptaest et pe volent rem ipidusa eribus utem
venimolorae dera qui acea quam etur aceruptat. Gias anis doluptaspic tem et
aliquis alique inctiuntiur?

Sedigent, si aligend elibuscid ut et ium volo tem eictore pellore ritatus ut
ut ullatus in con con pere nos ab ium di tem aliqui od magnit repta volectur
suntio. Nam isquiante doluptis essit, ut eos suntionsecto debitiur sum ea
ipitiis adipit, oditiore, a dolorerempos aut harum ius, atquat.

Rum rem ditinti sciendunti volupiciendi sequiae nonsect oreniatur, volores
sition ressimil inus solut ea volum harumqui to see(1) mint aut quat eos
explis ad quodi debis deliqui aspel earcius.

$x=\sum_{i=0}^{n}2{i}Q.$ (1)

Alis nime volorempera perferi sitio denim repudae pre ducilit atatet volecte
ssimillorae dolore, ut pel ipsa nonsequiam in re nus maiost et que dolor sunt
eturita tibusanis eatent a aut et dio blaudit reptibu scipitem liquia
consequodi od unto ipsae. Et enitia vel et experferum quiat harum sa net
faccae dolut voloria nem. Bus ut labo. Ita eum repraer rovitia samendit aut et
volupta tecupti busant omni quiae porro que nossimodic temquis anto blacita
conse nis am, que ereperum eumquam quaescil imenisci quae magnimos recus
ilibeaque cum etum iliate prae parumquatemo blaceaquiam quundia dit apienditem
rerit re eici quaes eos sinvers pelecabo. Namendignis as exerupit aut magnim
ium illabor roratecte plic tem res apiscipsam et vernat untur a deliquaest que
non cus eat ea dolupiducim fugiam volum hil ius dolo eaquis sitis aut landesto
quo corerest et auditaquas ditae voloribus, qui optaspis exero cusa am, ut
plibus.

##  VI Conclusion

###  VI-A Sections and Subsections

Enumeration of section headings is desirable, but not required. When numbered,
please be consistent throughout the article, that is, all headings and all
levels of section headings in the article should be enumerated. Primary
headings are designated with Roman numerals, secondary with capital letters,
tertiary with Arabic numbers; and quaternary with lowercase letters. Reference
and Acknowledgment headings are unlike all other section headings in text.
They are never enumerated. They are simply primary headings without labels,
regardless of whether the other headings in the article are enumerated.

###  VI-B References

The coding for the citations is made with the LaTeX $\backslash$cite command.
This will display as: see [1].

For multiple citations code as follows: $\backslash$cite{ref1,ref2,ref3} which
will produce [1, 2, 3]. For reference ranges that are not consecutive code as
$\backslash$cite{ref1,ref2,ref3,ref9} which will produce [1, 2, 3, 9]

###  VI-C Lists

In this section, we will consider three types of lists: simple unnumbered,
numbered, and bulleted. There have been many options added to IEEEtran to
enhance the creation of lists. If your lists are more complex than those shown
below, please refer to the original “IEEEtran_HOWTO.pdf” for additional
options.

#### A plain unnumbered list

  * bare_jrnl.tex

  * bare_conf.tex

  * bare_jrnl_compsoc.tex

  * bare_conf_compsoc.tex

  * bare_jrnl_comsoc.tex

#### A simple numbered list

  1. 1.

bare_jrnl.tex

  2. 2.

bare_conf.tex

  3. 3.

bare_jrnl_compsoc.tex

  4. 4.

bare_conf_compsoc.tex

  5. 5.

bare_jrnl_comsoc.tex

#### A simple bulleted list

  * •

bare_jrnl.tex

  * •

bare_conf.tex

  * •

bare_jrnl_compsoc.tex

  * •

bare_conf_compsoc.tex

  * •

bare_jrnl_comsoc.tex

###  VI-D Figures

Fig. 1 is an example of a floating figure using the graphicx package. Note
that $\backslash$label must occur AFTER (or within) $\backslash$caption. For
figures, $\backslash$caption should occur after the
$\backslash$includegraphics.

Figure 2: Simulation results for the network.

Fig. 2(a) and 2(b) is an example of a double column floating figure using two
subfigures. (The subfig.sty package must be loaded for this to work.) The
subfigure $\backslash$label commands are set within each subfloat command, and
the $\backslash$label for the overall figure must come after
$\backslash$caption. $\backslash$hfil is used as a separator to get equal
spacing. The combined width of all the parts of the figure should do not
exceed the text width or a line break will occur.

(a)

(b)

Figure 3: Dae. Ad quatur autat ut porepel itemoles dolor autem fuga. Bus quia
con nessunti as remo di quatus non perum que nimus. (a) Case I. (b) Case II.

Note that often IEEE papers with multi-part figures do not place the labels
within the image itself (using the optional argument to
$\backslash$subfloat[]), but instead will reference/describe all of them (a),
(b), etc., within the main caption. Be aware that for subfig.sty to generate
the (a), (b), etc., subfigure labels, the optional argument to
$\backslash$subfloat must be present. If a subcaption is not desired, leave
its contents blank, e.g.,$\backslash$subfloat[].

##  VII Tables

Note that, for IEEE-style tables, the $\backslash$caption command should come
BEFORE the table. Table captions use title case. Articles (a, an, the),
coordinating conjunctions (and, but, for, or, nor), and most short
prepositions are lowercase unless they are the first or last word. Table text
will default to $\backslash$footnotesize as the IEEE normally uses this
smaller font for tables. The $\backslash$label must come after
$\backslash$caption as always.

TABLE I: An Example of a Table One | Two
---|---
Three | Four

##  VIII Algorithms

Algorithms should be numbered and include a short title. They are set off from
the text with rules above and below the title and after the last line.

Algorithm 1 Weighted Tanimoto ELM.

TRAIN$(\mathbf{X}\mathbf{T})$

$\textbf{select randomly }W\subset\mathbf{X}$

$N_{\mathbf{t}}\leftarrow|\\{i:\mathbf{t}_{i}=\mathbf{t}\\}|$ for
$\mathbf{t}=-1,+1$

$B_{i}\leftarrow\sqrt{\textsc{max}(N_{-1},N_{+1})/N_{\mathbf{t}_{i}}}$ for
$i=1,...,N$

$\hat{\mathbf{H}}\leftarrow
B\cdot(\mathbf{X}^{T}\textbf{W})/(\mathbb{1}\mathbf{X}+\mathbb{1}\textbf{W}-\mathbf{X}^{T}\textbf{W})$

$\beta\leftarrow\left(I/C+\hat{\mathbf{H}}^{T}\hat{\mathbf{H}}\right)^{-1}(\hat{\mathbf{H}}^{T}B\cdot\mathbf{T})$

return $\textbf{W},\beta$

PREDICT$(\mathbf{X})$

$\mathbf{H}\leftarrow(\mathbf{X}^{T}\textbf{W})/(\mathbb{1}\mathbf{X}+\mathbb{1}\textbf{W}-\mathbf{X}^{T}\textbf{W})$

return $\textsc{sign}(\mathbf{H}\beta)$

Que sunt eum lam eos si dic to estist, culluptium quid qui nestrum nobis
reiumquiatur minimus minctem. Ro moluptat fuga. Itatquiam ut laborpo rersped
exceres vollandi repudaerem. Ulparci sunt, qui doluptaquis sumquia ndestiu
sapient iorepella sunti veribus. Ro moluptat fuga. Itatquiam ut laborpo
rersped exceres vollandi repudaerem.

##  IX Mathematical Typography
and Why It Matters

Typographical conventions for mathematical formulas have been developed to
provide uniformity and clarity of presentation across mathematical texts. This
enables the readers of those texts to both understand the author’s ideas and
to grasp new concepts quickly. While software such as LaTeX and MathType® can
produce aesthetically pleasing math when used properly, it is also very easy
to misuse the software, potentially resulting in incorrect math display.

IEEE aims to provide authors with the proper guidance on mathematical
typesetting style and assist them in writing the best possible article. As
such, IEEE has assembled a set of examples of good and bad mathematical
typesetting [1, 2, 3, 4, 5].

Further examples can be found at http://journals.ieeeauthorcenter.ieee.org/wp-
content/uploads/sites/7/IEEE-Math-Typesetting-Guide-for-LaTeX-Users.pdf

###  IX-A Display Equations

The simple display equation example shown below uses the “equation”
environment. To number the equations, use the $\backslash$label macro to
create an identifier for the equation. LaTeX will automatically number the
equation for you.

$x=\sum_{i=0}^{n}2{i}Q.$ (2)

is coded as follows:

    \begin{equation}
    \label{deqn_ex1}
    x = \sum_{i=0}^{n} 2{i} Q.
    \end{equation}

To reference this equation in the text use the $\backslash$ref macro. Please
see (2)
is coded as follows:

    Please see (\ref{deqn_ex1})

###  IX-B Equation Numbering

Consecutive Numbering: Equations within an article are numbered consecutively
from the beginning of the article to the end, i.e., (1), (2), (3), (4), (5),
etc. Do not use roman numerals or section numbers for equation numbering.

Appendix Equations: The continuation of consecutively numbered equations is
best in the Appendix, but numbering as (A1), (A2), etc., is permissible.

Hyphens and Periods: Hyphens and periods should not be used in equation
numbers, i.e., use (1a) rather than (1-a) and (2a) rather than (2.a) for
subequations. This should be consistent throughout the article.

###  IX-C Multi-Line Equations and Alignment

Here we show several examples of multi-line equations and proper alignments.

A single equation that must break over multiple lines due to length with no
specific alignment.

$\text{The first line of this example}\\\ \text{The second line of this
example}\\\ \text{The third line of this example}$ (3)

is coded as:

    \begin{multline}
    \text{The first line of this example}\\
    \text{The second line of this example}\\
    \text{The third line of this example}
    \end{multline}

A single equation with multiple lines aligned at the = signs

$\displaystyle a$ $\displaystyle=c+d$ (4) $\displaystyle b$
$\displaystyle=e+f$ (5)

is coded as:

    \begin{align}
    a &= c+d \\
    b &= e+f
    \end{align}

The align environment can align on multiple points as shown in the following
example:

$\displaystyle x$ $\displaystyle=y$ $\displaystyle X$ $\displaystyle=Y$
$\displaystyle a$ $\displaystyle=bc$ (6) $\displaystyle x^{\prime}$
$\displaystyle=y^{\prime}$ $\displaystyle X^{\prime}$
$\displaystyle=Y^{\prime}$ $\displaystyle a^{\prime}$ $\displaystyle=bz$ (7)

is coded as:

    \begin{align}
    x &= y & X & =Y & a &=bc\\
    x’ &= y’ & X’ &=Y’ &a’ &=bz
    \end{align}

###  IX-D Subnumbering

The amsmath package provides a subequations environment to facilitate
subnumbering. An example:

$\displaystyle f$ $\displaystyle=g$ (8a) $\displaystyle f^{\prime}$
$\displaystyle=g^{\prime}$ (8b) $\displaystyle\mathcal{L}f$
$\displaystyle=\mathcal{L}g$ (8c)

is coded as:

    \begin{subequations}\label{eq:2}
    \begin{align}
    f&=g \label{eq:2A}\\
    f’ &=g’ \label{eq:2B}\\
    \mathcal{L}f &= \mathcal{L}g \label{eq:2c}
    \end{align}
    \end{subequations}

###  IX-E Matrices

There are several useful matrix environments that can save you some
keystrokes. See the example coding below and the output.

A simple matrix:

$\begin{matrix}0&1\\\ 1&0\end{matrix}$ (9)

is coded as:

    \begin{equation}
    \begin{matrix}  0 &  1 \\
    1 &  0 \end{matrix}
    \end{equation}

A matrix with parenthesis

$\begin{pmatrix}0&-i\\\ i&0\end{pmatrix}$ (10)

is coded as:

    \begin{equation}
    \begin{pmatrix} 0 & -i \\
     i &  0 \end{pmatrix}
    \end{equation}

A matrix with square brackets

$\begin{bmatrix}0&-1\\\ 1&0\end{bmatrix}$ (11)

is coded as:

    \begin{equation}
    \begin{bmatrix} 0 & -1 \\
    1 &  0 \end{bmatrix}
    \end{equation}

A matrix with curly braces

$\begin{Bmatrix}1&0\\\ 0&-1\end{Bmatrix}$ (12)

is coded as:

    \begin{equation}
    \begin{Bmatrix} 1 &  0 \\
    0 & -1 \end{Bmatrix}
    \end{equation}

A matrix with single verticals

$\begin{vmatrix}a&b\\\ c&d\end{vmatrix}$ (13)

is coded as:

    \begin{equation}
    \begin{vmatrix} a &  b \\
    c &  d \end{vmatrix}
    \end{equation}

A matrix with double verticals

$\begin{Vmatrix}i&0\\\ 0&-i\end{Vmatrix}$ (14)

is coded as:

    \begin{equation}
    \begin{Vmatrix} i &  0 \\
    0 & -i \end{Vmatrix}
    \end{equation}

###  IX-F Arrays

The array environment allows you some options for matrix-like equations. You
will have to manually key the fences, but there are other options for
alignment of the columns and for setting horizontal and vertical rules. The
argument to array controls alignment and placement of vertical rules.

A simple array

$\left(\begin{array}[]{cccc}a+b+c&uv&x-y&27\\\
a+b&u+v&z&134\end{array}\right)$ (15)

is coded as:

    \begin{equation}
    \left(
    \begin{array}{cccc}
    a+b+c & uv & x-y & 27\\
    a+b & u+v & z & 134
    \end{array} \right)
    \end{equation}

A slight variation on this to better align the numbers in the last column

$\left(\begin{array}[]{cccr}a+b+c&uv&x-y&27\\\
a+b&u+v&z&134\end{array}\right)$ (16)

is coded as:

    \begin{equation}
    \left(
    \begin{array}{cccr}
    a+b+c & uv & x-y & 27\\
    a+b & u+v & z & 134
    \end{array} \right)
    \end{equation}

An array with vertical and horizontal rules

$\left(\begin{array}[]{c|c|c|r}a+b+c&uv&x-y&27\\\ \hline\cr
a+b&u+v&z&134\end{array}\right)$ (17)

is coded as:

    \begin{equation}
    \left(
    \begin{array}{c|c|c|r}
    a+b+c & uv & x-y & 27\\
    a+b & u+v & z & 134
    \end{array} \right)
    \end{equation}

Note the argument now has the pipe ”$|$” included to indicate the placement of
the vertical rules.

###  IX-G Cases Structures

Many times cases can be miscoded using the wrong environment, i.e., array.
Using the cases environment will save keystrokes (from not having to type the
$\backslash$left$\backslash$lbrace) and automatically provide the correct
column alignment.

${z_{m}(t)}=\begin{cases}1,&{\text{if}}\ {\beta}_{m}(t)\\\
{0,}&{\text{otherwise.}}\end{cases}$

is coded as follows:

    \begin{equation*}
    {z_m(t)} =
    \begin{cases}
    1,&{\text{if}}\ {\beta }_m(t),\\
    {0,}&{\text{otherwise.}}
    \end{cases}
    \end{equation*}

Note that the “&” is used to mark the tabular alignment. This is important to
get proper column alignment. Do not use $\backslash$quad or other fixed spaces
to try and align the columns. Also, note the use of the $\backslash$text macro
for text elements such as “if” and “otherwise.”

###  IX-H Function Formatting in Equations

Often, there is an easy way to properly format most common functions. Use of
the $\backslash$ in front of the function name will in most cases, provide the
correct formatting. When this does not work, the following example provides a
solution using the $\backslash$text macro:

$d_{R}^{KM}=\underset{d_{l}^{KM}}{\text{arg
min}}\\{d_{1}^{KM},\ldots,d_{6}^{KM}\\}.$

is coded as follows:

    \begin{equation*}
     d_{R}^{KM} = \underset {d_{l}^{KM}}
     {\text{arg min}} \{ d_{1}^{KM},
     \ldots,d_{6}^{KM}\}.
    \end{equation*}

###  IX-I Text Acronyms Inside Equations

This example shows where the acronym “MSE” is coded using $\backslash$text{}
to match how it appears in the text.

$\text{MSE}=\frac{1}{n}\sum_{i=1}^{n}(Y_{i}-\hat{Y_{i}})^{2}$

    \begin{equation*}
     \text{MSE} = \frac {1}{n}\sum _{i=1}^{n}
    (Y_{i} - \hat {Y_{i}})^{2}
    \end{equation*}

##  X Conclusion

The conclusion goes here.

## Acknowledgments

This should be a simple paragraph before the References to thank those
individuals and institutions who have supported your work on this article.

[Proof of the Zonklar Equations] Use $\backslash$appendix if you have a single
appendix: Do not use $\backslash$section anymore after $\backslash$appendix,
only $\backslash$section*. If you have multiple appendixes use
$\backslash$appendices then use $\backslash$section to start each appendix.
You must declare a $\backslash$section before using any $\backslash$subsection
or using $\backslash$label ($\backslash$appendices by itself starts a section
numbered zero.)

##  Appendix A References Section

You can use a bibliography generated by BibTeX as a .bbl file. BibTeX
documentation can be easily obtained at:
http://mirror.ctan.org/biblio/bibtex/contrib/doc/ The IEEEtran BibTeX style
support page is: http://www.michaelshell.org/tex/ieeetran/bibtex/

##  Appendix B Simple References

You can manually copy in the resultant .bbl file and set second argument of
$\backslash$begin to the number of references (used to reserve space for the
reference number labels box).

## References

  * [1] Mathematics Into Type. American Mathematical Society. [Online]. Available: https://www.ams.org/arc/styleguide/mit-2.pdf
  * [2] T. W. Chaundy, P. R. Barrett and C. Batey, The Printing of Mathematics. London, U.K., Oxford Univ. Press, 1954.
  * [3] F. Mittelbach and M. Goossens, The LaTeXCompanion, 2nd ed. Boston, MA, USA: Pearson, 2004.
  * [4] G. Grätzer, More Math Into LaTeX, New York, NY, USA: Springer, 2007.
  * [5] M. Letourneau and J. W. Sharp, AMS-StyleGuide-online.pdf, American Mathematical Society, Providence, RI, USA, [Online]. Available: http://www.ams.org/arc/styleguide/index.html
  * [6] H. Sira-Ramirez, “On the sliding mode control of nonlinear systems,” Syst. Control Lett., vol. 19, pp. 303–312, 1992.
  * [7] A. Levant, “Exact differentiation of signals with unbounded higher derivatives,” in Proc. 45th IEEE Conf. Decis. Control, San Diego, CA, USA, 2006, pp. 5585–5590. DOI: 10.1109/CDC.2006.377165.
  * [8] M. Fliess, C. Join, and H. Sira-Ramirez, “Non-linear estimation is easy,” Int. J. Model., Ident. Control, vol. 4, no. 1, pp. 12–27, 2008.
  * [9] R. Ortega, A. Astolfi, G. Bastin, and H. Rodriguez, “Stabilization of food-chain systems using a port-controlled Hamiltonian description,” in Proc. Amer. Control Conf., Chicago, IL, USA, 2000, pp. 2245–2249.

##  Appendix C Biography Section

If you have an EPS/PDF photo (graphicx package needed), extra braces are
needed around the contents of the optional argument to biography to prevent
the LaTeX parser from getting confused when it sees the complicated
$\backslash$includegraphics command within an optional argument. (You can
create your own custom macro containing the $\backslash$includegraphics
command to make things simpler here.)

If you include a photo:

|  Michael Shell Use $\backslash$begin{IEEEbiography} and then for the 1st
argument use $\backslash$includegraphics to declare and link the author photo.
Use the author name as the 3rd argument followed by the biography text.
---|---

If you will not include a photo:

John Doe Use $\backslash$begin{IEEEbiographynophoto} and the author name as
the argument followed by the biography text.
---