element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Eye On Intelligence Challenge
  • Challenges & Projects
  • Design Challenges
  • Eye On Intelligence Challenge
  • More
  • Cancel
Eye On Intelligence Challenge
Blog ADAS and Vehicle Monitoring System - Overview
  • Blog
  • Forum
  • Documents
  • Polls
  • Files
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join Eye On Intelligence Challenge to participate - click to join for free!
  • Share
  • More
  • Cancel
Group Actions
  • Group RSS
  • More
  • Cancel
Engagement
  • Author Author: vmate
  • Date Created: 4 Sep 2024 6:46 PM Date Created
  • Views 1372 views
  • Likes 13 likes
  • Comments 7 comments
  • video processing
  • arty z7
  • 4g
  • Object Recognition
  • fpga
  • Eye on Intelligence Challenge
  • embedded
Related
Recommended

ADAS and Vehicle Monitoring System - Overview

vmate
vmate
4 Sep 2024

Overview

My goal is to build an ADAS and monitoring system for cars, serving as an advanced security and surveillance system when the car is parked, and a driver assistance system when the car is driven.
The core of the system will be one or more cameras mounted inside the vehicle, in addition to various sensors, like a GPS unit. A 4G data connection will enable streaming the video and location data in near real-time to a remote server.
To ensure continuous operation when the car is parked, the system will have its own power storage system.

The Kit

Arty-Z7

A development board with a dual core Cortex-A9 CPU, and an Artix-7 FPGA.

image

image

image

Pmod ALS

Ambient light sensor module for the Arty-Z7.

image

ZIQIAN HD 1080p Webcam

Not much to add here.

image

Project Plan

Vision-based systems

The camera will be mounted in the front of the car, acting both as a dashcam, and a surveillance camera when parked.

The goal is to run an object detection AI model on the FPGA part of the Artix-7, on the images captured by the camera. Thanks to the Cortex-A9 cores, it is possible to run Linux on the board, to handle the camera UVC capture, and pass it to the FPGA side for processing, then get back the results into Linux.

The object detection model will be trained to recognize traffic signs, and used to provide ADAS capabilities to the driver, such as a speed limit detection and alerting system. Upon encountering a speed limit sign, the recognized limit can be compared to the speed measured by a GPS unit, and an alert provided to the driver in case of speeding.

Another planned feature is monitoring traffic lights. This can be utilized to provide alerts to the driver, for example when a traffic light transitions from red to green.

When the car is parked, the camera will keep recording at a lower bitrate, to act as a surveillance device, in case the car gets damaged, or an attempted break-in happens.

Connectivity

The system will have its own 4G connection, to constantly stream the camera and sensor data to a remote server for storage and additional processing. This provides multiple benefits, such as not needing to put large amounts of storage in the car, minimizing power consumption of the system, and enabling the use of data processing techniques that are far too resource intensive to run on the low power budget of an in-car system.

image

Power storage and energy management

As the system is designed to operate even when the vehicle is parked, an energy storage system is required.

A large lead-acid battery will be present under the front passenger seat, which will be charged from the vehicle’s generator when driving. The option to use solar panels to charge when parked will also be available.

There will be an option to use a second lead-acid battery as well, to enable both hot-swap battery changes and battery capacity extension, in case the vehicle spends extended periods of time parked.

image

Timeline and planned blogs

To train an AI model for recognizing traffic signs and lights, I installed a Raspberry Pi HQ camera in my car a few weeks ago, along with a Pi 4 to capture a few hours of driving. From this footage, I’ve extracted about 5000 images, and hand-labeled them to create a training dataset. For testing, I’ve used YOLOv8 as the object recognition model, but this will most likely be unfeasible to run on the FPGA, so an earlier version of YOLO will be used.

The next step is to build and test the battery charging and management system. This will be based on four BQ25798 charging ICs, providing up to 150W charging, and MPPT support for utilizing solar panels. The next blog will be about this system.

Next is figuring out how to use the Zynq-7020 to accelerate the AI model used for object detection. There are a few different possibilities, but I cannot yet evaluate them, as I do not have the kit yet. There is a decent chance that the dual Cortex-A9 CPUs running Linux won’t be fast enough to handle capturing images from the camera, communicating with the FPGA, dealing with the 4G modem, processing sensor and object recognition data, and streaming video over the network. In this case, a Raspberry Pi 4 will be used to offload some of the non-vision related tasks. This would also let me use the Raspberry Pi HQ camera as the front dashcam, and use the provided webcam for capturing video from the rear window, where video quality is less important.

With both video processing and powering the system figured out, the next blog will be about integrating all the different parts, and physically installing them in a car. By this point, I should be able to see any possible remaining challenges and issues, and have enough time left to fix or work around them.

With the electronics installed, the next blog will be about software. There are two main challenges here: streaming video to the remote server, and collecting, storing, and processing all the sensor data. For the streaming part, I’ll have to write a custom video streaming protocol and accompanying software for both the transmitter and receiver halves. For sensor data storage and processing, hopefully I can use some off-the-shelf software, like GPSD and InfluxDB for collecting, storing, and replicating data to the remote server.

The final blog will be an overview of all the systems created, and video demonstrations of all the features provided.

  • Sign in to reply
  • DAB
    DAB 10 months ago in reply to dougw

    You are probably referring to the auto drive car that hit the bicyclist even after the software noticed him, but took no action.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • dougw
    dougw 10 months ago in reply to vmate

    I was thinking about recognition latency...

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • vmate
    vmate 10 months ago in reply to dougw

    Latency of the video streaming or the object recognition model on the FPGA?

    Video streaming will be challenging for sure, there are a bunch of conflicting requirements for such use.

    For example, real-time transmisison is basically required, in case of an accident that would destroy the hardware, it would be good to have video of it. So that would mean adjusting compression bitrate to fit network conditions.

    On the other hand, if I get a few second drop in network speeds, I don't want to end up with low resolution footage of those few seconds, when I could've just locally buffered the high quality version, and synced it later when network conditions improve.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • DAB
    DAB 10 months ago

    Very ambitious project, I look forward to seeing it all work.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • dougw
    dougw 10 months ago

    Great project. It will be interesting to see what kind of latency can be achieved.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
>
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2025 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube