<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Embedded | Dat Viet Thanh Nguyen</title><link>https://datvtn.github.io/tags/embedded/</link><atom:link href="https://datvtn.github.io/tags/embedded/index.xml" rel="self" type="application/rss+xml"/><description>Embedded</description><generator>Hugo Blox Builder (https://hugoblox.com)</generator><language>en-us</language><lastBuildDate>Fri, 01 Jan 2021 00:00:00 +0000</lastBuildDate><image><url>https://datvtn.github.io/media/icon_hu82c06b08a282889123d30d9b11b05ced_13465_512x512_fill_lanczos_center_3.png</url><title>Embedded</title><link>https://datvtn.github.io/tags/embedded/</link></image><item><title>Autopilot Perception on Jetson TX2</title><link>https://datvtn.github.io/project/autopilot-perception/</link><pubDate>Fri, 01 Jan 2021 00:00:00 +0000</pubDate><guid>https://datvtn.github.io/project/autopilot-perception/</guid><description>&lt;p>&lt;strong>Jan 2020 – Jan 2021&lt;/strong>&lt;/p>
&lt;h2 id="problem">Problem&lt;/h2>
&lt;p>An autonomous vehicle has to see and react inside a control loop that does not wait. On a Jetson TX2, the whole perception stack — not just one model — has to fit in a few watts and a few tens of milliseconds, while staying reliable under changing light, weather, and road surfaces.&lt;/p>
&lt;h2 id="approach">Approach&lt;/h2>
&lt;p>I worked on the perception side of the vehicle: the models that turn camera frames into the lane, sign, and obstacle information the control stack acts on.&lt;/p>
&lt;p>The interesting constraint was that accuracy and latency traded against each other continuously. Time spent on a heavier detector is time the controller does not have to react, so the work was as much about &lt;strong>inference engineering&lt;/strong> — optimising the graph, choosing precisions, keeping the pipeline saturated — as about model architecture. The stack was built against TensorRT to get the most out of the TX2&amp;rsquo;s GPU.&lt;/p>
&lt;p>This was developed for the FPT Digital Race, where the system had to run a real course rather than a held-out test set — which surfaces a different class of failure than offline evaluation does.&lt;/p>
&lt;h2 id="tech-stack">Tech stack&lt;/h2>
&lt;p>&lt;code>PyTorch&lt;/code> · &lt;code>TensorRT&lt;/code> · &lt;code>NVIDIA Jetson TX2&lt;/code> · &lt;code>OpenCV&lt;/code> · &lt;code>Python&lt;/code> · &lt;code>C++&lt;/code>&lt;/p>
&lt;h2 id="outcome">Outcome&lt;/h2>
&lt;p>&lt;strong>Top 10 — FPT Digital Race 2020 Final.&lt;/strong>&lt;/p>
&lt;!-- TODO: add the perception pipeline's end-to-end FPS on TX2 and which specific tasks the stack covered. --></description></item></channel></rss>