<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="9788793519138.xsl"?>
<book id="home" xmlns:xlink="http://www.w3.org/1999/xlink">
<bookinfo>
<title>Towards a Common Software/Hardware Methodology for Future Advanced Driver Assistance Systems</title>
<subtitle>The DESERVE Approach</subtitle>
<affiliation><emphasis role="strong">Editors</emphasis></affiliation>
<authorgroup>
<author><firstname>Guillermo</firstname>
<surname>Pay&#x00E1;-Vay&#x00E1;</surname>
</author>
</authorgroup>
<affiliation>Leibniz Universit&#x00E4;t Hannover, Germany</affiliation>
<authorgroup>
<author><firstname>Holger</firstname>
<surname>Blume</surname>
</author>
</authorgroup>
<affiliation>Leibniz Universit&#x00E4;t Hannover, Germany</affiliation>
<publisher>
<publishername>River Publishers</publishername>
</publisher>
<isbn>9788793519138</isbn>
</bookinfo>
<preface class="preface" id="preface01">
<title>RIVER PUBLISHERS SERIES IN TRANSPORT TECHNOLOGY</title>
<para><emphasis>Series Editors</emphasis><?lb?><emphasis role="strong">HAIM ABRAMOVICH</emphasis><?lb?><emphasis>Technion - Israel Institute of Technology</emphasis><?lb?><emphasis>Israel</emphasis></para>
<para><emphasis role="strong">THILO BEIN</emphasis><?lb?><emphasis>Fraunhofer LBF</emphasis><?lb?><emphasis>Germany</emphasis></para>
<para>Indexing: All books published in this series are submitted to Thomson Reuters Book Citation Index (BkCI), CrossRef and to Google Scholar.</para>
<para>The &#x0201C;River Publishers Series in Transport Technology&#x0201D; is a series of comprehensive academic and professional books which focus on theory and applications in the various disciplines within Transport Technology, namely Automotive and Aerospace. The series will serve as a multi-disciplinary resource linking Transport Technology with society. The book series fulfils the rapidly growing worldwide interest in these areas.</para>
<para>Books published in the series include research monographs, edited volumes, handbooks and textbooks. The books provide professionals, researchers, educators, and advanced students in the field with an invaluable insight into the latest research and developments.</para>
<para>Topics covered in the series include, but are by no means restricted to the following:</para>
<itemizedlist mark="bullet" spacing="normal">
<listitem><para>Automotive</para></listitem>
<listitem><para>Aerodynamics</para></listitem>
<listitem><para>Aerospace Engineering</para></listitem>
<listitem><para>Aeronautics</para></listitem>
<listitem><para>Multifunctional Materials</para></listitem>
<listitem><para>Structural Mechanics</para></listitem>
</itemizedlist>
<para>For a list of other books in this series, visit <ulink url="http://www.riverpublishers.com">www.riverpublishers.com</ulink></para>
</preface>
<preface class="preface" id="preface02">
<title>Preface</title>
<para>The European research project DESERVE (DEvelopment platform for Safe and Efficient dRiVE, 2012&#x02013;2015) had the aim of designing and developing a platform tool to cope with the continuously increasing complexity and the simultaneous need to reduce costs for future embedded Advanced Driver Assistance Systems (ADAS). For this purpose, the DESERVE platform profits from cross-domain software reuse, standardization of automotive software component interfaces, and easy but safety-compliant integration of heterogeneous modules. This enables the development of a new generation of ADAS applications, which challengingly combine different functions, sensors, actuators, hardware platforms, and Human Machine Interfaces (HMI).</para>
<para>This book provides a detailed overview of the different research activities conducted in the course of the DESERVE project. After introducing the aims of the DESERVE project in <link linkend="ch01">Chapter <xref linkend="ch1" remap="1"/></link>, selected achievements of the DESERVE project are presented in three different parts. <link linkend="part01">Part <xref linkend="part01" remap="I"/></link> is dedicated to the ADAS development platform developed during the DESERVE project.</para>
<itemizedlist mark="bullet" spacing="normal">
<listitem><para><link linkend="ch02">Chapter <xref linkend="ch2" remap="2"/></link> covers the methodology and concepts that are part of the generic DESERVE platform as the basis and key enabler for the development of new assistance systems. It describes the entire spectrum of aspects, e.g., modularity, interfaces, and standards, to be considered for the use of the DESERVE platform.</para></listitem>
<listitem><para><link linkend="ch03">Chapter <xref linkend="ch3" remap="3"/></link> describes the development of realistic models for driver behavior as part of the DESERVE tool-chain needed for the evaluation of complex ADAS systems and driver-vehicle-environment interactions. The modelling system was used to simulate two different driving scenarios.</para></listitem>
<listitem><para><link linkend="ch04">Chapter <xref linkend="ch4" remap="4"/></link> presents component based middleware, e.g., RTMaps and ADTF, for supporting the developer of complex systems with typical challenges like multi-sensor support, synchronization issues, and modularity. By means of different exemplary applications, in which modules like simulators or prototyping systems are connected to the middleware, the flexibility of the DESERVE tool-chain is demonstrated.</para></listitem>
<listitem><para><link linkend="ch05">Chapter <xref linkend="ch5" remap="5"/></link> describes a model-in-the-loop approach for tuning ADAS parameters. Using the AVL CAMEO tool, model-based design space exploration and validation of a complex ADAS function is performed.</para></listitem>
</itemizedlist>
<para>In <link linkend="part02">Part <xref linkend="part02" remap="II"/></link>, ADAS applications used as test functions in the DESERVE project are explained.</para>
<itemizedlist mark="bullet" spacing="normal">
<listitem><para><link linkend="ch06">Chapter <xref linkend="ch6" remap="6"/></link> presents an application of deep-learning techniques for semantic segmentation of camera images (i.e., Scene Labeling). After explaining the algorithmic basics, an FPGA-based implementation is presented and evaluated.</para></listitem>
<listitem><para><link linkend="ch07">Chapter <xref linkend="ch7" remap="7"/></link> covers a system coupling an FPGA-based signal processing architecture for MIMO radar with a PC-based ADTF data post-processing. The hardware-software combination maximizes processing performance and minimizes development time of complex systems.</para></listitem>
<listitem><para><link linkend="ch08">Chapter <xref linkend="ch8" remap="8"/></link> describes a design space exploration for online calibration of wide baseline stereo camera systems using sparse feature correspondences in stereo images. Challenges in hardware implementations of feature matching are presented and hardware-specific solutions are discussed.</para></listitem>
<listitem><para><link linkend="ch09">Chapter <xref linkend="ch9" remap="9"/></link> presents a first approach of arbitration and sharing vehicle control between driver and assistance system based on modelling vehicles and driver behavior and intentions. Fuzzy logic techniques are used to implement the control sharing and simulations allow testing of the systems.</para></listitem>
</itemizedlist>
<para><link linkend="part03">Part <xref linkend="part03" remap="III"/></link> covers the validation and evaluation of two exemplary applications of the DESERVE platform.</para>
<itemizedlist mark="bullet" spacing="normal">
<listitem><para><link linkend="ch10">Chapter <xref linkend="ch10" remap="10"/></link> aims at exploring effective design of Human Machine Interface (HMI). During the DESERVE project, in-vehicle HMI solutions for different functions were developed. The HMI design process for an exemplary function is described in this chapter.</para></listitem>
<listitem><para><link linkend="ch11">Chapter <xref linkend="ch11" remap="11"/></link> shows a prototype system for vehicle-in-the-loop testing of ADAS functions that additionally analyzes the energy efficiency of the prototyped system. Combined with multi-sensor simulation, a virtual environment for testing ADAS functions is provided.</para></listitem>
</itemizedlist>
<para>Further detailed information about the contributions of DESERVE can be found in the list of project deliverables referenced in each chapter.</para>
<para>This work was supported by the European Commission under the Artemis Joint Undertaking in the scope of the DESERVE project. We would like to thank all authors and co-authors for their excellent contributions. Special thanks to Matti Kutila for the efficient managing of the complete DESERVE project over three years. Further thanks to Martin Kunert who well-coordinated subprojects and who actively supported our work. Furthermore we want to thank the River Publishers Team, in particularly Mr. Mark de Jongh and Ms. Junko Nakajima for their great support.</para>
<para>We hope that you will enjoy reading this book.</para>
<blockquote role="flushright">
<para>Guillermo Pay&#x00E1; Vay&#x00E1;<?lb?>Holger Blume</para>
<para>March 22th, 2017<?lb?>Hannover (Germany)</para></blockquote>
</preface>
<preface class="preface" id="preface03">
<title>List of Contributors</title>
<para><emphasis role="strong">Abhishek Ravi,</emphasis> <emphasis>AVL List Gmbh, Austria</emphasis></para>
<para><emphasis role="strong">Andr&#x000E9; Rolfsmeier,</emphasis> <emphasis>dSpace GmbH, Germany</emphasis></para>
<para><emphasis role="strong">Andrea Saroldi,</emphasis> <emphasis>C.R.F. S.C.p.A , Italy</emphasis></para>
<para><emphasis role="strong">Angel Cuevas,</emphasis> <emphasis>CTAG &#x02013; Centro Tecnol&#x000F3;gico de Automoci&#x000F3;n de Galicia, Spain</emphasis></para>
<para><emphasis role="strong">Caterina Calefato,</emphasis> <emphasis>Unimore &#x02013; University of Modena and Reggio Emilia &#x02013; Italy</emphasis></para>
<para><emphasis role="strong">Chiara Ferrarini,</emphasis> <emphasis>Unimore &#x02013; University of Modena and Reggio Emilia &#x02013; Italy</emphasis></para>
<para><emphasis role="strong">Cl&#x000E9;ment Galko,</emphasis> <emphasis>Univ. Rouen, UNIROUEN, ESIGELEC, IRSEEM 76000 Rouen,</emphasis> <emphasis>France</emphasis></para>
<para><emphasis role="strong">David Gonz&#x000E1;lez,</emphasis> <emphasis>INRIA, France</emphasis></para>
<para><emphasis role="strong">Elisa Landini,</emphasis> <emphasis>RE:Lab srl, Italy</emphasis></para>
<para><emphasis role="strong">Eugen Schubert,</emphasis> <emphasis>Advanced Engineering Sensor Systems, Robert Bosch GmbH, Leonberg, Germany</emphasis></para>
<para><emphasis role="strong">Eva M. Garc&#x00ED;a Quinteiro,</emphasis> <emphasis>CTAG &#x02013; Centro Tecnol&#x000F3;gico de Automoci&#x000F3;n de Galicia, Spain</emphasis></para>
<para><emphasis role="strong">Fabio Tango,</emphasis> <emphasis>CRF &#x02013; Centro Ricerche Fiat, Italy</emphasis></para>
<para><emphasis role="strong">Fawzi Nashashibi,</emphasis> <emphasis>INRIA, France</emphasis></para>
<para><emphasis role="strong">Florian Giesemann,</emphasis> <emphasis>Institute of Microelectronic Systems, Leibniz Universit&#x000E4;t Hannover, Hannover, Germany</emphasis></para>
<para><emphasis role="strong">Frank Badst&#x000FC;bner,</emphasis> <emphasis>Infineon Technologies AG, Germany</emphasis></para>
<para><emphasis role="strong">Frank Meinl,</emphasis> <emphasis>Advanced Engineering Sensor Systems, Robert Bosch GmbH,</emphasis> <emphasis>Leonberg, Germany</emphasis></para>
<para><emphasis role="strong">Gideon Reade,</emphasis> <emphasis>ASL, U.K.</emphasis></para>
<para><emphasis role="strong">Guillermo Pay&#x000E1;-Vay&#x000E1;,</emphasis> <emphasis>Institute of Microelectronic Systems, Leibniz Universit&#x000E4;t Hannover, Hannover, Germany</emphasis></para>
<para><emphasis role="strong">Gwena&#x000EB;l Dunand,</emphasis> <emphasis>Intempora, France</emphasis></para>
<para><emphasis role="strong">Hans Michael Koegeler,</emphasis> <emphasis>AVL List Gmbh, Austria</emphasis></para>
<para><emphasis role="strong">Hariharan Narasimman,</emphasis> <emphasis>Univ. Rouen, UNIROUEN, ESIGELEC, IRSEEM 76000 Rouen,</emphasis> <emphasis>France</emphasis></para>
<para><emphasis role="strong">Holger Blume,</emphasis> <emphasis>Institute of Microelectronic Systems, Leibniz Universit&#x000E4;t Hannover, Hannover, Germany</emphasis></para>
<para><emphasis role="strong">Jens Klimke,</emphasis> <emphasis>Institute for Automotive Engineering, RWTH Aachen University, Steinbachstra&#x000DF;e 7, 52074 Aachen, Germany</emphasis></para>
<para><emphasis role="strong">Joshu&#x000E9; P&#x000E9;rez,</emphasis> <emphasis>INRIA, France</emphasis></para>
<para><emphasis role="strong">Lars Kr&#x000FC;ger,</emphasis> <emphasis>Daimler AG, Vision Enhancement, Ulm, Germany</emphasis></para>
<para><emphasis role="strong">Lutz Eckstein,</emphasis> <emphasis>Institute for Automotive Engineering, RWTH Aachen University, Steinbachstra&#x000DF;e 7, 52074 Aachen, Germany</emphasis></para>
<para><emphasis role="strong">Marga S&#x000E1;ez Tort,</emphasis> <emphasis>CTAG &#x02013; Centro Tecnol&#x000F3;gico de Automoci&#x000F3;n de Galicia, Spain</emphasis></para>
<para><emphasis role="strong">Martin Kunert,</emphasis> <emphasis>Advanced Engineering Sensor Systems, Robert Bosch GmbH,</emphasis> <emphasis>Leonberg, Germany</emphasis></para>
<para><emphasis role="strong">Matthias Limmer,</emphasis> <emphasis>Vision Enhancement, Daimler AG, Germany</emphasis></para> 
<para><emphasis role="strong">Matti Kutila,</emphasis> <emphasis>VTT Technical Research Center of Finland Ltd., Finland</emphasis></para>
<para><emphasis role="strong">Nereo Pallaro,</emphasis> <emphasis>Centro Ricerche Fiat, Italy</emphasis></para>
<para><emphasis role="strong">Nico Mentzer,</emphasis> <emphasis>Institute of Microelectronic Systems, Leibniz Universit&#x000E4;t Hannover,</emphasis> <emphasis>Hannover, Germany</emphasis></para>
<para><emphasis role="strong">Nora von Egloffstein,</emphasis> <emphasis>Daimler AG, Vision Enhancement, Ulm, Germany</emphasis></para>
<para><emphasis role="strong">Ralf K&#x000F6;del,</emphasis> <emphasis>Infineon Technologies AG, Germany</emphasis></para>
<para><emphasis role="strong">Roberto Montanari,</emphasis> <emphasis>RE:Lab srl, Italy</emphasis></para>
<para><emphasis role="strong">Romain Rossi,</emphasis> <emphasis>Univ. Rouen, UNIROUEN, ESIGELEC, IRSEEM 76000 Rouen,</emphasis> <emphasis>France</emphasis></para>
<para><emphasis role="strong">Vicente Milan&#x000E9;s,</emphasis> <emphasis>INRIA, France</emphasis></para>
<para><emphasis role="strong">Werner R. Ritter,</emphasis> <emphasis>Vision Enhancement, Daimler AG, Germany</emphasis></para>
<para><emphasis role="strong">Wilhelm Maurer,</emphasis> <emphasis>Infineon Technologies AG, Germany</emphasis></para>
<para><emphasis role="strong">Xavier Savatier,</emphasis> <emphasis>Univ. Rouen, UNIROUEN, ESIGELEC, IRSEEM 76000 Rouen,</emphasis> <emphasis>France</emphasis></para>
</preface>
<preface class="preface" id="preface04">
<title>List of Figures</title>
<table-wrap position="float" id="T1">
<table cellspacing="5" cellpadding="5" frame="hsides" rules="groups">
<tbody>
<tr><td valign="top" width="15%"><emphasis role="strong"><link linkend="F1-1">Figure 1.1</link></emphasis></td><td valign="top" align="left">The DESERVE V-shape development process.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F1-2">Figure 1.2</link></emphasis></td><td valign="top" align="left">DESERVE platform concept for speeding up the ADAS function development time.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F2-1">Figure 2.1</link></emphasis></td><td valign="top" align="left">The DESERVE Platform &#x02013; the enabler for next generation ADAS systems.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F2-2">Figure 2.2</link></emphasis></td><td valign="top" align="left">DESERVE platform enabled design and development process.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F2-3">Figure 2.3</link></emphasis></td><td valign="top" align="left">ADAS development process.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F2-4">Figure 2.4</link></emphasis></td><td valign="top" align="left">DESERVE platform framework.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F2-5">Figure 2.5</link></emphasis></td><td valign="top" align="left">Perception platform functional architecture.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F2-6">Figure 2.6</link></emphasis></td><td valign="top" align="left">Application platform functional architecture.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F2-7">Figure 2.7</link></emphasis></td><td valign="top" align="left">DESERVE IWI platform.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F2-8">Figure 2.8</link></emphasis></td><td valign="top" align="left">DESERVE platform (e.g. for development Level 2 &#x02013; rapid prototyping system based on mixed PC and embedded controller framework).</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F2-9">Figure 2.9</link></emphasis></td><td valign="top" align="left">DESERVE approach &#x02013; use of common platform for all ADAS modules.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F2-10">Figure 2.10</link></emphasis></td><td valign="top" align="left">DESERVE platform architecture.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F2-11">Figure 2.11</link></emphasis></td><td valign="top" align="left">Overview on the principles of virtual interaction using the AUTOSAR.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F2-12">Figure 2.12</link></emphasis></td><td valign="top" align="left">Message box principle for intra-unit communication.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F2-13">Figure 2.13</link></emphasis></td><td valign="top" align="left">AUTOSAR application software concept.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F2-14">Figure 2.14</link></emphasis></td><td valign="top" align="left">Camera Interface (CIF) overview.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F2-15">Figure 2.15</link></emphasis></td><td valign="top" align="left">Module interaction implies changes in system behavior.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F2-16">Figure 2.16</link></emphasis></td><td valign="top" align="left">SEooC safety mechanisms.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F2-17">Figure 2.17</link></emphasis></td><td valign="top" align="left">Top level safety requirements.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F2-18">Figure 2.18</link></emphasis></td><td valign="top" align="left">Fault tolerant time interval (FTTI) definition.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F2-19">Figure 2.19</link></emphasis></td><td valign="top" align="left">Generic elements of safe computation hardware platform.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F3-1">Figure 3.1</link></emphasis></td><td valign="top" align="left">Primary driving tasks which are implemented in the driver model within the DESERVE project separated by longitudinal and lateral control.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F3-2">Figure 3.2</link></emphasis></td><td valign="top" align="left">Manoeuvres which are implemented in the driver model within the DESERVE project.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F3-3">Figure 3.3</link></emphasis></td><td valign="top" align="left">Driver model structure in the context of environment and vehicle: the structure includes perception, processing and action blocks including its functional modules and the regarded dynamic information flow.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F3-4">Figure 3.4</link></emphasis></td><td valign="top" align="left">Process variables for the four basic driving motivations <emphasis>free moving</emphasis>, <emphasis>following</emphasis>, <emphasis>lane keeping</emphasis> and <emphasis>standing</emphasis>.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F3-5">Figure 3.5</link></emphasis></td><td valign="top" align="left">Process variables for the three manoeuvres <emphasis>lane change</emphasis>, <emphasis>stopping</emphasis> and <emphasis>Safe Passing</emphasis>.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F3-6">Figure 3.6</link></emphasis></td><td valign="top" align="left">Sketch of the parameter blocks (brown) and model blocks (blue) of the driver model.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F3-7">Figure 3.7</link></emphasis></td><td valign="top" align="left">Distribution of lower following time gaps for real drivers (blue bars) and the modelled distribution dependent on a normal distributed <emphasis>need for safety</emphasis> parameter (red line).</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F3-8">Figure 3.8</link></emphasis></td><td valign="top" align="left">Stateflow model for a two-phase lane change including decision (A), progress control (B) and sequence control (C).</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F3-9">Figure 3.9</link></emphasis></td><td valign="top" align="left">Trajectories (velocity over x- and y-position) for left turn including the simulation results for different parameter sets. The real driver data is measured on one intersection with 136 different drivers during day time.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F4-1">Figure 4.1</link></emphasis></td><td valign="top" align="left">ADAS function requires many different type of sensor.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F4-2">Figure 4.2</link></emphasis></td><td valign="top" align="left">Synchronisation issues.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F4-3">Figure 4.3</link></emphasis></td><td valign="top" align="left">The RTMaps Studio.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F4-4">Figure 4.4</link></emphasis></td><td valign="top" align="left">Components and interfaces.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F4-5">Figure 4.5</link></emphasis></td><td valign="top" align="left">Inspecting data with the data viewer.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F4-6">Figure 4.6</link></emphasis></td><td valign="top" align="left">Developing a new component.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F4-7">Figure 4.7</link></emphasis></td><td valign="top" align="left">dSPACE MicroAutobox and RTMaps Bridge.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F4-8">Figure 4.8</link></emphasis></td><td valign="top" align="left">ProSivic working together with RTMaps.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F5-1">Figure 5.1</link></emphasis></td><td valign="top" align="left">Separation of software and tuning parameters in a control unit.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F5-2">Figure 5.2</link></emphasis></td><td valign="top" align="left">History of powertrain tuning (calibration).</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F5-3">Figure 5.3</link></emphasis></td><td valign="top" align="left">Illustration of a generalized development environment and manual tuning process.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F5-4">Figure 5.4</link></emphasis></td><td valign="top" align="left">Model-based tuning task illustrated.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F5-5">Figure 5.5</link></emphasis></td><td valign="top" align="left">Velocity profiles for a sample test run using the control function.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F5-6">Figure 5.6</link></emphasis></td><td valign="top" align="left">Function developed using IPG carmaker and MATLAB simulink.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F5-7">Figure 5.7</link></emphasis></td><td valign="top" align="left">Function overview.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F5-8">Figure 5.8</link></emphasis></td><td valign="top" align="left">Illustration of the kinematic variables A_MAX and J_MAX.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F5-9">Figure 5.9</link></emphasis></td><td valign="top" align="left">Illustration of the design variable (variation) J_HOR.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F5-10">Figure 5.10</link></emphasis></td><td valign="top" align="left">Key performance indicators.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F5-11">Figure 5.11</link></emphasis></td><td valign="top" align="left">IPG Carmaker test environment.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F5-12">Figure 5.12</link></emphasis></td><td valign="top" align="left">Test run overview illustrating the work flow.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F5-13">Figure 5.13</link></emphasis></td><td valign="top" align="left">Left image illustrates the test preparation window while the right image illustrates the test run window.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F5-14">Figure 5.14</link></emphasis></td><td valign="top" align="left">Checking for outliers in the measured variables.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F5-15">Figure 5.15</link></emphasis></td><td valign="top" align="left">Check of DoE design and the boundaries of variation parameters.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F5-16">Figure 5.16</link></emphasis></td><td valign="top" align="left">Figure depicting the quality of empirical modeling.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F5-17">Figure 5.17</link></emphasis></td><td valign="top" align="left">Intersection plot highlighting the influence of each variation on the output variables and their interaction.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F5-18">Figure 5.18</link></emphasis></td><td valign="top" align="left">Optimization setting window in AVL CAMEO.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F5-19">Figure 5.19</link></emphasis></td><td valign="top" align="left">Trade-off plot between comfort and speed.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F5-20">Figure 5.20</link></emphasis></td><td valign="top" align="left">Sporty mode vs comfort mode.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F5-21">Figure 5.21</link></emphasis></td><td valign="top" align="left">Verification plot to see how well the measured results from the verification run fit the model results.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F5-22">Figure 5.22</link></emphasis></td><td valign="top" align="left">Digitized road used for the validation run.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F5-23">Figure 5.23</link></emphasis></td><td valign="top" align="left">Measurements comparison when run on comfort mode (in blue) and sporty mode (in red).</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F6-1">Figure 6.1</link></emphasis></td><td valign="top" align="left">Model of an artificial neuron.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F6-2">Figure 6.2</link></emphasis></td><td valign="top" align="left">Exemplary activation functions used in neural networks.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F6-3">Figure 6.3</link></emphasis></td><td valign="top" align="left">Example of a fragmentation after a 2 &#x000D7; 2 pooling. The na&#x00EF;ve approach would only produce the bright pixels, while an overlapping pooling produces all other possible pixels (purple, green, and blue). These pixels must be reordered to be able to correctly continue with the forward propagation of the neural network.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F6-4">Figure 6.4</link></emphasis></td><td valign="top" align="left">The complete processing chain from input image to a scene labeled image is displayed. After building an image pyramid of 3 layers and the local normalization every scale is fed to its own processing chain. This produces 6 class membership probability maps. They can be interpreted and augmented as seen in the output image.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F6-5">Figure 6.5</link></emphasis></td><td valign="top" align="left">The image pyramid construction layer produces 3 scales that are locally normalized in 15 &#x000D7; 15 windows. Every scale is propagated independently. There are in total 2 convolution layers with 16 &#x000D7; 7 &#x000D7; 7 filter kernels using the ReLU activation function. After activation a 2 &#x000D7; 2 max-pooling is performed followed by a fragmentation in the first pooling layer. A second fragmentation is not necessary since the second pooling layer is followed by a defragmentation. The small scaled feature maps are sampled up and fed to a classification layer, being a 6 &#x000D7; 1 &#x000D7; 1 convolution layer. Finally, a pixel wise softmax is applied.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F6-6">Figure 6.6</link></emphasis></td><td valign="top" align="left">Displayed are the learn curves of three different network topologies. Each topology was trained three times and the learn curves were averaged. The averaged learn curves are displayed as solid lines while the standard deviation for 50 epochs is displayed as the area around the lines.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F7-1">Figure 7.1</link></emphasis></td><td valign="top" align="left">FMCW ramp waveform shown as frequency over time f(t). The solid line represents the transmitted signal (TX) while the dashed line is the received signal (RX).</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F7-2">Figure 7.2</link></emphasis></td><td valign="top" align="left">Chirp-sequence modulation.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F7-3">Figure 7.3</link></emphasis></td><td valign="top" align="left">Possible MIMO antenna array design: The physical receiver array (blue) is extended by several virtual antennas (red squares) due to the second transmitter TX 2.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F7-4">Figure 7.4</link></emphasis></td><td valign="top" align="left">CA-CFAR sliding window implementation.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F7-5">Figure 7.5</link></emphasis></td><td valign="top" align="left">Rank-only OS-CFAR implementation.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F7-6">Figure 7.6</link></emphasis></td><td valign="top" align="left">Additive white Gaussian noise model.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F7-7">Figure 7.7</link></emphasis></td><td valign="top" align="left">Histogram of a noise measurement showing the chi-squared distribution before and after NCI.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F7-8">Figure 7.8</link></emphasis></td><td valign="top" align="left">Uniform linear antenna array with spacing <emphasis>d</emphasis> and resulting steering vector <emphasis>v</emphasis>(&#x003B1;).</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F7-9">Figure 7.9</link></emphasis></td><td valign="top" align="left">Architecture of a streaming hardware accelerator.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F7-10">Figure 7.10</link></emphasis></td><td valign="top" align="left">Radix-2 FFT implementation based on a multi-path delay commutator (MDC) pipeline.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F7-11">Figure 7.11</link></emphasis></td><td valign="top" align="left">Radix-2 FFT implementation based on a SDF pipeline.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F7-12">Figure 7.12</link></emphasis></td><td valign="top" align="left">Effects of different word lengths on the amount of quantization noise.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F7-13">Figure 7.13</link></emphasis></td><td valign="top" align="left">Architecture of the rank-only OS-CFAR accelerator.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F7-14">Figure 7.14</link></emphasis></td><td valign="top" align="left">Resource usage against number of channels for a constant window size (128 cells).</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F7-15">Figure 7.15</link></emphasis></td><td valign="top" align="left">Resource usage against window size for different number of channels.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F8-1">Figure 8.1</link></emphasis></td><td valign="top" align="left">Algorithmic overview. Input of the processing chain is a stereo image pair, in which sparse pixel correspondences are extracted for online camera calibration. After the calibration, rectification is performed as a preprocessing step for disparity estimation.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F8-2">Figure 8.2</link></emphasis></td><td valign="top" align="left">Left (<emphasis>top</emphasis>) and right (<emphasis>bottom</emphasis>) image from a stereo camera system showing detected SIFT-image features. Detected feature points of the left/right image are displayed in red/green, matches are displayed in blue. Scale and rotation of the SIFT-features are illustrated by the circle properties.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F8-3">Figure 8.3</link></emphasis></td><td valign="top" align="left">Detection of edges and corners by image gradients. The blue circle shows a possible feature point, surrounded by a local neighborhood. (a) Low image gradients in two spatial directions represent texture free image areas. (b) A high image gradient in one spatial direction indicates a possible edge, (c) in two spatial directions a possible corner.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F8-4">Figure 8.4</link></emphasis></td><td valign="top" align="left">Intensity comparisons of pixel, which are located on a Bresenham Circle. The central pixel is determined as a corner if a certain number of continuous pixel intensities is brighter or darker than the central pixel. This is combined with an adoptable threshold to avoid instabilities.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F8-5">Figure 8.5</link></emphasis></td><td valign="top" align="left">Detection of corners of different image scales. With strongly different object sizes in the image, a corresponding corner is not detectable (red circle), but by a repeated image scaling.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F8-6">Figure 8.6</link></emphasis></td><td valign="top" align="left">Blob detector. The detected blobs are displayed as red circles. The blob&#x02019;s size is displayed as the diameter of the circle.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F8-7">Figure 8.7</link></emphasis></td><td valign="top" align="left">Blob detection based on circular image region for a scene with a large viewpoint change. The region on which the blob feature extraction is based only partially covers the corresponding region and thus, will lead to non-matching image features.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F8-8">Figure 8.8</link></emphasis></td><td valign="top" align="left">Affine-Invariant Interest Point Detection. The circular point neighborhood is replaced with an ellipse in order to achieve independent orthogonal varying detection scales for interest point detection. Before applying a detection algorithm, the local neighborhood is affine normalized, which results in a circular neighborhood and a transformed image patch.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F8-9">Figure 8.9</link></emphasis></td><td valign="top" align="left">Sampling grids for generating different descriptors: (a) SIFT, (b) Shape Context, (c) DAISY.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F8-10">Figure 8.10</link></emphasis></td><td valign="top" align="left">Sampling pattern. (a) BRISK descriptor, (b) FREAK descriptor. Sampling patterns define a set of sampling locations (blue circles), of whose image information is smoothed with spatial-dependent filter kernels (red circles). Out of the sampling pattern the sampling pairs for the binary tests for the descriptor generation are selected.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F8-11">Figure 8.11</link></emphasis></td><td valign="top" align="left">Two variations of sampling pairs of the FREAK descriptor. A fixed combination of sampling locations is selected as descriptor specific sampling pairs, with which the binary tests for the descriptor generation is performed.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F8-12">Figure 8.12</link></emphasis></td><td valign="top" align="left">Rotation invariance is achieved by rotating the sampling grid by the main orientation before extracting the descriptor.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F8-13">Figure 8.13</link></emphasis></td><td valign="top" align="left">Scale-space. An input image is down sampled to achieve multiple scales of the image. On each scale, feature candidates are found, whereas repeated candidates are removed. The scale with the highest information content for the feature candidate is selected as the feature scale.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F8-14">Figure 8.14</link></emphasis></td><td valign="top" align="left">Multi-scale approach for blob detection. The same blob with differing scales in two images and the related response (normalized Laplacian of Gaussian) over scales is shown. The scale with the highest information content is chosen as a blob.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F8-15">Figure 8.15</link></emphasis></td><td valign="top" align="left">Image pyramid. The scale-space is constructed by different octaves, which consists of multiple intervals. Each interval indicates a specific variant of the used Gaussian kernel. In order to approximate the Laplace scale-space, the Difference of Gaussian is determined.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F8-16">Figure 8.16</link></emphasis></td><td valign="top" align="left">Generation of feature descriptor. The local neighborhood is subdivided into independent subregions, which are combined into individual histograms. After a weighting and smoothing, the feature descriptor is generated by concatenating the single histograms to as a resulting feature vector.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F8-17">Figure 8.17</link></emphasis></td><td valign="top" align="left">Extracted SIFT-features with exemplary geometry-based restriction of matching candidates. By restricting possible matching candidates geometrically, the problem size is significantly reduced.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F8-18">Figure 8.18</link></emphasis></td><td valign="top" align="left">Exemplary results of feature matching. The left and right stereo images are overlaid; features of the left/right image are displayed in red/green. Correct matches are depicted in yellow; false matches are shown in blue. The upper image shows the results of the initial brute force matching, whereas the lower image shows the results of the enhanced matching process.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F8-19">Figure 8.19</link></emphasis></td><td valign="top" align="left">Verification of match positions with disparity maps. For rectified images, the horizontal difference of feature positions of a corresponding pixel pair equals the related value of the disparity map. With this technique, it is possible to validate resulting matching lists for datasets with ground truth disparity maps.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F8-20">Figure 8.20</link></emphasis></td><td valign="top" align="left">Comparison of the resulting SIFT-features of the left input image for 12 bpp images and 8 bpp images. In the 12 bpp input image, an overall number of 1,069 features have been detected, whereas in the 8 bpp input image 1,056 features have been determined. A subset of 1,045 features (97.8%) is identical in both images (blue). There are 14 (1.3%) exclusive 8 bpp feature positions (red) detected and 24 (2.2%) exclusive 12 bpp feature positions (orange).</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F8-21">Figure 8.21</link></emphasis></td><td valign="top" align="left">Comparison of the resulting pixel correspondences for the 8 bpp and 12 bpp input images. In the 12 bpp input image, an overall number of 611 pixel pairs has been detected, whereas in the 8 bpp input image 608 correspondences have been determined. A subset of 587 pairs (96.1%) is identical in both images (blue lines). Furthermore, there are 23 (3.8%) exclusive 8 bpp pairs (red lines) and 24 (3.9%) exclusive 12 bpp pixel correspondences (orange lines).</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F8-22">Figure 8.22</link></emphasis></td><td valign="top" align="left">Histogram of random generated SIFT-descriptor distances of an idealized NNB feature matching. The right distribution with mean &#x003BC;<subscript>2</subscript> displays the distances of wrong matches, whereas the left distribution with mean &#x003BC;<subscript>1</subscript> illustrates the correct matches.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F8-23">Figure 8.23</link></emphasis></td><td valign="top" align="left">Histogram of descriptor distances for a NNB SIFT-feature matching with the extracted threshold according to Otsu. Distances of correct/wrong matches are displayed in blue/orange. The complete distribution is shown in purple.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F8-24">Figure 8.24</link></emphasis></td><td valign="top" align="left">Histograms of descriptor distances for different NNB feature matching case studies with the extracted threshold according to Otsu. Distances of correct/wrong matches are displayed in blue/orange. The complete distribution is shown in purple. Due to different descriptors and resulting matching distances, various axis scales for clear presentation are used.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F8-25">Figure 8.25</link></emphasis></td><td valign="top" align="left">Exemplary histogram for the distribution of matching candidates for the geometry-based feature matching (see <link linkend="T8-4">Table <xref linkend="T8-4" remap="8.4"/></link>). The average number of candidates is 7 candidates per matching event.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F8-26">Figure 8.26</link></emphasis></td><td valign="top" align="left">Rates of disparity verified pixel correspondences for different offsets &#x1D700; and three matching methods. For all methods, the rate of correct matches runs into saturation. The NNB matching method performs best over all offsets &#x1D700;. (TB: Threshold-Based Matching; NNB: Nearest-Neighbor-Based Matching; NNDR: Nearest-Neighbor Distance Ratio Matching).</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F8-27">Figure 8.27</link></emphasis></td><td valign="top" align="left">Break down of SIFT-feature extraction into four algorithmic steps and relating qualitatively quota of control complexity and complexity (i.e., regular arithmetic).</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F9-1">Figure 9.1</link></emphasis></td><td valign="top" align="left">ACC Systems.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F9-2">Figure 9.2</link></emphasis></td><td valign="top" align="left">Stages on the longitudinal control of the vehicle.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F9-3">Figure 9.3</link></emphasis></td><td valign="top" align="left">CSW system.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F9-4">Figure 9.4</link></emphasis></td><td valign="top" align="left">TSR system.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F9-5">Figure 9.5</link></emphasis></td><td valign="top" align="left">LDW system.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F9-6">Figure 9.6</link></emphasis></td><td valign="top" align="left">BSD/LCA system.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F9-7">Figure 9.7</link></emphasis></td><td valign="top" align="left">Top view of a parking assistance system.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F9-8">Figure 9.8</link></emphasis></td><td valign="top" align="left">Aided park system.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F9-9">Figure 9.9</link></emphasis></td><td valign="top" align="left">Automatic park systems.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F9-10">Figure 9.10</link></emphasis></td><td valign="top" align="left">DESERVE platform.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F9-11">Figure 9.11</link></emphasis></td><td valign="top" align="left">DESERVE platform framework.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F9-12">Figure 9.12</link></emphasis></td><td valign="top" align="left">SAE J3016 standards of driving automation levels for on-road vehicles.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F9-13">Figure 9.13</link></emphasis></td><td valign="top" align="left">Arbitration and control sharing application: General diagram.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F10-1">Figure 10.1</link></emphasis></td><td valign="top" align="left">Total number of fatalities in road traffic accidents in Europe.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F10-2">Figure 10.2</link></emphasis></td><td valign="top" align="left">Holistic HMI concept, that shows: IPC display 12&#x0201D;; SW commands; left stalk commands; buttons; knobs.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F10-3">Figure 10.3</link></emphasis></td><td valign="top" align="left">Holistic HMI layout.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F10-4">Figure 10.4</link></emphasis></td><td valign="top" align="left">Holistic HMI layout with the user menu in the central area.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F10-5">Figure 10.5</link></emphasis></td><td valign="top" align="left">Holistic HMI layout with the lane change assist in the central area.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F10-6">Figure 10.6</link></emphasis></td><td valign="top" align="left">Holistic HMI layout with the rear view camera in the central area.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F10-7">Figure 10.7</link></emphasis></td><td valign="top" align="left">Holistic HMI layout with the night vision system in the central area.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F10-8">Figure 10.8</link></emphasis></td><td valign="top" align="left">(A-B-C-D) Holistic HMI left area with: lane departure warning, collision warning, Rear approaching vehicle system, pedestrian safety system.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F10-9">Figure 10.9</link></emphasis></td><td valign="top" align="left">Immersive HMI concept shows: 3,5&#x0201D; IPC display; touch display 8,5&#x0201D; in the dashboard; head-up display for the windscreen; SW commands; left stalk commands; buttons; knobs.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F10-10">Figure 10.10</link></emphasis></td><td valign="top" align="left">Immersive HMI concept: instrument panel cluster display.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F10-11">Figure 10.11</link></emphasis></td><td valign="top" align="left">Immersive HMI concept: dashboard display.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F10-12">Figure 10.12</link></emphasis></td><td valign="top" align="left">Immersive HMI concept: head-up display details.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F10-13">Figure 10.13</link></emphasis></td><td valign="top" align="left">Smart HMI concept.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F10-14">Figure 10.14</link></emphasis></td><td valign="top" align="left">Smart HMI concept: Nomadic device with night vision system.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F10-15">Figure 10.15</link></emphasis></td><td valign="top" align="left">Radar chart summarizing HMI evaluation for the 6 HMI concepts. Bis concepts are concept 1, 2, 3 with implicit drowsiness.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F10-16">Figure 10.16</link></emphasis></td><td valign="top" align="left">Proposed change to create the final DESERVE HMI concept.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F10-17">Figure 10.17</link></emphasis></td><td valign="top" align="left">Final DESERVE HMI concept: warning area.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F10-18">Figure 10.18</link></emphasis></td><td valign="top" align="left">Final DESERVE HMI concept: rear view camera.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F10-19">Figure 10.19</link></emphasis></td><td valign="top" align="left">Final DESERVE HMI concept: navigation.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F11-1">Figure 11.1</link></emphasis></td><td valign="top" align="left">Overview of the SERBER VeHIL system.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F11-2">Figure 11.2</link></emphasis></td><td valign="top" align="left">Block diagram of the SERBER system.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F11-3">Figure 11.3</link></emphasis></td><td valign="top" align="left">Sample video output of Pro-Sivic.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F11-4">Figure 11.4</link></emphasis></td><td valign="top" align="left">RTMAPS diagram of the system (extract).</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F11-5">Figure 11.5</link></emphasis></td><td valign="top" align="left">Mobileye 560 aftermarket vision-based ADAS.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F11-6">Figure 11.6</link></emphasis></td><td valign="top" align="left">RTMAPS diagram of the V2V task.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F11-7">Figure 11.7</link></emphasis></td><td valign="top" align="left">The Biocar test vehicle on the Horiba chassis dynamometer.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F11-8">Figure 11.8</link></emphasis></td><td valign="top" align="left">Overview of the urban environment in Pro-Sivic.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F11-9">Figure 11.9</link></emphasis></td><td valign="top" align="left">Inner view of the vehicle.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F11-10">Figure 11.10</link></emphasis></td><td valign="top" align="left">Lane departure warning triggered.</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="F11-11">Figure 11.11</link></emphasis></td><td valign="top" align="left">V2V Communication HMI.</td></tr>
</tbody>
</table>
</table-wrap>
</preface>
<preface class="preface" id="preface05">
<title>List of Tables</title>
<table-wrap position="float" id="T1">
<table cellspacing="5" cellpadding="5" frame="hsides" rules="groups">
<tbody>
<tr><td valign="top" width="15%"><emphasis role="strong"><link linkend="T1-1">Table 1.1</link></emphasis></td><td valign="top" align="left">Scientific and technical objectives</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="T5-1">Table 5.1</link></emphasis></td><td valign="top" align="left">Range of variation parameters used in the tuning task</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="T5-2">Table 5.2</link></emphasis></td><td valign="top" align="left">Variations values for comfort and sporty mode</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="T6-1">Table 6.1</link></emphasis></td><td valign="top" align="left">The confusion matrix of topology 3-2-32 and the respective FNR, FPR and IU for each class. The classes are background (Bg), road (Rd), vehicle (Veh), sky, vulnerable road users (VRU) and infrastructure (Inf). Each cell shows the percentage (from all pixels in the dataset) of actual class (row) predicted as class (column)</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="T6-2">Table 6.2</link></emphasis></td><td valign="top" align="left">Displayed are the measures Accuracy (ACC), mean Intersection over Union (mIU), Matthews Correlation Coefficient (MCC) and mean False Negative Rate (mFNR) for 3 topologies</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="T6-3">Table 6.3</link></emphasis></td><td valign="top" align="left">Input image sizes for three different scales in the exemplary convolutional neural network</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="T6-4">Table 6.4</link></emphasis></td><td valign="top" align="left">Number of operations for the exemplary convolutional neural network</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="T6-5">Table 6.5</link></emphasis></td><td valign="top" align="left">Comparison of different implementations of convolutional neural networks on different platforms</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="T7-1">Table 7.1</link></emphasis></td><td valign="top" align="left">Resource usage of different pipelined FFT implementations</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="T8-1">Table 8.1</link></emphasis></td><td valign="top" align="left">Overview of feature detectors</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="T8-2">Table 8.2</link></emphasis></td><td valign="top" align="left">Overview of feature descriptors</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="T8-3">Table 8.3</link></emphasis></td><td valign="top" align="left">Numbers of extracted SIFT-features and detected matches for 8 bpp input images and 12 bpp images. The number of the geometry-based (GB) nearest-neighbor distance ratio matches (NNDR) drops significantly but ensures a high explicitness of matches. The algorithmic parameters of the SIFT-feature extraction of the two test cases are adjusted in order to extract a similar number of features, which lead to an identical number of verified matches</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="T8-4">Table 8.4</link></emphasis></td><td valign="top" align="left">Results for a SIFT-feature matching for a global matching and a geometry-based feature matching. The window size for the geometry-based feature matching is +/<span style="margin-left:0.3em" class="thinspace"></span> -<span style="margin-left:0.3em" class="thinspace"></span>4 pixel in y-direction and +100/<span style="margin-left:0.3em" class="thinspace"></span> -<span style="margin-left:0.3em" class="thinspace"></span>4 pixel in x-direction</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="T8-5">Table 8.5</link></emphasis></td><td valign="top" align="left">Results of disparity verified feature correspondences for different combinations of global and spatial restriction matching methods. In addition to a high rate of correct matches, a minimal number of pixel correspondences has to be given for a reliable subsequent image processing. The total numbers of detected matches for selected algorithmic combinations are given in brackets. The number of correct matches and wrong matches do not result in 100% because of missing values in the ground truth disparity maps. Those values are skipped for evaluation</td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="T8-6">Table 8.6</link></emphasis></td><td valign="top" align="left">Overview of existing systems for SIFT-feature extraction</td></tr>
</tbody>
</table>
</table-wrap>
</preface>
<preface class="preface" id="preface06">
<title>List of Abbreviations</title>
<table-wrap position="float">
<table cellspacing="5" cellpadding="5" frame="hsides" rules="groups">
<tbody>
<tr>
<td valign="top" align="left">ABS</td>
<td valign="top" align="left">Anti-lock Breaking System</td>
</tr>
<tr>
<td valign="top" align="left">ACC</td>
<td valign="top" align="left">Adaptive Cruise Control</td>
</tr>
<tr>
<td valign="top" align="left">ADAS</td>
<td valign="top" align="left">Advanced Driver Assistance Systems</td>
</tr>
<tr>
<td valign="top" align="left">ADC</td>
<td valign="top" align="left">Analog-to-digital converter</td>
</tr>
<tr>
<td valign="top" align="left">AEB</td>
<td valign="top" align="left">Automatic/Autonomous Emergency Braking</td>
</tr>
<tr>
<td valign="top" align="left">AR</td>
<td valign="top" align="left">Autoregressive</td>
</tr>
<tr>
<td valign="top" align="left">ASIC</td>
<td valign="top" align="left">Application-Specific Integrated Circuit</td>
</tr>
<tr>
<td valign="top" align="left">ASIP</td>
<td valign="top" align="left">Application-Specific Instruction-Set Processor</td>
</tr>
<tr>
<td valign="top" align="left">avg</td>
<td valign="top" align="left">Average</td>
</tr>
<tr>
<td valign="top" align="left">BASt</td>
<td valign="top" align="left">German Federal Highway Research Institute</td>
</tr>
<tr>
<td valign="top" align="left">bpp</td>
<td valign="top" align="left">Bit per pixel</td>
</tr>
<tr>
<td valign="top" align="left">BRIEF</td>
<td valign="top" align="left">Binary Robust Independent Elementary Features</td>
</tr>
<tr>
<td valign="top" align="left">BRISK</td>
<td valign="top" align="left">Binary Robust Invariant Scalable Keypoints</td>
</tr>
<tr>
<td valign="top" align="left">BSD</td>
<td valign="top" align="left">Blind Spot Detection</td>
</tr>
<tr>
<td valign="top" align="left">CA-CFAR</td>
<td valign="top" align="left">Cell-averaging constant false alarm rate</td>
</tr>
<tr>
<td valign="top" align="left">CAN Bus</td>
<td valign="top" align="left">Controller Area Network</td>
</tr>
<tr>
<td valign="top" align="left">CDMA</td>
<td valign="top" align="left">Code division multiple access</td>
</tr>
<tr>
<td valign="top" align="left">CenSurE</td>
<td valign="top" align="left">Center Surround Extremas</td>
</tr>
<tr>
<td valign="top" align="left">CFAR</td>
<td valign="top" align="left">Constant false alarm rate</td>
</tr>
<tr>
<td valign="top" align="left">CM4SL</td>
<td valign="top" align="left">Carmaker for simulink</td>
</tr>
<tr>
<td valign="top" align="left">CMbB</td>
<td valign="top" align="left">Collision Mitigation by Braking</td>
</tr>
<tr>
<td valign="top" align="left">CMOS</td>
<td valign="top" align="left">Complementary Metal-Oxide-Semiconductor</td>
</tr>
<tr>
<td valign="top" align="left">CNN</td>
<td valign="top" align="left">Convolutional Neural Network</td>
</tr>
<tr>
<td valign="top" align="left">COR</td>
<td valign="top" align="left">Customized Output Range</td>
</tr>
<tr>
<td valign="top" align="left">CPU</td>
<td valign="top" align="left">Central Processing Unit</td>
</tr>
<tr>
<td valign="top" align="left">CRF</td>
<td valign="top" align="left">Conditional Random Field</td>
</tr>
<tr>
<td valign="top" align="left">CUT</td>
<td valign="top" align="left">Cell under test</td>
</tr>
<tr>
<td valign="top" align="left">DAISY</td>
<td valign="top" align="left">Name of a feature descriptor</td>
</tr>
<tr>
<td valign="top" align="left">DAS</td>
<td valign="top" align="left">Driver assistance systems</td>
</tr>
<tr>
<td valign="top" align="left">DBC</td>
<td valign="top" align="left">data base CAN</td>
</tr>
<tr>
<td valign="top" align="left">DIF</td>
<td valign="top" align="left">Decimation-in-frequency</td>
</tr>
<tr>
<td valign="top" align="left">DMA</td>
<td valign="top" align="left">driving monitoring automotive</td>
</tr>
<tr>
<td valign="top" align="left">DOA</td>
<td valign="top" align="left">Direction of arrival</td>
</tr>
<tr>
<td valign="top" align="left">DoE</td>
<td valign="top" align="left">Design of Experiment</td>
</tr>
<tr>
<td valign="top" align="left">DoG</td>
<td valign="top" align="left">Difference of Gaussian</td>
</tr>
<tr>
<td valign="top" align="left">DRAM</td>
<td valign="top" align="left">Dynamic random-access memory</td>
</tr>
<tr>
<td valign="top" align="left">ECU</td>
<td valign="top" align="left">Electronic Control Unit</td>
</tr>
<tr>
<td valign="top" align="left">ESC</td>
<td valign="top" align="left">Electronic Stability Control</td>
</tr>
<tr>
<td valign="top" align="left">ESPRIT</td>
<td valign="top" align="left">Estimation of signal parameters via rotational invariant techniques</td>
</tr>
<tr>
<td valign="top" align="left">FAST</td>
<td valign="top" align="left">Features from Accelerated Segment Test</td>
</tr>
<tr>
<td valign="top" align="left">FCW</td>
<td valign="top" align="left">Frontal Collision Warning or Forward Collision Warning</td>
</tr>
<tr>
<td valign="top" align="left">FDM</td>
<td valign="top" align="left">Frequency-division multiplexing</td>
</tr>
<tr>
<td valign="top" align="left">FFT</td>
<td valign="top" align="left">Fast Fourier transform</td>
</tr>
<tr>
<td valign="top" align="left">FIR</td>
<td valign="top" align="left">Finite impulse response</td>
</tr>
<tr>
<td valign="top" align="left">FMCW</td>
<td valign="top" align="left">Frequency-modulated continuous-wave</td>
</tr>
<tr>
<td valign="top" align="left">FN(R)</td>
<td valign="top" align="left">False Negative (Rate)</td>
</tr>
<tr>
<td valign="top" align="left">FP(R)</td>
<td valign="top" align="left">False Positive (Rate)</td>
</tr>
<tr>
<td valign="top" align="left">FPGA</td>
<td valign="top" align="left">Field-Programmable Gate Array</td>
</tr>
<tr>
<td valign="top" align="left">fps</td>
<td valign="top" align="left">Frames per second</td>
</tr>
<tr>
<td valign="top" align="left">FREAK</td>
<td valign="top" align="left">Fast Retina Keypoint</td>
</tr>
<tr>
<td valign="top" align="left">GB</td>
<td valign="top" align="left">Geometry-based</td>
</tr>
<tr>
<td valign="top" align="left">GOPS</td>
<td valign="top" align="left">Billion Operations Per Second</td>
</tr>
<tr>
<td valign="top" align="left">GPGPU</td>
<td valign="top" align="left">General Purpose Graphics Processing Unit</td>
</tr>
<tr>
<td valign="top" align="left">GPP</td>
<td valign="top" align="left">General Purpose Processor</td>
</tr>
<tr>
<td valign="top" align="left">GPU</td>
<td valign="top" align="left">Graphics Processing Unit</td>
</tr>
<tr>
<td valign="top" align="left">HD</td>
<td valign="top" align="left">High-definition, 1280&#x000D7;720 pixel</td>
</tr>
<tr>
<td valign="top" align="left">HiL</td>
<td valign="top" align="left">Hardware in the Loop</td>
</tr>
<tr>
<td valign="top" align="left">HMI</td>
<td valign="top" align="left">Human-machine interface</td>
</tr>
<tr>
<td valign="top" align="left">HW</td>
<td valign="top" align="left">Hardware</td>
</tr>
<tr>
<td valign="top" align="left">I/O</td>
<td valign="top" align="left">input/output</td>
</tr>
<tr>
<td valign="top" align="left">I2C</td>
<td valign="top" align="left">Inter-Integrated Circuit</td>
</tr>
<tr>
<td valign="top" align="left">IMU</td>
<td valign="top" align="left">Inertial measurement unit</td>
</tr>
<tr>
<td valign="top" align="left">IU</td>
<td valign="top" align="left">Intersection over Union</td>
</tr>
<tr>
<td valign="top" align="left">IWI</td>
<td valign="top" align="left">information-warning-intervention</td>
</tr>
<tr>
<td valign="top" align="left">KD-Tree</td>
<td valign="top" align="left">K-dimensional tree</td>
</tr>
<tr>
<td valign="top" align="left">KPI</td>
<td valign="top" align="left">Key Performance Indicator</td>
</tr>
<tr>
<td valign="top" align="left">LCA</td>
<td valign="top" align="left">Lane Change Assistant</td>
</tr>
<tr>
<td valign="top" align="left">LDW</td>
<td valign="top" align="left">Lane Departure Warning</td>
</tr>
<tr>
<td valign="top" align="left">LKA</td>
<td valign="top" align="left">Lane Keeping Assistance</td>
</tr>
<tr>
<td valign="top" align="left">LoG</td>
<td valign="top" align="left">Laplacian of Gaussian</td>
</tr>
<tr>
<td valign="top" align="left">LSB</td>
<td valign="top" align="left">Least significant bit</td>
</tr>
<tr>
<td valign="top" align="left">LUT</td>
<td valign="top" align="left">Lookup table</td>
</tr>
<tr>
<td valign="top" align="left">MCC</td>
<td valign="top" align="left">Matthews Correlation Coefficient</td>
</tr>
<tr>
<td valign="top" align="left">MDC</td>
<td valign="top" align="left">Multi-path delay commutator</td>
</tr>
<tr>
<td valign="top" align="left">MiL</td>
<td valign="top" align="left">Model in the Loop</td>
</tr>
<tr>
<td valign="top" align="left">MIMO</td>
<td valign="top" align="left">Multiple-input multiple-output</td>
</tr>
<tr>
<td valign="top" align="left">MLP</td>
<td valign="top" align="left">Multi Layer Perceptron</td>
</tr>
<tr>
<td valign="top" align="left">MOPS</td>
<td valign="top" align="left">Million Operations Per Second</td>
</tr>
<tr>
<td valign="top" align="left">MUSIC</td>
<td valign="top" align="left">Multiple signal classification</td>
</tr>
<tr>
<td valign="top" align="left">NCI</td>
<td valign="top" align="left">Non-coherent integration</td>
</tr>
<tr>
<td valign="top" align="left">NHTSA</td>
<td valign="top" align="left">National Highway Traffic Safety Administration</td>
</tr>
<tr>
<td valign="top" align="left">NMEA</td>
<td valign="top" align="left">National Marine Electronics Association</td>
</tr>
<tr>
<td valign="top" align="left">NNB</td>
<td valign="top" align="left">Nearest-Neighbor-Based</td>
</tr>
<tr>
<td valign="top" align="left">NNDR</td>
<td valign="top" align="left">Nearest-Neighbor Distance Ratio</td>
</tr>
<tr>
<td valign="top" align="left">OpenCL</td>
<td valign="top" align="left">Open Computing Language</td>
</tr>
<tr>
<td valign="top" align="left">OpenGL</td>
<td valign="top" align="left">Open Graphics Library</td>
</tr>
<tr>
<td valign="top" align="left">ORB</td>
<td valign="top" align="left">Oriented FAST and Rotated BRIEF</td>
</tr>
<tr>
<td valign="top" align="left">OS-CFAR</td>
<td valign="top" align="left">Ordered-statistic constant false alarm rate</td>
</tr>
<tr>
<td valign="top" align="left">PCA</td>
<td valign="top" align="left">Principal Component Analysis</td>
</tr>
<tr>
<td valign="top" align="left">PID</td>
<td valign="top" align="left">proportional, integral, derivative controller</td>
</tr>
<tr>
<td valign="top" align="left">QVGA</td>
<td valign="top" align="left">Quarter Video Graphics Array, 320&#x000D7;240 pixel</td>
</tr>
<tr>
<td valign="top" align="left">RCS</td>
<td valign="top" align="left">Radar cross-section</td>
</tr>
<tr>
<td valign="top" align="left">RDE</td>
<td valign="top" align="left">Reak Driving Emissions</td>
</tr>
<tr>
<td valign="top" align="left">ReLU</td>
<td valign="top" align="left">Rectifier Linear Unit</td>
</tr>
<tr>
<td valign="top" align="left">RMS</td>
<td valign="top" align="left">Root Mean Square</td>
</tr>
<tr>
<td valign="top" align="left">RPM</td>
<td valign="top" align="left">Revolution per minute</td>
</tr>
<tr>
<td valign="top" align="left">RTSP</td>
<td valign="top" align="left">Real Time Streaming Protocol</td>
</tr>
<tr>
<td valign="top" align="left">SAE</td>
<td valign="top" align="left">Society of Automotive Engineers</td>
</tr>
<tr>
<td valign="top" align="left">SDF</td>
<td valign="top" align="left">Single-path delay feedback</td>
</tr>
<tr>
<td valign="top" align="left">SIFT</td>
<td valign="top" align="left">Scale-Invariant Feature Transform</td>
</tr>
<tr>
<td valign="top" align="left">SIP</td>
<td valign="top" align="left">Session Initialization Protocol</td>
</tr>
<tr>
<td valign="top" align="left">SLA</td>
<td valign="top" align="left">Speed Limit Assistant</td>
</tr>
<tr>
<td valign="top" align="left">SNR</td>
<td valign="top" align="left">Signal-to-noise ratio</td>
</tr>
<tr>
<td valign="top" align="left">SoP</td>
<td valign="top" align="left">Start of Production</td>
</tr>
<tr>
<td valign="top" align="left">SQNR</td>
<td valign="top" align="left">Signal-to-quantization-noise ratio</td>
</tr>
<tr>
<td valign="top" align="left">SRAM</td>
<td valign="top" align="left">Static random-access memory</td>
</tr>
<tr>
<td valign="top" align="left">SURF</td>
<td valign="top" align="left">Speeded Up Robust Features</td>
</tr>
<tr>
<td valign="top" align="left">SW</td>
<td valign="top" align="left">Software</td>
</tr>
<tr>
<td valign="top" align="left">TB</td>
<td valign="top" align="left">Threshold-Based</td>
</tr>
<tr>
<td valign="top" align="left">TDM</td>
<td valign="top" align="left">Time-division multiplexing</td>
</tr>
<tr>
<td valign="top" align="left">TP</td>
<td valign="top" align="left">True Positive</td>
</tr>
<tr>
<td valign="top" align="left">UUT</td>
<td valign="top" align="left">Unit Under Test</td>
</tr>
<tr>
<td valign="top" align="left">VGA</td>
<td valign="top" align="left">Video Graphics Array, 640&#x000D7;480 pixel</td>
</tr>
</tbody>
</table>
</table-wrap>
</preface>
<preface class="preface" id="preface07">
<title>Contents</title>
<table-wrap position="float">
<table cellspacing="5" cellpadding="5" frame="none" rules="none">
<tbody>
<tr><td valign="top"><emphasis role="strong"><link linkend="ch01">1 The DESERVE Project: Towards Future ADAS Functions</link></emphasis><?lb?>Matti Kutila and Nereo Pallaro</td><td valign="top" align="left" width="20%"><ulink url="http://riverpublishers.com/dissertations_xml/9788793519138/pdf/01_Chapter_01.pdf">Download As PDF</ulink></td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="ch02">2 The DESERVE Platform: A Flexible Development Framework to Seemlessly Support the ADAS Development Levels</link></emphasis><?lb?>Frank Badst[x00FC;]bner, Ralf K[x00F6;]del, Wilhelm Maurer, Martin Kunert, Andr[x00E9;] Rolfsmeier, Joshu[x00E9;] P[x00E9;]rez, Florian Giesemann, Guillermo Pay&#x000E1;-Vay&#x000E1;, Holger Blume and Gideon Reade</td><td valign="top" align="left" width="20%"><ulink url="http://riverpublishers.com/dissertations_xml/9788793519138/pdf/02_Chapter_02.pdf">Download As PDF</ulink></td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="ch03">3 Driver Modelling</link></emphasis><?lb?>Jens Klimke and Lutz Eckstein</td><td valign="top" align="left" width="20%"><ulink url="http://riverpublishers.com/dissertations_xml/9788793519138/pdf/03_Chapter_03.pdf">Download As PDF</ulink></td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="ch04">4 Component Based Middleware for Rapid Development of Multi-Modal Applications</link></emphasis><?lb?>Gwena&#x000EB;l Dunand</td><td valign="top" align="left" width="20%"><ulink url="http://riverpublishers.com/dissertations_xml/9788793519138/pdf/04_Chapter_04.pdf">Download As PDF</ulink></td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="ch05">5 Tuning of ADAS Functions Using Design Space Exploration</link></emphasis><?lb?>Abhishek Ravi, Hans Michael Koegeler and Andrea Saroldi</td><td valign="top" align="left" width="20%"><ulink url="http://riverpublishers.com/dissertations_xml/9788793519138/pdf/05_Chapter_05.pdf">Download As PDF</ulink></td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="ch06">6 Deep Learning for Advanced Driver Assistance Systems</link></emphasis><?lb?>Florian Giesemann, Guillermo Pay<span class='accentacute'>a</span>-Vay<span class='accentacute'>a</span>, Holger Blume, Matthias Limmer and Werner R. Ritter</td><td valign="top" align="left" width="20%"><ulink url="http://riverpublishers.com/dissertations_xml/9788793519138/pdf/06_Chapter_06.pdf">Download As PDF</ulink></td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="ch07">7 Real-Time Data Preprocessing for High-Resolution MIMO Radar Sensors</link></emphasis><?lb?>Frank Meinl, Eugen Schubert, Martin Kunert and Holger Blume</td><td valign="top" align="left" width="20%"><ulink url="http://riverpublishers.com/dissertations_xml/9788793519138/pdf/07_Chapter_07.pdf">Download As PDF</ulink></td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="ch08">8 Self-Calibration of Wide Baseline Stereo Camera Systems for Automotive Applications</link></emphasis><?lb?>Nico Mentzer, Guillermo Pay<span class='accentacute'>a</span>-Vay<span class='accentacute'>a</span>, Holger Blume, Nora von Egloffstein and Lars Kr&#x000FC;ger</td><td valign="top" align="left" width="20%"><ulink url="http://riverpublishers.com/dissertations_xml/9788793519138/pdf/08_Chapter_08.pdf">Download As PDF</ulink></td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="ch09">9 Arbitration and Sharing Control Strategies in the Driving Process</link></emphasis><?lb?>David Gonz<span class='accentacute'>a</span>lez, Joshu<span class='accentacute'>e</span> P<span class='accentacute'>e</span>rez, Vicente Milan<span class='accentacute'>e</span>s, Fawzi Nashashibi, Marga S[x00E1;]ez Tort and Angel Cuevas</td><td valign="top" align="left" width="20%"><ulink url="http://riverpublishers.com/dissertations_xml/9788793519138/pdf/09_Chapter_09.pdf">Download As PDF</ulink></td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="ch10">10 The HMI of Preventing Warning Systems: The DESERVE Approach</link></emphasis><?lb?>Caterina Calefato, Chiara Ferrarini, Elisa Landini, Roberto Montanari, Fabio Tango, Marga S<span class='accentacute'>a</span>ez Tort and Eva M. Garc[x00ED;]a Quinteiro</td><td valign="top" align="left" width="20%"><ulink url="http://riverpublishers.com/dissertations_xml/9788793519138/pdf/10_Chapter_10.pdf">Download As PDF</ulink></td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="ch11">11 Vehicle Hardware-In-the-Loop System for ADAS Virtual Testing</link></emphasis><?lb?>Romain Rossi, Cl<span class='accentacute'>e</span>ment Galko, Hariharan Narasimman and Xavier Savatier</td><td valign="top" align="left" width="20%"><ulink url="http://riverpublishers.com/dissertations_xml/9788793519138/pdf/11_Chapter_11.pdf">Download As PDF</ulink></td></tr>
<tr><td valign="top"><emphasis role="strong"><link linkend="about01">About the Editors</link></emphasis></td><td valign="top" align="left" width="20%"><ulink url="http://riverpublishers.com/dissertations_xml/9788793519138/pdf/13_About_the_Editors.pdf">Download As PDF</ulink></td></tr>
</tbody>
</table>
</table-wrap>
</preface>
<chapter class="chapter" id="ch01" label="1" xreflabel="1">
<title>The DESERVE Project: Towards Future ADAS Functions</title>
<para class="section"><emphasis role="strong">Matti Kutila<superscript>1</superscript> and Nereo Pallaro<superscript>2</superscript></emphasis></para>
<para><superscript>1</superscript>VTT Technical Research Center of Finland Ltd., Finland</para>
<para><superscript>2</superscript>Centro Ricerche Fiat, Italy</para>
<section class="lev1" id="sec1-1">
<title>1.1 Project Aim</title>
<para>This book aims to outline the major innovations introduced by the DESERVE (DEvelopment platform for Safe and Efficient dRiVe) project. The project started in September 2012 and finished on February 2015 after 3,5 years heavy working and was coordinated by VTT Technical Research Centre of Finland Ltd. The project was co-funded by the European Commission under the ECSEL EU-Horizon 2020 programme. The project was a joint effort of major vehicle manufacturers (Volvo, Daimler, Fiat), component suppliers (Continental, Ficosa, AVL, Bosch, NXP, Infineon, dSPACE, ASL Vision, Ramboll, TTS, Technolution), research institutes (VTT, ICOOR, ReLab, INRIA, CTAG) and universities (VisLab, IRSEEM, ARMENIS, IKA, INTEMPORA, Lei/bniz Universit&#x00E4;t Hannover).</para>
<fig id="UF1-1" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<graphic xlink:href="graphics/ch01_unfig001.jpg"/>
</fig>
<para>The main research question was to identify the optimal sensor solutions for the DESERVE platform which are required by the selected ADAS functions for supporting transition to automated vehicles. 22 different modules were selected to be implemented to 11 driver support applications according to user needs when starting development process:</para>
<itemizedlist mark="bullet" spacing="normal">
<listitem><para>Lane change assistance system</para></listitem>
<listitem><para>Pedestrian safety systems</para></listitem>
<listitem><para>Forward/rearward looking system (distant range)</para></listitem>
<listitem><para>Adaptive light control</para></listitem>
<listitem><para>Park assistance</para></listitem>
<listitem><para>Night vision system</para></listitem>
<listitem><para>Cruise control system</para></listitem>
<listitem><para>Traffic sign and traffic light recognition</para></listitem>
<listitem><para>Map-supported systems</para></listitem>
<listitem><para>Vehicle interior observation</para></listitem>
<listitem><para>Driver monitoring</para></listitem>
</itemizedlist>
<para>The project created the methodology framework for integrating embedded hardware and software modules was created which enables better interoperability of automotive industry products and third party aftersales components. This approach is also beneficial to comprise the problem for guaranteeing safety and security problems when new components are added to the complex software and hardware stacks.</para>
<para>The initial project objective has been defined in the <link linkend="T1-1">Table <xref linkend="T1-1" remap="1.1"/></link> with having measurable verification of the expected results.</para>
<table-wrap position="float" id="T1-1">
<label><link linkend="T1-1">Table <xref linkend="T1-1" remap="1.1"/></link></label>
<caption><para>Scientific and technical objectives</para></caption>
<table cellspacing="5" cellpadding="5" frame="hsides" rules="groups">
<thead>
<tr>
<td valign="bottom" align="left">Scientific and Technical Objectives</td>
<td valign="bottom" align="left">Measurable and Verifiable Form</td>
</tr>
</thead>
<tbody>
<tr>
<td valign="top" align="left">The definition and implementation of a model-driven process for the compositional development of safety critical systems that allows the smooth integration of existing components and functions in a new framework.</td>
<td valign="top" align="left">By defining an analysis methodology to establish an industrially applicable process for exploration of design spaces and multi-criteria constraint satisfaction, with particular regard to safety properties.</td>
</tr>
<tr style="border-bottom:1px solid;">
<td valign="top" align="left"></td>
<td valign="top" align="left"><emphasis role="strong">Verification: 90% or more of the applications identified could be developed with the proposed platform.</emphasis></td>
</tr>
<tr>
<td valign="top" align="left">The development of an innovative embedded vehicle platform capable of supporting the fast and reliable development of ADAS and efficient Eco-driving functions.</td>
<td valign="top" align="left">By implementing demonstrators for active and passive safety of drivers and all road users in the three macro-areas in the automotive domain such as:
<itemizedlist mark="bullet" spacing="normal">
<listitem><para>Technical, safety and efficiency impact assessment of resulting prototypes following the evaluation methodologies identified in project PREVAL and in line with INTERACTIVE evaluation methodologies.</para></listitem>
<listitem><para>Cost-Benefits analysis.</para></listitem>
<listitem><para>Evaluation of cost reduction in comparison with conventional Driver Assistance Systems.</para></listitem>
</itemizedlist></td>
</tr>
<tr style="border-bottom:1px solid;">
<td valign="top" align="left"></td>
<td valign="top" align="left"><emphasis role="strong">Verification: 90% or more of the developed applications showed more than 15% of reduction in development time and cost.</emphasis></td>
</tr>
<tr>
<td valign="top" align="left">The integration of existing vehicle sensors and actuators in a unified SW framework for multiple safety and Eco-driving applications.</td>
<td valign="top" align="left">Existence of a cost-effective and flexible SW platform, able to be used with available sensors/actuators.</td>
</tr>
<tr style="border-bottom:1px solid;">
<td valign="top" align="left"></td>
<td valign="top" align="left"><emphasis role="strong">Verification: 90% or more of the developed applications show more than 15% reduction in development duration and cost.</emphasis></td>
</tr>
<tr>
<td valign="top" align="left">The adaptation of the current data fusion, HMI and driver&#x02019;s behaviour modules to provide suitable and harmonised middleware for the different safety and Eco-driving functions.</td>
<td valign="top" align="left">By applying the V-model and developing high level services and Application Protocol Interface (API) that can be used in a wide range of safety-related use cases. Via multi-modal HMI with user related and driver behaviour assessment through tests in driving simulator and in prototype vehicles.</td>
</tr>
<tr style="border-bottom:1px solid;">
<td valign="top" align="left"></td>
<td valign="top" align="left"><emphasis role="strong">Verification: Statistical evidence of improvement of driver acceptance between existing (on the market) and DESERVE-developed functions. Subjective evaluation through questionnaires.</emphasis></td>
</tr>
<tr>
<td valign="top" align="left">The implementation of a new method and relative tools for ADAS functions development.</td>
<td valign="top" align="left">Existence of new tools for development of Driver Assistance Systems, including data fusion visualisation, algorithm development, actuation simulation, etc.</td>
</tr>
<tr style="border-bottom:1px solid;">
<td valign="top" align="left"></td>
<td valign="top" align="left"><emphasis role="strong">Verification: Evidence that the method is suitable for effective ADAS developments:</emphasis>
<itemizedlist mark="bullet" spacing="normal">
<listitem><para><emphasis role="strong">Results of the test case development</emphasis></para></listitem>
<listitem><para><emphasis role="strong">Results of workshops with main stakeholders, OEMs and automotive suppliers.</emphasis></para></listitem>
</itemizedlist></td>
</tr>
</tbody>
</table>
</table-wrap>
<para>The developed applications are tested and validated in different demonstration vehicles for showing that DESERVE methodology is not limited to one single vehicle type. The project demonstration vehicles are:</para>
<itemizedlist mark="bullet" spacing="normal">
<listitem><para>two medium class passenger cars from Fiat</para></listitem>
<listitem><para>research passenger car from VTT</para></listitem>
<listitem><para>luxury passenger car from Daimler</para></listitem>
<listitem><para>heavy goods vehicle from Volvo</para></listitem>
<listitem><para>driver training truck from TTS</para></listitem>
</itemizedlist>
<para>Additionally, tests will also be conducted in simulators, e.g. a simulator for driver monitoring functions and a simulator for cruise control systems.</para>
</section>
<section class="lev1" id="sec1-2">
<title>1.2 Project Structure</title>
<para>The project was divided into 8 sub-projects (see <link linkend="F1-1">Figure <xref linkend="F1-1" remap="1.1"/></link>) in order to keep the whole development chain manageable and taking different automotive orientated technical challenges into account.</para>
<fig id="F1-1" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F1-1">Figure <xref linkend="F1-1" remap="1.1"/></link></label> 
<caption><para>The DESERVE V-shape development process.</para></caption>
<graphic xlink:href="graphics/ch01_fig001.jpg"/>
</fig>
<para>This project workflow also enabled professional development process starting from the requirements and finishing to the validation phase. One sub-project was engaged with specifying and designing the DESERVE platform and three sub-projects for doing implementation.</para>
</section>
<section class="lev1" id="sec1-3">
<title>1.3 DESERVE Platform Design</title>
<para>The project developed the framework methodology (see <link linkend="F1-2">Figure <xref linkend="F1-2" remap="1.2"/></link>) to integrate new software components to car environment. In practise, the methodology verified with implementing two alternative solutions which were adapted to fit to the project framework design. The one bases on ADTF which is mainly utilised by the German automotive industry and RTMaps which is implemented by the other demonstrators. Since the aim is to introduce a solution which will be exploited in real vehicles both solutions this gives good bases to bring the specified framework to cars in future within next 5 years.</para>
<fig id="F1-2" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F1-2">Figure <xref linkend="F1-2" remap="1.2"/></link></label> 
<caption><para>DESERVE platform concept for speeding up the ADAS function development time.</para></caption>
<graphic xlink:href="graphics/ch01_fig002.jpg"/>
</fig>
</section>
<section class="lev1" id="sec1-4">
<title>1.4 The Project Innovation Summary</title>
<para>The project was not limited to the framework design but was also further developing the current in-vehicle technology. The specific areas where steps were taken forward are:</para>
<itemizedlist mark="bullet" spacing="normal">
<listitem><para>Night time environment perception</para></listitem>
<listitem><para>Driver monitoring topics: Drowsiness and distraction detection</para></listitem>
<listitem><para>Embedded in-vehicle computing system: Setting up FPGA based automotive CPUs</para></listitem>
<listitem><para>Vehicle blind spot detection</para></listitem>
<listitem><para>Vehicle surrounding awareness</para></listitem>
<listitem><para>New human-machine interface concept</para></listitem>
</itemizedlist>
<para>However, these are kind of by-products since main intention was to develop common methodology for automotive software implementation. The project therefore, took steps forward in developing common framework (i.e. methodology) to bring new functions to the vehicles. These are not limited to above functionalities but they are the first steps.</para>
<para>The one DESERVE platform allows the co-design of software and hardware for applications and algorithms. The whole application or algorithm can be implemented in software using for example ADTF, RTMaps or Simulink interfaces which allows reusability, flexibility and fast verification of the implemented hardware modules.</para>
</section>
<section class="lev1" id="sec1-5">
<title>1.5 Conclusions</title>
<para>The original project target was to develop a common software platform for modern vehicles. The expected outcome is that the platform fits up to 90 % of all new applications introduced in the new cars. The novel ADAS functions are becoming more and more complex and the new features are software-based instead of mechanical solutions like they were 10 to15 years ago. However, software is always prone to errors which may have serious consequences if e.g. the vehicle accelerates when emergency braking is expected. Therefore, a proper evaluation procedure is needed by using proper performance indicators, in order to verify the correct functionality of the platform.</para>
<para>As the final concluding remark, the DESERVE methodology pushes forward the situation compared to the current approaches in the automotive industry. The used architecture for the DESERVE platform is flexible and modular and enables to add new software components, devices, modules and functions even if the set of vehicle sensors, actuators and HMI remains.</para>
</section>
</chapter>
<part class="part" id="part01" label="I" xreflabel="I">
<title>ADAS Development Platform</title>
<chapter class="chapter" id="ch02" label="2" xreflabel="2">
<title>The DESERVE Platform: A Flexible Development Framework to Seemlessly Support the ADAS Development Levels</title>
<para class="section"><emphasis role="strong">Frank Badst&#x00FC;bner<superscript><emphasis role="strong">1</emphasis></superscript>, Ralf K&#x00F6;del<superscript><emphasis role="strong">1</emphasis></superscript>, Wilhelm Maurer<superscript><emphasis role="strong">1</emphasis></superscript>, Martin Kunert<superscript><emphasis role="strong">2</emphasis></superscript>, Andr&#x00E9; Rolfsmeier<superscript><emphasis role="strong">3</emphasis></superscript>, Joshu&#x00E9; P&#x00E9;rez<superscript><emphasis role="strong">4</emphasis></superscript>, Florian Giesemann<superscript><emphasis role="strong">5</emphasis></superscript>, Guillermo Pay&#x000E1;-Vay&#x000E1;<superscript><emphasis role="strong">5</emphasis></superscript>, Holger Blume<superscript><emphasis role="strong">5</emphasis></superscript> and Gideon Reade<superscript><emphasis role="strong">6</emphasis></superscript></emphasis></para>
<para><superscript>1</superscript>Infineon Technologies AG, Germany</para>
<para><superscript>2</superscript>Robert Bosch GmbH, Germany</para>
<para><superscript>3</superscript>dSpace GmbH, Germany</para>
<para><superscript>4</superscript>INRIA, France</para>
<para><superscript>5</superscript>IMS/Hannover University, Germany</para>
<para><superscript>6</superscript>ASL, U.K.</para>
<section class="lev1" id="sec2-1">
<title>2.1 Introduction to the DESERVE Platform Concept</title>
<para>As outlined by <link linkend="F2-1">Figure <xref linkend="F2-1" remap="2.1"/></link>, the DESERVE platform is the key enabler for speeding up the development of next generation ADAS systems. The DESERVE platform represents an open platform to be used by anyone. This chapter therefore covers the entire spectrum of aspects to be considered for the use of this generic DESERVE platform.</para>
<fig id="F2-1" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F2-1">Figure <xref linkend="F2-1" remap="2.1"/></link></label>
<caption><para>The DESERVE Platform &#x02013; the enabler for next generation ADAS systems.</para></caption>
<graphic xlink:href="graphics/ch02_fig001.jpg"/>
</fig>
<para>Please kindly note that the extensive work on the DESERVE platform cannot be completely described here. Thus, reference to a manifold of DESERVE deliverables are made. As most of these deliverables are not publicly available, essential findings in these deliverable reports were included here to provide a complete view on the DESERVE platform.</para>
<para>The DESERVE platform relies on model-based design and virtual testing tools. Its openness is based on the compliance with AUTOSAR standards. All AUTOSAR members have access to these standardized interfaces.</para>
<para>The DESERVE platform is not related to any specific hardware or software. In contrast, it is generic and represents a new methodology and concept to develop future ADAS systems more efficient and more flexible with maximum reuse of modules and components due to well-defined processes and standardizations on architecture and encapsulated module levels.</para>
<para>Requirements engineering is applied for next generation ADAS systems. By means of model-based design (e.g. Matlab/Simulink/ADTF/RTMaps) fast implementation in ADAS rapid prototyping framework is achieved (development level 2). Rapid prototyping results are evaluated by Hardware-in-the-Loop (HIL), Model-in-the-Loop (MIL) or Processor-in-the-Loop (PIL) test bench. In parallel, by making use of model based design space exploration, specifications and requirements for System-on-Chip (SoC) can be derived at a very early development phase, which supports cost prediction on basis of silicon area, throughput etc. Both, validation by virtual testing and cost prediction indicate important improvement potentials that need to be implemented in the next cycle of the iterative development process.</para>
<para>The situation before DESERVE can be characterized by the absence of model-based access to perception and fusion algorithms, missing AUTOSAR compatibility, there is no library with available algorithms (for composing and evaluating new algorithms). Rather, testing the application on real vehicles in real traffic scenarios is the approach followed, together with some recording feature to allow the capturing of the critical situations, where the solution fails for example, in order to reproduce them in some way later in laboratory.</para>
<para>The objectives of the DESERVE platform are driven by the market needs, which are enabling a further growth of embedded systems and more specifically advanced driver assistance systems (ADAS), mastering the complexity (both in system architecture and processing power) of ADAS, reducing costs of components and development time of ADAS as well as the seamless integration of the growing amount of functions within ADAS and the corresponding vehicle.</para>
<para>DESERVE strives to meet these markets needs by aiming at a novel design and more efficient development process that is enabled by a platform. A platform that provides a flexible development framework, reaching from early PC-based pre-developments down to close-to-production hardware implementations on final target systems on chip, to seamlessly support the ADAS development levels; that constructs a tool chain to allow for modelling and evaluation via virtual testing of new sensors, algorithms, applications and actuators during the whole design and development process; a platform; that forms a common in-vehicle platform for future ADAS functions based on a modular approach and an architecture and interface specifications that are compatible with AUTOSAR (access and easy-to-use also for non-project-partners); a platform that enables the integration of safety mechanisms for pre-certification (generic safety requirements e.g. for testing on public roads) and full requirements for ASIL D according to ISO 26262 (to prepare certification of later target platform) and security mechanisms for pre-certification of connected ADAS according to ISO 27001.</para>
<para>The novel design and efficient development process is based on the well-known V-model and fully DESERVE platform supported during all phases in the process. This is illustrated in <link linkend="F2-2">Figure <xref linkend="F2-2" remap="2.2"/></link>.</para>
<fig id="F2-2" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F2-2">Figure <xref linkend="F2-2" remap="2.2"/></link></label> 
<caption><para>DESERVE platform enabled design and development process.</para></caption>
<graphic xlink:href="graphics/ch02_fig002.jpg"/>
</fig>
</section>
<section class="lev1" id="sec2-2">
<title>2.2 The DESERVE Platform &#x02013; A Flexible Development Framework to Seamlessly Support the ADAS Development Levels</title>
<para>This section introduces into the development methods and guidelines associated with the DESERVE platform and outlines the benefits in terms of development cost and time savings from the OEM perspective. Basically, the platform concept is based on three pillars which reflect the different development levels and the transition of ADAS algorithms from the prototyping to production phase in the automotive industry (see <link linkend="F2-3">Figure <xref linkend="F2-3" remap="2.3"/></link>).</para>
<para>The DESERVE platform is a generic platform that supports all development levels illustrated in <link linkend="F2-3">Figure <xref linkend="F2-3" remap="2.3"/></link> as seamless as possible &#x02013; from feasibility study to product development.</para>
<fig id="F2-3" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F2-3">Figure <xref linkend="F2-3" remap="2.3"/></link></label> 
<caption><para>ADAS development process.</para></caption>
<graphic xlink:href="graphics/ch02_fig003.jpg"/>
</fig>
<para><emphasis><emphasis role="underline">Level 1: PC platform</emphasis></emphasis></para>
<para>In the research and pre-development phase users typically require highly flexible tools with an intuitive user interface and the implementation of ADAS algorithms may not satisfy hard real-time requirements. Here, PC-based tools such as ADTF and RTMaps for data fusion often constitute the basis for ADAS development.</para>
<para>Such tools provide a high user comfort and allow developers to implement and verify algorithms directly on a standard MS Windows or Linux PC. Different kinds of sensors/actuators and vehicle bus interfaces are available so that the algorithms can directly be tested in a real environment. However, real-time calculation is not guaranteed, especially with complex perception, fusion and tracking algorithms. In addition, there is no direct support of Matlab/Simulink, AUTOSAR and the model-based design approach for application functions. Finally, PC platforms as described above are typically not tailored for stand-alone, in-vehicle use cases.</para>
<para>To avoid a time-consuming redesign of perception, fusion or tracking algorithms when implementing them on the final ECU hardware (production ECU), engineers are looking for ways to evaluate different target hardware architectures according to given cost criteria already in early development stages. This request is met by the design space exploration (DSE) methodology and the SoC modelling approach.</para>
<para><emphasis><emphasis role="underline">Level 2: Rapid prototyping platform including software superstructure (e.g. embedded PC/embedded controller with realtime operating system and FPGA)</emphasis></emphasis></para>
<para>In the second development stage engineers go one step closer to a real-time implementation. Complex and computationally intensive algorithms are shifted to a powerful FPGA to improve the realtime capability. In parallel to this, the FPGA platform allows different target hardware architectures to be evaluated in combination with the selected algorithms. To ensure a rapid implementation of the above mentioned perception, fusion, and tracking algorithms in the FPGA, basic building blocks in terms of a library are provided by the DSE framework. By means of this block-based modeling approach the time and effort for implementing the associated algorithms can significantly be reduced.</para>
<para>Using an embedded system platform in this stage featuring both an FPGA and an embedded controller also allows ADAS application algorithms to be designed by means of models so that the associated development time can further be reduced. Compared to the purely PC based framework real-time performance is almost guaranteed, though the user comfort with programming the FPGA may be restricted.</para>
<para><emphasis><emphasis role="underline">Level 3: Fully embedded, AUTOSAR compatible architecture (e.g. multicore controller with FPGA) for the evaluation of algorithms in realtime and implementation of safety requirements according to ISO 26262 (e.g. pre-certification for testing on public roads)</emphasis></emphasis></para>
<para>The goal of this stage is to go one step further to the final target hardware and to provide a stand-alone, in-vehicle rapid prototyping platform which, for example, can even be used during test drives. This stage reflects the users&#x02019; need to evaluate and experience the driver assistance system directly in the vehicle itself.</para>
<para>The standard PC is replaced by an embedded PC that is qualified for in-vehicle use in terms of shock, vibration and temperature, similar to the other parts of the system. This platform also allows the integration of hardware accelerators so that even highly computational intensive algorithms may be tested in the vehicle. It is also possible to interface target microcontrollers of production ECUs and to run certain algorithms there. The complete platform behaves like a prototype ECU which can be operated by test drivers which are not specifically instructed. For example, the platform can be started and shut down via the vehicle&#x02019;s ignition key.</para>
<para>The development platforms of all stages can be used together with the model-based design space exploration approach for system on chip and libraries of basic building blocks for the FPGA. By means of this the gap is closed when transferring perception, fusion and tracking algorithms from prototyping to production, similar to the model-based design approach with application functions using Simulink. Being able to use already tested and validated building blocks and software modules greatly facilitates and expedites the development process.</para>
<para>To support the model-based development of algorithms at all processing layers (perception, decision making, warning and control strategies) and to execute these algorithms in the vehicle, the DESERVE platform level 3 needs to be fully compatible to the AUTOSAR standard (note: as of today, no certified AUTOSAR 4.0 real-time operating system including memory protection is available; its development is not subject of DESERVE).</para>
<para>In addition, at this development level, safety mechanisms need to be developed: According to ISO 26262 the DAS system needs to be classified concerning the Automotive Safety Integrity Level (ASIL). Many DAS systems require the highest classification ASIL D. Suitable measures are required to fulfil the related strong requirements. As the certification process is very much related to the hardware, just pre-certification (e.g. for testing of the new DAS on public roads) is possible at this development level.</para>
<para>As a result, OEMs are able to define early and precise enough the distinct requirements for the final ECU hard- and software (e.g. required interfaces &#x02013; which I/O and bus system; computational power; memory requirements), including the safety mechanisms (e.g. memory protection, lockstep operation).</para>
<para><emphasis><emphasis role="underline">Level 4: Target production platform (e.g. multicore controller ECU with integrated custom ASIC/FPGA/hardware accelerator)</emphasis></emphasis></para>
<para>On basis of the production hardware, the final certification of the ADAS takes place. Within the DESERVE project, the generic DESERVE platform concept was validated. Starting with purely PC-based development, algorithms can be outsourced step by step to an FPGA or embedded controller prototyping system. In addition to the hardware concept, a design space exploration and an analytical modelling approach for system on chip is proposed. This software framework allows different target hardware architectures for the implementation of perception algorithms to be evaluated according to given cost criteria in early development phases. The software framework is coupled to the FPGA of the DESERVE platform. The associated workflow will be supported by a library of basic building blocks for the FPGA by means of which perception algorithms can be composed and implemented quickly.</para>
<para>To validate the platform concept, three different realization instances of the generic DESERVE platform are considered in the project:</para>
<itemizedlist mark="bullet" spacing="normal">
<listitem><para>Level 1: Purely PC based solution</para></listitem>
<listitem><para>Level 2: Mixed PC/embedded control based on dSpace Micro Autobox with FPGA framework (this platform will be extensively used for the ADAS vehicle demonstrators)</para></listitem>
<listitem><para>Level 3: Fully embedded platform based on multicore controller plus FPGA. This instance of the DESERVE platform provides realtime operating system and basis software fully compatible to the AUTOSAR standard. Thus it is open and easy to use for all AUTOSAR members. It will also feature safety concepts required for ASIL D and consider new radar/camera interfaces.</para></listitem>
</itemizedlist>
</section>
<section class="lev1" id="sec2-3">
<title>2.3 DESERVE Platform Requirements</title>
<para>The next step in the definition process for the DESERVE platform concerned the translation of the previously defined platform needs into generic requirements for the DESERVE platform based on common software architecture and suitable for the development and simulation of the 33 DAS functions investigated in the beginning.</para>
<para>The generic requirements for the DESERVE platform were defined utilizing the following approach (see deliverables D1.2.1 [<link linkend="ch02_B1">1</link>]).</para>
<para>The DESERVE development platform has been defined taking into account that general requirements such as AUTOSAR compatibility [<link linkend="ch02_B6">6</link>], SPICE compliance and functional safety (ISO 26262) [<link linkend="ch02_B7">7</link>, <link linkend="ch02_B8">8</link>] are mandatory for industrial use. These requirements apply for the &#x0201C;industrialized platform&#x0201D;. The generic DESERVE platform addresses a functional software architecture based on Perception, Application and IWI platforms.</para>
<section class="lev2" id="sec2-3-1">
<title>2.3.1 DESERVE Platform Framework</title>
<para>The DESERVE platform has been defined taking into account general requirements such as AUTOSAR compatibility, SPICE compliance and functional safety (ISO 26262), which are mandatory for the later industrial use. The AUTOSAR standard comprises a set of specifications describing software architecture components and defining their interfaces. DESERVE aims at using AUTOSAR to integrate applications from different suppliers inside a single processing unit.</para>
<para>DESERVE addressed also to be compliant with the SPICE standard, which represents a set of technical standards documents for the computer software development process and related business management functions. The ISO 26262 standard was considered in the implementation of DESERVE platform in order to improve the safety in the development of methods and tools. The ISO 26262 standard defines the &#x0201C;Functional Safety Assessment&#x0201D; at the completion of the item development with the scope to assess the functional safety that is achieved by the element under safety analysis.</para>
<para>The baseline for DESERVE is represented by the results of past and on-going research projects [<link linkend="ch02_B9">9</link>, <link linkend="ch02_B10">10</link>], and in particular of interactIVe addressing the development of a common perception framework for multiple safety applications with unified output interface from the perception layer to the application layer [<link linkend="ch02_B11">11</link>].</para>
<para><link linkend="F2-4">Figure <xref linkend="F2-4" remap="2.4"/></link> presents the DESERVE platform framework. In this generic architecture the perception platform processes the data received from the sensors that are available on the ego vehicle and sends them to the application platform in order to develop control functions and to decide the actuation strategies. Finally, the output is sent to the IWI platform informing the driver in case of warning conditions and activating the systems related to the longitudinal and/or lateral dynamics.</para>
<fig id="F2-4" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F2-4">Figure <xref linkend="F2-4" remap="2.4"/></link></label> 
<caption><para>DESERVE platform framework.</para></caption>
<graphic xlink:href="graphics/ch02_fig004.jpg"/>
</fig>
</section>
<section class="lev2" id="sec2-3-2">
<title>2.3.2 Generic DESERVE Platform Requirements (Relevant to all Development Levels)</title>
<para>Different clusters of requirements were defined following the structure of the DESERVE platform framework. Please note that each of the following requirements was divided in sub-requirements, which are described in detail in DESERVE deliverable D1.2.1.</para>
<para><emphasis><emphasis role="underline">General software requirements</emphasis></emphasis></para>
<para>General software requirements: Among others, these cover the previously mentioned software requirements for modularity, reusability, AUTOSAR, SPICE process assessment (ISO/IEC 15504), functional safety (ISO 26262), platform independence (the application software needs to be independent from the processing hardware), standardized interfaces (i.e. the software needs to have interfaces to sensors and actuators that are standardized and published), operating system independence (cross platform libraries are recommended), programming language, communication technologies independence, automatic start-up/shut-down, configuration of sensors position, software versioning and licenses.</para>
<para><emphasis><emphasis role="underline">General hardware platform requirements</emphasis></emphasis></para>
<para>These cover the aspects power supply, list of supported sensors, processing unit, unit size and number of included components etc.</para>
<para><emphasis><emphasis role="underline">Perception module requirements</emphasis></emphasis></para>
<para>These requirements include 3D reconstruction of the scene in front of the vehicle, ADASIS horizon, assignment of objects to lanes, detection of the free space, driver monitoring, enhanced vehicle positioning, environment, front near range perception, frontal object perception, lane course, lane recognition, moving object classification, occupant monitoring, parking lot detector, recognition of unavoidable crash situations, relative positioning of the ego vehicle to the road, road data fusion, road edge detection, scene labelling, self-calibration, side/rear object perception, traffic sign detector, vehicle filter/state, vehicle light detector, vehicle trajectory calculation, vulnerable road users detection and classification.</para>
<para>The functional architecture of the perception layer is illustrated in <link linkend="F2-5">Figure <xref linkend="F2-5" remap="2.5"/></link>. Depending on the ADAS system to be realized, some of the components in the generic perception platform architecture may be omitted (without losing generality). The modules developed in the project to build the demonstrators are highlighted by thicker boxes.</para>
<fig id="F2-5" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F2-5">Figure <xref linkend="F2-5" remap="2.5"/></link></label> 
<caption><para>Perception platform functional architecture.</para></caption>
<graphic xlink:href="graphics/ch02_fig005.jpg"/>
</fig>
<para>The number and variety of the different perception sources is manifold and requires special care and precaution to transport the available information in the subsequent data processing modules. Two main aspects have to be taken into consideration when connecting perception sources to the DESERVE platform: The information content may differ from sensor to sensor even when the same technique (e.g. radar, video camera or ultrasonic sensor) is used. Based on the physical concept used the individual sensors may have an intrinsic lack of information that can never be provided, independent of the effort spent to improve the sensor performance (e.g. radar sensors can never &#x0201C;visually&#x0201D; read the road signs content while video sensors can never provide direct speed measurements).</para>
<para>By using the general interface descriptor approach the data input structure for the perception layer processing module becomes independent from the real sensors connected to the DESERVE platform. This kind of concept is used in PC architecture since several years under the term hardware abstraction layer that completely decouples data information from the physical hardware in use.</para>
<para>The flexibility and scalability of the overall system is much better and reusability of SW components that are already developed is higher. Improvements and changes within the subgroups (i.e. environmental sensors or perception input processing module) can be conducted on a standalone basis without modifying or adapting the whole data processing chain at all. General adoption of the whole data processing chain is thus only needed in the case that the interference descriptors between the modules have to be updated or modified due to recently emerging needs.</para>
<para>As the diversity of the already existing environmental sensors is already huge and many products are already in series production, the change of the sensor output signals is often not possible at all. To connect already existing sensing devices or sensors with an IP-protected signal output to the open DESERVE platform, a work-around with converter or breakout boxes can be applied. Using such interface converter/breakout boxes almost any kind of sensor system can be attached to the standardized and abstracted input channels of the generic DESERVE platform.</para>
<para><emphasis><emphasis role="underline">Application module requirements</emphasis></emphasis></para>
<para>The application module needs to consider the following requirements: ACC control, activation control, advance warning generator, calculation of required evasion trajectory, decision unit, driver intention detection, driving strategy, intervention path determination, IWI manager, reference maneuver, situation analysis, target selection, threat assessment, trajectory control, trajectory planning, vehicle model and vehicle motion control.</para>
<para>The functional scheme of the application platform modules is depicted in <link linkend="F2-6">Figure <xref linkend="F2-6" remap="2.6"/></link>. The modules are divided in clusters having the same scope. Some of them have mainly the objective to select the driver intention and the most dangerous target. Other modules execute control operations and make an evaluation about the current situation of warning and eventually decide specific actions. Then the type of information to provide to the driver and the intervention strategy are decided. Finally, the kind of actuation to adopt is provided to the IWI Platform modules.</para>
<fig id="F2-6" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F2-6">Figure <xref linkend="F2-6" remap="2.6"/></link></label> 
<caption><para>Application platform functional architecture.</para></caption>
<graphic xlink:href="graphics/ch02_fig006.jpg"/>
</fig>
<para><emphasis><emphasis role="underline">IWI module requirements</emphasis></emphasis></para>
<para>The IWI module is dedicated to suit requirements regarding the HMI (acoustic, displays, telltales, haptic steering wheel, haptic accelerator pedal, haptic safety belt), actuation of external lights, lateral actuation (steering angle and steering torque controller) and longitudinal actuation (engine acceleration controller). The functional architecture of the IWI platform is depicted in <link linkend="F2-7">Figure <xref linkend="F2-7" remap="2.7"/></link>.</para>
<fig id="F2-7" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F2-7">Figure <xref linkend="F2-7" remap="2.7"/></link></label> 
<caption><para>DESERVE IWI platform.</para></caption>
<graphic xlink:href="graphics/ch02_fig007.jpg"/>
</fig>
<para>Different levels in the development process of ADAS require different instances (i.e. realizations) of the generic DESERVE platform &#x02013; from PC based (development level 1) to production hardware (development level 4). With increasing development levels, additional requirements need to be addressed. This principle shall be explained in the next two subsections.</para>
</section>
<section class="lev2" id="sec2-3-3">
<title>2.3.3 Rapid Prototyping Framework Requirements (Development Level 2)</title>
<para>This section shortly outlines the main requirements for the DESERVE rapid prototyping platform. The main intention here is to specify a flexible and modular rapid prototyping environment allowing ADAS related perception, application and intervention algorithms to be developed in short iteration cycles and to be prototyped directly in the vehicle. In order to do so, there is a need to connect different kinds of sensors to the development framework, to pre-process and fuse the sensor data, to calculate the actual ADAS applications and to finally drive the respective actuators.</para>
<para>The structure for the generic requirements in the previous section, the rapid prototyping system requirements are structured in hardware, software and FPGA code requirements. In addition, a distinction is made between perception (i.e. sensor data processing) and application algorithms.</para>
</section>
<section class="lev2" id="sec2-3-4">
<title>2.3.4 Additional Requirements for Embedded Multicore Platform with FPGA (Development Level 3)</title>
<para>While the main focus of development level 2 is on evaluation of algorithms in real-time on public roads, thus on ADAS functionalities and use in the DESERVE DAS function demonstrators, levels 3 (and 4) go significantly ahead in terms of fulfilling &#x0201C;critical&#x0201D; requirements like AUTOSAR compatibility, SPICE compliance and functional safety (ISO 26262) which are mandatory for industrial use of the platform. Due to limited resources and limited project duration, these requirements cannot be fully implemented in DESERVE. Nevertheless all the work done for the &#x0201C;non-industrialized&#x0201D; DESERVE platform can be (partly) reused or carried over to the industrialized version of the DESERVE platform (level 4).</para>
</section>
</section>
<section class="lev1" id="sec2-4">
<title>2.4 DESERVE Platform Specification and Architecture</title>
<para>The generic platform requirements were translated into specifications, which represent the starting point for the development of modules for the DESERVE platform. The specifications were included into an Excel file which is accessible to all project partners via the project server. By means of an iterative process, both specifications and software design were refined and improved. A summary of the specification approach and of the specifications derived from the DESERVE platform requirements is provided in deliverable D1.3.1 [<link linkend="ch02_B2">2</link>].</para>
<section class="lev2" id="sec2-4-1">
<title>2.4.1 DESERVE Platform Architecture</title>
<para>The architecture of the DESERVE development platform shall follow both the principle of standard DAS development cycles and the mappings of application building blocks to final, often heterogeneous hardware implementations. To date there is no tool or framework available that covers both requirements at the same time on the same platform.</para>
<para>In the early concept and implementation phase the basic development, specification and validation (e.g. with MIL, SIL or HIL) is often done with another development framework (both for SW and HW) than the one applied for the final target platform. Little is known or taken into account from the final embedded system characteristics when first application algorithms are programmed and very often the SW modules written in this first development environment have to be reprogrammed from the scratch when porting it to the embedded system on chip. If the software, mostly written in a high-level programming language, finally fits the target system one has selected for series production, is a game of pure chance and not rarely during the series product development cycle a larger target system or some &#x0201C;add-ons&#x0201D; have to be chosen. With the new design space exploration methodology the certainty to select the suitable embedded target system at first time is significantly increased.</para>
<para>The DESERVE development platform architecture has to comply with the following basic needs:</para>
<itemizedlist mark="bullet" spacing="normal">
<listitem><para>Enough flexibility to encompass different development environments in a common, seamless framework for both the high-level algorithm development and the easy porting of these SW modules to the embedded target platform.</para></listitem>
<listitem><para>Real time recording and playback capabilities for both the high-level and embedded system implementations.</para></listitem>
<listitem><para>A communication architecture that is capable to shift SW portions from the high-level development side to the embedded target system as required (i.e. bypassing with HW accelerators).</para></listitem>
<listitem><para>A seamless interoperability and replacement between the high-level (i.e. PC-based) and embedded target systems both for development and validation purposes.</para></listitem>
</itemizedlist>
<para>The basic idea and intention of this hardware architecture is to standardize the interfaces between the three different development concept levels as good as possible.</para>
<para>Inputs from proprietary ADAS sensor systems and information sources are analyzed via a generic interface no. 1 to the PC based development environment. Here the ADTF tool with its filter programming concept is used to develop or improve SW modules on a high-level programming language. The partitioning and optimization of parts of the SW modules is consecutively done by shifting such portions over the generic interface no. 2 to the embedded controller framework that is already much nearer to the final commercial product. Via this bidirectional interface bypassing techniques like PIL (embedded Processor In the Loop) can be realized. In a final step, dedicated HW accelerators can be linked in via the generic interface no. 3 by applying the same bypassing concept. Especially computationally intensive tasks can so be &#x0201C;outsourced&#x0201D;, so that even the PC-based platform is capable to keep the stringent real-time constraints.</para>
<para>Depending on the performance of the PC either all or only specific parts of the SW modules can be executed there. During the development process more and more SW parts are transferred to the HW-Accelerator level, which, in the final development stage, results in the next generation embedded ADAS target system. At this last development step, the level 1 (PC) and level 2 (embedded controller) platform will only serve as a shell to keep up the overall development framework.</para>
<fig id="F2-8" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F2-8">Figure <xref linkend="F2-8" remap="2.8"/></link></label> 
<caption><para>DESERVE platform (e.g. for development Level 2 &#x02013; rapid prototyping system based on mixed PC and embedded controller framework).</para></caption>
<graphic xlink:href="graphics/ch02_fig008.jpg"/>
</fig>
<para>Reuse of already existing components from former ADAS generations may be used in the early development phase as HW accelerators for computational intensive calculations. Mainly standard algorithms that are fixed and receive no further modifications are preferred candidates for such specific HW accelerators.</para>
<para>This section summarizes the DESERVE platform architecture aspects. It considers hard- and software architecture aspects. The platform architecture is described in detail in deliverable D25.2 [<link linkend="ch02_B4">4</link>].</para>
<section class="lev3" id="sec2-4-1-1">
<title>2.4.1.1 Hardware architecture</title>
<para>DESERVE has to be flexible enough to be implemented in a distributed and scalable architecture (several modules, each of them able to sense and/or process and/or actuate) or a concentrated one (sensors and actuators all linked with a single unit of processing and control). Task 2.5.1 identifies which conditions have to be satisfied by the individual subsystem architectures in order to be compliant with the DESERVE generic hardware platform.</para>
<para>For maximum reusability the DESERVE concept and hardware architecture was designed in such a way that subsystems of different generations (or respectively the kernels of it) can be used in parallel, thereby enabling the rapid and effective creation of next-generation innovative ADAS systems by using well tested and certified kernel functions of the &#x0201C;old&#x0201D; system which partly could be already implemented as SoC (System on Chip). The DESERVE development platform can be seen as a flexible rapid-prototyping environment that enables fast and efficient development of next generation ADAS functions in a continuous iteration cycle between the current and next-generation embedded subsystem components.</para>
<para>Furthermore, the DESERVE concept is flexible enough for different DESERVE partners to make different implementations. These would be of forms that might in future be interoperable, although DESERVE will not attempt to define detailed standards which would be necessary for actual interoperability.</para>
<para>The main DESERVE idea concerns the use of one common platform system (<link linkend="F2-9">Figure <xref linkend="F2-9" remap="2.9"/></link>) for all ADAS functional modules, instead of the current approach to have one platform for each individual ADAS system. Basically, three main hardware architecture challenges arise from this idea:</para>
<itemizedlist mark="bullet" spacing="normal">
<listitem><para>Automotive quality: The platform needs to provide high reliability over the complete automotive temperature range, power supply and environmental conditions. As ADAS systems address safety aspects, the platform should implement as far as possible the ISO 26262 requirements, i.e. at least the hardware components that are near to the final product unit shall support the required ASIL level.</para></listitem>
<listitem><para>Possibility to extend hardware capabilities: The platform needs to be designed up-front to support the possibility to include additional hardware into the system. Standard sensor interfaces are needed, for instance, but also standardized interfacing to external FPGA/DSP for performance enhancement is required. For scalability purposes, such external devices need to be cascadable. Similar considerations hold for the memory interface capability.</para></listitem>
<listitem><para>A special case of hardware extension capabilities is the reuse of serial parts from earlier generations to speed up the development process or to increase the sensor perception by placing more sensors on the car.</para></listitem>
<listitem><para>Finally, a seamless environment tool chain is needed. One key requirement lies in the reuse of the existing tool ecosystem over several platform generations. Further, we should target adaptability of the tools to the broad industry use cases, e.g. next generation video and radar sensors. Additionally, real-time monitoring and debugging of interface and processing for development purposes represent key challenges.</para></listitem>
</itemizedlist>
<fig id="F2-9" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F2-9">Figure <xref linkend="F2-9" remap="2.9"/></link></label>
<caption><para>DESERVE approach &#x02013; use of common platform for all ADAS modules.</para></caption>
<graphic xlink:href="graphics/ch02_fig009.jpg"/>
</fig>
</section>
<section class="lev3" id="sec2-4-1-2">
<title>2.4.1.2 Software architecture</title>
<para>As for hardware architecture, the characteristics and constraints that the software architecture has to fulfill to accept an application based on modules developed inside the DESERVE platform (<link linkend="F2-10">Figure <xref linkend="F2-10" remap="2.10"/></link>) were identified. AUTOSAR standards were considered <footnote id="fn2_1" label="1"><para>Note: Being a research project, the development work conducted in DESERVE is discharged from being fully compliant with the AUTOSAR standard. Where possible and easy to implement, inputs from AUTOSAR were considered, of course. A mandatory request for AUTOSAR compliance is, however, not up for discussion.</para></footnote>.</para>
<fig id="F2-10" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F2-10">Figure <xref linkend="F2-10" remap="2.10"/></link></label> 
<caption><para>DESERVE platform architecture.</para></caption>
<graphic xlink:href="graphics/ch02_fig0010.jpg"/>
</fig>
<para>The key architecture challenges are: AUTOSAR Standards Architecture for the full platform system including performance accelerators, request for high SW re-usability/testability including re-use of older generation software blocks, fast time to market, highly optimized library for optimal performance, automatic code generation, standard compiler/tool chain and finally, hardware tool software support for realtime debugging, high speed parallel sensor data capture for validation and on-system debugging is required.</para>
<para><emphasis>Application Software Modules</emphasis></para>
<para>On the base of AUTOSAR standard, the general software architecture can be represented in three main layers: low level (basic software: this level abstracts from the hardware, provides basic and complex drivers and services for high level, i.e. memory, I/O), middle level (virtual function bus and runtime infrastructure) and high level (application software components).</para>
<para>The AUTOSAR standard introduces two architectural concepts (respects to other embedded software architectures) that facilitate infrastructure independent software development. Namely, these are the Virtual Function Bus (VFB) and the Runtime Infrastructure (RTE) that are closely related to each other.</para>
<para>In order to realize this degree of flexibility against the underlying infrastructure, the AUTOSAR software architecture follows several abstraction principles. In general, any piece of software within an AUTOSAR infrastructure can be seen as an independent component while each AUTOSAR application is a set of inter-connected AUTOSAR components.</para>
<para>Further, the different layers of abstraction allow the application designer to disregard several aspects of the physical system on which the application will later be deployed on, like type of micro controller, type of ECU hardware, physical location of interconnected components, networking technology/buses or instantiation of components/number of instances.</para>
<para>The middle level, VFB (<link linkend="F2-11">Figure <xref linkend="F2-11" remap="2.11"/></link>), provides generic communication services that can be consumed by any existing AUTOSAR software component. Although any of these services are virtual. They will in a later development phase be mapped to actual implemented methods that are specific for the underlying hardware infrastructure. The RTE (runtime environment) provides an actual representation of the virtual concepts of the VFB for one specific ECU.</para>
<fig id="F2-11" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F2-11">Figure <xref linkend="F2-11" remap="2.11"/></link></label> 
<caption><para>Overview on the principles of virtual interaction using the AUTOSAR.</para></caption>
<graphic xlink:href="graphics/ch02_fig0011.jpg"/>
</fig>
<para>An AUTOSAR software component in general is the core of any AUTOSAR application. It is built as a hierarchical composition of atomic software components. The AUTOSAR software component can be divided in Application Software Component and AUTOSAR Interface. It is important for DESERVE to preserve (and build up during the prototyping phase of the applications) the AUTOSAR modularity concept. Consequently, DESERVE focuses on the development of modular Application Software Components.</para>
<para><emphasis>Multi-task option to permit adding and removing of functionalities</emphasis></para>
<para>The modularity is one the most important directive in the design of a global architecture, their functions and modules for embedded systems. Different multi-tasks (called processes) can be executed by sharing common processing resources in the same CPU. In this line, multi-thread languages as C++ are used by different developers around the world.</para>
<para>The software environments used in the DESERVE platforms (e.g. ADTF and RTMaps) are able to transfer functions already programmed in C and C++. These tools are multi-sensory software, designed for fast and robust implementation in multitask systems. They use functional blocks (called components) for data flowing between different types of modules: video, audio, byte streams, CAN frames, among others.</para>
<para>This multi-threaded architecture allows the use of multiple asynchronous sensors within the same application (see RTMaps and ADTF sections in D1.3.2 [<link linkend="ch02_B3">3</link>]). Moreover, they take advantage of multi-processor architecture for more computing power.</para>
<para>Based on the Development Platform Requirements [<link linkend="ch02_B1">1</link>], there are three main stages in the control architecture: perception, application and IWI platform. The goal of the DESERVE approach is to add different functions (Multi-task) in the same platform.</para>
</section>
</section>
<section class="lev2" id="sec2-4-2">
<title>2.4.2 DESERVE Platform Interface Definition</title>
<para>The definition of the DESERVE interface architecture is described together with state of the art ADAS interfaces and next generation interfaces in deliverable D2.5.4 [<link linkend="ch02_B5">5</link>]. Due to the high relevance of the interface architecture for the DESERVE platform concept, a brief description is included in the next paragraphs.</para>
<section class="lev3" id="sec2-4-2-1">
<title>2.4.2.1 Definition of DESERVE interface architecture</title>
<para>The definitions of the interface architecture plays a central role for the communication and data exchange between the different DESERVE platform modules and sensor components. In the DESERVE deliverable D2.2.1 [<link linkend="ch02_B12">12</link>] the abstracted interface descriptors are already defined on a content-based hierarchical level. With standardized information data flow between the numerous platform modules both the development time and the extension in performance and scope of the encapsulated modules can be realized very efficiently and in a well-structured way. The architecture of the interface has to be defined individually for each of the existing OSI layers, starting from the physical layer up to the application layer.</para>
<para>For modules that only communicate within the same hardware unit the physical data and communication layer are no longer needed. Instead, a message box oriented data transfer link is proposed for usage in the DESERVE project. The data to be transmitted is written in a predefined message box descriptor field and message flags trigger the synchronization and data updates in the concerned modules. The message box principle is sketched in <link linkend="F2-12">Figure <xref linkend="F2-12" remap="2.12"/></link>.</para>
<fig id="F2-12" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F2-12">Figure <xref linkend="F2-12" remap="2.12"/></link></label> 
<caption><para>Message box principle for intra-unit communication.</para></caption>
<graphic xlink:href="graphics/ch02_fig0012.jpg"/>
</fig>
<para>The interfacing concept of the AUTOSAR standard is considered and incorporated in the DESERVE platform where useful and appropriate. The AUTOSAR mode of operation, as depicted in <link linkend="F2-13">Figure <xref linkend="F2-13" remap="2.13"/></link>, fits already quite well with the general DESERVE approach proposed in this document.</para>
<fig id="F2-13" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F2-13">Figure <xref linkend="F2-13" remap="2.13"/></link></label> 
<caption><para>AUTOSAR application software concept.</para></caption>
<graphic xlink:href="graphics/ch02_fig0013.jpg"/>
</fig>
<para>In order to achieve a good reusability of embedded software functions, it has proven to be efficient in the industry to separate the &#x0201C;function software&#x0201D; from parameters defining the behavior of the software (= calibration data). This allows generating embedded systems with generic software functionalities by &#x0201C;embedded systems suppliers&#x0201D; (e.g. Continental, Bosch or others). Such systems are bought by OEMs for building their ADAS systems. The OEM can adapt the generic function to the individual behavior significant for his customers &#x0201C;just by calibration&#x0201D;. In this process via an application system (market leader is INCA for example), the calibration data can be changed while the embedded system is running &#x02013; regardless if simulated on a PC or running already on the target hardware. The separation of calibration date and function software is also allowed according to the AUTOSAR concept.</para>
</section>
<section class="lev3" id="sec2-4-2-2">
<title>2.4.2.2 Existing ADAS interfaces</title>
<para>All electronic embedded systems used to control vehicle functions (specifically ADAS) need communications networks and protocols to manage all the process information. The modules receive input information from a network of sensors (e.g. for engine speed, lasers, cameras, etc.) and send commands to the control stage (Application platform in DESERVE), and finally to the actuators or warning systems that execute the commands (IWI platform) [<link linkend="ch02_B1">1</link>].</para>
<para>Due to the increasing complexity of modern ADAS applications, point-to-point wiring has been replaced by multiple networks and communications protocols. These protocols use different physical media to provide safe connection among components on the vehicle. These include single wires, twisted wire pairs, optical fiber cables, and communication over the vehicle&#x02019;s power lines.</para>
<para><emphasis><emphasis role="underline">Communication protocols</emphasis></emphasis></para>
<para>Some of the most known and used communication protocols and standards used in nowadays vehicles are:</para>
<itemizedlist mark="bullet" spacing="normal">
<listitem><para>CAN (controller area network)</para></listitem>
<listitem><para>VAN (vehicle area network)</para></listitem>
<listitem><para>FlexRay</para></listitem>
<listitem><para>LIN (local interconnect network)</para></listitem>
<listitem><para>SAE-J1939 and ISO 11783</para></listitem>
<listitem><para>MOST (Media-Oriented Systems Transport)</para></listitem>
<listitem><para>Keyword Protocol 2000 (KWP2000)</para></listitem>
</itemizedlist>
<para>Recent vehicles have installed multiple networks (with different protocols) to communicate among electronic control units (ECU) onboard. The networks are isolated from one another for several reasons, including bandwidth and integration concerns.</para>
<para><emphasis><emphasis role="underline">Existing interface standards</emphasis></emphasis></para>
<para>Current ADAS systems are designed and built to provide a dedicated answer to specific functionalities. Most ADAS are including in the same box the sensor itself and the processing unit. So, the raw data provided by the sensor (camera, radar) are directly loaded inside the ECU unit and processed. Only high level (processed) information is available on the communication buses. Raw data (e.g. pixel information of images) is not available.</para>
<para>The ADAS modules are dedicated products which communicate mainly within the same hardware unit. Nevertheless, to adjust the algorithms in function of the vehicle status, it&#x02019;s necessary to provide the ADAS modules with some vehicle information as: speed, yaw rate, direction indicator status, etc.</para>
<para>To manage the vehicle information acquisition and sending of the outputs, various communication interfaces are available, depending on the product, e.g. CAN or FlexRay communication interfaces.</para>
<para>The communication bandwidth requirements increase more and more with more and more complex applications, the existing network are not specified to cover the increasing demands for bandwidth, and the Ethernet price. Ethernet seems to be an alternative to the existing communication hardware.</para>
</section>
<section class="lev3" id="sec2-4-2-3">
<title>2.4.2.3 Definition of next generation interfaces</title>
<para>The definition of next generation high speed sensor interfaces is the key to enable the improvement for next generation driver assistant systems. An optimized interface leads to optimized dataflow and system performance. For each sensor family (Camera/RADAR) there is a dedicated interfacing needed.</para>
<para><emphasis><emphasis role="underline">Parallel camera interface (CIF)</emphasis></emphasis></para>
<para>The Camera Interface (CIF) represents a complete video and still picture input interface transferring data from an image sensor into video memory. Furthermore, several hardware blocks &#x02013; performing image processing operations on the incoming data &#x02013; are provided (<link linkend="F2-14">Figure <xref linkend="F2-14" remap="2.14"/></link>).</para>
<fig id="F2-14" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F2-14">Figure <xref linkend="F2-14" remap="2.14"/></link></label> 
<caption><para>Camera Interface (CIF) overview.</para></caption>
<graphic xlink:href="graphics/ch02_fig0014.jpg"/>
</fig>
<para>Apart from providing the physical interfacing to various types of camera sensor modules, the CIF block implements image processing and encoding functionalities. The integrated image processing unit supports image sensors with integrated YCbCr processing. Additionally, the CIF also supports the transfer of RAW (e.g. Bayer Pattern) images and non-frame synchronized data packets. The CIF block features a 16 bit parallel interface. All output data are transmitted via the memory interface to a BBB (Back Bone Bus) system using the master interface. Programming of the CIF is done by register read/write transactions using a BBB slave interface.</para>
<para>The CIF provides a sensor/camera interface for a wide variety of video applications and it is optimized for high speed data transmission under terms of low power consumption. This module is designed to be used for the following use cases: video capturing/encoding, still image capturing in YCbCr with on-the-fly JPEG encoding and RAW frame data capturing.</para>
<para>The CIF requires fast system memory for image storage in either planar, semi-planar or interleaved YCbCr or RAW planar format or as JPEG compressed data. The iJPEG encoding engine should be able to generate a full JFIF 1.02 compliant JPEG file that can be displayed directly by any image viewer. Important YCbCr formats &#x02013; which are used for video compression (e.g. MPEG4) for instance &#x02013; are supported. For on-the-fly encoding macro block line interrupts are generated to trigger video encoding.</para>
<para><emphasis><emphasis role="underline">Serial RADAR interface (RIF)</emphasis></emphasis></para>
<para>Analog-to-digital converter (ADC) sample rates have been increasing steadily for years to accommodate newer bandwidth-hungry applications in communication, instrumentation, and consumer markets. Coupled with the need to digitize signals early in the signal chain to take advantage of digital signal processing techniques, this has motivated the development of high-speed ADC cores that can digitize at clock rates higher than 100 MHz to 200 MHz with 8 to 12 bit resolution.</para>
<para>In standalone converters, the ADC needs to be able to drive receiving logic and accompanying PCB trace capacitance. Current switching transients due to driving the load can couple back to the ADC analog front end, adversely affecting performance. One approach to minimize this effect has been to provide the output data at one-half the clock rate by multiplexing two output ports, reducing required edge rates, and increasing available settling time between switching instants.</para>
<para><emphasis><emphasis role="underline">Use of LVDS for ADC high speed data output</emphasis></emphasis></para>
<para>A new approach to providing high-speed data outputs while minimizing performance limitations in ADC applications is the use of LVDS (low voltage differential signaling). Infineon is incorporating LVDS output capability in new RF devices ADCs&#x02014;and will include LVDS input capability in its new micro-controller designs.</para>
<para><emphasis><emphasis role="underline">Standards</emphasis></emphasis></para>
<para>Two standards have been written to define LVDS. One is the ANSI/TIA/EIA-644 which is titled &#x0201C;Electrical Characteristics of Low Voltage Differential Signaling (LVDS) Interface Circuits.&#x0201D; The other is IEEE Standard 1596.3 which is titled &#x0201C;IEEE Standard for Low-Voltage Differential Signals (LVDS) for Scalable Coherent Interface&#x0201D; (SCI).</para>
<para><emphasis><emphasis role="underline">Generic interface to communicate between ADTF project and FPGA based hardware platform</emphasis></emphasis></para>
<para>In order to allow an easy and standard communication between an ADTF-Project and the FPGA-based hardware platform, a generic interface is used. The generic interface realizes the communication with different processing elements implemented in the FPGA-based hardware platform transparent to the user.</para>
</section>
</section></section>
<section class="lev1" id="sec2-5">
<title>2.5 Safety Standards and Certification Concepts</title>
<para>Some concepts related to modular certification have already been adopted by current standards and thus have found their way into the state of the practice. This is particularly true for the fields of automotive systems because the trend towards modularized architectures has been particularly strong in this field.</para>
<section class="lev2" id="sec2-5-1">
<title>2.5.1 Safety Impact of DESERVE</title>
<para>Modularization of a common ADAS platform comes with a clear impact on safety. Modules will interact, for example on Missed Trigger Interaction, Shared Trigger Interaction, Sequential Action Interaction and/or Looping Interaction.</para>
<para>Module interaction implies that any change in operation of one module (feature) can be attributed in part or in whole to the presence of any other module (feature) in the operational environment, as illustrated in the <link linkend="F2-15">Figure <xref linkend="F2-15" remap="2.15"/></link>.</para>
<fig id="F2-15" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F2-15">Figure <xref linkend="F2-15" remap="2.15"/></link></label> 
<caption><para>Module interaction implies changes in system behavior.</para></caption>
<graphic xlink:href="graphics/ch02_fig0015.jpg"/>
</fig>
</section>
<section class="lev2" id="sec2-5-2">
<title>2.5.2 Functional Safety of Road Vehicles (ISO 26262)</title>
<para>The international standard ISO 26262 for the functional safety of street vehicles contains the so-called concept of Safety Element out of Context (SEooC). A SEooC is defined as a component for which there is no single predestinated application in a specific system. Therefore, the SEooC developer does not know the concrete role the product has to play in the safety concept. Sub-systems, hardware components, and software components may be developed as SEooCs. Typical software SEooCs are reusable, application independent components such as operating systems, libraries, or middleware in general.</para>
<para>For SEooC development, the standard suggests specifying assumed safety requirements and developing the system according to these requirements. When the SEooC is to be used in a specific system, the system developer has to specify the demanded requirements, which can subsequently be checked against the assumed requirements. If there is a match between the demanded and the guaranteed (assumed) requirements, system and component are compatible.</para>
<para>The standard does not provide any suggestions or methods on how to identify safety requirements such as to increase the chance that assumed and real requirements will actually match. The standard specifies a relatively coarse-grained process for embedding a SEooC development into the standard&#x02019;s safety lifecycle. This approach deals with hierarchical modularization since it focuses on the SEooC&#x02019;s role as a sub-component of a system.</para>
<para>In general, integration of the SEooC is expected to be done at development time and thus there is no explicit support for open systems where components are to be integrated dynamically.</para>
</section>
<section class="lev2" id="sec2-5-3">
<title>2.5.3 Guidelines Related to ISO 26262</title>
<para>ISO 26262 is a derivative of IEC 61508, the generic functional safety standard for electrical and electronic (E/E) systems. Ten volumes make up ISO 26262. It is designed for series production cars, and contains sections specific for management, concept and development phase, production, operation, service and decommission.</para>
<para>The ISO 26262 requires the application of a &#x0201C;functional safety approach&#x0201D;, starting from the preliminary vehicle development phases and continuing throughout the whole product lifecycle.</para>
<para>The DESERVE project focuses on the concept and development (at system, hardware and software level) phases of the lifecycle. During these phases, the main steps defined by the Standard are:</para>
<para>Item definition: the Item has to be identified and described. To have a satisfactory understanding of the item, it is necessary to know about its functionality, interfaces, and any relevant environmental conditions.</para>
<para>Hazard analysis and risk assessment: to evaluate the risk associated with the item under safety analysis, a risk assessment is required. The risk assessment considers the functionality of the item and a relevant set of scenarios. This step produces the ASIL (Automotive Safety Integrity Level) level and the top level safety requirements.</para>
<para>The ASIL is one of the key concepts in the ISO 26262. The intended functions of the system are analyzed with respect to possible hazards. The ASIL asks the question: &#x0201C;If a failure arises, what will happen to the driver and to associated road users?&#x0201D;.</para>
<para>The risk of each hazardous event is evaluated on the basis of frequency of the situation (or &#x0201C;exposure&#x0201D;), impact of possible damage (or &#x0201C;severity&#x0201D;) and controllability.</para>
<para>The ASIL level is standardized in the scale: QM: quality management, no-risk and A, B, C, D: increasing risk with D being the most demanding. The ASIL shall be determined without taking into account the technologies used in the system. It is purely based on the harm to the driver and to the other road users.</para>
<para>Identification of technical safety requirements: the top level safety requirements are detailed and allocated to system components.</para>
<para>Identification of Software and Hardware safety requirements: The technical safety requirements are divided into hardware and software safety requirements. The specification of the software safety requirements considers constraints of the hardware and the impact of these constraints on the software.</para>
<para>To take into account the functional safety approach, the DESERVE applications should consider the application of the following main points: analyze risk early in the development process; establish the appropriate safety requirements and consider these requirements in software and hardware development.</para>
<para>The impact of the standard is different for the development of warning functions, control functions or automated driving functions.</para>
</section>
<section class="lev2" id="sec2-5-4">
<title>2.5.4 Safety and AUTOSAR</title>
<para>In the automotive domain, &#x00D6;stberg and Bengtsson [<link linkend="ch02_B14">14</link>] propose an extension to AUTomotive Open System Architecture (AUTOSAR) which consists of a safety manager that actively enforces the safety rules described in dynamic safety contracts. Their main contribution is a conceptual model of safety architecture suitable for runtime based safety assessment. Openness and Adaptivity were both addressed.</para>
<para>Also in the automotive domain, Frtunikj et al. [<link linkend="ch02_B15">15</link>] present a runtime qualitative safety assessment that considers Automotive Safety Integrity Level (ASIL) and its decompositions in open automotive systems. In their solution, the authors consider the modularization of safety-assessment using Safety Elements out of Context (SEooC) from ISO 26262. In their approach, the SEooC was extended and the safety-assessment is done at runtime by a Safety Manager component.</para>
</section>
<section class="lev2" id="sec2-5-5">
<title>2.5.5 Safety Mechanisms for DESERVE Platform</title>
<para>As an example, this paragraph summarizes some features of the safety mechanisms that are available by Infineon&#x02019;s multi-core platform AURIX which represents a potential instance of DESERVE platform (development level 3). Its safety documentation includes:</para>
<itemizedlist mark="bullet" spacing="normal">
<listitem><para>Safety case report providing the arguments with evidence that the objectives of the ISO 26262 and the safety requirements for a component are complete and satisfactory.</para></listitem>
<listitem><para>FMEDA (customer and Infineon proprietary document)</para></listitem>
<listitem><para>Safety manual including an overview of the assumed application use cases and guidance for the application level, a summary of safety features and mechanisms and their recommended use as well as the summary of achieved safety metrics and resulting ASIL compliance [<link linkend="ch02_B13">13</link>].</para></listitem>
</itemizedlist>
<para>The AURIX microcontroller platform is developed as a SEooC (Safety Element out of Context) and provides the safety mechanisms summarized in <link linkend="F2-16">Figure <xref linkend="F2-16" remap="2.16"/></link>. It provides a Safe Computation Backbone compliant with ISO 26262 ASIL D (this includes Single Point Fault Metric fully supported by HW mechanisms and Latent Fault Metric supported by SW (SafeTlib), Logic MIST, MBIST). Support criteria for coexistence of elements are enabled through a layered protection system (covering CPU tasks, Shared Memories, Peripherals), CPU supervisor/user privileges, Safety Task Attribute and a rich set of counters &#x00026; watchdogs for program flow &#x00026; temporal monitoring. SEooC deliverables are the Safety Library (SafeTlib), Safety Manual to support SEooC integration and FMEDA to support computation of the ISO 26262 Metrics.</para>
<fig id="F2-16" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F2-16">Figure <xref linkend="F2-16" remap="2.16"/></link></label> 
<caption><para>SEooC safety mechanisms.</para></caption>
<graphic xlink:href="graphics/ch02_fig0016.jpg"/>
</fig>
<para>Top Level Safety Requirements (TLSR) related to the Microcontroller I/O sub-system are specified by the system integrator, as these vary for each application. TLSR1 (ASIL D) requires to avoid false output of the microcontroller for longer than the FTTI (Fault Tolerance Time Interval, <link linkend="F2-17">Figure <xref linkend="F2-17" remap="2.17"/></link>), while TLSR2 (ASIL B) only require to avoid unavailability of a safety mechanism for longer than one driving cycle.</para>
<fig id="F2-17" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F2-17">Figure <xref linkend="F2-17" remap="2.17"/></link></label> 
<caption><para>Top level safety requirements.</para></caption>
<graphic xlink:href="graphics/ch02_fig0017.jpg"/>
</fig>
<para>The Fault Tolerant Time Interval is more precisely defined by <link linkend="F2-18">Figure <xref linkend="F2-18" remap="2.18"/></link>. The application dependent fault detection time worst case is the diagnostic time interval. The fault detection time depends on the safety mechanism. The fault reaction time is the sum of failure signaling time and failure reaction time. Failure signaling time depends on the microcontroller architecture, while failure reaction time depends on the application. The failure signaling time is composed by the alarm forwarding time plus the alarm processing time plus the failure signaling time.</para>
<fig id="F2-18" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F2-18">Figure <xref linkend="F2-18" remap="2.18"/></link></label> 
<caption><para>Fault tolerant time interval (FTTI) definition.</para></caption>
<graphic xlink:href="graphics/ch02_fig0018.jpg"/>
</fig>
<para><emphasis><emphasis role="underline">Safety requirements</emphasis></emphasis></para>
<para>With the AURIX as basis for DESERVE platform realization, it fulfils the targets according to ISO 26262-5, 8.4.5, which defines requirements for ISO 26262 metrics. To achieve ASIL D, for instance, the single point failure metric (SPFM) needs to reach minimum 99% and the latent fault metric (LFM) needs to reach 90% or above. The minimum values of SPFM and LFM shall be reached by every vital part. The SPFM threshold levels shall be reached both for permanent and for transient faults. For a given ADAS application SPFM, LFM and PMHF (probabilistic metric related to hardware failures) metrics are estimated based on the vital, critical and application-dependent parts utilization.</para>
<para>In terms of PMHF for ASIL D safety goal, ISO 26262-5 requires a metric of less than 10 FIT (failure in time, referring to 10&#x002C6;9 hours). ISO 26262-5 9.4.3.6 and 9.4.3.7 specify the relationship between ASIL and FCR and DC (Residual Faults). To meet ASIL D requirements the diagnostic coverage for a FCR5 part shall be > 99.99%. The safety mechanisms are designed to achieve coverage of 99.99%.</para>
<para><emphasis><emphasis role="underline">Safety architecture</emphasis></emphasis></para>
<para>The safety architecture goal is to provide a safe computation platform for up to ASIL D safety applications according to ISO 26262, as this ASIL level is required for most next generation ADAS. To achieve this level, safe computation hardware and software, safe operating system as well as safe software architectures are required.</para>
<para>The generic elements (vital parts) of a safe computation hardware platform are summarized in <link linkend="F2-19">Figure <xref linkend="F2-19" remap="2.19"/></link>. Safe CPU requires hardware redundancy, realized by delayed lockstep CPU with enhanced timing and design diversity. Safe SRAMs allows information redundancy (realized by standard SECDED ECC, address signatures). Also safe Flash memory is needed for information redundancy (realized by an enhanced ECC with more than 99% coverage of arbitrary multiple-bit fault). Enhanced error detection codes for covering data &#x00026; addressing faults lead to safe interconnects and support information redundancy. The clock system frequency range monitors using internal high precision independent clock source, internal &#x00026; external watchdogs. Finally power supply range monitoring is implemented for the internal regulators.</para>
<fig id="F2-19" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F2-19">Figure <xref linkend="F2-19" remap="2.19"/></link></label> 
<caption><para>Generic elements of safe computation hardware platform.</para></caption>
<graphic xlink:href="graphics/ch02_fig0019.jpg"/>
</fig>
<para>To achieve a safe computation software platform an ASIL D compliant operating system needs to be used featuring memory protection and time protection. Further it needs to provide services for program flow monitoring, end-to-end communication safety protocols as well as safe interrupt vector generation. ASIL D compliant software is required to be developed according to ISO 26262 part 6.</para>
<para>The AURIX platform ensures freedom of interference at software level by means of SW isolation, while freedom of interference at hardware level is guaranteed by HW isolation. The CPU MPU (memory protection unit) monitors the direct access to the local memories, applies to software tasks and allows dynamic re-configuration. The bus MPU monitors the SRAM accesses via interconnect. Finally register access protection monitors write access rights to module registers.</para>
</section>
</section>
<section class="lev1" id="sec2-6">
<title>References</title>
<orderedlist numeration="arabic" continuation="restarts" spacing="normal">
<listitem><para><anchor id="ch02_B1"/>DESERVE deliverable D1.2.1 &#x02013; Development platform requirements.</para></listitem>
<listitem><para><anchor id="ch02_B2"/>DESERVE deliverable D1.3.1 &#x02013; Development platform specification.</para></listitem>
<listitem><para><anchor id="ch02_B3"/>DESERVE deliverable D1.3.2 &#x02013; Method and tools specifications.</para></listitem>
<listitem><para><anchor id="ch02_B4"/>DESERVE deliverable D2.5.2 &#x02013; Platform system architecture.</para></listitem>
<listitem><para><anchor id="ch02_B5"/>DESERVE deliverable D2.5.4 &#x02013; Standard interfaces definition. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=DESERVE+deliverable+D2%2E5%2E4+-+Standard+interfaces+definition%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch02_B6"/>AUTOSAR, <ulink url="http://www.autosar.org">http://www.autosar.org</ulink></para></listitem>
<listitem><para><anchor id="ch02_B7"/>ISO 26262, Road vehicles &#x02013; Functional safety (<ulink url="http://www.iso.org">www.iso.org</ulink>).</para></listitem>
<listitem><para><anchor id="ch02_B8"/>A. Sandberg, D. J. Chen, H. L&#x00F6;nn, R. Johansson, L. Feng, M. T&#x00F6;rngren, S. Torchiaro, R. Tavakoli-Kolagari, A. Abele &#x02013; Model-based Safety Engineering of Interdependent Functions in Automotive Vehicles Using EAST-ADL2, Lecture Notes in Computer Science, Volume 6351, Series: Computer Safety, Reliability, and Security (SAFECOMP), Pages 332&#x02013;346. Springer Berlin/Heidelberg, 2011. ISSN 0302-9743.</para></listitem>
<listitem><para><anchor id="ch02_B9"/><ulink url="http://www.interactive-ip.eu">www.interactive-ip.eu</ulink></para></listitem>
<listitem><para><anchor id="ch02_B10"/><ulink url="http://www.haveit-eu.org">www.haveit-eu.org</ulink></para></listitem>
<listitem><para><anchor id="ch02_B11"/>S. Durekovic (NAVTEQ), Perception Horizon: Approach to Accident Avoidance by Active Intervention, Workshop &#x0201C;How can new sensor technologies impact next generation safety systems?&#x0201D; IEEE IV 2011, June 5 2011, Baden&#x02013;Baden.</para></listitem>
<listitem><para><anchor id="ch02_B12"/>DESERVE Deliverable D2.2.1 &#x02013; Perception layer Preliminary Release.</para></listitem>
<listitem><para><anchor id="ch02_B13"/>AURIX Safety Manual, Infineon confidential document, no. AP32224, v1.1, dated Sept. 2014.</para></listitem>
<listitem><para><anchor id="ch02_B14"/>K. &#x00D6;stberg und M. Bengtsson, &#x0201C;Run time safety analysis for automotive systems in an open and adaptive environment,&#x0201D; in SAFECOMP 2013 &#x02013; Workshop ASCoMS (Architecting Safety in Collaborative Mobile Systems), Toulouse, France, 2013. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=K%2E+%D6stberg+und+M%2E+Bengtsson%2C+%22Run+time+safety+analysis+for+automotive+systems+in+an+open+and+adaptive+environment%2C%22+in+SAFECOMP+2013+-+Workshop+ASCoMS+%28Architecting+Safety+in+Collaborative+Mobile+Systems%29%2C+Toulouse%2C+France%2C+2013%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch02_B15"/>J. Frtunikj, M. Asmbruster und A. Knoll, &#x0201C;Data-Centric Middleware support for ASIL assessment and decomposition in open automotive systems&#x0201D;. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=J%2E+Frtunikj%2C+M%2E+Asmbruster+und+A%2E+Knoll%2C+%22Data-Centric+Middleware+support+for+ASIL+assessment+and+decomposition+in+open+automotive+systems%22%2E" target="_blank">Google Scholar</ulink></para></listitem>
</orderedlist>
</section>
</chapter>
<chapter class="chapter" id="ch03" label="3" xreflabel="3">
<title>Driver Modelling</title>
<para class="section"><emphasis role="strong">Jens Klimke and Lutz Eckstein</emphasis></para>
<para>Institute for Automotive Engineering, RWTH Aachen University, Steinbachstra&#x00DF;e 7, 52074 Aachen, Germany</para>
<section class="lev1" id="sec3-1">
<title>3.1 Introduction</title>
<para>Traffic simulations become more and more relevant for the development of Advanced Driver Assistant Systems (ADAS) and algorithms for automated driving. They are used to evaluate the functions concerning important impact factors like safety, efficiency, mobility or costs. Therefore, the system is tested and evaluated as a component of the virtual vehicle in simulations. The factors manageability and acceptance of the users regarding the tested system are prospected and evaluated in driving simulators, where the real driver can be part of the virtual environment. Both, in traffic simulations and in simulators, the realistic behaviour of the surrounding virtual road users to the equipped vehicle is an important requirement for a suitable evaluation of the system because this behaviour influences the reaction of ADAS and driver significantly. Moreover, it is necessary, that the behaviour of the traffic can be adjusted systematically in order to generate defined traffic situations of relevant constellations and in different nuances of criticality. As in real traffic, small changes in the initial conditions can produce a large difference in the result. This phenomenon can only be reproduced in a simulation if the driving behaviour patterns reflect the human driver behaviour closely.</para>
<para>The basis of this <emphasis>driver model</emphasis> and its possible functionality or ability is the underlying simulation environment. To determine the risk of congestion for example, a traffic simulation environment with <emphasis>macroscopic</emphasis>, e.g., fluid dynamic based traffic behaviour, is suitable. The easiest macroscopic representation of virtual traffic could be an equation with the result of an average velocity dependent on the density of traffic. This might be a complex mathematical relation producing suitable results for some purposes but it is impossible to understand the specific inner traffic effects like congestion waves and traffic collapses. For such effects, the influences of the traffic elements on the driver models have to be understood.</para>
<para>These are basically the interactions between the driver-vehicle-units among each other and the reactions of the units to the traffic environment like traffic light systems or the road curvature. In this kind of traffic simulation, called <emphasis>microscopic</emphasis> traffic simulation, the desired controlling reaction of the driver or the automated function is calculated and implemented directly into the vehicle. This is done in form of a change of the dynamic state of the vehicle, e.g., a desired acceleration, which consequently results a change of velocity and position. The driver and the vehicle represent an inseparable unit, but entirely with a unit-specific behaviour. The behaviour might respect some dynamic restrictions of the vehicle and in some cases of the driver, but does not depict the driver-vehicle-interaction.</para>
<para>For the analysis of modern ADAS this kind of simulation is not suitable, as a driver has, e.g., to be able to override the system by using the control elements, like pedals, steering wheel or switches. An ACC for example can be switched off in critical situation by using the brake pedal or can be overridden by using the accelerator pedal to further increase or keep the acceleration. These effects can only be simulated if vehicle and driver are implemented as separate models and if the interfaces between driver model and vehicle model are used to implement the driver&#x02019;s wish to the vehicle. Thus, this concept can be called <emphasis>sub-microscopic</emphasis> or <emphasis>nanoscopic</emphasis>.</para>
<para>Another specific application for sub-microscopic traffic simulations is the exploration of detailed effects related to the vehicle, like fuel consumption analysis in specific traffic situations or environments. Within these analyses a very detailed vehicle model is needed. But it is not only the specific application which let us chose a higher level of traffic simulation. Obviously, the higher the level of detail, the more effects can be depicted with a single traffic simulation environment and model set-up but at the expense of computing time up to the loss of the real-time capability. Additionally, the effort of setting up the models increases due to the increase of model parameters. For the same reason the validation of the models is much more complex, too.</para>
<para>In the past decades many driver models where developed with special focuses on different specific elements of the driving task. Some try to show an optimal behaviour, without taking into account the physical and cognitive abilities and limitations of the human driver. Others focus on these restrictions or on the information process in the driver&#x02019;s brain and body and the capability of the driver to process different information in parallel. In literature many categories of driver models are published. J&#x00FC;rgensohn defines in [<link linkend="ch03_B1">1</link>] two basic categories of driver models, formal and non-formal models. <emphasis>Formal</emphasis> models have a fixed description but a changeable inner value. The result of formal models is reproducible, that means, the same conditions lead to the same output. <emphasis>Non-formal</emphasis> models are not described by those fixed dependencies (like equations or lingual definition) or they have a non-changeable (constant) character. Examples of formal models are <emphasis>descriptive</emphasis> models, which have a fixed description but have a character which is not defined by an input-output structure. In the European research project ASPECSS [<link linkend="ch03_B2">2</link>] and in Deliverable D3.1.1 [<link linkend="ch03_B3">3</link>] of the DESERVE project the definition is different. In these sources <emphasis>descriptive</emphasis> models are clearly defined (fixed, but not constant) and generate a numeric, quantitative output dependent on different numerical influences. This output is reproducible but can anyway contain stochastic elements. <emphasis>Functional</emphasis> models describe physical and psychological aspects of driving, like the information processes, the human structure of thinking and acting. They do not generate a numeric output but draw a picture of the elements of driving. The difference between functional and descriptive models in this definition is not unique and not complete; there are hybrid models and models which can&#x02019;t be matched to any of these categories. In this chapter, the distinction between <emphasis>formal</emphasis> and <emphasis>functional</emphasis> models is used to avoid the conflict of the two definitions of <emphasis>descriptive</emphasis> models.</para>
<para>In complex traffic simulations the usage of both kinds of models is needed to depict realistic traffic flow and driving behaviour. Formal models describe algorithms for a driver model how to reach its goal by setting defined reference values dependent on the input. Functional models can help to understand the driver&#x02019;s wishes and to create an eligible structure and decision algorithm.</para>
<para>In the DESERVE project, a rapid prototyping platform for the development of ADAS was created and a suitable tool-chain for the development process was outlined. The traffic simulation is an important tool in the development process of ADAS and thus is part of the DESERVE tool-chain. As described above, a realistic driver model is needed for the development and evaluation of modern ADAS. In the next sections, the way of modelling the driving behaviour is described, followed by the requirements for the DESERVE driver model. On the basis of the requirements the structure of a sophisticated driver model is developed and the used implementation techniques and strategies are explained. In the last section two different applications of the driver models are presented.</para>
</section>
<section class="lev1" id="sec3-2">
<title>3.2 Driver Modelling</title>
<para>Driving is not just a single decision and a single action at once. It is rather a complex interoperation of different motivations, perceptions, decisions and states with continuous and discrete changes. To create a realistic driver model, a strict delimitation between these elements has to be done and it is helpful to create a suitable structure with a unique and logical naming of the elements and well-defined interfaces. To develop such a structure, driving has to be analysed on the basis of typical driving scenarios, manoeuvres and actions.</para>
<para>Besides the perception and the handling or action, the information processing is the most important part of driving. Within the information processing, the driver estimates desired values for different future vehicle states he wants to achieve, like a desired speed, a desired following distance, and distance to stop. These inner desired states are called driver-variables or briefly <emphasis>variables</emphasis>. Often a driver has multiple desired values for the same variable, generated by different motivations, between which a decision is needed. As an example the desired speed shall be used: The driver can have multiple causes of choosing a desired speed. For example the following three: First, to reach the destination as soon as possible. Second, the speed limits on the road. Third, the curvature of the road combined with the need for safety. For each motivation, a desired speed can be determined. The speed limit for the first mentioned motivation is the maximum speed the driver would choose on a free, straight road. If there are no further influences like other road-users or speed limits, the driver would travel with this speed. Situations, which do not allow travelling with this speed, do not imply that it is not the driver&#x02019;s wish (the driver wants to, but can&#x02019;t). For the second motivation, a speed in an interval around the speed limit, dependent on the law-abiding is desired. This can be higher or lower or exactly the speed limit. The third motivation results in a desired speed which allows the driver to pass a curve in a comfortable and safe manner.</para>
<para>All described motivations lead to different speeds, so the driver is in a dilemma: She/he has to decide for one speed to accelerate or decelerate to. The decision in this case is taken in a pragmatic way: The lowest speed wins, because on the one hand there is a comfort and safety limit, on the other hand there is a limit because the driver accepts the given speed limits or at least wants to avoid fees for driving too fast.</para>
<para>The described example shows two input types to the driving behaviour, the driver&#x02019;s character (here: need for safety, need for comfort and law-abiding) and the current situation described by the state of the own vehicle and other vehicles as well as the road and environmental structure. Moreover, not only the local situation influences driving. A good driver reacts before approaching to a discrete situation to reach the desired value in time. In the curve speed example above, a real driver would estimate the comfortable and safe speed based on the visual perception of the road&#x02019;s curvature before reaching the curve. On that perception, the driver decelerates with a rate which leads to the desired speed at the moment the curve is reached. Within the curve the driver corrects this estimation to satisfy the desired safety and comfort. The predictive behaviour is called <emphasis>anticipatory</emphasis> driving. The correction is called <emphasis>compensatory</emphasis> driving [<link linkend="ch03_B4">4</link>]. This phenomenon also has to be regarded in the development of driver models.</para>
<para>Of course the driver has more responsibilities than the decision of the desired speed. According to Rasmussen [<link linkend="ch03_B5">5</link>], the driving task can be seen in three levels: The strategic level where the driver plans and creates strategic values like a route, the manoeuvring level, where the driver processes the decisions and determines desired values and value sequences, the strategy can be implemented with. This behaviour is conscious: The driver knows exactly how to solve the driving task and creates a strategy. The driver is able to reflect decisions and actions he/she took in this level. In the control level the driver implements these conscious values into the vehicle by using the steering wheel, the accelerator and brake pedal and other control elements of the vehicle. This operation is not done in a single step. Often the driver determines a subconsciously desired value, like a desired acceleration, which is then transferred into the actual vehicle input. This value is not reflected by an experienced driver. It is an automatism by the driver to reach the conscious desired value. The desired speed shall be used for an illustration: After the decision to move freely, because no other road-user is influencing the driver, the desired speed is detected, which is a conscious value. To reach this speed, the driver accelerates with the desired acceleration, which is a subconscious value because the driver cannot quantify this value and it is not part of the strategy. The final implementation is done by using the vehicle&#x02019;s controls to reach this acceleration. The advantage of using this subconscious step is that the regarded values can be set, manipulated and limited dependent on realistic driver&#x02019;s needs independent of the conscious behaviour. Often the desired acceleration and yaw rate or curvature is used as an output of macroscopic driver models. In this definition these variables represent subconscious variables. Thus, without the implementation by using steering wheel and pedals, the model can be seen as a macroscopic driver model.</para>
</section>
<section class="lev1" id="sec3-3">
<title>3.3 Requirements for DESERVE</title>
<para>Before creating a driver model, an analysis of the requirements for this model based on the field of application has to be done. In DESERVE, a rapid prototyping platform and development process has been created. The details of the platform can be found in <link linkend="ch02">Chapter <xref linkend="ch2" remap="2"/></link>. This requirements section concentrates on the applications of the DESERVE platform. In the first year of the project, the needs for the driver model were analysed in D3.1.1 [<link linkend="ch03_B3">3</link>]. There are two kinds of driver models identified in the project: the virtual driver for the usage in traffic simulations like described above and the driver intention and distraction model, which is used as a component of an ADAS to detect the real driver&#x02019;s state.</para>
<para>The literature review, the analysis of existing driver model concepts and in particular the research work in the DESERVE project shows that it is not possible to create one holistic driver model to satisfy all scientific needs. Nevertheless it would be very attractive, if there was one basic structure combining the ideas of the previous research, in which the algorithms can be added as independent modules. The connections of all modules &#x02013; with properly defined affiliation and interfaces and in conjunction with a suitable parameter set &#x02013; will produce the expected results. For that reason, a generic module-based structure needs to be developed which is well-defined and flexible for amendments. Most of the integrated algorithms can be used for several applications while others are specific to one. The generic structure should fit to all applications of driver modelling in an open way.</para>
<para>Another important issue is the implementation. Many driver models are implemented in native programming languages. This fact has a significant disadvantage: It becomes very muddled due to the one dimensional structure of programming code. Often driver model structures are shown in a two dimensional representation with levels in the up-down dimension and sequence of the information processing in the left-right direction (time related). An implementation of the driver model in an analogous structure could be very helpful to create a clear and well-arranged model. Thus, a graphical implementation would be aspired. Furthermore, it should be possible to structure or capsulate the content properly as well as the definition of the interfaces to take the advantage of modern programming techniques like object oriented programming or code reuse to avoid redundancy. Next to the structural requirements, the system shall be able to hold values or states over one or more time steps to implement the memory of the driver. Another requirement is the possibility to connect the driver model to the traffic simulation environment. This can be done by communication interfaces or by the native integration of the compiled driver model, for example as a dynamic linked library or similar techniques.</para>
<para>The driver model (virtual driver) in DESERVE shall be used in different traffic simulation environments for testing and evaluating ADAS functions in the process of the development. Within the project, the driver model shall be implemented and tested for a control function which is designed to show the advantages and benefits of the DESERVE platform. Therefore, an Advanced Cruise Control system (ACC) is combined with a Heading Control (HC). The system shall assist the driver on inter-urban road scenarios and increase the safety within the full speed range (WP 4.2, [<link linkend="ch03_B6">6</link>, <link linkend="ch03_B7">7</link>]). The decision for demonstrating the system for the inter-urban area is made, because this area is a very important research field for the usage of ADAS functions of the next generation; especially those who reach the next level of driving automation (cf. SAE automation level 2 &#x02013; partial automation, [<link linkend="ch03_B8">8</link>]). Also the evaluation of ADAS for the increase of safety is important in the inter-urban area. Therefore, detailed driver models are needed with the claim to be valid for the intended purpose. In particular, the modelling of realistic human behaviour on intersections and junctions is one of the most important developments for today&#x02019;s traffic simulations in order to develop ADAS with the goal to reduce the high number of accidents on intersections.</para>
<para>Analysing the application in DESERVE, the driver model requirements can be briefly defined:</para>
<itemizedlist mark="bullet" spacing="normal">
<listitem><para>Inter-urban driving behaviour including safe-passing of slow, right-moving vehicles has to be implemented.</para></listitem>
<listitem><para>The driver model needs the capability of route-following within multi-lane roads and complex but flexible transport networks.</para></listitem>
<listitem><para>Full intersection and traffic light behaviour has to be implemented.</para></listitem>
<listitem><para>Anticipatory driving behaviour, like early speed adaption needs to be reflected.</para></listitem>
<listitem><para>Re-use of validated driving behaviour algorithms and driver model approaches is required.</para></listitem>
</itemizedlist>
<para>The driver model is implemented and connected to the simulation environment PELOPS [<link linkend="ch03_B9">9</link>]. The inter-urban ACC and HC developed in DESERVE is tested in virtual traffic scenarios containing units controlled by the here described driver model. These scenarios include straight and curvy multi-lane roads, complex intersections with traffic lights and right-of-the-way controls by signs and structure, different speed limits, rare and dense traffic with different parameterisations and slow moving vehicles (e.g. mopeds). This testing set-up leads to a set of manoeuvres and primary driving tasks which have to be implemented:</para>
<fig id="F3-1" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F3-1">Figure <xref linkend="F3-1" remap="3.1"/></link></label>
<caption><para>Primary driving tasks which are implemented in the driver model within the DESERVE project separated by longitudinal and lateral control.</para></caption>
<graphic xlink:href="graphics/ch03_fig001.jpg"/>
</fig>
<fig id="F3-2" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F3-2">Figure <xref linkend="F3-2" remap="3.2"/></link></label>
<caption><para>Manoeuvres which are implemented in the driver model within the DESERVE project.</para></caption>
<graphic xlink:href="graphics/ch03_fig002.jpg"/>
</fig>
<para>There are several other manoeuvres which can be implemented like U-turning or stopping on the road side. These manoeuvres are not implemented within DESERVE. Nevertheless, the structure of the model shall offer the possibility to enhance the functionality.</para>
</section>
<section class="lev1" id="sec3-4">
<title>3.4 Generic Structure</title>
<para>In this chapter the ika driver model is introduced. Within the DESERVE project, a suitable and generic driver model structure was developed and implemented which fulfils the requirements from the previous section. The interfaces and driver parameters are defined and described in this chapter.</para>
<section class="lev2" id="sec3-4-1">
<title>3.4.1 Model Structure</title>
<para>From literature review, two generic structures can be identified: The three levels of driving by Rasmussen and the three blocks of perception, information processing and action, which can be found in several formal and non-formal model approaches (e.g. [<link linkend="ch03_B10">10</link>]). This leads to a matrix-form model shown in <link linkend="F3-3">Figure <xref linkend="F3-3" remap="3.3"/></link>. The modules (blue boxes) in the matrix represent model implementations or parts of those. The arrows, in different shades of grey, describe the information flow between the blocks and represent the internal interfaces. The blue arrows show the information flow through the three levels and represent the needed information (variables) for the driving tasks and manoeuvres. A central functional block of the model is the <emphasis>State</emphasis> block, where the driver-specific values are stored. The <emphasis>Memory</emphasis> module represents the driver&#x02019;s knowledge about the current situation, the manoeuvre states, the destination or route, etc. The memory is used to keep information for the following time steps, during the manoeuvre or for the whole simulation cycle. This information can be extrapolated to estimate current states of the ego-vehicle or other road-user even if the driver model does not sense the regarded information at the current time step. Thus, the memory has an interface to the <emphasis>Perception</emphasis> block and constitutes an input of this block besides the inputs of the environment and the vehicle. Current manoeuvre states and important values, which have to be known in the next time step, are also saved in the memory and are passed by the interface between the <emphasis>State</emphasis> and the <emphasis>Processing</emphasis> block where the driving calculation is implemented. The parameters represent the driver&#x02019;s character and are defined in two layers: qualitative and physical parameters (see Subsection 3.4.2). The <emphasis>Parameters</emphasis> block serves its values to all blocks of the driver model, for example by manipulating the handling time delay (reaction time). The <emphasis>Action</emphasis> block controls the handling or the conversion of the driver&#x02019;s wish into physical actions like the manipulation of the pedals, the steering wheel, shifting and using the HMI control elements.</para>
<fig id="F3-3" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F3-3">Figure <xref linkend="F3-3" remap="3.3"/></link></label>
<caption><para>Driver model structure in the context of environment and vehicle: the structure includes perception, processing and action blocks including its functional modules and the regarded dynamic information flow.</para></caption>
<graphic xlink:href="graphics/ch03_fig003.jpg"/>
</fig>
<para>As it can be seen in <link linkend="F3-3">Figure <xref linkend="F3-3" remap="3.3"/></link>, a strict assignment of all modules to a unique level is not possible. In the following the modules shall be explained in detail.</para>
<para>In the <emphasis>Planning</emphasis> module, route specific calculations are executed. In general, the units have a fixed route calculated or set in the initialisation of the simulation. In reality a driver changes the route under circumstances, e.g., traffic jams or road blocks. If such functionalities are needed, appropriate algorithms can be implemented in the Planning module. In the current implementation the route is stored in the memory. The Planning module calculates a value for each lane in the environment around the unit, which gives a quantitative value of how far the lane and its successors can be followed on the given route. Thus, the Manoeuvre Decision module can decide which lane the driver wants to take. The <emphasis>Manoeuvre Decision</emphasis> module processes all discrete manoeuvres and discrete decisions. That means on the one hand to decide for a manoeuvre and on the other hand to control the manoeuvre but not to calculate the related Guidance Values. The Decision module returns different states within the manoeuvre and process variables, which can be used by the following modules to perform the manoeuvre (in the figure briefly named <emphasis>Manoeuvre</emphasis>). An example is described in Section 3.5. Another output of the module is a set of <emphasis>Discrete Secondary Actions</emphasis> which are needed or desired at the beginning or during the manoeuvre. This can be for example switching the turning indicators in case of turning or lane changes. On the basis of the decision with its states and process values, a local strategy to perform these manoeuvres and continuous driving tasks is calculated in the <emphasis>Conscious Guidance</emphasis> module. Continuous driving tasks are performed during the whole simulation time without the need of a discrete decision. Of course, the output values of these tasks can be overridden by other results. An example is the motivation to keep the lane: This task is continuous because the driver always wants to stay in the lane but can be forced to leave the lane during an overtaking manoeuvre. Within the Conscious Guidance module the <emphasis>Guidance Variables</emphasis> are filled with values (guidance values), which the driver wants to reach. An example was given in Section 3.2 (desired speed during free moving). Several guidance values are calculated and passed to the <emphasis>Subconscious Stabilisation</emphasis> module. Within this module, desired stabilisation values are calculated. In general, these values are the desired acceleration and the desired yaw rate for the longitudinal and lateral control respectively. Based on all motivations the stabilisation value with the highest benefit for the driver is taken. Besides the desired values, some real physical values, which are states of the vehicle, can be directly sensed by the driver. Thus, the driver is able to implement these values subconsciously by using the vehicle control elements (pedals and steering wheel). This implementation is done in the <emphasis>Continuous Primary Actions</emphasis> module.</para>
<para>To define the interfaces between the modules it is helpful to create a manoeuvre and driving task table. For the DESERVE implementation the following tables (<link linkend="F3-4">Figure <xref linkend="F3-4" remap="3.4"/></link> and <link linkend="F3-5">Figure <xref linkend="F3-5" remap="3.5"/></link>) were developed, derived from <link linkend="F3-1">Figure <xref linkend="F3-1" remap="3.1"/></link> and <link linkend="F3-2">Figure <xref linkend="F3-2" remap="3.2"/></link>.</para>
<fig id="F3-4" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F3-4">Figure <xref linkend="F3-4" remap="3.4"/></link></label>
<caption><para>Process variables for the four basic driving motivations <emphasis>free moving</emphasis>, <emphasis>following</emphasis>, <emphasis>lane keeping</emphasis> and <emphasis>standing</emphasis>.</para></caption>
<graphic xlink:href="graphics/ch03_fig004.jpg"/>
</fig>
<fig id="F3-5" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F3-5">Figure <xref linkend="F3-5" remap="3.5"/></link></label>
<caption><para>Process variables for the three manoeuvres <emphasis>lane change</emphasis>, <emphasis>stopping</emphasis> and <emphasis>Safe Passing</emphasis>.</para></caption>
<graphic xlink:href="graphics/ch03_fig005.jpg"/>
</fig>
<para>In the motivation of <emphasis>free moving</emphasis>, the desired velocity of the driver is calculated. This velocity depends on the speed limit, the curvature of the road ahead and the maximum desired velocity of the driver. To reach the velocity, the driver model accelerates (subconsciously) dependent on the current velocity and the desired velocity. A suitable model approach is part of the Intelligent Driver Model (IDM) by Treiber, Hennecke and Helbing in [<link linkend="ch03_B11">11</link>]. An adaption of that approach for the usage in complex driving simulations is published in [<link linkend="ch03_B12">12</link>]. The <emphasis>following</emphasis> motivation is mainly influenced by a desired following distance which bases on a driver specific following time gap. To reach this distance the driver needs to accelerate or decelerate. The <emphasis>lane-keeping</emphasis> is performed by the usage of fix-points based on the Two-Point Visual Control Model published in [<link linkend="ch03_B13">13</link>]. This model can be adapted, so that the fix-points cause a yaw rate, which the driver wants to implement. The adaption is published in [<link linkend="ch03_B14">14</link>]. The yaw rate is chosen as the desired subconscious stabilisation value because it physically implies both, the curvature and the velocity. During standing, the driver model maintains a brake pedal value which results in a vehicle that does not move. This means that the pedal value is a subconscious value, different to the other longitudinal tasks.</para>
<para>In <link linkend="F3-5">Figure <xref linkend="F3-5" remap="3.5"/></link>, the manoeuvre <emphasis>turning</emphasis> is missing. In this model turning is implemented in the decision module, at least to control the turning indicators, but does not require a process implementation due to the given features: A lateral and longitudinal turning manoeuvre can be seen as a &#x02018;normal&#x02019; street following motivation if the turning path is known and a turning speed is calculated by the given curvature. In the case of conflicts with &#x02018;right of way&#x02019; road-users (e.g. at left turns), the driver model stops with the manoeuvre <emphasis>stopping</emphasis>. If the conflict is resolved, the stop manoeuvre is aborted, so the driver model switches to <emphasis>free moving</emphasis> or <emphasis>following</emphasis>.</para>
<para>The perception is partly done in the simulation environment: All perceived information is transformed to the driver&#x02019;s coordinate system by the simulation environment. The driver model adapts the information with driver specific perception errors, like perception limits, continuous noise, sporadic disturbances or fluctuations and accuracy limits.</para>
</section>
<section class="lev2" id="sec3-4-2">
<title>3.4.2 Parameter Structure</title>
<para>In many driver model approaches, <emphasis>physical parameters</emphasis> are used to influence the driver behaviour and generate heterogeneous or driver specific results like in the IDM [<link linkend="ch03_B11">11</link>]. Examples of physical parameters are the maximum comfortable acceleration and deceleration or a constant following time gap to the leading vehicle. These parameters are well measurable for a single driver or a group of drivers, represent a direct input to the model approaches and are mostly independent of each other. To describe the character of a driver, a big set of physical parameters has to be defined. In other driver models <emphasis>humanised parameters</emphasis> on a higher level are used which are not directly measurable. These parameters have a meaning which can be described as a characteristic or a constant attribute of a human driver. In general, the parameters are used to generate driver specific physical parameters, which are then dependent on each other by this humanised characteristic. With these parameters a characterisation of the driver is easier because the number of parameters is reduced to a smaller number. The challenge is to create a mathematical dependency which returns realistic results based on these fictive parameters. The humanised parameters used in the driver model for the DESERVE platform are named <emphasis>sportiness</emphasis>, <emphasis>need for safety</emphasis>, <emphasis>law-abiding</emphasis> and <emphasis>estimation ability</emphasis>. However, these parameters have no scientific physical or psychological meaning; they only represent groups of drivers and influence the underlying parameter block of physical parameters like <emphasis>desired following time gap</emphasis>, <emphasis>acceleration profile</emphasis> and many more. In <link linkend="F3-6">Figure <xref linkend="F3-6" remap="3.6"/></link>, the parameter concept of the DESERVE platform is shown: In the first block, the humanised parameters are shown. These parameters influence the physical parameters of the driver model. In this example, the <emphasis>need for safety</emphasis> parameter influences the <emphasis>lower and upper following time gap</emphasis> (see [<link linkend="ch03_B15">15</link>]) and the <emphasis>acceleration profile</emphasis> of the driver model. Parameters are not influenced by the dynamic inputs.</para>
<fig id="F3-6" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F3-6">Figure <xref linkend="F3-6" remap="3.6"/></link></label>
<caption><para>Sketch of the parameter blocks (brown) and model blocks (blue) of the driver model.</para></caption>
<graphic xlink:href="graphics/ch03_fig006.jpg"/>
</fig>
<para>The set-up of a suitable parameter concept influencing all models in a realistic way is difficult and extremely dependent on the implemented model approaches. A concept to solve this problem could be to measure a large set of reference data and run an optimization to find the best fitting parameters. After that a validation has to be done with another set of data to prove the concept.</para>
<para>To create a traceable connection between the parameter blocks, in the DESERVE model, cubic polynomial functions are used. In a review of floating car data for example, the distribution of lower following time gaps of the Wiedemann model was generated. Basis of the distribution of these time gaps is a Gaussian distribution of the need for safety parameter with &#x00B5; = 0.5 and &#x003C3; = 0.15 as described in [<link linkend="ch03_B15">15</link>]. With the polynomial</para>
<para><graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="graphics/ch03_eq3.1.jpg"/></para>
<para>with</para>
<para>&#x00394;<emphasis>T</emphasis><subscript>lower</subscript>: Lower following time gap [s]</para>
<para><emphasis>p</emphasis><subscript>NFS</subscript>: Need for safety; Gaussian distributed (0.5, 0.15) [&#x02013;},</para>
<para>the distribution of the lower following time gap returns a result shown as red curve in <link linkend="F3-7">Figure <xref linkend="F3-7" remap="3.7"/></link>. The blue bars show the floating car data which is the basis of the polynomial curve in this example.</para>
<fig id="F3-7" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F3-7">Figure <xref linkend="F3-7" remap="3.7"/></link></label>
<caption><para>Distribution of lower following time gaps for real drivers (blue bars) and the modelled distribution dependent on a normal distributed <emphasis>need for safety</emphasis> parameter (red line).</para></caption>
<graphic xlink:href="graphics/ch03_fig007.jpg"/>
</fig>
<para>This principle can be used and optimised analogously for the other physical parameters.</para>
</section>
</section>
<section class="lev1" id="sec3-5">
<title>3.5 Implementation</title>
<para>The graphical programming tool <emphasis>Matlab/Simulink</emphasis> provides the implementation features described in the requirements in Section 3.3. The 2D graphical GUI allows a clear and well-arranged implementation close to the visual structure of the model. The implementation is easy to understand and easy to debug. In the university environment, many students and scientific assistance work with the driver model for a limited time range (e.g. Bachelor/master theses or PhD theses). Thus, a further important requirement is the comprehensibility of the model. Programming in Simulink is easy to learn also without deep knowledge of classic programming languages. The code can be capsulated in subsystems with defined inputs and outputs and several storage concepts can be used to implement the driver&#x02019;s memory. The data connection between the model and other tools can be established by using UDP or TCP/IP or other versatile techniques.</para>
<para>For the DESERVE example implementation, PELOPS is used as the simulation kernel with the support of environmental structures (road network, traffic lights, etc.) and vehicle models. The core of the new version of PELOPS is implemented in Java. The integration of a Simulink model is possible with the UPD communication interface. For the simulation of one vehicle this solution is suitable and is real-time capable in the current version of the ika driver model and PELOPS. If multiple vehicles use the same driver model instance with their specific inputs, at least time-dependent and memory-containing modules do not work properly. For the simulation of at least two vehicles, the Simulink-model needs to be duplicated to have an independent copy (second instance) of the driver model. This becomes difficult for a high or flexible number of vehicles in a simulation. Another problem is the high execution time due to the UDP connection and the Simulink model itself. A native execution combined with direct data exchange, e.g. by shared memory, is much faster. The Matlab/Simulink tool-chain brings the possibility of code generation: The desired model can be converted to C or C++ code which can be integrated in other C/C++ or FORTRAN code or can be compiled to a shared library in almost all computing platforms. In DESERVE this solution is used to integrate the driver model into PELOPS. For that purpose, a class wrapper is used around the generated code. That allows the simulation environment to create almost infinite numbers of independent driver model instances. Multiple test cases have been performed to show the capability of running traffic simulations with the full functionality of the driver models and a large number of traffic units in real time.</para>
<para>Except for the decision module, all modules are implemented in standard Simulink subsystems with mathematical blocks. The decision module is implemented in <emphasis>Stateflow</emphasis>, which is an integrated Simulink feature. Stateflow allows implementing state machines, which is a suitable implementation technique for discrete decision structures. To demonstrate a possible implementation of a manoeuvre decision the lane change shall be used as an example: In <link linkend="F3-8">Figure <xref linkend="F3-8" remap="3.8"/></link>, a state machine implementation is shown for a lane change decision including the <emphasis>progress</emphasis> and <emphasis>sequence</emphasis> control. The progress describes the state or the &#x02018;position&#x02019; in the lane change like <emphasis>initialisation (init)</emphasis>, <emphasis>origin lane</emphasis>, <emphasis>lane crossing (LC)</emphasis>, <emphasis>target lane</emphasis> and <emphasis>termination (term)</emphasis>. The phases describe the phase control of the lane change by the driver. In this example the driver uses two phases to perform the lane change: In the first phase the driver accelerates laterally to a desired lateral velocity (anticipatory) dependent on the lateral offset. In the second phase, the driver &#x02018;switches&#x02019; to the lane-keeping mode with the focus on the target lane (compensatory) by using the fix-point approach (see <link linkend="F3-5">Figure <xref linkend="F3-5" remap="3.5"/></link>). Dependent on the phase and the progress, the conscious guidance module, calculates the reference values which are needed to steer the vehicle to the desired lane. The transition A denotes the decision to perform the lane change, which is valid if there is a lane next to the ego driving path with higher correlation to the route and some other conditions, like distance to the end of the lane, preference lane and a hysteresis. The basis for the decision is described in [<link linkend="ch03_B16">16</link>]. A decision for a lane change does not mean an immediate reaction. The driver model can decide before the lane or the desired gap is reached. In the case of a positive decision, the lane change is initialized. This is a continuous process as long as the active lane change is not started. The transitions B control the progress of the lane change and transition C represents the transition from the first phase to the second one in this example.</para>
<fig id="F3-8" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F3-8">Figure <xref linkend="F3-8" remap="3.8"/></link></label>
<caption><para>Stateflow model for a two-phase lane change including decision (A), progress control (B) and sequence control (C).</para></caption>
<graphic xlink:href="graphics/ch03_fig008.jpg"/>
</fig>
</section>
<section class="lev1" id="sec3-6">
<title>3.6 Applications in DESERVE and Results</title>
<para>Within the DESERVE project, the driver model was used for two different applications: The validation of left turn simulations within the full parameter range and the prediction of a real driver regarding the acceleration during free driving, approaching and following.</para>
<para>For the validation of left turn simulations (in this example without stopping), real traffic data from laser scanners were used to measure the trajectories of 136 vehicles on a junction in Alsdorf, close to Aachen in Germany. <link linkend="F3-9">Figure <xref linkend="F3-9" remap="3.9"/></link> shows the results of the simulations for different parameter sets (coloured curves). The measured real-driver data are shown in grey and the boundaries (extreme driver) as well as the average driver are included. The extreme drivers are generated by choosing respectively, the maximum and the minimum, of the need-for-safety and law-abiding parameters. For this example, the upper extreme driver is created by setting the need-for-safety and the law-abiding parameters to zero and the lower extreme driver is created by setting these parameters to one. As it can also be seen in the figure, the law-abiding parameter influences the speed the driver reaches before and after passing the intersection but not the velocity during the turning (red lines). Opposite to this, the need-for-safety parameter influences the speed within the turning only (blue line). This result depicts the statement that the turning speed is mainly driven by the safety and comfort motivations of the driver and the speed on straight roads is defined by the acceptance of speed limits. The phases between approaching and turning are representing a mixture of all motivations and result in a transition of the speed. In this example, the other parameters are set to the average value (0.5).</para>
<fig id="F3-9" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F3-9">Figure <xref linkend="F3-9" remap="3.9"/></link></label>
<caption><para>Trajectories (velocity over x- and y-position) for left turn including the simulation results for different parameter sets. The real driver data is measured on one intersection with 136 different drivers during day time.</para></caption>
<graphic xlink:href="graphics/ch03_fig009.jpg"/>
</fig>
<para>To predict the driving behaviour of a real driver in a vehicle, the driver model was integrated as a module on a real-time system in the car, equipped with real sensor data by radar and camera sensors. A five second simulation is calculated in each prediction step and the result is written to the CAN-Bus. With that data ADAS like ACC can react dependent on the estimated wish of the driver. The system and the results are published in [<link linkend="ch03_B12">12</link>].</para>
</section>
<section class="lev1" id="sec3-7">
<title>3.7 Conclusions and Outlook</title>
<para>In the DESERVE project a driver model structure was developed with the focus on the realistic generation of driver-vehicle-environment interactions. For the usage in traffic simulations the driver model has been implemented in Matlab/Simulink and exemplarily been integrated in PELOPS. The addressed traffic area covered the inter-urban road network including generic intersections. Therefore, common driver model approaches but also conceived approaches to create the modules needed in DESERVE were used to obtain realistic driving behaviour. The elementary interactions between the driver models, the associated vehicles and the surrounded environment result in realistic traffic phenomena and effects occurring in equivalent real traffic situations which was shown by comparing the simulation results with measured data on a real intersection. The model behaviour is tuneable via parameters on two levels, a humanized and a physical level, which have indirect and direct influence on the model behaviour.</para>
<para>The structure of the model was designed to offer the possibility of enhancing the driver model by using different model approaches or expanding it with the capability of performing yet unimplemented manoeuvres and driving tasks. In those cases, the challenge is to tune the added model approaches while maintaining the realistic influence of the parameters. To simplify and partly automate the tuning process a tool can be implemented which uses real data to optimize the mathematical influence of the parameters to the model. This work will be done in the future to increase the usability of the driver model for the simulative analysis of traffic situations. The traffic simulation and thus the driver model shall be an inherent part of the tool chain used in the development of ADAS and functions of automated driving.</para>
</section>
<section class="lev1" id="sec3-8">
<title>References</title>
<orderedlist numeration="arabic" continuation="restarts" spacing="normal">
<listitem><para><anchor id="ch03_B1"/>T. J&#x00FC;rgensohn and K.-P. Timpe, <emphasis>Kraftfahrzeugf&#x00FC;hrung</emphasis>. Berlin, Heidelberg, Springer, 2001.</para></listitem>
<listitem><para><anchor id="ch03_B2"/>D. Raudszus, M. Ranovona, S. Geronimi, M. Kunert, E. Schubert, and T. Schaller, &#x0201C;Report on Driver and Pedestrian Reaction Models&#x0201D;, Project Deliverable, ASPECSS, 2013. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=D%2E+Raudszus%2C+M%2E+Ranovona%2C+S%2E+Geronimi%2C+M%2E+Kunert%2C+E%2E+Schubert%2C+and+T%2E+Schaller%2C+%22Report+on+Driver+and+Pedestrian+Reaction+Models%22%2C+Project+Deliverable%2C+ASPECSS%2C+2013%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch03_B3"/>S. Fruttaldo, G. Piccinini, D. Pinotti, R. Tadei, G. Perboli, L. Gobbato, A. Zlocki, J. Klimke, F. Christen, N. Pallaro, F. Palma, and F. Tango, &#x0201C;D3.1.1 &#x02013; Standard Driver Model definition&#x0201D;, Project Deliverable, DESERVE, 2013. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=S%2E+Fruttaldo%2C+G%2E+Piccinini%2C+D%2E+Pinotti%2C+R%2E+Tadei%2C+G%2E+Perboli%2C+L%2E+Gobbato%2C+A%2E+Zlocki%2C+J%2E+Klimke%2C+F%2E+Christen%2C+N%2E+Pallaro%2C+F%2E+Palma%2C+and+F%2E+Tango%2C+%22D3%2E1%2E1+-+Standard+Driver+Model+definition%22%2C+Project+Deliverable%2C+DESERVE%2C+2013%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch03_B4"/>E. Donges, &#x0201C;A two-level model of driver steering behavior,&#x0201D; <emphasis>Human Factors,</emphasis> Vol. 20, No. 6, Dec 1978, pp. 691&#x02013;707, 1978. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=E%2E+Donges%2C+%22A+two-level+model+of+driver+steering+behavior%2C%22+Human+Factors%2C+Vol%2E+20%2C+No%2E+6%2C+Dec+1978%2C+pp%2E+691-707%2C+1978%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch03_B5"/>J. Rasmussen, &#x0201C;Skills, rules, and knowledge; signals, signs, and symbols, and other distinctions in human performance models,&#x0201D; <emphasis>IEEE Transactions on Systems, Man and Cybernetics</emphasis>, Vol. SMC-13, no. 3, pp. 257&#x02013;266, 1983. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=J%2E+Rasmussen%2C+%22Skills%2C+rules%2C+and+knowledge%3B+signals%2C+signs%2C+and+symbols%2C+and+other+distinctions+in+human+performance+models%2C%22+IEEE+Transactions+on+Systems%2C+Man+and+Cybernetics%2C+Vol%2E+SMC-13%2C+no%2E+3%2C+pp%2E+257-266%2C+1983%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch03_B6"/>J. Klimke, F. Christen, N. Pallaro, A. Kyytinen, P. van Koningsbruggen, E. Nordin, and X. Savatier, &#x0201C;D4.2.1 &#x02013; Control functions solution design&#x0201D;, Project Deliverable, DESERVE, 2013.</para></listitem>
<listitem><para><anchor id="ch03_B7"/>J. Klimke, F. Christen, and L. Eckstein, &#x0201C;Definition of a Microscopic Traffic Simulations Driver Model for Inter-urban Intersections for 21st World Congress,&#x0201D; in <emphasis>ITS World Congress 2014</emphasis>, Detroit, 2014.</para></listitem>
<listitem><para><anchor id="ch03_B8"/>SAE International, <emphasis>Taxonomy and definitions for terms related to on-road motor vehicle automated driving systems</emphasis>. SAE International Standard J3016, 2014. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=SAE+International%2C+Taxonomy+and+definitions+for+terms+related+to+on-road+motor+vehicle+automated+driving+systems%2E+SAE+International+Standard+J3016%2C+2014%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch03_B9"/>&#x0201C;PELOPS Whitepaper,&#x0201D; Forschungsgesellschaft Kraftfahrwesen Aachen mbH (fka), Aachen, 2014 <ulink url="http://www.fka.de/pdf/pelops_whitepaper.pdf">http://www.fka.de/pdf/pelops_whitepaper.pdf</ulink>.</para></listitem>
<listitem><para><anchor id="ch03_B10"/>L. Eckstein, <emphasis>Active Vehicle Safety and Driver Assistance Systems, Automotive Engineering III</emphasis>. Lecture Notes, Institute for Automotive Engineering (ika), Aachen, 2015.</para></listitem>
<listitem><para><anchor id="ch03_B11"/>M. Treiber, A. Hennecke, and D. Helbing, &#x0201C;Congested Traffic States in Empirical Observations and Microscopic Simulations,&#x0201D; Rev. E 62, Issue, Vol. 62, p. 2000, 2000. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=M%2E+Treiber%2C+A%2E+Hennecke%2C+and+D%2E+Helbing%2C+%22Congested+Traffic+States+in+Empirical+Observations+and+Microscopic+Simulations%2C%22+Rev%2E+E+62%2C+Issue%2C+Vol%2E+62%2C+p%2E+2000%2C+2000%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch03_B12"/>J. Klimke, P. Themann, C. Klas, and L. Eckstein, &#x0201C;Definition of an embedded driver model for driving behavior prediction within the DESERVE platform,&#x0201D; in <emphasis>International Conference on Embedded Computer Systems: Architectures, Modeling, and Simulation (SAMOS XIV), 2014</emphasis>, 2014, pp. 343&#x02013;350. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=J%2E+Klimke%2C+P%2E+Themann%2C+C%2E+Klas%2C+and+L%2E+Eckstein%2C+%22Definition+of+an+embedded+driver+model+for+driving+behavior+prediction+within+the+DESERVE+platform%2C%22+in+International+Conference+on+Embedded+Computer+Systems%3A+Architectures%2C+Modeling%2C+and+Simulation+%28SAMOS+XIV%29%2C+2014%2C+2014%2C+pp%2E+343-350%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch03_B13"/>D. D. Salvucci and R. Gray, &#x0201C;A two-point visual control model of steering,&#x0201D; <emphasis>Perception</emphasis>, Vol. 33, No. 10 (2004), p. 1233&#x02013;1248, 2004. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=D%2E+D%2E+Salvucci+and+R%2E+Gray%2C+%22A+two-point+visual+control+model+of+steering%2C%22+Perception%2C+Vol%2E+33%2C+No%2E+10+%282004%29%2C+p%2E+1233-1248%2C+2004%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch03_B14"/>J. Klimke, C. Klas, and L. Eckstein, &#x0201C;Konzept zur Strukturierung eines generischen Fahrermodells anhand des realen Informationsflusses,&#x0201D; in <emphasis>VDI-Fortschritt-Berichte: Reihe 22, Mensch-Maschine-Systeme</emphasis>, 2015.</para></listitem>
<listitem><para><anchor id="ch03_B15"/>R. Wiedemann, <emphasis>Simulation des Stra&#x00DF;enverkehrsflusses</emphasis>. Karlsruhe: Institut f&#x00FC;r Verkehrswesen, 1974.</para></listitem>
<listitem><para><anchor id="ch03_B16"/>D. Ehmanns, <emphasis>Modellierung des taktischen Fahrerverhaltens bei Spurwechselvorg&#x00E4;ngen</emphasis>. Dissertation, Institute for Automotive Engineering (ika), Aachen, 2003.</para></listitem>
</orderedlist>
</section>
</chapter>
<chapter class="chapter" id="ch04" label="4" xreflabel="4">
<title>Component Based Middleware for Rapid Development of Multi-Modal Applications</title>
<para class="section"><emphasis role="strong">Gwena&#x000EB;l Dunand</emphasis></para>
<para>Intempora, France</para>
<section class="lev1" id="sec4-1">
<title>4.1 Introduction</title>
<para>Developing multi-modal applications starting from scratch is a tough issue. On the one hand, there are algorithms challenges such as detecting drowsiness or pedestrians in every possible situation. On the other hand, there are programming challenges such as handling multiple sensors data with different frequencies and different nature (video streams, GPS data, laser scans, etc.), as well as implementation details, such as synchronization techniques, multithreading and memory management, for only naming a few.</para>
<para>Moreover, the time required to develop the software is often underestimated [<link linkend="ch04_B1">1</link>]. Using an already existing middleware helps to keep on schedule and focus mainly on business problems while decreasing the real-time programming complexity.</para>
<para>There are several middleware that fit all those previous descriptions (ADTF, PolySync, BaseLabs and RTMaps). As RTMaps is the official middleware chosen for the DESERVE project and the author is very familiar with this one, this chapter will sometimes be focused on RTMaps, but other tools might apply as well.</para>
</section>
<section class="lev1" id="sec4-2">
<title>4.2 Using a Middleware</title>
<para>Considering software as layered, middleware incorporates many of these layers vertically. A middleware provides a full, or partial, solution to an area within the application and supplies more than the basic library, it also supplies associated tools like logging, debugging and performance measurement. Because middleware is vertical system, it may compete or duplicate other parts of the application.</para>
</section>
<section class="lev1" id="sec4-3">
<title>4.3 The Multisensor Problem</title>
<para>The number of sensors used for ADAS applications has increased in the last few years. Now applications use radars, lidars, GPS, high definition stereo cameras, lasers, IMU, CAN Bus, eye trackers, V2V and V2I communication, etc&#x02026;The problem is how to read all of them within the same application and especially how to synchronize them despite their very different nature (<link linkend="F4-1">Figure <xref linkend="F4-1" remap="4.1"/></link>).</para>
<fig id="F4-1" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F4-1">Figure <xref linkend="F4-1" remap="4.1"/></link></label> 
<caption><para>ADAS function requires many different type of sensor.</para></caption>
<graphic xlink:href="graphics/ch04_fig001.jpg"/>
</fig>
<para>As a matter of fact, most algorithms need to use several sensors to reach a good level of detection. The problem is that those sensors might have different sampling rates, or even worse, event-based outputs. Reading from those sensors simultaneously can be a tricky problem to solve. Let&#x02019;s illustrate this with an example with three signals.</para>
<fig id="F4-2" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F4-2">Figure <xref linkend="F4-2" remap="4.2"/></link></label> 
<caption><para>Synchronisation issues.</para></caption>
<graphic xlink:href="graphics/ch04_fig002.jpg"/>
</fig>
<para>In the <link linkend="F4-2">Figure <xref linkend="F4-2" remap="4.2"/></link>, signal <emphasis role="strong">A</emphasis> (orange) and signal <emphasis role="strong">B</emphasis> (green) are periodic with a different period while signal <emphasis role="strong">C</emphasis> (red) is an event-based signal. One solution would be to use the least common denominator of all sampling rates to perform the reading. While this approach may work with periodic signals like A and B, it won&#x02019;t work with the event-based C signal.</para>
<para>To achieve reading from multi-modal sensors, RTMaps middleware is fully <emphasis role="strong">asynchronous</emphasis> &#x02013; each component runs in its own thread &#x02013; so that any component can react to any data stream, whatever sampling rate it may have. This is the only way to follow the natural pace of each data. This design uses internally blocking calls, removing any extra latency that could happen when using polling methods. RTMaps middleware also defines reading policies to synchronize data streams. While the default policy &#x02013; <emphasis>reactive</emphasis> &#x02013; works perfectly fine in most case, the user can use one of those:</para>
<itemizedlist mark="bullet" spacing="normal">
<listitem><para><emphasis>Reactive reading</emphasis>: a component with multiple inputs will read every time a new data sample is made available on any one of its inputs.</para></listitem>
<listitem><para><emphasis>Synchronized reading</emphasis>: a component with multiple inputs will process one sample from each input when data sample with the same timestamps (plus or minus some configurable tolerance) are available on its inputs. This behaviour is made for data fusion and allows re-synchronization of the data streams at any point downstream in the diagram, whatever the latency of the various upstream data channels.</para></listitem>
<listitem><para><emphasis>Triggered reading</emphasis>: a component with multiple inputs will read when a new data sample is made available on a given input. It will then resample the data on its other inputs through non-blocking reading.</para></listitem>
</itemizedlist>
<para>To sum-up, not only the middleware provides a common platform to build the ADAS application, but it also does take care of the tricky data synchronisation mechanism.</para>
<section class="lev2" id="sec4-3-1">
<title>4.3.1 Knowing the Date and Time of Your Data</title>
<para>Using a middleware allows to be very accurate about the timing of your data. For example, RTMaps affects two timestamps to the data: the <emphasis>timestamp</emphasis> and the <emphasis>time of issue</emphasis>.</para>
<itemizedlist mark="bullet" spacing="normal">
<listitem><para>The <emphasis>timestamp</emphasis> is the intrinsic date of the sample. It is as close as possible to the date of occurrence of the real data which the sample corresponds to. It is often supplied by the first component that created the sample (i.e. the acquisition component). The <emphasis>timestamp</emphasis> remains unmodified while the sample goes through the different components of the processing chain. The <emphasis>timestamp</emphasis> often corresponds to the date where the data is available in system memory.</para></listitem>
<listitem><para>The <emphasis>time of issue</emphasis> is the date corresponding to the last time the sample was output from a component. Therefore, this date increases as long as the sample runs through the different processing components.</para></listitem>
</itemizedlist>
<para>Knowing with precision the time and date of your data is essential to perform synchronized readings (<emphasis>see previous section</emphasis>), but it is also useful to estimate the latency of your data or know the processing time of a component which is really vital in real-time applications.</para>
</section>
<section class="lev2" id="sec4-3-2">
<title>4.3.2 Component-based GUI</title>
<para>RTMaps middleware comes with a user-friendly graphical interface which allows building an application using components (seen as blocks) connected to each other. The <link linkend="F4-3">Figure <xref linkend="F4-3" remap="4.3"/></link> shows RTMaps studio with a diagram open and a few components in it.</para>
<fig id="F4-3" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F4-3">Figure <xref linkend="F4-3" remap="4.3"/></link></label> 
<caption><para>The RTMaps Studio.</para></caption>
<graphic xlink:href="graphics/ch04_fig003.jpg"/>
</fig>
<para>The advantage of using a graphical user interface is twofold. Firstly, it allows the user to quickly construct an application by using drag and drop techniques and wiring components to each other. Realizing a simple demonstration with a camera and an IMU only takes a few minutes [<link linkend="ch04_B2">2</link>] whereas using only hand-written code with dedicated libraries would take weeks.</para>
<para>Secondly, it allows the team to focus on interfaces. This is a very important point since it defines boundaries and clarifies the work between teams. In big projects like the DESERVE project, strict definitions about interfaces are necessary due to the number of partners. The interface for components is composed of inputs, outputs and properties. Once the interface of a task is defined, changing an algorithm for another is not a problem anymore, one component can be replaced by another and the work is done! In the <link linkend="F4-4">Figure <xref linkend="F4-4" remap="4.4"/></link>, the face detection component has one fixed detection interface. The input is YUV image and the output is a vector of rectangle representing the faces found.</para>
<fig id="F4-4" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F4-4">Figure <xref linkend="F4-4" remap="4.4"/></link></label> 
<caption><para>Components and interfaces.</para></caption>
<graphic xlink:href="graphics/ch04_fig004.jpg"/>
</fig>
<para>Furthermore, the use of macro-components can definitely simplify the diagram by splitting the global problem into sub-problems (<link linkend="F4-4">Figure <xref linkend="F4-4" remap="4.4"/></link>). All the implementation is hidden in first appearance to simplify the reading, but of course looking under the mask would reveal all the internal details.</para>
</section>
<section class="lev2" id="sec4-3-3">
<title>4.3.3 The Off-the-Shelf Component Library</title>
<para>The off-the-self component library represents all the already available components in the middleware. This is an important part of it because it allows accelerating the application development by using and reusing already developed component. Here are a few categories of components:</para>
<itemizedlist mark="bullet" spacing="normal">
<listitem><para><emphasis>Sensor interface</emphasis>: This category represents all the components that allow to read/write from/to a sensor. When a sensor is present in the library, the user has just to drop a corresponding component on the current diagram and configure it to retrieve the data. That work can be done easily with a consequent time benefit.</para></listitem>
<listitem><para><emphasis>Data generators</emphasis>: When comes the time of testing a component, it might be useful to emulate a missing sensor with random generated data (vectors, CAN frames, images). This does not replace real sensors but it can be enough sometimes.</para></listitem>
<listitem><para><emphasis>Viewers</emphasis>: Very important libraries, which allow displaying information about data stream during the execution (images, vectors, CAN frames&#x02026;). As an example, the <emphasis>DataViewer</emphasis> (<link linkend="F4-5">Figure <xref linkend="F4-5" remap="4.5"/></link>) can display generic information (timestamps, size, etc.) and specific ones (width and height of an image if current data is an image) as a tree. This is very useful to inspect data along a processing chain and check that such component behaves correctly.</para></listitem>
<listitem><para><emphasis>Player and Recorder</emphasis>: Those components allow to record and replay any data stream. Using a recorder, the user is able to record any scenario (outdoor session, motorway driving test, automatic car parking, etc.) and replay it at the office with the exact same data and timestamps.</para></listitem>
</itemizedlist>
<fig id="F4-5" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F4-5">Figure <xref linkend="F4-5" remap="4.5"/></link></label> 
<caption><para>Inspecting data with the data viewer.</para></caption>
<graphic xlink:href="graphics/ch04_fig005.jpg"/>
</fig>
</section>
<section class="lev2" id="sec4-3-4">
<title>4.3.4 Custom Extensions</title>
<para>Extending the component library is done through the <emphasis role="strong">SDK</emphasis>, whose purpose is to expand the capabilities of the middleware by the creation of new components. In RTMaps for example, the SDK is available for both C++ and Python (<link linkend="F4-6">Figure <xref linkend="F4-6" remap="4.6"/></link>). Thanks to this SDK, the user can integrate his own code into a component and use it directly in this diagram.</para>
<fig id="F4-6" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F4-6">Figure <xref linkend="F4-6" remap="4.6"/></link></label> 
<caption><para>Developing a new component.</para></caption>
<graphic xlink:href="graphics/ch04_fig006.jpg"/>
</fig>
<para>Once a new component has been created, it can be shared with others. When using C++, each component is compiled code which means that only the binary code is used in the middleware and so the IP is preserved. Anybody can share his work while keeping the source secret.</para>
</section>
<section class="lev2" id="sec4-3-5">
<title>4.3.5 About Performance</title>
<para>Using a high performance middleware is still essential nowadays. Indeed, even if the power of the computer tends to increase continuously, the trend is to run applications on embedded systems with the smallest footprint possible. The explanation of this trend is quite simple: the prototype vehicle has to be as close as possible as the real vehicle. In many companies, no desktop computer in the trunk of the car are allowed anymore, all systems have to be (or at least look) embedded.</para>
<para>Furthermore, the middleware is pushed further and further in the development chain. A few years ago, most of the middleware were assigned to do only prototyping and once the prototype application was finished, all the work had to be done again on dedicated hardware. This not the case anymore, now the middleware should be able to run on low consumption cards that equip pre-series cars.</para>
<para>Consequently, OEMs are looking for high performance middleware that runs on small form factor cards as well as on Personal Computer so that working on lab or real scenarios makes no difference.</para>
</section>
</section>
<section class="lev1" id="sec4-4">
<title>4.4 Compatibility with Other Tools</title>
<section class="lev2" id="sec4-4-1">
<title>4.4.1 dSPACE Prototyping Systems</title>
<para>In the frame of the DESERVE project, a bridge has been developed between the dSPACE MicroAutoBox and RTMaps (<link linkend="F4-7">Figure <xref linkend="F4-7" remap="4.7"/></link>). The dSPACE MicroAutobox is the de facto standard for real-time control loop such as chassis control, body control and powertrain. Combining this dSPACE prototyping system to the RTMaps middleware provides an extremely powerful framework capable of doing multisensor acquisition, data processing and controlling actuators in a hard real-time way.</para>
<fig id="F4-7" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F4-7">Figure <xref linkend="F4-7" remap="4.7"/></link></label> 
<caption><para>dSPACE MicroAutobox and RTMaps Bridge.</para></caption>
<graphic xlink:href="graphics/ch04_fig007.jpg"/>
</fig>
<para>The MicroAutoBox typically serves as an embedded controller to process the ADAS application algorithms in real-time and to interface the vehicle bus, sensors and actuators. It is a prototyping ECU with a predefined set of I/O which is qualified for in-vehicle use.</para>
<para>In the context of the DESERVE project this platform was extended by an Embedded PC and an FPGA Board. The embedded PC features a multi-core Intel<superscript>&#xAE;;</superscript> Core<superscript>TM</superscript> i7 processor running at 2.5/3.2 GHz and the connection to the actual embedded controller is implemented via an internal Gigabit Ethernet interface. The embedded PC integrated in the MicroAutoBox can be used to flexibly run any x86 based development framework available for prototyping perception and fusion algorithms, such as RTMaps, and to exchange easily data with the embedded controller [<link linkend="ch04_B3">3</link>].</para>
</section>
<section class="lev2" id="sec4-4-2">
<title>4.4.2 Simulators</title>
<para>ADAS are becoming more and more promoted because several key functions permit to increase the level of vehicle safety. Most of the time, it is a challenge to access to the equipment and sensors information on vehicles, making difficult to design and test these new algorithms. Some of the applications are based on perception sensors embarked on the vehicle, which interact with the vehicle, driver and environment through electronic control units. For those reasons, the simulations of the algorithms and the analysis of existing solutions for virtual testing are very important tasks.</para>
<fig id="F4-8" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F4-8">Figure <xref linkend="F4-8" remap="4.8"/></link></label> 
<caption><para>ProSivic working together with RTMaps.</para></caption>
<graphic xlink:href="graphics/ch04_fig008.jpg"/>
</fig>
<para>Using simulators has many advantages: tune the scenario at will (add rain or fog like in <link linkend="F4-8">Figure <xref linkend="F4-8" remap="4.8"/></link>), test dangerous situations where real data is hard to get, use the output of any algorithm to modify the scenario of the simulator (close the loop), etc. It&#x02019;s pretty much a fact now; virtual testing allows massive reduction cost. In the DESERVE project, many simulators have been used in collaboration with RTMaps: ProSivic [<link linkend="ch04_B4">4</link>], dSPACE ASM [<link linkend="ch04_B5">5</link>], etc.</para>
</section>
<section class="lev2" id="sec4-4-3">
<title>4.4.3 Other Standards</title>
<para>Middleware supports other standards as well. RTMaps implements the DDS [<link linkend="ch04_B6">6</link>] standard interface via the Prismtech OpenSpliceDDS implementation. This is very convenient to stream data from RTMaps to anywhere and vice-versa. This DDS interface was developed in the frame of the DESERVE project.</para>
<para>Other standard protocols are also supported, like XIL or XCP, which allow manipulating RTMaps with off-the-self tools that implements those protocols themselves.</para>
<para>Of course, most of the middleware on the market will also support NMEA, CAN/DBC, RTSP, I2C, GPS, SIP, TCP and UDP as well. The compatibility with major industry standards is essential so that the middleware interacts painlessly with other tools.</para>
</section>
</section>
<section class="lev1" id="sec4-5">
<title>4.5 Conclusion</title>
<para>Most DESERVE partners have been using RTMaps and ADTF middleware as the common perception platform to speed up their development processes and exchange components between each other.</para>
<para>Indeed, partners like Continental, FICOSA, Vislab and CTAG have encapsulated their acquisition routines and custom algorithms into RTMaps components, which in turn have been integrated into a global acquisition and processing diagram by other partners (OEMs most of the time). This modular approach made the collaboration easier between a large number of partners, which was one of the difficulties of the DESERVE project.</para>
<para>Another example, CRF (<emphasis>Centro Ricerche Fiat</emphasis>) has used RTMaps and the bridge to the MicroAutoBox &#x02013; developed in the frame of the DESERVE project &#x02013; for their emergency breaking application. The sensor acquisition, the pedestrian detection, information display and the breaking order are done <emphasis>via</emphasis> RTMaps.</para>
<para>As a conclusion, in the DESERVE project, having a middleware has allowed engineers to focus on their main activity &#x02013; obviously ADAS functions here &#x02013; and not on advanced programming issues, but it was also very helpful to exchange components between partners.</para>
</section>
<section class="lev1" id="sec4-6">
<title>References</title>
<orderedlist numeration="arabic" continuation="restarts" spacing="normal">
<listitem><para><anchor id="ch04_B1"/>Software Engineering 8th Edition, p. 109, ISBN-13: 978-0321313799, 2006.</para></listitem>
<listitem><para><anchor id="ch04_B2"/>Intempora. (2012, February 20). <emphasis>RTMaps4 demo</emphasis> [Video File]. Retrieved from <ulink url="https://www.youtube.com/watch?v=HBxFq04S91g">https://www.youtube.com/watch?v=HBxFq04S91g</ulink></para></listitem>
<listitem><para><anchor id="ch04_B3"/>Joshu&#x00E9; P&#x000E9;rez Rastelli, David Gonzalez Bautista, Fawzi Nashashibi, Fabio Tango, Nereo Pallaro, et al. Development and Design of a Platform for Arbitration and Sharing Control Applications &#x02013; a DESERVE approach-. IEEE SAMOS Conference, Jul 2014, Samos, Greece, pp. 322&#x02013;328.</para></listitem>
<listitem><para><anchor id="ch04_B4"/>Prosivic. (2016, June 21). Retrieved from <ulink url="http://www.civitec.com/">http://www.civitec.com/</ulink></para></listitem>
<listitem><para><anchor id="ch04_B5"/>dSPACE. (2016, July 12). <emphasis>Simulation tool suite</emphasis>. Retrieved from <ulink url="https://www.dspace.com/en/inc/home/products/sw/automotive_simulation_models.cfm">https://www.dspace.com/en/inc/home/products/sw/automotive_simulation_models.cfm</ulink></para></listitem>
<listitem><para><anchor id="ch04_B6"/>OMG. (2016, July 11). <emphasis>DDS: the proven data connectivity standard for the IoT</emphasis>. Retrieved from <ulink url="http://portals.omg.org/dds/">http://portals.omg.org/dds/</ulink></para></listitem>
</orderedlist>
</section>
</chapter>
<chapter class="chapter" id="ch05" label="5" xreflabel="5">
<title>Tuning of ADAS Functions Using Design Space Exploration</title>
<para class="section"><emphasis role="strong">Abhishek Ravi<superscript>1</superscript>, Hans Michael Koegeler<superscript>1</superscript> and Andrea Saroldi<superscript>2</superscript></emphasis></para>
<para><superscript>1</superscript>AVL List Gmbh, Austria</para>
<para><superscript>2</superscript>C.R.F. S.C.p.A , Italy</para>
<section class="lev1" id="sec5-1">
<title>5.1 Introduction</title>
<para>An ADAS function developed within the DESERVE platform and the tuning of this function for a particular application is discussed in this chapter. Based on separating the software and tuning data, according to the standards described in detail in <link linkend="ch02">Chapter <xref linkend="ch2" remap="2"/></link>, such a function can also be used for an alternate vehicle or application use case. The opportunities as well as the potential challenges are described, using a real world example, developed within the DESERVE Project.</para>
<section class="lev2" id="sec5-1-1">
<title>5.1.1 Parameter Tuning: An Overview</title>
<para>Tuning or calibration of vehicle components is essentially determining the optimum attributes, which fulfill the legislative standards as well as refine the car&#x02019;s character to meet all the expectations of the driver for drivability and comfort. Besides the comfort and legislative issues the vehicle tuning also helps in brand differentiation and helps to determine the vehicle character.</para>
<para>In the tuning task for a specific component (e.g.: engine), the software and the tuning data in the application layer of an Electronic Control Unit (ECU) is separated which is illustrated in <link linkend="F5-1">Figure <xref linkend="F5-1" remap="5.1"/></link>. The resulting code is a hex file, which can be flashed to the defined controller hardware which gives a big flexibility in powertrain development. As an example, one engine hardware can be put into more than 200 vehicle variants fitting for different countries, different vehicles and/or different transmission systems &#x02013; just by flashing a different appropriate controller software.</para>
<fig id="F5-1" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F5-1">Figure <xref linkend="F5-1" remap="5.1"/></link></label> 
<caption><para>Separation of software and tuning parameters in a control unit.</para></caption>
<graphic xlink:href="graphics/ch05_fig001.jpg"/>
</fig>
</section>
<section class="lev2" id="sec5-1-2">
<title>5.1.2 Industrial Tuning Applications: Challenges and Opportunities</title>
<para>The engine &#x02013; ECU has been the first mechatronic application in the automotive world. It makes sense to have a short view on the historical development of the tuning task in this field as illustrated in <link linkend="F5-2">Figure <xref linkend="F5-2" remap="5.2"/></link>.</para>
<fig id="F5-2" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F5-2">Figure <xref linkend="F5-2" remap="5.2"/></link></label> 
<caption><para>History of powertrain tuning (calibration).</para></caption>
<graphic xlink:href="graphics/ch05_fig002.jpg"/>
</fig>
<para>In the past decades, the improving technology in the automotive sector can be seen with cars having better engine performance, less consumption, better handling and reduced emissions. But the improvement in technology has come with increased complexity, especially in the tuning task.</para>
<para>As can be seen in <link linkend="F5-2">Figure <xref linkend="F5-2" remap="5.2"/></link>, initially there used to be around 500 parameters which needed to be tuned, which was carried out by a single engineer using the unit to be tested, which was then tested on a single test vehicle. Initially, the powertrain was quite simple and the Engine &#x02013; ECU was the only one being considered.</para>
<para>With increasing legislative and user demands; the complexity of the technology, the number of involved interacting components (engine, gearbox and electric engine) and also the number of functions controlling the interactions between all the variable components increased dramatically. Further the tuning allowed the derivation of many more vehicle variants with the same hardware components but differing in the ECU-SW, wherein the functions in the SW stay the same, just the tuning data are specifically developed.</para>
<para>This effect is also seen in the number of tuning parameters to be defined in an engine calibration project, where around 50 k parameters have to be defined &#x02013; clearly assigned to many functions. So it is no longer possible to have <emphasis>one person</emphasis>, who understands all the functions implemented and teams of specialized persons are necessary, partly working in different areas of the world. Thus the industry was confronted with several challenges and found some responses.</para>
<para>For example, the management of tuning data becomes an issue. It must be possible to track all the changes made to the tuning data by the different engineers involved and bring all the tuning results into a single final tuning result. The company should be able to ensure at Start of Production (SoP) that:</para>
<orderedlist numeration="arabic" continuation="restarts" spacing="normal">
<listitem><para>All the tuning data are calibrated.</para></listitem>
<listitem><para>All the tuning data are calibrated with the correct settings to optimally fulfill the desired, derivative use case.</para></listitem>
</orderedlist>
<para>These two requirements are very challenging, which explains the need of &#x0201C;Tuning Data Management&#x0201D;. This topic itself is not further elaborated in this chapter, but is supported by valuable literature [<link linkend="ch05_B1">1</link>, <link linkend="ch05_B2">2</link>].</para>
<para>Another challenge lies in the tuning for single use cases: For example, the emission tuning of an engine in a certain vehicle configuration for the legislation of a specific country. There are about 5 to 10 strongly interacting tuning parameters. E.g. an engine map to define the start of the combustion as function of speed and load is counted as one of these parameters, and exhaust gas recirculation rate, rail pressure, boost pressure, split patterns of the injected fuel quantity are others, all either reducing the different kinds of emissions or changing fuel consumption or noise.</para>
<para>So one can imagine, that it is just not possible to measure the emissions and the fuel consumption of all the feasible combinations of say 8 of such parameters on an engine. (A similar issue faced with ADAS functionality)</para>
<para>Such tasks are typically performed on engine test beds and chassis dynos and have to be finally validated on the road again. With the latest legislation (Real Driving Emissions, RDE) even the certification will be done on the road giving additional challenge [<link linkend="ch05_B3">3</link>&#x02013;<link linkend="ch05_B5">5</link>].</para>
<para><link linkend="F5-3">Figure <xref linkend="F5-3" remap="5.3"/></link> illustrates the generalized development environment, which allows the engineer to reproduce maneuvers and then double check the results of tuning work. In the manual tuning method, the engineer operates the UUT with a certain setting of control parameters in certain maneuvers. The engineer observes the behavior of the UUT and performs a judgment according to his experience. Then the next setting is defined with the intention to better approach the desired behavior. This process becomes complex when there are many relevant tuning parameters [<link linkend="ch05_B6">6</link>].</para>
<fig id="F5-3" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F5-3">Figure <xref linkend="F5-3" remap="5.3"/></link></label> 
<caption><para>Illustration of a generalized development environment and manual tuning process.</para></caption>
<graphic xlink:href="graphics/ch05_fig003.jpg"/>
</fig>
<para>In this trial and error method, the quality of tuning and the optimization results depend on whether the engineer considers all the parameters that are relevant for the desired behavior and the relevant start point. There is a strong dependence on the experience of the engineer. There are also limitation on the number of tests that can be conducted, due to the testing time, complexity and cost factors. The final results are highly subjective, as the decision making process lacks traceability and a reuse is not possible for future projects, e.g. tuning an ADAS setup for a different drive mode. As a result, a methodology to increase the efficiency and the quality of the tuning work at the same time, the so called &#x0201C;Design of Experiment&#x0201D; method (DoE) was adapted accordingly.</para>
<para>Within the DESERVE context this methodology was applied as &#x0201C;Design Space Exploration&#x0201D; for Simulation environments, which are excellent development environments for tuning of ADAS Functions.</para>
<para>The model-based approach was used with two objectives:</para>
<itemizedlist mark="bullet" spacing="normal">
<listitem><para>Firstly, to find an optimum tuning result.</para></listitem>
<listitem><para>Secondly, to validate an existing tuning result under a big variety of use cases, which will happen during the lifetime of a vehicle.</para></listitem>
</itemizedlist>
</section>
<section class="lev2" id="sec5-1-3">
<title>5.1.3 Model-based Tuning</title>
<para>Model-based tuning is a statistical, model-based approach which reduces the amount of actual experiments/test runs needed to accurately describe the behavior of the UUT within the design space. This method helps to choose the position of the test data points in order to generate behavior models with an efficient low number of measurements. Such models are then utilized to develop an accurate and robust tuning according to specific optimization target(s). In <link linkend="F5-4">Figure <xref linkend="F5-4" remap="5.4"/></link> the entire method is illustrated again for the generalized development environment.</para>
<fig id="F5-4" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F5-4">Figure <xref linkend="F5-4" remap="5.4"/></link></label> 
<caption><para>Model-based tuning task illustrated.</para></caption>
<graphic xlink:href="graphics/ch05_fig004.jpg"/>
</fig>
<para>In a model-based tuning task the below steps are followed:</para>
<itemizedlist mark="bullet" spacing="normal">
<listitem><para>The user begins with a task planning for the measurement series, where the targets for the tuning task are determined. Based on the targets, the relevant input parameters which are considered to influence the observed UUT response are selected. AVL CAMEO is used for the test plan generation. This is based on a one time set up process, in which CAMEO is connected to the development environment. Thus CAMEO gets access to set tuning parameters in the UUT, observe responses of the UUT and to start/stop maneuvers and to take measurements after maneuver. The development environment hosting the UUT could be in the form of a test bed, a hardware-in-the-loop (HiL) or even a vehicle simulation software like IPG Carmaker in combination with an ADAS-function prototype programmed in MATLAB.</para></listitem>
<listitem><para>Once the targets have been defined the next important step is to make the test matrix. In order to get a full picture of the area to be investigated, the Design of Experiments (DoE) is used [<link linkend="ch05_B7">7</link>]. It is a systematic technique which allows varying all the parameters simultaneously while answering the two important questions of every tuning activity: Firstly, how many tests are needed to cover the entire design space? And secondly, at which locations in the design space test points are needed to effectively get modelling equations valid throughout the entire design space. There are many DoE designs available to us in AVL CAMEO, but COR DoE methodology [<link linkend="ch05_B8">8</link>] was used in the current example exercise. Besides setting up the test design, it is also important to set the limits for the test and appropriate actions when the limit is violated. These topics are addressed further on in the example discussed in Subsection 6.2.1.</para></listitem>
<listitem><para>With the test plan and limits decided the tests are run, where the necessary parameter settings are uploaded to the UUT by CAMEO, and after the test, the required measurement results were stored in CAMEO. The raw measured data check is then carried out in order to check the plausibility and feasibility of measurement. It is a necessary check to get a rough idea of how the measurements compare against expected values, and also observe possible errors which could have occurred during the test execution.</para></listitem>
<listitem><para>The measurements are modeled empirically to obtain behavior models of the UUT. In this content, modeling means more or less to fit a function &#x02013; like a polynomial equation for example &#x02013; into the measured responses in order to estimate the response function of any point in the design space. Such a model helps understand the reaction of the UUT to the parameter tuning, and the interaction of the different tuning input parameters and the output measurements. The confidence and prediction intervals of the empirical models are observed to evaluate the model quality. Models in CAMEO also allow extrapolation in defined ranges beyond the design space covered by measurements to observe the UUT behavior at points where tests could not be run based on equipment limitations or time/cost constraints.</para></listitem>
<listitem><para>Based on the optimization target, optimization algorithms can be implemented for a single objective or multiple objectives. The engineer can decide if the results meet the targets and constraints and in case of multiple objectives decide on a suitable tradeoff between the different desired targets (Pareto front).</para></listitem>
<listitem><para>Before, the results from the analysis are accepted a final verification test is carried out. Tests are run at least on the point of the decided optimum, but can also be extended on parameters settings of ten or more points spread across the Pareto front. If these verification measurements match the modeled results then the empirical models are accepted and the engineer can use the optimization results as the desired tuning setting.</para></listitem>
</itemizedlist>
</section>
<section class="lev2" id="sec5-1-4">
<title>5.1.4 Model-based Validation</title>
<para>A model-based validation is a task carried out to test and evaluate the robustness of the results from the tuning task. The UUT is run at the parameters settings obtained from the tuning task, but tested for an alternate use case and the response is evaluated. For example; if say a diesel engine was tuned to operate at an economy mode and a sport mode with strong limits set on NOx emissions. Economy mode encourages the engine to conserve fuel while sacrificing power, while the Sport mode encourages the engine to provide greater power while making compromises on fuel economy, with the engine running more at the higher RPMs. The engine is initially tuned at driving conditions imitating an urban environment and lower altitudes, and from the tuning tasks the input parameters settings like the rail pressure, injection pressure, injection timing etc. are selected to operate the engine at the two targeted modes while sticking to the NOx limits. In the validation test run the engine is first run at the economic mode and then sport mode, but now the use case is in hilly road conditions and higher altitude. The engine performance is evaluated with respect to power and emissions, while the road and altitude of operation is varied. The target is to see if tuning settings could be extrapolated or extended to alternate use cases. It also gives further information on how the engine tuned for urban conditions would perform on rugged hilly conditions.</para>
</section>
</section>
<section class="lev1" id="sec5-2">
<title>5.2 Demonstrative Example</title>
<para>A map-based ACC-Function (developed by the DESERVE Partner CRF) running in a commercially available MiL Environment (IPG-Carmaker + MATLAB Simulink) has been used as an example. The calibration tool of AVL CAMEO was connected to this environment in order to tune the function for a Fiat 500L.</para>
<section class="lev2" id="sec5-2-1">
<title>5.2.1 Function: An Overview</title>
<para>A map-adaptive autonomous cruise control (ACC) was developed to:</para>
<itemizedlist mark="bullet" spacing="normal">
<listitem><para>Control the vehicle velocity in order to enter and exit curves in a comfortable and safe manner.</para></listitem>
<listitem><para>Complete the drive maneuver in the least amount of time.</para></listitem>
</itemizedlist>
<fig id="F5-5" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F5-5">Figure <xref linkend="F5-5" remap="5.5"/></link></label> 
<caption><para>Velocity profiles for a sample test run using the control function.</para></caption>
<graphic xlink:href="graphics/ch05_fig005.jpg"/>
</fig>
<para>The controller function controls the vehicle speed by sending jerk request (see <link linkend="F5-7">Figure <xref linkend="F5-7" remap="5.7"/></link>). Jerk is the rate of change of acceleration. Hence the jerk request signals from the controller function are converted into the vehicle acceleration and speed. For the reference maneuver a digitized road was used and a reference speed curve was determined, which is the maximum speed at which this road can be safely maneuvered. The function tries to ensure that, the vehicle follows this reference speed profile as closely as possible without exceeding it. The target speed was set at 130 km/h for the ACC. A demonstrative speed profile is shown in <link linkend="F5-5">Figure <xref linkend="F5-5" remap="5.5"/></link> for a sample settings in the ACC function. It can be seen that the vehicle velocity tries to follow the reference velocity while never exceeding it. The vehicle velocity is not able to exactly replicate the reference velocity due the road conditions, the vehicle limitations and the control function settings.</para>
<fig id="F5-6" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F5-6">Figure <xref linkend="F5-6" remap="5.6"/></link></label> 
<caption><para>Function developed using IPG carmaker and MATLAB simulink.</para></caption>
<graphic xlink:href="graphics/ch05_fig06.jpg"/>
</fig>
<para>The function was developed using IPG Carmaker for Simulink and has been illustrated in <link linkend="F5-6">Figure <xref linkend="F5-6" remap="5.6"/></link>. IPG Carmaker for Simulink is integrated into MATLAB/Simulink and necessary modification were done by adding the custom Simulink blocks developed for the current use case.</para>
</section>
<section class="lev2" id="sec5-2-2">
<title>5.2.2 Design Variables</title>
<para>In order to tune the function for the reference maneuver, four input parameters or design variables were selected (see <link linkend="F5-7">Figure <xref linkend="F5-7" remap="5.7"/></link>). As per the terminology used in CAMEO these tunable input parameters will be referred to as the <emphasis role="strong">variation parameters</emphasis>. The variation parameters selected for the tuning task are:</para>
<itemizedlist mark="bullet" spacing="normal">
<listitem><para>Acceleration Maximum (<emphasis role="strong">A_MAX</emphasis>) limits the maximum positive acceleration the vehicle can have while safely completing the maneuver. The negative acceleration is not limited in order for the vehicle to generate the necessary breaking force in case of obstacles.</para></listitem>
<listitem><para>Jerk Maximum (<emphasis role="strong">J_MAX</emphasis>) limits the maximum positive jerk request from the controller function in order to meet the reference velocity curve. But only the positive jerk given by the engine and responsible for positive acceleration is limited, while there is no lower limit for the negative jerks for reasons mentioned previously.</para>
<fig id="F5-7" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F5-7">Figure <xref linkend="F5-7" remap="5.7"/></link></label>
<caption><para>Function overview.</para></caption>
<graphic xlink:href="graphics/ch05_fig007.jpg"/>
</fig>
<fig id="F5-8" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F5-8">Figure <xref linkend="F5-8" remap="5.8"/></link></label>
<caption><para>Illustration of the kinematic variables A_MAX and J_MAX.</para></caption>
<graphic xlink:href="graphics/ch05_fig008.jpg"/>
</fig>
<para><link linkend="F5-8">Figure <xref linkend="F5-8" remap="5.8"/></link> illustrates the kinematic parameters, with acceleration being the derivative of velocity and jerk the derivative of acceleration.</para></listitem>
<listitem><para>Forward Time (<emphasis role="strong">FORWARD_TIME</emphasis>) is a gain factor to transform the jerk request from the controller function to an acceleration request. Even though the controller function is based on jerk and sends the desired jerk requests for the vehicle, the interface to control vehicle motion is based on acceleration. Hence to control the vehicle the desired value of acceleration is required. In order to obtain the desired acceleration from the request jerk, one has to look forward for a given time which is called Forward Time. Mathematically it can be defined by the formula.</para>
<para>A_req = A_0 + J_req&#x0002A;<emphasis role="strong">FORWARD_TIME</emphasis><?lb?>A_req is the Acceleration request<?lb?>A_0 is the current vehicle acceleration<?lb?>J_req is the Jerk request generated by the controller function</para></listitem>
<listitem><para>Jerk Horizon (<emphasis role="strong">J_HOR)</emphasis> is a parameter used to determine when the controller function sends the necessary jerk requests and the required jerk magnitude in response to an approaching curve. To define what is &#x0201C;near&#x0201D; and &#x0201C;far&#x0201D; (with respect to the distance from the approaching curve) for the controller function, the parameter <emphasis role="strong">J_HOR</emphasis> is used, where HOR stands for the horizon points (of the electronic horizon) to be considered. J_HOR is always a negative value, and values closer to zero make the controller respond to the approaching curve when it is further away with a smaller deceleration demand. Higher negative value tells the controller to respond when the approaching curve is closer in proximity but with a larger deceleration. A pictorial representation is given in <link linkend="F5-9">Figure <xref linkend="F5-9" remap="5.9"/></link>.</para>
<fig id="F5-9" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F5-9">Figure <xref linkend="F5-9" remap="5.9"/></link></label> 
<caption><para>Illustration of the design variable (variation) J_HOR.</para></caption>
<graphic xlink:href="graphics/ch05_fig009.jpg"/>
</fig>
<para>The black line represents the target velocity set for the controller and the reference velocity curve is given in red. As explained previously the controller tries to control the vehicle speed (in blue) as close as possible to the reference speed.</para>
<para>The mathematical expression &#x0201C;<emphasis role="strong">A_MAX</emphasis> + <emphasis role="strong">J_HOR</emphasis>&#x0002A;time&#x0201D; determines the funnel of the vehicle velocity curve shape (shown in blue). More negative <emphasis role="strong">J_HOR</emphasis> give the velocity curve a sharper shape, while values closer to zero give the velocity curve a flatter shape.</para></listitem>
</itemizedlist>
<para>The range of the variation parameters examined in the tuning task have been shown in <link linkend="T5-1">Table <xref linkend="T5-1" remap="5.1"/></link>.</para>
<table-wrap position="float" id="T5-1">
<label><link linkend="T5-1">Table <xref linkend="T5-1" remap="5.1"/></link></label>
<caption><para>Range of variation parameters used in the tuning task</para></caption>
<table cellspacing="5" cellpadding="5" frame="hsides" rules="groups">
<thead>
<tr>
<td valign="bottom" align="left">Design Variable</td>
<td valign="bottom" align="center">From</td>
<td valign="bottom" align="center">To</td>
</tr>
</thead>
<tbody>
<tr>
<td valign="top" align="left">A_MAX (m/s&#x002C6;2)</td>
<td valign="top" align="center">1</td>
<td valign="top" align="center">5</td>
</tr>
<tr>
<td valign="top" align="left">FORWARD_TIME (s)</td>
<td valign="top" align="center">0.1</td>
<td valign="top" align="center">2</td>
</tr>
<tr>
<td valign="top" align="left">J_HOR (m/s&#x002C6;3)</td>
<td valign="top" align="center">&#x02013;5</td>
<td valign="top" align="center">&#x02013;0.2</td>
</tr>
<tr>
<td valign="top" align="left">J_MAX (m/s&#x002C6;3)</td>
<td valign="top" align="center">1</td>
<td valign="top" align="center">3</td>
</tr>
</tbody>
</table>
</table-wrap>
</section>
<section class="lev2" id="sec5-2-3">
<title>5.2.3 Key Performance Indicators (KPI)</title>
<para>The output variables to demonstrate the effectiveness of our tuning task to meet the targets are described below and illustrated in <link linkend="F5-10">Figure <xref linkend="F5-10" remap="5.10"/></link>:</para>
<itemizedlist mark="bullet" spacing="normal">
<listitem><para>Mean Speed: The mean of the vehicle speed in each test run is indicative of the sportiness of the driving experience. A higher mean speed helps finish the test maneuver in less amount of time, and makes the driving experience sportier.</para></listitem>
<listitem><para>Speed below reference: The reference speed curve is the maximum speed with which the vehicle (Fiat 500L) can maneuver the digital test track without leaving the road for the reference use case. Hence to ensure vehicle safety it was ensured that the vehicle speed during the tuning task was always below the reference velocity.</para></listitem>
<listitem><para>Jerk_RMS: Vehicle jerk which is the rate of change of vehicle acceleration, is indicative of the driving comfort. Lower rate of change of jerk gives a comfortable ride, so the root mean square of the jerk in a test run is a good indication of the driving comfort.</para></listitem>
</itemizedlist>
<fig id="F5-10" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F5-10">Figure <xref linkend="F5-10" remap="5.10"/></link></label> 
<caption><para>Key performance indicators.</para></caption>
<graphic xlink:href="graphics/ch05_fig0010.jpg"/>
</fig>
</section>
<section class="lev2" id="sec5-2-4">
<title>5.2.4 Test Maneuver</title>
<para>The test maneuver consisted of 5000 m test run on a digitized road imitating the road between Ceva and Savona in Italy run on IPG Carmaker for Simulink (CM4SL). IPG Carmaker environment is illustrated in <link linkend="F5-11">Figure <xref linkend="F5-11" remap="5.11"/></link>. The top left is the Carmaker for Simulink main GUI, showing details about the vehicle, simulation speed, time and distance of maneuver etc. The bottom left imitates the car instrumentation. The top right is time based plot of car speed and the vehicle jerk. The bottom right is the IPG Movie which illustrates the overall test run in a movie.</para>
<fig id="F5-11" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F5-11">Figure <xref linkend="F5-11" remap="5.11"/></link></label> 
<caption><para>IPG Carmaker test environment.</para></caption>
<graphic xlink:href="graphics/ch05_fig011.jpg"/>
</fig>
</section>
<section class="lev2" id="sec5-2-5">
<title>5.2.5 Test Run Overview</title>
<para>The test run overview is illustrated in <link linkend="F5-12">Figure <xref linkend="F5-12" remap="5.12"/></link>. The test parametrization was done in AVL CAMEO, where a space filling DoE design with the four variations was used. The variations were then uploaded to CM4SL through the CAMEO-Carmaker Interface, where the test maneuver was run for each variations setting. AVL CAMEO then stores the measurement parameters observed as the KPIs for further evaluation.</para>
<fig id="F5-12" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F5-12">Figure <xref linkend="F5-12" remap="5.12"/></link></label> 
<caption><para>Test run overview illustrating the work flow.</para></caption>
<graphic xlink:href="graphics/ch05_fig012.jpg"/>
</fig>
<para>During parametrization there were limits set on the minimum (&#x02013;2 m/s&#x002C6;3) and maximum (2 m/s&#x002C6;3) acceptable vehicle jerk values. Whenever the vehicle jerk value violated the limits the test run at that test point was halted and no measurements were recorded. This affected the overall DoE design effectiveness with a reduced design space and as a result reduced measurement points. To overcome this challenge a COR DoE (Customized Output Range) method was utilized, which is an iterative method where first alternate test points were added by CAMEO to maintain the DoE design. Then based on these preliminary measurements the design space was further modified and additional test points were added in the relevant variation space to improve the final information from the measurements. Design space modification. The AVL CAMEO interface is illustrated in <link linkend="F5-13">Figure <xref linkend="F5-13" remap="5.13"/></link>, where the image to the left illustrates the overall test parametrization while the image to the right shows the test run window.</para>
<fig id="F5-13" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F5-13">Figure <xref linkend="F5-13" remap="5.13"/></link></label> 
<caption><para>Left image illustrates the test preparation window while the right image illustrates the test run window.</para></caption>
<graphic xlink:href="graphics/ch05_fig013.jpg"/>
</fig>
</section>
<section class="lev2" id="sec5-2-6">
<title>5.2.6 Raw Data Plausibility Check</title>
<para>Before the mathematical modeling of the selected output measured variables, the raw measurements were checked for plausibility. Firstly, the measured variables were checked for any outliers as shown in <link linkend="F5-14">Figure <xref linkend="F5-14" remap="5.14"/></link> for mean speed. The measured values were within the acceptable range. The figure also shows that the repetition points (a select number of test conditions, usually the start condition which are repeated to check the reproducibility of test results) shown in green were perfectly reproduced.</para>
<fig id="F5-14" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F5-14">Figure <xref linkend="F5-14" remap="5.14"/></link></label> 
<caption><para>Checking for outliers in the measured variables.</para></caption>
<graphic xlink:href="graphics/ch05_fig0014.jpg"/>
</fig>
<para>The effect of design space modification, due to limit violations and the design correction by COR DoE method can be seen in <link linkend="F5-15">Figure <xref linkend="F5-15" remap="5.15"/></link>. In a certain range of variations for A_MAX, J_HOR and FORWARD_TIME there are no test points. Limit violations encountered when tests were carried out at these range of points are the reason why they were skipped by AVL CAMEO. Conversely a greater density of test points in certain ranges of variations show where the COR DoE added alternate or additional test points.</para>
<fig id="F5-15" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F5-15">Figure <xref linkend="F5-15" remap="5.15"/></link></label> 
<caption><para>Check of DoE design and the boundaries of variation parameters.</para></caption>
<graphic xlink:href="graphics/ch05_fig015.jpg"/>
</fig>
</section>
<section class="lev2" id="sec5-2-7">
<title>5.2.7 Meta Modelling</title>
<para>The raw data plausibility check was followed by empirical modeling of the output variables. The automatic modeling in CAMEO gave reasonable results with a neural networks model with local model order 2, as can be seen in <link linkend="F5-16">Figure <xref linkend="F5-16" remap="5.16"/></link> which is the Measured (Predicted) plot which shows the fit of the model to the measurement points. If there is a perfect match all points will lie along the black line, but in our case the measurement points are reasonably close to the black line.</para>
<fig id="F5-16" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F5-16">Figure <xref linkend="F5-16" remap="5.16"/></link></label> 
<caption><para>Figure depicting the quality of empirical modeling.</para></caption>
<graphic xlink:href="graphics/ch05_fig0016.jpg"/>
</fig>
<para>After checking the quality of modeling, the intersection plots were used which represent a cut through the multidimensional model, showing the influence of each variation depending on the values of the other variations. In <link linkend="F5-17">Figure <xref linkend="F5-17" remap="5.17"/></link> the influence of the variation parameters on Speed_Mean and Jerk_RMS can be observed. The confidence interval of the model is displayed in the green dotted line and colored section. The narrow confidence interval shows a high quality fit. The green bar on the x axis for each variation shows the total design space, and as the confidence interval of the model in the extrapolated region is also narrow, it shows good extrapolation capability of the model. Now looking at the intersection plots, it can be noticed that J_HOR and A_MAX have a strong influence on the output parameters. The more negative the J_HOR, the later the vehicle reacts to an approaching curve. Hence it is still travelling at a high speed before decelerating to approach the curve safely. Hence a higher mean speed is observed, but the resulting braking produces higher vehicle jerk reducing the driving comfort. Influence of A_MAX can be a bit counter intuitive but it can be seen that A_MAX is used to calculate J_HOR. The higher A_MAX, the less negative is J_HOR. Hence for higher A_MAX values J_HOR is closer to zero hence a smoother and slower ride. It can also be observed that higher FORWARD_TIME allows for a smoother and slower ride, which is because the controller can take more time to achieve the desired acceleration.</para>
<fig id="F5-17" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F5-17">Figure <xref linkend="F5-17" remap="5.17"/></link></label> 
<caption><para>Intersection plot highlighting the influence of each variation on the output variables and their interaction.</para></caption>
<graphic xlink:href="graphics/ch05_fig0017.jpg"/>
</fig>
</section>
<section class="lev2" id="sec5-2-8">
<title>5.2.8 Optimization</title>
<para>From the intersection plot, it is possible to manually find values of the variations which give a comfortable ride or sporty ride or an acceptable compromise. But it is quite easy to miss the optimum or an acceptable compromise when working with multiple input variations, hence the optimization tool in CAMEO was used. In the current tuning scenario, the target was to be able to isolate two modes of operation, comfort mode and sporty mode. Hence a multi objective optimization was chosen with limits set on the minimum desired mean speed of 115 Km/h and maximum acceptable JERK_RMS of 0.28 (<link linkend="F5-18">Figure <xref linkend="F5-18" remap="5.18"/></link>).</para>
<fig id="F5-18" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F5-18">Figure <xref linkend="F5-18" remap="5.18"/></link></label> 
<caption><para>Optimization setting window in AVL CAMEO.</para></caption>
<graphic xlink:href="graphics/ch05_fig018.jpg"/>
</fig>
<para>The result is plotted in a trade-off plot as shown in <link linkend="F5-19">Figure <xref linkend="F5-19" remap="5.19"/></link>, where the steel blue is the pareto front, the blue points indicates the measurement values and the other yellows points are random space filling points. The pareto front shows the possible optimum trade-off solutions which can be considered equally good as the only way to improve on objective would be to compromise on the second objective. So by observing the pareto front it is possible to define an optimum for comfort mode and an optimum for sporty mode of operation <link linkend="T5-2">Table <xref linkend="T5-2" remap="5.2"/></link>.</para>
<fig id="F5-19" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F5-19">Figure <xref linkend="F5-19" remap="5.19"/></link></label>
<caption><para>Trade-off plot between comfort and speed.</para></caption>
<graphic xlink:href="graphics/ch05_fig019.jpg"/>
</fig>
<table-wrap position="float" id="T5-2">
<label><link linkend="T5-2">Table <xref linkend="T5-2" remap="5.2"/></link></label>
<caption><para>Variations values for comfort and sporty mode</para></caption>
<table cellspacing="5" cellpadding="5" frame="hsides" rules="groups">
<thead>
<tr>
<td valign="bottom" align="left"></td>
<td valign="bottom" align="center">A_MAX</td>
<td valign="bottom" align="center">FORWARD_TIME</td>
<td valign="bottom" align="center">J_HOR</td>
<td valign="bottom" align="center">J_MAX</td>
<td valign="bottom" align="center">SPEED_Mean</td>
<td valign="bottom" align="center">JERK_RMS</td>
</tr>
</thead>
<tbody>
<tr>
<td valign="top" align="left">Comfort</td>
<td valign="top" align="center">4.99</td>
<td valign="top" align="center">1.94</td>
<td valign="top" align="center">&#x02013;0.84</td>
<td valign="top" align="center">1.0</td>
<td valign="top" align="center">115</td>
<td valign="top" align="center">0.09</td>
</tr>
<tr>
<td valign="top" align="left">Sporty</td>
<td valign="top" align="center">3.88</td>
<td valign="top" align="center">1.37</td>
<td valign="top" align="center">&#x02013;1.84</td>
<td valign="top" align="center">3.36</td>
<td valign="top" align="center">120</td>
<td valign="top" align="center">0.28</td>
</tr>
</tbody>
</table>
</table-wrap>
<para>In <link linkend="F5-20">Figure <xref linkend="F5-20" remap="5.20"/></link>: Sporty mode vs comfort mode: the vehicle performance when operating at the two modes can be observed. The red velocity curve is the reference velocity and blue velocity curve is the actual vehicle velocity. It can be observed that the actual velocity is always below reference velocity which was the safety requirement. Also the velocity changes in comfort mode is more gradual with no sharp peaks unlike in sporty mode where there are rapid fluctuations in vehicle velocity. This behavior is also mirrored in the acceleration values in both operation modes. The vehicle jerk curves (red plot is the jerk request generated by the controller and blue the actual vehicle jerk response) show much lower values in vehicle jerk for comfort mode while the sporty mode show sharp and frequent peaks in jerk value.</para>
<fig id="F5-20" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F5-20">Figure <xref linkend="F5-20" remap="5.20"/></link></label> 
<caption><para>Sporty mode vs comfort mode.</para></caption>
<graphic xlink:href="graphics/ch05_fig020.jpg"/>
</fig>
</section>
<section class="lev2" id="sec5-2-9">
<title>5.2.9 Verification</title>
<para>The pareto front consists of points a majority of which are from the model extrapolation. In order to verify the robustness of the model to accurately extrapolate, ten random points were selected from the pareto front and for the corresponding variation values the test runs were rerun. The results from these test runs were evaluated as verification points in CAMEO. The <link linkend="F5-21">Figure <xref linkend="F5-21" remap="5.21"/></link> shows the extrapolated model (in red) and its prediction interval (in blue), and the measured verification points and its modeling (in green). The measured verification points lie within the prediction interval of the model, showing the extrapolation accuracy of the model.</para>
<fig id="F5-21" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F5-21">Figure <xref linkend="F5-21" remap="5.21"/></link></label> 
<caption><para>Verification plot to see how well the measured results from the verification run fit the model results.</para></caption>
<graphic xlink:href="graphics/ch05_fig0021.jpg"/>
</fig>
</section>
</section>
<section class="lev1" id="sec5-3">
<title>5.3 Model-based Validation</title>
<para>Once the reference tuning task is completed, it has to be tested, if the tuning results are still acceptable, when not running the reference use case but for varying road characteristics. Will the comfort mode still allow for a comfortable drive also for different road situations? It would be unfeasible to run simulations on thousands of different roads, besides making it difficult to realize the influence of a specific road. In the current method the two tuning modes are fixed and a system variation of a digitized road is performed using the model based approach to validate our tuning results.</para>
<para>The digitized road is shown in <link linkend="F5-22">Figure <xref linkend="F5-22" remap="5.22"/></link>, where the lengths of the straight sections (L1, L2, L3, and L4) and curvatures (R1, R2, R3) were varied while keeping the total maneuver length to 5000 m. The controller settings were fixed to run at first comfort mode and then sporty mode, and the resulting measurement output variables are shown in <link linkend="F5-23">Figure <xref linkend="F5-23" remap="5.23"/></link>.</para>
<fig id="F5-22" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F5-22">Figure <xref linkend="F5-22" remap="5.22"/></link></label> 
<caption><para>Digitized road used for the validation run.</para></caption>
<graphic xlink:href="graphics/ch05_fig0022.jpg"/>
</fig>
<para>It can be seen in <link linkend="F5-23">Figure <xref linkend="F5-23" remap="5.23"/></link>: Measurements comparison when run on comfort mode (in blue) and sporty Mode (in red) that for the sporty mode the resulting drive comfort is lower as indicated by the higher JERK_RMS. The length of the straight portions do not influence the JERK_RMS for comfort mode as strongly as in the sporty mode. The curvature of the turns seem to influence the output in both the operation modes. A JERK_RMS limit of at least 0.35 is expected, and it can be seen that the limit is maintained in both the modes of operation for majority of the design space. In the sporty mode the controller is set to maintain a higher vehicle speed and responds to the oncoming curve only when it is close, hence the longer the straight sections, the larger the jerk experienced when it decelerates rapidly to approach the curve followed by a strong acceleration on leaving the curve. For the comfort mode, the controller is set to focus on keeping the vehicle jerk close to minimum. The validation task showed that, if the function (our UUT) is kept constant and the simulation environment is changed, the function still manages to meet the expected vehicle jerk targets. The influence of &#x02018;L4&#x02019; on the jerk behavior needs to be further investigated as it strongly increases the vehicle jerk fluctuations at higher values especially for the sporty mode. To further explore and investigate the influence of test track characteristics on the function response, it can be tested on a variety of road types and test tracks. This assists in the further improving the function performance.</para>
<fig id="F5-23" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F5-23">Figure <xref linkend="F5-23" remap="5.23"/></link></label> 
<caption><para>Measurements comparison when run on comfort mode (in blue) and sporty mode (in red).</para></caption>
<graphic xlink:href="graphics/ch05_fig0023.jpg"/>
</fig>
</section>
<section class="lev1" id="sec5-4">
<title>5.4 Conclusions</title>
<para>Virtual tuning of an ADAS function developed on a MiL environment using an optimization tool can be a powerful combination for the development of a brands driver assistance system. The classical approach relies on a subjective tuning of the ADAS function on a proving ground and public roads, which can be supported and accelerated by using a virtual tuning environment. Using DoE methods supported by AVL CAMEO, it was possible to increase the number of tuning tests compared to a manual tuning, and also the number of target parameters and tests needed to match them. The possibility to use the developed function for alternate use cases by separating the software and the tuning data is precondition for tuning works in general.</para>
<para>Independent of that also in the validation process a model-based approach can be very helpful, as the test coverage for a certain use case can be extended to a wide range of possibly occurring variants of that use case. The robustness of the key performance indicators considered as relevant can be estimated.</para>
</section>
<section class="lev1" id="sec5-5">
<title>Acknowledgement</title>
<para>We would like to thank Mr. Andreas Saroldi from CRF for providing the ADAS function.</para>
</section>
<section class="lev1" id="sec5-6">
<title>References</title>
<orderedlist numeration="arabic" continuation="restarts" spacing="normal">
<listitem><para><anchor id="ch05_B1"/>M. Paulweber and K. Lebert: <emphasis>Instrumentation and Test Systems: Power Train development, Hybridization and Electrification.</emphasis> Chapter 5.4.2 <emphasis>Application Data management,</emphasis> Springer View, 2016. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=M%2E+Paulweber+and+K%2E+Lebert%3A+Instrumentation+and+Test+Systems%3A+Power+Train+development%2C+Hybridization+and+Electrification%2E+Chapter+5%2E4%2E2+Application+Data+management%2C+Springer+View%2C+2016%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch05_B2"/>AVL Tuning Data Management Software: <ulink url="http://www.avl.com/creta">http://www.avl.com/creta</ulink> (called at 2016 01 20).</para></listitem>
<listitem><para><anchor id="ch05_B3"/>H.-M. Koegeler; A. F&#x00FC;rhapter; M. Mayer; K. Gschweitl: <emphasis>DGI-Engine Calibration, Using New Methodology with CAMEO</emphasis>. In SAE NA, Capri &#x02013;Italy, 23&#x02013;27. September 2001. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=H%2E-M%2E+Koegeler%3B+A%2E+F%FCrhapter%3B+M%2E+Mayer%3B+K%2E+Gschweitl%3A+DGI-Engine+Calibration%2C+Using+New+Methodology+with+CAMEO%2E+In+SAE+NA%2C+Capri+-Italy%2C+23-27%2E+September+2001%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch05_B4"/>E. Castagna; M. Biondo; J. Cottrell; H. Altenstrasser; Ch. Beidl; H.-M. Koegeler; N. Schuch: <emphasis>Multiple Tier 3 Engine Applications based on global modelling.</emphasis> In MTZ 6/2007. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=E%2E+Castagna%3B+M%2E+Biondo%3B+J%2E+Cottrell%3B+H%2E+Altenstrasser%3B+Ch%2E+Beidl%3B+H%2E-M%2E+Koegeler%3B+N%2E+Schuch%3A+Multiple+Tier+3+Engine+Applications+based+on+global+modelling%2E+In+MTZ+6%2F2007%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch05_B5"/>T. Fortuna; H.-M. Koegeler; M. Kordon; V. Gianluca: <emphasis>DoE and Beyond- Evolution of the Model based Development Approach</emphasis>, in ATZ worldwide, Springer, 2015. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=T%2E+Fortuna%3B+H%2E-M%2E+Koegeler%3B+M%2E+Kordon%3B+V%2E+Gianluca%3A+DoE+and+Beyond-+Evolution+of+the+Model+based+Development+Approach%2C+in+ATZ+worldwide%2C+Springer%2C+2015%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch05_B6"/>H. M. Koegeler; B. Schick; P. E. Pfeffer; A. Contini; M. Lugert; T. Sch&#x00F6;ning: <emphasis>Model Based Steering ECU Calibration on a Steering in the Loop Test Bench</emphasis>, in Chassis Tech 2015. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=H%2E+M%2E+Koegeler%3B+B%2E+Schick%3B+P%2E+E%2E+Pfeffer%3B+A%2E+Contini%3B+M%2E+Lugert%3B+T%2E+Sch%F6ning%3A+Model+Based+Steering+ECU+Calibration+on+a+Steering+in+the+Loop+Test+Bench%2C+in+Chassis+Tech+2015%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch05_B7"/>D. C. Montgomery: <emphasis>Design and Analysis of Experiments,</emphasis>John Wiley and Sons. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=D%2E+C%2E+Montgomery%3A+Design+and+Analysis+of+Experiments%2CJohn+Wiley+and+Sons%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch05_B8"/>A. Rainer; H. M Koegeler; D. Rogers: <emphasis>Iterative DoE &#x02013; Improved emission models and better optimization results within a shortened measurement time,</emphasis> in PMC, 2014. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=A%2E+Rainer%3B+H%2E+M+Koegeler%3B+D%2E+Rogers%3A+Iterative+DoE+-+Improved+emission+models+and+better+optimization+results+within+a+shortened+measurement+time%2C+in+PMC%2C+2014%2E" target="_blank">Google Scholar</ulink></para></listitem>
</orderedlist>
</section>
</chapter>
</part>
<part class="part" id="part02" label="II" xreflabel="II">
<title>Test Case Functions</title>
<chapter class="chapter" id="ch06" label="6" xreflabel="6">
<title>Deep Learning for Advanced Driver Assistance Systems</title>
<para class="section"><emphasis role="strong">Florian Giesemann<superscript><emphasis role="strong">1</emphasis></superscript>, Guillermo Pay&#x000E1;-Vay&#x000E1;<superscript><emphasis role="strong">1</emphasis></superscript>, Holger Blume<superscript><emphasis role="strong">1</emphasis></superscript>, Matthias Limmer<superscript><emphasis role="strong">2</emphasis></superscript> and Werner R. Ritter<superscript><emphasis role="strong">2</emphasis></superscript></emphasis></para>
<para><superscript>1</superscript>Institute of Microelectronic Systems, Leibniz Universit&#x00E4;t Hannover, Hannover, Germany</para>
<para><superscript>2</superscript>Vision Enhancement, Daimler AG, Germany</para>
<section class="lev1" id="sec6-1">
<title>6.1 Introduction</title>
<para>Today, vehicles contain a wide range of electronic driver assistance systems. These systems, for example <emphasis>Anti-lock Braking System</emphasis> (ABS) or <emphasis>Electronic Stability Control</emphasis> (ESC), increase car safety and on a more general level even road safety. More complex <emphasis>Advanced Driver Assistance Systems</emphasis> (ADAS), like <emphasis>Lane Departure Warning</emphasis>, <emphasis>Overtaking Assistant</emphasis>, <emphasis>Collision Warning</emphasis> or <emphasis>Emergency Breaking</emphasis> do not only observe the parameters of the vehicle itself, but also require information regarding the environment. Future applications, which target autonomous driving, need an even more detailed understanding of the vehicle&#x02019;s environment and the current driving situation. Therefore, vehicles are equipped with a number of sensors, which enable the perception of the vehicle&#x02019;s surroundings including other road users. But the sensors generaly used deliver a huge amount of raw and unrefined data, from which the necessary information needs to be extracted. For instance, for camera sensors, an algorithm called <emphasis>Scene Labeling</emphasis> can be used to detect relevant objects in camera images. It assigns every pixel of an input image to a semantic class (e.g., road, car, free space etc.) and can therefore be used to extract detailed information from the scene.</para>
<para>The increasing complexity of algorithms and the increasing amount of data that has to be processed requires a high amount of processing power. At the same time, processing hardware is subject to restrictions regarding power consumption and size. These conditions make the field of embedded hardware platforms for driver assistance systems challenging.</para>
<para>This chapter is organized as follows: Section 6.2 gives an introduction to Scene Labeling techniques and their application in Advanced Driver Assistance Systems. Section 6.3 explains the concepts of Convolutional Neural Networks and Deep Learning. In Section 6.4, an exemplary CNN is presented and evaluated. Section 6.5 describes different hardware platforms for Scene Labeling. Finally, Section 6.6 summarizes the chapter.</para>
</section>
<section class="lev1" id="sec6-2">
<title>6.2 Scene Labeling in Advanced Driver Assistance Systems</title>
<para>Getting a thorough understanding of the vehicle&#x02019;s environment is an important step in the development of advanced driver assistance systems. Different techniques for detection and classification of objects have been developed. Literature offers a wide range of algorithms for detecting traffic signs, traffic lights, driving lanes, and also other vehicles and pedestrians. In order to build up a comprehensive understanding of the environment, not only single objects have to be detected, but also the objects in relation to each other have to be determined. This is commonly referred to as <emphasis>Scene Labeling</emphasis>.</para>
<para>Scene Labeling is a technique to classify images on different levels of detail. Image-level Scene Labeling (e.g., [<link linkend="ch06_B1">1</link>]) is used to derive one or more labels for the whole image that describe different scene types, e.g., urban, inter-urban, or highway. On another level, labels are deduced for small sub regions of an image, so called <emphasis>regions of interest</emphasis>. This allows for a more detailed understanding of the scene in terms of objects, like pedestrians, vehicles, driving lanes, traffic signs and so on. On a third level of detail, each pixel in an input image is classified and provided with a semantic label. The information provided by these labels can be used in different applications, for example in pedestrian/obstacle detection, close range lane course estimation or relative map positioning.</para>
<para>Scene Labeling can also be combined with other detection methods in order to increase reliability and thereby increase the integrity level of safety functions. Moreover, it can replace different detection modules in order to save resources.</para>
<para>The Scene Labeling task is usually performed in two steps. The first step extracts features from the input image; the second step computes a classification of the image, the region, or the pixels from the extracted features.</para>
<para>Several different features are used in order to perform image segmentation and semantic labeling. Some algorithms rely on single, low-level features, like color [<link linkend="ch06_B2">2</link>], texture [<link linkend="ch06_B3">3</link>, <link linkend="ch06_B4">4</link>], shape [<link linkend="ch06_B3">3</link>, <link linkend="ch06_B5">5</link>], geometry [<link linkend="ch06_B6">6</link>], and edge features [<link linkend="ch06_B7">7</link>]. Object detection algorithms are used to extract high-level features, e.g., pedestrian detection [<link linkend="ch06_B8">8</link>], traffic sign detection [<link linkend="ch06_B9">9</link>], and lane detection [<link linkend="ch06_B10">10</link>]. Some algorithms perform labeling using image segmentation techniques, e.g., Super Pixels [<link linkend="ch06_B11">11</link>] or sliding windows using Boosting [<link linkend="ch06_B12">12</link>] to detect regions of one certain class, e.g., pedestrians or traffic signs.</para>
<para>Classification of extracted features is performed using different techniques, like Support Vector Machines [<link linkend="ch06_B13">13</link>], Genetic Algorithms [<link linkend="ch06_B7">7</link>], or Neural Networks [<link linkend="ch06_B14">14</link>]. Probabilistic models like Conditional Random Fields (CRF) [<link linkend="ch06_B15">15</link>] and graph-based optimization methods (e.g., Graph Cut [<link linkend="ch06_B16">16</link>]) are used to combine different features and include smoothness constraints or neighbor relationships.</para>
<para>Recent advances in the field of deep learning and neural networks yielded a new technique for the scene labeling problem, which is described in the next section.</para>
</section>
<section class="lev1" id="sec6-3">
<title>6.3 Convolutional Neural Networks and Deep Learning</title>
<para>Typical systems for detection and recognition of objects or situations use a two-step data processing scheme. In a first step, features are computed from data gathered through different sensors, like cameras, radar, etc. Then, a second step uses the previously computed features in order to classify the candidates into the object classes. The implementation of the classification step might involve the use of machine learning techniques, i.e., the training of a classifier. One difficulty in this scenario is the selection of features to be used. Often, these features are hand-crafted and a lot of work might be involved in tuning the parameters in order to find a set of features that can be used for reliable detection and recognition of objects.</para>
<para>Another way of building recognition systems that evolved recently is the use of learning techniques and especially the technique of <emphasis>deep learning</emphasis> with close coupling between the feature extraction and feature classification steps. Deep learning describes methods, in which feature extractors are not hand-crafted but automatically learned from a set of training data. Multiple layers of feature extractors can be used in a hierarchical structure in order to allow deeper layers to extract features of higher order from previous layers. The idea behind this technique is that the learning algorithm is capable of detecting the best features for the following classification step itself. Commonly used implementations of the deep learning methodology are <emphasis>artificial neural networks</emphasis>.</para>
<section class="lev2" id="sec6-3-1">
<title>6.3.1 Introduction to Neural Networks</title>
<para>Inspired by processes in the biological neural networks of the central nervous systems and especially the brain, different computational models of artificial neural networks have been developed [<link linkend="ch06_B17">17</link>]. Artificial neural networks are built as a collection of relatively simple units, so called neurons, that are connected together to form a network which can process a complicated task. One of the first models of neural networks is called <emphasis>perceptron</emphasis> [<link linkend="ch06_B18">18</link>]. The simple perceptron neurons perform binary decisions depending on their input values. The input signals <emphasis>x<subscript>i</subscript></emphasis> are weighted and accumulated. The neuron &#x0201C;fires&#x0201D;, i.e., produces an output signal <emphasis>y</emphasis> of 1, if the weighted sum of the input signal exceeds a given threshold value, and outputs 0 otherwise. The first networks had one single layer of neurons and were only capable of computing linear classifications. More complex networks with multiple layers were capable of computing more complex classifications. Nowadays, neural networks use a different model for the artificial neurons [<link linkend="ch06_B19">19</link>, <link linkend="ch06_B20">20</link>], as depicted in <link linkend="F6-1">Figure <xref linkend="F6-1" remap="6.1"/></link>. The input values, which are now real numbered values, are weighted and accumulated. Afterwards, a non-linear activation function is applied to the sum. Commonly used activation functions are the <emphasis>sigmoid function</emphasis>, which can be interpreted as a smoothed threshold. Recently, <emphasis>rectifier linear units (ReLU)</emphasis> have been reported to have several advantages over the sigmoid functions [<link linkend="ch06_B21">21</link>]. Some exemplary activation functions are shown in <link linkend="F6-2">Figure <xref linkend="F6-2" remap="6.2"/></link>.</para>
<fig id="F6-1" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F6-1">Figure <xref linkend="F6-1" remap="6.1"/></link></label>
<caption><para>Model of an artificial neuron.</para></caption>
<graphic xlink:href="graphics/ch06_fig001.jpg"/>
</fig>
<fig id="F6-2" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F6-2">Figure <xref linkend="F6-2" remap="6.2"/></link></label>
<caption><para>Exemplary activation functions used in neural networks.</para></caption>
<graphic xlink:href="graphics/ch06_fig002.jpg"/>
</fig>
<para>The bias is another value summed up along with the weighted inputs. This parameter influences the neuron&#x02019;s general activity or the likelihood for an output activation of the neuron. For simplicity, the bias can be interpreted as the weight for a constant input value of 1, so that all parameters of the network can be interpreted as weights. Therefore, a neuron with inputs <emphasis>x</emphasis><subscript>1</subscript>, <emphasis>x</emphasis><subscript>2</subscript>&#x02026;, <emphasis>x<subscript>n</subscript></emphasis>, weights <emphasis>w</emphasis><subscript>1</subscript>,&#x02026;, <emphasis>w<subscript>n</subscript></emphasis>, bias <emphasis>w</emphasis><subscript>0</subscript>, (with <emphasis>x</emphasis><subscript>0</subscript> = 1) and activation function <emphasis>f</emphasis> can be described mathematically as</para>
<para><graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="graphics/ch06_ueq1.jpg"/></para>
<para>In so called <emphasis>Multi Layer Perceptrons</emphasis> (MLP), neurons are arranged in layers. The neurons of one layer are connected to neurons in the following layers. No connections exist between neurons of one layer and the graph formed by the neurons and connections is a directed acyclic graph. Therefore, MLPs are called <emphasis>feed forward networks</emphasis>.</para>
<para>The task performed by the neural network depends on the parameters, namely the weights and biases. Therefore, the network parameters have to be adjusted before the network produces the correct outputs. This adjustment is called <emphasis>training</emphasis>. Different methods for training multi-layer feed-forward networks have been devised. The most commonly used technique is the backpropagation of error [<link linkend="ch06_B22">22</link>].</para>
</section>
<section class="lev2" id="sec6-3-2">
<title>6.3.2 Supervised Learning</title>
<para>In a neural network, the internal parameters (weights of the neurons) are also called <emphasis>trainable parameters</emphasis>, since they can be trained to approximate a desired function. In case of Scene Labeling, this function would map a pixel of an image to a specific label, using the pixel&#x02019;s neighborhood. For classification tasks with a given set of classes, <emphasis>supervised learning</emphasis> schemes are used. A set of <emphasis>training samples</emphasis> contains input images together with the desired output. In combination with an error function, the training set can be used to adjust the internal parameters of the network.</para>
</section>
<section class="lev2" id="sec6-3-3">
<title>The Cost Function and Backpropagation</title>
<para>Supervised learning for neural networks is performed by measuring the neural net&#x02019;s estimated output against the expected output with a so called <emphasis>cost function</emphasis>. The goal of a supervised training is to find the internal parameters which minimize this cost function regarding a set of training examples. Since the network in general models a highly non-linear function, <emphasis>gradient descent</emphasis> can be used as an optimization procedure. This is done by computing the gradient of the cost function and leveraging the chain rule to propagate the cost and the gradient back through each layer of the network. The weights in each layer are updated according to the current gradient of the backpropagated cost. This algorithm is therefore called <emphasis>backpropagation</emphasis>.</para>
<para>A successful training converges against the minimum value of the cost function. It is important to choose the cost function suitable for the task that the neural network needs to perform. For classification tasks, a combination of the softmax function and (multinomial) logistic regression is often performed to train the internal parameters. The softmax function serves as a normalization function, which maps input values <emphasis>x<subscript>j</subscript></emphasis> of arbitrary range to values in the range (0,1) that add up to 1. The maximum of the input values maps close to 1 while the other values map close to 0. The function is defined by</para>
<para><graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="graphics/ch06_ueq2.jpg"/></para>
<para>The softmax directly serves as the multinomial version of the logistic function used in logistic regression. The resulting cost function is defined by</para>
<para><graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="graphics/ch06_ueq3.jpg"/></para>
<para>with <emphasis>x&#x02032;<subscript>k</subscript></emphasis> as the predicted output of the neural network for the actual class <emphasis>k</emphasis>. The cost is therefore the negative log-likelihood of the expected class, which minimizes, when the estimated probability for that class is 1.</para>
</section>
<section class="lev2" id="sec6-3-4">
<title>Stochastic Gradient Descent</title>
<para>Gradient descent is an algorithm that finds a local minimum by following iteratively the negative gradient of a function <emphasis>F(x)</emphasis> at each point <emphasis>x</emphasis>. It can be defined as</para>
<para><graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="graphics/ch06_ueq4.jpg"/></para>
<para>Here, <emphasis>&#x003B7;<subscript>i</subscript></emphasis> is the so called <emphasis>learning rate</emphasis> at iteration <emphasis>i</emphasis>. Choosing the right <emphasis>&#x003B7;</emphasis> in every iteration of the algorithm is crucial for the success and the convergence speed of the optimization. If <emphasis>&#x003B7;</emphasis> is too small, it takes many iterations to find a local minimum. Furthermore, the detected local minimum might just be a plateau with better local minima in the neighborhood. If the chosen learning rate is too big, it is possible to jump repeatedly over the local minimum, but never reaching it. In severe cases, it is even possible that the algorithm diverges. There are several schemes for choosing the learning rate adaptively. Resulting in most cases in a computational overhead, which is due to an additional analysis step at the current point of the function. A fixed learning rate is often used, which is scaled down in every iteration. Later iterations are supposed to be close to a minimum and require therefore a finer grained learning rate.</para>
<para>Given the basic gradient descent update rule, the term <emphasis>&#x003B7;<subscript>i</subscript></emphasis>&#x02207;<emphasis>F</emphasis>(<emphasis>x<subscript>i</subscript></emphasis>) can be called update <emphasis>&#x003BD;<subscript>i</subscript></emphasis> of iteration <emphasis>i</emphasis>. Since these updates only rely on the current gradient, small bumps in the error function might lead to a jittering path in the gradient descent, which increases the number of iterations until a local minimum is found. This might especially occur in stochastic gradient descent, which does not use every training sample in each iteration. To overcome this, many learning schemes extend the update rule by a <emphasis>momentum term.</emphasis> The update rule is then defined by</para>
<para><graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="graphics/ch06_ueq5.jpg"/></para>
<para>with a new definition for the update &#x003BD;<subscript><emphasis>i</emphasis></subscript>:</para>
<para><graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="graphics/ch06_ueq6.jpg"/></para>
<para>The parameter <emphasis>&#x003BC;</emphasis> &#x02208; &#x0211D;(<emphasis>&#x003BC;</emphasis> &#x02265; 0) denotes the influence of the update from the previous iteration. If <emphasis>&#x003BC;</emphasis> = 0, no momentum is used to calculate the current update. Update steps are stabilized and the &#x0201C;velocity&#x0201D; in flat valleys of the error function is increased by using a momentum. However, this property is not always desired in all gradient descent schemes, because the momentum might also cause the update to overshoot. Hence, the momentum term should be used with care.</para>
<para>In a learning environment, a point <emphasis>x</emphasis> of the cost function is the set of internal parameters unified with the expected net output. Since there is not only one training example but many, there are also many expected output points. The cost of more than one data point is therefore the sum of all costs. This is called <emphasis>objective function</emphasis>. It follows, that in an iteration (epoch) of the gradient descent algorithm, all data points need to be processed. This is called <emphasis>batch gradient descent</emphasis>. In many cases though, processing all data points in one epoch is not feasible because of the size of the dataset. In this case, <emphasis>stochastic gradient descent</emphasis> is used. Instead of predicting all data points per epoch, a random subset for each epoch is generated. If the subsampling is random enough in each epoch, this method optimizes an approximation of the objective function. Though each individual epoch might not sufficiently approximate the objective function, the repeated random sampling does. Stochastic gradient descent is therefore a common approach to train a neural network with big datasets.</para>
</section>
<section class="lev2" id="sec6-3-5">
<title>6.3.3 Convolutional Neural Networks</title>
<para>A <emphasis>Convolutional Neural Network</emphasis> (CNN) is an extension to the common MLP, originally designed for two-dimensional data, like images. As the name suggests, it adds <emphasis>convolutional layers</emphasis> to the set of possible layers in an MLP. There is an analogy here with the primary visual cortex of a cat, which also uses convolution-like simple cells to extract information from spatially close overlapping regions of the field of view [<link linkend="ch06_B23">23</link>]. In [<link linkend="ch06_B24">24</link>], the authors showed that the backpropagation algorithm can be extended for the training of CNNs by introducing an update and backpropagation rule for convolutional layers.</para>
</section>
<section class="lev2" id="sec6-3-6">
<title>Convolutional Layer</title>
<para>The convolution layer differs in two ways from the common fully connected layer of an MLP:</para>
<orderedlist numeration="arabic" continuation="restarts" spacing="normal">
<listitem><para>Convolution layers only sum up a fixed window of the input signal. They are therefore only <emphasis>locally connected</emphasis>. This connection window is called <emphasis>receptive field</emphasis> of the layer.</para></listitem>
<listitem><para>Each possible position of a receptive field uses the same weights to produce an output. This is called <emphasis>weight sharing</emphasis>.</para></listitem>
</orderedlist>
<para>The output signal is produced in a sliding window fashion, by applying a weighted summation of the receptive field for each possible receptive field position. The output contains as many values as possible positions. It is exactly a convolution of the input signal, where the layer weights form the convolution filter (kernel). A convolution layer can have several filters, thus forming a <emphasis>filter bank</emphasis>, which is analogous to the amount of hidden units in this layer.</para>
</section>
<section class="lev2" id="sec6-3-7">
<title>Pooling Layer</title>
<para>Another important extension of the MLP is the <emphasis>pooling layer</emphasis>. A pooling layer performs a subsampling of the input signal, by &#x0201C;combining&#x0201D; small windows of the input signal into several singular values. A common pooling function is <emphasis>max-pooling</emphasis>, which calculates the maximum of its receptive field. Another pooling function is <emphasis>average-pooling</emphasis> which computes the average value in its receptive field. A pooling can be seen as a convolution with a special function and a <emphasis>stride</emphasis> that equals the filter size of the <emphasis>pooling kernel</emphasis>. Regular convolutions have a stride of 1, meaning every pixel position is computed in the convolution. A stride of 2 means that every other pixel position is computed. The purpose of pooling is not only to reduce the spatial size of the input signal, but also to increase the robustness of translational invariance of the activations.</para>
</section>
<section class="lev2" id="sec6-3-8">
<title>Multiscale CNN</title>
<para>A variation of convolutional neural networks is the <emphasis>Multiscale CNN</emphasis>. Instead of processing an input signal as it is, the Multiscale CNN processes several scaled down versions of the signal simultaneously. This approach increases the ability to extract scale invariant features, without the need to increase the size for the extracted pixel neighborhood patch windows. The extracted feature maps of each scale are finally combined to produce a joint feature map. This can be done by a fully connected layer that takes all feature maps as an input to compute its output. For the Scene Labeling application, an image pyramid has to be created prior to the extraction of image patches for each scale, which are then fed to the Multiscale CNN.</para>
</section>
<section class="lev2" id="sec6-3-9">
<title>Patch Based and Image Based Application</title>
<para>Neural networks for image classification tasks were traditionally designed so that they process a complete image of fixed size and produce classification results of a fixed size as well. Big image sizes automatically implied that the fully connected hidden layers had also a great amount of hidden units. This resulted in the reduction of the input images sizes to keep the neural networks scalable and computable. In order to apply neural networks in a pixel classification scheme, image patches had to be extracted at each pixel position that needs to be classified. In many cases, these extractions are applied sparsely across the image to produce a coarse pixel classification.</para>
<para>A patch based application of CNNs for pixel classification tasks is computationally very inefficient, because image patches for neighboring pixels overlap. Therefore, the same convolutions are computed multiple times. This redundancy can be omitted by applying CNNs in an image-based fashion. This has an effect on several aforementioned components of the neural network, since they have been designed in regard to a patched based application. The fully connected layer especially is not applicable in an image based application, because <emphasis>full connectivity</emphasis> is contrary to the <emphasis>local connectivity</emphasis> of the convolution layers for arbitrary image sizes. The adequate translation of a fully connected layer in a patch based approach is actually another convolution layer, with a 1&#x000D7;1 convolution on all locally connected input values.</para>
<para>Another layer type that works differently in an image based application is the pooling layer. A na&#x00EF;ve translation would result in a huge loss of output resolution, since pooling layers in patch based mode are designed to subsample the input signal. A patch based application on every possible pixel location though doesn&#x02019;t share this subsampling property. This is why the patched based approach really evaluates every pixel location, while an image based approach implicitly only fully evaluates a subset of all pixel location due to the subsampling. To remove the subsampling property, a pooling must be applied in a convolutional manner (overlapping pooling). Looking at the output maps of such an overlapping pooling, it is clear, that they differ from maps of a non-overlapping pooling. In particular, neighboring pixels from a non-overlapping pooling are not neighbors anymore. If a convolution layer follows, it results in a wrong calculation of the output maps. This can be corrected by reordering the pixels after the pooling layer into <emphasis>n</emphasis> subimages, where <emphasis>n</emphasis> is the size of the pooling kernel or the stride, and apply the following layers on each subimage independently [<link linkend="ch06_B25">25</link>]. The reordering is hence defined as <emphasis>fragmentation</emphasis>, because the input map is fragmented into smaller output maps. <link linkend="F6-3">Figure <xref linkend="F6-3" remap="6.3"/></link> shows such a fragmentation after the application of a 2 &#x000D7; 2 pooling producing 2 &#x000D7; 2 subimages.</para>
<fig id="F6-3" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F6-3">Figure <xref linkend="F6-3" remap="6.3"/></link></label>
<caption><para>Example of a fragmentation after a 2 &#x000D7; 2 pooling. The na&#x00EF;ve approach would only produce the bright pixels, while an overlapping pooling produces all other possible pixels (purple, green, and blue). These pixels must be reordered to be able to correctly continue with the forward propagation of the neural network.</para></caption>
<graphic xlink:href="graphics/ch06_fig003.jpg"/>
</fig>
<para>For Multiscale CNNs, an image based application introduces another difficulty, which needs to be solved. In a patch based approach, the image patches for each scale have to be extracted and each patch has the same size. In an image based approach however, the feature maps for different scales are of different size. This becomes a challenge in the fully connected layer, which combines the feature maps of all scales. Since there are no fully connected layers in the image based approach, the feature maps of each scale need to be transformed so that a regular convolution layer can handle them. The simplest solution is to scale the smaller maps up so that they all match in size. If the maps have been fragmented because of a pooling layer, they need to be <emphasis>defragmented</emphasis> before they are scaled up. Defragmentation is the reverse function of fragmentation, turning multiple smaller maps into one bigger map.</para>
</section>
</section>
<section class="lev1" id="sec6-4">
<title>6.4 CNN for Scene Labeling</title>
<para>There are many ways to perform Scene Labeling on images. CNNs have proven themselves useful on this task, because they achieve state of the art performance without the need to develop complex multi cue frameworks that combine different inputs and sensors. Additionally, many frameworks for modeling, training and execution of CNNs exist, e.g., Caffe [<link linkend="ch06_B26">26</link>], Torch7 [<link linkend="ch06_B27">27</link>], Theano [<link linkend="ch06_B28">28</link>], Pylearn2 which is built on top of Theano, and cuda-convnet [<link linkend="ch06_B29">29</link>]. These frameworks exploit the CNN&#x02019;s parallelizability to provide fast and time efficient implementations using <emphasis>General Purpose GPUs</emphasis> (GPGPU). Furthermore, the research community is actively training and publishing models, which can often be adapted to a specific task by resuming the training with corresponding data. Most frequently used models are AlexNet [<link linkend="ch06_B30">30</link>], GoogleNet [<link linkend="ch06_B31">31</link>] or VGG [<link linkend="ch06_B32">32</link>]. They differ in complexity and run time efficiency, but reached state of the art performance during their time of publishing for certain challenges on datasets like ImageNet [<link linkend="ch06_B33">33</link>]. A high <emphasis>network capacity</emphasis> is needed to achieve a high accuracy on such complex tasks. So the trained models are rather big and need a huge amount of computational power. Incorporating this into an embedded system with low power consumption, as is needed for ADAS, is still a great challenge.</para>
<para>The following section describes one possible model with reduced complexity, selected for implementation in the course of the DESERVE project. Its purpose is to detect the road, vehicles and vulnerable road users, which can then be utilized for lane prediction and pedestrian detection.</para>
<section class="lev2" id="sec6-4-1">
<title>6.4.1 Exemplary Network for Scene Labeling</title>
<para>The proposed model is derived from the Multiscale CNN used in [<link linkend="ch06_B34">34</link>]. It consists of 2 convolutional layers and 2 pooling layers. The activation function, used after the convolutional layers, is the ReLU function (see <link linkend="F6-2">Figure <xref linkend="F6-2" remap="6.2"/></link>). Each convolution layer contains a bank of 16 &#x000D7; (7 &#x000D7; 7) filter kernels. These four layers are applied on three scales of the input image and combined by a fully connected layer, producing 6 output channels: <emphasis>background</emphasis>, <emphasis>road</emphasis>, <emphasis>vehicle</emphasis> (including cars, trucks, busses, &#x02026;), <emphasis>vru</emphasis> (vulnerable road users: pedestrians, cyclists, &#x02026;), <emphasis>sky</emphasis> and <emphasis>infrastructure</emphasis> (buildings, signs, barriers, traffic lights, &#x02026;). Those channels are normalized by a softmax layer to produce class probability maps for each class. By applying an argmax on these maps a class membership map is produced returning the most probable class for each pixel. The input images are preprocessed by transforming them into an image pyramid and locally normalizing them afterwards to zero mean unit variance in a 15 &#x000D7; 15 neighborhood. <link linkend="F6-4">Figure <xref linkend="F6-4" remap="6.4"/></link> shows the complete toolchain and <link linkend="F6-5">Figure <xref linkend="F6-5" remap="6.5"/></link> the network topology in more detail.</para>
<fig id="F6-4" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F6-4">Figure <xref linkend="F6-4" remap="6.4"/></link></label>
<caption><para>The complete processing chain from input image to a scene labeled image is displayed. After building an image pyramid of 3 layers and the local normalization every scale is fed to its own processing chain. This produces 6 class membership probability maps. They can be interpreted and augmented as seen in the output image.</para></caption>
<graphic xlink:href="graphics/ch06_fig004.jpg"/>
</fig>
<fig id="F6-5" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F6-5">Figure <xref linkend="F6-5" remap="6.5"/></link></label>
<caption><para>The image pyramid construction layer produces 3 scales that are locally normalized in 15&#x000D7;15 windows. Every scale is propagated independently. There are in total 2 convolution layers with 16 &#x000D7; 7 &#x000D7; 7 filter kernels using the ReLU activation function. After activation a 2 &#x000D7; 2 max-pooling is performed followed by a fragmentation in the first pooling layer. A second fragmentation is not necessary since the second pooling layer is followed by a defragmentation. The small scaled feature maps are sampled up and fed to a classification layer, being a 6 &#x000D7; 1 &#x000D7; 1 convolution layer. Finally, a pixel wise softmax is applied.</para></caption>
<graphic xlink:href="graphics/ch06_fig005.jpg"/>
</fig>
</section>
<section class="lev2" id="sec6-4-2">
<title>6.4.2 Evaluation</title>
<para>The topology described in subsection 6.4.1 was trained with 6895 labeled night time images of a near infrared camera used in the NV3 night vision system of a Mercedes Benz S-Class. The images show mainly rural, but also urban, road scenes under different weather conditions and different seasons. To augment the heavily under-represented <emphasis>vru</emphasis> class, 15174 images are added to the aforementioned set of images, where only the <emphasis>pedestrian</emphasis> and <emphasis>cyclist</emphasis> labels are used. This is called the <emphasis>learn set</emphasis>. The training scheme is stochastic gradient descent with the logistic regression objective function for 6 classes.</para>
<para>It is trained 10.000 epochs with 40960 balanced training examples (patches) per epoch. The learning rate was determined following several short runs of 100 epochs with different learning rates. The best progressing learning rate was then chosen. During training, the learning rate was linearly reduced after 5000 epochs by a factor of 0.995 per epoch. <link linkend="F6-6">Figure <xref linkend="F6-6" remap="6.6"/></link> shows the training progress (2-2-16 topology) in relation to the objective function on the learn set. Two other topologies were also trained in the same way. One introduced a third convolution layer including the ReLU activation function after the second pooling (3-2-16 topology). The third topology is similar to the 3-2-16 topology, but uses 32 filters per convolution (3-2-32 topology). <link linkend="F6-6">Figure <xref linkend="F6-6" remap="6.6"/></link> shows that the topology with the least trainable parameters (2-2-16 topology) performed worst during training. The introduction of another convolution layer (3-2-16 topology) resulted in a better learn curve. However, doubling the amount of filters (3-2-32 topology) increased the learn performance yet again.</para>
<fig id="F6-6" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F6-6">Figure <xref linkend="F6-6" remap="6.6"/></link></label>
<caption><para>Displayed are the learn curves of three different network topologies. Each topology was trained three times and the learn curves were averaged. The averaged learn curves are displayed as solid lines while the standard deviation for 50 epochs is displayed as the area around the lines.</para></caption>
<graphic xlink:href="graphics/ch06_fig006.jpg"/>
</fig>
<para>Since the classifier of topology 3-2-32 appears to have the best performance, it is evaluated on the evaluation set of images containing 200 images that have not been part of the learn set, called the <emphasis>eval set</emphasis>. Evaluation in multiclass problems is done by analyzing the <emphasis>confusion matrix.</emphasis> The confusion matrix for topology 3-2-32 is displayed in <link linkend="T6-1">Table <xref linkend="T6-1" remap="6.1"/></link>. It shows the class predictions in relation to the actual class. The diagonal entries form the <emphasis>true positives</emphasis> (pixels that were classified correctly, TP) for each class, while the remaining entries of a line or column display the individual <emphasis>false negatives</emphasis> (pixels not classified as the desired class, FN) and <emphasis>false positives</emphasis> (pixels falsely classified as the desired class, FP). Therefore, the sum over one row of the table gives the percentage of the respective class in the whole training set.</para>
<table-wrap position="float" id="T6-1">
<label><link linkend="T6-1">Table <xref linkend="T6-1" remap="6.1"/></link></label>
<caption><para>The confusion matrix of topology 3-2-32 and the respective FNR, FPR and IU for each class. The classes are background (Bg), road (Rd), vehicle (Veh), sky, vulnerable road users (VRU) and infrastructure (Inf). Each cell shows the percentage (from all pixels in the dataset) of actual class (row) predicted as class (column)</para></caption>
<graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="graphics/ch06_tab01.jpg"/>
</table-wrap>
<para>The quality measures of binary classification problems can therefore be applied for each class individually in a &#x0201C;one versus all&#x0201D; fashion. Classic measures contain the <emphasis>False Negative Rate</emphasis> (FNR), the <emphasis>False Positive Rate</emphasis> (FPR) and the <emphasis>Intersection over Union</emphasis> (IU). Those are defined as follows:</para>
<para><graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="graphics/ch06_ueq7.jpg"/></para>
<para><emphasis>N</emphasis> denotes the number of all pixels evaluated. FNR and FPR are 0, if the classification is correct and get bigger, if more pixels are classified incorrectly. The IU has a value of 1 in case of a perfect classification and the value gets smaller, if more pixels are classified incorrectly.</para>
<para><link linkend="T6-1">Table <xref linkend="T6-1" remap="6.1"/></link> shows the percentage of pixels classified as one of the 6 classes. The last 3 rows display the class-wise FNR, FPR and IU. The confusion matrix shows several interesting features:</para>
<orderedlist numeration="loweralpha" continuation="restarts" spacing="normal">
<listitem><para>The diagonal entries show the true positives, the correctly classified pixels. Since the total amount of pixels in the evaluation dataset for each class varies, the maximum possible number for each entry varies as well.</para></listitem>
<listitem><para>For the class <emphasis>vulnerable road users</emphasis> (VRU) the classifier performs badly. There are more pixels classified as <emphasis>vehicles (Veh)</emphasis> or <emphasis>infrastructure (Inf)</emphasis> than VRUs, resulting in a bad FNR. Even worse is the FPR, since the amount of <emphasis>background (Bg)</emphasis> or <emphasis>infrastructure (Inf)</emphasis> pixels classified as VRU is far greater than the amount of correctly classified pixels. This results in a bad IU.</para></listitem>
<listitem><para>The best performing class is the class <emphasis>road (Rd)</emphasis>. It has comparatively few false positives and negatives, which results in a good FNR, FPR and IU.</para></listitem>
<listitem><para>The class <emphasis>vehicle (Veh)</emphasis> shows an arbitrary performance. Though the FNR is quite good and better than the class <emphasis>background (Bg)</emphasis>, its FPR is second to last. So the IU is greatly affected.</para></listitem>
</orderedlist>
<para>After analyzing each class by itself the question arises of how good this classifier is compared to classifiers, which contain other well and bad performing classes. A common measure to describe the overall performance of a classifier is the <emphasis>accuracy</emphasis> (ACC). It is the ratio of correctly classified pixels to all pixels. Let <emphasis>N</emphasis> be the amount of classes and <emphasis>C<subscript>i,j</subscript></emphasis> be the amount of pixels from class <emphasis>i</emphasis> classified as class <emphasis>j</emphasis>. In a multiclass setup, the accuracy can then be defined as:</para>
<para><graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="graphics/ch06_ueq8.jpg"/></para>
<para>This measure captures in a straight forward way the correctness of a classifier. The value is in the range [0, 1], where a perfect classifier reaches 1. If one or more classes are under-represented in the evaluation dataset, the expressiveness of this measure suffers, since it does not normalize the amount of samples per class. Other ways to increase the sensitivity to underperforming classes is to average the FNR, FPR or IU over the classes. The <emphasis>Matthews Correlation Coefficient</emphasis> (MCC) was designed for binary classifications and computes a correlation between the actual and predicted classifications. It was extended to incorporate more than two classes and is defined by [<link linkend="ch06_B35">35</link>] as follows:</para>
<para><graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="graphics/ch06_ueq9.jpg"/></para>
<para>The Matthews Correlation Coefficient is in the range [-1,1]. An MCC of 1 is a perfect classifier, while -1 is the total contradiction. An MCC of 0 is a random classifier. <link linkend="T6-2">Table <xref linkend="T6-2" remap="6.2"/></link> shows the ACC, mean IU, MCC and mean FNR for the classifiers trained in <link linkend="F6-6">Figure <xref linkend="F6-6" remap="6.6"/></link>. It can be seen that topology 3-2-32 outperforms the topologies in all defined measures.</para>
<table-wrap position="float" id="T6-2">
<label><link linkend="T6-2">Table <xref linkend="T6-2" remap="6.2"/></link></label>
<caption><para>Displayed are the measures Accuracy (ACC), mean Intersection over Union (mIU), Matthews Correlation Coefficient (MCC) and mean False Negative Rate (mFNR) for 3 topologies</para></caption>
<table cellspacing="5" cellpadding="5" frame="hsides" rules="groups">
<thead>
<tr>
<td valign="bottom" align="left">Topology</td>
<td valign="bottom" align="center">ACC</td>
<td valign="bottom" align="center">mIU</td>
<td valign="bottom" align="center">MCC</td>
<td valign="bottom" align="center">mFNR</td>
</tr>
</thead>
<tbody>
<tr>
<td valign="top" align="left">2-2-16</td>
<td valign="top" align="center">0.60</td>
<td valign="top" align="center">0.35</td>
<td valign="top" align="center">0.50</td>
<td valign="top" align="center">0.44</td>
</tr>
<tr>
<td valign="top" align="left">3-2-16</td>
<td valign="top" align="center">0.69</td>
<td valign="top" align="center">0.42</td>
<td valign="top" align="center">0.60</td>
<td valign="top" align="center">0.37</td>
</tr>
<tr>
<td valign="top" align="left">3-2-32</td>
<td valign="top" align="center"><emphasis role="strong">0.78</emphasis></td>
<td valign="top" align="center"><emphasis role="strong">0.51</emphasis></td>
<td valign="top" align="center"><emphasis role="strong">0.71</emphasis></td>
<td valign="top" align="center"><emphasis role="strong">0.30</emphasis></td>
</tr>
</tbody>
</table>
</table-wrap>
</section>
</section>
<section class="lev1" id="sec6-5">
<title>6.5 Hardware Platforms for Scene Labeling</title>
<para>Embedded hardware platforms for Advanced Driver Assistance Systems face several challenges. They have to provide a huge amount of processing power to keep up with the rising complexity of applications and the increasing amount of data they have to process. However, the platforms should have low power consumption.</para>
<para>At one end of the spectrum of hardware architectures, <emphasis>General Purpose Processors</emphasis> (GPPs) usually do not fulfill all the requirements and restrictions of embedded systems in advanced driver assistance systems. They offer a high degree of flexibility due to the arbitrary programmability, but they cannot usually comply with the high demand on processing power while holding the restrictions in power consumption.</para>
<para>At the other end of the spectrum, <emphasis>Application Specific Integrated Circuits</emphasis> (ASICs) provide a high degree of processing power and excellent power efficiency. However, they are not flexible as they are fixed after manufacturing and cannot be programmed.</para>
<para>There is a wide range of hardware platforms in between these two extremes, which provide a trade-off between the different characteristics. For example, <emphasis>Graphical Processing Units</emphasis> (GPUs) have been used to accelerate the execution of complex algorithms. They provide a certain degree of flexibility, as they are programmable and they achieve high processing power due to a high degree of parallelism. However, the power consumption of GPUs is fairly high and they are therefore not suitable for use in personal cars.</para>
<para>Adapting processor architectures to a given application is a promising approach for designing hardware platforms. <emphasis>Application-Specific Instruction-Set Processors</emphasis> (ASIPs) are based on programmable processor architectures. These are adapted to a specific application or a class of similar applications, e.g., by extending the instruction set, by adding dedicated hardware accelerators for frequently used operations, or by changing architectural parameters in order to bypass bottlenecks.</para>
<para>Scene labeling has been implemented on several platforms including CPUs, GPUs, FPGAs, and ASICs. This section gives an overview of recent implementations of convolutional neural networks on different types of computing platforms. At first, the computational complexity of convolutional neural networks is discussed, by deriving a measure of the total number of operations needed in order to compute the forward propagation of one frame through the network. This also serves as a basis for the comparison of different implementations, which is presented later.</para>
<section class="lev2" id="sec6-5-1">
<title>6.5.1 Theoretical Performance Requirements</title>
<para>This section describes the computational complexity of convolutional neural networks in terms of operations needed in the forward propagation of a frame. This number of operations clearly depends on the topology of the network.</para>
<para>The most computational intensive task is the convolution, especially, as many convolution layers contain a huge number of filters. For an input image of size <emphasis>w &#x000D7;h</emphasis> and a convolution kernel of size <emphasis>n&#x000D7;n</emphasis>, the kernel is applied <emphasis>(w - (n- 1))(h- (n- 1))</emphasis> times. Each time, <emphasis>n</emphasis><superscript>2</superscript> multiplications are performed and the results accumulated. Counting the multiply and accumulate operations as two, this leads to a total count of</para>
<para><graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="graphics/ch06_ueq10.jpg"/></para>
<para>operations for a single convolution.</para>
<para>The activation function is applied to each output pixel of the input layer. Therefore, the total number of operations for an input image of size <emphasis>w &#x000D7; h</emphasis> is given as</para>
<para><graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="graphics/ch06_ueq11.jpg"/></para>
<para>where <emphasis>c<subscript>act</subscript></emphasis> describes the cost of applying the activation function to one pixel. In case of the ReLU (Rectified Linear Unit), the operation determines the maximum of the input value and 0. Therefore, <emphasis>c<subscript>ReLU</subscript></emphasis> = 1.</para>
<para>For the pooling layer, the number of operations depends not only on the size <emphasis>w &#x000D7; h</emphasis> of the input frame, but also on the kernel size <emphasis>n&#x000D7;n</emphasis> and the stride <emphasis>s</emphasis>. In some cases, the stride equals the kernel size, but in overlapped pooling, a stride of 1 might be used. In general, the number of operations performed in a pooling layer can be described as</para>
<para><graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="graphics/ch06_ueq12.jpg"/></para>
<para>where <emphasis>c<subscript>pool</subscript></emphasis> is the number of operations per pooling window. For a max-pooling, the number of operations is <emphasis>c<subscript>max</subscript> = n</emphasis><superscript>2</superscript> - 1, for an average-pooling, the number of operations is <emphasis>c<subscript>avg</subscript> = n</emphasis><superscript>2</superscript> + 1.</para>
<para>For the exemplary convolutional neural network described in subsection 6.4.1, which is named 2-2-16 in <link linkend="T6-2">Table <xref linkend="T6-2" remap="6.2"/></link>, the following remarks give the numbers of operations for the single layers. The image preprocessing, i.e., the construction of the image pyramid and the normalization, is not counted in this section.</para>
<para>In this exemplary case, the input image has 1024 &#x000D7; 512 pixels. In the preprocessing step, an image pyramid is generated by an iterative process. In each iteration, the image dimensions are halved by subsampling. Afterwards, the three scaled images from the pyramid are padded by replicating the border pixels in order to maintain the correct output size after the convolutions. The resulting image sizes are listed in <link linkend="T6-3">Table <xref linkend="T6-3" remap="6.3"/></link>.</para>
<table-wrap position="float" id="T6-3">
<label><link linkend="T6-3">Table <xref linkend="T6-3" remap="6.3"/></link></label>
<caption><para>Input image sizes for three different scales in the exemplary convolutional neural network</para></caption>
<table cellspacing="5" cellpadding="5" frame="hsides" rules="groups">
<thead>
<tr>
<td valign="bottom" align="left">Scale</td>
<td valign="bottom" align="center">Pyramid Output</td>
<td valign="bottom" align="center">Padded</td>
</tr>
</thead>
<tbody>
<tr>
<td valign="top" align="left"><emphasis role="strong">S</emphasis></td>
<td valign="top" align="center">512 &#x000D7; 256</td>
<td valign="top" align="center">534 &#x000D7; 278</td>
</tr>
<tr>
<td valign="top" align="left"><emphasis role="strong">M</emphasis></td>
<td valign="top" align="center">256 &#x000D7; 128</td>
<td valign="top" align="center">278 &#x000D7; 150</td>
</tr>
<tr>
<td valign="top" align="left"><emphasis role="strong">L</emphasis></td>
<td valign="top" align="center">128 &#x000D7; 64</td>
<td valign="top" align="center">150 &#x000D7; 86</td>
</tr>
</tbody>
</table>
</table-wrap>
<para>The first convolution layer performs 16 convolutions with a 7 &#x000D7; 7 kernel and generates 16 output images. The convolution is only performed for pixels where the convolution kernel fits into the input image, so that the resulting image is reduced by 6 pixels in width and height. The convolution layer is followed by an activation layer, which applies the activation function to each of the 16 output images of the convolutions. The following max-pooling layer uses a 2 &#x000D7; 2 patch and a stride of 1 (overlapped pooling). It does not change the total number of pixels but separates one image into four sub images of quarter size. The fragmentation of the images does not contribute to the number of operations since it can be hidden in the other layers. The second convolution layer performs 16 convolutions of size 7 &#x000D7; 7 on each of the 16 fragmented images and then accumulates them to 16 fragmented output images. The following activation function and pooling layers work the same as after the first convolution layer.</para>
<para>This flow of images through two convolution layers with activation functions and two pooling layers is performed independently for the three scales of the input image. The resulting images are scaled to the same size before they are fed into the classification layer.</para>
<para>The classification layer at the end performs one convolution of size 1 &#x000D7; 1 per output class, of which there are six in the exemplary convolutional neural network.</para>
<para>With these image and filter sizes, the computational complexity of the convolutional neural network can be estimated using the equations above. <link linkend="T6-4">Table <xref linkend="T6-4" remap="6.4"/></link> gives the operation counts for the three scales by layer type.</para>
<table-wrap position="float" id="T6-4">
<label><link linkend="T6-4">Table <xref linkend="T6-4" remap="6.4"/></link></label>
<caption><para>Number of operations for the exemplary convolutional neural network</para></caption>
<table cellspacing="5" cellpadding="5" frame="hsides" rules="groups">
<thead>
<tr>
<td valign="bottom" align="left">Scale</td>
<td valign="bottom" align="center">Convolution</td>
<td valign="bottom" align="center">Activation</td>
<td valign="bottom" align="center">Pooling</td>
<td valign="bottom" align="center">Classif.</td>
<td valign="bottom" align="center">Operations</td>
</tr>
</thead>
<tbody>
<tr>
<td valign="top" align="left"><emphasis role="strong">S</emphasis></td>
<td valign="top" align="center">3.590.995.968</td>
<td valign="top" align="center">4.444.416</td>
<td valign="top" align="center">13.220.592</td>
<td valign="top" align="center">12.582.912</td>
<td valign="top" align="center"><emphasis role="strong">3.621.243.888</emphasis></td>
</tr>
<tr>
<td valign="top" align="left"><emphasis role="strong">M</emphasis></td>
<td valign="top" align="center">922.435.584</td>
<td valign="top" align="center">1.175.808</td>
<td valign="top" align="center">3.470.064</td>
<td valign="top" align="center">3.145.728</td>
<td valign="top" align="center"><emphasis role="strong">930.227.184</emphasis></td>
</tr>
<tr>
<td valign="top" align="left"><emphasis role="strong">L</emphasis></td>
<td valign="top" align="center">243.253.248</td>
<td valign="top" align="center">327.936</td>
<td valign="top" align="center">954.096</td>
<td valign="top" align="center">786.432</td>
<td valign="top" align="center"><emphasis role="strong">245.321.712</emphasis></td>
</tr>
<tr>
<td valign="top" align="left"><emphasis role="strong">Ops.</emphasis></td>
<td valign="top" align="center"><emphasis role="strong">4.756.684.800</emphasis></td>
<td valign="top" align="center"><emphasis role="strong">5.948.160</emphasis></td>
<td valign="top" align="center"><emphasis role="strong">17.644.752</emphasis></td>
<td valign="top" align="center"><emphasis role="strong">16.515.072</emphasis></td>
<td valign="top" align="center"><emphasis role="strong">4.796.792.784</emphasis></td>
</tr>
</tbody>
</table>
</table-wrap>
<para>The total number of operations performed for one input image is 4.796.792.784. As expected, the convolution layers contribute the biggest share in the number of operations, with a proportion of 99.2 percent. In order to reach a processing rate of 30 frames per second, 144 billion operations have to be performed per second.</para>
<para><link linkend="T6-5">Table <xref linkend="T6-5" remap="6.5"/></link> lists implementations of convolutional neural networks on different platforms and gives the performance in terms of performed operations per second. When available, two numbers are given for each implementation. The <emphasis>peak</emphasis> performance gives the theoretical maximum number of operations per second that the platform can perform. The <emphasis>real</emphasis> performance gives the number of operations per second for CNNs of different topologies on the platform. Not all implementations listed in the table are used for scene labeling, but perform other image based detection and classification tasks with convolutional neural networks. Therefore, the networks that are used in the applications may differ in size. This is mentioned, because some implementations do not scale up to bigger networks easily. The subsequent sections give more details to the entries in the table.</para>
<table-wrap position="float" id="T6-5">
<label><link linkend="T6-5">Table <xref linkend="T6-5" remap="6.5"/></link></label>
<caption><para>Comparison of different implementations of convolutional neural networks on different platforms</para></caption>
<table cellspacing="5" cellpadding="5" frame="hsides" rules="groups">
<thead>
<tr>
<td valign="bottom" align="left"></td>
<td valign="bottom" align="left"></td>
<td valign="bottom" align="left"></td>
<td valign="bottom" align="center" colspan="2">Perf. [GOPs]</td>
</tr>
<tr style="border-bottom:1px solid;">
<td valign="top" align="left" width="10%">Author</td>
<td valign="top" align="left" width="10%">Year</td>
<td valign="top" align="left" width="10%">Device</td>
<td valign="top" align="center" width="5%">Peak</td>
<td valign="top" align="center" width="5%">Real</td>
</tr>
</thead>
<tbody>
<tr style="border-bottom:1px solid;">
<td valign="top" align="center" colspan="5">CPU Implementations</td>
</tr>
<tr>
<td valign="top" align="left">Farabet et al. [<link linkend="ch06_B39">39</link>]</td>
<td valign="top" align="left">2011</td>
<td valign="top" align="left">Intel Core 2 Duo</td>
<td valign="top" align="center">10</td>
<td valign="top" align="center">1.1</td>
</tr>
<tr>
<td valign="top" align="left">Dundar et al. [<link linkend="ch06_B40">40</link>]</td>
<td valign="top" align="left">2013</td>
<td valign="top" align="left">Intel Core i7 4-core</td>
<td valign="top" align="center">200</td>
<td valign="top" align="center">90</td>
</tr>
<tr>
<td valign="top" align="left">Jin et al. [<link linkend="ch06_B41">41</link>]</td>
<td valign="top" align="left">2014</td>
<td valign="top" align="left">Intel Core i5</td>
<td valign="top" align="center">45</td>
<td valign="top" align="center">30</td>
</tr>
<tr style="border-bottom:1px solid;">
<td valign="top" align="left">Zhang et al. [<link linkend="ch06_B42">42</link>]</td>
<td valign="top" align="left">2015</td>
<td valign="top" align="left">Intel Xeon</td>
<td valign="top" align="center">&#x02013;</td>
<td valign="top" align="center">12.87</td>
</tr>
<tr style="border-bottom:1px solid;">
<td valign="top" align="center" colspan="5">GPU Implementations</td>
</tr>
<tr>
<td valign="top" align="left">Farabet et al. [<link linkend="ch06_B39">39</link>]</td>
<td valign="top" align="left">2011</td>
<td valign="top" align="left">nVidia GTX 480</td>
<td valign="top" align="center">1350</td>
<td valign="top" align="center">294</td>
</tr>
<tr>
<td valign="top" align="left">Dundar et al. [<link linkend="ch06_B40">40</link>]</td>
<td valign="top" align="left">2013</td>
<td valign="top" align="left">nVidia GTX 780</td>
<td valign="top" align="center">3977</td>
<td valign="top" align="center">620</td>
</tr>
<tr>
<td valign="top" align="left">Jin et al. [<link linkend="ch06_B41">41</link>]</td>
<td valign="top" align="left">2014</td>
<td valign="top" align="left">nVidia GTX 690</td>
<td valign="top" align="center">5622</td>
<td valign="top" align="center">530</td>
</tr>
<tr style="border-bottom:1px solid;">
<td valign="top" align="left">Cavigelli et al. [<link linkend="ch06_B43">43</link>]</td>
<td valign="top" align="left">2015</td>
<td valign="top" align="left">nVidia GTX 780</td>
<td valign="top" align="center">3977</td>
<td valign="top" align="center">1781</td>
</tr>
<tr style="border-bottom:1px solid;">
<td valign="top" align="center" colspan="5">Mobile GPU Implementations</td>
</tr>
<tr>
<td valign="top" align="left">Farabet et al. [<link linkend="ch06_B39">39</link>]</td>
<td valign="top" align="left">2011</td>
<td valign="top" align="left">nVidia GT335m</td>
<td valign="top" align="center">182</td>
<td valign="top" align="center">54</td>
</tr>
<tr>
<td valign="top" align="left">Dundar et al. [<link linkend="ch06_B40">40</link>]</td>
<td valign="top" align="left">2013</td>
<td valign="top" align="left">nVidia GTX650m</td>
<td valign="top" align="center">182</td>
<td valign="top" align="center">54</td>
</tr>
<tr style="border-bottom:1px solid;">
<td valign="top" align="left">Cavigelli et al. [<link linkend="ch06_B43">43</link>]</td>
<td valign="top" align="left">2015</td>
<td valign="top" align="left">nVidia Tegra K1</td>
<td valign="top" align="center">326</td>
<td valign="top" align="center">76</td>
</tr>
<tr style="border-bottom:1px solid;">
<td valign="top" align="center" colspan="5">FPGA Implementations</td>
</tr>
<tr>
<td valign="top" align="left">Farabet et al. [<link linkend="ch06_B39">39</link>]</td>
<td valign="top" align="left">2011</td>
<td valign="top" align="left">Virtex 6 VLX240T</td>
<td valign="top" align="center">160</td>
<td valign="top" align="center">147</td>
</tr>
<tr>
<td valign="top" align="left">Dundar et al. [<link linkend="ch06_B40">40</link>]</td>
<td valign="top" align="left">2013</td>
<td valign="top" align="left">Zync ZC706</td>
<td valign="top" align="center">&#x02013;</td>
<td valign="top" align="center">36</td>
</tr>
<tr>
<td valign="top" align="left">Gokhale et al. [<link linkend="ch06_B44">44</link>]</td>
<td valign="top" align="left">2014</td>
<td valign="top" align="left">Zync ZC706</td>
<td valign="top" align="center">&#x02013;</td>
<td valign="top" align="center">227</td>
</tr>
<tr style="border-bottom:1px solid;">
<td valign="top" align="left">Zhang et al. [<link linkend="ch06_B42">42</link>]</td>
<td valign="top" align="left">2015</td>
<td valign="top" align="left">Virtex 7 485t</td>
<td valign="top" align="center">&#x02013;</td>
<td valign="top" align="center">61.62</td>
</tr>
<tr style="border-bottom:1px solid;">
<td valign="top" align="center" colspan="5">ASIC Implementations</td>
</tr>
<tr>
<td valign="top" align="left">Pham et al. [<link linkend="ch06_B45">45</link>]</td>
<td valign="top" align="left">2012</td>
<td valign="top" align="left">neuFlow in IBM 45 nm</td>
<td valign="top" align="center">320</td>
<td valign="top" align="center">294</td>
</tr>
<tr>
<td valign="top" align="left">Chen et al. [<link linkend="ch06_B46">46</link>]</td>
<td valign="top" align="left">2015</td>
<td valign="top" align="left">Accelerator in 65 nm</td>
<td valign="top" align="center">&#x02013;</td>
<td valign="top" align="center">452</td>
</tr>
<tr>
<td valign="top" align="left">Cavigelli et al. [<link linkend="ch06_B47">47</link>]</td>
<td valign="top" align="left">2015</td>
<td valign="top" align="left">Accelerator in 65 nm</td>
<td valign="top" align="center">274</td>
<td valign="top" align="center">203</td>
</tr>
</tbody>
</table>
</table-wrap>
</section>
<section class="lev2" id="sec6-5-2">
<title>6.5.2 CPU-based Platforms</title>
<para>As discussed before, running convolutional neural networks for scene labeling or other image processing tasks incorporates a huge amount of computation. For the use in ADAS, CPUs cannot provide the necessary processing power while also complying to the power budget restrictions. Active work is performed in order to speed up the implementations (e.g., [<link linkend="ch06_B36">36</link>]). Also, algorithmic research is conducted in order to speed up the convolutions, e.g., [<link linkend="ch06_B37">37</link>, <link linkend="ch06_B38">38</link>].</para>
<para>A reference implementation of the exemplary CNN from subsection 6.4.1 was written using <emphasis>C</emphasis>++. It is worth mentioning that the focus in this implementation was not speed or efficiency. Instead, it was intended as a reference for the assembler implementation described later. The implementations of the image processing operations and the different layers of the convolutional neural network make use of templates. This provides the flexibility to use different data types for the pixel values and coefficients. The templates enabled the use of fixed-point data types in order to analyze the compromise of data width and accuracy.</para>
<para>On an Intel Core i5-2400 with 3.1 GHz, the computations for one input image of size 1024 &#x000D7; 512 with double precision values and coefficients require about 11 seconds, which corresponds to about 436 MOPS. This implementation does not use multiple cores for computation.</para>
</section>
<section class="lev2" id="sec6-5-3">
<title>6.5.3 GPU-based Platforms</title>
<para>Modern GPUs provide a huge amount of computing power that can be used for general purpose computing (GPGPU). The use of GPUs is most beneficial, if the application provides a high degree of parallelism and regularity. CNNs fall into this category. Therefore, most deep learning frameworks mentioned in the previous section accelerate evaluation and training of networks with GPUs using CUDA, and there are also frameworks specifically developed for GPUs, e.g., cuda-convnet2 [<link linkend="ch06_B29">29</link>] and Marvin [<link linkend="ch06_B48">48</link>].</para>
<para>A downside of using the powerful GPUs is the amount of power they consume, which makes the use of GPUs in mobile devices infeasible. Nevertheless, GPUs can be used for training the networks, as the training is performed o&#x0FB04;ine. Recently, mobile or embedded GPUs have emerged, aiming to provide low-power high-performance computing platforms.</para>
</section>
<section class="lev2" id="sec6-5-4">
<title>6.5.4 FPGA-based Platforms</title>
<para>A FPGA, a configurable hardware platform, provides a compromise between the flexibility of a GPU and the efficiency of an ASIC. The high degree of parallelism that is possible in a FPGA, allows for high performance signal processing. As double precision arithmetic is costly for a hardware-based implementation, the <emphasis>C</emphasis>++ implementation of the algorithm was used to analyze the quality of the classification depending on the data width of pixel values and coefficients. For 32-bit data with 22 fractional bits, the computations are exact and no errors appear. If 16-bit data with 11 fractional bits are used, about 1.4 percent of the pixels are classified incorrectly, which was acceptable in this scenario.</para>
<para>The use of a soft core processor that is mapped to the FPGA also provides software programmability of the design. In order to raise the computational performance, the soft core processor can be extended with dedicated hardware modules (application-specific instruction-set processor, ASIP). For example, the instruction-set can be extended by new functional units for complex operations which are placed in the processor&#x02019;s pipeline and perform as quick as the default operations. Additionally, more complex operations taking more execution cycles can be added as external accelerators tightly coupled with the processor&#x02019;s data path.</para>
<para>In the course of the DESERVE project, an ASIP implementation for convolutional neural networks has been developed. It is based on the TUKUTURI processor [<link linkend="ch06_B49">49</link>, <link linkend="ch06_B50">50</link>], which was developed for image processing and video coding implementations. It is a Very Long Instruction Word (VLIW) processor with two issue slots and 64 bit wide registers that can be split up into subwords of 8, 16, 32, or 64 bits. These subwords are processed in parallel (microSIMD) by all default functional units. Additional features include conditional execution in order to reduce control overhead, and a DMA controller for memory transfer between external and internal memory.</para>
<para>As derived from the CPU-based reference implementation (see subsection 6.5.2), 16 bit wide data is used for the pixel values and the network&#x02019;s coefficients. Therefore, the SIMD-feature can be used to process four values in parallel, which gives a significant speed-up.</para>
<para>As seen in subsection 6.5.1, the convolution is the most computing intensive task in the whole process. Therefore, the TUKUTURI processor was extended with a co-processor that performs 16 convolutions of four pixels at once.</para>
<para>The internal memory of the TUKUTURI is not capable of holding a whole input image. Therefore, the images are processed in blocks. The DMA module supports block transfers, so that a rectangular subsection of the image can be transferred between internal and external memory. The module holds a queue of memory transfers, which are processed independently from the TUKUTURI processor. This allows the TUKUTURI to program several transfers and process data blocks transferred previously, while the DMA transfers the next blocks in the background.</para>
<para>The first implementation of the exemplary convolutional neural network on the TUKUTURI processor processed one input frame in about 1.2 &#x000D7; 10<superscript>9</superscript> cycles. With a clock frequency of 100 MHz, this corresponds to about 0.08 fps. Using the convolution co-processor, the cycle count could be reduced to about 243 &#x000D7; 10<superscript>6</superscript> cycles, corresponding to a frame rate of about 0.411 fps. This is a speed-up of factor 5.1. Using the capabilities for background transfers, the total cycle count was reduced to about 101 &#x000D7; 10<superscript>6</superscript> cycles per frame, which is an additional speed-up of factor 2.4, leading to about 0.99 fps. According to <link linkend="T6-4">Table <xref linkend="T6-4" remap="6.4"/></link>, we need about 4.8 &#x000D7; 10<superscript>9</superscript> operations per frame. Therefore, this implementation reaches about 4.8 GOPs.</para>
</section>
</section>
<section class="lev1" id="sec6-6">
<title>6.6 Summary</title>
<para>Convolutional neural networks and methods of deep learning have been used in image processing, segmentation and classification tasks successfully. The huge amount of processing power needed for CNNs for Scene Labeling tasks in advanced driver assistance systems combined with the resource restrictions in embedded systems pose a challenge for hardware architects. FPGAs have been shown as a suitable platform for the implementation of CNNs for Scene Labeling.</para>
</section>
<section class="lev1" id="sec6-7">
<title>References</title>
<orderedlist numeration="arabic" continuation="restarts" spacing="normal">
<listitem><para><anchor id="ch06_B1"/>G. Carneiro and N. Vasconcelos, &#x0201C;Formulating semantic image annotation as a supervised learning problem,&#x0201D; in <emphasis>2005 IEEE Computer Society Conference on Computer Vision and Pattern Recognition (CVPR&#x02019;05)</emphasis>, 2005, pp. 163&#x02013;168. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=G%2E+Carneiro+and+N%2E+Vasconcelos%2C+%22Formulating+semantic+image+annotation+as+a+supervised+learning+problem%2C%22+in+2005+IEEE+Computer+Society+Conference+on+Computer+Vision+and+Pattern+Recognition+%28CVPR%2705%29%2C+2005%2C+pp%2E+163-168%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch06_B2"/>E. Saber, A. Tekalp, R. Eschbach and K. Knox, &#x0201C;Automatic Image Annotation Using Adaptive Color Classification,&#x0201D; <emphasis>Graphical Models and Image Processing,</emphasis> 1996. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=E%2E+Saber%2C+A%2E+Tekalp%2C+R%2E+Eschbach+and+K%2E+Knox%2C+%22Automatic+Image+Annotation+Using+Adaptive+Color+Classification%2C%22+Graphical+Models+and+Image+Processing%2C+1996%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch06_B3"/>J. Shotton, J. Winn, C. Rother and A. Criminisi, &#x0201C;TextonBoost for Image Understanding: Multi-Class Object Recognition and Segmentation by Jointly Modeling Texture, Layout, and Context,&#x0201D; <emphasis>International Journal of Computer Vision,</emphasis> 2009. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=J%2E+Shotton%2C+J%2E+Winn%2C+C%2E+Rother+and+A%2E+Criminisi%2C+%22TextonBoost+for+Image+Understanding%3A+Multi-Class+Object+Recognition+and+Segmentation+by+Jointly+Modeling+Texture%2C+Layout%2C+and+Context%2C%22+International+Journal+of+Computer+Vision%2C+2009%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch06_B4"/>M. Pietik&#x000E4;inen, T. Nurmela, T. M&#x000E4;enp&#x000E4;&#x000E4; and M. Turtinen, &#x0201C;View-based recognition of real-world textures,&#x0201D; <emphasis>Journal of Pattern Recognition,</emphasis> 2004. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=M%2E+Pietik%E4inen%2C+T%2E+Nurmela%2C+T%2E+M%E4enp%E4%E4+and+M%2E+Turtinen%2C+%22View-based+recognition+of+real-world+textures%2C%22+Journal+of+Pattern+Recognition%2C+2004%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch06_B5"/>X. Ren, L. Bo and D. Fox, &#x0201C;RGB-(D) scene labeling: Features and algorithms,&#x0201D; <emphasis>Computer Vision and Pattern Recognition (CVPR)</emphasis>, 2012. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=X%2E+Ren%2C+L%2E+Bo+and+D%2E+Fox%2C+%22RGB-%28D%29+scene+labeling%3A+Features+and+algorithms%2C%22+Computer+Vision+and+Pattern+Recognition+%28CVPR%29%2C+2012%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch06_B6"/>P. F. Felzenszwalb and O. Veksler, &#x0201C;Tiered scene labeling with dynamic programming,&#x0201D; <emphasis>Computer Vision and Pattern Recognition (CVPR),</emphasis> 2010. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=P%2E+F%2E+Felzenszwalb+and+O%2E+Veksler%2C+%22Tiered+scene+labeling+with+dynamic+programming%2C%22+Computer+Vision+and+Pattern+Recognition+%28CVPR%29%2C+2010%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch06_B7"/>S. M. Bhandarkar and H. Zhang, &#x0201C;Image segmentation using evolutionary computation,&#x0201D; <emphasis>IEEE Transactions on Evolutionary Computation,</emphasis> 1999. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=S%2E+M%2E+Bhandarkar+and+H%2E+Zhang%2C+%22Image+segmentation+using+evolutionary+computation%2C%22+IEEE+Transactions+on+Evolutionary+Computation%2C+1999%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch06_B8"/>A. Ess, B. Leibe, K. Schindler and L. V. Gool, &#x0201C;A mobile vision system for robust multi-person tracking,&#x0201D; <emphasis>Computer Vision and Pattern Recognition,</emphasis> 2008. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=A%2E+Ess%2C+B%2E+Leibe%2C+K%2E+Schindler+and+L%2E+V%2E+Gool%2C+%22A+mobile+vision+system+for+robust+multi-person+tracking%2C%22+Computer+Vision+and+Pattern+Recognition%2C+2008%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch06_B9"/>A. Broggi, P. Cerri, P. Medici, P. P. Porta and G. Ghisio, &#x0201C;Real Time Road Signs Recognition,&#x0201D; <emphasis>2007 IEEE Intelligent Vehicles Symposium,</emphasis> 2007. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=A%2E+Broggi%2C+P%2E+Cerri%2C+P%2E+Medici%2C+P%2E+P%2E+Porta+and+G%2E+Ghisio%2C+%22Real+Time+Road+Signs+Recognition%2C%22+2007+IEEE+Intelligent+Vehicles+Symposium%2C+2007%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch06_B10"/>J. C. McCall and M. M. Trivedi, &#x0201C;Video-based lane estimation and tracking for driver assistance: survey, system, and evaluation,&#x0201D; <emphasis>Intelligent Transportation Systems,</emphasis> 2006. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=J%2E+C%2E+McCall+and+M%2E+M%2E+Trivedi%2C+%22Video-based+lane+estimation+and+tracking+for+driver+assistance%3A+survey%2C+system%2C+and+evaluation%2C%22+Intelligent+Transportation+Systems%2C+2006%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch06_B11"/>B. Fulkerson, A. Vedaldi and S. Soatto, &#x0201C;Class segmentation and object localization with superpixel neighborhoods,&#x0201D; in <emphasis>Computer Vision, 2009 IEEE 12th International Conference on</emphasis>, 2009. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=B%2E+Fulkerson%2C+A%2E+Vedaldi+and+S%2E+Soatto%2C+%22Class+segmentation+and+object+localization+with+superpixel+neighborhoods%2C%22+in+Computer+Vision%2C+2009+IEEE+12th+International+Conference+on%2C+2009%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch06_B12"/>A. Torralba, K. P. Murphy and W. T. Freeman, &#x0201C;Sharing Visual Features for Multiclass and Multiview Object Detection,&#x0201D; <emphasis>Pattern Analysis and Machine Intelligence, IEEE Transactions on,</emphasis> Vol. 29, No. 5, pp. 854&#x02013;869, May 2007. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=A%2E+Torralba%2C+K%2E+P%2E+Murphy+and+W%2E+T%2E+Freeman%2C+%22Sharing+Visual+Features+for+Multiclass+and+Multiview+Object+Detection%2C%22+Pattern+Analysis+and+Machine+Intelligence%2C+IEEE+Transactions+on%2C+Vol%2E+29%2C+No%2E+5%2C+pp%2E+854-869%2C+May+2007%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch06_B13"/>M. Turtinen and M. Pietik&#x000E4;inen, &#x0201C;Contextual Analysis of Textured Scene Images,&#x0201D; <emphasis>British Machine Vision Conference,</emphasis> 2006. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=M%2E+Turtinen+and+M%2E+Pietik%E4inen%2C+%22Contextual+Analysis+of+Textured+Scene+Images%2C%22+British+Machine+Vision+Conference%2C+2006%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch06_B14"/>B. Hariharan, P. Arbelaez, R. Girshick and J. Malik, &#x0201C;Simultaneous Detection and Segmentation,&#x0201D; <emphasis>Computer Vision &#x02013; ECCV,</emphasis> 2014. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=B%2E+Hariharan%2C+P%2E+Arbelaez%2C+R%2E+Girshick+and+J%2E+Malik%2C+%22Simultaneous+Detection+and+Segmentation%2C%22+Computer+Vision+-+ECCV%2C+2014%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch06_B15"/>X. He, R. S. Zemel and M. A. Carreira-Perpinan, &#x0201C;Multiscale conditional random fields for image labeling,&#x0201D; in <emphasis>Computer Vision and Pattern Recognition, 2004. CVPR 2004. Proceedings of the 2004 IEEE Computer Society Conference on</emphasis>, 2004. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=X%2E+He%2C+R%2E+S%2E+Zemel+and+M%2E+A%2E+Carreira-Perpinan%2C+%22Multiscale+conditional+random+fields+for+image+labeling%2C%22+in+Computer+Vision+and+Pattern+Recognition%2C+2004%2E+CVPR+2004%2E+Proceedings+of+the+2004+IEEE+Computer+Society+Conference+on%2C+2004%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch06_B16"/>X. Liu, O. Veksler and J. Samarabandu, &#x0201C;Order-Preserving Moves for Graph-Cut-Based Optimization,&#x0201D; <emphasis>Pattern Analysis and Machine Intelligence, IEEE Transactions on,</emphasis> Vol. 32, No. 7, pp. 1182&#x02013;1196, July 2010. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=X%2E+Liu%2C+O%2E+Veksler+and+J%2E+Samarabandu%2C+%22Order-Preserving+Moves+for+Graph-Cut-Based+Optimization%2C%22+Pattern+Analysis+and+Machine+Intelligence%2C+IEEE+Transactions+on%2C+Vol%2E+32%2C+No%2E+7%2C+pp%2E+1182-1196%2C+July+2010%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch06_B17"/>W. S. McCulloch and W. Pitts, &#x0201C;A logical calculus of the ideas immanent in nervous activity,&#x0201D; <emphasis>The bulletin of mathematical biophysics,</emphasis> Vol. 5, No. 4, pp. 115&#x02013;133, 1943. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=W%2E+S%2E+McCulloch+and+W%2E+Pitts%2C+%22A+logical+calculus+of+the+ideas+immanent+in+nervous+activity%2C%22+The+bulletin+of+mathematical+biophysics%2C+Vol%2E+5%2C+No%2E+4%2C+pp%2E+115-133%2C+1943%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch06_B18"/>F. Rosenblatt, &#x0201C;The perceptron: A probabilistic model for information storage and organization in the brain,&#x0201D; <emphasis>Psychological Review,</emphasis> Vol. 65, No. 6, 1958. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=F%2E+Rosenblatt%2C+%22The+perceptron%3A+A+probabilistic+model+for+information+storage+and+organization+in+the+brain%2C%22+Psychological+Review%2C+Vol%2E+65%2C+No%2E+6%2C+1958%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch06_B19"/>C. von der Malsburg, &#x0201C;Self-organization of orientation sensitive cells in the striate cortex,&#x0201D; <emphasis>Kybernetik,</emphasis> Vol. 14, No. 2, pp. 85&#x02013;100, 1973. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=C%2E+von+der+Malsburg%2C+%22Self-organization+of+orientation+sensitive+cells+in+the+striate+cortex%2C%22+Kybernetik%2C+Vol%2E+14%2C+No%2E+2%2C+pp%2E+85-100%2C+1973%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch06_B20"/>J. J. Hopfield, &#x0201C;Neural networks and physical systems with emergent collective computational abilities,&#x0201D; <emphasis>Proceedings of the national academy of sciences,</emphasis> Vol. 79, No. 8, pp. 2554&#x02013;2558, 1982. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=J%2E+J%2E+Hopfield%2C+%22Neural+networks+and+physical+systems+with+emergent+collective+computational+abilities%2C%22+Proceedings+of+the+national+academy+of+sciences%2C+Vol%2E+79%2C+No%2E+8%2C+pp%2E+2554-2558%2C+1982%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch06_B21"/>X. Glorot, A. Bordes and Y. Bengio, &#x0201C;Deep sparse rectifier neural networks,&#x0201D; <emphasis>Proceedings of the 14th International Conference on Artificial Intelligence and Statistics,</emphasis> 2011. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=X%2E+Glorot%2C+A%2E+Bordes+and+Y%2E+Bengio%2C+%22Deep+sparse+rectifier+neural+networks%2C%22+Proceedings+of+the+14th+International+Conference+on+Artificial+Intelligence+and+Statistics%2C+2011%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch06_B22"/>D. E. Rumelhart, G. E. Hinton and R. J. Williams, &#x0201C;Lerning representations by back-propagating errors,&#x0201D; in <emphasis>Nature</emphasis>, Vol. 323, Nature Publishing Group, 1986, pp. 533&#x02013;536. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=D%2E+E%2E+Rumelhart%2C+G%2E+E%2E+Hinton+and+R%2E+J%2E+Williams%2C+%22Lerning+representations+by+back-propagating+errors%2C%22+in+Nature%2C+Vol%2E+323%2C+Nature+Publishing+Group%2C+1986%2C+pp%2E+533-536%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch06_B23"/>K. Fukushima and S. Miyake, &#x0201C;Neocognitron: A new algorithm for pattern recognition tolerant of deformations and shifts in position,&#x0201D; <emphasis>Pattern Recognition,</emphasis> Vol. 15, No. 6, pp. 455&#x02013;469, 1982. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=K%2E+Fukushima+and+S%2E+Miyake%2C+%22Neocognitron%3A+A+new+algorithm+for+pattern+recognition+tolerant+of+deformations+and+shifts+in+position%2C%22+Pattern+Recognition%2C+Vol%2E+15%2C+No%2E+6%2C+pp%2E+455-469%2C+1982%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch06_B24"/>Y. Lecun, L. Bottou, Y. Bengio and P. Haffner, &#x0201C;Gradient-based learning applied to document recognition,&#x0201D; <emphasis>Proceedings of the IEEE,</emphasis> Vol. 86, No. 11, pp. 2278&#x02013;2324, Nov 1998. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=Y%2E+Lecun%2C+L%2E+Bottou%2C+Y%2E+Bengio+and+P%2E+Haffner%2C+%22Gradient-based+learning+applied+to+document+recognition%2C%22+Proceedings+of+the+IEEE%2C+Vol%2E+86%2C+No%2E+11%2C+pp%2E+2278-2324%2C+Nov+1998%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch06_B25"/>A. Giusti, D. Ciresan, J. Masci, L. Gambardella and J. Schmidhuber, &#x0201C;Fast image scanning with deep max-pooling convolutional neural networks,&#x0201D; in <emphasis>Image Processing (ICIP), 2013 20th IEEE International Conference on</emphasis>, 2013. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=A%2E+Giusti%2C+D%2E+Ciresan%2C+J%2E+Masci%2C+L%2E+Gambardella+and+J%2E+Schmidhuber%2C+%22Fast+image+scanning+with+deep+max-pooling+convolutional+neural+networks%2C%22+in+Image+Processing+%28ICIP%29%2C+2013+20th+IEEE+International+Conference+on%2C+2013%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch06_B26"/>Y. Jia, E. Shelhamer, J. Donahue, S. Karayev, J. Long, R. Girshick, S. Guadarrama and T. Darrell, &#x0201C;Caffe: Convolutional Architecture for Fast Feature Embedding,&#x0201D; in <emphasis>Proceedings of the 22nd ACM International Conference on Multimedia</emphasis>, New York, NY, USA, 2014. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=Y%2E+Jia%2C+E%2E+Shelhamer%2C+J%2E+Donahue%2C+S%2E+Karayev%2C+J%2E+Long%2C+R%2E+Girshick%2C+S%2E+Guadarrama+and+T%2E+Darrell%2C+%22Caffe%3A+Convolutional+Architecture+for+Fast+Feature+Embedding%2C%22+in+Proceedings+of+the+22nd+ACM+International+Conference+on+Multimedia%2C+New+York%2C+NY%2C+USA%2C+2014%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch06_B27"/>R. Collobert, K. Kavukcuoglu and C. Farabet, &#x0201C;Torch7: A Matlab-like Environment for Machine Learning,&#x0201D; in <emphasis>BigLearn, NIPS Workshop</emphasis>, 2011. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=R%2E+Collobert%2C+K%2E+Kavukcuoglu+and+C%2E+Farabet%2C+%22Torch7%3A+A+Matlab-like+Environment+for+Machine+Learning%2C%22+in+BigLearn%2C+NIPS+Workshop%2C+2011%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch06_B28"/>J. Bergstra, O. Breuleux, F. Bastien, P. Lamblin, R. Pascanu, G. Desjardins, J. Turian, D. Warde-Farley and Y. Bengio, &#x0201C;Theano: A CPU and GPU Math Compiler in Python,&#x0201D; in <emphasis>9th Pytthon in Science Conference (SCIPY 2010), Proceedings of the</emphasis>, 2010. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=J%2E+Bergstra%2C+O%2E+Breuleux%2C+F%2E+Bastien%2C+P%2E+Lamblin%2C+R%2E+Pascanu%2C+G%2E+Desjardins%2C+J%2E+Turian%2C+D%2E+Warde-Farley+and+Y%2E+Bengio%2C+%22Theano%3A+A+CPU+and+GPU+Math+Compiler+in+Python%2C%22+in+9th+Pytthon+in+Science+Conference+%28SCIPY+2010%29%2C+Proceedings+of+the%2C+2010%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch06_B29"/>A. Krizhevsky, &#x0201C;cuda-convnet2,&#x0201D; 2014. [Online]. Available: <ulink url="https://code.google.com/archive/p/cuda-convnet2/">https://code.google.com/archive/p/cuda-convnet2/</ulink>. [Accessed M&#x000E4;rz 2016].</para></listitem>
<listitem><para><anchor id="ch06_B30"/>A. Krizhevsky, I. Sutskever and G. E. Hinton, &#x0201C;ImageNet Classification with Deep Convolutional Neural Networks,&#x0201D; in <emphasis>Advances in Neural Information Processing Systems 25</emphasis>, F. Pereira, C. Burges, L. Bottou and K. Weinberger, Eds., Curran Associates, Inc., 2012, pp. 1097&#x02013;1105. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=A%2E+Krizhevsky%2C+I%2E+Sutskever+and+G%2E+E%2E+Hinton%2C+%22ImageNet+Classification+with+Deep+Convolutional+Neural+Networks%2C%22+in+Advances+in+Neural+Information+Processing+Systems+25%2C+F%2E+Pereira%2C+C%2E+Burges%2C+L%2E+Bottou+and+K%2E+Weinberger%2C+Eds%2E%2C+Curran+Associates%2C+Inc%2E%2C+2012%2C+pp%2E+1097-1105%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch06_B31"/>C. Szegedy, W. Liu, Y. Jia, P. Sermanet, S. Reed, D. Anguelov, D. Erhan, V. Vanhoucke and A. Rabinovich, &#x0201C;Going Deeper with Convolutions,&#x0201D; in <emphasis>CVPR 2015</emphasis>, 2015. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=C%2E+Szegedy%2C+W%2E+Liu%2C+Y%2E+Jia%2C+P%2E+Sermanet%2C+S%2E+Reed%2C+D%2E+Anguelov%2C+D%2E+Erhan%2C+V%2E+Vanhoucke+and+A%2E+Rabinovich%2C+%22Going+Deeper+with+Convolutions%2C%22+in+CVPR+2015%2C+2015%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch06_B32"/>K. Simonyan and A. Zisserman, &#x0201C;Very Deep Convolutional Networks for Large-Scale Image Recognition,&#x0201D; <emphasis>CoRR,</emphasis>vol. abs/1409.1556, 2014. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=K%2E+Simonyan+and+A%2E+Zisserman%2C+%22Very+Deep+Convolutional+Networks+for+Large-Scale+Image+Recognition%2C%22+CoRR%2Cvol%2E+abs%2F1409%2E1556%2C+2014%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch06_B33"/>O. Russakovsky, J. Deng, H. Su, J. Krause, S. Satheesh, S. Ma, Z. Huang, A. Karpathy, A. Khosla, M. Bernstein, A. Berg and L. Fei-Fei, &#x0201C;ImageNet Large Scale Visual Recognition Challenge,&#x0201D; <emphasis>International Journal of Computer Vision,</emphasis> Vol. 115, No. 3, pp. 211&#x02013;252, 2015. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=O%2E+Russakovsky%2C+J%2E+Deng%2C+H%2E+Su%2C+J%2E+Krause%2C+S%2E+Satheesh%2C+S%2E+Ma%2C+Z%2E+Huang%2C+A%2E+Karpathy%2C+A%2E+Khosla%2C+M%2E+Bernstein%2C+A%2E+Berg+and+L%2E+Fei-Fei%2C+%22ImageNet+Large+Scale+Visual+Recognition+Challenge%2C%22+International+Journal+of+Computer+Vision%2C+Vol%2E+115%2C+No%2E+3%2C+pp%2E+211-252%2C+2015%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch06_B34"/>C. Farabet, C. Couprie, L. Najman and Y. LeCun, &#x0201C;Learning Hierarchical Features for Scene Labeling,&#x0201D; <emphasis>IEEE Transactions on Pattern Analysis and Machine Intelligence,</emphasis> Vol. 35, No. 8, pp. 1915&#x02013;1929, 2013. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=C%2E+Farabet%2C+C%2E+Couprie%2C+L%2E+Najman+and+Y%2E+LeCun%2C+%22Learning+Hierarchical+Features+for+Scene+Labeling%2C%22+IEEE+Transactions+on+Pattern+Analysis+and+Machine+Intelligence%2C+Vol%2E+35%2C+No%2E+8%2C+pp%2E+1915-1929%2C+2013%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch06_B35"/>G. Jurman, S. Riccadonna and C. Furlanello, &#x0201C;A Comparison of MCC and CEN Error Measures in Multi-Class Prediction,&#x0201D; <emphasis>PLoS ONE,</emphasis> Vol. 7, No. 8, p. e41882, 08 2012. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=G%2E+Jurman%2C+S%2E+Riccadonna+and+C%2E+Furlanello%2C+%22A+Comparison+of+MCC+and+CEN+Error+Measures+in+Multi-Class+Prediction%2C%22+PLoS+ONE%2C+Vol%2E+7%2C+No%2E+8%2C+p%2E+e41882%2C+08+2012%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch06_B36"/>F. Bastien, P. Lamblin, R. Pascanu, J. Bergstra, I. J. Goodfellow, A. Bergeron, N. Bouchard, D. Warde-Farley and Y. Bengio, &#x0201C;Theano: new features and speed improvements,&#x0201D; <emphasis>CoRR,</emphasis> vol. abs/1211.5590, 2012. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=F%2E+Bastien%2C+P%2E+Lamblin%2C+R%2E+Pascanu%2C+J%2E+Bergstra%2C+I%2E+J%2E+Goodfellow%2C+A%2E+Bergeron%2C+N%2E+Bouchard%2C+D%2E+Warde-Farley+and+Y%2E+Bengio%2C+%22Theano%3A+new+features+and+speed+improvements%2C%22+CoRR%2C+vol%2E+abs%2F1211%2E5590%2C+2012%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch06_B37"/>V. Lebedev, Y. Ganin, M. Rakhuba, I. V. Oseledets and V. S. Lempitsky, &#x0201C;Speeding-up Convolutional Neural Networks Using Fine-tuned CP-Decomposition,&#x0201D; <emphasis>CoRR,</emphasis> vol. abs/1412.6553, 2014. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=V%2E+Lebedev%2C+Y%2E+Ganin%2C+M%2E+Rakhuba%2C+I%2E+V%2E+Oseledets+and+V%2E+S%2E+Lempitsky%2C+%22Speeding-up+Convolutional+Neural+Networks+Using+Fine-tuned+CP-Decomposition%2C%22+CoRR%2C+vol%2E+abs%2F1412%2E6553%2C+2014%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch06_B38"/>J. Cong and B. Xiao, &#x0201C;Minimizing Computation in Convolutional Neural Networks,&#x0201D; in <emphasis>Artificial Neural Networks and Machine Learning &#x02013; ICANN 2014: 24th International Conference on Artificial Neural Networks, Hamburg, Germany, September 15-19, 2014. Proceedings</emphasis>, S. Wermter, C. Weber, W. Duch, T. Honkela, P. Koprinkova-Hristova, S. Magg, G. Palm and A. E. P. Villa, Eds., Springer International Publishing, 2014, pp. 281&#x02013;290. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=J%2E+Cong+and+B%2E+Xiao%2C+%22Minimizing+Computation+in+Convolutional+Neural+Networks%2C%22+in+Artificial+Neural+Networks+and+Machine+Learning+-+ICANN+2014%3A+24th+International+Conference+on+Artificial+Neural+Networks%2C+Hamburg%2C+Germany%2C+September+15-19%2C+2014%2E+Proceedings%2C+S%2E+Wermter%2C+C%2E+Weber%2C+W%2E+Duch%2C+T%2E+Honkela%2C+P%2E+Koprinkova-Hristova%2C+S%2E+Magg%2C+G%2E+Palm+and+A%2E+E%2E+P%2E+Villa%2C+Eds%2E%2C+Springer+International+Publishing%2C+2014%2C+pp%2E+281-290%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch06_B39"/>C. Farabet, B. Martini, B. Corda, P. Akselrod, E. Culurciello and Y. LeCun, &#x0201C;NeuFlow: A runtime reconfigurable dataflow processor for vision,&#x0201D; in <emphasis>Computer Vision and Pattern Recognition Workshops (CVPRW), 2011 IEEE Computer Society Conference on</emphasis>, 2011. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=C%2E+Farabet%2C+B%2E+Martini%2C+B%2E+Corda%2C+P%2E+Akselrod%2C+E%2E+Culurciello+and+Y%2E+LeCun%2C+%22NeuFlow%3A+A+runtime+reconfigurable+dataflow+processor+for+vision%2C%22+in+Computer+Vision+and+Pattern+Recognition+Workshops+%28CVPRW%29%2C+2011+IEEE+Computer+Society+Conference+on%2C+2011%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch06_B40"/>A. Dundar, J. Jin, V. Gokhale, B. Krishnamurthy, A. Canziani, B. Martini and E. Culurciello, &#x0201C;Accelerating deep neural networks on mobile processor with embedded programmable logic,&#x0201D; in <emphasis>Neural information processing systems conference (NIPS)</emphasis>, 2013. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=A%2E+Dundar%2C+J%2E+Jin%2C+V%2E+Gokhale%2C+B%2E+Krishnamurthy%2C+A%2E+Canziani%2C+B%2E+Martini+and+E%2E+Culurciello%2C+%22Accelerating+deep+neural+networks+on+mobile+processor+with+embedded+programmable+logic%2C%22+in+Neural+information+processing+systems+conference+%28NIPS%29%2C+2013%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch06_B41"/>J. Jin, V. Gokhale, A. Dundar, B. Krishnamurthy, B. Martini and E. Culurciello, &#x0201C;An efficient implementation of deep convolutional neural networks on a mobile coprocessor,&#x0201D; in <emphasis>Circuits and Systems (MWSCAS), 2014 IEEE 57th International Midwest Symposium on</emphasis>, 2014. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=J%2E+Jin%2C+V%2E+Gokhale%2C+A%2E+Dundar%2C+B%2E+Krishnamurthy%2C+B%2E+Martini+and+E%2E+Culurciello%2C+%22An+efficient+implementation+of+deep+convolutional+neural+networks+on+a+mobile+coprocessor%2C%22+in+Circuits+and+Systems+%28MWSCAS%29%2C+2014+IEEE+57th+International+Midwest+Symposium+on%2C+2014%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch06_B42"/>C. Zhang, P. Li, G. Sun, Y. Guan, B. Xiao and J. Cong, &#x0201C;Optimizing FPGA-based Accelerator Design for Deep Convolutional Neural Networks,&#x0201D; in <emphasis>Proceedings of the 2015 ACM/SIGDA International Symposium on Field-Programmable Gate Arrays</emphasis>, New York, NY, USA, 2015. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=C%2E+Zhang%2C+P%2E+Li%2C+G%2E+Sun%2C+Y%2E+Guan%2C+B%2E+Xiao+and+J%2E+Cong%2C+%22Optimizing+FPGA-based+Accelerator+Design+for+Deep+Convolutional+Neural+Networks%2C%22+in+Proceedings+of+the+2015+ACM%2FSIGDA+International+Symposium+on+Field-Programmable+Gate+Arrays%2C+New+York%2C+NY%2C+USA%2C+2015%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch06_B43"/>L. Cavigelli, M. Magno and L. Benini, &#x0201C;Accelerating Real-time Embedded Scene Labeling with Convolutional Networks,&#x0201D; in <emphasis>Proceedings of the 52nd Annual Design Automation Conference</emphasis>, New York, NY, USA, 2015. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=L%2E+Cavigelli%2C+M%2E+Magno+and+L%2E+Benini%2C+%22Accelerating+Real-time+Embedded+Scene+Labeling+with+Convolutional+Networks%2C%22+in+Proceedings+of+the+52nd+Annual+Design+Automation+Conference%2C+New+York%2C+NY%2C+USA%2C+2015%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch06_B44"/>V. Gokhale, J. Jin, A. Dundar, B. Martini and E. Culurciello, &#x0201C;A 240 G-ops/s Mobile Coprocessor for Deep Neural Networks,&#x0201D; in <emphasis>Computer Vision and Pattern Recognition Workshops (CVPRW), 2014 IEEE Conference on</emphasis>, 2014. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=V%2E+Gokhale%2C+J%2E+Jin%2C+A%2E+Dundar%2C+B%2E+Martini+and+E%2E+Culurciello%2C+%22A+240+G-ops%2Fs+Mobile+Coprocessor+for+Deep+Neural+Networks%2C%22+in+Computer+Vision+and+Pattern+Recognition+Workshops+%28CVPRW%29%2C+2014+IEEE+Conference+on%2C+2014%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch06_B45"/>P.-H. Pham, D. Jelaca, C. Farabet, B. Martini, Y. LeCun and E. Culurciello, &#x0201C;NeuFlow: Dataflow vision processing system-on-a-chip,&#x0201D; in <emphasis>Circuits and Systems (MWSCAS), 2012 IEEE 55th International Midwest Symposium on</emphasis>, 2012. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=P%2E-H%2E+Pham%2C+D%2E+Jelaca%2C+C%2E+Farabet%2C+B%2E+Martini%2C+Y%2E+LeCun+and+E%2E+Culurciello%2C+%22NeuFlow%3A+Dataflow+vision+processing+system-on-a-chip%2C%22+in+Circuits+and+Systems+%28MWSCAS%29%2C+2012+IEEE+55th+International+Midwest+Symposium+on%2C+2012%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch06_B46"/>T. Chen, Z. Du, N. Sun, J. Wang, C. Wu, Y. Chen and O. Temam, &#x0201C;A High-Throughput Neural Network Accelerator,&#x0201D; <emphasis>Micro, IEEE,</emphasis> Vol. 35, No. 3, pp. 24&#x02013;32, May 2015. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=T%2E+Chen%2C+Z%2E+Du%2C+N%2E+Sun%2C+J%2E+Wang%2C+C%2E+Wu%2C+Y%2E+Chen+and+O%2E+Temam%2C+%22A+High-Throughput+Neural+Network+Accelerator%2C%22+Micro%2C+IEEE%2C+Vol%2E+35%2C+No%2E+3%2C+pp%2E+24-32%2C+May+2015%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch06_B47"/>L. Cavigelli, D. Gschwend, C. Mayer, S. Willi, B. Muheim and L. Benini, &#x0201C;Origami: A Convolutional Network Accelerator,&#x0201D; in <emphasis>Proceedings of the 25th Edition on Great Lakes Symposium on VLSI</emphasis>, New York, NY, USA, 2015. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=L%2E+Cavigelli%2C+D%2E+Gschwend%2C+C%2E+Mayer%2C+S%2E+Willi%2C+B%2E+Muheim+and+L%2E+Benini%2C+%22Origami%3A+A+Convolutional+Network+Accelerator%2C%22+in+Proceedings+of+the+25th+Edition+on+Great+Lakes+Symposium+on+VLSI%2C+New+York%2C+NY%2C+USA%2C+2015%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch06_B48"/>&#x0201C;Marvin: A minimalist GPU-only N-dimensional ConvNet framework,&#x0201D; [Online]. Available: <ulink url="http://marvin.is">http://marvin.is</ulink>. [Accessed 2015]. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=%22Marvin%3A+A+minimalist+GPU-only+N-dimensional+ConvNet+framework%2C%22+%5BOnline%5D%2E+Available%3A+http%3A%2F%2Fmarvin%2Eis%2E+%5BAccessed+2015%5D%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch06_B49"/>G. Pay&#x000E1;-Vay&#x000E1;, R. Burg and H. Blume, &#x0201C;Dynamic Data-Path Self-Reconfiguration of a VLIW-SIMD Soft-Processor Architecture,&#x0201D; <emphasis>Workshop on Self-Awareness in Reconfigurable Computing Systems (SRCS) in conjunction with the 2012 International Conference on Field Programmable Logic and Applications (FPL 2012),</emphasis> 2012. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=G%2E+Pay%E1-Vay%E1%2C+R%2E+Burg+and+H%2E+Blume%2C+%22Dynamic+Data-Path+Self-Reconfiguration+of+a+VLIW-SIMD+Soft-Processor+Architecture%2C%22+Workshop+on+Self-Awareness+in+Reconfigurable+Computing+Systems+%28SRCS%29+in+conjunction+with+the+2012+International+Conference+on+Field+Programmable+Logic+and+Applications+%28FPL+2012%29%2C+2012%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch06_B50"/>S. Nolting, G. Pay&#x000E1;-Vay&#x000E1; and H. Blume, &#x0201C;Optimizing VLIW-SIMD Processor Architectures for FPGA Implementation,&#x0201D; <emphasis>Proceedings of the ICT.OPEN 2011 Conference</emphasis> (Veldhoven, Netherlands), 2011. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=S%2E+Nolting%2C+G%2E+Pay%E1-Vay%E1+and+H%2E+Blume%2C+%22Optimizing+VLIW-SIMD+Processor+Architectures+for+FPGA+Implementation%2C%22+Proceedings+of+the+ICT%2EOPEN+2011+Conference+%28Veldhoven%2C+Netherlands%29%2C+2011%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch06_B51"/>A. Ess, T. Mueller, H. Grabner and L. v. Gool, &#x0201C;Segmentation-based urban traffic scene understanding,&#x0201D; in <emphasis>Proceedings of the British Machine Vision Conference</emphasis>, 2009. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=A%2E+Ess%2C+T%2E+Mueller%2C+H%2E+Grabner+and+L%2E+v%2E+Gool%2C+%22Segmentation-based+urban+traffic+scene+understanding%2C%22+in+Proceedings+of+the+British+Machine+Vision+Conference%2C+2009%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch06_B52"/>Y. LeCun, K. Kavukcuoglu and C. Farabet, &#x0201C;Convolutional networks and applications in vision,&#x0201D; in <emphasis>Circuits and Systems (ISCAS), Proceedings of 2010 IEEE International Symposium on</emphasis>, 2010. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=Y%2E+LeCun%2C+K%2E+Kavukcuoglu+and+C%2E+Farabet%2C+%22Convolutional+networks+and+applications+in+vision%2C%22+in+Circuits+and+Systems+%28ISCAS%29%2C+Proceedings+of+2010+IEEE+International+Symposium+on%2C+2010%2E" target="_blank">Google Scholar</ulink></para></listitem>
</orderedlist>
</section>
</chapter>
<chapter class="chapter" id="ch07" label="7" xreflabel="7">
<title>Real-Time Data Preprocessing for High-Resolution MIMO Radar Sensors</title>
<para class="section"><emphasis role="strong">Frank Meinl<superscript><emphasis role="strong">1</emphasis></superscript>, Eugen Schubert<superscript><emphasis role="strong">1</emphasis></superscript>, Martin Kunert<superscript><emphasis role="strong">1</emphasis></superscript> and Holger Blume<superscript><emphasis role="strong">2</emphasis></superscript></emphasis></para>
<para><superscript>1</superscript>Advanced Engineering Sensor Systems, Robert Bosch GmbH, Leonberg, Germany</para>
<para><superscript>2</superscript>Institute of Microelectronic Systems, Leibniz Universit&#x000E4;t Hannover, Hannover, Germany</para>
<section class="lev1" id="sec7-1">
<title>7.1 Introduction</title>
<para>The progress in resolution of automotive radar sensors involves a considerable increase in data-rate and computational throughput. Dedicated processing architectures have to be investigated in order to manage the tremendous amount of data. Even for early prototype development platforms, the performance of existing PC-based frameworks and tools is no longer sufficient to cope with the data processing of many parallel radar receiver channels at very high sampling rates.</para>
<para>This chapter presents a FPGA-based signal processing architecture capable of handling 16 parallel MIMO radar receiving channels with a sampling frequency of 250 MHz each. Raw data is transferred from the AD-Converters to the FPGA where subsequent processing steps are performed, involving FIR-filtering and decimation, two-dimensional FFT transform, local noise level estimation and subsequent target detection. An external DRAM is used for storing multiple radar measurements which are finally evaluated altogether (so-called chirp-sequence modulation).</para>
<para>Data post-processing is outsourced onto a PC running with ADTF, an automotive framework for graph-based real-time data processing. The combination of a fast, FPGA-based preprocessing unit with a more flexible, PC-based development platform maximizes processing performance and minimizes development time. The less mature angular MIMO processing algorithms can thus be evaluated with the help of C-based algorithms running in ADTF, while the simple, but calculation intensive FFT processing is implemented entirely as a hardware accelerator in a Virtex-7 FPGA device from Xilinx.</para>
</section>
<section class="lev1" id="sec7-2">
<title>7.2 Signal Processing for Automotive Radar Sensors</title>
<para>After AD-conversion, the raw radar signals enter the processing unit, consecutively passing through all necessary signal processing steps. Different levels of data abstraction and representation can be identified, which range from low level time signals up to complex environmental models.</para>
<para>In this chapter, only the extraction of discrete scattering centers will be considered. The result is a list of reflections, each having multiple features, like for instance Cartesian coordinates, radar-cross-section (RCS), relative velocity or signal-to-noise ratio. Further processing of these reflections would incorporate clustering, classification and environment modeling.</para>
<para>An intermediate state is the extraction of relevant targets from the two-dimensional frequency spectrum (cf. Subsection 7.2.2). At this point, the range and velocity of the targets have already been determined, while the angular information is not evaluated yet. Nevertheless, the data rates are already reduced by a significant amount, so that at this stage the data transfer interface between FPGA and PC-based signal processing can be established.</para>
<section class="lev2" id="sec7-2-1">
<title>7.2.1 FMCW Radar System Architecture</title>
<para>The usage of frequency-modulated continuous-wave (FMCW) radar sensors can be advantageous in short range applications, especially due to their high range resolution capability and much lower peak power requirements. In contrast to a pulsed radar system, the transmitter and receiver operate at the same time, which imposes some constraints on the transmitted signals. In order to measure the time-of-flight, i.e. the range towards an object, some kind of time-varying information needs to be added to the transmitted waveforms. The signal has to be modulated in an unambiguous, non-repetitive fashion. A constant sine wave, for instance, can&#x02019;t be used for range estimation, due to its ambiguity after the phase has increased by one cycle or 2&#x003C0;, respectively.</para>
<para>One widely used modulation scheme consists of linear modulated frequency chirps (cf. <link linkend="F7-1">Figure <xref linkend="F7-1" remap="7.1"/></link>). Two important parameters are the used bandwidth <emphasis>F</emphasis> and the modulation time <emphasis>T</emphasis> which determine the slope <inline-graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="graphics/ch07_inline1.jpg"/> of the frequency ramp. Besides, other kinds of modulation schemes exist, e.g. frequency shift keying, various phase modulation or pseudo-noise coding principles.</para>
<fig id="F7-1" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F7-1">Figure <xref linkend="F7-1" remap="7.1"/></link></label>
<caption><para>FMCW ramp waveform shown as frequency over time f(t). The solid line represents the transmitted signal (TX) while the dashed line is the received signal (RX).</para></caption>
<graphic xlink:href="graphics/ch07_fig001.jpg"/>
</fig>
<para>In the case of a linear frequency modulation, the time-of-flight &#x00394;<emphasis>t</emphasis> can be directly translated into a frequency difference (so called beat frequency <emphasis>f<subscript>b</subscript></emphasis>). With the help of a mixer device in the receiver, this frequency difference can be measured efficiently and estimated by subsequent signal processing blocks. Finally, the target range <emphasis>r</emphasis> can be obtained from the estimated beat frequency value. However, as moving targets engender an additional frequency shift <emphasis>f<subscript>d</subscript></emphasis> (Doppler frequency), the measured frequency will consist of a superposition of a range and a velocity dependent component.</para>
<para><graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="graphics/ch07_ueq1.jpg"/></para>
<para>With the help of advanced modulation waveforms, the occurrence of range-Doppler ambiguities can be significantly reduced, while being able to estimate both frequency components individually at the same time [<link linkend="ch07_B1">1</link>]. This can be achieved by using multiple, aligned FMCW chirps. Furthermore, these ramp signals should have a very steep slope, so that the range dependent frequency part <emphasis>f<subscript>r</subscript></emphasis> dominates in the beat frequency <emphasis>f<subscript>b</subscript></emphasis>. For a sufficient small target velocity, the Doppler frequency <emphasis>f<subscript>d</subscript></emphasis> is likewise small enough so that the range estimation can be carried out directly from <emphasis>f<subscript>b</subscript></emphasis> by simply neglecting the minor <emphasis>f<subscript>d</subscript></emphasis> contribution. However, the Doppler information is not completely lost and can be regained from the inherent phase measurement which is present in the consecutive frequency ramps. For this purpose, it is necessary that the ramp sequence is strictly aligned and that the data sampling occurs always at the same time instant w.r.t. the chirp modulation. The underlying processing technique is shown in <link linkend="F7-2">Figure <xref linkend="F7-2" remap="7.2"/></link> and relies on a two-dimensional spectrum analysis. The big advantage is the unambiguous determination of both the range and velocity frequency component of each target.</para>
<fig id="F7-2" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F7-2">Figure <xref linkend="F7-2" remap="7.2"/></link></label>
<caption><para>Chirp-sequence modulation.</para></caption>
<graphic xlink:href="graphics/ch07_fig002.jpg"/>
</fig>
<para>For the angle estimation, two different measurement principles can be used. One possibility is a steerable antenna, which has a high directivity. Only targets which reside inside the antenna beam will contribute to the received signal in a significant manner. The detection space has to be scanned individually, i.e. each possible direction of arrival (DOA) will be measured separately. An alternative to a mechanical steered antenna is the use of an antenna array, where each antenna element is fed by a time delayed version of the transmit signal. The phase shift of the antenna feeds can be changed electronically. Depending on the phase relationships of the antenna elements, the directivity can be swiveled, which is also referred to as electronic beam steering or phased array.</para>
<para>The second class of angle estimation relies on a phase measurement of the received signals. Within a static antenna array, the measured phase differences will depend on the DOA of the target reflections. This property is exploited by many different algorithms in the field of array processing [<link linkend="ch07_B2">2</link>]. A major advantage of a fixed antenna array is the simultaneous measurement over a wide opening angle. The region of interest does not have to be scanned and data can be collected in a single, instantaneous snapshot. In general, the achievable angular resolution and separability depends on the number of channels as well as on the aperture size of the array.</para>
<para>In the case of a receiving array, each channel will require a dedicated frequency mixer, amplifier and AD-converter, which increases the total cost of the system. Hence, the usage of advanced algorithms can be considered in order to increase resolution without additional receiving channels [<link linkend="ch07_B3">3</link>]. These algorithms are often said to achieve a superresolution because they perform better than a conventional Bartlett beamscan algorithm (cf. [<link linkend="ch07_B2">2</link>], pp. 1142). Another possibility is the usage of multiple transmitting channels (multiple input &#x02013; multiple output &#x02013; MIMO). A MIMO system has a better efficiency because the number of virtual channels is larger than the real number of channels, thus resulting in lower hardware effort.</para>
<para>In <link linkend="F7-3">Figure <xref linkend="F7-3" remap="7.3"/></link>, a linear MIMO antenna array is shown with two transmitter antennas, which are depicted as circles on the left. The physical receiving array (blue) is extended by several virtual antenna positions. The underlying signal processing remains the same as in the single transmitter case, however the full virtual array can be used resulting in an increased accuracy and object separation capability. In order to separate the signals originating from different transmitting antennas at the receiver side, some kind of orthogonality has to be introduced. A straight forward approach is to use a time-division multiplexing (TDM) approach, i.e. only one transmitter operates at the same time. Other possible techniques comprise frequency-division multiplexing (FDM) or code-division multiple access (CDMA).</para>
<fig id="F7-3" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F7-3">Figure <xref linkend="F7-3" remap="7.3"/></link></label>
<caption><para>Possible MIMO antenna array design: The physical receiver array (blue) is extended by several virtual antennas (red squares) due to the second transmitter TX 2.</para></caption>
<graphic xlink:href="graphics/ch07_fig003.jpg"/>
</fig>
</section>
<section class="lev2" id="sec7-2-2">
<title>7.2.2 Two-Dimensional Spectrum Analysis for Range and Velocity Estimation</title>
<para>Multi-target scenarios are usually encountered in automotive radar applications. Especially static targets are often present in the field of view arising from roadside structures, e.g. guardrails and reflector posts. Furthermore, with increased resolution, multiple scattering centers are visible from single objects, e.g. the shape of car bodies is seen as a large cloud consisting of many reflections [<link linkend="ch07_B4">4</link>].</para>
<para>In order to resolve and separate proximate targets, a good range resolution and thus frequency resolution is required. One widely used technique providing a fast and robust frequency estimation is the fast Fourier transform (FFT). For a further increase in range resolution, advanced frequency estimation algorithms like autoregressive (AR) models or multiple signal classification (MUSIC) can be employed [<link linkend="ch07_B5">5</link>, <link linkend="ch07_B6">6</link>]. Beside the higher computational requirements, they suffer from the fact that the number of detections needs to be known prior to the estimation. For this reason, the presented system relies on the more convenient FFT-based spectrum analysis.</para>
<para>The Doppler frequency estimation is carried out by a second FFT. Instead of the raw time signals, the frequency bins of the first FFT are used as input signal. In other words, the second FFT measures the ramp-to-ramp phase offset for each target. This offset depends solely on the Doppler shift of the target, because the radar system ensures a coherent sampling of the transmitted frequency chirps. Only if the target is moving relatively to the sensor, the measured phase value will vary between the consecutive chirp ramps.</para>
<para>As depicted in <link linkend="F7-2">Figure <xref linkend="F7-2" remap="7.2"/></link>, targets with different ranges and different velocities are separated after this step. In contrast to many other FMCW modulation forms, a matching step to find corresponding ranges and velocities is no longer required, because the values are directly obtained from the two-dimensional indices. Furthermore, the computational effort stays constant and is thus independent from the number of prevailing targets. This property plays a key role in scenarios with many scattering points as often encountered with high resolution automotive radar sensors.</para>
<para>Another benefit of the two-dimensional spectral processing is the higher sensitivity. Particularly small targets with a low radar cross-section (RCS) can be masked by the noise floor of the first FFT. These targets become visible only by the help of the additional processing gain of the second FFT. Thus, each output bin of the first FFT shall be taken into account and the full 2D matrix should be evaluated before any target detection takes place.</para>
</section>
<section class="lev2" id="sec7-2-3">
<title>7.2.3 Thresholding and Target Detection</title>
<para>A crucial point in the signal processing chain is the separation of different target reflections in the two-dimensional power spectrum. With the help of this step, data of relevant objects will be isolated from the random noise components. This leads to a significant reduction of data rate and thus lowers the computational performance requirements for the downstream signal processing steps.</para>
<para>The target detection is carried out with the help of an adaptive threshold, reducing the effects of local noise and clutter components. With the means of a constant false alarm rate (CFAR) processing, the probability of false alarm remains constant, irrespective of varying operational and environmental conditions.</para>
<para>Different types of CFAR processors can be used for noise level estimation. Two variants are presented in this section, the cell-averaging (CA-CFAR) and the ordered-statistic (OS-CFAR), two of the most extensively used variants.</para>
<section class="lev3" id="sec7-2-3-1">
<title>Cell-Averaging CFAR (CA-CFAR)</title>
<para>The basic task of a CFAR detector is to provide an adaptive threshold, which is then used for the subsequent detection step, i.e. the decision if a specific cell contains a present target or just irrelevant noise components. In contrast to a fixed threshold, an estimate of the local background noise level is used as threshold, which has to be obtained automatically and separately for each cell under test (CUT). Many different methods exist to provide such an estimate, each leading to different classes and variants of CFAR detectors.</para>
<para>A simple yet powerful approach is the mean value of a number of window cells in proximity to the CUT (see <link linkend="F7-4">Figure <xref linkend="F7-4" remap="7.4"/></link>). This variant is known as cell averaging CFAR, or CA-CFAR. The assumption made in this case is that all window cells contain only noise components and thus the mean value is a good estimate of the noise variance. In the case of white Gaussian noise, the value is corresponding to the maximum likelihood estimator. However, for many radar systems the assumption of normal distributed noise turns out to be inaccurate [<link linkend="ch07_B7">7</link>].</para>
<fig id="F7-4" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F7-4">Figure <xref linkend="F7-4" remap="7.4"/></link></label>
<caption><para>CA-CFAR sliding window implementation.</para></caption>
<graphic xlink:href="graphics/ch07_fig004.jpg"/>
</fig>
<para>When designing a CFAR detector, an important parameter is the window size around the CUT. On the one hand, a larger window size reduces the statistical estimation error; on the other hand, local differences in the noise level can be blurred by a large window. A tradeoff has to be made between the deviation from the requested false alarm rate due to the estimation error and the local sensitivity of the adaptive threshold which results from smoothing. Furthermore, the computational effort becomes more relevant with increasing window sizes.</para>
</section>
<section class="lev3" id="sec7-2-3-2">
<title>Ordered-Statistic CFAR (OS-CFAR)</title>
<para>In the case of white Gaussian noise, the CA-CFAR performs very well in single target scenarios. However, in a multi-target environment, the estimated noise level will deviate due to interfering targets inside the window cells. Robust statistics can be used in order to suppress outliers arising from other targets inside the window. A commonly used variant is the ordered-statistic (OS-CFAR) which relies on a sortation of the values inside the window, similar to a median filter.</para>
<para>The algorithm performs the following steps for each cell under test (CUT):</para>
<itemizedlist mark="bullet" spacing="normal">
<listitem><para>Sort all cells inside the window by their absolute square value</para></listitem>
<listitem><para>Take out the k-th value of the sorted list. This value serves as an estimate for the local noise level</para></listitem>
<listitem><para>Apply a scaling factor to the noise estimate</para></listitem>
<listitem><para>Compare the scaled estimated noise value against the CUT</para></listitem>
<listitem><para>Decide whether the CUT is a valid target</para></listitem>
</itemizedlist>
<para>Especially in the field of high-resolution radar, big window sizes are required, because large and widespread targets will easily occupy multiple window cells. The complete sortation of the whole window is not a very efficient solution. Only a single value of the sorted list is of interest, while all other values are discarded. Furthermore, when evaluating neighboring CUTs, the previously sorted list can be used as starting point.</para>
<para>Several optimizations of the algorithm aim at these specific sortation characteristics. For instance, a &#x0201C;k-th maximum search&#x0201D; can be performed which finds the greatest value and removes it from the set. This step is repeated until the k-th value has been found [<link linkend="ch07_B8">8</link>]. Another efficient realization uses a sliding window approach which keeps a sorted list in memory [<link linkend="ch07_B9">9</link>]. Now, when moving the window one step further, the insertion of a single value requires at most N comparisons.</para>
<para>Besides, if one is only interested in the decision result, the complete sortation of the list can be bypassed and the detection step can be performed in a &#x0201C;rank-only&#x0201D; manner [<link linkend="ch07_B10">10</link>]. Therefore, the inverse threshold is applied to the CUT and the result is compared to each cell inside the window. The binary comparison results, i.e. 1 if the value is bigger &#x02013; 0 if not, can be summed up to get a rank. Only if the rank is greater than k, the CUT is considered as valid detection. This approach is depicted in <link linkend="F7-5">Figure <xref linkend="F7-5" remap="7.5"/></link>.</para>
<fig id="F7-5" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F7-5">Figure <xref linkend="F7-5" remap="7.5"/></link></label>
<caption><para>Rank-only OS-CFAR implementation.</para></caption>
<graphic xlink:href="graphics/ch07_fig005.jpg"/>
</fig>
<para>In contrast to a complete sortation, this algorithm depends only on N comparisons. The complexity is thus linear for growing window sizes. The target decision result is exactly the same, i.e. there is no performance loss. The only disadvantage is the lack of the k-th value, which is unknown in the rank-only case. This value can serve as an estimate for the local noise level and can be required by subsequent signal processing blocks. A supplementary estimation of this value can be considered, e.g. the mean value of all cells which have been classified as noise.</para>
</section>
<section class="lev3" id="sec7-2-3-3">
<title>Non-Coherent Integration (NCI)</title>
<para>Even though the detection takes place before the angular processing, the data of multiple receiving channels can be used to further improve detection performance. An integration of all channels prior to the detection step turns out to be beneficial, assuming that the noise components are independent and identically distributed (i.i.d.). However, the phase relationship of the signals between adjacent channels is not known prior to the angle estimation and can take any value. When summing up the complex values of each channel, the signals can interfere either constructively or destructively. In order to avoid a cancellation of the signal power, the integration takes place in the power spectra, which is also known as non-coherent integration (NCI).</para>
<para>In the following, the noise components are modeled as additive-white Gaussian noise which means that a zero-mean normal distributed signal n[t] is added to the received signal s[t].</para>
<para>It can be shown, that both the real and imaginary parts of the noise components follow a zero-mean normal distribution after transformation into the frequency space [<link linkend="ch07_B11">11</link>]. The variance of N[k] depends on the input variance as well as on the length of the input signal, i.e. the length of the FFT. When taking longer signal sequences, the signal-to-noise ratio can be improved (so-called processing gain).</para>
<para><graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="graphics/ch07_ueq2.jpg"/></para>
<para>The power spectrum can be calculated by summing up the squared values of real and imaginary part. As a sum of two squared, i.i.d. Gaussian variables, it results a chi-squared distribution &#x003C7;<superscript>2</superscript>(<emphasis>n</emphasis>) with <emphasis>n</emphasis> = 2 degrees of freedom for the squared magnitude &#x0007C;<emphasis>N</emphasis>[<emphasis>k</emphasis>]&#x0007C;<superscript>2</superscript>:</para>
<para><graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="graphics/ch07_ueq3.jpg"/></para>
<para>When summing up multiple receiving channels, i.e. multiple i.i.d. random variables, the result will again be chi-squared distributed but with a higher degree of freedom.</para>
<para><graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="graphics/ch07_ueq4.jpg"/></para>
<fig id="F7-6" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F7-6">Figure <xref linkend="F7-6" remap="7.6"/></link></label>
<caption><para>Additive white Gaussian noise model.</para></caption>
<graphic xlink:href="graphics/ch07_fig006.jpg"/>
</fig>
<para>In contrast to the FFT, the mean value of the noise power scales linearly with the number of channels in the same way the signal power does. Therefore, the signal to noise ratio is not improved. However, the variance is decreasing which has an effect on the possibility of false alarm. An example measurement is depicted in <link linkend="F7-7">Figure <xref linkend="F7-7" remap="7.7"/></link>, comparing the noise distribution of one channel and the distribution after the integration of 32 channels. It can be observed that for the same threshold level, a lower probability of false alarm can be achieved due to the lower variance of the blue histogram. The other way round, for the same probability of false alarm, a lower threshold level can be used, which increases the detection rate.</para>
<fig id="F7-7" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F7-7">Figure <xref linkend="F7-7" remap="7.7"/></link></label>
<caption><para>Histogram of a noise measurement showing the chi-squared distribution before and after NCI.</para></caption>
<graphic xlink:href="graphics/ch07_fig007.jpg"/>
</fig>
</section>
</section>
<section class="lev2" id="sec7-2-4">
<title>7.2.4 Angle Estimation</title>
<para>In Subsection 7.2.1 the measurement principle of antenna arrays has been introduced briefly. In general, the angle estimation is based on the measured phase offset <emphasis>&#x003D5;<subscript>n</subscript></emphasis> between different antenna positions (cf. <link linkend="F7-8">Figure <xref linkend="F7-8" remap="7.8"/></link>).</para>
<fig id="F7-8" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F7-8">Figure <xref linkend="F7-8" remap="7.8"/></link></label>
<caption><para>Uniform linear antenna array with spacing <emphasis>d</emphasis> and resulting steering vector <emphasis>v</emphasis>(&#x003B1;).</para></caption>
<graphic xlink:href="graphics/ch07_fig008.jpg"/>
</fig>
<para>Since the antenna positions are known, a conclusion may be drawn on the direction of arrival. For this purpose, the introduction of a steering vector <emphasis>v</emphasis>(&#x003B1;) can be useful. This vector contains the expected phase offsets, equivalent to an ideal incident signal from a certain angle &#x003B1;:</para>
<para><graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="graphics/ch07_ueq5.jpg"/></para>
<para>In the case of a linear array with <emphasis>N</emphasis> elements, the steering vector is simply constructed from the distance <emphasis>d</emphasis> between two antenna elements, the wavelength &#x003BB; and the incident angle &#x003B1;. The phase of the first element is normalized to zero and the amplitudes are assumed to be all equal one:</para>
<para><graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="graphics/ch07_ueq6.jpg"/></para>
<para>Similar to the spectral estimation, different classes of algorithms can be identified. Some procedures like the Bartlett beamformer just calculate a weighted sum of the received signal vector <emphasis role="strong"><emphasis>x</emphasis></emphasis>. This is done for each possible DOA and results in an angular spectrum:</para>
<para><graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="graphics/ch07_ueq7.jpg"/></para>
<para>The magnitude <emphasis>P</emphasis> represents the correlation between the received signal and the steering vector. A subsequent maximum search extracts the estimated target angle. The separation of two targets is also possible by simply extracting the two largest peaks, however attention has to be paid to the occurrence of sidelobes. Furthermore, the width of the mainlobe determines the separability which is often not satisfactory.</para>
<para>More sophisticated methods to mention are the Capon beamformer, also known as minimum variance estimator, which achieves a better angular separability. Another important class is known as subspace based methods, incorporating MUSIC and ESPRIT as the most prominent examples. Finally, maximum-likelihood estimators exist, which need to know the model order in advance, i.e. the number of targets. However, if the targets have already been separated by different ranges and velocities, the estimation of the model order is feasible because only few targets will be present, in most of the cases only one. A comprehensive overview of existing methods and algorithms is given in [<link linkend="ch07_B2">2</link>].</para>
</section>
</section>
<section class="lev1" id="sec7-3">
<title>7.3 Hardware Accelerators for MIMO Radar Systems</title>
<section class="lev2" id="sec7-3-1">
<title>7.3.1 Basic Structure of a Streaming Hardware Accelerator</title>
<para><link linkend="F7-9">Figure <xref linkend="F7-9" remap="7.9"/></link> shows the overview of a hardware-accelerator for high-resolution MIMO radar sensors. Obviously, a high degree of parallelism can be observed, due to the pair wise independence of the receiving channels. Up to the NCI step, each data stream is processed for its own.</para>
<fig id="F7-9" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F7-9">Figure <xref linkend="F7-9" remap="7.9"/></link></label>
<caption><para>Architecture of a streaming hardware accelerator.</para></caption>
<graphic xlink:href="graphics/ch07_fig009.jpg"/>
</fig>
<para>The spectral analysis is carried out with the help of a FFT, whose efficient implementation in streaming applications is well understood. A critical step in the design process of this block is the specification of the maximum FFT lengths, as this parameter determines essentially resource usage. Furthermore, when using fixed-point arithmetic, the word length and data scaling behavior can have major effects on performance and efficiency. This aspect is investigated in Subsection 7.3.2.</para>
<para>Regarding the two-dimensional FFT, a concept for data storage and transfer has to be developed. The storage of a complete chirp sequence, i.e. a set of K ramps is required in order to perform the second dimension FFT processing. This dictates mainly the size of the memory, which grows rapidly due to the influence of further key parameters. In general, increasing the resolution in range, in velocity or in the angular domain, also increases the required memory size. It turns out, that this size exceeds rapidly several MBytes. Thus, the usage of large DRAMs becomes necessary since the size of an on-chip SRAM cache memory is not sufficient anymore. An analysis for different modulation and system parameters can be found in [<link linkend="ch07_B12">12</link>].</para>
<para>Regarding the throughput of the memory, the addressing scheme affects heavily the performance in the case of a DRAM. The row opening and closing delays, as well as the read and write transfers can be completely hidden due to the streaming nature of the application. The problem of transforming large two-dimensional matrices with the help of DRAMs has been investigated in [<link linkend="ch07_B13">13</link>]. An addressing scheme suitable for the application to chirp-sequence processing has been derived in [<link linkend="ch07_B14">14</link>].</para>
<para>Depending on the type of threshold estimation, the calculation can be a simple mean value in the case of CA-CFAR, but it can also become very costly in the case of a sorted list (OS-CFAR). Subsection 7.3.3 presents an efficient architecture based on the rank-only OS-CFAR which avoids a complete sorting of the values inside the window.</para>
</section>
<section class="lev2" id="sec7-3-2">
<title>7.3.2 Pipelined FFT Accelerator</title>
<para>For streaming applications, pipelined FFT architectures provide a very high throughput. The usage of dedicated hardware accelerators is especially useful for real-time applications, where a high degree of capacity utilization can be achieved. Many different implementation forms have been reported in the past decades. One important parameter is the used butterfly architecture, which can be based on a Radix-2, Radix-4 or Split-Radix decomposition, just to mention a few. In practice, multiple butterflies are cascaded to achieve longer transform lengths. Another important design decision is the use of a single-path vs. multi-path implementation.</para>
<para>A straight forward implementation of the Cooley and Tukey FFT algorithm is shown in <link linkend="F7-10">Figure <xref linkend="F7-10" remap="7.10"/></link> [<link linkend="ch07_B15">15</link>]. It is realized with Radix-2 butterflies which are combined in a decimate-in-frequency (DIF) decomposition. This architecture can process one sample per clock cycle and needs log <emphasis>N</emphasis> - 1 multipliers. Furthermore, several buffer memories are required which have the total size 3<emphasis>N</emphasis>/2.</para>
<fig id="F7-10" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F7-10">Figure <xref linkend="F7-10" remap="7.10"/></link></label>
<caption><para>Radix-2 FFT implementation based on a multi-path delay commutator (MDC) pipeline.</para></caption>
<graphic xlink:href="graphics/ch07_fig0010.jpg"/>
</fig>
<para>When analyzing the data flow, it turns out that the butterflies and the multipliers are only used half of the time. Furthermore, only half of the memories store valid data at the same time. Several optimizations have been proposed in order to increase the utilization of the multipliers and memories. For example when using feedback networks, the efficiency in terms of memory usage can be improved. This class of pipeline architectures is known as single-path delay feedback (SDF) network (cf. <link linkend="F7-11">Figure <xref linkend="F7-11" remap="7.11"/></link>) [<link linkend="ch07_B16">16</link>].</para>
<fig id="F7-11" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F7-11">Figure <xref linkend="F7-11" remap="7.11"/></link></label>
<caption><para>Radix-2 FFT implementation based on a SDF pipeline.</para></caption>
<graphic xlink:href="graphics/ch07_fig0011.jpg"/>
</fig>
<para>When using Radix-4 butterflies, the number of multipliers can be reduced as well, at the cost of more complicated butterflies requiring more dedicated adders.</para>
<para>Another FFT algorithm for pipelined implementations has been proposed by He and Torkelson [<link linkend="ch07_B17">17</link>] and is known as Radix-2<superscript>2</superscript> algorithm. This optimization simplifies the traditional Radix-2 FFT decomposition by considering two butterfly stages at once. When modifying some of the twiddle factors, all multiplications after the first stage can be omitted or rather transformed into a trivial multiplication by &#x000B1;j. Adopting this modification to the presented Radix-2 SDF architecture, half of the multipliers can be saved. <link linkend="T7-1">Table <xref linkend="T7-1" remap="7.1"/></link> compares different implementations.</para>
<table-wrap position="float" id="T7-1">
<label><link linkend="T7-1">Table <xref linkend="T7-1" remap="7.1"/></link></label>
<caption><para>Resource usage of different pipelined FFT implementations [<link linkend="ch07_B17">17</link>]</para></caption>
<table cellspacing="5" cellpadding="5" frame="hsides" rules="groups">
<thead>
<tr>
<td valign="bottom" align="left"></td>
<td valign="bottom" align="center">No. of Multipliers</td>
<td valign="bottom" align="center">No. of Adders</td>
<td valign="bottom" align="center">Memory Size</td>
</tr>
</thead>
<tbody>
<tr>
<td valign="top" align="left">Radix-2 MDC</td>
<td valign="top" align="center">2(log <subscript>4</subscript><emphasis>N</emphasis> - 1)</td>
<td valign="top" align="center">4log <subscript>4</subscript><emphasis>N</emphasis></td>
<td valign="top" align="center">3N/2 - 1</td>
</tr>
<tr>
<td valign="top" align="left">Radix-2 SDF</td>
<td valign="top" align="center">2(log <subscript>4</subscript><emphasis>N</emphasis> - 1)</td>
<td valign="top" align="center">4log <subscript>4</subscript><emphasis>N</emphasis></td>
<td valign="top" align="center">N - 1</td>
</tr>
<tr>
<td valign="top" align="left">Radix-4 SDF</td>
<td valign="top" align="center">log <subscript>4</subscript><emphasis>N</emphasis> - 1</td>
<td valign="top" align="center">8log <subscript>4</subscript><emphasis>N</emphasis></td>
<td valign="top" align="center">N - 1</td>
</tr>
<tr>
<td valign="top" align="left">Radix-2<superscript>2</superscript> SDF</td>
<td valign="top" align="center">log <subscript>4</subscript><emphasis>N</emphasis> - 1</td>
<td valign="top" align="center">4log <subscript>4</subscript><emphasis>N</emphasis></td>
<td valign="top" align="center">N - 1</td>
</tr>
</tbody>
</table>
</table-wrap>
<para>In the case of multiple parallel data streams, the utilization of the complex adders and multipliers can be further increased to 100% by using a modified MDC architecture with a proper scheduling of the different data streams [<link linkend="ch07_B18">18</link>]. In the case of MIMO systems this approach outperforms the Radix-2<superscript>2</superscript> SDF implementations which seem to be superior in single channel applications.</para>
<para>Even though not optimal in terms of butterfly utilization, a Radix-2 based architecture provided by the Xilinx IP Core is used for the presented MIMO radar system [<link linkend="ch07_B19">19</link>]. The principal reason is the faster implementation and integration time. The efficiency in terms of resource usage can be improved in future work.</para>
</section>
<section class="lev2" id="sec7-3-3">
<title>Fixed-Point Noise</title>
<para>In digital signal processing systems, all computations are carried out with discrete values. The majority of arithmetic units use fixed word lengths which always have a limited accuracy. Consequently some amount of quantization noise is added for each rounding operation. Often floating-point values are used, because they work very well in most environments, regardless of the input signal characteristics. However, if the dynamic range of the input signal is known to a certain extent, fixed-point arithmetic can considerably reduce the resource usage. Many FFT accelerators use integer operations and various models for the engendered quantization noise have been developed.</para>
<para>The quantization noise due to truncation or rounding after a multiplication is often modeled as additive white noise source with a uniform distribution. Even though not accurate under all circumstances, this model is appropriate if the input signal has a sufficiently large bandwidth and amplitude [<link linkend="ch07_B20">20</link>]. It can thus be applied to a radar system, due to the wide bandwidth background noise, which is always visible.</para>
<para>The quantization noise variance <emphasis>&#x003C3;</emphasis><superscript>2</superscript> in the case of a uniform distribution can be derived for a simple truncation [<link linkend="ch07_B21">21</link>]. The least significant bit (LSB) after the truncation is denoted by <emphasis>q</emphasis> = 2<superscript>-<emphasis>b</emphasis></superscript>, where <emphasis>b</emphasis> is the resulting integer word length and <emphasis>k</emphasis> the number of truncated bits:</para>
<para><graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="graphics/ch07_ueq8.jpg"/></para>
<para>During the computation of the FFT, the variables grow with each butterfly stage, resulting from the addition inside the butterflies. The complex multiplication does not scale up the intermediate values, because they perform just a rotation in the complex plane and the twiddle factors are all normalized. Thus, the resulting word length of the FFT depends on the input data and grows by 1 bit with each stage. In order to maintain a certain word length, the values can be scaled after each stage at the cost of additional quantization noise. A complete scaling of the input signal is disadvantageous and engenders an even higher level of quantization noise [<link linkend="ch07_B22">22</link>].</para>
<para>Furthermore, a quantization error is introduced after the multiplication, because the resulting word length is cut down by half and also the twiddle factors are represented with limited accuracy. However, it turns out that the coefficient errors are less severe than the round-off errors if the same word length is used for both the coefficients and signals [<link linkend="ch07_B22">22</link>].</para>
<para>The following analysis is based on [<link linkend="ch07_B22">22</link>], and only the most severe round-off errors are considered. The used noise model applies to a Radix-2 decimation-in-frequency butterfly, which is used by the presented system. Furthermore, the signals are not scaled directly after the addition, but only after the multiplication. Therefore, only one noise source is present for each butterfly output. For the sake of simplicity, the error variance for both outputs is considered equal, even though only one output is the result of a multiplication. This approximation acts as an upper bound because the real output variance after the addition and the truncation will be slightly lower.</para>
<para>The variance of the quantization error <emphasis>&#x003C3;<subscript>e</subscript></emphasis><superscript>2</superscript> after the multiplication is derived by decomposing the complex operation into four real multiplications, each truncated individually. In this case, the uniform noise model is applied and the number of truncated bits <emphasis>k</emphasis> is assumed to be sufficiently large:</para>
<para><graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="graphics/ch07_ueq9.jpg"/></para>
<para>The total output variance is then calculated by adding all error variances contributing to the respective output. When observing the butterfly graph, a tree-like structure leads to each output, incorporating <emphasis>N</emphasis> - 1 butterfly nodes. However, if the signal is scaled after each stage, the accumulated noise decreases just as well. In this case, the total noise variance <emphasis>&#x003C3;<subscript>N</subscript></emphasis><superscript>2</superscript> equals to:</para>
<para><graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="graphics/ch07_ueq10.jpg"/></para>
<para>Remarkably, the total noise variance is independent of the length of the FFT. However, when examining the signal-to-noise ratio (SNR) at the output, it turns out that the SNR is decreasing for longer FFT lengths, because the output is a scaled version of the FFT. Considering a random input signal, with all values i.i.d. and a variance <emphasis>&#x003C3;<subscript>s</subscript></emphasis><superscript>2</superscript>, then the variance for each output of the FFT is scaled by <inline-graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="graphics/ch07_inline2.jpg"/>:</para>
<para><graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="graphics/ch07_ueq11.jpg"/></para>
<para>Composing the signal-to-noise ratio at the output leads to the expected result:</para>
<para><graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="graphics/ch07_ueq12.jpg"/></para>
<para>Consequently, if the FFT length <emphasis>N</emphasis> is doubled, the word length has to be increased by half a bit also in order to maintain a constant signal-to- quantization-noise ratio (SQNR). To illustrate the influence of the word length, an exemplary radar measurement, processed with a scaled fixed-point FFT is shown in <link linkend="F7-12">Figure <xref linkend="F7-12" remap="7.12"/></link>.</para>
<fig id="F7-12" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F7-12">Figure <xref linkend="F7-12" remap="7.12"/></link></label>
<caption><para>Effects of different word lengths on the amount of quantization noise.</para></caption>
<graphic xlink:href="graphics/ch07_fig0012.jpg"/>
</fig>
<para>Different word lengths have been used in order to illustrate the effect of the introduced quantization noise. The FFT is implemented in a Radix-2 DIF decomposition. The values are rounded and scaled after each stage. The black curve has been processed with double precision floating-point and acts as reference.</para>
<para>It can be observed that the fixed point versions lie all above the reference. The reason is that the quantization noise power is added to the signal and the amount of quantization noise should be the lowest for the floating point version. Furthermore, it can be observed that the noise floor increases significantly in regions with low signal power. The difference for 1bit word length is about 6dB, which correlates with the derived noise model in the case of a truncation or rounding operation. In regions with more signal power, for instance around 5m target range, the quantization noise effect is less severe, due to the higher SQNR.</para>
<para>For a radar system application, it should be ensured that the added quantization noise does not deteriorate the total signal-to-noise ratio. The SNR is a key parameter for reliable target detection. Noise components arising from fixed-point computations should be clearly below the system noise floor in any case. It is important to consider the processing gain when designing an optimal word length, because the noise level drops for larger FFT lengths. Thus, the maximum possible FFT length can be considered as worst-case scenario when designing the word length of the FFT.</para>
</section>
<section class="lev2" id="sec7-3-4">
<title>7.3.3 Rank-Only OS-CFAR Accelerator</title>
<para>The CFAR processing step requires the use of a local window for threshold calculation. For a streaming application, a sliding window exploits the locality of the data and can be used easily without excessive memory transfers. It is implemented with the help of a shift register. Current FPGA devices offer several different building blocks for this purpose, namely Block RAMs, lookup tables (LUTs) and ordinary flip-flops. For the presented OS-CFAR architecture all signal values inside the window need to be accessed at once. Hence, a data tap is required at each position of the shift register and solely flip-flops can be used for its realization.</para>
<para>As described in subsection 7.2.3, the rank-only detection step depends on N comparisons, a binary sum and a comparison for the decision. Each register of the sliding window is routed to a dedicated comparator, whose second input is fed by the CUT with a threshold value applied. The comparison result is routed to a binary adder with N inputs. Several LUTs are cascaded for this step, which can impose an upper limit to the clock frequency. In order to maximize performance, it is implemented in two steps, i.e. the lower and the upper half of the window is summed up separately before the final rank is computed.</para>
<fig id="F7-13" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F7-13">Figure <xref linkend="F7-13" remap="7.13"/></link></label>
<caption><para>Architecture of the rank-only OS-CFAR accelerator.</para></caption>
<graphic xlink:href="graphics/ch07_fig0013.jpg"/>
</fig>
<para>The described architecture has been implemented on a Virtex-7 FPGA and the engendered resource usage has been analyzed. For window sizes up to 128, an operating frequency of 250 MHz could be achieved by this implementation. The LUT usage depending on the number of channels is depicted in <link linkend="F7-14">Figure <xref linkend="F7-14" remap="7.14"/></link>.</para>
<fig id="F7-14" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F7-14">Figure <xref linkend="F7-14" remap="7.14"/></link></label>
<caption><para>Resource usage against number of channels for a constant window size (128 cells).</para></caption>
<graphic xlink:href="graphics/ch07_fig0014.jpg"/>
</fig>
<para>As expected the CFAR-processing part (greenish blue color in <link linkend="F7-14">Figure <xref linkend="F7-14" remap="7.14"/></link>) is practically independent from the number of channels, because the NCI step is performed in advance. The NCI step by itself scales approximately with log <emphasis>N</emphasis>, which is a result of the used tree structure. For a number of channels above 32, the raw data buffer which compensates the pipeline delay consumes more LUTs than the CFAR processing part. It grows linearly with the number of channels and is thus the dominating part for large channel numbers. The usage of a dedicated Block RAM can be considered if the number of LUTs is scarce.</para>
<fig id="F7-15" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F7-15">Figure <xref linkend="F7-15" remap="7.15"/></link></label>
<caption><para>Resource usage against window size for different number of channels.</para></caption>
<graphic xlink:href="graphics/ch07_fig0015.jpg"/>
</fig>
<para>The scaling behavior in relation to the window size turns out to be nearly linear (cf. <link linkend="F7-15">Figure <xref linkend="F7-15" remap="7.15"/></link>). It is clearly dominated by the N comparators as well as the data buffer equalizing the pipeline delay. The number of channels has a much lower effect on LUT resource usage as the window size. For instance, the resource usage is within the same order of magnitude when comparing one and 32 channels. The architecture can be considered as very efficient for large channel numbers and is thus suitable for MIMO systems. It can be concluded that the usage of NCI before the actual CFAR processing is beneficial in two ways. It improves detection performance and reduces resource requirements at the same time.</para>
</section>
</section>
<section class="lev1" id="sec7-4">
<title>7.4 Conclusion</title>
<para>A data processing architecture for future automotive MIMO radar systems has been presented in this chapter. Beside the algorithmic background information, a focus has been set on the target detection with the help of CFAR processing. Attention has been paid to real-time requirements as well as resource usage. The step between the target detection and the subsequent angular processing could be identified as a good data interface between different processing units, each optimized for different requirements on control flow complexity and data throughput.</para>
<para>Furthermore, a FPGA based implementation of the raw data preprocessing chain has been presented and investigated. As crucial points in the design procedure, several parameters could be identified. Especially, the maximum length of the FFTs and the expected dynamic range of the signals determine basically the resource usage in terms of logic elements and memory size. These parameters have a strong dependency on the used modulation waveform, which is why the design of the signal processing architecture has to be integrated into the overall radar system design process. With the help of model-based design space exploration methods, the estimation of resource requirements is feasible, even in an early development stage. The derivation of appropriate models from the realized hardware implementation will be part of future work.</para>
<para>The used design methodology which evolved from the DESERVE project turned out to be very efficient in terms of performance and development time. The usage of heterogeneous platforms, even in an early prototype system, made it possible to handle the tremendous amount of data in real-time. Thanks to the integration with established tools like ADTF and Matlab, the system is ready to be integrated into a test vehicle with a multiplicity of sensors devices. Finally, the early availability of such high resolution automotive radar sensors can be an important step on the way towards automated driving.</para>
</section>
<section class="lev1" id="sec7-5">
<title>References</title>
<orderedlist numeration="arabic" continuation="restarts" spacing="normal">
<listitem><para><anchor id="ch07_B1"/>V. Winkler. &#x0201C;Range Doppler detection for automotive FMCW radars.&#x0201D; <emphasis>IEEE 37th European Microwave Conference (EuMC),</emphasis> Munich, Germany, 2007. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=V%2E+Winkler%2E+%22Range+Doppler+detection+for+automotive+FMCW+radars%2E%22+IEEE+37th+European+Microwave+Conference+%28EuMC%29%2C+Munich%2C+Germany%2C+2007%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch07_B2"/>H. L. van Trees. &#x0201C;Optimum Array Processing (Part IV of Detection, Estimation, and Modulation Theory)&#x0201D; <emphasis>John Wiley &#x00026; Sons,</emphasis> 2004. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=H%2E+L%2E+van+Trees%2E+%22Optimum+Array+Processing+%28Part+IV+of+Detection%2C+Estimation%2C+and+Modulation+Theory%29%22+John+Wiley+%26+Sons%2C+2004%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch07_B3"/>U. Nickel. &#x0201C;Angular superresolution with phased array radar: a review of algorithms and operational constraints.&#x0201D; <emphasis>IEE Proceedings F:</emphasis> <emphasis>Communications, Radar and Signal Processing</emphasis> 134.1 (1987): 53&#x02013;59. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=U%2E+Nickel%2E+%22Angular+superresolution+with+phased+array+radar%3A+a+review+of+algorithms+and+operational+constraints%2E%22+IEE+Proceedings+F%3A+Communications%2C+Radar+and+Signal+Processing+134%2E1+%281987%29%3A+53-59%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch07_B4"/>D. Kellner, M. Barjenbruch, J. Klappstein, J. Dickmann and K. Dietmayer. &#x0201C;Wheel extraction based on micro doppler distribution using high-resolution radar.&#x0201D; <emphasis>IEEE MTT-S International Conference on Microwaves for Intelligent Mobility (ICMIM),</emphasis> Heidelberg, Germany, 2015. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=D%2E+Kellner%2C+M%2E+Barjenbruch%2C+J%2E+Klappstein%2C+J%2E+Dickmann+and+K%2E+Dietmayer%2E+%22Wheel+extraction+based+on+micro+doppler+distribution+using+high-resolution+radar%2E%22+IEEE+MTT-S+International+Conference+on+Microwaves+for+Intelligent+Mobility+%28ICMIM%29%2C+Heidelberg%2C+Germany%2C+2015%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch07_B5"/>M. Bouchard, D. Gingras, Y. De Villers and D. Potvin. &#x0201C;High resolution spectrum estimation of FMCW radar signals.&#x0201D; <emphasis>IEEE 7th SP Workshop on Statistical Signal and Array Processing,</emphasis> Qu&#x00E9;bec, Canada, 1994. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=M%2E+Bouchard%2C+D%2E+Gingras%2C+Y%2E+De+Villers+and+D%2E+Potvin%2E+%22High+resolution+spectrum+estimation+of+FMCW+radar+signals%2E%22+IEEE+7th+SP+Workshop+on+Statistical+Signal+and+Array+Processing%2C+Qu%E9bec%2C+Canada%2C+1994%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch07_B6"/>M. A. Abou-Khousa, D. L. Simms, S. Kharkovsky and R. Zoughi. &#x0201C;High-resolution short-range wideband FMCW radar measurements based on MUSIC algorithm.&#x0201D; <emphasis>IEEE Instrumentation and Measurement Technology Conference (I2MTC),</emphasis> Singapore, 2009. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=M%2E+A%2E+Abou-Khousa%2C+D%2E+L%2E+Simms%2C+S%2E+Kharkovsky+and+R%2E+Zoughi%2E+%22High-resolution+short-range+wideband+FMCW+radar+measurements+based+on+MUSIC+algorithm%2E%22+IEEE+Instrumentation+and+Measurement+Technology+Conference+%28I2MTC%29%2C+Singapore%2C+2009%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch07_B7"/>J. B. Billingsley et al. &#x0201C;Statistical analyses of measured radar ground clutter data.&#x0201D; <emphasis>IEEE Transactions on</emphasis> <emphasis>Aerospace and Electronic Systems</emphasis> 35.2 (1999): 579&#x02013;593. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=J%2E+B%2E+Billingsley+et+al%2E+%22Statistical+analyses+of+measured+radar+ground+clutter+data%2E%22+IEEE+Transactions+on+Aerospace+and+Electronic+Systems+35%2E2+%281999%29%3A+579-593%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch07_B8"/>B. Magaz and M. L. Bencheikh. &#x0201C;An efficient FPGA implementation of the OS-CFAR processor.&#x0201D; <emphasis>IEEE International Radar Symposium (IRS),</emphasis> Wroclaw, Poland, 2008. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=B%2E+Magaz+and+M%2E+L%2E+Bencheikh%2E+%22An+efficient+FPGA+implementation+of+the+OS-CFAR+processor%2E%22+IEEE+International+Radar+Symposium+%28IRS%29%2C+Wroclaw%2C+Poland%2C+2008%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch07_B9"/>R. Perez-Andrade, R. Cumplido, C. Feregrino-Uribe and F. M. Del Campo. &#x0201C;A versatile hardware architecture for a constant false alarm rate processor based on a linear insertion sorter.&#x0201D; <emphasis>Digital Signal Processing</emphasis> 20.6 (2010): 1733&#x02013;1747. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=R%2E+Perez-Andrade%2C+R%2E+Cumplido%2C+C%2E+Feregrino-Uribe+and+F%2E+M%2E+Del+Campo%2E+%22A+versatile+hardware+architecture+for+a+constant+false+alarm+rate+processor+based+on+a+linear+insertion+sorter%2E%22+Digital+Signal+Processing+20%2E6+%282010%29%3A+1733-1747%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch07_B10"/>M. R. Bales, T. Benson, R. Dickerson, D. Campbell, R. Hersey and E. Culpepper. &#x0201C;Real-time implementations of ordered-statistic CFAR.&#x0201D; <emphasis>IEEE Radar Conference (RadarCon),</emphasis> Atlanta, USA, 2012. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=M%2E+R%2E+Bales%2C+T%2E+Benson%2C+R%2E+Dickerson%2C+D%2E+Campbell%2C+R%2E+Hersey+and+E%2E+Culpepper%2E+%22Real-time+implementations+of+ordered-statistic+CFAR%2E%22+IEEE+Radar+Conference+%28RadarCon%29%2C+Atlanta%2C+USA%2C+2012%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch07_B11"/>M. A. Richards. &#x0201C;The discrete-time Fourier transform and discrete Fourier transform of windowed stationary white noise.&#x0201D; <emphasis>Georgia Institute of Technology, Tech. Rep,</emphasis> 2007. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=M%2E+A%2E+Richards%2E+%22The+discrete-time+Fourier+transform+and+discrete+Fourier+transform+of+windowed+stationary+white+noise%2E%22+Georgia+Institute+of+Technology%2C+Tech%2E+Rep%2C+2007%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch07_B12"/>F. Meinl, M. Kunert and H. Blume. &#x0201C;Massively parallel signal processing challenges within a driver assistant prototype framework: first case study results with a novel MIMO-radar.&#x0201D; <emphasis>IEEE International Conference on Embedded Computer Systems: Architectures, Modeling, and Simulation (SAMOS),</emphasis> Samos, Greece, 2014. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=F%2E+Meinl%2C+M%2E+Kunert+and+H%2E+Blume%2E+%22Massively+parallel+signal+processing+challenges+within+a+driver+assistant+prototype+framework%3A+first+case+study+results+with+a+novel+MIMO-radar%2E%22+IEEE+International+Conference+on+Embedded+Computer+Systems%3A+Architectures%2C+Modeling%2C+and+Simulation+%28SAMOS%29%2C+Samos%2C+Greece%2C+2014%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch07_B13"/>S. Langemeyer, P. Pirsch and H. Blume. &#x0201C;Using SDRAMs for two-dimensional accesses of long 2<superscript>n</superscript> &#x000D7; 2<superscript>m</superscript>-point FFTs and transposing.&#x0201D; <emphasis>IEEE International Conference on Embedded Computer Systems: Architectures, Modeling, and Simulation (SAMOS),</emphasis> Samos, Greece, 2011. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=S%2E+Langemeyer%2C+P%2E+Pirsch+and+H%2E+Blume%2E+%22Using+SDRAMs+for+two-dimensional+accesses+of+long+2n+x+2m-point+FFTs+and+transposing%2E%22+IEEE+International+Conference+on+Embedded+Computer+Systems%3A+Architectures%2C+Modeling%2C+and+Simulation+%28SAMOS%29%2C+Samos%2C+Greece%2C+2011%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch07_B14"/>F. Meinl, E. Schubert, M. Kunert and H. Blume. &#x0201C;Realtime FPGA-based processing unit for a high-resolution automotive MIMO radar platform.&#x0201D; <emphasis>IEEE 12th European Radar Conference (EuRAD),</emphasis> Paris, France, 2015. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=F%2E+Meinl%2C+E%2E+Schubert%2C+M%2E+Kunert+and+H%2E+Blume%2E+%22Realtime+FPGA-based+processing+unit+for+a+high-resolution+automotive+MIMO+radar+platform%2E%22+IEEE+12th+European+Radar+Conference+%28EuRAD%29%2C+Paris%2C+France%2C+2015%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch07_B15"/>L. R. Rabiner and B. Gold. &#x0201C;Theory and application of digital signal processing.&#x0201D; <emphasis>Prentice-Hall, Inc.,</emphasis> 1975. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=L%2E+R%2E+Rabiner+and+B%2E+Gold%2E+%22Theory+and+application+of+digital+signal+processing%2E%22+Prentice-Hall%2C+Inc%2E%2C+1975%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch07_B16"/>E. H. Wold and A. M. Despain. &#x0201C;Pipeline and parallel-pipeline FFT processors for VLSI implementations.&#x0201D; <emphasis>IEEE Transactions on Computers</emphasis> 100.5 (1984): 414&#x02013;426. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=E%2E+H%2E+Wold+and+A%2E+M%2E+Despain%2E+%22Pipeline+and+parallel-pipeline+FFT+processors+for+VLSI+implementations%2E%22+IEEE+Transactions+on+Computers+100%2E5+%281984%29%3A+414-426%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch07_B17"/>S. He and M. Torkelson. &#x0201C;A new approach to pipeline FFT processor.&#x0201D; <emphasis>IEEE 10th International Parallel Processing Symposium (IPPS),</emphasis> Honolulu, USA, 1996. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=S%2E+He+and+M%2E+Torkelson%2E+%22A+new+approach+to+pipeline+FFT+processor%2E%22+IEEE+10th+International+Parallel+Processing+Symposium+%28IPPS%29%2C+Honolulu%2C+USA%2C+1996%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch07_B18"/>K. J. Yang, S. H. Tsai, and G. C. H. Chuang. &#x0201C;MDC FFT/IFFT processor with variable length for MIMO-OFDM systems.&#x0201D; <emphasis>IEEE Transactions on</emphasis> <emphasis>Very Large Scale Integration (VLSI) Systems</emphasis> 21.4 (2013): 720&#x02013;731. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=K%2E+J%2E+Yang%2C+S%2E+H%2E+Tsai%2C+and+G%2E+C%2E+H%2E+Chuang%2E+%22MDC+FFT%2FIFFT+processor+with+variable+length+for+MIMO-OFDM+systems%2E%22+IEEE+Transactions+on+Very+Large+Scale+Integration+%28VLSI%29+Systems+21%2E4+%282013%29%3A+720-731%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch07_B19"/>Xilinx Inc. &#x0201C;LogiCORE IP FFT.&#x0201D; <emphasis>PG109 v9.0,</emphasis> October 2014. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=Xilinx+Inc%2E+%22LogiCORE+IP+FFT%2E%22+PG109+v9%2E0%2C+October+2014%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch07_B20"/>C. W. Barnes, B. N. Tran and S. H. Leung. &#x0201C;On the statistics of fixed-point roundoff error.&#x0201D; <emphasis>IEEE Transactions on Acoustics, Speech and Signal Processing</emphasis> 33.3 (1985): 595&#x02013;606. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=C%2E+W%2E+Barnes%2C+B%2E+N%2E+Tran+and+S%2E+H%2E+Leung%2E+%22On+the+statistics+of+fixed-point+roundoff+error%2E%22+IEEE+Transactions+on+Acoustics%2C+Speech+and+Signal+Processing+33%2E3+%281985%29%3A+595-606%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch07_B21"/>D. Menard, D. Novo, R. Rocher, F. Catthoor and O. Sentieys. &#x0201C;Quantization mode opportunities in fixed-point system design.&#x0201D; <emphasis>IEEE 18th European Signal Processing Conference (EUSIPCO),</emphasis> Aalborg, Denmark, 2010. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=D%2E+Menard%2C+D%2E+Novo%2C+R%2E+Rocher%2C+F%2E+Catthoor+and+O%2E+Sentieys%2E+%22Quantization+mode+opportunities+in+fixed-point+system+design%2E%22+IEEE+18th+European+Signal+Processing+Conference+%28EUSIPCO%29%2C+Aalborg%2C+Denmark%2C+2010%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch07_B22"/>C. J. Weinstein. &#x0201C;Quantization effects in digital filters.&#x0201D; <emphasis>Lincoln Laboratory, Massachusetts Institute of Technology, Tech. Rep. No. TR-468,</emphasis> 1969. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=C%2E+J%2E+Weinstein%2E+%22Quantization+effects+in+digital+filters%2E%22+Lincoln+Laboratory%2C+Massachusetts+Institute+of+Technology%2C+Tech%2E+Rep%2E+No%2E+TR-468%2C+1969%2E" target="_blank">Google Scholar</ulink></para></listitem>
</orderedlist>
</section>
</chapter>
<chapter class="chapter" id="ch08" label="8" xreflabel="8">
<title>Self-Calibration of Wide Baseline Stereo Camera Systems for Automotive Applications</title>
<para class="section"><emphasis role="strong">Nico Mentzer<superscript><emphasis role="strong">1</emphasis></superscript>, Guillermo Pay&#x000E1; Vay&#x000E1;<superscript><emphasis role="strong">1</emphasis></superscript>, Holger Blume<superscript><emphasis role="strong">1</emphasis></superscript>, Nora von Egloffstein<superscript><emphasis role="strong">2</emphasis></superscript> and Lars Kr&#x000FC;ger<superscript><emphasis role="strong">2</emphasis></superscript></emphasis></para>
<para><superscript>1</superscript>Institute of Microelectronic Systems, Leibniz Universit&#x000E4;t Hannover, Hannover, Germany</para>
<para><superscript>2</superscript>Daimler AG, Vision Enhancement, Ulm, Germany</para>
<section class="lev1" id="sec8-1">
<title>8.1 Introduction</title>
<para>Many car accidents involving vulnerable road users (e.g., pedestrians or cyclists) occur on rural roads after dark, when the driver&#x02019;s visibility is restricted. Thus, the main objective of an augmented night vision is to assist the driver, when driving on side roads (e.g., highways, country roads, or rural roads) with poor or restricted visibility by alerting the driver to potential obstacles ahead.</para>
<para>One possible augmentation of driver vision is to highlight potential obstacles, hazards or vulnerable road users in the live video of the road ahead. A classification of image content is mandatory for this application. As the augmentation enables the driver to grasp the situation quickly, the distance to the detected object has to be calculated by stereo vision to ensure accuracy and speed of assessment.</para>
<para>As the range of distance resolution increases with the baseline of a stereo system, a wide baseline stereo system is necessary to facilitate the augmentation of objects in the desired range. Such a wide-baseline stereo system is sometimes not practicable when rigidly coupled, therefore cameras are mounted individually, e.g., to the windshield. Physically separated cameras increase the camera baseline, however a moving car causes multiple vibration sources [<link linkend="ch08_B1">1</link>] which misalign the images of the separated cameras. Therefore, online camera calibration is indispensable for further image processing. This online camera calibration covers the reconstruction of extrinsic camera parameters, which rely on a sparse pixel correspondence list from the two camera images. The general overview of the algorithmic flow is depicted in <link linkend="F8-1">Figure <xref linkend="F8-1" remap="8.1"/></link>. This chapter will focus on the search for sparse pixel correspondences and extraction of camera calibration parameters.</para>
<fig id="F8-1" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F8-1">Figure <xref linkend="F8-1" remap="8.1"/></link></label>
<caption><para>Algorithmic overview. Input of the processing chain is a stereo image pair, in which sparse pixel correspondences are extracted for online camera calibration. After the calibration, rectification is performed as a preprocessing step for disparity estimation.</para></caption>
<graphic xlink:href="graphics/ch08_fig001.jpg"/>
</fig>
<para>The remaining chapter is set up as follows. Section 8.1 gives an introduction to the self-calibration of wide baseline stereo cameras. After a review of the considered algorithms in Section 8.2, Section 8.3 details the class of image feature detectors and extractors. Section 8.4 highlights the matching of image features. An in-depth description of the bundle adjustment for the camera calibration is given in Section 8.5. In Section 8.6, selected application-specific aspects regarding the algorithmic parameterization are presented. Section 8.7 focuses on algorithmic-specific and hardware-specific implementation details and gives an overview of existing implementations for the extraction of image features.</para>
<section class="lev2" id="sec8-1-1">
<title>8.1.1 Extraction of Image Features</title>
<para>Image feature extraction consists of two steps: the detection of image features and the generation of the descriptor for those feature points, which results in a unique signature as a representation for the detected feature points.</para>
<para>The image feature detection generates a list of distinctive invariant points in images for the feature localization. Especially for camera calibration, a high accuracy of localization is required [<link linkend="ch08_B2">2</link>] in order to ensure a correct functionality of following algorithmic steps, e.g., the rectification of stereo image pairs. Due to the similarity between the views of the scene, a rotation invariance or scale invariance of the feature descriptors supports stability of the matches. This is however, not mandatory, because characteristic points in image pairs of the used stereo camera configuration rarely change their rotation or scale abruptly from left to right stereo image.</para>
<para>In recent years, three different principles for <emphasis role="strong">feature detection</emphasis> have proven employable. <emphasis>Corner</emphasis> or <emphasis>edge detectors</emphasis> extract characteristic corners or edges in an image, which are defined by large gradient changes of image intensities. So called <emphasis>blob detectors</emphasis> determine pixel positions, for which a circular local neighborhood is approximately constant or similar for a defined image property [<link linkend="ch08_B3">3</link>]. Furthermore, <emphasis>affine invariant detectors</emphasis> have been adapted to be invariant to affine transformations, which are approximations to perspective distortions in order to achieve invariance to large changes in viewpoint [<link linkend="ch08_B4">4</link>]. The detected features of the exemplary SIFT-feature detector are shown in <link linkend="F8-2">Figure <xref linkend="F8-2" remap="8.2"/></link>.</para>
<fig id="F8-2" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F8-2">Figure <xref linkend="F8-2" remap="8.2"/></link></label>
<caption><para>Left (<emphasis>top</emphasis>) and right (<emphasis>bottom</emphasis>) image from a stereo camera system showing detected SIFT-image features. Detected feature points of the left/right image are displayed in red/green, matches are displayed in blue. Scale and rotation of the SIFT-features are illustrated by the circle properties.</para></caption>
<graphic xlink:href="graphics/ch08_fig002.jpg"/>
</fig>
<para>The descriptor of an image feature characterizes the detected feature point. Ideally, a <emphasis role="strong">feature descriptor</emphasis> of a world point is unique when compared to other descriptors, but identical for the same world point in different views [<link linkend="ch08_B5">5</link>]. Two representations for descriptors have been established in recent years. So called <emphasis>histogram-based</emphasis> <emphasis>or distribution-based descriptors</emphasis> represent the local neighborhood of a feature point by histograms of local image properties like pixel intensities, color, texture, edges etc. [<link linkend="ch08_B3">3</link>]. Furthermore, <emphasis>binary descriptors</emphasis> represent a local pixel region by storing the binary result of predetermined pixel-level intensity comparisons [<link linkend="ch08_B6">6</link>]. In contrast to distribution-based descriptors, binary descriptors contain a more compact representation of the image patch around a feature.</para>
<para>In general, extracted image features have to cope with various influences. Firstly, there are disruptive effects related to the image quality, e.g., image compression, image noise, image blur due to zoom or exposure. Secondly, there are influences resulting from the content of the stereo image pair, e.g., illumination, difficult viewpoint conditions or occlusions, background clutter and general content changes, perspective changes or changes in the view point of planar and non-planar geometry [<link linkend="ch08_B6">6</link>, <link linkend="ch08_B7">7</link>]. Finally, application specific factors as scale and rotation of objects impact the algorithmic results dealing with image features. Thus, extracted image features have be invariant to as many disturbing influences of the named categories as possible.</para>
<para>The large variety of image feature detectors and descriptors clearly show the manifold approaches to defining and describing characteristic points in images. As S. Gauglitz mentioned before in [<link linkend="ch08_B5">5</link>], &#x0201C;there is no clear-cut definition as to what makes a point interesting. Detection of such points is only an intermediate step in any application&#x0201D;. There is no general answer for the question, which detector or descriptor is performing the best. Therefore, as J. Shi and C. Tomasi postulated in 1994, &#x0201C;the right features are exactly those that make the tracker work best&#x0201D; [<link linkend="ch08_B8">8</link>]. Consequently, &#x0201C;any set of feature points is acceptable, but the result ought to be consistent, e.g., in images that show the same scene, the algorithm should detect the same points.&#x0201D; [<link linkend="ch08_B5">5</link>]. In other words, for each application, the best performing combination of image feature detector and extractor has to be found. Furthermore, application-specific conditions (here: high localization accuracy with low requirements to scale and rotation invariance) aggravate the possibilities of algorithmic combinations.</para>
<para>A survey of existing image feature detectors and descriptors will be given in Section 8.2. A more detailed presentation of an exemplary feature detector and descriptor called SIFT (Scale-Invariant Feature Transform) [<link linkend="ch08_B9">9</link>], which shows good results in this application, will be given in Section 8.3.</para>
</section>
<section class="lev2" id="sec8-1-2">
<title>8.1.2 Matching of Image Features</title>
<para>Matching image features results in a list of pixel correspondences between the left and right input image of the stereo image pair. The main challenge is on the one hand to find as many corresponding pixels as possible while avoiding wrong pixel assignments on the other, even if there are several similar regions in both input images. The assignment of image features to pixel correspondences is based on feature descriptors, which are used to find the maximum similarity between the extracted image features. Depending on the representation of the features (histogram-based or binary descriptor), the similarity is computed by various vector norms for the distance of two matching candidates or the Hamming distance. Furthermore, different matching methods have a significant impact on the resulting correspondence lists [<link linkend="ch08_B3">3</link>].</para>
<para>In the case of global feature matching methods <inline-graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="graphics/ch08_inline1.jpg"/>, two feature points <inline-graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="graphics/ch08_inline2.jpg"/> and <inline-graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="graphics/ch08_inline3.jpg"/> are assigned by local similarity, which is determined by the related descriptors <inline-graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="graphics/ch08_inline4.jpg"/> and <inline-graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="graphics/ch08_inline5.jpg"/>. For each descriptor in set <emphasis>Y</emphasis>, there is a corresponding descriptor in set <emphasis>X</emphasis> with a minimal error criterion. After the assignment of feature points, the correspondences are filtered by this error criterion in order to avoid false correspondences, e.g., feature points which are not detectable in both images because of occlusions in one image. Varying matching methods differ in the error criterion for the evaluation of feature similarity and the search algorithm during the matching step.</para>
</section>
<section class="lev2" id="sec8-1-3">
<title>8.1.3 Extrinsic Online Self-Calibration</title>
<para>Common stereo algorithms for disparity estimation (e.g., [<link linkend="ch08_B10">10</link>]) rely on exact knowledge about the intrinsic (e.g., focal length) and extrinsic camera parameters (the transformation between two cameras). Calibration errors lead to erroneous reconstruction values. The camera parameters enable the rectification, which is the projection of the camera images to a common image plane and they form the basis for further processing.</para>
<para>The intrinsic parameters may be assumed to be constant and identified using an o&#x0FB04;ine calibration procedure (e.g., [<link linkend="ch08_B11">11</link>]). As the cameras are not rigidly coupled here, the extrinsic parameters vary due to vibrations in the car and are assumed to change rapidly from frame to frame. Thus, a one-time o&#x0FB04;ine calibration procedure does not suffice to meet the accuracy requirements of stereo processing. Thus, an online calibration procedure is necessary. While driving the use of calibration targets with known geometry is difficult. Therefore, a self-calibration mechanism is needed.</para>
<para>The idea behind online self-calibration procedures is to estimate the camera parameters based on what is perceived in both cameras. So a preprocessing step to the calibration is a one-to-one identification of scene points visible in both camera images, e.g., a list of sparse pixel correspondences of the stereo camera images.</para>
</section>
</section>
<section class="lev1" id="sec8-2">
<title>8.2 Algorithmic Overview</title>
<para>Many approaches have been proposed in recent years for the extraction and matching of image features and for the feature-based camera self-calibration. In the following section, selected aspects for each algorithmic step are reviewed separately.</para>
<section class="lev2" id="sec8-2-1">
<title>8.2.1 Survey of Image Features Extraction</title>
<para>The process of extracting image features is split into two algorithmic parts, the detection of feature points and the generation of the feature descriptor. For both steps, a large number of algorithms have been published. In this section, typical examples of each algorithmic step are presented.</para>
<section class="lev3" id="sec8-2-1-1">
<title>8.2.1.1 Detection of features</title>
<para>Which properties of distinctive image points are mandatory for a satisfactory matching of image features depend on the finale application. There is no clear definition as to which extraction strategy is best as it only needs to provide sufficient algorithmic performance during retrieval in the same scene on image sequences from different viewpoints. Therefore, what is <emphasis>characteristic</emphasis> for highly distinctive points in images is an application-specific approach, which has led to four basic methods for extracting retrievable points in images.</para>
</section>
<section class="lev3" id="sec8-2-1-2">
<title>Edge detection</title>
<para>Edges are stable features, which are detectable over a range of viewpoints and illumination changes [<link linkend="ch08_B12">12</link>]. An edge, e.g., the border of an object, is defined by discontinuities in pixel intensities in a single image dimension (see <link linkend="F8-3">Figure <xref linkend="F8-3" remap="8.3"/></link>(b)). Thus, the Canny detector [<link linkend="ch08_B13">13</link>] determines the gradient of the input image with the Sobel operator and by evaluating magnitude and orientation of the gradients, the edge&#x02019;s direction and its strength are extractable. Gradient and direction are used in a non-maximum suppression in order to suppress equivocal edges in the local neighborhood of a possible edge.</para>
<fig id="F8-3" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F8-3">Figure <xref linkend="F8-3" remap="8.3"/></link></label>
<caption><para>Detection of edges and corners by image gradients. The blue circle shows a possible feature point, surrounded by a local neighborhood. (a) Low image gradients in two spatial directions represent texture free image areas. (b) A high image gradient in one spatial direction indicates a possible edge, (c) in two spatial directions a possible corner.</para></caption>
<graphic xlink:href="graphics/ch08_fig004.jpg"/>
</fig>
<para>The drawback of this method is the equivocalness of the detected feature points. As depicted in <link linkend="F8-3">Figure <xref linkend="F8-3" remap="8.3"/></link>(b), it is not distinct which detected points are corresponding on the edge while matching two detected feature points and therefore, it will lead to incorrect pixel correspondences.</para>
</section>
<section class="lev3" id="sec8-2-1-3">
<title>Corner detection</title>
<para>Corners are defined as intersections of edges or as pixel continuities in two or more image directions (see <link linkend="F8-3">Figure <xref linkend="F8-3" remap="8.3"/></link>(c)). In addition to simple corners, line endings and cropped intensity changes are detected using this type of detector.</para>
<para>One early corner detector is the Harris corner detector [<link linkend="ch08_B14">14</link>] (1988), which approximates the sum of squared differences of two image patches in order to detect a difference in image intensities. The approximation results in the second moment matrix, which represents the dominant directions of a local neighborhood in the gradient image. With this approach it is not only possible to detect corners, but edges as well.</para>
<para>To avoid such costly filters, a detector has been presented that does not rely on discrete image derivatives, but on the number of intensity differences between pixels [<link linkend="ch08_B5">5</link>], which are located on a Bresenham circle (see <link linkend="F8-4">Figure <xref linkend="F8-4" remap="8.4"/></link>). Rosten [<link linkend="ch08_B15">15</link>] sped up this process by reducing the number of pixel tests with machine learning techniques to find the fastest sequence of pixel comparisons for rejecting a wrong corner candidate.</para>
<fig id="F8-4" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F8-4">Figure <xref linkend="F8-4" remap="8.4"/></link></label>
<caption><para>Intensity comparisons of pixel, which are located on a Bresenham Circle. The central pixel is determined as a corner if a certain number of continuous pixel intensities is brighter or darker than the central pixel. This is combined with an adoptable threshold to avoid instabilities.</para></caption>
<graphic xlink:href="graphics/ch08_fig003.jpg"/>
</fig>
<para>The matching of detected corners in different images of the same scene provides correct pixel correspondences as long as the detected corners belong to objects of the same size. A corresponding corner is just detectable in different images, if the regions for describing the corners have similar dimensions (see <link linkend="F8-5">Figure <xref linkend="F8-5" remap="8.5"/></link>, red circle), which is dependent on the object size. To overcome this problem, repeated image scaling is a possibility or an object size dependent adjustment of the region for the descriptor generation.</para>
<fig id="F8-5" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F8-5">Figure <xref linkend="F8-5" remap="8.5"/></link></label>
<caption><para>Detection of corners of different image scales. With strongly different object sizes in the image, a corresponding corner is not detectable (red circle), but by a repeated image scaling.</para></caption>
<graphic xlink:href="graphics/ch08_fig005.jpg"/>
</fig>
</section>
<section class="lev3" id="sec8-2-1-4">
<title>Blob detection</title>
<para>A blob is a region of connected pixels, which share a common image property, e.g., pixel intensities, and therefore stand out from surrounding regions. By formulating image properties as a function of pixel positions, local maxima and minima of the function are determinable.</para>
<para>It has been shown, that the Laplacian of Gaussian (LoG) [<link linkend="ch08_B16">16</link>] has a strong response to dark and bright image regions, which are detectable as blobs. The response is highly dependent on the size of the filter kernel used (see <link linkend="F8-6">Figure <xref linkend="F8-6" remap="8.6"/></link>).</para>
<fig id="F8-6" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F8-6">Figure <xref linkend="F8-6" remap="8.6"/></link></label>
<caption><para>Blob detector. The detected blobs are displayed as red circles. The blob&#x02019;s size is displayed as the diameter of the circle.</para></caption>
<graphic xlink:href="graphics/ch08_fig006.jpg"/>
</fig>
</section>
<section class="lev3" id="sec8-2-1-5">
<title>Affine-invariant interest point detection</title>
<para>Images features based on a blob detector hardly match for large scale or viewpoint changes [<link linkend="ch08_B4">4</link>], because circular image patches for blob feature extraction will lead to large distance measures for blob feature matching due to less covering of the circular regions (see <link linkend="F8-7">Figure <xref linkend="F8-7" remap="8.7"/></link>). By applying circular image patches, the used image information is too different to ensure stable pixel correspondences for large viewpoint changes. Therefore, Mikolajczyk [<link linkend="ch08_B7">7</link>] extends blob detectors to affine invariance by estimating the affine shape of a local neighborhood. For affine transformations, the scale of an image region changes differently in each direction, which leads to differing local regions for the blob detection and therefore to differing localization or to mistaken detections.</para>
<fig id="F8-7" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F8-7">Figure <xref linkend="F8-7" remap="8.7"/></link></label>
<caption><para>Blob detection based on circular image region for a scene with a large viewpoint change. The region on which the blob feature extraction is based only partially covers the corresponding region and thus, will lead to non-matching image features.</para></caption>
<graphic xlink:href="graphics/ch08_fig007.jpg"/>
</fig>
<para>In order to deal with affine transformation, Mikolajczyk [<link linkend="ch08_B7">7</link>] replaces the blob detection scales, which are equal in all directions, by affine detection scales, which vary independently in orthogonal directions. Hereby, the circular point neighborhood is replaced by an ellipse, which is determined by the second moment matrix. With the affine normalization, the ellipse is normalized to a circle again and a blob is detectable within the transformed image patch (see <link linkend="F8-8">Figure <xref linkend="F8-8" remap="8.8"/></link>).</para>
<fig id="F8-8" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F8-8">Figure <xref linkend="F8-8" remap="8.8"/></link></label>
<caption><para>Affine-Invariant Interest Point Detection. The circular point neighborhood is replaced with an ellipse in order to achieve independent orthogonal varying detection scales for interest point detection. Before applying a detection algorithm, the local neighborhood is affine normalized, which results in a circular neighborhood and a transformed image patch (from [<link linkend="ch08_B7">7</link>]).</para></caption>
<graphic xlink:href="graphics/ch08_fig008.jpg"/>
</fig>
<para>Since the four presented methods provide large differences in quantity and quality for detected interest points, a suitable algorithm has to be chosen with regards to the application.</para>
<para>In 3D reconstruction, precise localization of interest points is one major aspect [<link linkend="ch08_B4">4</link>], therefore a sub-pixel accuracy for feature detection is mandatory. Self-occlusion occurs very frequently in real world scenes and typically many interest points are found near occlusion boundaries. Accurate positioning of features is imperative. As has been shown in many publications, center-oriented detectors (e.g., LoG, DoG or CenSurE) [<link linkend="ch08_B5">5</link>], provide a higher and more stable repetition rate than corner or edge detectors. Furthermore, affine-invariant interest point detectors have been adapted to be robust to large changes in viewpoint [<link linkend="ch08_B4">4</link>], which is of minor importance even for reliable image feature matching for a wider baseline stereo camera system.</para>
<para>Taking into account the algorithmic robustness of the presented methods for the detection of image features and the high requirements of ADAS (Advanced Driver Assistance Systems), a blob detector is used for the detection of features henceforth. In subsection 8.3.1 the SIFT-detector [<link linkend="ch08_B9">9</link>] will be presented in detail as an exemplary blob detector.</para>
</section>
<section class="lev3" id="sec8-2-1-2">
<title>8.2.1.2 Description of features</title>
<para>After the detection of interesting points, the descriptor as a unique representation of an image feature has to be generated. In addition to histogram-based descriptors, which are memory greedy, binary descriptors have been established as a more compact representation for image features. In addition, compared to histogram-based descriptors, the distance of two binary descriptors, which is required for feature matching, is faster to match. There are other techniques to describe image features such as image patch correlation or generalized moment invariants [<link linkend="ch08_B3">3</link>], however the focus of this section is limited to the two mentioned descriptor types, due to their suitability for the self-calibration of wide baseline stereo camera systems.</para>
</section>
<section class="lev3" id="sec8-2-1-7">
<title>Histogram-based descriptors</title>
<para>A simple way to describe a detected blob in a histogram-based manner is the distribution of pixel intensities of the local blob region. Due to the fact that this technique is prone to illumination changes, more complex approaches have been presented (see [<link linkend="ch08_B3">3</link>]), e.g., the distribution of gradient locations and orientations in the local blob area instead of the distribution of pixel intensity itself. In the case of the SIFT-descriptor, the coordinates of the descriptor and the gradient orientations are rotated relative to the feature orientation and afterwards, a histogram is generated based on orientation and magnitude of the image gradient [<link linkend="ch08_B9">9</link>]. Furthermore, the quantization granularity of gradient locations and orientations leads to a robust descriptor, which is stable to small geometric distortions and small errors in the blob region. Besides multiple techniques for histogram generation, different sampling grids have been introduced (see <link linkend="F8-9">Figure <xref linkend="F8-9" remap="8.9"/></link>). The resulting descriptor is a multidimensional vector with the histogram&#x02019;s bins as components. In the case of SIFT, each vector consists of 128 values of floating point precision. The size of a feature vector is highly dependent on the algorithmic parameters, but nevertheless histogram-based descriptors usually have high memory requirements. Therefore, techniques for a more compact descriptor representation have been developed, e.g., principal component analysis for PCA-SIFT [<link linkend="ch08_B17">17</link>].</para>
<fig id="F8-9" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F8-9">Figure <xref linkend="F8-9" remap="8.9"/></link></label>
<caption><para>Sampling grids for generating different descriptors: (a) SIFT [<link linkend="ch08_B9">9</link>], (b) Shape Context [<link linkend="ch08_B18">18</link>], (c) DAISY [<link linkend="ch08_B19">19</link>].</para></caption>
<graphic xlink:href="graphics/ch08_fig009.jpg"/>
</fig>
</section>
<section class="lev3" id="sec8-2-1-8">
<title>Binary descriptors</title>
<para>Due to the fact that histogram-based descriptors provide a large complexity [<link linkend="ch08_B3">3</link>] and high memory requirements [<link linkend="ch08_B6">6</link>], a sped up generation and a more compact representation for feature descriptors is desirable. Therefore, binary descriptors are characterized by sampling patterns and predefined sampling pairs. Sampling patterns define a set of potential sampling locations (<link linkend="F8-10">Figure <xref linkend="F8-10" remap="8.10"/></link>, blue circles), whose image information are optionally smoothed with spatial-dependent filter kernels (e.g., Gaussian smoothing) (<link linkend="F8-10">Figure <xref linkend="F8-10" remap="8.10"/></link>, red circles). A fixed combination of the filtered intensities is selected in advance as descriptor specific sampling pairs (see <link linkend="F8-11">Figure <xref linkend="F8-11" remap="8.11"/></link>, two variations of sampling pairs for the FREAK descriptor).</para>
<fig id="F8-10" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F8-10">Figure <xref linkend="F8-10" remap="8.10"/></link></label>
<caption><para>Sampling pattern. (a) BRISK descriptor, (b) FREAK descriptor [<link linkend="ch08_B21">21</link>]. Sampling patterns define a set of sampling locations (blue circles), of whose image information is smoothed with spatial-dependent filter kernels (red circles). Out of the sampling pattern the sampling pairs for the binary tests for the descriptor generation are selected.</para></caption>
<graphic xlink:href="graphics/ch08_fig0010.jpg"/>
</fig>
<fig id="F8-11" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F8-11">Figure <xref linkend="F8-11" remap="8.11"/></link></label>
<caption><para>Two variations of sampling pairs of the FREAK descriptor [<link linkend="ch08_B21">21</link>]. A fixed combination of sampling locations is selected as descriptor specific sampling pairs, with which the binary tests for the descriptor generation is performed.</para></caption>
<graphic xlink:href="graphics/ch08_fig0011.jpg"/>
</fig>
<para>For each sampling pair, a binary test <emphasis>&#x003C4;</emphasis> is performed, e.g., (BRIEF [<link linkend="ch08_B20">20</link>]):</para>
<para><graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="graphics/ch08_eq1.jpg"/></para>
<para>where <emphasis>I(p,x)</emphasis> is the pixel intensity in a smoothed image patch <emphasis>p</emphasis> around an image position <emphasis>x = (u,v)<superscript>T</superscript></emphasis>. On a set of <emphasis>n<subscript>d</subscript></emphasis> precomputed pixel pairs, such binary tests are performed. The resulting descriptor of dimension <emphasis>n<subscript>d</subscript></emphasis> ensues to</para>
<para><graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="graphics/ch08_eq2.jpg"/></para>
<para>Typically, a binary descriptor has a maximal length of 512 Bit.</para>
</section>
<section class="lev3" id="sec8-2-1-3">
<title>8.2.1.3 Characteristics of features</title>
<para>Invariances to rotation and scale increase the detection rate of features in similar views of a scene and ensure the distinctiveness of the detected feature points. By assigning a region based main orientation, a feature is rotated by this orientation in order to match it with a corresponding feature from a different orientation. Furthermore, objects often vary in size in different images, which lead to variant image regions for the description of the same feature. To unify the descriptor generation, Lindeberg&#x02019;s [<link linkend="ch08_B16">16</link>] scale-space theory is applied.</para>
<para><emphasis role="strong">Rotation invariance</emphasis> of a feature descriptor is achieved by rotating the sampling grid or sampling pattern for the pixel area which is used for the descriptor generation by the main orientation before the descriptor is extracted (see <link linkend="F8-12">Figure <xref linkend="F8-12" remap="8.12"/></link>) or by rotating the descriptor itself. To determine the main orientation, different approaches are available. Rublee et al. [<link linkend="ch08_B22">22</link>] use intensity centroids to determine the main orientation of a patch, whereas Leutenegger et al. [<link linkend="ch08_B23">23</link>] use the gradient of predefined sampling pairs to rotate the sampling pattern. Further techniques are available in the literature (e.g., [<link linkend="ch08_B9">9</link>, <link linkend="ch08_B21">21</link>, <link linkend="ch08_B24">24</link>]).</para>
<fig id="F8-12" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F8-12">Figure <xref linkend="F8-12" remap="8.12"/></link></label>
<caption><para>Rotation invariance is achieved by rotating the sampling grid by the main orientation before extracting the descriptor.</para></caption>
<graphic xlink:href="graphics/ch08_fig0012.jpg"/>
</fig>
<para><emphasis role="strong">Scale invariance</emphasis> of image features is attained by applying Lindeberg&#x02019;s [<link linkend="ch08_B16">16</link>] scale-space theory for image processing to the input images while detecting image features. The input image is subsampled multiple times to generate different scales of the input image and the detection step is repeated. If the same feature candidates are detected on multiple scales, the candidate on the scale with the highest information content is selected in order to achieve scale-invariance (see <link linkend="F8-13">Figures <xref linkend="F8-13" remap="8.13"/></link> and <link linkend="F8-14"><xref linkend="F8-14" remap="8.14"/></link>). Lowe (SIFT, [<link linkend="ch08_B9">9</link>]) approximates Lindeberg&#x02019;s LoG scale-space with different Gaussian smoothed images and therefore, the complexity is reduced significantly.</para>
<fig id="F8-13" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F8-13">Figure <xref linkend="F8-13" remap="8.13"/></link></label>
<caption><para>Scale-space. An input image is down sampled to achieve multiple scales of the image. On each scale, feature candidates are found, whereas repeated candidates are removed. The scale with the highest information content for the feature candidate is selected as the feature scale (from [<link linkend="ch08_B16">16</link>]).</para></caption>
<graphic xlink:href="graphics/ch08_fig0013.jpg"/>
</fig>
<fig id="F8-14" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F8-14">Figure <xref linkend="F8-14" remap="8.14"/></link></label>
<caption><para>Multi-scale approach for blob detection. The same blob with differing scales in two images and the related response (normalized Laplacian of Gaussian) over scales is shown. The scale with the highest information content is chosen as a blob (from [<link linkend="ch08_B7">7</link>]).</para></caption>
<graphic xlink:href="graphics/ch08_fig0014.jpg"/>
</fig>
<para>A further approach for scale invariance is the detection and later suppression of feature candidates which are detected on multiple scales, but have the same image position. Those repeated nominations are compensated by a non-maximum suppression [<link linkend="ch08_B6">6</link>], which evaluates a predefined cornerness score and selects the most unique feature point.</para>
<para>Image feature detection and description are not completely independent. By choosing a certain feature detector, a specific local neighborhood is used to detect interesting points. This specific local neighborhood has to be also employed to extract the feature descriptor in order to ensure a reliable description of the image patch. Although it seems to be a promising approach, it is not advisable to combine any detector with any descriptor [<link linkend="ch08_B4">4</link>]. The following overview (see <link linkend="T8-1">Tables <xref linkend="T8-1" remap="8.1"/></link> and <link linkend="T8-2"><xref linkend="T8-2" remap="8.2"/></link>) of selected state-of-the-art feature extractors and feature descriptors with references is not intended to be exhaustive, but gives an impression of how many different detectors and extractors are available and therefore combinable. For an appropriate performance, each algorithm requires an application-specific parameterization, which may depend on the previous and following processing step. Thus, this large number of degrees of freedoms results in an algorithmic variety, which is hardly ascertainable.</para>
<table-wrap position="float" id="T8-1">
<label><link linkend="T8-1">Table <xref linkend="T8-1" remap="8.1"/></link></label>
<caption><para>Overview of feature detectors</para></caption>
<table cellspacing="5" cellpadding="5" frame="hsides" rules="groups">
<thead>
<tr>
<td valign="bottom" align="left">Feature Detector</td>
<td valign="bottom" align="center">Year</td>
<td valign="bottom" align="left">Comment</td>
</tr>
</thead>
<tbody>
<tr>
<td valign="top" align="left">SIFT [<link linkend="ch08_B9">9</link>]</td>
<td valign="top" align="center">1999</td>
<td valign="top" align="left">Scale-Invariant Feature Transform</td>
</tr>
<tr>
<td valign="top" align="left"></td>
<td valign="top" align="center"></td>
<td valign="top" align="left">Scale-space based, invariant to scale and rotation</td>
</tr>
<tr>
<td valign="top" align="left">SURF [<link linkend="ch08_B25">25</link>]</td>
<td valign="top" align="center">2008</td>
<td valign="top" align="left">Speeded Up Robust Features</td>
</tr>
<tr>
<td valign="top" align="left"></td>
<td valign="top" align="center"></td>
<td valign="top" align="left">Scale-space based, invariant to scale and rotation</td>
</tr>
<tr>
<td valign="top" align="left">KAZE [<link linkend="ch08_B24">24</link>]</td>
<td valign="top" align="center">2012</td>
<td valign="top" align="left">Non-linear scale-space based</td>
</tr>
<tr>
<td valign="top" align="left"></td>
<td valign="top" align="center"></td>
<td valign="top" align="left">Invariant to scale and rotation</td>
</tr>
<tr>
<td valign="top" align="left">A-KAZE [<link linkend="ch08_B26">26</link>]</td>
<td valign="top" align="center">2013</td>
<td valign="top" align="left">Accelerated-KAZE</td>
</tr>
<tr>
<td valign="top" align="left"></td>
<td valign="top" align="center"></td>
<td valign="top" align="left">Improved KAZE feature detector</td>
</tr>
<tr>
<td valign="top" align="left">BRISK [<link linkend="ch08_B23">23</link>]</td>
<td valign="top" align="center">2011</td>
<td valign="top" align="left">Binary Robust Invariant Scalable Keypoints</td>
</tr>
<tr>
<td valign="top" align="left"></td>
<td valign="top" align="center"></td>
<td valign="top" align="left">Scale-space based, invariant to scale and rotation</td>
</tr>
<tr>
<td valign="top" align="left">FAST [<link linkend="ch08_B15">15</link>]</td>
<td valign="top" align="center">2006</td>
<td valign="top" align="left">Features from Accelerated Segment Test</td>
</tr>
<tr>
<td valign="top" align="left"></td>
<td valign="top" align="center"></td>
<td valign="top" align="left">Segment based corner detector</td>
</tr>
<tr>
<td valign="top" align="left">ORB [<link linkend="ch08_B22">22</link>]</td>
<td valign="top" align="center">2011</td>
<td valign="top" align="left">Oriented FAST and Rotated BRIEF</td>
</tr>
<tr>
<td valign="top" align="left"></td>
<td valign="top" align="center"></td>
<td valign="top" align="left">Advanced from FAST and BRIEF (see descriptors)</td>
</tr>
</tbody>
</table>
</table-wrap>
<table-wrap position="float" id="T8-2">
<label><link linkend="T8-2">Table <xref linkend="T8-2" remap="8.2"/></link></label>
<caption><para>Overview of feature descriptors</para></caption>
<table cellspacing="5" cellpadding="5" frame="hsides" rules="groups">
<thead>
<tr>
<td valign="bottom" align="left">Feature Descriptor</td>
<td valign="bottom" align="center">Year</td>
<td valign="bottom" align="left">Comment</td>
</tr>
</thead>
<tbody>
<tr>
<td valign="top" align="left">SIFT [<link linkend="ch08_B9">9</link>]</td>
<td valign="top" align="center">1999</td>
<td valign="top" align="left">Scale-Invariant Feature Transform</td>
</tr>
<tr>
<td valign="top" align="left"></td>
<td valign="top" align="center"></td>
<td valign="top" align="left">Histogram-based descriptor</td>
</tr>
<tr>
<td valign="top" align="left">SURF [<link linkend="ch08_B25">25</link>]</td>
<td valign="top" align="center">2008</td>
<td valign="top" align="left">Speeded Up Robust Features</td>
</tr>
<tr>
<td valign="top" align="left"></td>
<td valign="top" align="center"></td>
<td valign="top" align="left">7 Histogram-based descriptor</td>
</tr>
<tr>
<td valign="top" align="left">KAZE [<link linkend="ch08_B24">24</link>]</td>
<td valign="top" align="center">2012</td>
<td valign="top" align="left">Non-linear scale-space based</td>
</tr>
<tr>
<td valign="top" align="left"></td>
<td valign="top" align="center"></td>
<td valign="top" align="left">Histogram-based descriptor</td>
</tr>
<tr>
<td valign="top" align="left">A-KAZE [<link linkend="ch08_B26">26</link>]</td>
<td valign="top" align="center">2013</td>
<td valign="top" align="left">Accelerated-KAZE</td>
</tr>
<tr>
<td valign="top" align="left"></td>
<td valign="top" align="center"></td>
<td valign="top" align="left">Binary descriptor</td>
</tr>
<tr>
<td valign="top" align="left">BRISK [<link linkend="ch08_B23">23</link>]</td>
<td valign="top" align="center">2011</td>
<td valign="top" align="left">Binary Robust Invariant Scalable Keypoints</td>
</tr>
<tr>
<td valign="top" align="left"></td>
<td valign="top" align="center"></td>
<td valign="top" align="left">Binary descriptor</td>
</tr>
<tr>
<td valign="top" align="left">BRIEF [<link linkend="ch08_B20">20</link>]</td>
<td valign="top" align="center">2012</td>
<td valign="top" align="left">Binary Robust Independent Elementary Features</td>
</tr>
<tr>
<td valign="top" align="left"></td>
<td valign="top" align="center"></td>
<td valign="top" align="left">Binary descriptor</td>
</tr>
<tr>
<td valign="top" align="left">ORB [<link linkend="ch08_B22">22</link>]</td>
<td valign="top" align="center">2011</td>
<td valign="top" align="left">Oriented FAST and Rotated BRIEF</td>
</tr>
<tr>
<td valign="top" align="left"></td>
<td valign="top" align="center"></td>
<td valign="top" align="left">Advanced from FAST and BRIEF (see detectors)</td>
</tr>
<tr>
<td valign="top" align="left">DAISY [<link linkend="ch08_B19">19</link>]</td>
<td valign="top" align="center">2010</td>
<td valign="top" align="left">Dense Descriptor for Wide Baseline Stereo Matching</td>
</tr>
<tr>
<td valign="top" align="left"></td>
<td valign="top" align="center"></td>
<td valign="top" align="left">Histogram-based descriptor</td>
</tr>
<tr>
<td valign="top" align="left">FREAK [<link linkend="ch08_B21">21</link>]</td>
<td valign="top" align="center">2012</td>
<td valign="top" align="left">Fast Retina Keypoint</td>
</tr>
<tr>
<td valign="top" align="left"></td>
<td valign="top" align="center"></td>
<td valign="top" align="left">Binary descriptor</td>
</tr>
</tbody>
</table>
</table-wrap>
</section>
</section>
<section class="lev2" id="sec8-2-2">
<title>8.2.2 Feature Matching</title>
<para>The final step in finding sparse pixel correspondences is the assignment of the extracted image features in different image set ups, e.g., in time sequentially images for sparse optical flow, in stereo image pairs for feature-based sparse disparity estimation or in image patches for object detection.</para>
<para>As in the case of the previous algorithmic steps, many approaches for descriptor matching have been presented in recent years [<link linkend="ch08_B3">3</link>]. In order to determine the similarity of two image features, multiple correspondence measures are available. In addition, various matching methods lead to significant differences in matching results, which influences the resulting pixel correspondence lists and finally, some matching methods require a list search algorithm, for which again different approaches are available. Each aspect will be briefly reviewed in the following subsection.</para>
<section class="lev3" id="sec8-2-2-1">
<title>Correspondence measures for image features</title>
<para>For histogram-based descriptors <inline-graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="graphics/ch08_inline6.jpg"/>, which are real-valued vectors of dimension <emphasis>l</emphasis> &#x02208; &#x02115;, multiple vector norms are applicable on matching difference vectors as a similarity measure. The sum norm is defined as the accumulation of the component wise sum of absolute differences:</para>
<para><graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="graphics/ch08_eq3.jpg"/></para>
<para>In order to weight large vector difference more than small differences, the Euclidean norm is useable. The norm penalizes large vector differences more than small vector differences by accumulating the component wise sum of squared differences:</para>
<para><graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="graphics/ch08_eq4.jpg"/></para>
<para>Since only relative correspondence measures are used for feature matching, the square root is skippable to avoid costly computations.</para>
<para>A further method for evaluating the distance of two vectors is the normalized cross correlation:</para>
<para><graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="graphics/ch08_eq5.jpg"/></para>
<para>The correlation yields good results for the matching of image features, but leads to high computational complexity [<link linkend="ch08_B3">3</link>] and is therefore rarely used for matching of image features in the field of advanced driver assistance systems.</para>
<para>For binary descriptors, which consist of a bit string of length <emphasis>n</emphasis>, that represent the result of pixel wise test, the correspondence measure is the Hamming distance, which is the accumulation of the bit wise XOR of the bit strings:</para>
<para><graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="graphics/ch08_eq6.jpg"/></para>
<para>Due to the correspondence measure&#x02019;s simplicity, typically the distance computation of two binary descriptors is noticeably faster than the distance computation of two histogram-based descriptors. Contrary, not every binary descriptor has a comparable quality level as histogram-based descriptors for certain applications. By selecting a specific descriptor type, the implicit trade-off between execution time and descriptor quality has to be taken into account.</para>
</section>
<section class="lev3" id="sec8-2-2-2">
<title>Matching methods for image features</title>
<para>The quality of resulting pixel correspondences highly depends on the utilized matching method. Three different methods have been established in the field of feature matching for advanced driver assistance systems (from [<link linkend="ch08_B3">3</link>]), which show different behavior in the matching inlier/outlier ratio:</para>
<orderedlist numeration="arabic" continuation="restarts" spacing="normal">
<listitem><para><emphasis role="strong">Threshold-Based Matching (TB)</emphasis></para>
<para>Two features match, if the distance between the descriptors is below a predetermined threshold. A feature may have several matches and several of them may be correct.</para></listitem>
<listitem><para><emphasis role="strong">Nearest-Neighbor-Based Matching (NNB)</emphasis></para>
<para>Two features match, if the descriptor <inline-graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="graphics/ch08_inline7.jpg"/> is the nearest neighbor to <inline-graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="graphics/ch08_inline8.jpg"/> and if the distance between the descriptors is below a threshold. A feature only has one match</para></listitem>
<listitem><para><emphasis role="strong">Nearest-Neighbor Distance Ratio Matching (NNDR)</emphasis></para>
<para>Two features match, if the descriptor <inline-graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="graphics/ch08_inline7.jpg"/> is the nearest neighbor to <inline-graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="graphics/ch08_inline8.jpg"/> and if a ratio &#x1D700; between the first and the second nearest neighbor is below a threshold:</para>
<para><graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="graphics/ch08_eq7.jpg"/></para>
<para>where <emphasis>p</emphasis> indicates the type of norm. This ratio avoids ambiguous matches in case there are potential matches with a similar distance. Again, a feature has only one match.</para></listitem>
</orderedlist>
<para>The matching quality for both nearest-neighbor approaches are higher than for the TB matching [<link linkend="ch08_B3">3</link>], because the probability of a correct match for the nearest neighbor matchings is higher than the TB matching, although the distance between similar descriptors possibly varies significantly. The nearest neighbor matchings select only the best match below the threshold and rejects all others and thus, there are few false matches. In addition, the NNDR matching penalizes descriptors which have many similar matches, e.g., the distance to the nearest neighbor is comparable to the distance of the second nearest neighbor. This leads to further improvement in precision. The drawback of the nearest neighbor matchings is the complexity when matching two large pools of image features and the computative costly division for the NNDR matching.</para>
</section>
<section class="lev3" id="sec8-2-2-3">
<title>List search approaches for matching of image features</title>
<para>The matching of two large pools of image features to find pixel correspondences in different images results in a costly process, because a correspondence measure and the first two nearest neighbors have to be evaluated for each possible feature combination. By restricting the pool of feature candidates for the matching process, a significant reduction of problem size is achievable. A possible restriction bases on feature properties, e.g., localization in the image, orientation or scale. Constraining the feature candidates means, that the pool of all image features has to be scanned for valid candidates, which is a list search problem.</para>
<orderedlist numeration="arabic" continuation="restarts" spacing="normal">
<listitem><para><emphasis role="strong">Sorted Linear Candidate Search</emphasis></para>
<para>A prior sort of the pool regarding the restriction parameter enables a reduction in search time. By using the iterative successively approximation, the list index of the first element which fulfills the restriction is searched. The last candidate of the reduced list is searched with a linear search.</para>
<para>After each iteration, the step size is halved and the search index is incremented or decremented depending on whether the restriction criterion is fullfilled. The initial step size is half the initial pool size.</para></listitem>
<listitem><para><emphasis role="strong">KD-Tree Candidate Search</emphasis></para>
<para>A KD-tree [<link linkend="ch08_B27">27</link>] based search is a search tree with two edges per vertex and which divides the remaining set of feature candidates into two sets of the same size. By stepping through the KD-tree, the index of the first valid feature candidate is found efficiently. The disadvantage of this search method is the time consuming <emphasis>a priori</emphasis> construction of the KD-tree, which is not effective for small feature pools. In addition, if the restriction search space has a low dimension, other search methods will perform faster.</para></listitem>
</orderedlist>
</section>
</section>
<section class="lev2" id="sec8-2-3">
<title>8.2.3 Survey of Feature-based Self-Calibration</title>
<para>Extrinsic camera self-calibration is about recovering the extrinsic camera parameters using scene point correspondences only. Camera self-calibration is still a wide field of active research with different approaches. Early approaches are subdivided into aiming 3D reconstruction or not. The latter covers those algorithms where no information about the scene in front of the cameras is recovered during optimization.</para>
<para>One of the first approaches has been proposed by Longuet-Higgins [<link linkend="ch08_B28">28</link>]. The author introduced a linear method to recover the essential matrix, which is decomposable into the extrinsic parameters. Due to the required number of image point correspondences, it was introduced as the 8-point-algorithm.</para>
<para>Several following publications proposed optimizations regarding decomposition [<link linkend="ch08_B29">29</link>], plausibility [<link linkend="ch08_B30">30</link>, <link linkend="ch08_B31">31</link>], and outlier handling for the corresponding image points [<link linkend="ch08_B32">32</link>]. As the linear approaches often lack the required accuracy, they are often followed by a non-linear refinement in a stratified process.</para>
<para>On the other hand, there are algorithms where camera parameters and 3D points of the scene are recovered simultaneously. One of those is bundle-adjustment [<link linkend="ch08_B33">33</link>]. Here a good initialization is required as Gauss-Newton optimization is involved. Thus, bundle adjustment is often chosen for the non-linear refinement as mentioned before.</para>
<para>Regarding online calibration procedures, they are classifiable as recursive or non-recursive. Recursive, or continuous self-calibration, means that temporal constraints are also optimized. Thus, image measurements in earlier time steps influence the current calibration result. Dang et al. proposed a parameter tracking system involving epipolar constraints and bundle adjustment [<link linkend="ch08_B34">34</link>]. In contrast to non-recursive self-calibration, there are no temporal constraints. Those are applied, in cases of a continuous decalibration or for active systems. Bjorkmann and Eklundh [<link linkend="ch08_B35">35</link>] introduced a real-time update of a restricted space of the extrinsic parameters. Pettersson and Petersson [<link linkend="ch08_B36">36</link>] extended a robust essential matrix estimation with a fast and robust FPGA-feature extraction. Parameter estimation for every new frame, beginning with rectified images, optimizing the extrinsic rotation and using a Kalman-Filter to limit overfitting was introduced by Hansen et al. [<link linkend="ch08_B37">37</link>].</para>
</section>
</section>
<section class="lev1" id="sec8-3">
<title>8.3 Extraction of Image Features</title>
<para>Due to its stability and robustness, in respect of the requirements in advanced driver assistance systems, the Scale-Invariant Feature Transform (SIFT) by Lowe [<link linkend="ch08_B9">9</link>] is selected for this application as a state-of-the-art image feature descriptor and extractor in order to find sparse pixel correspondences in image pairs of a stereo camera system.</para>
<section class="lev2" id="sec8-3-1">
<title>8.3.1 Detection of SIFT-Feature Points</title>
<para>Lowe&#x02019;s SIFT (Scale-Invariant Feature Transform, [<link linkend="ch08_B9">9</link>]) is a blob detector, which utilizes Lindeberg&#x02019;s scale-space approach [<link linkend="ch08_B16">16</link>] to achieve scale invariance. Blobs are detected by finding local maxima in the approximation of the Laplacian scale-space. The approximation of the Laplace operator is realized by the difference of two low pass filtered images, where both Gaussian kernels consist of different variances. The resulting scale-space approximation, the Difference of Gaussians (DoG), is constructed of several octaves with different image scales (see <link linkend="F8-15">Figure <xref linkend="F8-15" remap="8.15"/></link>). Every octave is subdivided into multiple intervals, which indicate the increasing variance of the Gaussian kernels. The initial interval of each octave arises by subsampling a specific interval of the previous octave. The DoG-pyramid, which represents the edges on multiples scales and different granularities, is browsed for local maxima in three dimensions (image position and intervals). After the detection of feature candidates in the discrete scale-space, their localization is refined by a Taylor series in order to position the candidates with subpixel accuracy and to approximate the extrema in the continuous scale-space. Candidates with a low contrast behavior and too edge like candidates are discarded.</para>
<fig id="F8-15" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F8-15">Figure <xref linkend="F8-15" remap="8.15"/></link></label>
<caption><para>Image pyramid. The scale-space is constructed by different octaves, which consists of multiple intervals. Each interval indicates a specific variant of the used Gaussian kernel. In order to approximate the Laplace scale-space, the Difference of Gaussian is determined.</para></caption>
<graphic xlink:href="graphics/ch08_fig0015.jpg"/>
</fig>
</section>
<section class="lev2" id="sec8-3-2">
<title>8.3.2 Description of SIFT-Image Features</title>
<para>The SIFT-descriptor is a histogram-based descriptor and provides rotation invariance. Before histogram generation, the main orientation of each image feature is determined in order to align the local image region. To ascertain the main orientation for an image feature, a histogram of local image gradients is generated. The contribution of a local gradient to its corresponding orientation bin is defined by its magnitude and its distance to the feature point. After a smoothing step, the maximal histogram bin represents the main orientation of a feature point.</para>
<para>In addition to a reproducible detection of characteristic image points, a distinctive and robust description of the local neighborhood of the detected points is indispensable. For the description of image features, the gradient magnitude and orientation of the DoG-pyramid is used. A squared pixel area around the detected feature point is rotated by the feature orientation (see <link linkend="F8-12">Figure <xref linkend="F8-12" remap="8.12"/></link>) and subdivided into a grid (see <link linkend="F8-16">Figure <xref linkend="F8-16" remap="8.16"/></link>). For each grid element, an independent histogram of gradients is generated using orientation and magnitudes. The different histograms are weighted, smoothed and combined in a vector, which represents the final feature descriptor. The standard parameters of SIFT, which are suggested by Lowe [<link linkend="ch08_B9">9</link>], lead to 128 dimensions with floating point precision for the feature vector.</para>
<fig id="F8-16" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F8-16">Figure <xref linkend="F8-16" remap="8.16"/></link></label>
<caption><para>Generation of feature descriptor. The local neighborhood is subdivided into independent subregions, which are combined into individual histograms. After a weighting and smoothing, the feature descriptor is generated by concatenating the single histograms to as a resulting feature vector.</para></caption>
<graphic xlink:href="graphics/ch08_fig0016.jpg"/>
</fig>
<para>An exemplary SIFT-feature extraction of a rectified automotive scene is shown in <link linkend="F8-17">Figure <xref linkend="F8-17" remap="8.17"/></link>. The features of the left/right stereo camera are depicted in red/green. The scale of the features is illustrated as the circle&#x02019;s diameter, the orientation of the features with the additional radius line.</para>
<fig id="F8-17" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F8-17">Figure <xref linkend="F8-17" remap="8.17"/></link></label>
<caption><para>Extracted SIFT-features with exemplary geometry-based restriction of matching candidates. By restricting possible matching candidates geometrically, the problem size is significantly reduced.</para></caption>
<graphic xlink:href="graphics/ch08_fig0017.jpg"/>
</fig>
</section>
</section>
<section class="lev1" id="sec8-4">
<title>8.4 Matching of Image Features</title>
<para>The application of feature matching for advanced driver assistance systems favors correct pixel correspondences instead of a certain set of instable feature matches. Therefore, the matching of image features follows a straight forward approach with a significantly reduced problem size through matching of selected candidates. In this context, it is of minor interest which feature detector and extractor are used for the generation of image features.</para>
<para>Due to the fact, that SIFT is a histogram-based descriptor, a vector norm has to be evaluated as correspondence metric. A trade-off between computational complexity and conclusive results is the sum norm. The matching with sum norm results in marginally lower matching quality compared to matching with the Euclidean norm, but with a localization-based restriction of matching candidates, the matching results yield sufficient accuracy.</para>
<para>By constraining the pool of possible matching candidates, the problem size of feature matching is reduced significantly. The initial brute force matching requires a computation of the correspondence measure between each features of the left image and every feature of the right image. By taking into account the geometric set up of the stereo camera system, the search space is reduced to a fraction of the initial problem size, which results in a noticeable speed-up of matching and less wrong pixel correspondences at the same time (see <link linkend="F8-17">Figure <xref linkend="F8-17" remap="8.17"/></link>).</para>
<para>An exemplary result of the primarily brute force feature matching and for the enhanced matching process using the mentioned algorithmic setup is shown in <link linkend="F8-18">Figure <xref linkend="F8-18" remap="8.18"/></link>. Both stereo input images are overlaid and the image related features are displayed in red/green for the left/right stereo image. The significant increase of matching quality is expressed by the reduction of detected false pixel correspondences (blue connections) in relation to the correct pixel assignments (yellow connections). For the depicted results of feature matching, the sum norm is applied as correspondence measure and a localization-based restriction for choosing matching candidates is used.</para>
<fig id="F8-18" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F8-18">Figure <xref linkend="F8-18" remap="8.18"/></link></label>
<caption><para>Exemplary results of feature matching. The left and right stereo images are overlaid; features of the left/right image are displayed in red/green. Correct matches are depicted in yellow; false matches are shown in blue. The upper image shows the results of the initial brute force matching, whereas the lower image shows the results of the enhanced matching process.</para></caption>
<graphic xlink:href="graphics/ch08_fig0018.jpg"/>
</fig>
</section>
<section class="lev1" id="sec8-5">
<title>8.5 Extrinsic Online Self-Calibration</title>
<para>Hartley and Zisserman present the fundamentals of extrinsic online self-calibration in their book [<link linkend="ch08_B38">38</link>] about multiple view geometry. The extrinsic parameters of a stereo system are described by the rotation R<subscript>X</subscript> &#x02208; <emphasis>SO</emphasis>(3) and the translation vector t<subscript>X</subscript> &#x02208; &#x0211D;<superscript>3</superscript>. Given the extrinsic parameters the transformation of a point X<subscript>l</subscript> &#x02208; &#x0211D;<superscript>3</superscript> in the left camera coordinate system into the right camera coordinate system is described as</para>
<para><graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="graphics/ch08_eq8.jpg"/></para>
<para>Normally, extrinsic stereo camera calibration comes down to recovering R<subscript>X</subscript> and t<subscript>X</subscript>. In the following, t<subscript>X</subscript> is assumed constant and only R<subscript>X</subscript> is recovered. During rectification R<subscript>X</subscript> is broken down into</para>
<para><graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="graphics/ch08_eq9.jpg"/></para>
<para>in order to determine the rotation of the left and right camera coordinate system to the common image plane respectively.</para>
<para>As decalibration is assumed to vary within a small range of only a few degrees, the recalibration is based on pre-rectified image point correspondences. The images may be pre-rectified using the camera parameters from the initial o&#x0FB04;ine or a previous calibration run.</para>
<para>Given <emphasis>N</emphasis> as the corresponding pre-rectified image points <inline-graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="graphics/ch08_inline9.jpg"/> and <inline-graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="graphics/ch08_inline10.jpg"/> for <emphasis>i</emphasis> = 1,&#x02026;,<emphasis>N</emphasis> and assuming pinhole camera matrices K for simplicity, the image points are related to their unit directional image vectors</para>
<para><graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="graphics/ch08_eq10.jpg"/></para>
<para>These vectors are related by the common epipolar constraint</para>
<para><graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="graphics/ch08_eq11.jpg"/></para>
<para>whereas &#x0158; denotes the rotation compensating the decalibration.</para>
<para>Since the decalibration is assumed to be small, optimization close to the identity matrix has to be avoided due to overfitting. Thus, the image vectors are re-rotated in the original camera coordinate systems via</para>
<para><graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="graphics/ch08_eq12.jpg"/></para>
<para>Projecting them onto their respective image planes yields</para>
<para><graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="graphics/ch08_eq13.jpg"/></para>
<para>Given the measured image vector <emphasis>p<subscript>i</subscript></emphasis>, the depth d<subscript><emphasis>i</emphasis></subscript> of the scene point X<subscript>l</subscript> and the decalibration &#x0158;, the corresponding image point Q<subscript><emphasis>i</emphasis></subscript> may also be modelled as</para>
<para><graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="graphics/ch08_eq14.jpg"/></para>
<para>Due to noise there is no exact solution, the objective function has to minimize the reprojection error <emphasis>e<subscript>i</subscript></emphasis> between measured and modelled image points</para>
<para><graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="graphics/ch08_eq15.jpg"/></para>
<para>Thus, the objective function including all image point correspondences is to minimize the sum of all squared reprojection errors and is formulated by</para>
<para><graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="graphics/ch08_eq16.jpg"/></para>
<para>with <emphasis role="strong">d</emphasis> = [d<subscript>1</subscript>&#x02026;d<subscript><emphasis>N</emphasis></subscript>]. The solution is found by a non-linear optimization method, e.g., Levenberg-Marquardt.</para>
</section>
<section class="lev1" id="sec8-6">
<title>8.6 Application-Specific Algorithmic Parameterization</title>
<para>The manifold varieties of algorithmic parameterizations for feature-based camera self-calibration lead to a sprawling design space, which is barely ascertainable in its entirety. Two exemplary selected application-specific aspects out of this design space are presented in this section. In subsection 8.6.1, the impact of differing bit depth of input images on the extraction of SIFT-features is shown. The parameterization of the presented matching methods is discussed in subsection 8.6.2.</para>
<section class="lev2" id="sec8-6-1">
<title>8.6.1 Decreasing Bit Depth of Input Images for Extraction of SIFT-features</title>
<para>The availability of various cameras and the ongoing development of image processor technology lead to stereo systems, which provide digital images with a higher dynamic range. A higher bit depth of 8, 12 or 16 bit per pixel (bpp) promises a higher degree of representable details. However, it is not proven that a feature extractor will extract features of higher quality, when the bit depth for the input images is increased. In case of SIFT-feature extraction for a stereo camera self-calibration, this section shows, that the extracted pixel correspondences for 8 bpp input images and 12 bpp input images lead to identical pixel correspondences.</para>
<para>To ensure full accuracy during computations and to avoid effects of application-specific optimizations, a floating point software version of the SIFT-feature extraction is fed with 8 bpp and 12 bpp input images. Depending on the pixel depth of the input images, a bit depth specific algorithmic parameter set is configured.</para>
<para>After the SIFT-feature extraction, the nearest-neighbor distance ratio matching in combination with a geometry-based restriction of matching candidates (GB NNDR) is applied in order to find corresponding pixels. The experiment is accomplished with a dataset for which rectified input images and related disparity maps exist to validate the detected pixel combinations (see <link linkend="F8-19">Figure <xref linkend="F8-19" remap="8.19"/></link>). By checking the disparity of a match position in the left input image, it is possible to verify the corresponding match position in the right image. A radius offset for the detected matches of &#x1D700; = 0.5 pixels for the position is tolerated during this investigation. The quantities for the extracted features and detected matches are shown in <link linkend="T8-3">Table <xref linkend="T8-3" remap="8.3"/></link>. The algorithmic parameters for the different SIFT-feature extractions are chosen to yield at least 1,000 features for both input images of the stereo camera system.</para>
<fig id="F8-19" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F8-19">Figure <xref linkend="F8-19" remap="8.19"/></link></label>
<caption><para>Verification of match positions with disparity maps. For rectified images, the horizontal difference of feature positions of a corresponding pixel pair equals the related value of the disparity map. With this technique, it is possible to validate resulting matching lists for datasets with ground truth disparity maps.</para></caption>
<graphic xlink:href="graphics/ch08_fig0019.jpg"/>
</fig>
<table-wrap position="float" id="T8-3">
<label><link linkend="T8-3">Table <xref linkend="T8-3" remap="8.3"/></link></label>
<caption><para>Numbers of extracted SIFT-features and detected matches for 8 bpp input images and 12 bpp images. The number of the geometry-based (GB) nearest-neighbor distance ratio matches (NNDR) drops significantly but ensures a high explicitness of matches. The algorithmic parameters of the SIFT-feature extraction of the two test cases are adjusted in order to extract a similar number of features, which lead to an identical number of verified matches</para></caption>
<table cellspacing="5" cellpadding="5" frame="hsides" rules="groups">
<thead>
<tr>
<td valign="bottom" align="left"></td>
<td valign="bottom" align="center">8 bpp Image</td>
<td valign="bottom" align="center">12 bpp Image</td>
</tr>
</thead>
<tbody>
<tr>
<td valign="top" align="left"><emphasis role="strong">#SIFT-features left image</emphasis></td>
<td valign="top" align="center">1,056</td>
<td valign="top" align="center">1,069</td>
</tr>
<tr>
<td valign="top" align="left"><emphasis role="strong">#SIFT-features right image</emphasis></td>
<td valign="top" align="center">1,011</td>
<td valign="top" align="center">1,019</td>
</tr>
<tr>
<td valign="top" align="left"><emphasis role="strong">#GB NNB matches</emphasis></td>
<td valign="top" align="center">1,013&#x0002A;</td>
<td valign="top" align="center">1,026&#x0002A;</td>
</tr>
<tr>
<td valign="top" align="left"><emphasis role="strong">#GB NNDR matches</emphasis></td>
<td valign="top" align="center">608/60.0%</td>
<td valign="top" align="center">611/59.6%</td>
</tr>
<tr>
<td valign="top" align="left"><emphasis role="strong">#disparity verified matches</emphasis></td>
<td valign="top" align="center">542/89.1%</td>
<td valign="top" align="center">544/89.0%</td>
</tr>
<tr>
<td valign="top" align="left"><emphasis role="strong">#matches not valid for evaluation</emphasis></td>
<td valign="top" align="center">29/4.8%</td>
<td valign="top" align="center">28/4.9%</td>
</tr>
<tr>
<td valign="top" align="left"><emphasis role="strong">#matches wrong correspondences</emphasis></td>
<td valign="top" align="center">37/6.1%</td>
<td valign="top" align="center">39/6.4%</td>
</tr>
</tbody>
</table>
<table-wrap-foot>
<para>&#x0002A;<emphasis>n</emphasis> features of the left image have matched with features of the right image; duplicate assignments in the right image possible.</para>
</table-wrap-foot>
</table-wrap>
<para>The significant difference between the number of geometry-based NNB matches and geometry-based NNDR matches is caused by the ratio factor, by which equivocal correspondences are rejected. A few correct pixel assignments may be rejected as well using this method, but the matching difference of those pixel pairs is not sufficient small. A valuation of the resulting absolute numbers is beyond the focus of this chapter, but by comparing the differences of the two versions of SIFT-feature extraction and matching it is clear, that there is nearly no difference between using an 8 bpp input image or a 12 bpp input image. To guarantee identical pixel correspondences, a visual inspection of the matching results is mandatory. In <link linkend="F8-20">Figure <xref linkend="F8-20" remap="8.20"/></link> the result of detected SIFT-features of the left input image (blue: identical matches, orange: exclusive 12 bpp features, red: exclusive 8 bpp features) is shown. Out of 1,069 detected feature positions in the 12 bpp input image, 1,045 (97.8%) identical feature positions are detected again in the 8 bpp input image. In addition, there are 24 (2.2%) exclusive 12 bpp feature positions detected and 14 (1.3%) exclusive 8 bpp feature positions detected. Similar numbers are revealed by comparison for the feature extraction of the different right input images.</para>
<fig id="F8-20" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F8-20">Figure <xref linkend="F8-20" remap="8.20"/></link></label>
<caption><para>Comparison of the resulting SIFT-features of the left input image for 12 bpp images and 8 bpp images. In the 12 bpp input image, an overall number of 1,069 features have been detected, whereas in the 8 bpp input image 1,056 features have been determined. A subset of 1,045 features (97.8%) is identical in both images (blue). There are 14 (1.3%) exclusive 8 bpp feature positions (red) detected and 24 (2.2%) exclusive 12 bpp feature positions (orange).</para></caption>
<graphic xlink:href="graphics/ch08_fig0020.jpg"/>
</fig>
<para>After the geometry-based NNDR matching of both feature sets, the comparison of the resulting pairs of the matched pixel correspondences allows a conclusion, if there is a difference between a feature extraction and matching of a 12 bpp input image and a 8 bpp input image. As shown in <link linkend="F8-21">Figure <xref linkend="F8-21" remap="8.21"/></link>, the bulk of the pixel correspondences are identical (blue lines); out of 611 found correspondences, 587 pairs (96.1%) are equal. In addition, there are 23 (3.8%) exclusive 8 bpp correspondences (red lines) and 24 (3.9%) exclusive 12 bpp correspondences (orange lines).</para>
<fig id="F8-21" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F8-21">Figure <xref linkend="F8-21" remap="8.21"/></link></label>
<caption><para>Comparison of the resulting pixel correspondences for the 8 bpp and 12 bpp input images. In the 12 bpp input image, an overall number of 611 pixel pairs has been detected, whereas in the 8 bpp input image 608 correspondences have been determined. A subset of 587 pairs (96.1%) is identical in both images (blue lines). Furthermore, there are 23 (3.8%) exclusive 8 bpp pairs (red lines) and 24 (3.9%) exclusive 12 bpp pixel correspondences (orange lines).</para></caption>
<graphic xlink:href="graphics/ch08_fig0021.jpg"/>
</fig>
<para>By tuning the algorithmic parameters in relation to the pixel depth of the used input images in this case study, it is possible to extract identical pixel correspondences. If there is no reason for further image processing steps, which require a proven higher bit depth than an 8 bpp graymap image, it is advisable to process the standard 8 bpp image in order to save computation resources.</para>
</section>
<section class="lev2" id="sec8-6-2">
<title>8.6.2 Threshold-based Feature Matching</title>
<para>In this context of wide baseline stereo matching, threshold-based feature matching is used. As highlighted in subsection 8.2.2, a nearest-neighbor-based match is defined as a pair of two descriptors, which are nearest neighbors of a matching process with a descriptor distance below a threshold. Furthermore, a feature only has one matching correspondence. In order to ensure a high rate of correct matches with a low rate of false matches, simultaneously, the threshold has to be selected in accordance to the algorithmic setup and the application-specific image content. Therefore, in this section a method for threshold selection is presented.</para>
<para>Underlying assumption for selecting a threshold for the presented NNB matching is the fact that there are correct matches with a low descriptor distance, false matches with a higher descriptor distance and nothing in between. Again, correct and false matches in this experiment are evaluated with existing disparity maps of the stereo camera system. The descriptor distances of an idealized NNB feature matching is shown in <link linkend="F8-22">Figure <xref linkend="F8-22" remap="8.22"/></link> (right plot). For this experiment, 2 &#x000D7; 10<superscript>6</superscript> random generated SIFT-descriptors have been generated, pairs have been matched and the distances have been evaluated in a histogram. The resulting distribution of descriptor distances equals the Gaussian distribution, defined by mean &#x003BC;<subscript>2</subscript> and deviation &#x003C3;<subscript>2</subscript>. Obviously, those descriptor distances are false matches. Correct matches follow the same distribution, but with differing mean &#x003BC;<subscript>1</subscript> and deviation &#x003C3;<subscript>1</subscript>, as depicted in <link linkend="F8-22">Figure <xref linkend="F8-22" remap="8.22"/></link> (left plot). By definition, descriptor distances are sums of absolute values, negative distances are not possible.</para>
<fig id="F8-22" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F8-22">Figure <xref linkend="F8-22" remap="8.22"/></link></label>
<caption><para>Histogram of random generated SIFT-descriptor distances of an idealized NNB feature matching. The right distribution with mean &#x003BC;<subscript>2</subscript> displays the distances of wrong matches, whereas the left distribution with mean &#x003BC;<subscript>1</subscript> illustrates the correct matches.</para></caption>
<graphic xlink:href="graphics/ch08_fig0022.jpg"/>
</fig>
<para>By comparing the distance histogram of the synthetic idealized NNB feature matching (see <link linkend="F8-22">Figure <xref linkend="F8-22" remap="8.22"/></link>) with a real-world NNB SIFT-feature matching (see <link linkend="F8-23">Figure <xref linkend="F8-23" remap="8.23"/></link>, left plot), two distinctive differences are noticeable: Firstly, the distance distribution for the correct feature distances and the false feature distance are overlapped and secondly, both distributions are skewed in direction of the others distribution mean value. This distortion is explainable by the fact, that there are always non-avoidable false positives and false negatives during the matching process. Further information concerning the distance distribution is available in [<link linkend="ch08_B39">39</link>].</para>
<fig id="F8-23" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F8-23">Figure <xref linkend="F8-23" remap="8.23"/></link></label>
<caption><para>Histogram of descriptor distances for a NNB SIFT-feature matching with the extracted threshold according to Otsu. Distances of correct/wrong matches are displayed in blue/orange. The complete distribution is shown in purple.</para></caption>
<graphic xlink:href="graphics/ch08_fig0023.jpg"/>
</fig>
<para>The resulting distance distribution for the NNB SIFT-feature matching is shown in <link linkend="F8-23">Figure <xref linkend="F8-23" remap="8.23"/></link> (right plot). Based on this plot, a suitable threshold for the matching process has to be extracted. It is desirable to select a threshold, which skips all of the false matches and approves all correct matches, and which corresponds to a threshold between the two ideal distributions. Due to skewing and overlapping of the distributions, there is always a set of false matches, which has to be tolerated by the chosen threshold. Therefore, the goal is to minimize the false matches and maximize the correct matches, simultaneously.</para>
<para>Using the Otsu method [<link linkend="ch08_B40">40</link>], two overlapping distributions are separable by applying the discriminant criterion and utilizing the zeroth- and first-order cumulative moments of the distance histogram. Originally, Otsu presented his method for binarization of grey scale images, but the algorithm may be generalized for different types of histogram decomposition. By separating the two Gaussian distributions with Otsu&#x02019;s method, the descriptor distance which divides the distribution into a correct and a false region is determined and set as the matching threshold. Four different case studies have been executed (see <link linkend="F8-23">Figures <xref linkend="F8-23" remap="8.23"/></link> and <link linkend="F8-24"><xref linkend="F8-24" remap="8.24"/></link>). Even for distance distributions, which do not show such a clear composition of two Gaussian distributions as the SIFT-feature matching case demonstrates, the Otsu&#x02019;s applied method provides reasonable thresholds.</para>
<fig id="F8-24" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F8-24">Figure <xref linkend="F8-24" remap="8.24"/></link></label>
<caption><para>Histograms of descriptor distances for different NNB feature matching case studies with the extracted threshold according to Otsu. Distances of correct/wrong matches are displayed in blue/orange. The complete distribution is shown in purple. Due to different descriptors and resulting matching distances, various axis scales for clear presentation are used.</para></caption>
<graphic xlink:href="graphics/ch08_fig024.jpg"/>
</fig>
<para>For the entire application of wide baseline stereo matching, the threshold extraction has been performed o&#x0FB04;ine, but it is also conceivable to implement an adaptive frame-to-frame online threshold extraction.</para>
</section>
<section class="lev2" id="sec8-6-3">
<title>8.6.3 Parameterization of Matching Methods</title>
<para>The aim of this section is the evaluation of the presented matching procedures (see subsection 8.2.2) and the related parameter sets regarding their quality of assigned pixel correspondences in stereo camera systems images. The presented matching methods (TB, NNB, NNDR) result in varying correspondence lists, each of different size and with a variable percentage of correct pixel correspondences. The matching technique, which provides a high rate of correct correspondences for this application and a low rate of wrong assignments simultaneously, has to be identified.</para>
<para>It is possible to speed up the matching process through helpful assumptions about the position of corresponding feature points based on the given geometry of the stereo camera system. Using a spatial pre-selection of detected feature points, the number of candidates for the subsequent descriptor matching is significantly limited. In addition to reducing the problem size for the matching step, the quality of the feature point correspondences is increased. This is caused by excluding matching candidates, which are geometrically contradictory for the used camera setup. Despite the possibility of highly similar descriptors, wrong correspondences are prohibited even before the matching step using this technique.</para>
<section class="lev3" id="sec8-6-3-1">
<title>Geometry-based feature matching</title>
<para>The effect of spatial restriction of possible matching candidates (see <link linkend="F8-17">Figure <xref linkend="F8-17" remap="8.17"/></link>) in order to reduce the problem size for the feature matching depends on the permissible window size for matching candidates. In <link linkend="T8-4">Table <xref linkend="T8-4" remap="8.4"/></link>, an overview of the average number of candidates per matching event is given. In the left/right 8-bit input image, 1,057/1,011 SIFT-features are extracted, which leads to 1,011&#x000D7;1,057 descriptor comparisons, when a brute force approach is used. With a window size of +/-4 pixel in y-direction (for rectified input images) and +100/-4 pixel in x-direction, the average number of descriptor comparisons is reduced to 7&#x000D7;1,057, which is a reduction of problem size of two orders of magnitude. The exact numbers of the candidate distribution for the geometry-based matching are shown in <link linkend="F8-25">Figure <xref linkend="F8-25" remap="8.25"/></link>. The reduction of problem size by a factor of &#x000D7;144 using the geometry-based feature matching in relation to the global matching clearly outperforms the test, if a detected feature is a matching candidate. Therefore, using the geometry-based matching approach is advisable.</para>
<table-wrap position="float" id="T8-4">
<label><link linkend="T8-4">Table <xref linkend="T8-4" remap="8.4"/></link></label>
<caption><para>Results for a SIFT-feature matching for a global matching and a geometry-based feature matching. The window size for the geometry-based feature matching is +/-4 pixel in y-direction and +100/-4 pixel in x-direction</para></caption>
<table cellspacing="5" cellpadding="5" frame="hsides" rules="groups">
<thead>
<tr>
<td valign="bottom" align="left"></td>
<td valign="bottom" align="center">Global Matching</td>
<td valign="bottom" align="center">Geometry-Based Matching</td>
</tr>
</thead>
<tbody>
<tr>
<td valign="top" align="left"><emphasis role="strong">#SIFT-features left image</emphasis></td>
<td valign="top" align="center">1,057</td>
<td valign="top" align="center">1,057</td>
</tr>
<tr>
<td valign="top" align="left"><emphasis role="strong">#SIFT-features right image</emphasis></td>
<td valign="top" align="center">1,011</td>
<td valign="top" align="center">1,011</td>
</tr>
<tr>
<td valign="top" align="left"><emphasis role="strong">#avg matching candidates</emphasis></td>
<td valign="top" align="center"><emphasis role="strong">1,011@1,057 matchings</emphasis></td>
<td valign="top" align="center"><emphasis role="strong">7@1,057 matchings</emphasis></td>
</tr>
</tbody>
</table>
</table-wrap>
<fig id="F8-25" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F8-25">Figure <xref linkend="F8-25" remap="8.25"/></link></label>
<caption><para>Exemplary histogram for the distribution of matching candidates for the geometry-based feature matching (see <link linkend="T8-4">Table <xref linkend="T8-4" remap="8.4"/></link>). The average number of candidates is 7 candidates per matching event.</para></caption>
<graphic xlink:href="graphics/ch08_fig0025.jpg"/>
</fig>
</section>
<section class="lev3" id="sec8-6-3-2">
<title>Choosing a matching method</title>
<para>Different methods of feature matching with or without a spatial restriction of the matching candidates directly affect the quality of resulting feature correspondence lists. Exemplary numbers for a variation of matching methods are shown in <link linkend="T8-5">Table <xref linkend="T8-5" remap="8.5"/></link>. Again, in the left/right 8-bit input image, 1,057/1,011 SIFT-features are extracted. The total number of detected matches for each algorithmic combination is given in brackets (see <link linkend="T8-5">Table <xref linkend="T8-5" remap="8.5"/></link>).</para>
<table-wrap position="float" id="T8-5">
<label><link linkend="T8-5">Table <xref linkend="T8-5" remap="8.5"/></link></label>
<caption><para>Results of disparity verified feature correspondences for different combinations of global and spatial restriction matching methods. In addition to a high rate of correct matches, a minimal number of pixel correspondences has to be given for a reliable subsequent image processing. The total numbers of detected matches for selected algorithmic combinations are given in brackets. The number of correct matches and wrong matches do not result in 100% because of missing values in the ground truth disparity maps. Those values are skipped for evaluation</para></caption>
<table cellspacing="5" cellpadding="5" frame="hsides" rules="groups">
<thead>
<tr>
<td valign="bottom" align="left"></td>
<td valign="bottom" align="center" colspan="2">Global Matching<emphasis role="cline"/></td>
<td valign="bottom" align="center" colspan="2">Geometry-Based Matching<emphasis role="cline"/></td>
</tr>
<tr>
<td valign="top" align="left"></td>
<td valign="top" align="center">#Correct</td>
<td valign="top" align="center">#Wrong</td>
<td valign="top" align="center">#Correct</td>
<td valign="top" align="center">#Wrong</td>
</tr>
<tr>
<td valign="top" align="left"></td>
<td valign="top" align="center">Matches</td>
<td valign="top" align="center">Matches</td>
<td valign="top" align="center">Matches</td>
<td valign="top" align="center">Matches</td>
</tr>
</thead>
<tbody>
<tr>
<td valign="top" align="left"><emphasis role="strong">#TB disparity verified matches</emphasis></td>
<td valign="top" align="center">562 (1,057)</td>
<td valign="top" align="center">400</td>
<td valign="top" align="center">702 (1,006)</td>
<td valign="top" align="center">240</td>
</tr>
<tr>
<td valign="top" align="left"></td>
<td valign="top" align="center">53.2%</td>
<td valign="top" align="center">37.8%</td>
<td valign="top" align="center">69.8%</td>
<td valign="top" align="center">23.9%</td>
</tr>
<tr>
<td valign="top" align="left"><emphasis role="strong">#NNB disparity verified matches</emphasis></td>
<td valign="top" align="center">541 (735)</td>
<td valign="top" align="center">149</td>
<td valign="top" align="center"><emphasis role="strong">556 (597)</emphasis></td>
<td valign="top" align="center"><emphasis role="strong">22</emphasis></td>
</tr>
<tr>
<td valign="top" align="left"></td>
<td valign="top" align="center">73.6%</td>
<td valign="top" align="center">20.3%</td>
<td valign="top" align="center"><emphasis role="strong">93.1%</emphasis></td>
<td valign="top" align="center"><emphasis role="strong">3.7%</emphasis></td>
</tr>
<tr>
<td valign="top" align="left"><emphasis role="strong">#NNDR disparity</emphasis></td>
<td valign="top" align="center">493 (540)</td>
<td valign="top" align="center">31</td>
<td valign="top" align="center">542 (605)</td>
<td valign="top" align="center">36</td>
</tr>
<tr>
<td valign="top" align="left"><emphasis role="strong">verified matches</emphasis></td>
<td valign="top" align="center">91.3%</td>
<td valign="top" align="center">5.7%</td>
<td valign="top" align="center">89.6%</td>
<td valign="top" align="center">6.0%</td>
</tr>
</tbody>
</table>
</table-wrap>
<para>For each method, the geometry-based feature matching grants an improvement of the correct matching rate or the rate remains in the same order of magnitude. The resulting correspondence lists generated with the threshold-based feature matching has the highest number of entries, but the quota of correct matches is insufficiently low. A combination of NNB-matching and the geometry-based restriction leads to the highest rate of correct matches (93.1%) and a low rate of wrong matches (3.7%), simultaneously. Furthermore, the absolute number of correct matches (556) guarantees a stable base for following image processing algorithms. Therefore, the use of the NNB-matching with a geometry-based restriction of matching candidates in order to extract pixel correspondence lists for a feature-based camera self-calibration is recommended.</para>
</section>
<section class="lev3" id="sec8-6-3-3">
<title>Accuracy of localization</title>
<para>All prior investigations in this section are based on the assumption that &#x02018;disparity verified matching&#x02019; defines the consensus of the extracted feature-based disparity including a small offset &#x03B5; and the related actual disparity taken from the disparity ground truth map. This offset &#x1D700; is necessary in order to tolerate small deviations of feature positions, which are caused during the localization step.</para>
<para>To evaluate the impact of varying offsets &#x1D700;, in the left/right 8-bit input image, 1,057/1,011 SIFT-features are extracted and matched with a geometry-based approach for the TB, NNB and NNDR matching method. The rates of disparity verified pixel correspondences for different offsets &#x1D700; are shown in <link linkend="F8-26">Figure <xref linkend="F8-26" remap="8.26"/></link>. Remarkably the qualitative trend is identical for all matching methods. Furthermore, all methods run into saturation for offsets higher than 3 pixel. As expected, the threshold-based matching (TB) provides the lowest matching rate for all offsets &#x1D700;. The nearest-neighbor based (NNB) matching method results constantly in the highest rate for disparity verified matches with approximately over 90% (&#x0003C;537 out of 597 matches) for an offset larger than 1 pixel. It is worth mentioning that 70% of all matches (419 out of 597 matches) for the NNB method are identical to the ground truth disparity map (offsets &#x1D700; = 0 pixel).</para>
<fig id="F8-26" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F8-26">Figure <xref linkend="F8-26" remap="8.26"/></link></label>
<caption><para>Rates of disparity verified pixel correspondences for different offsets &#x1D700; and three matching methods. For all methods, the rate of correct matches runs into saturation. The NNB matching method performs best over all offsets &#x1D700;. (TB: Threshold-Based Matching; NNB: Nearest-Neighbor-Based Matching; NNDR: Nearest-Neighbor Distance Ratio Matching).</para></caption>
<graphic xlink:href="graphics/ch08_fig0026.jpg"/>
</fig>
<para>To achieve an applicable trade-off between exact &#x02018;disparity verified correspondences&#x02019; and permitting localization errors due to viewpoint changes, all prior investigations have been verified with an offset &#x1D700; = 3 pixel.</para>
</section>
</section></section>
<section class="lev1" id="sec8-7">
<title>8.7 Hardware Based SIFT-Feature Extraction</title>
<para>Fast and reliable extraction of SIFT-features in the presented context of feature-based camera self-calibration requires a tuned implementation of the algorithm for the hardware platform used. Therefore, in this section, the relevant hardware properties of SIFT-feature extraction are introduced and an overview of existing SIFT-feature implementations is given.</para>
<section class="lev2" id="sec8-7-1">
<title>8.7.1 Challenges of SIFT-Feature Extraction</title>
<para>The extraction of SIFT-features is a challenging task due to the number of operations and memory accesses that have to be executed. As depicted in <link linkend="F8-27">Figure <xref linkend="F8-27" remap="8.27"/></link>, the algorithmic steps of SIFT-feature extraction differ in varying ratios of control complexity and regular arithmetic. As shown in [<link linkend="ch08_B41">41</link>], the building of scale-space, which consists of multiple separable and symmetric Gaussian filters, is an arithmetically intensive task with almost no control overhead. In contrast, parts of the feature points detection or the descriptor generation require control mechanisms, which result in heavy branching on conventional processors. Furthermore, the scale-space is mandatory for the feature description and has to be buffered until the generation of descriptors, which requires a large memory and arbitrarily non-aligned memory accesses aggravate the challenging memory bottleneck. In addition, the algorithmic quality of SIFT has to be ensured for subsequent processing steps, which requires an appropriate level of internal accuracy of the temporal results.</para>
<fig id="F8-27" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F8-27">Figure <xref linkend="F8-27" remap="8.27"/></link></label>
<caption><para>Break down of SIFT-feature extraction into four algorithmic steps and relating qualitatively quota of control complexity and complexity (i.e., regular arithmetic).</para></caption>
<graphic xlink:href="graphics/ch08_fig0027.jpg"/>
</fig>
<para>Therefore, specialized architectures are necessary to ensure the processing performance demanded for SIFT-feature extraction. At the same time, those specialized systems have to be as flexible as possible to guarantee a fast implementation of future algorithms which might perform better compared to state-of-the-art feature extractors [<link linkend="ch08_B42">42</link>].</para>
</section>
<section class="lev2" id="sec8-7-2">
<title>8.7.2 Existing Systems for Hardware Based SIFT-Feature Extraction</title>
<para>In the following <link linkend="T8-6">Table <xref linkend="T8-6" remap="8.6"/></link>, a set of existing systems/platforms for the hardware based SIFT-feature extraction is presented. The selection shown is not meant to be exhaustive, but elucidates the trade-off of different platforms regarding sufficient processing power, low power consumption and satisfactory flexibility for future algorithm implementations.</para>
<table-wrap position="float" id="T8-6">
<label><link linkend="T8-6">Table <xref linkend="T8-6" remap="8.6"/></link></label>
<caption><para>Overview of existing systems for SIFT-feature extraction</para></caption>
<table cellspacing="5" cellpadding="5" frame="hsides" rules="groups">
<thead>
<tr>
<td valign="bottom" align="left"></td>
<td valign="bottom" align="center" colspan="2">Implementation<emphasis role="cline"/></td>
<td valign="bottom" align="left"></td>
<td valign="bottom" align="center"></td>
<td valign="bottom" align="center">Frequency</td>
<td valign="bottom" align="center">Performance</td>
</tr>
<tr>
<td valign="top" align="left"></td>
<td valign="top" align="left">Author</td>
<td valign="top" align="left">Year</td>
<td valign="top" align="left">Device</td>
<td valign="top" align="center">Powre</td>
<td valign="top" align="center">(MHz)&#x0002A;&#x0002A;</td>
<td valign="top" align="center">(fps)</td>
</tr>
</thead>
<tbody>
<tr>
<td valign="top" align="left"><emphasis role="strong">CPU &#x00026;</emphasis></td>
<td valign="top" align="left">Moren et al. [<link linkend="ch08_B43">43</link>]</td>
<td valign="top" align="left">2015</td>
<td valign="top" align="left">Nvidia GTX 780 TI</td>
<td valign="top" align="center">250 W&#x0002A;</td>
<td valign="top" align="center">875</td>
<td valign="top" align="center">137.6 @ 640x480</td>
</tr>
<tr>
<td valign="top" align="left"><emphasis role="strong">GPU</emphasis></td>
<td valign="top" align="left"></td>
<td valign="top" align="left"></td>
<td valign="top" align="left">AMD R9-290</td>
<td valign="top" align="center">300 W&#x0002A;</td>
<td valign="top" align="center">947</td>
<td valign="top" align="center">98.7 @ 640x480</td>
</tr>
<tr>
<td valign="top" align="left"></td>
<td valign="top" align="left"></td>
<td valign="top" align="left"></td>
<td valign="top" align="left">Nvidia GTX 580</td>
<td valign="top" align="center">244 W&#x0002A;</td>
<td valign="top" align="center">772</td>
<td valign="top" align="center">77.2 @ 640x480</td>
</tr>
<tr>
<td valign="top" align="left"></td>
<td valign="top" align="left"></td>
<td valign="top" align="left"></td>
<td valign="top" align="left">Nvidia Tesla C2050</td>
<td valign="top" align="center">238 W&#x0002A;</td>
<td valign="top" align="center">1150</td>
<td valign="top" align="center">74.0 @ 640x480</td>
</tr>
<tr>
<td valign="top" align="left"></td>
<td valign="top" align="left"></td>
<td valign="top" align="left"></td>
<td valign="top" align="left">Intel MIC 3120A</td>
<td valign="top" align="center">300 W&#x0002A;</td>
<td valign="top" align="center">1100</td>
<td valign="top" align="center">16.8 @ 640x480</td>
</tr>
<tr>
<td valign="top" align="left"></td>
<td valign="top" align="left"></td>
<td valign="top" align="left"></td>
<td valign="top" align="left">Intel Core-i7 4930K</td>
<td valign="top" align="center">130 W&#x0002A;</td>
<td valign="top" align="center">3400</td>
<td valign="top" align="center">32.6 @ 640x480</td>
</tr>
<tr>
<td valign="top" align="left"></td>
<td valign="top" align="left"></td>
<td valign="top" align="left"></td>
<td valign="top" align="left">Intel Xeon E5-2667</td>
<td valign="top" align="center">130 W&#x0002A;</td>
<td valign="top" align="center">2900</td>
<td valign="top" align="center">28.3 @ 640x480</td>
</tr>
<tr>
<td valign="top" align="left"></td>
<td valign="top" align="left"></td>
<td valign="top" align="left"></td>
<td valign="top" align="left">AMD Opteron 6168</td>
<td valign="top" align="center">115 W&#x0002A;</td>
<td valign="top" align="center">1900</td>
<td valign="top" align="center">8.0 @ 640x480</td>
</tr>
<tr>
<td valign="top" align="left"></td>
<td valign="top" align="left"></td>
<td valign="top" align="left"></td>
<td valign="top" align="left">Intel Xeon E5-2667</td>
<td valign="top" align="center">130 W&#x0002A;</td>
<td valign="top" align="center">2900</td>
<td valign="top" align="center">4.0 @ 640x480</td>
</tr>
<tr>
<td valign="top" align="left"><emphasis role="strong">Mobile</emphasis></td>
<td valign="top" align="left">Rister et al. [<link linkend="ch08_B44">44</link>]</td>
<td valign="top" align="left">2013</td>
<td valign="top" align="left">Snapdragon S4</td>
<td valign="top" align="center">&#x0223C;4 W</td>
<td valign="top" align="center">1,700/400</td>
<td valign="top" align="center">9.9 @ 320x240</td>
</tr>
<tr>
<td valign="top" align="left"><emphasis role="strong">GPU</emphasis></td>
<td valign="top" align="left"></td>
<td valign="top" align="left"></td>
<td valign="top" align="left">Nexus 7</td>
<td valign="top" align="center">N/A</td>
<td valign="top" align="center">1,600/520</td>
<td valign="top" align="center">8.6 @ 320x240</td>
</tr>
<tr>
<td valign="top" align="left"></td>
<td valign="top" align="left"></td>
<td valign="top" align="left"></td>
<td valign="top" align="left">Galaxy Note II</td>
<td valign="top" align="center">N/A</td>
<td valign="top" align="center">1,600/400</td>
<td valign="top" align="center">7.6 @ 320x240</td>
</tr>
<tr>
<td valign="top" align="left"></td>
<td valign="top" align="left"></td>
<td valign="top" align="left"></td>
<td valign="top" align="left">Tegra 250</td>
<td valign="top" align="center">&#x0223C;3 W</td>
<td valign="top" align="center">1,000/333</td>
<td valign="top" align="center">7.9 @ 320x240</td>
</tr>
<tr>
<td valign="top" align="left"><emphasis role="strong">FPGA &#x00026;</emphasis></td>
<td valign="top" align="left">Bonato et al. [<link linkend="ch08_B45">45</link>]</td>
<td valign="top" align="left">2008</td>
<td valign="top" align="left">Altera Stratix II</td>
<td valign="top" align="center">N/A</td>
<td valign="top" align="center">100</td>
<td valign="top" align="center">30.0 @ 320x240</td>
</tr>
<tr>
<td valign="top" align="left"><emphasis role="strong">ASIC</emphasis></td>
<td valign="top" align="left">Yao et al. [<link linkend="ch08_B46">46</link>]</td>
<td valign="top" align="left">2009</td>
<td valign="top" align="left">Xilinx Virtex 5</td>
<td valign="top" align="center">N/A</td>
<td valign="top" align="center">100</td>
<td valign="top" align="center">32.3 @ 640x480</td>
</tr>
<tr>
<td valign="top" align="left"></td>
<td valign="top" align="left">Huang et al. [<link linkend="ch08_B47">47</link>]</td>
<td valign="top" align="left">2012</td>
<td valign="top" align="left">TSMC 18&#x003BC;m CMOS</td>
<td valign="top" align="center">N/A</td>
<td valign="top" align="center">100</td>
<td valign="top" align="center">30.0 @ 640x480</td>
</tr>
<tr>
<td valign="top" align="left"></td>
<td valign="top" align="left">Yum et al. [<link linkend="ch08_B48">48</link>]</td>
<td valign="top" align="left">2015</td>
<td valign="top" align="left">Xilinx Virtex 6</td>
<td valign="top" align="center">N/A</td>
<td valign="top" align="center">170</td>
<td valign="top" align="center">36.9 @ 1280x720</td>
</tr>
<tr>
<td valign="top" align="left"><emphasis role="strong">ASIP</emphasis></td>
<td valign="top" align="left">Mentzer et al. [<link linkend="ch08_B41">41</link>, <link linkend="ch08_B42">42</link>]</td>
<td valign="top" align="left">2015</td>
<td valign="top" align="left">TSMC 45nm process</td>
<td valign="top" align="center">&#x0003C;1 W</td>
<td valign="top" align="center">400</td>
<td valign="top" align="center">1 @ 800x640</td>
</tr>
</tbody>
</table>
</table-wrap>
<blockquote role="flushleft">
<para>&#x0002A;Thermal Design Power.</para>
<para>&#x0002A;&#x0002A;For category mobile GPU: CPU/GPU frequency.</para></blockquote>
<para>Moren et al. [<link linkend="ch08_B43">43</link>] presented in 2015 a comprehensive survey of a SIFT-feature extraction for homogeneous and heterogeneous CPU/GPU systems. With different techniques for parallelization and a portable performance concept using OpenCL (Open Computing Language), the SIFT-feature extraction has been implemented on various single device and multi-device platforms. The systems are separated into four different implementations, where each implementation is optimized according to device specific characteristics:</para>
<itemizedlist mark="bullet" spacing="normal">
<listitem><para>Host-device implementation for control</para></listitem>
<listitem><para>GPU device implementation</para></listitem>
<listitem><para>Multi-core CPU device</para></listitem>
<listitem><para>Multi-device implementation</para></listitem>
</itemizedlist>
<para>The systems are evaluated for multiple image sizes for equal algorithmic setups. Single device runtimes are listed in <link linkend="T8-6">Table <xref linkend="T8-6" remap="8.6"/></link> for VGA image size. Noticeable is the fact, that all single GPU systems and multi-device systems, in which a GPU is enlisted, provide enough performance for a real-time SIFT-feature extraction for VGA images, but require more than 230 W power consumption. Furthermore, CPU single device systems are close to real-time by providing 17&#x02013;32 fps, but again, the power consumption is far too high for use in automobiles with over 115 W power consumption. The AMD Opteron 6168 and Intel Xeon E5 do not reach a sufficient frame rate for a SIFT-feature extraction application. The author presents three different heterogeneous systems, which are assembled by the afore mentioned single device systems, which provide enough performance for real-time applications even for very large images. For all systems, the flexibility is ensured by using the high-level OpenCL.</para>
<para>In 2013, Rister [<link linkend="ch08_B44">44</link>] proposed an investigation of SIFT-feature extraction on four different platforms using mobile GPUs. The author used a heterogeneous dataflow scheme and applied a partitioning of workload between CPU and GPU. Different platform specific optimizations are used, e.g., data compressing by pixel reordering or branchless convolution through on-the-fly code generation. With frame rates reaching between 7.6 fps and 9.9 fps, the performance is too poor for an use in ADAS, but a power consumption of the complete systems of &#x0003C;5 W fulfills the requirements demanded. Furthermore, flexibility is guaranteed by OpenGL for Android.</para>
<para>Bonato et al. presented 2008 the first hardware based SIFT implementation [<link linkend="ch08_B45">45</link>]. The heterogeneous system consists of a hardware accelerator for SIFT-feature detection and a NIOS II softcore processor for SIFT-descriptor generation. The system has been emulated on an Altera Stratix II FPGA and a frame rate of 30 fps for QVGA images has been reached.</para>
<para>One year later in 2009, Yao et al. claimed to reach a comparable frame rate of 32.3 fps, but for VGA images. They presented a hardware-based SIFT-feature detector, which has been emulated on a ML507 board, and a SIFT-feature generation in software. The drawback of the presented work is the simplified SIFT scale-space, which leads to a limited algorithmic quality, compared to the original algorithm.</para>
<para>The first fully hardware-based SIFT-feature extraction has been presented in 2012 by Huang et al. [<link linkend="ch08_B47">47</link>]. The author&#x02019;s system reaches a frame rate of 30 fps for VGA images and uses a TSMC 180 &#x00B5;m CMOS process.</para>
<para>In 2015, Yum et al. proposed a FPGA-based full SIFT implementation, which is capable of processing 36.85 fps for HD images on a Xilinx Virtex 6 device [<link linkend="ch08_B48">48</link>]. By reducing the amount of necessary internal memory and a local-patch reuse scheme, a high data throughput is reached, but the building of scale-space is adjusted, which affects the algorithmic quality.</para>
<para>These hardware-based approaches provide adequate processing power for a high frame rate and a sufficiently low power consumption of typically &#x0003C;10 W, but the presented systems are not SW-flexible.</para>
<para>Mentzer et al. [<link linkend="ch08_B41">41</link>, <link linkend="ch08_B42">42</link>] presented an ASIP-based SIFT-feature extraction, which preserves the full algorithmic quality. Sufficient flexibility for future algorithms of image feature extraction is ensured by the platform-specific attribute of full software programmability. The drawback of the presented case study is the low frame rate in FPGA emulation, which prohibits a real time application in automotive use.</para>
<para>Thus, heterogeneous systems consisting of dedicated hardware for accelerating the scale-space construction and a processor-based descriptor generation is a promising trade-off between flexibility, performance and power consumption. State-of-the-art conventional CPUs and GPUs are too power greedy, nowadays mobile GPUs do not reach sufficient frame rates and pure hardware-based systems do not fulfill the requirements for flexibility. A trade-off concerning flexibility by supporting a processor with non-programmable hardware accelerators is a possible approach for a SIFT-feature extraction in the field of Advanced Driver Assistance Systems.</para>
</section>
</section>
<section class="lev1" id="sec8-8">
<title>8.8 Conclusion</title>
<para>In this chapter, selected aspects of self-calibration for wide baseline stereo camera systems for automotive applications have been introduced. Starting at the extraction and matching of image features up to the extrinsic online self calibration of stereo camera systems, fundamental algorithms have been presented. A promising algorithmic combination consisting of the extraction of SIFT-features, nearest-neighbor-based matching with spatial selection of matching candidates and the estimation of camera parameters in order to rectify misaligned stereo images have been discussed in detail.</para>
<para>Three exemplary aspects of algorithmic parameterizations, which are the impact of a decreasing bit depth of input images, the selection of a matching method and the threshold selection for the matching process, have been examined in detail to show substitutionally the complexity of adjusting existing algorithms to new applications.</para>
<para>In the last section, basic challenges of hardware-based SIFT-feature extraction are presented and hardware-specific solutions for the afore mentioned algorithmic challenges are discussed. Finally, existing systems for the extraction of SIFT-features are reviewed.</para>
<para>As discussed in this chapter, there is no state-of-the-art hardware implementation for the proposed algorithmic combination, which fulfills the three requirements for ADAS, and delivers sufficient processing performance, low power consumption and full flexibility for future algorithms. Thus, remaining challenges will be solved to improve safety for vulnerable road users and to enhance comfort in future automobiles.</para>
</section>
<section class="lev1" id="sec8-9">
<title>References</title>
<orderedlist numeration="arabic" continuation="restarts" spacing="normal">
<listitem><para><anchor id="ch08_B1"/>K. Genuit, Sound-Engineering im Automobilbereich, Springer, 2010. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=K%2E+Genuit%2C+Sound-Engineering+im+Automobilbereich%2C+Springer%2C+2010%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch08_B2"/>C. Schmid, R. Mohr and C. Bauckhage, &#x0201C;Evaluation of Interest Point Detectors,&#x0201D; <emphasis>International Journal of Computer Vision</emphasis>, pp. 151&#x02013;172, 2010. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=C%2E+Schmid%2C+R%2E+Mohr+and+C%2E+Bauckhage%2C+%22Evaluation+of+Interest+Point+Detectors%2C%22+International+Journal+of+Computer+Vision%2C+pp%2E+151-172%2C+2010%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch08_B3"/>K. Mikolajczyk and C. Schmid, &#x0201C;A Performance Evaluation of Local Descriptors,&#x0201D; <emphasis>IEEE Transcations on Pattern Analysis and Machine Intelligence,</emphasis> pp. 1615&#x02013;1630, 2005. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=K%2E+Mikolajczyk+and+C%2E+Schmid%2C+%22A+Performance+Evaluation+of+Local+Descriptors%2C%22+IEEE+Transcations+on+Pattern+Analysis+and+Machine+Intelligence%2C+pp%2E+1615-1630%2C+2005%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch08_B4"/>H. Aan&#x000E6;s, A. L. Dahl and K. S. Pedersen, &#x0201C;Interesting Interest Points,&#x0201D; <emphasis>International Journal of Computer Vision,</emphasis> pp. 18&#x02013;35, 2012. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=H%2E+Aan%E6s%2C+A%2E+L%2E+Dahl+and+K%2E+S%2E+Pedersen%2C+%22Interesting+Interest+Points%2C%22+International+Journal+of+Computer+Vision%2C+pp%2E+18-35%2C+2012%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch08_B5"/>S. Gauglitz, T. H&#x000F6;llerer and M. Turk, &#x0201C;Evaluation of Interest Point Detectors and Feature Descriptors for Visual Tracking,&#x0201D; <emphasis>International Journal of Computer Vision,</emphasis>2011. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=S%2E+Gauglitz%2C+T%2E+H%F6llerer+and+M%2E+Turk%2C+%22Evaluation+of+Interest+Point+Detectors+and+Feature+Descriptors+for+Visual+Tracking%2C%22+International+Journal+of+Computer+Vision%2C2011%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch08_B6"/>J. Heinly, E. Dunn and J.-M. Frahm, &#x0201C;Comparative Evaluation of Binary Features,&#x0201D; <emphasis>ECCV,</emphasis> pp. 759&#x02013;773, 2012. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=J%2E+Heinly%2C+E%2E+Dunn+and+J%2E-M%2E+Frahm%2C+%22Comparative+Evaluation+of+Binary+Features%2C%22+ECCV%2C+pp%2E+759-773%2C+2012%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch08_B7"/>K. Mikolajczyk and C. Schmid, &#x0201C;Scale &#x00026; Affine Invariant Interest Point Detectors,&#x0201D; <emphasis>International Journal of Computer Vision,</emphasis> pp. 63&#x02013;86, 2004. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=K%2E+Mikolajczyk+and+C%2E+Schmid%2C+%22Scale+%26+Affine+Invariant+Interest+Point+Detectors%2C%22+International+Journal+of+Computer+Vision%2C+pp%2E+63-86%2C+2004%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch08_B8"/>J. Shi and C. Tomasi, &#x0201C;Good Features to Track,&#x0201D; <emphasis>Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR),</emphasis> pp. 593&#x02013;600, 1994. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=J%2E+Shi+and+C%2E+Tomasi%2C+%22Good+Features+to+Track%2C%22+Proceedings+of+the+IEEE+Conference+on+Computer+Vision+and+Pattern+Recognition+%28CVPR%29%2C+pp%2E+593-600%2C+1994%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch08_B9"/>D. G. Lowe, &#x0201C;Object recognition from local scale-invariant features,&#x0201D; <emphasis>Proceedings of the International Conference on Computer Vision,</emphasis> pp. 1150&#x02013;1157, 1999. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=D%2E+G%2E+Lowe%2C+%22Object+recognition+from+local+scale-invariant+features%2C%22+Proceedings+of+the+International+Conference+on+Computer+Vision%2C+pp%2E+1150-1157%2C+1999%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch08_B10"/>H. Hirschm&#x000FC;ller, &#x0201C;Accurate and efficient stereo processing by semi-global matching and mutual information,&#x0201D; in <emphasis>IEEE Computer Society Conference on Computer Vision and Pattern Recognition</emphasis>, 2005. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=H%2E+Hirschm%FCller%2C+%22Accurate+and+efficient+stereo+processing+by+semi-global+matching+and+mutual+information%2C%22+in+IEEE+Computer+Society+Conference+on+Computer+Vision+and+Pattern+Recognition%2C+2005%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch08_B11"/>Z. Zhang, &#x0201C;A Flexible New Technique for Camera Calibration,&#x0201D; <emphasis>IEEE Transactions on Pattern Analysis and Machine Intelligence</emphasis>, pp. 1330&#x02013;1334, 2000. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=Z%2E+Zhang%2C+%22A+Flexible+New+Technique+for+Camera+Calibration%2C%22+IEEE+Transactions+on+Pattern+Analysis+and+Machine+Intelligence%2C+pp%2E+1330-1334%2C+2000%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch08_B12"/>K. Mikolajczyk, T. Tuytelaars, C. Schmid, A. Zisserman, J. Matas, F. Schaffalitzky, T. Kadir and L. V. Gool, &#x0201C;A Comparison of Affine Region Detectors,&#x0201D; <emphasis>International Journal of Computer Vision,</emphasis> pp. 43&#x02013;72, 2005. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=K%2E+Mikolajczyk%2C+T%2E+Tuytelaars%2C+C%2E+Schmid%2C+A%2E+Zisserman%2C+J%2E+Matas%2C+F%2E+Schaffalitzky%2C+T%2E+Kadir+and+L%2E+V%2E+Gool%2C+%22A+Comparison+of+Affine+Region+Detectors%2C%22+International+Journal+of+Computer+Vision%2C+pp%2E+43-72%2C+2005%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch08_B13"/>J. Canny, &#x0201C;A Computational Approach to Edge Detection,&#x0201D; <emphasis>Transactions on Pattern Analysis and Machine Intelligence,</emphasis> 1986. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=J%2E+Canny%2C+%22A+Computational+Approach+to+Edge+Detection%2C%22+Transactions+on+Pattern+Analysis+and+Machine+Intelligence%2C+1986%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch08_B14"/>C. Harris and M. Stephens, &#x0201C;A Combined Corner and Edge Detector,&#x0201D; <emphasis>Proceedings of the Alvey Vision Conference,</emphasis>pp. 23.1&#x02013;23.6, 1988. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=C%2E+Harris+and+M%2E+Stephens%2C+%22A+Combined+Corner+and+Edge+Detector%2C%22+Proceedings+of+the+Alvey+Vision+Conference%2Cpp%2E+23%2E1-23%2E6%2C+1988%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch08_B15"/>E. Rosten and T. Drummond, &#x0201C;Machine Learning for high-speed corner detection,&#x0201D; <emphasis>European Conference on Computer Vision,</emphasis> 2006. <ulink url="https://scholar.google.com/scholar?q=E.+Rosten+and+T.+Drummond%2C+%22Machine+Learning+for+high-speed+corner+detection%2C%22&amp;btnG=&amp;hl=en&amp;as_sdt=0%2C5" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch08_B16"/>T. Lindeberg, <emphasis>Scale-Space Theory in Computer Vision</emphasis>, Kluwer Academic Publishers, 1994. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=T%2E+Lindeberg%2C+Scale-Space+Theory+in+Computer+Vision%2C+Kluwer+Academic+Publishers%2C+1994%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch08_B17"/>Y. Ke and R. Sukthankar, &#x0201C;PCA-SIFT: a more distinctive representation for local image descriptors,&#x0201D; <emphasis>Proceedings of Conference on Computer Vision and Pattern Recognition,</emphasis> 2004. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=Y%2E+Ke+and+R%2E+Sukthankar%2C+%22PCA-SIFT%3A+a+more+distinctive+representation+for+local+image+descriptors%2C%22+Proceedings+of+Conference+on+Computer+Vision+and+Pattern+Recognition%2C+2004%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch08_B18"/>S. Belongie, J. Malik and J. Puzicha, &#x0201C;Shape Matching and Object Recognition Using Shape Contexts,&#x0201D; <emphasis>Transactions on Pattern Analysis and Machin Intelligence,</emphasis> pp. 509&#x02013;522, April 2002. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=S%2E+Belongie%2C+J%2E+Malik+and+J%2E+Puzicha%2C+%22Shape+Matching+and+Object+Recognition+Using+Shape+Contexts%2C%22+Transactions+on+Pattern+Analysis+and+Machin+Intelligence%2C+pp%2E+509-522%2C+April+2002%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch08_B19"/>E. Tola, V. Lepetit and P. Fua, &#x0201C;DAISY: An Efficient Dense Descriptor Applied to Wide-Baseline Stereo,&#x0201D; <emphasis>Transactions on Pattern Analysis and Machine Intelligence,</emphasis> pp. 815&#x02013;830, May 2010. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=E%2E+Tola%2C+V%2E+Lepetit+and+P%2E+Fua%2C+%22DAISY%3A+An+Efficient+Dense+Descriptor+Applied+to+Wide-Baseline+Stereo%2C%22+Transactions+on+Pattern+Analysis+and+Machine+Intelligence%2C+pp%2E+815-830%2C+May+2010%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch08_B20"/>M. Calonder, V. Lepetit, M. Ozuysal, T. Trzcinski, C. Strecha and P. Fua, &#x0201C;BRIEF: Computing a Local Binary Descriptor Very Fast,&#x0201D; <emphasis>IEEE Transactions on Pattern Analysis and Machine Intelligence</emphasis>, pp. 1281&#x02013;1298, 2012. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=M%2E+Calonder%2C+V%2E+Lepetit%2C+M%2E+Ozuysal%2C+T%2E+Trzcinski%2C+C%2E+Strecha+and+P%2E+Fua%2C+%22BRIEF%3A+Computing+a+Local+Binary+Descriptor+Very+Fast%2C%22+IEEE+Transactions+on+Pattern+Analysis+and+Machine+Intelligence%2C+pp%2E+1281-1298%2C+2012%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch08_B21"/>A. Alahi, R. Ortiz and P. Vandergheynst, &#x0201C;FREAK: Fast Retina Keypoint,&#x0201D; <emphasis>Conference on Computer Vision and Pattern Recognition,</emphasis> pp. 510&#x02013;517, 2012. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=A%2E+Alahi%2C+R%2E+Ortiz+and+P%2E+Vandergheynst%2C+%22FREAK%3A+Fast+Retina+Keypoint%2C%22+Conference+on+Computer+Vision+and+Pattern+Recognition%2C+pp%2E+510-517%2C+2012%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch08_B22"/>E. Rublee, V. Rabaud, K. Konolige and G. Bradski, &#x0201C;ORB: an efficient alternative to SIFT or SURF,&#x0201D; <emphasis>International Conference on Computer Vision,</emphasis> pp. 2564&#x02013;2571, 2011. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=E%2E+Rublee%2C+V%2E+Rabaud%2C+K%2E+Konolige+and+G%2E+Bradski%2C+%22ORB%3A+an+efficient+alternative+to+SIFT+or+SURF%2C%22+International+Conference+on+Computer+Vision%2C+pp%2E+2564-2571%2C+2011%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch08_B23"/>S. Leutenegger, M. Chli and R. Y. Siegwart, &#x0201C;BRISK: Binary Robust Invariant Scalable Keypoints,&#x0201D; <emphasis>International Conference on Computer Vision,</emphasis> pp. 2548&#x02013;2555, 2011. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=S%2E+Leutenegger%2C+M%2E+Chli+and+R%2E+Y%2E+Siegwart%2C+%22BRISK%3A+Binary+Robust+Invariant+Scalable+Keypoints%2C%22+International+Conference+on+Computer+Vision%2C+pp%2E+2548-2555%2C+2011%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch08_B24"/>P. F. Alcantarilla, A. Bartoli and A. J. Davison, &#x0201C;KAZE Features,&#x0201D; <emphasis>Proceedings of the 12th European Conference on Computer Vision,</emphasis> pp. 214&#x02013;227, 2012. <ulink url="https://scholar.google.com/scholar?q=P.+F.+Alcantarilla%2C+A.+Bartoli+and+A.+J.+Davison%2C+%22KAZE+Features%2C%22+&amp;btnG=&amp;hl=en&amp;as_sdt=0%2C5" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch08_B25"/>H. Bay, A. Ess, T. Tuytelaars and L. Van Gool, &#x0201C;SURF: Speeded Up Robust Features,&#x0201D; <emphasis>Journal of Computer Vision and Image Understanding,</emphasis> pp. 346&#x02013;359, 6 2008. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=H%2E+Bay%2C+A%2E+Ess%2C+T%2E+Tuytelaars+and+L%2E+Van+Gool%2C+%22SURF%3A+Speeded+Up+Robust+Features%2C%22+Journal+of+Computer+Vision+and+Image+Understanding%2C+pp%2E+346-359%2C+6+2008%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch08_B26"/>P. Alcantarilla, J. Nuevo and A. Bartoli, &#x0201C;Fast Explicit Diffusion for Accelerated Features in Nonlinear Scale Spaces,&#x0201D; <emphasis>Proceedings of the British Machine Vision Conference,</emphasis>2013. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=P%2E+Alcantarilla%2C+J%2E+Nuevo+and+A%2E+Bartoli%2C+%22Fast+Explicit+Diffusion+for+Accelerated+Features+in+Nonlinear+Scale+Spaces%2C%22+Proceedings+of+the+British+Machine+Vision+Conference%2C2013%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch08_B27"/>M. Muja and D. G. Lowe, &#x0201C;Fast Approximate Nearest Neighbors with Automatic Algorithm Configuration,&#x0201D; <emphasis>International Conference on Computer Vision Theory and Applications,</emphasis> pp. 331&#x02013;340, 2009. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=M%2E+Muja+and+D%2E+G%2E+Lowe%2C+%22Fast+Approximate+Nearest+Neighbors+with+Automatic+Algorithm+Configuration%2C%22+International+Conference+on+Computer+Vision+Theory+and+Applications%2C+pp%2E+331-340%2C+2009%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch08_B28"/>H. C. Longuet-Higgins, &#x0201C;A Computer Algorithm for Reconstructing a Scene from Two Projections,&#x0201D; <emphasis>Readings in Computer Vision: Issues, Problems, Principles, and Paradigms,</emphasis>pp. 61&#x02013;62, 1987. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=H%2E+C%2E+Longuet-Higgins%2C+%22A+Computer+Algorithm+for+Reconstructing+a+Scene+from+Two+Projections%2C%22+Readings+in+Computer+Vision%3A+Issues%2C+Problems%2C+Principles%2C+and+Paradigms%2Cpp%2E+61-62%2C+1987%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch08_B29"/>R. I. Hartley, &#x0201C;Estimation of relative camera positions for uncalibrated cameras,&#x0201D; <emphasis>European Conference on Computer Vision,</emphasis> pp. 579&#x02013;587, 1992. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=R%2E+I%2E+Hartley%2C+%22Estimation+of+relative+camera+positions+for+uncalibrated+cameras%2C%22+European+Conference+on+Computer+Vision%2C+pp%2E+579-587%2C+1992%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch08_B30"/>Z. Zhang, Q.-T. Luong and O. Faugeras, &#x0201C;Motion of an Uncalibrated Stereo Rig: Self-calibration and Metric Reconstruction,&#x0201D; <emphasis>IEEE Transactions on Robotics and Automation,</emphasis> pp. 103&#x02013;113, 1996. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=Z%2E+Zhang%2C+Q%2E-T%2E+Luong+and+O%2E+Faugeras%2C+%22Motion+of+an+Uncalibrated+Stereo+Rig%3A+Self-calibration+and+Metric+Reconstruction%2C%22+IEEE+Transactions+on+Robotics+and+Automation%2C+pp%2E+103-113%2C+1996%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch08_B31"/>Q.-T. Luong and O. D. Faugeras, &#x0201C;Self-Calibration of a Moving Camera from Point Correspondences and Fundamental Matrices,&#x0201D; <emphasis>International Journal for Computer Vision,</emphasis>pp. 261&#x02013;289, 1997. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=Q%2E-T%2E+Luong+and+O%2E+D%2E+Faugeras%2C+%22Self-Calibration+of+a+Moving+Camera+from+Point+Correspondences+and+Fundamental+Matrices%2C%22+International+Journal+for+Computer+Vision%2Cpp%2E+261-289%2C+1997%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch08_B32"/>P. Torr and A. Zisserman, &#x0201C;Robust Computation and Parametrization of Multiple View Relations,&#x0201D; in <emphasis>Computer Vision and Image Understanding</emphasis>, 2000. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=P%2E+Torr+and+A%2E+Zisserman%2C+%22Robust+Computation+and+Parametrization+of+Multiple+View+Relations%2C%22+in+Computer+Vision+and+Image+Understanding%2C+2000%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch08_B33"/>B. Triggs, P. F. McLauchlan, R. I. Hartley and A. W. Fitzgibbon, &#x0201C;Bundle Adjustment &#x02013; A Modern Synthesis,&#x0201D; <emphasis>Proceedings of the International Workshop on Vision Algorithms: Theory and Practice,</emphasis> pp. 298&#x02013;372, 2000. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=B%2E+Triggs%2C+P%2E+F%2E+McLauchlan%2C+R%2E+I%2E+Hartley+and+A%2E+W%2E+Fitzgibbon%2C+%22Bundle+Adjustment+-+A+Modern+Synthesis%2C%22+Proceedings+of+the+International+Workshop+on+Vision+Algorithms%3A+Theory+and+Practice%2C+pp%2E+298-372%2C+2000%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch08_B34"/>T. Dang, C. Hoffmann and C. Stiller, &#x0201C;Continuous Stereo Self-calibration by Camera Parameter Tracking,&#x0201D; <emphasis>Transactions on Image Processing</emphasis>, pp. 1536&#x02013;1550, 2009. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=T%2E+Dang%2C+C%2E+Hoffmann+and+C%2E+Stiller%2C+%22Continuous+Stereo+Self-calibration+by+Camera+Parameter+Tracking%2C%22+Transactions+on+Image+Processing%2C+pp%2E+1536-1550%2C+2009%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch08_B35"/>M. Bj&#x000F6;rkman and J.-O. Eklundh, &#x0201C;Real-Time Epipolar Geometry Estimation of Binocular Stereo Heads,&#x0201D; <emphasis>Transactions on Pattern Analysis and Machine Intelligence,</emphasis> pp. 425&#x02013;432, 2002. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=M%2E+Bj%F6rkman+and+J%2E-O%2E+Eklundh%2C+%22Real-Time+Epipolar+Geometry+Estimation+of+Binocular+Stereo+Heads%2C%22+Transactions+on+Pattern+Analysis+and+Machine+Intelligence%2C+pp%2E+425-432%2C+2002%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch08_B36"/>Petterson and Petterson, &#x0201C;Online stereo calibration using FPGAs,&#x0201D; <emphasis>Intelligent Vehicles Symposium,</emphasis> 2005. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=Petterson+and+Petterson%2C+%22Online+stereo+calibration+using+FPGAs%2C%22+Intelligent+Vehicles+Symposium%2C+2005%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch08_B37"/>P. Hansen, H. S. Alismail, P. Rander and B. Browning, &#x0201C;Online Continuous Stereo Extrinsic Parameter Estimation,&#x0201D; <emphasis>International Conference on Computer Vision and Pattern Recognition,</emphasis> 2012. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=P%2E+Hansen%2C+H%2E+S%2E+Alismail%2C+P%2E+Rander+and+B%2E+Browning%2C+%22Online+Continuous+Stereo+Extrinsic+Parameter+Estimation%2C%22+International+Conference+on+Computer+Vision+and+Pattern+Recognition%2C+2012%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch08_B38"/>R. I. Hartley and A. Zisserman, Multiple View Geometry in Computer Vision, Cambridge University Press, 2004. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=R%2E+I%2E+Hartley+and+A%2E+Zisserman%2C+Multiple+View+Geometry+in+Computer+Vision%2C+Cambridge+University+Press%2C+2004%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch08_B39"/>R. Szeliski, Computer Vision: Algorithms and Applications, London: Springer-Verlag, 2011. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=R%2E+Szeliski%2C+Computer+Vision%3A+Algorithms+and+Applications%2C+London%3A+Springer-Verlag%2C+2011%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch08_B40"/>N. Otsu, &#x0201C;A Threshold Selection Method from Gray-Level Histograms,&#x0201D; <emphasis>IEEE Transactions on Systems, Man and Cybernetics,</emphasis> pp. 62&#x02013;66, 1979. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=N%2E+Otsu%2C+%22A+Threshold+Selection+Method+from+Gray-Level+Histograms%2C%22+IEEE+Transactions+on+Systems%2C+Man+and+Cybernetics%2C+pp%2E+62-66%2C+1979%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch08_B41"/>N. Mentzer, G. P. Vaya and H. Blume, &#x0201C;Analyzing the Performance-Hardware Trade-off of an ASIP-based SIFT Feature Extraction,&#x0201D; <emphasis>Journal of Signal Processing Systems,</emphasis>2015. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=N%2E+Mentzer%2C+G%2E+P%2E+Vaya+and+H%2E+Blume%2C+%22Analyzing+the+Performance-Hardware+Trade-off+of+an+ASIP-based+SIFT+Feature+Extraction%2C%22+Journal+of+Signal+Processing+Systems%2C2015%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch08_B42"/>N. Mentzer, N. V. Egloffstein, G. P. Vaya, W. Ritter and H. Blume, &#x0201C;Instruction-Set Extension for an ASIP-based SIFT Feature Extraction,&#x0201D; in <emphasis>International Conference on Embedded Computer Systems: Architectures, Modeling and Simulation (SAMOS)</emphasis>, Samos, Greece, 2014. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=N%2E+Mentzer%2C+N%2E+V%2E+Egloffstein%2C+G%2E+P%2E+Vaya%2C+W%2E+Ritter+and+H%2E+Blume%2C+%22Instruction-Set+Extension+for+an+ASIP-based+SIFT+Feature+Extraction%2C%22+in+International+Conference+on+Embedded+Computer+Systems%3A+Architectures%2C+Modeling+and+Simulation+%28SAMOS%29%2C+Samos%2C+Greece%2C+2014%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch08_B43"/>K. Moren and D. G&#x000F6;hringer, &#x0201C;A framework for accelerating local feature extraction with OpenCL on multi-core CPUs and co-processors,&#x0201D; <emphasis>Journal of Real-Time Image Processing,</emphasis> pp. 1&#x02013;18, 03 2016. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=K%2E+Moren+and+D%2E+G%F6hringer%2C+%22A+framework+for+accelerating+local+feature+extraction+with+OpenCL+on+multi-core+CPUs+and+co-processors%2C%22+Journal+of+Real-Time+Image+Processing%2C+pp%2E+1-18%2C+03+2016%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch08_B44"/>B. Rister, G. Wang, M. Wu and J. R. Cavallaro, &#x0201C;A Fast and Efficient SIFT Detector using the mobile GPU,&#x0201D; <emphasis>IEEE International Conference on Acoustics, Speech and Signal Processing,</emphasis> 2013. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=B%2E+Rister%2C+G%2E+Wang%2C+M%2E+Wu+and+J%2E+R%2E+Cavallaro%2C+%22A+Fast+and+Efficient+SIFT+Detector+using+the+mobile+GPU%2C%22+IEEE+International+Conference+on+Acoustics%2C+Speech+and+Signal+Processing%2C+2013%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch08_B45"/>V. Bonato, E. Marques and G. A. Constantinides, &#x0201C;A Parallel Hardware Architecture for Scale and Rotation Invariant Feature Detection,&#x0201D; <emphasis>IEEE Transactions on Circuits and Systems for Video Technology</emphasis>, pp. 1703&#x02013;1712, 2008. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=V%2E+Bonato%2C+E%2E+Marques+and+G%2E+A%2E+Constantinides%2C+%22A+Parallel+Hardware+Architecture+for+Scale+and+Rotation+Invariant+Feature+Detection%2C%22+IEEE+Transactions+on+Circuits+and+Systems+for+Video+Technology%2C+pp%2E+1703-1712%2C+2008%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch08_B46"/>L. Yao, H. Feng, Y. Zhu, Z. Jiang, D. Zhao and W. Feng, &#x0201C;An architecture of optimised SIFT feature detection for an FPGA implementation of an image matcher,&#x0201D; <emphasis>International Conference on Field-Programmable Technology,</emphasis> pp. 30&#x02013;37, 2009. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=L%2E+Yao%2C+H%2E+Feng%2C+Y%2E+Zhu%2C+Z%2E+Jiang%2C+D%2E+Zhao+and+W%2E+Feng%2C+%22An+architecture+of+optimised+SIFT+feature+detection+for+an+FPGA+implementation+of+an+image+matcher%2C%22+International+Conference+on+Field-Programmable+Technology%2C+pp%2E+30-37%2C+2009%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch08_B47"/>F.-C. Huang, S. Huang, J. Ker and Y. Chen, &#x0201C;High-Performance SIFT Hardware Accelerator for Real-Time Image Feature Extraction,&#x0201D; <emphasis>IEEE Transactions on Circuits and Systems for Video Technology,</emphasis> pp. 340&#x02013;351, 03 2012. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=F%2E-C%2E+Huang%2C+S%2E+Huang%2C+J%2E+Ker+and+Y%2E+Chen%2C+%22High-Performance+SIFT+Hardware+Accelerator+for+Real-Time+Image+Feature+Extraction%2C%22+IEEE+Transactions+on+Circuits+and+Systems+for+Video+Technology%2C+pp%2E+340-351%2C+03+2012%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch08_B48"/>J. Yum, C.-H. Lee, J.-S. Kim and H.-J. Lee, &#x0201C;A Novel Hardware Architecture with Reduced Internal Memory for Real-time Extraction of SIFT in an HD Video,&#x0201D; <emphasis>IEEE Transactions on Circuits and Systems for Video Technology,</emphasis> 2015. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=J%2E+Yum%2C+C%2E-H%2E+Lee%2C+J%2E-S%2E+Kim+and+H%2E-J%2E+Lee%2C+%22A+Novel+Hardware+Architecture+with+Reduced+Internal+Memory+for+Real-time+Extraction+of+SIFT+in+an+HD+Video%2C%22+IEEE+Transactions+on+Circuits+and+Systems+for+Video+Technology%2C+2015%2E" target="_blank">Google Scholar</ulink></para></listitem>
</orderedlist>
</section>
</chapter>
<chapter class="chapter" id="ch09" label="9" xreflabel="9">
<title>Arbitration and Sharing Control Strategies in the Driving Process</title>
<para class="section"><emphasis role="strong">David Gonz&#x000E1;lez<superscript><emphasis role="strong">1</emphasis></superscript>, Joshu&#x000E9; P&#x000E9;rez<superscript><emphasis role="strong">1</emphasis></superscript>, Vicente Milan&#x000E9;s<superscript><emphasis role="strong">1</emphasis></superscript>, Fawzi Nashashibi<superscript><emphasis role="strong">1</emphasis></superscript>, Marga S&#x00E1;ez Tort<superscript><emphasis role="strong">2</emphasis></superscript> and Angel Cuevas<superscript><emphasis role="strong">2</emphasis></superscript></emphasis></para>
<para><superscript>1</superscript>INRIA, France</para>
<para><superscript>2</superscript>CTAG &#x2013; Centro Tecnol&#x00F3;gico de Automoci&#x00F3;n de Galicia, Spain</para>
<section class="lev1" id="sec9-1">
<title>9.1 Introduction</title>
<para>Automated functions for real world traffic scenarios have been increasing in last years in the automotive industry. Many research contributions have been done in this field. However, other problems have come to the drivers, related to the legal and liability framework, where it is still unclear up to which point the control of the vehicle should stay with the driver or be taken by automation.</para>
<para>The aim of the Advanced Driver Assistance Systems (ADAS) is mainly related to help drivers in safety critical situations rather than to replace them. However, in recent years, many research advances have been done in this field, making automated driving closer to reality day by day. The numbers of automated driving functions for typical traffic scenarios have increased in the last few years in the automotive industry and university research. However, other problems have appeared for drivers of such automated cars: When should the driver or the automated systems take control of the vehicle (since both cannot control an automated vehicle together at the same time due to potential conflicts)? This question has not a simple answer; it depends on different conditions, such as: the environment, driver condition, vehicle capabilities, fault tolerance, among others. Arbitration and control activities have been implemented in DESERVE WP24, mainly motivated by this question.</para>
<para>In this chapter, we will analyze the acceptability to the ADAS functions available in the market, and its relation with the different control actions. A survey on arbitration and control solutions in ADAS is presented. It will allow to create the basis for future development of a generic ADAS control (the lateral and longitudinal behavior), based on the integration of the application request, the driver behavior and driving conditions in the framework of the DESERVE project. Based on vehicle modeling, driver behavior and intention, a first approach for arbitration and control strategies, which can anticipate the priorities on the control in emergency situations, is described.</para>
<para>The main aim of this work is to allow the development of a new generation of ADAS solutions where the control could be effectively shared between the vehicle and the driver. Some simulations will allow the virtual testing for the future implementation in demonstrators.</para>
<para>Fuzzy logic techniques are a suitable approach for the arbitration control in the driving process. The contributions described in this chapter will be implemented in two demonstrators: Automatic/Autonomous Emergency Braking (AEB) pedestrian protection system and Driver Distraction monitoring&#x02014;CRF demo vehicles&#x02014;using RTMaps <footnote id="fn9_1" label="1"><para><ulink url="https://intempora.com/">https://intempora.com/</ulink></para></footnote> as the development software.</para>
<para>The proposed arbitration and shared control takes into account the state of the driver and the state of the system, in order to assess the level of control that each system should have; based on the standard SAE J3016. Fuzzy Logic controllers consider a control level that allows a smooth control sharing between the automated system and the driver. It has been design according to the Application Platform in DESERVE control architecture. Although the Fuzzy Logic (as some other Artificial Intelligence techniques) is not explicitly considered in the road vehicles functions safety standard (ISO 26262), a large number of applications have been developed in recent years. The behavior of a human driver can be emulated with this technique.</para>
</section>
<section class="lev1" id="sec9-2">
<title>9.2 ADAS Functions Available in the Market</title>
<para>Driver Assistance Systems (DAS) or Advanced Driver Assistance Systems (ADAS) can be defined as those active safety systems which require some monitoring on the vehicle&#x02019;s environment and on driver intentions. This extra information is combined with ego-vehicle data (positions and speed profile) in order to provide the driver with some warning or perform some automatic actuation with the goal of increasing safety. Regarding driver interactions, a DAS can offer:</para>
<itemizedlist mark="bullet" spacing="normal">
<listitem><para>Information about the current situation</para></listitem>
<listitem><para>A warning to alert the driver</para></listitem>
<listitem><para>Take the control of the vehicle, partially or completely</para></listitem>
<listitem><para>A combination of them</para></listitem>
</itemizedlist>
<para>This section is focused on those DAS which have the capability of taking vehicle control to improve or correct the driver response.</para>
<para>From the control point of view, control DAS systems can be classified as:</para>
<itemizedlist mark="bullet" spacing="normal">
<listitem><para><emphasis role="strong"><emphasis>Longitudinal Control Systems</emphasis></emphasis>: Those DAS which are able to modify vehicle speed by accelerating or braking.</para></listitem>
<listitem><para><emphasis role="strong"><emphasis>Lateral Control Systems</emphasis></emphasis>: Those DAS which are able to change vehicle direction, usually actuating on the steering system.</para></listitem>
<listitem><para><emphasis role="strong"><emphasis>Global Control Systems</emphasis></emphasis>: DAS with a combination of longitudinal and lateral control.</para></listitem>
</itemizedlist>
<para>The Control DAS examples described in this subchapter are shown below:</para>
<para><emphasis role="strong">Longitudinal Control Systems</emphasis></para>
<itemizedlist mark="bullet" spacing="normal">
<listitem><para>ACC (Adaptive Cruise Control)</para></listitem>
<listitem><para>FCW (Frontal Collision Warning or Forward Collision Warning)</para></listitem>
<listitem><para>AEB/CMbB (Automatic Emergency Braking/Collision Mitigation by Braking)</para></listitem>
<listitem><para>SLA (Speed Limit Assistant)</para></listitem>
</itemizedlist>
<para><emphasis role="strong">Lateral Control Systems</emphasis></para>
<itemizedlist mark="bullet" spacing="normal">
<listitem><para>LDW/LKA (Lane Departure Warning/Lane Keeping Assistance)</para></listitem>
<listitem><para>BSD/LCA (Blind Spot Detection/Lane Change Assistant)</para></listitem>
</itemizedlist>
<para><emphasis role="strong">Other Control Systems</emphasis></para>
<itemizedlist mark="bullet" spacing="normal">
<listitem><para>Pedestrian Detection/Active Hood</para></listitem>
<listitem><para>Driver Distraction Detection</para></listitem>
<listitem><para>PreCrash</para></listitem>
<listitem><para>Parking Assistance</para></listitem>
</itemizedlist>
<section class="lev2" id="sec9-2-1">
<title>9.2.1 Longitudinal Control Systems</title>
<para>These are the main steps for the longitudinal control of the vehicle: the first system is more a comfort than a safety one (ACC), but safety systems such as Forward Collision Warning (FCW) or AEB are built upon it. Other possibilities for Longitudinal Control of the vehicle are systems such as SLA.</para>
<para><emphasis role="strong">ACC (Adaptive Cruise Control)</emphasis></para>
<para>The ACC adds to the most common Cruise Control constant safety distance maintenance with the preceding vehicle. It consists of a front-mounted sensor, an integrated control unit with the task to regulate the system&#x02019;s performance and a suitable HMI that informs and allows the driver to control the system.</para>
<para>This sensor controls the area in front of the vehicle. If no obstacle is detected, the vehicle keeps the selected speed as a standard cruise control. In case a vehicle is detected in the predicted path of the vehicle (target vehicle), the sensor calculates the relative distance and speed to the target vehicle. (up to around 150&#x02013;200 m). Then, the Control Unit decides whether it is necessary to actuate the brake system of the vehicle with the goal to keep a constant safety distance. When the target vehicle disappears from the detection area, the Control Unit sends the order to accelerate again until the desired cruise speed is reached.</para>
<para>The system works usually between 30 and 180 km/h. The maximum deceleration provided by the system is far from the maximum deceleration capabilities of the vehicle (in between 2 and 3 m/s<superscript>2</superscript>) <footnote id="fn9_2" label="2"><para>In case the driver does not react, some other ACC systems are also improved with an AEB system, also considered as CMbB, providing autonomous brake action (from 5 m/s<superscript>2</superscript> to full power).</para></footnote>. The driver can choose between different safety gaps (time &#x02013; related). Developed for high capacity roads, ACC Stop &#x00026; Go improves the performance of the conventional ACC to a full stop capability. The stop and go of the vehicle is, thus, automatically performed, so the range of the system is extended to 0&#x02013;200 km/h.</para>
<fig id="F9-1" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F9-1">Figure <xref linkend="F9-1" remap="9.1"/></link></label>
<caption><para>ACC Systems.</para></caption>
<graphic xlink:href="graphics/ch09_fig0001.jpg"/>
</fig>
<para><emphasis role="strong">FCW (Frontal Collision Warning)</emphasis></para>
<para>When ACC fails to provide enough deceleration [exceed comfort specifications (above 2&#x02013;3 m/s<superscript>2</superscript>)], request to avoid a possible head-on collision, a warning, is provided to the driver (FCW). This warning reminds the driver the urge to take control of the situation. FCW is included in the basic ACC system in all vehicles equipped with the necessary sensors (laser, radar, etc.). These systems are usually activated between 5 and 2 seconds before the collision with the vehicle ahead might occur.</para>
<fig id="F9-2" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F9-2">Figure <xref linkend="F9-2" remap="9.2"/></link></label>
<caption><para>Stages on the longitudinal control of the vehicle.</para></caption>
<graphic xlink:href="graphics/ch09_fig002.jpg"/>
</fig>
<para><emphasis role="strong">AEB/CMbB (Automatic Emergency Braking/Collision Mitigation by Braking)</emphasis></para>
<para>As the third step in the longitudinal control of the vehicle, AEB is an automatic emergency safety system that takes control of the situation if the driver fails to decelerate the vehicle when a head-on collision is about to happen. The system consists on an automatic actuation of the vehicle&#x02019;s brakes in case the situation requires so to avoid a crash. AEB systems can be divided according to their deceleration in 1) <emphasis>Soft Braking</emphasis>. Up to 5 m/s<superscript>2</superscript> and 2) <emphasis>Hard Braking</emphasis>. From 5 m/s<superscript>2</superscript> to the full capability of the braking system.</para>
<para>Some systems can provide a progressive braking: first, a <emphasis>soft braking</emphasis> can be provided and, in case the accident seems unavoidable, a <emphasis>hard braking</emphasis> is applied. Also, a pre-fill of the brake circuit in case of possible risk (when the FCW system is launched) can be provided, in order to be ready for a full-brake in case it is required (either by the driver or automatically). In case the system is not able to avoid an accident but can help in the collision mitigation as the obstacle is crashed at a lower speed, it is called CMbB, Collision Mitigation by Braking. The only difference is that AEB can really avoid the accident, while CMbB is launched a short time before the accident that can&#x02019;t be avoided any more.</para>
<para><emphasis role="strong">SLA (Speed Limit Assistant)</emphasis></para>
<para>The Speed Limit Assistant (SLA) is a safety system that provides the driver with information on the most suitable maximum speed continuously during his or her journey.</para>
<fig id="F9-3" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F9-3">Figure <xref linkend="F9-3" remap="9.3"/></link></label>
<caption><para>CSW system.</para></caption>
<graphic xlink:href="graphics/ch09_fig003.jpg"/>
</fig>
<fig id="F9-4" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F9-4">Figure <xref linkend="F9-4" remap="9.4"/></link></label>
<caption><para>TSR system.</para></caption>
<graphic xlink:href="graphics/ch09_fig004.jpg"/>
</fig>
<para>SLA system can be based on several sub-systems:</para>
<itemizedlist mark="bullet" spacing="normal">
<listitem><para>TSR (Traffic Sign Recognition): Recognition of the traffic signs on the road, either by vision or gathering information from a map, is shown to the driver as a reminder of the prevailing speed limits.</para></listitem>
<listitem><para>CSW (Curve Speed Warning): As extracted from the digital maps, information of the most suitable recommended maximum speed limits when passing the curve ahead are shown to the driver. Another option is to show just a warning icon in case speed is considered as too high for the incoming bend.</para></listitem>
</itemizedlist>
</section>
<section class="lev2" id="sec9-2-2">
<title>9.2.2 Lateral Control Systems</title>
<para>Lateral control systems take care of the lateral dynamics of the vehicle, either warning the driver or taking control of the vehicle actuation systems.</para>
<para><emphasis role="strong">LDW/LKA (Lane Departure Warning/Lane Keeping Assistant)</emphasis></para>
<para>The Lane Departure Warning system has the task to warn the driver in case he drives out of the lane due to a distraction (without using the blinkers). Many OEMs offer today a Lane Departure System under different commercial brands (AFIL, Audi Lane Assist, etc.). It is composed by a sensor (or several sensors) with the capability to detect when the driver is leaving from the chosen lane, a Control Unit and a suitable HMI for the driver.</para>
<para>Lane&#x02019;s lines detection can be done through two different technologies:</para>
<itemizedlist mark="bullet" spacing="normal">
<listitem><para>Infrared sensors placed in the low part of the vehicle (PSA models): They use the reflection produced by the emitted light when driving over a white line to detect if the vehicle is driving over them. In this case, a Control Unit determines the driver is departing from the lane, and, depending on some other factors (blinkers, etc.), it can warn him or her by different methods (making the steering wheel or the seat vibrate, sound warning, etc.).</para></listitem>
<listitem><para>Image processing: A camera&#x02014;usually placed behind the windshield, on the rear view mirror housing&#x02014;provides images which can be analyzed. Thus, it is possible to determine when the driver is departing from its chosen lane. This system brings advantages, such as its predictive capability (it can on obstacles in the already known driving corridor) and is more robust in front of situations such as arrows, providing considerably fewer false alarms. As a disadvantage, it can be less robust in case of poor visibility.</para></listitem>
</itemizedlist>
<para>In any case, the system works from a certain speed (commonly, from in between 60 and 80 km/h upwards) and can be switched off. Moreover, when activating the suitable blinker, the system understands that the driver really wants to change lane and no warning is provided in case of crossing the lines.</para>
<para>An update of the system is also found in the market: LKA (Lane Keeping Assistant), which includes an additional torque on the steering wheel (electrical power steering is required) that helps the driver to keep the vehicle into the desired lane.</para>
<fig id="F9-5" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F9-5">Figure <xref linkend="F9-5" remap="9.5"/></link></label>
<caption><para>LDW system.</para></caption>
<graphic xlink:href="graphics/ch09_fig005.jpg"/>
</fig>
<fig id="F9-6" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F9-6">Figure <xref linkend="F9-6" remap="9.6"/></link></label>
<caption><para>BSD/LCA system.</para></caption>
<graphic xlink:href="graphics/ch09_fig006.jpg"/>
</fig>
<para><emphasis role="strong">BSD (Blind Spot Detection)</emphasis></para>
<para>A Blind Spot Detection system has the goal to warn the driver in case another vehicle is located in the blind spot which is not controlled by the rear-view mirrors.</para>
<para>Therefore, it counts on some sensors (commonly, short range radars @ 24 GHz or image processing units) which monitor constantly the area placed in the lateral blind spots of the vehicle. These sensors provide information to a Control Unit, which decides the susceptibility to provide the driver with a warning. This warning can be acoustic, visual or haptic.</para>
<para>Some systems can warn continuously on the existence of objects in the blind spot. Some others only warn when the driver expresses his or her will to change lane, using the correspondent blinker. They usually work over a certain speed and are capable to exclude parked vehicles or those driving in the opposite direction, in order to reduce the false alarm rate. The detection area can measure around 10 meters behind the rear view mirror and 4 meters wide, enough to cover the blind spot.</para>
<para><emphasis role="strong">LCA (Lane Change Assistant)</emphasis></para>
<para>A Lane Change Assistant is a system which increases the possibilities of a Blind Spot Detection System. The detection distance can achieve up to 50&#x02013;60 meters behind the ego-vehicle (positions and speed profile of the vehicle) in the adjacent lanes. Moreover, the relative speed of the detected vehicles is also taken into account, so the system is capable to warn the driver in case the lane change is too risky because of a fast approaching vehicle from behind. Depending on some parameters, different warning levels can be included.</para>
</section>
<section class="lev2" id="sec9-2-3">
<title>9.2.3 Other Control Systems</title>
<para><emphasis role="strong">Pedestrian detection/Active hood</emphasis></para>
<para>A pedestrian detection system is capable to recognize a potential danger. In this case, the driver can be warned or even an automatic action can be performed (automatic speed adaptation). In case of unavoidable crash, the activation of passive safety measures is also considered (active hood).</para>
<para><emphasis role="strong">PreCrash systems</emphasis></para>
<para>In the transition or overlap between active and passive safety, PreCrash systems work when accidents are unavoidable. Its mission is, based on the information gathered by the rest of the safety systems, and after determining the accident cannot be avoided by its intervention, to prepare the passive safety elements of the vehicle to better perform their safety mission. For instance, when there&#x02019;s a sure head-on collision, CMbB will reduce the speed of the crash, while PreCrash will pre-tension the seatbelts, will move the seats to place them in a more convenient position or will pre-trigger airbag deployment order. PreCrash systems can cover the front of the vehicle, the rear or all 360<superscript>&#x02218;</superscript> of the vehicle.</para>
<para><emphasis role="strong">Parking assistance</emphasis></para>
<para>Parking assistance is one of the most implemented DAS. There are many types of technology used on this. This section will not be focused on the traditional ultrasonic or vision aided parking assistance systems, but on the systems that can provide some kind of support to the driver. These systems can be divided in the following ones:</para>
<fig id="F9-7" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F9-7">Figure <xref linkend="F9-7" remap="9.7"/></link></label>
<caption><para>Top view of a parking assistance system.</para></caption>
<graphic xlink:href="graphics/ch09_fig007.jpg"/>
</fig>
<fig id="F9-8" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F9-8">Figure <xref linkend="F9-8" remap="9.8"/></link></label>
<caption><para>Aided park system.</para></caption>
<graphic xlink:href="graphics/ch09_fig008.jpg"/>
</fig>
<itemizedlist mark="bullet" spacing="normal">
<listitem><para><emphasis>Vision-Aided Systems</emphasis>: together with the image of a camera placed in the rear part of the vehicle, some support provided by visual guidelines in the dashboard display.</para></listitem>
<listitem><para><emphasis>Top View Systems</emphasis>: up to 4 cameras placed on exposed surfaces around the vehicle provide images that, after some processing, can be shown on the vehicle&#x02019;s display as if it was seen from above.</para></listitem>
<listitem><para><emphasis>Aided Park Systems</emphasis>: some systems can provide support to the driver on his/her search for parking spots or his/her maneuvers to park the vehicle.</para></listitem>
<listitem><para><emphasis>Automatic Park System</emphasis>: this system can take control of the steering of the vehicle in order to park automatically after detection of a parking slot. The driver remains responsible for the longitudinal control of the vehicle.</para></listitem>
</itemizedlist>
<fig id="F9-9" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F9-9">Figure <xref linkend="F9-9" remap="9.9"/></link></label>
<caption><para>Automatic park systems.</para></caption>
<graphic xlink:href="graphics/ch09_fig009.jpg"/>
</fig>
</section>
<section class="lev2" id="sec9-2-4">
<title>9.2.4 Control Solution in ADAS</title>
<para>Based on most control architectures for Automated and semi-automated vehicles [<link linkend="ch09_B2">2</link>], DESERVE is divided in three main platform parts or stages: perception, application and information-warning-intervention (IWI). The sensing and perception of environmental and onboard information is vitally important for any automotive DAS function. Based on preliminary work from other funding projects in this area <footnote id="fn9_3" label="3"><para>InteractIVe&#x02014;FP7/ICT funding project&#x02014;<ulink url="http://www.interactIVe-ip.eu">www.interactIVe-ip.eu</ulink></para></footnote> the information flow and architectural decomposition of the DESERVE platform is shown in <link linkend="F9-10">Figure <xref linkend="F9-10" remap="9.10"/></link>.</para>
<fig id="F9-10" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F9-10">Figure <xref linkend="F9-10" remap="9.10"/></link></label>
<caption><para>DESERVE platform.</para></caption>
<graphic xlink:href="graphics/ch09_fig0010.jpg"/>
</fig>
<para>The three main building blocks in <link linkend="F9-10">Figure <xref linkend="F9-10" remap="9.10"/></link> are the perception layer, the application layer and the IWI controller layer. The same decomposition was also chosen from other parties in similar projects (like InteractIVe [<link linkend="ch09_B3">3</link>]) and corresponds to the naturalistic behavior that is applied when accomplishing a given task, namely the action points &#x0201C;sense&#x0201D;, &#x0201C;plan&#x0201D; and &#x0201C;act&#x0201D;. As baseline DESERVE considers the results of several research projects, like InteractIVe, but targets the standardization of the software architecture.</para>
<para>Indeed, by handling the sensor and actuator information on a virtual and abstract level, a systematical standardization of input and output interfaces can be realized. This results both in a very good encapsulated module architecture and makes exchange or addition of further module components much easier.</para>
<para>In particular, the Perception Platform processes the data received from the sensors that are available on the ego vehicle and sends them to the Application Platform. The data received from the Application Platform are used to develop control functions and to decide the actuation strategies. Finally, the output is sent to the IWI Platform informing the driver in case of warning conditions and activating the systems related to the longitudinal and/or lateral dynamics.</para>
<section class="lev3" id="sec9-2-4-1">
<title>9.2.4.1 Perception platform</title>
<para>The main objective of the Perception layer is to define and develop the DESERVE platform components that will interface with sensors and actuators, acquiring information from the typical sources. All these possible information sources are addressed, described and characterized in an abstract level that allows virtualization of input and output data. By using such an abstract and virtual intermediate layer the connection/exchange of sensors or actuators and the porting or adaptation to different vehicle models is expected to become much easier and less time consuming.</para>
<para>The DESERVE Perception layer is composed of different sub-layers that build up, in their totality, the complete information source that can be imported into the DESERVE platform framework. In a generalized sense the Perception layer can be seen as the input and output (I/O) gateway, especially when including communication devices and the different actuators as part of the I/O components.</para>
<fig id="F9-11" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F9-11">Figure <xref linkend="F9-11" remap="9.11"/></link></label>
<caption><para>DESERVE platform framework.</para></caption>
<graphic xlink:href="graphics/ch09_fig011.jpg"/>
</fig>
</section>
<section class="lev3" id="sec9-2-4-2">
<title>9.2.4.2 Application platform</title>
<para>Based on these assumptions and previous works, a control strategy for sharing vehicle control between the driver and embedded ADAS systems was proposed. These layers can be used dynamically, based on the information from the driver monitoring automotive&#x02014;DMA.</para>
<para>Since the driver is legally responsible for operating the car in its environment, in our approach he/she will have the last responsibility in the arbitration control process. However, if the driver is not enabled to drive, then the control will be taken by the embedded system.</para>
<para>The specific Application modules used in the arbitration and control of the vehicle are:</para>
<itemizedlist mark="bullet" spacing="normal">
<listitem><para>Threat assessment: the information from Frontal Object Perception, Vehicle trajectory and Driver intention modules will be considered, in order to establish a risk level in each scenario.</para></listitem>
<listitem><para>IWI manager: this module will determine the action to be taken by the driver or the vehicle (here we can set the Arbitration and Control functions). The Driver Assistance Systems involve two main decision makers: when is the driver who takes the control or when does the automated system and up to which extent.</para></listitem>
<listitem><para>Vehicle control: Only the brake pedal will be considered. Classical control techniques considering comfortable/safe accelerations. Longitudinal control based on PID and Fuzzy logic controllers have been used in automated functions.</para></listitem>
</itemizedlist>
<para>The level of assistance provided by the automated car to the driver might change depending on the driver&#x02019;s state and on the situation at hand (imminence of danger). With a varying level of automation of the automated vehicle, control might smoothly flow from the driver to the automated car and vice versa.</para>
</section>
<section class="lev3" id="sec9-2-4-3">
<title>9.2.4.3 Information Warning Intervention (IWI) platform</title>
<para>The Information Warning and Intervention module uses the output of the Application layer and provides ways to execute the interaction with the driver and the control of the vehicle. Mainly the information is sent to the actuators that will translate high level commands into acceleration and steering angle to provide the correct answer expected from the vehicle.</para>
<para>In a similar way, information is sent through the HMI towards the driver if necessary. These messages will warn and inform the driver (visual and acoustic signals/messages), as well as interact with him/her (haptic signals). In order for these messages to be effective, great efforts have been done in HMI solutions where the current hot topic is to share the control with the driver. In the following, a review of some techniques for the arbitration and shared control are presented.</para>
</section>
</section></section>
<section class="lev1" id="sec9-3">
<title>9.3 Survey on Arbitration and Control Solutions in ADAS</title>
<para>In the transportation field, human machine interaction plays a key role. Nowadays, significant results have been achieved in the automated driving field (at least, under certain circumstances) [<link linkend="ch09_B4">4</link>, <link linkend="ch09_B5">5</link>]. Nonetheless, there is a long way to go before removing the driver from the loop in real traffic conditions.</para>
<para>Parasuraman et al. [<link linkend="ch09_B7">7</link>], stated that the main problem in this kind of systems lies in the decision making process and the assignment of control responsibility. In the ITS field, shared control is the action of carrying a task simultaneously between a (on board) computer and a driver, differing from manual control and fully automation (since no real &#x0201C;sharing&#x0201D; is being done in this situations, see <link linkend="F9-12">Figure <xref linkend="F9-12" remap="9.12"/></link>).</para>
<fig id="F9-12" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F9-12">Figure <xref linkend="F9-12" remap="9.12"/></link></label>
<caption><para>SAE J3016 standards of driving automation levels for on-road vehicles.</para></caption>
<graphic xlink:href="graphics/ch09_fig0012.jpg"/>
</fig>
<para>The first levels of automation were set by Sheridan in [<link linkend="ch09_B9">9</link>]. Here, 10 different levels described the amount of responsibility for each decision maker. Flemisch et al. in [<link linkend="ch09_B10">10</link>] presents a more developed view of the levels needed for control sharing, where the automation is based in the H-metaphor and clarified in two main groups: Tight rein and loose rein.</para>
<para>Recently [<link linkend="ch09_B11">11</link>], new taxonomy of automated driving was issued by SAE International; its control levels are depicted by <link linkend="F9-12">Figure <xref linkend="F9-12" remap="9.12"/></link>. Other levels of automation have already been proposed by the German Federal Highway Research Institute (BASt) [<link linkend="ch09_B12">12</link>] and the National Highway Traffic Safety Administration (NHTSA) [<link linkend="ch09_B13">13</link>]. A comparison of these is summarized in [<link linkend="ch09_B11">11</link>], stating that the SAE taxonomy is alike the other two, but gives a broader and more specified view of automation levels. For this reason, the SAE taxonomy will be the one taken into account (see <link linkend="F9-12">Figure <xref linkend="F9-12" remap="9.12"/></link>).</para>
<para>When considering the driver in the control loop, it is important to know the automation level embedded in the vehicle. This will permit the control sharing system to set the limits for each decision maker. We will deepen in the arbitration concept as a way to change, in a smooth way, the level of control according to the situation in-hand.</para>
<para>The <emphasis role="strong">Arbitration concept</emphasis> is <emphasis>the process of settling an argument or a disagreement by an entity that is not involved</emphasis>. <footnote id="fn9_4" label="4"><para>Oxford dictionary.</para></footnote> Little research has been done in terms of arbitration (since it is a new concept in vehicle automation). First approaches define cognitive states and relations between humans and machines [<link linkend="ch09_B6">6</link>], also mental models as in human relationships have been considered by [<link linkend="ch09_B14">14</link>]. This consideration leads to a scenario where the status of the driver and the system must be known, at all times, aiming to set an accurate level of automation for the current situation.</para>
<para>From the above, communication between the system and the driver should constantly occur, in a way that is possible for both to make a mental model of one another [<link linkend="ch09_B14">14</link>]. Also different metaphors have been stated, such as the copilot metaphor (referring to the automated system) and the H-metaphor as a comparison between horse-human cooperation and vehicle-human cooperation [<link linkend="ch09_B15">15</link>].</para>
</section>
<section class="lev1" id="sec9-4">
<title>9.4 Human-Vehicle Interaction</title>
<para>Increasing need to pay more attention to the human driver in interaction with the vehicle has been recently identified [<link linkend="ch09_B1">1</link>]. From other domains where automation is already widely used (e.g. aviation, central rooms) it is known that automation has both positive and negative effects on the human operator. With increasing automation in the vehicle domain these effects need to get far more attention on the short term, evaluating the human-vehicle relationship and assigning countermeasures if necessary [<link linkend="ch09_B1">1</link>]. In order to have a regular communication between the two decision makers (the driver and the embedded system), in [<link linkend="ch09_B15">15</link>], a haptic HMI system is proposed where active force feedback is the common language. This allows the message to be directly linked to the actuator where the reaction of the driver is expected, also allowing the system to evaluate the performance of the driver. The haptic feedback can also give hints in terms of the action the driver should perform (e.g. the steering wheel turns a little to the right or left in order to hint the driver).</para>
<para>Haptic systems have been implemented widely across the literature: in gas pedal feedback [<link linkend="ch09_B16">16</link>, <link linkend="ch09_B17">17</link>], and in steering wheel feedback [<link linkend="ch09_B18">18</link>, <link linkend="ch09_B19">19</link>]. These are also used in training simulators, improving the performance of drivers in different scenarios.</para>
<para>The use of corrective feedbacks is known to cause over-corrective behavior [<link linkend="ch09_B8">8</link>] or bad performance when removed. This happens because it impairs the input-output relationship in motor skill learning of the driver. In [<link linkend="ch09_B20">20</link>], the haptic aid shows a good performance if the feedback is provided as needed and not all the time.</para>
<para>For arbitration and shared control, a state of the driver is needed in order to know his current status to perform the driving task. In [<link linkend="ch09_B21">21</link>], an extensive study on driver distraction was performed. It showed that in terms of visual and cognitive attention sharing, while performing following or passing driving maneuvers, a warning from the HMI proved to be helpful.</para>
<para>In [<link linkend="ch09_B22">22</link>], the importance of vision at the driving task was stated. Although visual acuity proved to be important, other indicators of the driver ability (Visual field, processing speed, divided attention, among others) have evidence-basis for their relevance to the driver ability and safety, and can be measured in a noninvasive way with recent in-car perception systems, as in [<link linkend="ch09_B23">23</link>].</para>
<para>Recently, the HAVEit <footnote id="fn9_5" label="5"><para><ulink url="http://haveit-eu.org/">http://haveit-eu.org/</ulink></para></footnote> project [<link linkend="ch09_B24">24</link>, <link linkend="ch09_B25">25</link>], and the InteractIVe <footnote id="fn9_6" label="6"><para><ulink url="http://www.interactive-ip.eu/">http://www.interactive-ip.eu/</ulink></para></footnote> project [<link linkend="ch09_B26">26</link>] have made the first approaches into control sharing strategies, theoretically and in simulations, with driver-in-the-loop capabilities.</para>
<para>The aim of arbitration and control solutions in ADAS, inside the DESERVE project is to effectively share the control with the driver and manage risky situations. In [<link linkend="ch09_B27">27</link>], ADAS applications are listed such as lane change assistance systems, pedestrian safety systems, adaptive light control, and parking assistance systems, among others. These are considered to improve the automated system and take into account the driver-in-the-loop for arbitration applications [<link linkend="ch09_B28">28</link>].</para>
<para>Arbitration systems for shared control applications is a new concept in the ITS research field. Based on previous contributions, it is the objective to develop a system able to share the control&#x2014;in a smooth way&#x2014;between the decision makers. Motivation for this approach can be found in social needs [<link linkend="ch09_B29">29</link>], legal challenges [<link linkend="ch09_B1">1</link>, <link linkend="ch09_B33">33</link>] and technical bases such as the DESERVE platform (see [<link linkend="ch09_B11">11</link>]).</para>
</section>
<section class="lev1" id="sec9-5">
<title>9.5 Driver Monitoring</title>
<para>Driver&#x02019;s limitations are very often related to his physiological and psychological states. An optimum pilot state includes an optimum alertness level and a task-oriented attentiveness. The distinction between &#x0201C;alertness&#x0201D; and &#x0201C;attention&#x0201D; is justified in the way that driver &#x0201C;alertness&#x0201D; is presumed to be necessary but not sufficient for an appropriate focus on external events. Thus, drivers may be alert but still be inattentive. In order to assess alertness and attentiveness in the DESERVE project, two main factors are evaluated:</para>
<itemizedlist mark="bullet" spacing="normal">
<listitem><para>Drowsiness/fatigue</para></listitem>
<listitem><para>Distraction</para></listitem>
</itemizedlist>
<para>Up to now, a universally valid definition of drowsiness still lacks. A tired driver mainly derives from performing a highly demanding task for extensive time periods (&#x0201C;time-on task&#x0201D; for the driving effort). Other definitions focus on the sleepiness level, which is the state of being ready to fall asleep. It is mainly caused by circadian rhythms and sleep disorders (reduced quality or quantity of sleep).</para>
<para>On the other hand, <emphasis>&#x0201C;Driver distraction refers to those instances when a driver&#x02019;s attention is diverted from the primary task of driving the vehicle in a way that compromises safe driving performance&#x0201D;<emphasis>,</emphasis></emphasis> [<link linkend="ch09_B30">30</link>]. This distraction can be either internal (e.g. other passengers interaction, cellphone, etc.) or external (e.g. other road users, traffic signs, etc.). It can also be classified in different modes as: Visual (external attractors for example advertisement on the side of the road or internal attractors e.g. looking to his children at the back of the vehicle, displaying an address onto a navigation device, etc.), acoustic (ringing phone, listening music) or cognitive distraction (conversing at phone but also internal thought and rumination, etc.).</para>
<para>For more information about on-line driver monitoring approaches, the reader is referred to [<link linkend="ch09_B34">34</link>]. Here a description of the different on-the-market and research methods and approaches are described in detail. In the DESERVE project, two main approaches were taken into consideration for the assessment of alertness and attentiveness of the driver:</para>
<para><emphasis role="strong">The Continental driver supervision system</emphasis> is implemented for a real time monitoring of two independent parameters, the drowsiness level (sleepiness vs. awakeness) and the visual inattention (e.g. the driver &#x0201C;is/is not&#x0201D; looking to the road) [<link linkend="ch09_B23">23</link>].</para>
<para>The Driver state monitoring includes a compact low consumption and high dynamic range (120 dB) CMOS camera sensor. The camera is equipped with a global shutter for the synchronization with a set of pulsed NIR lights (850 nm).</para>
<para><emphasis role="strong">Ficosa&#x02019;s Somnoalert Sensor</emphasis> aims to detect &#x0201C;non-apt to drive&#x0201D; states using physiological signals such as thoracic effort signal. An external thoracic effort sensor sends the signals to a smartphone, where it is processed to evaluate the state of the driver and indicate if this becomes dangerous.</para>
<section class="lev2" id="sec9-5-1">
<title>9.5.1 Legal and Liability Aspects</title>
<para>For automated vehicles, it is still unclear how legal and liability aspects are going to evolve. As a matter of fact, the U.S. legislation does not prohibit nor allows the use of automation in the driving task [<link linkend="ch09_B31">31</link>]. This leaves an important legal gap towards the responsibility of any action taken by the on-board system, since it is now an entity that &#x0201C;thinks for itself&#x0201D;. Similar situations arise in Europe where in a crash the responsible at all times is the driver, even when an embedded system was controlling the vehicle [<link linkend="ch09_B32">32</link>].</para>
<para>From the legal perspective, several initiatives in the U.S., specifically in the states of Nevada (2011), Florida (2012), California (2012), Washington D.C. (2012) and Michigan (2014), have already established some of the minimum safety requirements in order to allow automated vehicles technology [<link linkend="ch09_B33">33</link>]. Other state legislations in the U.S. are following these initiatives, to take a wider view of this the reader is referred to [<link linkend="ch09_B32">32</link>] and [<link linkend="ch09_B33">33</link>]. In the E.U., initiatives launched between governments and manufactures are currently creating the framework for the new standards and regulations for automated driving. These address legal matters and promote the standardization of the automated vehicles technology, as for example the Citymobil2 project [<link linkend="ch09_B36">36</link>].</para>
<para>As to liability, Beiker and Calo [<link linkend="ch09_B35">35</link>] noted that the situation is more complex with automated vehicles, concluding that it is unclear how the courts, or the public, will respond to the prospect of artificial intelligence acting on behalf of humans with fatal consequences. They expect that a set of policies can be established to create the necessary legal framework for further development of vehicle automation. In the E.U., the legal framework sets the liability of any crash towards the driver. This creates many barriers for automated vehicles and restricts them to private roads.</para>
<para>As a matter of fact, automation (or the lack of it) is not black or white but rather in shades of gray, complex and involving many design dimensions [<link linkend="ch09_B1">1</link>]. OEMs are careful with this and do not claim that an ADAS is working in all driving situations. A helpful model of automation is to consider different levels of assistance and automation that can e.g. be organized on a scale as in [<link linkend="ch09_B11">11</link>]. This not only suggests but encourages the use of systems that consider the driver-in-the-loop. These systems will allow the industry to add driver&#x02019;s vigilance to their system&#x02019;s supervision and avoid gaps (at least in the legal framework).</para>
</section>
</section>
<section class="lev1" id="sec9-6">
<title>9.6 Sharing and Arbitration Strategies: DESERVE Approach</title>
<para>The arbitration module is defined in the information, warning, intervention (IWI) manager (Application platform) of the DESERVE abstraction layer (<link linkend="F9-11">Figure <xref linkend="F9-11" remap="9.11"/></link>). This Advanced Driver Assistance System involves two main decision makers: the driver and the automated system. It will determine the level of responsibility of each of them at all times and allow smooth transitions between automation levels defined in [<link linkend="ch09_B11">11</link>].</para>
<para>Based on the information from different perception systems, it is possible to define fuzzy control parameters to achieve this, as was proposed in [<link linkend="ch09_B37">37</link>, <link linkend="ch09_B38">38</link>]. This cognitive process will result in the selection of a course of action among several alternative scenarios (e.g., up to which amount the driver should be responsible of the pedal action in an ACC maneuver while tired). The proposed system consists of a two level fuzzy approach for the arbitration (IWI manager) and vehicle sharing (VMC) modules.</para>
<para>The arbitration and sharing control concept has been developed in RTMaps, one of the development platform defined in DESERVE. <link linkend="F9-13">Figure <xref linkend="F9-13" remap="9.13"/></link> shows the general diagram for the arbitration. Here a fuzzy logic approach is implemented to compute the automation assessment (or situation status of decision-makers). This value is an assessment of the alertness and attentiveness of the driver w.r.t. the risk detected from the situation status.</para>
<fig id="F9-13" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F9-13">Figure <xref linkend="F9-13" remap="9.13"/></link></label>
<caption><para>Arbitration and control sharing application: General diagram.</para></caption>
<graphic xlink:href="graphics/ch09_fig013.jpg"/>
</fig>
<para>The sharing controller considers the automation assessment (but also the driver and the automated systems decisions) to decide the level of control and responsibility of each decision maker in real time. The output goes then to the HMI, informing the driver (a haptic steering wheel system informs the driver of next maneuvers that the system is ready to perform), and to the vehicle control. This process is done in real time, allowing a smooth sharing between decision-makers. For details and further perspective in first preliminary results please refer to [<link linkend="ch09_B38">38</link>].</para>
</section>
<section class="lev1" id="sec9-7">
<title>9.7 Conclusions</title>
<para>This chapter presents a survey on arbitration and control solutions for ADAS, based on the ADAS solutions available in the market, and the ones considered from the functional requirements described in Sub-Project-1 of the DESERVE project. The main architecture is described as a three-pillar platform system first &#x0201C;sensing&#x0201D; the environment, then &#x0201C;planning&#x0201D; according to decisions made over perception data and finally &#x0201C;acting&#x0201D; to follow those decisions.</para>
<para>For the sharing and arbitration approach, different points of view have been considered. Here, the estimation of the driver state and the assessment of the risk related to the situation in hand are the most important ones. These allow the system to have a coherent evaluation of the situation of both decision makers and arbitrate if the vehicle&#x02019;s embedded system needs to intervene because of risky driver actions.</para>
<para>This intervention is performed through haptic signals. However, there are still some challenges with respect to HMI solutions that can properly work as a communication bridge for the two decision makers and inform the driver&#x02014;on time&#x02014;of automated vehicles decisions.</para>
<para>Furthermore, legal and liability aspects are important milestones yet to be tackled. Although some states of the U.S. are taking the initiative, law regarding automated vehicles is in its first steps. Liability and legal responsibility still lies with the driver, hence, in our approach the control lies with the drivers (the driver can deactivate the system at any stage and is stronger than haptic cues). In future research we will focus in the arbitration, to determine (using some perception information) up to which point the embedded system can take control of the vehicle and which situations are more dangerous (risk management, taking special care of situations where overreliance on the system occurs&#x02014;the embedded system returns the control to the human driver).</para>
</section>
<section class="lev1" id="sec9-8">
<title>References</title>
<orderedlist numeration="arabic" continuation="restarts" spacing="normal">
<listitem><para><anchor id="ch09_B1"/>Schijndel-de Nooij, Margriet, Krosse, Bastiaan, Broek, Thijs, Sander Maas, Ellen van Nunen, and Han Zwijnenberg. &#x0201C;<emphasis>Definition of necessary vehicle and infrastructure systems for Automated Driving</emphasis>&#x0201D;, Study Report for the European Commission (2011). <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=Schijndel-de+Nooij%2C+Margriet%2C+Krosse%2C+Bastiaan%2C+Broek%2C+Thijs%2C+Sander+Maas%2C+Ellen+van+Nunen%2C+and+Han+Zwijnenberg%2E+%22Definition+of+necessary+vehicle+and+infrastructure+systems+for+Automated+Driving%22%2C+Study+Report+for+the+European+Commission+%282011%29%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch09_B2"/>Gonz&#x000E1;lez David, P&#x000E9;rez Joshu&#x000E9;, Milan&#x000E9;s Vicente and Nashashibi, Fawzi., &#x0201C;<emphasis>A Review of Motion Planning Techniques for Automated Vehicles,</emphasis>&#x0201D; in Intelligent Transportation Systems, IEEE Transactions on, in press. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=Gonz%E1lez+David%2C+P%E9rez+Joshu%E9%2C+Milan%E9s+Vicente+and+Nashashibi%2C+Fawzi%2E%2C+%22A+Review+of+Motion+Planning+Techniques+for+Automated+Vehicles%2C%22+in+Intelligent+Transportation+Systems%2C+IEEE+Transactions+on%2C+in+press%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch09_B3"/>Hesse, Tobias, et al. <emphasis>Towards user-centred development of integrated information, warning, and intervention strategies for multiple ADAS in the EU project interactive.</emphasis>s.l.: Universal Access in Human-Computer Interaction. Context Diversity, 2011. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=Hesse%2C+Tobias%2C+et+al%2E+Towards+user-centred+development+of+integrated+information%2C+warning%2C+and+intervention+strategies+for+multiple+ADAS+in+the+EU+project+interactive%2Es%2El%2E%3A+Universal+Access+in+Human-Computer+Interaction%2E+Context+Diversity%2C+2011%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch09_B4"/>Ziegler, Jens, Philipp Bender, Markus Schreiber, Henning Lategahn, Tobias Strauss, Christoph Stiller, Thao Dang et al. &#x0201C;<emphasis>Making bertha drive&#x02014;An autonomous journey on a historic route.</emphasis>&#x0201D; Intelligent Transportation Systems Magazine, IEEE 6, no. 2 (2014): 8&#x02013;20. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=Ziegler%2C+Jens%2C+Philipp+Bender%2C+Markus+Schreiber%2C+Henning+Lategahn%2C+Tobias+Strauss%2C+Christoph+Stiller%2C+Thao+Dang+et+al%2E+%22Making+bertha+drive-An+autonomous+journey+on+a+historic+route%2E%22+Intelligent+Transportation+Systems+Magazine%2C+IEEE+6%2C+no%2E+2+%282014%29%3A+8-20%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch09_B5"/>Broggi, Alberto, Pietro Cerri, Stefano Debattisti, Maria Chiara Laghi, Paolo Medici, Matteo Panciroli, and Antonio Prioletti. &#x0201C;PROUD-Public road urban driverless test: Architecture and results.&#x0201D; In <emphasis>Intelligent Vehicles Symposium Proceedings, 2014 IEEE</emphasis>, pp. 648&#x02013;654. IEEE, 2014. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=Broggi%2C+Alberto%2C+Pietro+Cerri%2C+Stefano+Debattisti%2C+Maria+Chiara+Laghi%2C+Paolo+Medici%2C+Matteo+Panciroli%2C+and+Antonio+Prioletti%2E+%22PROUD-Public+road+urban+driverless+test%3A+Architecture+and+results%2E%22+In+Intelligent+Vehicles+Symposium+Proceedings%2C+2014+IEEE%2C+pp%2E+648-654%2E+IEEE%2C+2014%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch09_B6"/>Hoc, Jean-Michel. <emphasis>Towards a cognitive approach to human-machine cooperation in dynamic situations.</emphasis> s.l.: International Journal of Human-Computer Studies, 2001. Vol. 54. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=Hoc%2C+Jean-Michel%2E+Towards+a+cognitive+approach+to+human-machine+cooperation+in+dynamic+situations%2E+s%2El%2E%3A+International+Journal+of+Human-Computer+Studies%2C+2001%2E+Vol%2E+54%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch09_B7"/>Parasuraman, Raja, Sheridan, Thomas B and Wickens, Christopher D. <emphasis>A Model for types and levels of humans interaction with automation.</emphasis> s.l.: Systems, Man and Cybernetics, Part A: Systems and Humans, IEEE Transactions on, 2000. Vol. 30. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=Parasuraman%2C+Raja%2C+Sheridan%2C+Thomas+B+and+Wickens%2C+Christopher+D%2E+A+Model+for+types+and+levels+of+humans+interaction+with+automation%2E+s%2El%2E%3A+Systems%2C+Man+and+Cybernetics%2C+Part+A%3A+Systems+and+Humans%2C+IEEE+Transactions+on%2C+2000%2E+Vol%2E+30%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch09_B8"/>Leeuwen, Peter van, et al. <emphasis>Effects of concurrent continuous visual feedback on learning the lane keeping task.</emphasis>s.l.: Proceedings of the Sixth International Driving Symposium on Human Factors in Driver Assessment, Training and Vehicle Design, 2011. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=Leeuwen%2C+Peter+van%2C+et+al%2E+Effects+of+concurrent+continuous+visual+feedback+on+learning+the+lane+keeping+task%2Es%2El%2E%3A+Proceedings+of+the+Sixth+International+Driving+Symposium+on+Human+Factors+in+Driver+Assessment%2C+Training+and+Vehicle+Design%2C+2011%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch09_B9"/>Sheridan, Thomas B. and Verplank, William L. <emphasis>Human and Computer Control of Undersea Teleoperators</emphasis>. s.l.: Massachusetts Institute of Technology Cambridge Man-Machine Systems Lab, 1978. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=Sheridan%2C+Thomas+B%2E+and+Verplank%2C+William+L%2E+Human+and+Computer+Control+of+Undersea+Teleoperators%2E+s%2El%2E%3A+Massachusetts+Institute+of+Technology+Cambridge+Man-Machine+Systems+Lab%2C+1978%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch09_B10"/>Flemisch, Frank, et al. <emphasis>Cooperative Control and active interfaces for vehicle assisstance and automation.</emphasis>s.l.: FISITA World automotive Congress, 2008. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=Flemisch%2C+Frank%2C+et+al%2E+Cooperative+Control+and+active+interfaces+for+vehicle+assisstance+and+automation%2Es%2El%2E%3A+FISITA+World+automotive+Congress%2C+2008%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch09_B11"/>Taxonomy and Definitions for Terms Related to On-Road Motor Vehicle Automated Driving Systems. s.l.: SAE International, 2014. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=Taxonomy+and+Definitions+for+Terms+Related+to+On-Road+Motor+Vehicle+Automated+Driving+Systems%2E+s%2El%2E%3A+SAE+International%2C+2014%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch09_B12"/>Gasser, Tom M. and Westhoff, Daniel. <emphasis>BASt-study: Definitions of Automation and Legal Issues in Germany.</emphasis> s.l.: 2012 Road Vehicle Automation Workshop, July 25, 2012. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=Gasser%2C+Tom+M%2E+and+Westhoff%2C+Daniel%2E+BASt-study%3A+Definitions+of+Automation+and+Legal+Issues+in+Germany%2E+s%2El%2E%3A+2012+Road+Vehicle+Automation+Workshop%2C+July+25%2C+2012%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch09_B13"/><emphasis>Preliminary Statement of Policy Concerning Automated Vehicles.</emphasis> s.l.: Nationam Highway Traffic Safety Administration, May 30, 2013. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=Preliminary+Statement+of+Policy+Concerning+Automated+Vehicles%2E+s%2El%2E%3A+Nationam+Highway+Traffic+Safety+Administration%2C+May+30%2C+2013%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch09_B14"/>Flemisch, Frank, et al. Automation Spectrum, inner/outer compatibility and other potentially usefull human factors concepts for assisstance and automation. s.l.: Human Factors for assisstance and automation, 2008. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=Flemisch%2C+Frank%2C+et+al%2E+Automation+Spectrum%2C+inner%2Fouter+compatibility+and+other+potentially+usefull+human+factors+concepts+for+assisstance+and+automation%2E+s%2El%2E%3A+Human+Factors+for+assisstance+and+automation%2C+2008%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch09_B15"/>Flemisch, Frank O., et al. <emphasis>The H-Metaphor as a Guideline for Vehicle Automation and Interaction.</emphasis> s.l.: NASA Center for AeroSpace Information, 2003. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=Flemisch%2C+Frank+O%2E%2C+et+al%2E+The+H-Metaphor+as+a+Guideline+for+Vehicle+Automation+and+Interaction%2E+s%2El%2E%3A+NASA+Center+for+AeroSpace+Information%2C+2003%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch09_B16"/>Abbink, David A. <emphasis>Neuromuscular analysis of haptic gas pedal feedback during car following.</emphasis> s.l.: Faculty of Mechanical Maritime and Materials Engineering, Delf University of Technology, 2006. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=Abbink%2C+David+A%2E+Neuromuscular+analysis+of+haptic+gas+pedal+feedback+during+car+following%2E+s%2El%2E%3A+Faculty+of+Mechanical+Maritime+and+Materials+Engineering%2C+Delf+University+of+Technology%2C+2006%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch09_B17"/>Winter, Joost C.F. de, et al. <emphasis>A two-dimensional weighting function for a driver assistance system.</emphasis> s.l.: Systems, Man, and Cybernetics, Part B: Cybernetics IEEE Transactions on, 2008. Vol. 38. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=Winter%2C+Joost+C%2EF%2E+de%2C+et+al%2E+A+two-dimensional+weighting+function+for+a+driver+assistance+system%2E+s%2El%2E%3A+Systems%2C+Man%2C+and+Cybernetics%2C+Part+B%3A+Cybernetics+IEEE+Transactions+on%2C+2008%2E+Vol%2E+38%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch09_B18"/>Mulder, Mark, Abbink, David A. and Boer, Erwin R. <emphasis>The effect of haptic guidance on curve negotiation behavior of young, experienced drivers.</emphasis> s.l.: Systems, Man and Cybernetics, 2008 SMC 2008 IEEE International Conference on, 2008. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=Mulder%2C+Mark%2C+Abbink%2C+David+A%2E+and+Boer%2C+Erwin+R%2E+The+effect+of+haptic+guidance+on+curve+negotiation+behavior+of+young%2C+experienced+drivers%2E+s%2El%2E%3A+Systems%2C+Man+and+Cybernetics%2C+2008+SMC+2008+IEEE+International+Conference+on%2C+2008%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch09_B19"/>Abbink, David A., Mulder, Mark and Boer, Erwin R. <emphasis>Haptic shared control: smoothly shifting control authority?</emphasis> s.l.: Cognition, Technology &#x00026; Work, 2012. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=Abbink%2C+David+A%2E%2C+Mulder%2C+Mark+and+Boer%2C+Erwin+R%2E+Haptic+shared+control%3A+smoothly+shifting+control+authority%B4+s%2El%2E%3A+Cognition%2C+Technology+%26+Work%2C+2012%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch09_B20"/>Crespo, Laura Marchal, et al. The effect of haptic guidance, aging, and initial skill level on motor learning of a steering task. s.l.: Experimental Brain Research, 2010. Vol. 201. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=Crespo%2C+Laura+Marchal%2C+et+al%2E+The+effect+of+haptic+guidance%2C+aging%2C+and+initial+skill+level+on+motor+learning+of+a+steering+task%2E+s%2El%2E%3A+Experimental+Brain+Research%2C+2010%2E+Vol%2E+201%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch09_B21"/>Zhang, Yu. Visual and Cognitive Distraction Effects on Driver Behavior and an Approach to Distraction State Classification. Raleigh, North Carolina: North Carolina State University, 2011. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=Zhang%2C+Yu%2E+Visual+and+Cognitive+Distraction+Effects+on+Driver+Behavior+and+an+Approach+to+Distraction+State+Classification%2E+Raleigh%2C+North+Carolina%3A+North+Carolina+State+University%2C+2011%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch09_B22"/>Owsley, Cynthia and Jr., Gerald McGwin. <emphasis>Vision ans Drivng.</emphasis> s.l.: Vision Research, 2010. Vol. 50. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=Owsley%2C+Cynthia+and+Jr%2E%2C+Gerald+McGwin%2E+Vision+ans+Drivng%2E+s%2El%2E%3A+Vision+Research%2C+2010%2E+Vol%2E+50%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch09_B23"/>Boverie, S., Cour, M and Le Gall, JY. <emphasis>Adapted Human Machine Interaction concept for Driver Assistance Systems DrivEasy.</emphasis> Milano: 18th IFAC World Congress, 2011. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=Boverie%2C+S%2E%2C+Cour%2C+M+and+Le+Gall%2C+JY%2E+Adapted+Human+Machine+Interaction+concept+for+Driver+Assistance+Systems+DrivEasy%2E+Milano%3A+18th+IFAC+World+Congress%2C+2011%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch09_B24"/>Flemisch, Franck, et al. <emphasis>Towards Highly Automated Driving: Inter mediate report on the HAVEit-Joint System.</emphasis>Brussels: 3rd European Road Transport Research Arena, Tra2010, 2010. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=Flemisch%2C+Franck%2C+et+al%2E+Towards+Highly+Automated+Driving%3A+Inter+mediate+report+on+the+HAVEit-Joint+System%2EBrussels%3A+3rd+European+Road+Transport+Research+Arena%2C+Tra2010%2C+2010%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch09_B25"/>Vanholme, Benoit. Highly Automated Driving on Highways based on Legal Safety, PhD Thesis. 2012. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=Vanholme%2C+Benoit%2E+Highly+Automated+Driving+on+Highways+based+on+Legal+Safety%2C+PhD+Thesis%2E+2012%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch09_B26"/>Hesse, Tobias, et al. <emphasis>Towards user-centred development of integrated information, warning, and intervention strategies for multiple ADAS in the EU project interactive.</emphasis> s.l.: Universal Access in Human-Computer Interaction. Context Diversity, 2011. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=Hesse%2C+Tobias%2C+et+al%2E+Towards+user-centred+development+of+integrated+information%2C+warning%2C+and+intervention+strategies+for+multiple+ADAS+in+the+EU+project+interactive%2E+s%2El%2E%3A+Universal+Access+in+Human-Computer+Interaction%2E+Context+Diversity%2C+2011%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch09_B27"/><emphasis>D24.1 -Vehicle Control Solutions-, SP2.</emphasis> s.l.: DESERVE project, 2013. Deliverable.</para></listitem>
<listitem><para><anchor id="ch09_B28"/>D44.1 -<emphasis>Automated Functions Solution Design</emphasis>-, SP4. s.l.: DESERVE project, 2013. Deliverable.</para></listitem>
<listitem><para><anchor id="ch09_B29"/>Adams, Lisa D. <emphasis>Review of the literature on obstacle avoidance maneuvers: braking versus steering.</emphasis> s.l.: Univ. Michigan Transp. Res. Inst., Ann Arbor, MI, Tech. Rep. UMTRI-94-19, 1994. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=Adams%2C+Lisa+D%2E+Review+of+the+literature+on+obstacle+avoidance+maneuvers%3A+braking+versus+steering%2E+s%2El%2E%3A+Univ%2E+Michigan+Transp%2E+Res%2E+Inst%2E%2C+Ann+Arbor%2C+MI%2C+Tech%2E+Rep%2E+UMTRI-94-19%2C+1994%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch09_B30"/>Young, Kristie, John D. Lee, and Michael A. Regan, eds. Driver distraction: Theory, effects, and mitigation. CRC Press, 2008.</para></listitem>
<listitem><para><anchor id="ch09_B31"/>Walker Smith, B. <emphasis>Automated Vehicles Are Probably Legal in the United States,</emphasis> 1 Tex. A&#x00026;M L. Rev. 411, 2014. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=Walker+Smith%2C+B%2E+Automated+Vehicles+Are+Probably+Legal+in+the+United+States%2C+1+Tex%2E+A%26M+L%2E+Rev%2E+411%2C+2014%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch09_B32"/>Trimble, Tammy E., Richard Bishop, Justin F. Morgan, and Myra Blanco. <emphasis>Human factors evaluation of level 2 and level 3 automated driving concepts: Past research, state of automation technology, and emerging system concepts</emphasis>. No. DOT HS 812 043. 2014. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=Trimble%2C+Tammy+E%2E%2C+Richard+Bishop%2C+Justin+F%2E+Morgan%2C+and+Myra+Blanco%2E+Human+factors+evaluation+of+level+2+and+level+3+automated+driving+concepts%3A+Past+research%2C+state+of+automation+technology%2C+and+emerging+system+concepts%2E+No%2E+DOT+HS+812+043%2E+2014%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch09_B33"/>Anderson, James M., Kalra Nidhi, Karlyn D. Stanley, Paul Sorensen, Constantine Samaras, and Oluwatobi A. Oluwatola. <emphasis>Autonomous vehicle technology: A guide for policymakers</emphasis>. Rand Corporation, 2014. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=Anderson%2C+James+M%2E%2C+Kalra+Nidhi%2C+Karlyn+D%2E+Stanley%2C+Paul+Sorensen%2C+Constantine+Samaras%2C+and+Oluwatobi+A%2E+Oluwatola%2E+Autonomous+vehicle+technology%3A+A+guide+for+policymakers%2E+Rand+Corporation%2C+2014%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch09_B34"/>D32.1 <emphasis>-General Driving Monitoring module definition SoA-</emphasis>, SP3 s.l.: DESERVE project, 2013 Deliverable.</para></listitem>
<listitem><para><anchor id="ch09_B35"/>Beiker, S. and Calo, R. <emphasis>Legal aspects of autonomous driving.</emphasis> Santa Clara L. Rev. 52 (2012): 1145. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=Beiker%2C+S%2E+and+Calo%2C+R%2E+Legal+aspects+of+autonomous+driving%2E+Santa+Clara+L%2E+Rev%2E+52+%282012%29%3A+1145%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch09_B36"/>J. van Dijke and M. van Schijndel, <emphasis>Citymobil, advanced transport for the urban environment: Update,</emphasis> Transportation Research Record: Journal of the Transportation Research Board, no. 2324, pp. 29&#x02013;36, 2012. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=J%2E+van+Dijke+and+M%2E+van+Schijndel%2C+Citymobil%2C+advanced+transport+for+the+urban+environment%3A+Update%2C+Transportation+Research+Record%3A+Journal+of+the+Transportation+Research+Board%2C+no%2E+2324%2C+pp%2E+29-36%2C+2012%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch09_B37"/>D24.4 <emphasis>-Generic ADAS Control-</emphasis>, SP2 s.l.: DESERVE project, 2013 Deliverable.</para></listitem>
<listitem><para><anchor id="ch09_B38"/>Perez, J. M., David Gonzalez, Fawzi Nashashibi, Gwenael Dunand, Fabio Tango, Nereo Pallaro, and Andre Rolfsmeier. &#x0201C;Development and design of a platform for arbitration and sharing control applications.&#x0201D; In Embedded Computer Systems: Architectures, Modeling, and Simulation (SAMOS XIV), 2014 International Conference on, pp. 322&#x02013;328. IEEE, 2014. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=Perez%2C+J%2E+M%2E%2C+David+Gonzalez%2C+Fawzi+Nashashibi%2C+Gwenael+Dunand%2C+Fabio+Tango%2C+Nereo+Pallaro%2C+and+Andre+Rolfsmeier%2E+%22Development+and+design+of+a+platform+for+arbitration+and+sharing+control+applications%2E%22+In+Embedded+Computer+Systems%3A+Architectures%2C+Modeling%2C+and+Simulation+%28SAMOS+XIV%29%2C+2014+International+Conference+on%2C+pp%2E+322-328%2E+IEEE%2C+2014%2E" target="_blank">Google Scholar</ulink></para></listitem>
</orderedlist>
</section>
</chapter>
</part>
<part class="part" id="part03" label="III" xreflabel="III">
<title>Validation and Evaluation</title>
<chapter class="chapter" id="ch10" label="10" xreflabel="10">
<title>The HMI of Preventing Warning Systems: The DESERVE Approach</title>
<para class="section"><emphasis role="strong">Caterina Calefato<superscript>1</superscript>, Chiara Ferrarini<superscript>1</superscript>, Elisa Landini<superscript>2</superscript>, Roberto Montanari<superscript>2</superscript>, Fabio Tango<superscript>3</superscript>, Marga S&#x00E1;ez Tort<superscript>4</superscript> and Eva M. Garc&#x00ED;a Quinteiro<superscript>4</superscript></emphasis></para>
<para><superscript>1</superscript>Unimore &#x02013; University of Modena and Reggio Emilia &#x02013; Italy</para>
<para><superscript>2</superscript>RE:Lab srl, Italy</para>
<para><superscript>3</superscript>CRF &#x02013; Centro Ricerche Fiat, Italy</para>
<para><superscript>4</superscript>CTAG &#x02013; Centro Tecnol&#x00F3;gico de Automoci&#x00F3;n de Galicia, Spain</para>
<section class="lev1" id="sec10-1">
<title>10.1 Introduction</title>
<para>Early &#x02019;70s literature in traffic safety put into evidence how the majority of accidents is a consequence of human error. One of the pioneering work carried out in 1977 in the automotive domain [<link linkend="ch10_B34">34</link>] started from an examination of a large number of accidents and showed that more than 90% of them was determined by different kind of mistakes attributable solely to a human factor and rarely to technical and/or environmental failures.</para>
<para>This finding was confirmed in the following years also in other domains with very complex technologic contexts (i.e. avionic, railway, etc.).</para>
<para>It was realized that in the framework of the evolution of technical systems, the human element plays a fundamental role both as a governing factor and as a potential menace to safety. This concept paved the way for the modern preventive safety systems, wide known as ADAS (Advanced Driver Assistance System).</para>
<para>The experience carried out into the DESERVE project (Development Platform for Safe and Efficient Drive) was agreed by all involved partners to be beneficial for the extension of future ADAS. A key role in this process is played by the Human Machine Interface (HMI). Since ADAS systems cope with the driving task influencing driver&#x02019;s decisions or directly intervening in the driving maneuver, the issue of the driver&#x02019;s trust opens a crucial design problem, because the driver cedes a part of the control [<link linkend="ch10_B30">30</link>]. Low trust, resulting e.g. from an earlier experience of failure, can lead to disuse of the system [<link linkend="ch10_B24">24</link>]. Building and enforcing the driver&#x02019;s trust through a positive system experiencing depends not only on the proper functioning of the system itself (i.e. the capability of detecting some events) but also on the HMI design.</para>
<para>In order to create those positive experiences and avoid the disuse of ADAS, one has to understand the driver and his/her goals and motives while driving [<link linkend="ch10_B13">13</link>], together with the role of technology in supporting the driver in his/her task and in avoiding road accidents.</para>
<para>This chapter aims at exploring step by step the rationale behind the effective design of the Human Machine Interface for ADAS systems, giving the reader an outline of the role and scope of ADAS system. In next paragraphs, a particular focus on the role of humans and role of technology in the preventing of the road accidents is presented, along with the discussion of the importance of the detection of the driver&#x02019;s intention. Then an example of a whole HMI design process is presented. In fact during the DESERVE project the in-vehicle HMI for 17 functions (13 of them were ADAS) was designed and evaluated. This chapter will report to the reader how the HMI was conceived, including discussions on the role of ADAS in preventing imminent accidents and a short state of art on HMI design approaches.</para>
</section>
<section class="lev1" id="sec10-2">
<title>10.2 Prevent Imminent Accidents: The Role of Humans, the Role of Technology</title>
<para>In general, the amount of accidents among the years is progressively decreased since the second half of the &#x02019;80s [<link linkend="ch10_B8">8</link>]. This basically depends both from a strengthen in humans awareness on the accident causes, partly influenced by the evolution of studies in humans factors, but mostly this depends on technological innovation on vehicles. The history of such evolution which intends to show the relationship existing between the run-up of the accident and the technologies and functions for safety enhancement will be presented in the next paragraph.</para>
<fig id="F10-1" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F10-1">Figure <xref linkend="F10-1" remap="10.1"/></link></label>
<caption><para>Total number of fatalities in road traffic accidents in Europe [<link linkend="ch10_B8">8</link>].</para></caption>
<graphic xlink:href="graphics/ch10_fig001.jpg"/>
</fig>
<section class="lev2" id="sec10-2-1">
<title>10.2.1 From Passive to Preventive Safety</title>
<para>The first phase in reaching a higher safety degree on vehicles was due to the introduction of the so called passive safety systems, whose main purpose is to improve the driver conditions while an accident takes place. Indeed, the introduction of safety belts, airbag, etc., as well as the strengthening of the materials have significantly reduced the number of injuries and consequently the number of victims on the road. For instance, studies on the effectiveness of the seat belts were conducted since the end of the &#x02019;60s starting from Sweden [<link linkend="ch10_B4">4</link>].</para>
<para>The second phase was characterized by the introduction of active safety systems, which were intended to increase the safety of the driver when approaching a dangerous situation. In particular, this period dealt with the introduction of systems such as the ABS (Anti-lock Braking Systems), the ESC (Electronic Stability Control), as well as other functions able to intervene by minimising the impact in proximity of a potential dangerous situation and, hence, by avoiding the accident. For instance cars equipped with ESC were 22% less likely to be involved in crashes than those without, with 32% and 38% fewer crashes in wet and snowy conditions [<link linkend="ch10_B19">19</link>].</para>
<para>The challenge of reducing even more the number of accidents consists in allowing the development of the so called <emphasis>preventive safety technology</emphasis>, which is conceived to assist the driver when the risk of occurring a hazardous and critic situation is greeting higher. These technologies, named ADAS (Advance Driver Assistance Systems) are able to monitor the driving dynamics by introducing preventive features in support of the driving activity. In particular, driving safety will be fostered on the longitudinal axis of the vehicle thanks, for instance, to the frontal collision warning and adaptive cruise control systems. Driving safety on the lateral axis can be improved by systems like lane support and lane warning. The implementation of blind spot improves the safety on the rear spectrum indeed. The purpose of this approach is twofold: on one hand it is intended to guarantee an high level of protection on the road, almost as if the driver was stuck inside of a kind of &#x0201C;safety bubble&#x0201D;, as highlighted by some researchers when referring to the concept of &#x0201C;virtual safety belt&#x0201D; [<link linkend="ch10_B31">31</link>]. On the other hand, it aims at allowing cars to operate in coordination by implementing a scenario where the whole vehicles have high situation awareness capabilities. It is indubitable the effectiveness of the ADAS in driving safety, even most of them have not yet achieved a mature introduction in vehicle market but are still in the prototyping phase. Nevertheless, researches has shown that to an increase of the automation and accident prevention features included in the on-board technologies does not always correspond to increase of the driving confidence, especially if the drivers&#x02019; expectations in vehicle technologies interaction are not fully taken into consideration by designers. On the other hand, a theory known as Peltzman effect [<link linkend="ch10_B25">25</link>] seems to show that an improvement of confidence due to effective automated safety support systems, even if they are only able to increase the driving monitoring scenario, could induce drivers in improving, for instance, speed, till to jeopardize the effectiveness of such systems.</para>
</section>
<section class="lev2" id="sec10-2-2">
<title>10.2.2 The Role of Driver Model in ADAS Design</title>
<para>As aforementioned, Advanced Driver Assistance Systems (ADAS) have been implemented more and more in recent years in the automotive industry, in order to move from passive safety to preventive safety. In this context, through the driver models, a more complete understanding of driver&#x02019;s behaviour is expected to have the opportunity to enhance the road safety and to increase the driver acceptance of in-vehicle advanced systems, by designing ADAS that are more suitable to the drivers. As a practical example: the Lane Departure Warning (LDW) warns the driver when the left/right lane is crossed without using the indicator. However, blinkers are used only half the time before a lane change [<link linkend="ch10_B18">18</link>] and, therefore, the LDW might warn the driver in situations in which s/he is in full control of the vehicle (for example, during an overtaking without blinker activated), causing a nuisance to the driver. If this situation occurs frequently, the driver might get so annoyed by the system that might deactivate the LDW, eliminating the possible safety benefit brought by the system. If the human behaviour could be modelled more precisely, it would be possible to discriminate between an intentional lane crossing and (simply) an unintended lane crossing (with the LDW warning the driver only in the second case). Then, driver acceptance of the LDW could be increased. Similar examples could be found for other ADAS such as Forward Collision Warning (FCW) and Blind Spot System (BDS). Then, the driver intention detection module might be used jointly with other systems to warn the driver about risky behaviours or might be used for the communication with other ADAS. For instance, the lane change detection module could be implemented with a surrounding vision system or with a blind spot information system to prevent the driver from a dangerous overtaking manoeuvre (if an oncoming vehicle is spotted and, at the same time, a lane change intention is detected).</para>
<para>The Driver Intention Detection Module developed within the DESERVE project aims at modelling and predicting the driver&#x02019;s behavior at the tactical and operational levels of the Michon&#x02019;s model [<link linkend="ch10_B20">20</link>]. Among the maneuvers taken into consideration for the prediction of driver&#x02019;s intent, the most researched are the lane change, the turning left/right, the braking and the lane keeping. For the scope of the DESERVE project, the focus will be placed on the prediction of lane changes (and possibly of overtaking) with the final aim of improving the acceptance of ADAS. If a reliable lane change intention was developed, the warning could be issued only when needed: ADAS designed in such a way could increase driver&#x02019;s acceptance and reach a higher benefit with respect to road safety.</para>
<para>In the field of lane change intention detection, several researches have been already performed. One of the main authors on this topic is Salvucci. He applied the model tracing technique associated to a computational driver model to detect driver&#x02019;s intention to change lane [<link linkend="ch10_B29">29</link>]. Model tracing techniques were originally used for intelligent tutoring to predict students&#x02019; possible next steps in problem solving. In the study of [<link linkend="ch10_B29">29</link>], data from the vehicle (steering wheel angle, accelerator depression, lateral position, longitudinal distance and time headway to a lead vehicle, longitudinal distance front and back, to vehicles in adjacent lanes) and from the environment (presence or absence of a lane to the left and right of the current travel lane) were used to build the model. Based on the information, the model calculates a desired steering angle and the accelerator position. The model performed well when tested both at the driving simulator and in the real vehicle, reaching a reliable detection of the maneuver after 1 second.</para>
<para>In a later research work [<link linkend="ch10_B6">6</link>], the authors developed and implemented a real-time lane change intent detection system which could go beyond the traditional o&#x0FB04;ine implementation. The authors made use of information collected from the vehicle (steering wheel angle, yaw rate and blinker state signal), the Adaptive Cruise Control (distance to the lead vehicle, the relative speed, time gap to the vehicle in front and the difference between the current speed and the desired speed), the Lane Departure Warning (vehicle lateral deviation, lane curvature and vehicle yaw angle), the Side Warning Assist (occupancy and speed state within a critical zone) and the head position (head motion, head yaw and head pitch), adopting a time window of 2 second to trace the past events. A classifier based on relevance vector machines (RVM) was used for the lane change intent. The results show that, for a good prediction of the lane change intention, the inputs from the direct observation of the driver (head-viewing camera) are relevant and that the quality of the classification is improved (unreliable detections are beyond 3 seconds). In a later article [<link linkend="ch10_B15">15</link>], a multiclass Support Vector Machine (SVM) algorithm associated to a Bayesian filtering approach to predict lane change intention was used. The variables used as inputs for the algorithm were the lateral position of the vehicle (obtained from a lane tracker system), the steering angle, the first derivative of the lane position and the first derivative of the steering angle. The research was formulated as a multiclass classification problem with three possible outcomes: left lane change, right lane change and no lane change. On top of the multiclass classifier, a Bayesian Filter (BF) in order to improve the reliability of the predictions was used. The comparison between the SVM algorithm alone and the combination of SVM and BF shows that, in the first case, many false alarms were observed but the precision was increased by adding the Bayesian Filter, reducing average prediction times. Most of the lane changes are predicted almost 1.3 seconds before the lane crossing with a maximum prediction horizon reaching 3.3 seconds. The authors reported that further improvements might be brought by inclusion of other variables as the distance to the vehicle in front and the speed difference with the vehicle in front.</para>
<para>Overall, despite the knowledge acquired concerning the prediction of driver&#x02019;s intention to start a lane change, the topic is still interesting because the problem of lane change intention has shown to be extremely challenging. In particular, for having a more reliable prediction of driver intent, three aspects should be considered:</para>
<itemizedlist mark="bullet" spacing="normal">
<listitem><para>to increase the precision of the prediction algorithms;</para></listitem>
<listitem><para>to augment the detection time prior to the lane change;</para></listitem>
<listitem><para>to decrease the number of variables to predict the lane change (not all the sensors used in the previous studies are available in common vehicles).</para></listitem>
</itemizedlist>
<para>In addition, as pointed out by previous research [<link linkend="ch10_B7">7</link>], there are aspects which should be considered when designing a study to infer driver&#x02019;s intention prediction:</para>
<itemizedlist mark="bullet" spacing="normal">
<listitem><para>type of inputs to be used: CAN data (steering wheel angle, pedal position, turn indicator), lane position sensor/camera (lateral lane position and standard deviation) and sensors for behavior data (head motion, eye motion foot and hands positions).</para></listitem>
<listitem><para>type of algorithm to be adopted for the analysis: Support Vector Machines, Bayesian Nets, Hidden Markov Models</para></listitem>
<listitem><para>material to be employed for the experiment: real vehicle (naturalistic or imposed) or driving simulator.</para></listitem>
</itemizedlist>
<para>Regarding the first aspect, the results highly improve when measures of driver behavior are included, especially the head motion. However, this information is, usually, not available in common vehicles and, therefore, this feature should be further analyzed.</para>
</section>
</section>
<section class="lev1" id="sec10-3">
<title>10.3 HMI Design Flow: The DESERVE Approach</title>
<para>In order to develop an HMI concept for ADAS capable of generating positive experiences during the driving task, a design workflow of 5 steps was used:</para>
<orderedlist numeration="arabic" continuation="restarts" spacing="normal">
<listitem><para>Collecting the state of art and last trends in the automotive HMI designing;</para></listitem>
<listitem><para>Defining three different HMI concepts;</para></listitem>
<listitem><para>Preliminary testing the three HMI concepts by a focus group;</para></listitem>
<listitem><para>Testing the best 2 concepts by a user test at driving simulator;</para></listitem>
<listitem><para>Defining the final concept.</para></listitem>
</orderedlist>
<para>The HMI was designed in order to allow adaptation strategies that takes into account the inputs provided by the driver model.</para>
<section class="lev2" id="sec10-3-1">
<title>10.3.1 Different Approaches in the HMI of the Preventing Warning Systems: A State of Art in a Glance</title>
<para>From the point of view of the on-board human machine interface correlated to the different type of preventive accident systems, the evolution of HMI for ADAS could be clustered in three main phases.</para>
<para>It is possible to name the first era of preventive accident systems HMI as <emphasis>warning era</emphasis>. Most of the active and preventive systems above mentioned, which are not expected to be automatically actuated, are at the end a kind of <emphasis>warning based systems</emphasis> as they are aimed at increasing the driver awareness thanks to the support of technologies. The corresponding HMI is therefore based on alerts and aimed at delivering to the drivers immediately potential risks so to restore a safe situation for the driver.</para>
<para>The second phase coincides with an important transformation induced by the active and preventing safety systems evolution moving from being only activated by on-board sensors to a larger spectrum of sensors including both vehicle, other vehicles (Vehicles to Vehicles &#x02013; V2V) and infrastructure (Vehicles to Infrastructure &#x02013; V2I). This technological evolution is creating so-called <emphasis>cooperative ADAS</emphasis> perspective [<link linkend="ch10_B16">16</link>] where preventive capabilities of such systems is allowed by the connection of the infrastructure. In terms of HMI, it is evident that vehicles are not necessary and exclusively oriented towards a dimension characterized by warning-based interfaces. Although this mechanism tends to persist, as well as to be necessary, it is also evident that within a system characterized by a high level of cooperation, the warning-based system might be easily replaced by a <emphasis>recommending-based mechanism</emphasis>. In other words, if vehicles are able to mutually recognize each other, as well as to cooperate for exchanging information and data, the system for supporting the driver will be aimed at sharing behavioural choice among the cars, rather than imposing and reporting imminent dangers. D3COS EU project (<ulink url="http://www.d3cos.eu">www.d3cos.eu</ulink>) &#x02013; among its results &#x02013; have firstly proposed such promising concept in HMI for preventive accident systems [<link linkend="ch10_B29">29</link>]. This new dimension represents a real shift of paradigm going towards an increasing level of automation.</para>
<para>The third phase is characterized by the integration between the cooperative and the warning-based dimensions from one side, and the increased level of automation in cars (according to SAE Standard J0316) from the other. In this situation, expected HMIs will raise even more complex issues. Firstly, if on one hand it is true that automation will set the driver free from the necessity of constantly driving the vehicle, on the other hand, the driver is obliged to continuously monitor the correct functioning of the whole system. In a pioneering work, [<link linkend="ch10_B1">1</link>] expressed the idea of a sort of <emphasis>irony</emphasis> hiding behind the concept of automation. In fact, if theoretically speaking, the purpose of automation is to exclude the user from the driving tasks, in practices autonomous systems tends to encourage even more the participation of the driver, who must continuously monitor the correct functioning of the mechanism. The more the vehicle is autonomous, the more the driver is responsible for the only monitoring and the design issues for HMI designers is how to provide the best monitoring and to re-allocate the control to the drivers in the most effective and quicker way.</para>
</section>
</section>
<section class="lev1" id="sec10-4">
<title>10.4 HMI Concepts Design</title>
<para>The three HMI concepts developed within the DESERVE project included the information normally displayed in the dashboard (i.e. speedometer, odometer, fuel level and water temperature information, diagnostic telltales, etc.), ADAS information support (i.e. lane change assistance system, nigh view, parking aid, adaptive cruise control, etc. as well as drowsy driver alert system) and navigation information.</para>
<para>Moreover a particular attention was dedicated to the design layout of the drowsy driver alert system. Drowsiness detection can be used to give a direct warning to the driver (explicit drowsiness) or as an input for an HMI reconfiguration strategy (implicit drowsiness). These two different strategies for drowsiness management were applied to all the three HMI concepts, obtaining hence 6 concepts to test. For the explicit drowsiness a warning is delivered to the driver with an icon and a message. For the implicit drowsiness ADAS sensitivity is set to the highest level. Once the driver takes a break, the ADAS configuration s/he set before is restored.</para>
<para>The user interface deploys 17 functions: 13 of them are ADAS, 2 are Safety Assistance Systems, and 2 are IVIS (In-Vehicle Information System), as listed in the following:</para>
<orderedlist numeration="arabic" continuation="restarts" spacing="normal">
<listitem><para>Lane change assistance system (ADAS);</para></listitem>
<listitem><para>Night vision system with pedestrian detection (ADAS);</para></listitem>
<listitem><para>Rear view camera system (Safety Assistance);</para></listitem>
<listitem><para>Surround view (Safety Assistance);</para></listitem>
<listitem><para>Lane departure warning (ADAS);</para></listitem>
<listitem><para>Pedestrian safety system (ADAS);</para></listitem>
<listitem><para>Collision warning system (ADAS);</para></listitem>
<listitem><para>Emergency braking ahead (ADAS);</para></listitem>
<listitem><para>Rear approaching vehicle (ADAS);</para></listitem>
<listitem><para>Adaptive high beam assist (ADAS);</para></listitem>
<listitem><para>Adaptive cruise control (ADAS);</para></listitem>
<listitem><para>Curve warning system (ADAS);</para></listitem>
<listitem><para>Intelligent park assist (ADAS);</para></listitem>
<listitem><para>Traffic sign recognition (ADAS);</para></listitem>
<listitem><para>Driver impairment warning system (ADAS);</para></listitem>
<listitem><para>Navi/Map info (IVIS);</para></listitem>
<listitem><para>Setting menu (IVIS).</para></listitem>
</orderedlist>
<section class="lev2" id="sec10-4-1">
<title>10.4.1 Concept 1: Holistic HMI</title>
<para>In the Holistic HMI concept all the HMI elements (I/O) are centralized in front of the driver. The Instrument Panel Cluster (IPC) is the main visual output channel, while the steering wheel (SW) is the main input channel.</para>
<para>The HMI elements are listed as follows: i) IPC display 12&#x0201D;; ii) SW commands; iii) Left stalk commands; iv) Buttons; v) Knobs.</para>
<fig id="F10-2" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F10-2">Figure <xref linkend="F10-2" remap="10.2"/></link></label>
<caption><para>Holistic HMI concept, that shows: IPC display 12&#x0201D;; SW commands; left stalk commands; buttons; knobs.</para></caption>
<graphic xlink:href="graphics/ch10_fig002.jpg"/>
</fig>
<para>The instrument panel cluster was divided in three areas. In the central area the following information are delivered: lane change assistance system, night vision system with pedestrian detection, rear view camera system, surround view and setting menu.</para>
<para>The left area is mainly dedicated to the hazard warnings: lane departure warning, pedestrian safety system, collision warning system, emergency braking ahead, rear approaching vehicle, adaptive high beam assist, adaptive cruise control, and curve warning system are displayed.</para>
<fig id="F10-3" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F10-3">Figure <xref linkend="F10-3" remap="10.3"/></link></label>
<caption><para>Holistic HMI layout.</para></caption>
<graphic xlink:href="graphics/ch10_fig003.jpg"/>
</fig>
<para>In the right area the following information are delivered: intelligent park assist, traffic sign recognition, driver impairment warning system and navigation.</para>
<fig id="F10-4" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F10-4">Figure <xref linkend="F10-4" remap="10.4"/></link></label>
<caption><para>Holistic HMI layout with the user menu in the central area.</para></caption>
<graphic xlink:href="graphics/ch10_fig004.jpg"/>
</fig>
<fig id="F10-5" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F10-5">Figure <xref linkend="F10-5" remap="10.5"/></link></label>
<caption><para>Holistic HMI layout with the lane change assist in the central area.</para></caption>
<graphic xlink:href="graphics/ch10_fig006.jpg"/>
</fig>
<fig id="F10-6" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F10-6">Figure <xref linkend="F10-6" remap="10.6"/></link></label>
<caption><para>Holistic HMI layout with the rear view camera in the central area.</para></caption>
<graphic xlink:href="graphics/ch10_fig005.jpg"/>
</fig>
<fig id="F10-7" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F10-7">Figure <xref linkend="F10-7" remap="10.7"/></link></label>
<caption><para>Holistic HMI layout with the night vision system in the central area.</para></caption>
<graphic xlink:href="graphics/ch10_fig007.jpg"/>
</fig>
<fig id="F10-8" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F10-8">Figure <xref linkend="F10-8" remap="10.8"/></link></label>
<caption><para>(A-B-C-D) Holistic HMI left area with: lane departure warning, collision warning, Rear approaching vehicle system, pedestrian safety system.</para></caption>
<graphic xlink:href="graphics/ch10_fig008.jpg"/>
</fig>
</section>
<section class="lev2" id="sec10-4-2">
<title>10.4.2 Concept 2: Immersive HMI</title>
<para>The second concept is totally different from the previous one. While the Holistic HMI concept centralizes all the info and the interaction with the driver in front of him/her, the Immersive HMI concept distributes the interaction along the dashboard and the windscreen.</para>
<para>The HMI elements of concept 2 are listed as follows: i) 3,5&#x0201D; IPC display; ii) Touch Display 8,5&#x0201D; in the dashboard; iii) Head-up display for the wind screen; iv) SW commands; v) Left stalk commands; vi) Buttons; vii) Knobs.</para>
<para>In the concept 2 the area dedicated to the hazard warnings was moved in the middle of the instrument panel cluster, while the navigation, the rear view camera, the night vision system, radio/multimedia, phone and menu applications were moved to the dashboard display. The head-up display delivers traffic sign recognition and lane change assist information on the windscreen.</para>
<fig id="F10-9" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F10-9">Figure <xref linkend="F10-9" remap="10.9"/></link></label>
<caption><para>Immersive HMI concept shows: 3,5&#x0201D; IPC display; touch display 8,5&#x0201D; in the dashboard; head-up display for the windscreen; SW commands; left stalk commands; buttons; knobs.</para></caption>
<graphic xlink:href="graphics/ch10_fig009.jpg"/>
</fig>
</section>
<section class="lev2" id="sec10-4-3">
<title>10.4.3 Concept 3: Smart HMI</title>
<para>The third concept replaces the dashboard display with a nomadic device (ND &#x02013; i.e. smartphone/tablet). The HMI can reconfigure itself according to ND size.</para>
<para>The IPC display has the same structure of that one of concept 2. The difference is that in the Smart HMI concept the 3,5&#x0201D; display of concept 2 was integrated by adding, for example, a 7&#x0201D; tablet (as in <link linkend="F10-7">Figure <xref linkend="F10-7" remap="10.7"/></link>) seamlessly connected with the car system. Drivers just connect the phone with a cable and immediately s/he gains access to ND applications using dashboard/steering-wheel buttons. The ND can provide also the access to further automotive applications. Driver can define what kind of information has to be shown in the ND: the ND is able to manage the infotainment functions and some ADAS applications.</para>
<fig id="F10-10" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F10-10">Figure <xref linkend="F10-10" remap="10.10"/></link></label>
<caption><para>Immersive HMI concept: instrument panel cluster display.</para></caption>
<graphic xlink:href="graphics/ch10_fig0010.jpg"/>
</fig>
<fig id="F10-11" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F10-11">Figure <xref linkend="F10-11" remap="10.11"/></link></label>
<caption><para>Immersive HMI concept: dashboard display.</para></caption>
<graphic xlink:href="graphics/ch10_fig0011.jpg"/>
</fig>
<fig id="F10-12" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F10-12">Figure <xref linkend="F10-12" remap="10.12"/></link></label>
<caption><para>Immersive HMI concept: head-up display details.</para></caption>
<graphic xlink:href="graphics/ch10_fig0012.jpg"/>
</fig>
<para>The HMI elements of concept 3 are listed as follows: i) Display 3,5&#x0201D; in the IPC: ii) Touch Display of the nomadic device set into the dashboard; iii) SW commands; iv) Left stalk commands; v) Buttons; vi) Knobs.</para>
</section>
</section>
<section class="lev1" id="sec10-5">
<title>10.5 Preliminary Testing by Focus Group</title>
<para>As Morgan described, &#x0201C;in essence, focus groups are special occasions devoted to gathering data on specific topics [<link linkend="ch10_B21">21</link>]&#x0201D;. Using a focus group leads to evaluate preliminary concepts and in this case it is a useful technique to evaluate the proposals explained before [<link linkend="ch10_B28">28</link>], [<link linkend="ch10_B35">35</link>] having in mind that focus group is a technique deeply used in automotive field to evaluate user experience regarding HMI concepts [<link linkend="ch10_B2">2</link>, <link linkend="ch10_B9">9</link>&#x02013;<link linkend="ch10_B12">12</link>, <link linkend="ch10_B17">17</link>].</para>
<fig id="F10-13" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F10-13">Figure <xref linkend="F10-13" remap="10.13"/></link></label>
<caption><para>Smart HMI concept.</para></caption>
<graphic xlink:href="graphics/ch10_fig0013.jpg"/>
</fig>
<fig id="F10-14" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F10-14">Figure <xref linkend="F10-14" remap="10.14"/></link></label>
<caption><para>Smart HMI concept: Nomadic device with night vision system.</para></caption>
<graphic xlink:href="graphics/ch10_fig0014.jpg"/>
</fig>
<section class="lev2" id="sec10-5-1">
<title>10.5.1 Participants</title>
<para>Sample is composed by 7 participants with a range of age between 25 and 39 years old (M = 31.71; SD = 4.06). Around 30% drive between 10000&#x02013;15000 km/year and around 45% more than 20000 km/year. All drivers run at least once a day during the last year. 2 drivers run than 10% of their total driven by city, other 2 drive between 20&#x02013;25%, and 3 run at least 40% or more of their driving in city. Moreover, around 40% drive usually on dual carriage way, and 30% run on highway and in similar percentage, 30%, drive on main roads.</para>
</section>
<section class="lev2" id="sec10-5-2">
<title>10.5.2 Results</title>
<para>Participants discussed and exchanged points of views about HMI. They gave scores about degree of utility, easy to use, easy to learn, visual clarity, if the concepts were intuitive, degree of accessibility, and degree of driver annoyance and finally they provide a global value.</para>
<para>The HMI concept 1 (with explicit drowsiness) was considered as very useful, enough easy to use, with the most visual clarity and degree of accessibility among all the options presented. Having information located in same area is positive to avoid distraction and the three delimited areas for presenting information are pleasant. In general, alternative to concept 1 (with implicit drowsiness) is less appreciated than the original one. Scores are lowest than previous concept and the absence of drowsiness icon is missing by focus group participants.</para>
<para>Regarding HMI concept 2 (with explicit drowsiness), most of the participants appreciated to have information on HUD, moreover to have primary information in a different place from secondary one is a positive attribute. Besides, this concept seems to be a bit more easy to use and to learn and more intuitive. Concept 2 bis (with implicit drowsiness) is measured as intuitive and have visual clarity. Once more, HUD information is well appreciated by focus group participants. Anyway, it should be necessary to take into account that drivers are not being confident to manage drowsiness without a detailed icon.</para>
<para>Concept 3 (with explicit drowsiness) is not really appreciated from an aesthetically point of view. It is enough useful, easy to use and learn and enough intuitive. Focus group participants liked the possibility to place tablet where they prefer although it could mean less frontal vision. Last concept (n. 3 with implicit drowsiness) showed participants the least acceptable one. Although it will be positive to place the table according the wishes of drivers the general impression of having information in this way is not positive, even if it is having in mind that there is not drowsiness icon.</para>
</section>
<section class="lev2" id="sec10-5-3">
<title>10.5.3 List of the Winning Features and Redesign Recommendations</title>
<para>As it can be observed in the radar chart which summarizes the HMI evaluation for the six concepts, concept 3 and its alternative, concept 3 bis (with implicit drowsiness) were the concept less valued. This concept &#x0201C;3 bis&#x0201D; is the concept which is considered more annoyed. Concept 2 had the highest average score for the global evaluation but concept 1 is closed to concept which adds information on a HUD and touch dashboard. Concept 1 stands out by its accessibility, utility and visual clarity and concept 2 is highlighted by its feature to be easy to use and it is a bit more intuitive.</para>
<fig id="F10-15" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F10-15">Figure <xref linkend="F10-15" remap="10.15"/></link></label>
<caption><para>Radar chart summarizing HMI evaluation for the 6 HMI concepts. Bis concepts are concept 1, 2, 3 with implicit drowsiness.</para></caption>
<graphic xlink:href="graphics/ch10_fig0015.jpg"/>
</fig>
<para>During the session participants pointed several issues that should be taking into account:</para>
<itemizedlist mark="bullet" spacing="normal">
<listitem><para>Summarizing the best option should have drowsiness icon.</para></listitem>
<listitem><para>Option concept 1 and concept 2 are the best.</para></listitem>
<listitem><para>The possibility to have HUD information is really appreciated.</para></listitem>
<listitem><para>Participants suggested having in HUD the following information: traffic signals, gap for ACC, navigator system (with arrows and distances).</para></listitem>
<listitem><para>For traffic signal information, it is very important to them to maintain this information available because sometimes you forgot this information (e.g. when you are running by a road and you forgot which was the speed limit).</para></listitem>
<listitem><para>Information should be very clear and concise.</para></listitem>
<listitem><para>It should be a great idea to have the possibility to select where you want to have the navigation system.</para></listitem>
</itemizedlist>
</section>
</section>
<section class="lev1" id="sec10-6">
<title>10.6 Users Test at Driving Simulator</title>
<para>As a final step for the definition of the overall HMI concept the two winning option from the focus group, namely concept 1 and concept 2 with the explicit drowsiness icon, were tested with users on a driving simulator in order to identify the final DESERVE HMI concept configuration. Each user was interviewed alone by a usability expert gathering comments and suggestions about the different ADAS function disposition and visualization.</para>
<para>Among the 13 ADAS functions developed for the DESERVE project, it was decided to test only 4 ADAS functions that were considered representative of the main HMI concept logic. In particular the following ADAS functions were widely tested with users:</para>
<orderedlist numeration="arabic" continuation="restarts" spacing="normal">
<listitem><para>Forward collision warning &#x02013; with acoustic signal type 1.</para></listitem>
<listitem><para>Rear view camera system.</para></listitem>
<listitem><para>Lane change assistance system &#x02013; with acoustic signal type 1.</para></listitem>
<listitem><para>Drowsiness icon &#x02013; with acoustic signal type 2.</para></listitem>
</orderedlist>
<section class="lev2" id="sec10-6-1">
<title>10.6.1 Participants</title>
<para>Sample is composed by 30 participants (20 Male and 10 female) with a range of age between 23 and 62 years old (M = 32.17; SD = 7.15). The majority of participants achieved a Master&#x02019;s degree.</para>
<para>The 30% of participants drive more than 20.000 km/year and the remaining between 10000 and 15000 km/year (M km/year = 15600; SD = 6931.18).</para>
</section>
<section class="lev2" id="sec10-6-2">
<title>10.6.2 Procedure</title>
<para>After a brief explanation of test objective and some questions on personal data, user where asked to seat on the driving simulator and imagine to be inside their car, at the driving place with a dashboard of your car in front where some information about the car, its functioning and so on are displayed. Before assessing the solutions users where asked to practice a little with the driving simulator and to count the stars that appear on the road.</para>
<para>In particular user where asked to evaluate on a 7 point scale:</para>
<itemizedlist mark="bullet" spacing="normal">
<listitem><para>The suitability of the HMI concept tested;</para></listitem>
<listitem><para>The comprehensibility of the information displayed;</para></listitem>
<listitem><para>The number of the information displayed;</para></listitem>
<listitem><para>The pleasantness from a graphical point of view of the HMI concept tested;</para></listitem>
</itemizedlist>
</section>
<section class="lev2" id="sec10-6-3">
<title>10.6.3 Results</title>
<para>From the analysis of the different part of HMI concept test, concept 1 seems to be the preferred one even if the difference with the percentage of users that prefer concept 2 is not statistically significant. Despite this result the 60% of users would like to have the warning information in the central part of the display instead of in the lateral part. The functions representation seems quite clear for all users, only the adaptive light control and the adaptive cruise control icon should be re-designed. Considering the result of the task that asked users to build their own solution, almost all distributed all functions in the same central display.</para>
<fig id="F10-16" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F10-16">Figure <xref linkend="F10-16" remap="10.16"/></link></label>
<caption><para>Proposed change to create the final DESERVE HMI concept.</para></caption>
<graphic xlink:href="graphics/ch10_fig0016.jpg"/>
</fig>
<fig id="F10-17" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F10-17">Figure <xref linkend="F10-17" remap="10.17"/></link></label>
<caption><para>Final DESERVE HMI concept: warning area.</para></caption>
<graphic xlink:href="graphics/ch10_fig0017.jpg"/>
</fig>
<fig id="F10-18" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F10-18">Figure <xref linkend="F10-18" remap="10.18"/></link></label>
<caption><para>Final DESERVE HMI concept: rear view camera.</para></caption>
<graphic xlink:href="graphics/ch10_fig0018.jpg"/>
</fig>
<fig id="F10-19" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F10-19">Figure <xref linkend="F10-19" remap="10.19"/></link></label>
<caption><para>Final DESERVE HMI concept: navigation.</para></caption>
<graphic xlink:href="graphics/ch10_fig0019.jpg"/>
</fig>
<para>Thanks to users&#x02019; feedbacks, the final DESERVE HMI concept has a single display with the warning functions in the central area and the gauges in the lateral part of the display.</para>
</section>
</section>
<section class="lev1" id="sec10-7">
<title>10.7 Conclusions</title>
<para>Most cars today contain heterogeneous ADAS that support safe and clean driving. Because the pattern of factors in the automotive domain is constantly changing (new technologies and devices on board, new infrastructure, new mobility concepts, new trends in pollution prevention), the accident characteristics of the transport domain are also changing. As a consequence, also the research in that domain changed perspective, starting to investigate the human factor in order to improve safety and to prevent accidents. Even if it is not feasible to exactly predict the next accident, it is possible to anticipate some decisive characteristics of future accidents, as driver&#x02019;s misbehaviour. All these features concur in defining a new concept of ADAS system as a support and sometimes as a partner for drivers during task accomplishment and no more as a mere substitute.</para>
<para>Since nowadays more and more ADAS function are going to be implemented in current vehicles, the need for a unique Human Machine Interface is becoming an issue that reflects the increasing complexity of the entire system, whereby the driver has to deal with different devices and different interaction strategies. The aim of this work was in fact to identify the most suitable HMI concepts that allow an easy integration of different ADAS function in order to guarantee the safety of the introduction of any new element.</para>
</section>
<section class="lev1" id="sec10-8">
<title>Acknowledgments</title>
<para>This study has been conducted thanks to the work and the experience of many people, besides the authors of this chapter.</para>
<para>We would like to express our thanks to Luana Baldassini for fruitful discussions, support, reviews and forward looking attitude.</para>
</section>
<section class="lev1" id="sec10-9">
<title>References</title>
<orderedlist numeration="arabic" continuation="restarts" spacing="normal">
<listitem><para><anchor id="ch10_B1"/>Bainbridge, L. (1983). Ironies of automation. <emphasis>Automatica</emphasis>, 19(6), 775&#x02013;779. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=Bainbridge%2C+L%2E+%281983%29%2E+Ironies+of+automation%2E+Automatica%2C+19%286%29%2C+775-779%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch10_B2"/>Barfield, W. &#x00026; Dingus, T. (1997). Human factors in intelligent transportation systems Mahwah, NJ: Lawrence Erlbaum Associates.</para></listitem>
<listitem><para><anchor id="ch10_B3"/>Barrera Murphy, N. &#x00026; Knoblauch, R. (2004). <emphasis>Hispanic Pedestrian and Bicycle Savety. Report of Focus Group Discussions in Washington, New Cork, Miami and Los Angeles</emphasis>. <ulink url="http://safety.fhwa.dot.gov/ped_bike/docs/fhwanhtsa/fhwahtsa.pdf">http://safety.fhwa.dot.gov/ped_bike/docs/fhwanhtsa/fhwahtsa.pdf</ulink> <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=Barrera+Murphy%2C+N%2E+%26+Knoblauch%2C+R%2E+%282004%29%2E+Hispanic+Pedestrian+and+Bicycle+Savety%2E+Report+of+Focus+Group+Discussions+in+Washington%2C+New+Cork%2C+Miami+and+Los+Angeles%2E+http%3A%2F%2Fsafety%2Efhwa%2Edot%2Egov%2Fped%5Fbike%2Fdocs%2Ffhwanhtsa%2Ffhwahtsa%2Epdf" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch10_B4"/>Bohlin, N. I. (1967). A statistical analysis of 28,000 accident cases with emphasis on occupant restraint value (No. 670925). SAE Technical Paper. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=Bohlin%2C+N%2E+I%2E+%281967%29%2E+A+statistical+analysis+of+28%2C000+accident+cases+with+emphasis+on+occupant+restraint+value+%28No%2E+670925%29%2E+SAE+Technical+Paper%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch10_B5"/>Chowanetz, F., &#x00026; Rigoll, G. (2011, October). A large-scale LED array to support anticipatory driving. In <emphasis>Systems, Man, and Cybernetics (SMC), 2011 IEEE International Conference on</emphasis> (pp. 2087&#x02013;2092). IEEE. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=Chowanetz%2C+F%2E%2C+%26+Rigoll%2C+G%2E+%282011%2C+October%29%2E+A+large-scale+LED+array+to+support+anticipatory+driving%2E+In+Systems%2C+Man%2C+and+Cybernetics+%28SMC%29%2C+2011+IEEE+International+Conference+on+%28pp%2E+2087-2092%29%2E+IEEE%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch10_B6"/>Doshi A., Morris, B., Trivedi M. (2011). On-road prediction of driver&#x02019;s intent with multimodal sensory cues. IEEE Automotive Pervasive Computing 10(3), 2011. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=Doshi+A%2E%2C+Morris%2C+B%2E%2C+Trivedi+M%2E+%282011%29%2E+On-road+prediction+of+driver%27s+intent+with+multimodal+sensory+cues%2E+IEEE+Automotive+Pervasive+Computing+10%283%29%2C+2011%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch10_B7"/>Doshi A., Trivedi, M. M. (2011). Tactical driver behavior prediction and intent inference: A review. 14th International IEEE Conference on Intelligent Transportation Systems (ITSC), 2011. European Commissions, <emphasis>Road safety statistics at regional level</emphasis>, (2014), Source: Eurostat and DG Move. <ulink url="http://ec.europa.eu/eurostat/statistics-explained/index.php/_Road_safety_statistics_at_regional_level">http://ec.europa.eu/eurostat/statistics-explained/index.php/_Road_safety_statistics_at_regional_level</ulink> consulted on 14/12/2015. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=Doshi+A%2E%2C+Trivedi%2C+M%2E+M%2E+%282011%29%2E+Tactical+driver+behavior+prediction+and+intent+inference%3A+A+review%2E+14th+International+IEEE+Conference+on+Intelligent+Transportation+Systems+%28ITSC%29%2C+2011%2E+European+Commissions%2C+Road+safety+statistics+at+regional+level%2C+%282014%29%2C+Source%3A+Eurostat+and+DG+Move%2E+http%3A%2F%2Fec%2Eeuropa%2Eeu%2Feurostat%2Fstatistics-explained%2Findex%2Ephp%2F%5FRoad%5Fsafety%5Fstatistics%5Fat%5Fregional%5Flevel+consulted+on+14%2F12%2F2015%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch10_B8"/>Green, P. &#x00026; Brand, J. (1992). Future in-car information systems: input from focus groups (SAE paper 920614). <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=Green%2C+P%2E+%26+Brand%2C+J%2E+%281992%29%2E+Future+in-car+information+systems%3A+input+from+focus+groups+%28SAE+paper+920614%29%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch10_B9"/>Hof, T., Conde, L., Garcia, E., Iviglia, A., Jamson, S., Jopson, A., Lai, F., Merat, N., Nyberg, J., Rios, S., Sanchez, D., Scheineider, O. S., Seewald, P., Weerdt, C. V. D., Wijn, R. &#x00026; Zlocki, A. (2012). D11.1: A state of the arte review and user&#x02019;s expectations. EcoDriver Project.</para></listitem>
<listitem><para><anchor id="ch10_B10"/>Jeon, M., Schuett, J., Yim, J.-B., Raman, P. and Walker, B. N. (2011). ENGIN (Exploring Next Generation IN-vehicle INterfaces): Drawing a new conceptual framework through iterative participatory processes. <emphasis>Adjunct Proceedings of the 3rd International Conference on Automotive User Interfaces and Vehicular Applications (AutomotiveUI&#x02019;11)</emphasis>. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=Jeon%2C+M%2E%2C+Schuett%2C+J%2E%2C+Yim%2C+J%2E-B%2E%2C+Raman%2C+P%2E+and+Walker%2C+B%2E+N%2E+%282011%29%2E+ENGIN+%28Exploring+Next+Generation+IN-vehicle+INterfaces%29%3A+Drawing+a+new+conceptual+framework+through+iterative+participatory+processes%2E+Adjunct+Proceedings+of+the+3rd+International+Conference+on+Automotive+User+Interfaces+and+Vehicular+Applications+%28AutomotiveUI%2711%29%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch10_B11"/>Kaufmann, C. Pereira, M., Simoes, A., Lancelle, V., Bruyas, M. P., Britschgi, V., Diez, J. L., Garcia Quinteiro, E. &#x00026; Turetschek, C. (2010). A focus group approach towards an understanding of drivers&#x02019; interaction with in-vehicle technologies. In J. F. Krems, T. Petzoldt &#x00026; M. Henning (Eds.). <emphasis>Proceedings of the European Conference on Human Interface Design for Intelligent Transport Systems</emphasis>, Berlin, Germany, April 29&#x02013;30 2010 (pp. 389&#x02013;399). Lyon: Humanist Publications. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=Kaufmann%2C+C%2E+Pereira%2C+M%2E%2C+Simoes%2C+A%2E%2C+Lancelle%2C+V%2E%2C+Bruyas%2C+M%2E+P%2E%2C+Britschgi%2C+V%2E%2C+Diez%2C+J%2E+L%2E%2C+Garcia+Quinteiro%2C+E%2E+%26+Turetschek%2C+C%2E+%282010%29%2E+A+focus+group+approach+towards+an+understanding+of+drivers%27+interaction+with+in-vehicle+technologies%2E+In+J%2E+F%2E+Krems%2C+T%2E+Petzoldt+%26+M%2E+Henning+%28Eds%2E%29%2E+Proceedings+of+the+European+Conference+on+Human+Interface+Design+for+Intelligent+Transport+Systems%2C+Berlin%2C+Germany%2C+April+29-30+2010+%28pp%2E+389-399%29%2E+Lyon%3A+Humanist+Publications%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch10_B12"/>Knobel, M., Schwarz, F., Palleis, H., &#x00026; Schumann, J. Towards Designing Experiences for Advanced Driving Assistance Systems. In <emphasis>Workshop User Experience in Cars. In conjunction with 13th IFIP TC13 Conference on Human-Computer Interaction (INTERACT 2011)</emphasis> (pp. 05&#x02013;09). <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=Knobel%2C+M%2E%2C+Schwarz%2C+F%2E%2C+Palleis%2C+H%2E%2C+%26+Schumann%2C+J%2E+Towards+Designing+Experiences+for+Advanced+Driving+Assistance+Systems%2E+In+Workshop+User+Experience+in+Cars%2E+In+conjunction+with+13th+IFIP+TC13+Conference+on+Human-Computer+Interaction+%28INTERACT+2011%29+%28pp%2E+05-09%29%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch10_B13"/>Krueger, R. A. (1988). <emphasis>El grupo de discusi&#x000F3;n. Gu&#x000ED;a pr&#x000E1;ctica para la investigaci&#x000F3;n aplicada.</emphasis> Madrid: Ediciones Pir&#x000E1;mide.</para></listitem>
<listitem><para><anchor id="ch10_B14"/>Kumar P., Perrollaz M., Lefevre S., Laugier C. (2013). Learning-Based Approach for Online Lane Change Intention Prediction. IEEE Intelligent Vehicles Symposium, 2013. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=Kumar+P%2E%2C+Perrollaz+M%2E%2C+Lefevre+S%2E%2C+Laugier+C%2E+%282013%29%2E+Learning-Based+Approach+for+Online+Lane+Change+Intention+Prediction%2E+IEEE+Intelligent+Vehicles+Symposium%2C+2013%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch10_B15"/>Laquai, F., Gusmini, C., Tonnis, M., Rigoll, G., &#x00026; Klinker, G. (2013, October). A multi lane Car Following Model for cooperative ADAS. In <emphasis>Intelligent Transportation Systems-(ITSC), 2013 16th International IEEE Conference on</emphasis> (pp. 1579&#x02013;1586). IEEE. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=Laquai%2C+F%2E%2C+Gusmini%2C+C%2E%2C+Tonnis%2C+M%2E%2C+Rigoll%2C+G%2E%2C+%26+Klinker%2C+G%2E+%282013%2C+October%29%2E+A+multi+lane+Car+Following+Model+for+cooperative+ADAS%2E+In+Intelligent+Transportation+Systems-%28ITSC%29%2C+2013+16th+International+IEEE+Conference+on+%28pp%2E+1579-1586%29%2E+IEEE%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch10_B16"/>Larsson, P., Esberg, I., van Noort, M., Willemsen, D., Garcia, E., Fahrenkrog, F., Zlocki, A., Scholliers, J., Koskinen, S., V&#x000E1;rhelyi, A., Sch&#x000F6;nebeck, S. (2012). &#x0201C;Test and evaluation plans&#x0201D;. Deliverable D7.4 of the InteractIVe project.</para></listitem>
<listitem><para><anchor id="ch10_B17"/>Lee S. E., Olsen E. C. B., Wierwille W. W. (2004). A Comprehensive Examination of Naturalistic Lane-Changes. National Highway Traffic Safety Administration, DOT HS 809 702, 2004. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=Lee+S%2E+E%2E%2C+Olsen+E%2E+C%2E+B%2E%2C+Wierwille+W%2E+W%2E+%282004%29%2E+A+Comprehensive+Examination+of+Naturalistic+Lane-Changes%2E+National+Highway+Traffic+Safety+Administration%2C+DOT+HS+809+702%2C+2004%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch10_B18"/>Lie, A., &#x00026; Tingvall, C. (2002). How do Euro NCAP results correlate with real-life injury risks? A paired comparison study of car-to-car crashes. <emphasis>Traffic Injury Prevention</emphasis>, 3(4), 288&#x02013;293. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=Lie%2C+A%2E%2C+%26+Tingvall%2C+C%2E+%282002%29%2E+How+do+Euro+NCAP+results+correlate+with+real-life+injury+risks%B4+A+paired+comparison+study+of+car-to-car+crashes%2E+Traffic+Injury+Prevention%2C+3%284%29%2C+288-293%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch10_B19"/>Michon, J. A., A Critical View of Driver Behavior Models: What Do We Know, What Should We Do?, Human Behavior and Traffic Safety, pp. 485&#x02013;524, 1985. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=Michon%2C+J%2E+A%2E%2C+A+Critical+View+of+Driver+Behavior+Models%3A+What+Do+We+Know%2C+What+Should+We+Do%B4%2C+Human+Behavior+and+Traffic+Safety%2C+pp%2E+485-524%2C+1985%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch10_B20"/>Morgan, D. L, Krueger, R. A., King, J. A. &#x00026; Scannell, A. U. (1998<emphasis>). The Focus Group Kit, Volumes 1&#x02013;6</emphasis>. Thousand Oaks, CA: SAGE Publications. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=Morgan%2C+D%2E+L%2C+Krueger%2C+R%2E+A%2E%2C+King%2C+J%2E+A%2E+%26+Scannell%2C+A%2E+U%2E+%281998%29%2E+The+Focus+Group+Kit%2C+Volumes+1-6%2E+Thousand+Oaks%2C+CA%3A+SAGE+Publications%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch10_B21"/>National Highway Traffic Savety Administration (NHTSA) (2008). <emphasis>Summary of Focus Group Findings.</emphasis> <ulink url="http://www.nhtsa.gov/staticfiles/DOT/NHTSA/Rulemaking/Rules/Associated%20files/5StarFocusGroup.pdf">http://www.nhtsa.gov/staticfiles/DOT/NHTSA/Rulemaking/Rules/Associated%20files/5StarFocusGroup.pdf</ulink></para></listitem>
<listitem><para><anchor id="ch10_B22"/>Olsheski, J. D., Walker, B. N., &#x00026; McCloud, J. (2011, October). In-vehicle assistive technology (IVAT) for drivers who have survived a traumatic brain injury. In <emphasis>The proceedings of the 13th international ACM SIGACCESS conference on Computers and accessibility</emphasis> (pp. 257&#x02013;258). ACM. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=Olsheski%2C+J%2E+D%2E%2C+Walker%2C+B%2E+N%2E%2C+%26+McCloud%2C+J%2E+%282011%2C+October%29%2E+In-vehicle+assistive+technology+%28IVAT%29+for+drivers+who+have+survived+a+traumatic+brain+injury%2E+In+The+proceedings+of+the+13th+international+ACM+SIGACCESS+conference+on+Computers+and+accessibility+%28pp%2E+257-258%29%2E+ACM%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch10_B23"/>Parasuraman, R., &#x00026; Riley, V. (1997). Humans and automation: Use, misuse, disuse, abuse. <emphasis>Human Factors: The Journal of the Human Factors and Ergonomics Society</emphasis>, 39(2), 230&#x02013;253. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=Parasuraman%2C+R%2E%2C+%26+Riley%2C+V%2E+%281997%29%2E+Humans+and+automation%3A+Use%2C+misuse%2C+disuse%2C+abuse%2E+Human+Factors%3A+The+Journal+of+the+Human+Factors+and+Ergonomics+Society%2C+39%282%29%2C+230-253%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch10_B24"/>Peltzman, S. (1975). The effects of automobile safety regulation. <emphasis>The Journal of Political Economy</emphasis>, 677&#x02013;725. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=Peltzman%2C+S%2E+%281975%29%2E+The+effects+of+automobile+safety+regulation%2E+The+Journal+of+Political+Economy%2C+677-725%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch10_B25"/>Pinotti, D., Tango, F., Losi, M. G., &#x00026; Beltrami, M. (2014). A model for an innovative Lane Change Assistant HMI. In <emphasis>Proceedings of the Human Factors and Ergonomics Society Europe Chapter 2013 Annual Conference</emphasis>. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=Pinotti%2C+D%2E%2C+Tango%2C+F%2E%2C+Losi%2C+M%2E+G%2E%2C+%26+Beltrami%2C+M%2E+%282014%29%2E+A+model+for+an+innovative+Lane+Change+Assistant+HMI%2E+In+Proceedings+of+the+Human+Factors+and+Ergonomics+Society+Europe+Chapter+2013+Annual+Conference%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch10_B26"/>Rasmussen, J., Skills, Rules and Knowledge; Signals, Signs, and Symbols, and Other Distinctions in Human Performance Models, IEEE Transactions on Systems, Man, and Cybernetics 13 (3), pp. 257&#x02013;266, 1983. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=Rasmussen%2C+J%2E%2C+Skills%2C+Rules+and+Knowledge%3B+Signals%2C+Signs%2C+and+Symbols%2C+and+Other+Distinctions+in+Human+Performance+Models%2C+IEEE+Transactions+on+Systems%2C+Man%2C+and+Cybernetics+13+%283%29%2C+pp%2E+257-266%2C+1983%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch10_B27"/>Rubin, J. &#x00026; Chisnell, D. (2008). Handbook of Usability Testing. How to plan, Design, and Conduct Effective Tests. 2nd Edition. IN: Wiley Publishing. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=Rubin%2C+J%2E+%26+Chisnell%2C+D%2E+%282008%29%2E+Handbook+of+Usability+Testing%2E+How+to+plan%2C+Design%2C+and+Conduct+Effective+Tests%2E+2nd+Edition%2E+IN%3A+Wiley+Publishing%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch10_B28"/>Salvucci D. D., Mandalia H. M., Kuge N., Yamamura T. Lane-Change Detection Using a Computational Driver Model. Human Factors 49(3) 2007, pp.532&#x02013;542. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=Salvucci+D%2E+D%2E%2C+Mandalia+H%2E+M%2E%2C+Kuge+N%2E%2C+Yamamura+T%2E+Lane-Change+Detection+Using+a+Computational+Driver+Model%2E+Human+Factors+49%283%29+2007%2C+pp%2E532-542%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch10_B29"/>Schmidt, A., Dey, A. K., Kun, A. L., &#x00026; Spiessl, W. (2010, April). Automotive user interfaces: human computer interaction in the car. In <emphasis>CHI&#x02019;10 Extended Abstracts on Human Factors in Computing Systems</emphasis> (pp. 3177&#x02013;3180). ACM. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=Schmidt%2C+A%2E%2C+Dey%2C+A%2E+K%2E%2C+Kun%2C+A%2E+L%2E%2C+%26+Spiessl%2C+W%2E+%282010%2C+April%29%2E+Automotive+user+interfaces%3A+human+computer+interaction+in+the+car%2E+In+CHI%2710+Extended+Abstracts+on+Human+Factors+in+Computing+Systems+%28pp%2E+3177-3180%29%2E+ACM%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch10_B30"/>Schmittner, C., Gruber, T., Puschner, P., &#x00026; Schoitsch, E. (2014). Security application of failure mode and effect analysis (FMEA). In <emphasis>Computer Safety, Reliability, and Security</emphasis> (pp. 310&#x02013;325). Springer International Publishing. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=Schmittner%2C+C%2E%2C+Gruber%2C+T%2E%2C+Puschner%2C+P%2E%2C+%26+Schoitsch%2C+E%2E+%282014%29%2E+Security+application+of+failure+mode+and+effect+analysis+%28FMEA%29%2E+In+Computer+Safety%2C+Reliability%2C+and+Security+%28pp%2E+310-325%29%2E+Springer+International+Publishing%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch10_B31"/>Seay, A., Zaloshnja, E., Miller, T., Romano, E., Luchter, S., &#x00026; Spicer, R. (2002). <emphasis>The economic impact of motor vehicle crashes, 2000</emphasis> (No. HS-809 446,). Washington, DC: US Department of Transportation, National Highway Traffic Safety Administration. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=Seay%2C+A%2E%2C+Zaloshnja%2C+E%2E%2C+Miller%2C+T%2E%2C+Romano%2C+E%2E%2C+Luchter%2C+S%2E%2C+%26+Spicer%2C+R%2E+%282002%29%2E+The+economic+impact+of+motor+vehicle+crashes%2C+2000+%28No%2E+HS-809+446%2C%29%2E+Washington%2C+DC%3A+US+Department+of+Transportation%2C+National+Highway+Traffic+Safety+Administration%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch10_B32"/>Sharken Simon, J. (1999) [On line]. <emphasis>How to conduct a Focus Group</emphasis>. Recovered on August 18th, 2008 from: <ulink url="http://tgi.com/magazine/HowToConductAFocusGroup.pdf">http://tgi.com/magazine/HowToConductAFocusGroup.pdf</ulink> <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=Sharken+Simon%2C+J%2E+%281999%29+%5BOn+line%5D%2E+How+to+conduct+a+Focus+Group%2E+Recovered+on+August+18th%2C+2008+from%3A+http%3A%2F%2Ftgi%2Ecom%2Fmagazine%2FHowToConductAFocusGroup%2Epdf" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch10_B33"/>Treat, J. R., Tumbas, N. S., McDonald, S. T., Shinar, D., &#x00026; Hume, R. D. (1979). <emphasis>TRI-LEVEL STUDY OF THE CAUSES OF TRAFFIC ACCIDENTS. EXECUTIVE SUMMARY</emphasis> (No. DOTHS034353579TAC (5) Final Rpt). <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=Treat%2C+J%2E+R%2E%2C+Tumbas%2C+N%2E+S%2E%2C+McDonald%2C+S%2E+T%2E%2C+Shinar%2C+D%2E%2C+%26+Hume%2C+R%2E+D%2E+%281979%29%2E+TRI-LEVEL+STUDY+OF+THE+CAUSES+OF+TRAFFIC+ACCIDENTS%2E+EXECUTIVE+SUMMARY+%28No%2E+DOTHS034353579TAC+%285%29+Final+Rpt%29%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch10_B34"/>Tullis, T. &#x00026; Albert, W. (2013). Measuring the user experience. 2nd Edition. Morgan Kaufmann. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=Tullis%2C+T%2E+%26+Albert%2C+W%2E+%282013%29%2E+Measuring+the+user+experience%2E+2nd+Edition%2E+Morgan+Kaufmann%2E" target="_blank">Google Scholar</ulink></para></listitem>
</orderedlist>
</section>
</chapter>
<chapter class="chapter" id="ch11" label="11" xreflabel="11">
<title>Vehicle Hardware-In-the-Loop System for ADAS Virtual Testing</title>
<para class="section"><emphasis role="strong">Romain Rossi, Cl&#x000E9;ment Galko, Hariharan Narasimman and Xavier Savatier</emphasis></para>
<para>Univ. Rouen, UNIROUEN, ESIGELEC, IRSEEM 76000 Rouen, France</para>
<section class="lev1" id="sec11-1">
<title>11.1 Introduction</title>
<para>Testing vehicular functions can be a very tedious task. The classical approach tries to tackle this problem using a multiple-stage validation and testing process. The first step is a Model-In-the-Loop (MIL) approach which allows quick algorithmic development without involving dedicated hardware. Usually, this level of development involves high-level abstraction software frameworks running on general-purpose computers. The second step is a Software-In-the-Loop (SIL) validation, where the actual implementation of the developed model will be evaluated on general-purpose hardware. This step requires a complete software implementation very close to the final one. The last step of this validation process is Hardware-In-the-Loop (HIL) which involves the final hardware, running the final software with input and output connected to a simulator. This proven process is very widely used in the transportation industry and has enabled the development of very high quality components which are then integrated into bigger systems or vehicles. Modern vehicles however integrate so many such components that the integration phase has become more complex and also requires a multi-step validation process. The final integration tests are performed on tracks or roads. While mandatory, these real-condition tests are limited because of multiple factors and have a very high cost.</para>
<para>Testing a complex system like a modern vehicle on a test track or on a real road involves complex and costly engineering. First of all, to be testable the vehicle must be fully or nearly-fully functional. This limits the testing opportunity to a very late stage in the development process and implies high engineering costs. Moreover, because the real-condition test is very constrained in time and space, the test coverage is not complete and only a very small variety of real-world conditions can be tested.</para>
<para>To address these limitations and lower the cost, modern ADAS (Advanced Driver Assistance Systems) development frameworks uses a virtual test bench approach where realistic simulator software and hardware are used to enable faster and less expensive tests with better coverage on complete vehicles. In this document, we propose a virtual testing system built on a chassis dynamometer which enables a complex test scenario to be applied early in the ADAS development process.</para>
<para>Our proposed system, named SERBER (Simulateur d&#x02019; Environnement Routier integr&#x000E9; &#x000E0; un Banc de test v&#x000E9;hicule pour l&#x02019;Evaluation de strat&#x000E9;gies de gestion de l&#x02019;&#x000E9;neRgie embarqu&#x000E9;e) aims to ease ADAS prototypes testing and at the same time, analyze the energy efficiency of the prototype system using the standard equipment of the chassis dynamometer. A previous version of this system has been published in [<link linkend="ch11_B3">3</link>], which presented the SERBER system and showed preliminary results.</para>
</section>
<section class="lev1" id="sec11-2">
<title>11.2 State of the Art</title>
<para>In the automotive industry, car manufacturers use different ways to test and validate ADAS and other embedded systems. An extensive study of the state of the art in ADAS testing and validation methods can be found in [<link linkend="ch11_B1">1</link>]. These test methods can be grouped in two categories: test-bench tests and in-vehicle tests.</para>
<para>For test-bench tests, three approaches are usually used during the development cycle: Model-In-the-Loop (MIL), Software-In-the-Loop (SIL) and Hardware-In-the-Loop (HIL). In MIL, a model of the developed system is integrated in a simulation loop with models of vehicle dynamics, sensor, actuators and traffic environment. After successful MIL validation, the SIL approach allows to replace the tested model with a real software implementation for real-time operation validation. The last step, HIL, consists of a combination of simulated and real components in order to validate the functionality of the developed system on both hardware and software aspects.</para>
<para>Test-bench tests are very useful as they provide a safe, repeatable and reliable way to validate these embedded systems under a variety of operating conditions. This kind of tests also has some drawbacks. For example, the interaction with other ADAS is difficult to test as well as the integration in the vehicle system. A sample of a HIL test bench for complex ADAS is available in [<link linkend="ch11_B2">2</link>].</para>
<para>The second category of tests methods are in-vehicle tests. These tests require a prototype to integrate the developed system. Again, three approaches are commonly used: test-drives on test-tracks, test-drives on open-roads and Vehicle-Hardware-In-the-Loop (VeHIL).</para>
<para>The first two approaches are very similar and assume the prototype to be driven in real-conditions. The test-track allows control of some environment parameters (traffic, some weather conditions, road signs, road type and so on) but requires big infrastructures. The open-road tests require less dedicated infrastructures but are of limited use because of the difficulty to reproduce the needed conditions, and the underlying safety problems. Both of these methods are costly and time-consuming and can&#x02019;t be used early in the development cycle because they require heavy engineering efforts to have a fully functional prototype to drive.</para>
<para>A very interesting solution which combines nearly all the advantages of the previous methods without most of their drawbacks is the VeHIL approach. This kind of tests is a combination of the HIL and test-drives approaches. Functional as well as integration tests can be done easily and early in the development cycle. As the vehicle is physically locked on the chassis-dynamometer, this system greatly improves the safety of the tests. Because it is an indoor test, every environmental parameter (humidity, ambient light, temperature and so on) can easily be controlled and thus the repeatability of the test is ensured.</para>
<para>Existing VeHIL systems like the one described in [<link linkend="ch11_B1">1</link>] and currently used by [<link linkend="ch11_B2">2</link>] relies on mobile platforms (called Mobile Bases) to move targets (fake cars and pedestrians) in front of the tested vehicle in order to trigger the various embedded functions (pedestrian detection, ACC, AEB and so on). This setup however needs heavy infrastructure: the chassis-dynamometer is installed in a very large room (200 &#x000D7; 40 m) and the targets are moved at high speed by the Mobile Bases which can be dangerous for both the tested vehicle and the persons involved. Thus, the tests are remotely executed from a control room and the test area has to be evacuated.</para>
</section>
<section class="lev1" id="sec11-3">
<title>11.3 Proposed System</title>
<para>To address the problems of existing VeHIL systems (large infrastructures, fast moving targets, hazard for people), we propose a system which associates a chassis dynamometer with multi-sensor road environment simulation software. The simulator uses a description of the virtual environment and the position of the vehicle to generate multi-sensors data. These data are then fed into the sensors of the real car placed on the chassis dynamometer. On the other way, motion data (speed, acceleration) are gathered from the chassis-dynamometer and used to update the simulated vehicle speed and position.</para>
<fig id="F11-1" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F11-1">Figure <xref linkend="F11-1" remap="11.1"/></link></label>
<caption><para>Overview of the SERBER VeHIL system.</para></caption>
<graphic xlink:href="graphics/ch11_fig01.jpg"/>
</fig>
<para>Our system, as seen in <link linkend="F11-1">Figure <xref linkend="F11-1" remap="11.1"/></link> is mainly composed of three parts: the chassis-dynamometer, multi-sensor simulation software running in a computer and devices to feed the vehicle sensors like LCD screen and the CAN bus interface with synthetic data. The chassis-dynamometer is standard equipment, the main requirement is to be able to connect it with the simulation computer in order to read the vehicle actual speed and control the simulated slope by adjusting the friction force applied by the dynamometer. The simulation software is at the core of our system and is responsible for the generation of sensor data to be fed into ADAS sensors. We use the Pro-Sivic software dedicated to this kind of application. An introduction to Pro-Sivic can be found in [<link linkend="ch11_B4">4</link>]. The difficulties in our proposed system lies mainly in the way to fool (i.e. feed synthetic data into) the vehicle&#x02019;s sensors with the data produced by the simulation software.</para>
<para>Three ways can be used to fool sensors. The first way (full simulation) is to disconnect completely the ADAS and replace it with an electronic probe controlled by our system, which simulates the ADAS behavior completely. The simulated data (ADAS outputs) are sent directly into the vehicle internal communication bus (CAN) to be used by the other vehicular functions. The second way (sensor simulation) is to disconnect only the sensor part of the ADAS and replace it with an electronic probe. The simulator generates data according to the specification of the simulated sensor. The &#x0201C;signal processing&#x0201D; part of the ADAS is kept in the loop, so it can be tested by the system. This approach however requires the sensor to be separated from the main ADAS unit. The last way (stimulation) is to keep the full ADAS in the loop and send physical stimuli to the ADAS sensor through dedicated hardware. For example, an LCD screen can be placed in front of an embedded camera or a Hyper-Frequency generator can send signals to an embedded RADAR sensor.</para>
<para>This last solution is the preferred one, as it keeps the whole ADAS in the testing loop and limits the modifications done to the vehicle. So the objective of our work is to be able to simulate and fool every vehicle sensors. This approach however is very difficult to achieve for some kind of sensors, like inertial sensors and environmental sensors, or needs very complex stimulation hardware for RADAR and LIDAR.</para>
<para>With such a hardware-in-the-loop system, multiple scenarios can be implemented and tested in the safety and convenience of an indoor workshop. This system can be used for new ADAS prototyping as it is very easy to produce test-cases for the specific system under development. It can also be used to test the integration of multiple ADAS in a car, using a set of predefined test-cases to validate their interaction. It can also be used for very complex ADAS or fully-automated vehicle development where the embedded system relies simultaneously on multiple sensors to operate, because it is able to simulate nearly every aspect of the road environment at the same time.</para>
<para>Moreover, the use of a chassis dynamometer allows a simultaneous analysis of various performance indicators of the vehicle, including energy consumption and pollution. This coupling is a real benefit compared to traditional test setups and enables the early evaluation of the energy consumption impact of various changes in the ADAS systems. For example, the fuel consumption and pollution of a car equipped with Adaptive Cruise Control (ACC) can be continuously monitored as various ACC algorithms are developed and tested.</para>
</section>
<section class="lev1" id="sec11-4">
<title>11.4 Hardware Implementation</title>
<para>The proposed system is implemented at IRSEEM facilities. A chassis-dynamometer is available in one of our technological platform and is used as a building block. This chassis dynamometer is a Horiba Vulcan 4WD with two independent axles. It provides real-time velocity information based on the real vehicle wheel speed. It can also apply a friction force equivalent to a 5% slope of the road. The control system allows interfacing through analog inputs and outputs, these are used to control the friction force to simulate the slope and to read the actual speed of the vehicle in real-time. A complete description of the used chassis-dynamometer is available from the Horiba website [<link linkend="ch11_B5">5</link>]. We use an analog input/output device from National Instruments to link the simulation computer with the chassis-dynamometer control system.</para>
<para>One of the main challenges in our proposal is the ability to generate synthetic data and feed the ADAS sensors with this data. The synthetic data generation for vision-based, RADAR-based and LIDAR-based sensors is handled by Pro-Sivic. The main problem is how to correctly stimulate the sensors to feed it with this simulation data.</para>
<section class="lev2" id="sec11-4-1">
<title>11.4.1 Sensors Stimulation Solutions</title>
<para>Feeding sensors with simulated data is a key function of our system and a complex challenge. A vehicle can embed numerous sensors like cameras, inertial sensors, temperature sensors, rain sensors, odometer, LIDAR, RADAR, GPS and more. Because of the broad variety of sensor types, different approaches are needed to be able to control what the sensor reports to the ADAS processor.</para>
<para>For camera-based sensors, we use direct stimulation using a standard computer display placed in front of the camera. A first successful test was done with a 32&#x0201D; LCD screen. A display system using a projector would allow a bigger image surface and is currently being tested. Image field-of-view and distortions have to be taken into account for an accurate stimulation of the ADAS sensor. Special care must be taken in order to completely cover the sensor&#x02019;s field of view. This is especially difficult with wide-angle or fish-eye cameras and would require special setup.</para>
<para>The rain sensor can easily be triggered using a localized water diffusion device (sprinkler) actuated by a solenoid valve. This system can also be used to generate rain-like perturbation on camera sensors by directly applying water on the windshield. However, such solutions can produce perturbations which are not reproducible.</para>
<para>GPS simulation devices already exist for factory tests and are able to generate a controlled fake position to be interpreted by GPS receivers nearby. This kind of device could easily be integrated with our system to provide real-time positioning to the vehicle and embedded ADAS using GPS as a source of information. These systems are however costly and a direct transmission of generated NMEA frames to the ADAS is vastly more cost effective, but needs a small modification of the vehicle under test.</para>
<para>Likewise, real-time target generators for various types of RADAR (24 and 76 GHz) are available as off-the-shelve component. These systems cans also be coupled with the real-time simulation software to report the position and speed of simulated actors to the vehicle.</para>
<para>A recent paper [<link linkend="ch11_B6">6</link>] shows a possible implementation of a target simulator for LIDAR sensors. In this paper, a pulse generator is synchronized with the LIDAR in order to inject false object echo. Fully functional real-time target simulators are however to be demonstrated. This setup could be used in our system like the RADAR target simulator described above.</para>
<para>Inertial sensors are not covered yet. These sensors are usually deeply embedded in ECU and can be difficult to physically disconnect. An option is to physically move the vehicle using external actuators, but this implies heavy equipment. Another option is to open the ECU and physically replace the sensor with an electronic probe, which is time-consuming and difficult to achieve without complete documentation.</para>
<para>For Ultra-Sonic range-finder, two main solutions are possible. The first one is to use a sound generator simulating echo. The other one is to use small mobile targets located directly in front of the sensors. As these sensors are usually used only for low-speed maneuver and short-range detection, these mobile systems would not require a big infrastructure and can safely be used even in the presence of people.</para>
<para>Recently, Vehicle-to-Vehicle (V2V) and Vehicle-to-Infrastructure (V2I) communication has widespread with the 802.11p standard. These systems are used as a kind of virtual sensor providing the position, relative speed and status of the vehicles in the vicinity. Because of their operation, such systems are easy to connect with a computer. In our system we used one 802.11p modem to generate synthetic CAM and DENM messages to be interpreted by the vehicle under test.</para>
<para>Feeding the sensor with simulated data is not an easy task and each sensor has to be addressed differently. We plan to use sensor stimulation whenever possible, and fall back to sensor simulation and sending data in the CAN bus when stimulation is not feasible. Some kind of sensors appears to be relatively easy to stimulate (like cameras), others needs very complex and costly equipment (GPS, RADAR and inertial sensors).</para>
<para>For all these sensors, an alternative approach would be to have a cooperative software embedded in the ECU which would allow to overwrite actual measurements through the CAN bus (or another communication medium). While this solution seems unlikely to be possible on production vehicles; prototypes and test vehicles can be equipped with such debugging software, enabling a controlled and effective way to bypass sensors and feed synthetic data straight to the embedded processors.</para>
</section>
<section class="lev2" id="sec11-4-2">
<title>11.4.2 Software Implementation</title>
<para>Our software runs on a high-end laptop computer and is based on two main building blocks: multi-sensor simulation software (Pro-Sivic) and a real-time middleware (RTMAPS). A block diagram of the complete system is presented in <link linkend="F11-2">Figure <xref linkend="F11-2" remap="11.2"/></link>.</para>
<fig id="F11-2" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F11-2">Figure <xref linkend="F11-2" remap="11.2"/></link></label>
<caption><para>Block diagram of the SERBER system.</para></caption>
<graphic xlink:href="graphics/ch11_fig02.jpg"/>
</fig>
<para>To run the simulations, we used Pro-Sivic from Civitec. This real-time multi-sensor simulation software is a fusion between a driving simulator and a multi-sensor simulator. Pro-Sivic provides kinetic data and sensor data from the simulated vehicle and can also be used as a driving simulator. A complete description of Pro-Sivic is given in [<link linkend="ch11_B4">4</link>]. Pro-Sivic is able to generate realistic video output which can be directly used to stimulate camera-based ADAS. A sample view of Pro-Sivic video output can be seen in <link linkend="F11-3">Figure <xref linkend="F11-3" remap="11.3"/></link>.</para>
<fig id="F11-3" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F11-3">Figure <xref linkend="F11-3" remap="11.3"/></link></label>
<caption><para>Sample video output of Pro-Sivic.</para></caption>
<graphic xlink:href="graphics/ch11_fig03.jpg"/>
</fig>
<para>The other main software building block, RTMAPS from Intempora is a middleware which interconnects all other parts of the system. It is also used to produce CAN messages to be sent on the vehicle bus and perform other implementation-specific operations. RTMAPS is a component-based graphical programming framework to easily build multi-tasks or distributed applications. This software is described in detail in [<link linkend="ch11_B7">7</link>] and in this book (Part 1, <link linkend="ch04">Chapter <xref linkend="ch4" remap="4"/></link>). RTMAPS provides native interfaces to multiple simulation software, including Pro-Sivic, and also numerous components for device support (CANpeak, serial GPS, National Instruments I/O device and so on).</para>
<para>The most significant part of the RTMAPS diagram is presented in <link linkend="F11-4">Figure <xref linkend="F11-4" remap="11.4"/></link>. This diagram main task is to handle the communication between Pro-Sivic and the chassis-dynamometer; and to generate Vehicle-to-Vehicle and Vehicle-to-Infrastructure communication messages based on the simulation data.</para>
<fig id="F11-4" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F11-4">Figure <xref linkend="F11-4" remap="11.4"/></link></label>
<caption><para>RTMAPS diagram of the system (extract).</para></caption>
<graphic xlink:href="graphics/ch11_fig04.jpg"/>
</fig>
<para>Our chassis-dynamometer has a hardware limitation: the vehicle front wheels cannot turn when the vehicle is moving; or damage can occur. In order to prevent this, the test vehicles driving wheel is physically removed and replaced by a USB joystick connected to the computer. This allows lateral control of the virtual vehicle by the driver, in a way very similar to driving simulators, while the physical wheels stays in line with the chassis dynamometer.</para>
</section>
</section>
<section class="lev1" id="sec11-5">
<title>11.5 Experimental Setup</title>
<para>In order to test our system, we equipped a small fully-electrical vehicle with an after-market ADAS system: a Mobileye 560. This ADAS, designed to be installed on the windshield, is based on a forward-looking camera and an integrated processor which performs real-time image processing. The main unit contains the camera and a processing device, and a separate display is used to inform the driver of the working state of the system and to show warnings. A Bluetooth connection allows using a dedicated application on a smartphone or tablet to display various data in addition to the one already shown on the small display. A picture of the system is shown in <link linkend="F11-5">Figure <xref linkend="F11-5" remap="11.5"/></link> where the main unit is shown on the right, the small display in the middle, and a smart-phone running the dedicated application on the left.</para>
<fig id="F11-5" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F11-5">Figure <xref linkend="F11-5" remap="11.5"/></link></label>
<caption><para>Mobileye 560 aftermarket vision-based ADAS.</para></caption>
<graphic xlink:href="graphics/ch11_fig05.jpg"/>
</fig>
<para>The Mobileye system is able to detect and track many objects: pedestrians, other vehicles, speed-limit signs, and white lines. The position of the tracked objects, as well as the vehicle speed information gathered from the CAN-bus is used to detect dangerous situations and to warn the driver: risk of pedestrian collision, risk of forward collision, lane departure, over-speed and so on. All the processing is done inside the Mobileye main unit and only high-level information is available through a small display. The Mobileye system is described in details in [<link linkend="ch11_B8">8</link>] and up-to-date information is available in [<link linkend="ch11_B9">9</link>].</para>
<para>The V2V communication test bench is composed of two Khoda Wireless MK 2802.11p modems equipped with MobileMark SMW-303 multiband antennas. One of the modem is used to send CAM and DENM messages generated from virtual vehicles data. The other modem is used as an embedded unit in the vehicle under test. The data received by this second modem are used to update a dashboard HMI. An extract of the RTMAPS diagram responsible for the communication task is shown <link linkend="F11-6">Figure <xref linkend="F11-6" remap="11.6"/></link>.</para>
<fig id="F11-6" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F11-6">Figure <xref linkend="F11-6" remap="11.6"/></link></label>
<caption><para>RTMAPS diagram of the V2V task.</para></caption>
<graphic xlink:href="graphics/ch11_fig06.jpg"/>
</fig>
<para>The test vehicle equipped with the Mobileye is placed on the chassis dynamometer, and an LCD screen is placed in front of the windshield, in the sight of both the driver and the Mobileye system. The <link linkend="F11-7">Figure <xref linkend="F11-7" remap="11.7"/></link> shows a view of the test vehicle installed on the chassis-dynamometer. The LCD screen can be seen in front of the car.</para>
<fig id="F11-7" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F11-7">Figure <xref linkend="F11-7" remap="11.7"/></link></label>
<caption><para>The Biocar test vehicle on the Horiba chassis dynamometer.</para></caption>
<graphic xlink:href="graphics/ch11_fig07.jpg"/>
</fig>
<para>The whole system was tested with an urban scenario and environment. This scenario is composed of a few roads with some buildings and trees; the traffic is simulated with four cars following a predefined path. The virtual car can freely move inside this environment and is directed by actions from the driver. A view of the urban scenario is shown in <link linkend="F11-8">Figure <xref linkend="F11-8" remap="11.8"/></link>.</para>
<fig id="F11-8" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F11-8">Figure <xref linkend="F11-8" remap="11.8"/></link></label>
<caption><para>Overview of the urban environment in Pro-Sivic.</para></caption>
<graphic xlink:href="graphics/ch11_fig08.jpg"/>
</fig>
</section>
<section class="lev1" id="sec11-6">
<title>11.6 Results</title>
<para>A first series of results have been obtained with the described experimental setup. The virtual car forward motion is completely controlled by the real vehicle controls (accelerator and brake pedals), while the lateral control is obtained from the USB driving wheel connected to the computer.</para>
<para>First, the integration of the chassis-dynamometer with the simulation software was tested. The real car speed is read and used to update the virtual vehicle motion. In Pro-Sivic, the road slope under the vehicle is processed and this information is used to control the resistive torque applied by the chassis-dynamometer on the real vehicle. During the tests, the car driver can feel the resistive torque applied by the system on the vehicle wheels when climbing a slope, and has a feeling of free wheels when going down. The <link linkend="F11-9">Figure <xref linkend="F11-9" remap="11.9"/></link> shows a picture taken near the driver&#x02019;s seat. Driving the car is natural and intuitive, just as if the car would be on a real road. The driving simulator use-case is not the main goal of this system but this first test proves the interest of the SERBER system even for ADAS which involves driver interaction.</para>
<fig id="F11-9" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F11-9">Figure <xref linkend="F11-9" remap="11.9"/></link></label>
<caption><para>Inner view of the vehicle.</para></caption>
<graphic xlink:href="graphics/ch11_fig09.jpg"/>
</fig>
<para>The ADAS sensor stimulation abilities of the system were tested using the Mobileye. This test showed promising results as the Mobileye was fooled by the simulation and worked as if the car would be running on a real road. The lane departure warning and forward collision warning have been triggered by the corresponding simulated situations. The <link linkend="F11-10">Figure <xref linkend="F11-10" remap="11.10"/></link> shows the lane departure warning being triggered when the car is crossing the road central line with the blinkers off. In this picture, the road is clearly seen on the LCD screen in the top right part. In the bottom left part, a tablet running the Mobileye application shows a graphical representation of the warning being triggered.</para>
<fig id="F11-10" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F11-10">Figure <xref linkend="F11-10" remap="11.10"/></link></label>
<caption><para>Lane departure warning triggered.</para></caption>
<graphic xlink:href="graphics/ch11_fig010.jpg"/>
</fig>
<para>The last tested functionality is the V2V communication simulation. In this test, four virtual vehicles are simulated and their global positions are broadcasted by the 802.11p modem using CAM messages. Various DENM messages are also broadcasted by virtual vehicles. Another modem is embedded in the vehicle under test and receives these messages. An HMI is used to display this data to the driver, using a RADAR-like circular representation. A snapshot of the HMI is shown in <link linkend="F11-11">Figure <xref linkend="F11-11" remap="11.11"/></link>.</para>
<fig id="F11-11" position="float" xmlns:xlink="http://www.w3.org/1999/xlink">
<label><link linkend="F11-11">Figure <xref linkend="F11-11" remap="11.11"/></link></label>
<caption><para>V2V Communication HMI.</para></caption>
<graphic xlink:href="graphics/ch11_fig011.jpg"/>
</fig>
</section>
<section class="lev1" id="sec11-7">
<title>11.7 Conclusion and Future Work</title>
<para>In this chapter, we have presented SERBER, our Vehicle-Hardware-In-the-Loop system which uses a chassis-dynamometer and a multi-sensor simulation software to create a kind of virtual reality platform for intelligent vehicles equipped with ADAS using sensors to gather information from the surrounding environment. The combination of the simulation software and the chassis-dynamometer allows applying the resulting force from a simulated slope to the real vehicle, while the sensor data generated by the simulation software are fed into the ADAS.</para>
<para>We discussed different way show the system can feed simulated data to sensors, both at the communication-bus level (CAN messages) and at the physical-stimuli level.</para>
<para>We described our current implementation based on Pro-Sivic, RTMAPS and a Horiba chassis-dynamometer and presented the first results obtained by a complete test using a small electrical car equipped with an after-market camera-based ADAS and 802.11p modem. The result presented in this paper shows the ability to fool an ADAS system based on a forward-looking camera. Various functions of the ADAS are triggered when corresponding situations are simulated: forward collision warning and lane departure warning.</para>
<para>The DESERVE project aims to provide an environment for ADAS design, development and pre-validation. In this context, SERBER provides a virtual testing platform enabling early tests of newly designed ADAS with realistic scenarios and testing environments. This system can also be used to validate multiple ADAS interaction on the same vehicle and aims to be a complete test and validation system for fully-autonomous vehicles.</para>
<para>SERBER is more compact and simpler to use than other VeHIL systems which use mobile bases to move fake cars at high speed in order to simulate other vehicles motion. In fact, our system can easily be installed on a standard chassis-dynamometer, if it can be controlled by software, requiring only minor physical modification of the facility.</para>
<para>The work presented in this chapter is a first step towards a complete simulation system able to stimulate multiple sensors in the tested vehicle. Currently, only camera-based ADAS and V2X communication systems can be stimulated.</para>
<para>The first area of improvement for the current system is the simulation and stimulation of additional sensors. A RADAR virtual target generator is currently being developed in order to fool RADAR-based ADAS like Adaptive Cruise Control (ACC) and Automatic Emergency Braking (AEB). A LIDAR target generator and GPS simulator can be integrated to provide a quite complete setup able to test realistic scenarios.</para>
<para>A second area of improvement is in the simulation environment and scenario. To be able to test corner-cases and complex interaction of various ADAS functions, sophisticated scenarios involving various road environments, pedestrians, other vehicles and driver behavior have to be designed and implemented.</para>
</section>
<section class="lev1" id="sec11-8">
<title>Acknowledgment</title>
<para>The DESERVE project (Development platform for Safe and Efficient dRiVE, is a project funded by ECSEL-JU (<ulink url="http://ecsel.eu">http://ecsel.eu</ulink>) and is available at <ulink url="http://deserve-project.eu">http://deserve-project.eu</ulink></para>
<para>The SERBER project (Simulateur d&#x02019;Environnement Routier integr&#x000E9; &#x000E0; un Banc de test v&#x000E9;hicule pour l&#x02019;Evaluation de strat&#x000E9;gies de gestion de l&#x02019;&#x000E9;neRgie embarqu&#x000E9;e) is funded by Institut Carnot ESP (http://www.carnot-esp.fr).</para>
</section>
<section class="lev1" id="sec11-9">
<title>References</title>
<orderedlist numeration="arabic" continuation="restarts" spacing="normal">
<listitem><para><anchor id="ch11_B1"/>C. Galko, R. Rossi and X. Savatier, &#x0201C;Vehicle-Hardware-In-The-Loop System for ADAS Prototyping and Validation,&#x0201D; in <emphasis>IEEE International Conference on Embedded Computer Systems: Architectures, Modeling, and Simulation (SAMOS XIV)</emphasis>, SAMOS Island, Greece, 2014. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=C%2E+Galko%2C+R%2E+Rossi+and+X%2E+Savatier%2C+%22Vehicle-Hardware-In-The-Loop+System+for+ADAS+Prototyping+and+Validation%2C%22+in+IEEE+International+Conference+on+Embedded+Computer+Systems%3A+Architectures%2C+Modeling%2C+and+Simulation+%28SAMOS+XIV%29%2C+SAMOS+Island%2C+Greece%2C+2014%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch11_B2"/>O. Gietelink, J. Ploeg, B. De Schutter and M. Verhaegen, &#x0201C;Development of advanced driver assistance systems with vehicle hardware-in-the-loop simulations,&#x0201D; <emphasis>Vehicle System Dynamics,</emphasis> Vol. 44, No. 7, pp. 569&#x02013;590, 2006. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=O%2E+Gietelink%2C+J%2E+Ploeg%2C+B%2E+De+Schutter+and+M%2E+Verhaegen%2C+%22Development+of+advanced+driver+assistance+systems+with+vehicle+hardware-in-the-loop+simulations%2C%22+Vehicle+System+Dynamics%2C+Vol%2E+44%2C+No%2E+7%2C+pp%2E+569-590%2C+2006%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch11_B3"/>K. Athanasas, C. Bonnet, H. Fritz, C. Scheidler, and G. Volk, &#x0201C;VALSE-validation of safety-related driver assistance systems,&#x0201D; chez <emphasis>Intelligent Vehicles Symposium, 2003. Proceedings. IEEE</emphasis>, 2003. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=K%2E+Athanasas%2C+C%2E+Bonnet%2C+H%2E+Fritz%2C+C%2E+Scheidler%2C+and+G%2E+Volk%2C+%22VALSE-validation+of+safety-related+driver+assistance+systems%2C%22+chez+Intelligent+Vehicles+Symposium%2C+2003%2E+Proceedings%2E+IEEE%2C+2003%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch11_B4"/>&#x0201C;Vehicle Hardware-In-the-Loop,&#x0201D; [Online]. Available: <ulink url="https://www.tassinternational.com/VeHIL">https://www.tassinternational.com/VeHIL</ulink>. [Accessed 18 08 2016]. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=%22Vehicle+Hardware-In-the-Loop%2C%22+%5BOnline%5D%2E+Available%3A+https%3A%2F%2Fwww%2Etassinternational%2Ecom%2FVeHIL%2E+%5BAccessed+18+08+2016%5D%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch11_B5"/>N. Hiblot, D. Gruyer, J.-S. Barreiro and B. Monnier, &#x0201C;Pro-SiVIC and ROADS. A Software suite for sensors simulation and virtual prototyping of ADAS,&#x0201D; in <emphasis>Proceedings of DSC</emphasis>, 2010. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=N%2E+Hiblot%2C+D%2E+Gruyer%2C+J%2E-S%2E+Barreiro+and+B%2E+Monnier%2C+%22Pro-SiVIC+and+ROADS%2E+A+Software+suite+for+sensors+simulation+and+virtual+prototyping+of+ADAS%2C%22+in+Proceedings+of+DSC%2C+2010%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch11_B6"/>&#x0201C;Chassis Dynamometer VULCAN,&#x0201D; [Online]. Available: <ulink url="http://www.horiba.com/automotive-test-systems/products/mechatronic-systems/engine-test-systems/details/vulcan-emscd48-626/">http://www.horiba.com/automotive-test-systems/products/mechatronic-systems/engine-test-systems/details/vulcan-emscd48-626/</ulink>. [Accessed 18 08 2016]. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=%22Chassis+Dynamometer+VULCAN%2C%22+%5BOnline%5D%2E+Available%3A+http%3A%2F%2Fwww%2Ehoriba%2Ecom%2Fautomotive-test-systems%2Fproducts%2Fmechatronic-systems%2Fengine-test-systems%2Fdetails%2Fvulcan-emscd48-626%2F%2E+%5BAccessed+18+08+2016%5D%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch11_B7"/>J. Petit, B. Stottelaar, M. Feiri and F. Kargl, &#x0201C;Remote Attacks on Automated Vehicles Sensors: Experiments on Camera and LiDAR,&#x0201D; in <emphasis>Black Hat Europe</emphasis>, 2015. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=J%2E+Petit%2C+B%2E+Stottelaar%2C+M%2E+Feiri+and+F%2E+Kargl%2C+%22Remote+Attacks+on+Automated+Vehicles+Sensors%3A+Experiments+on+Camera+and+LiDAR%2C%22+in+Black+Hat+Europe%2C+2015%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch11_B8"/>B. Steux, P. Coulombeau and C. Laurgeau, &#x0201C;RTmaps: a framework for prototyping automotive multi-sensor applications,&#x0201D; in <emphasis>Proc. Intelligent Vehicles Symposium</emphasis>, 2000. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=B%2E+Steux%2C+P%2E+Coulombeau+and+C%2E+Laurgeau%2C+%22RTmaps%3A+a+framework+for+prototyping+automotive+multi-sensor+applications%2C%22+in+Proc%2E+Intelligent+Vehicles+Symposium%2C+2000%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch11_B9"/>I. Gat, M. Benady and A. Shashua, &#x0201C;A monocular vision advance warning system for the automotive aftermarket,&#x0201D; in <emphasis>SAE World Congress &#x00026; Exhibition</emphasis>, 2005. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=I%2E+Gat%2C+M%2E+Benady+and+A%2E+Shashua%2C+%22A+monocular+vision+advance+warning+system+for+the+automotive+aftermarket%2C%22+in+SAE+World+Congress+%26+Exhibition%2C+2005%2E" target="_blank">Google Scholar</ulink></para></listitem>
<listitem><para><anchor id="ch11_B10"/>&#x0201C;MobilEye 5-series product page,&#x0201D; [Online]. Available: <ulink url="https://www.mobileye.com/products/mobileye-5-series/">https://www.mobileye.com/products/mobileye-5-series/</ulink>. [Accessed 18 08 2016]. <ulink url="https://scholar.google.com/scholar?hl=en&amp;q=%22MobilEye+5-series+product+page%2C%22+%5BOnline%5D%2E+Available%3A+https%3A%2F%2Fwww%2Emobileye%2Ecom%2Fproducts%2Fmobileye-5-series%2F%2E+%5BAccessed+18+08+2016%5D%2E" target="_blank">Google Scholar</ulink></para></listitem>
</orderedlist>
</section>
</chapter>
</part>
<chapter class="nosec" id="about01">
<title>About the Editors</title>
<para><emphasis role="strong">Guillermo Pay&#x00E1; Vay&#x00E1;</emphasis> obtained his Ing. degree from the School of Tele- communications Engineering, Universidad Polit&#x00E9;cnica de Valencia, Spain, in 2001. During 2001&#x02013;2004, he was a member of the research group of Digital System Design, Universidad Polit&#x00E9;cnica de Valencia, where he worked on VLSI dedicated architecture design of signal and image processing algorithms using pipelining, retiming, and parallel processing techniques. In 2004, he joined the Department of Architectures and Systems at the Institute of Microelectronic Systems, Leibniz Universit&#x00E4;t Hannover, Germany, and received a Ph.D. degree in 2011. He is currently Junior Professor at the same Institute. His research interests include embedded computer architecture design for signal and image processing systems.</para>
<para><emphasis role="strong">Holger Blume</emphasis> received his diploma in electrical engineering in 1992 at the University of Dortmund, Germany. In 1997 he achieved his Ph.D. with distinction from the University of Dortmund, Germany. Until 2008 he worked as a senior engineer and as an academic senior councilor at the Chair of Electrical Engineering and Computer Systems (EECS) of the RWTH Aachen University. In 2008 he got his postdoctoral lecture qualification. Holger has been Professor for &#x0201C;Architectures und Systems&#x0201D; at the Leibniz Universit&#x00E4;t Hannover, Germany, since July 2008 and runs the Institute of Microelectronic Systems. His present research includes algorithms and heterogeneous architectures for digital signal processing, design space exploration for such architectures as well as research on the corresponding modeling techniques.</para>
</chapter>
</book>
