• Stars
    star
    405
  • Rank 106,656 (Top 3 %)
  • Language
    C++
  • License
    MIT License
  • Created over 4 years ago
  • Updated about 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

An open source advanced driver assistance system (ADAS) that uses Jetson Nano as the hardware. Features: Traffic sign detection, Forward collision warning, Lane departure warning.

OpenADAS - An advanced driver-assistance system using Jetson Nano

Donate

An advanced driver-assistance system on Jetson Nano embedded computer with four main functions: forward collision warning, lane departure warning, traffic sign recognition and overspeed warning. This repository contains source code for Jetson Nano, not including the source code for model training and conversion.

The system design

Documentation:

For TensorRT 7 support: Currently, only TensorRT 5 and 6 are supported. TensorRT 7 has a lot of deprecated APIs and I think there is no way to run this project directly with that version. I don't have time to continue with this project soon, so I really need your contributions to extend this project further.

Quick setup on Jetson Nano: SD Card image

I created an image of my SD card here. You can flash and run this image on Jetson Nano.

Note:

  • The source code and binary files in this SD card image is older than in master branch. Please upgrade to the lastest source code and recompile on your device.
  • Use Alt+F4 to exit the GUI and start editing your source code.
  • Login information:
    • Username: smartcam.
    • Password: Open Terminal and type sudo passwd smartcam to change the password.

Compile from source

Requirements:

  • CMake >= 3.10
  • Qt 5
  • OpenCV >= 4.0.1
  • C++ 17 compiler
  • CUDA 10.x
  • TensorRT 5.1.5-1+cuda10.1, or - TensorRT 6.0.1.8+10.2. This project should work with TensorRT 5 and TensorRT 6. TensorRT 7 is not supported for now.

Setup for Linux - Ubuntu 18.04

Setup

  • Install QT:
sudo apt-get install build-essential
sudo apt-get install qt5-default qtcreator qt5-doc qt5-doc-html qtbase5-doc-html qtbase5-examples -y
sudo /sbin/ldconfig -v
  • Install OpenCV
https://linuxize.com/post/how-to-install-opencv-on-ubuntu-18-04/
  • Install protobuf 3.6.1
https://github.com/protocolbuffers/protobuf

Models and test data

  • Download models and testing data here and put into root folder of this project.

Compile and Run

cd <project directory>
mkdir build
cd build
cmake -DCUDA_INCLUDE_DIRS=/usr/local/cuda-10.2/include ..
make

Replace CUDA_INCLUDE_DIRS with your own path.

  • Setup virtual CAN (run once)
sudo bash setup_vcan.sh
  • Run
cd build/bin
./OpenADAS

Arguments:

  • --input_source | default: simulation : Input source. 'camera' or 'simulation'.
  • --input_video_path | optional : Path to video file for simulation.
  • --input_data_path | optional : Path to data file for simulation.
  • --on_dev_machine | default: true : On development machine or not. When this value is set to false, OpenADAS will be launched in fullscreen mode without mouse (touch UI). You should this value to true in development environment.

Specify input_video_path and input_data_path if you want to load a simulation scenario by default. Otherwise, you can select scenarios from simulation selector.

Known issues

Issue: cublas_v2.h not found

fatal error: cublas_v2.h: No such file or directory
 #include <cublas_v2.h>
          ^~~~~~~~~~~~~
compilation terminated.
  • Step 1: Find lib: find /usr/local/ -name cublas_v2.h.
  • Step 2: Export to path: export CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:/usr/local/cuda-10.2/targets/x86_64-linux/include/.
  • Step 3: Use CMake and build.

Issue: /usr/bin/ld: cannot find -lcudart, /usr/bin/ld: cannot find -lcublas

sudo ln -s /usr/local/cuda/lib64/libcudart.so /usr/lib/libcudart.so
sudo ln -s /usr/local/cuda/lib64/libcublas.so /usr/lib/libcublas.so

Note: The paths can be different on your computer.

Issue: Qt5Multimedia missing

Could not find a package configuration file provided by "Qt5Multimedia"
  with any of the following names:

    Qt5MultimediaConfig.cmake
    qt5multimedia-config.cmake

How to fix?

sudo apt-get install qttools5-dev-tools libqt5svg5-dev qtmultimedia5-dev

Issue: Need to specify CUDA root

[cmake] CMake Error at /usr/share/cmake-3.10/Modules/FindCUDA.cmake:682 (message):
[cmake]   Specify CUDA_TOOLKIT_ROOT_DIR

How to fix?

export CUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda-10.2/

You should change the path corresponding to your environment.

Issue: Qt5 library not found

 fatal error: QtWidgets/QCloseEvent: No such file or directory
 #include <QtWidgets/QCloseEvent>
          ^~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.

Issue: SIOCGIFINDEX: No such device

sudo bash setup_vcan.sh

References:

More Repositories

1

anylabeling

Effortless AI-assisted data labeling with AI support from YOLO, Segment Anything (SAM+SAM2), MobileSAM!!
Python
2,264
star
2

shipfast

The best free SaaS base for GenAI, LLM, and other AI Services. Ship your next Generative AI startups in days.
TypeScript
304
star
3

samexporter

Export Segment Anything Models to ONNX
Python
204
star
4

tf-blazepose

BlazePose - Super fast human pose detection on Tensorflow 2.x
Python
192
star
5

hugo-curious

Hugo theme for AICurious blog. Based on Hugo Clarity: https://github.com/chipzoller/hugo-clarity
JavaScript
25
star
6

chess.mojo

Chess.Mojo 🔥 - The first UCI chess engine in Mojo
Python
23
star
7

This-Repo-Has-15-Stars

Yes, it's true 💔
16
star
8

blazeface_keras

BlazeFace Implementation - Keras
Python
11
star
9

autonomous-car-2020

Autonomous car source code for FPT Digital Race (Cuộc Đua Số) 2020 - Round 1 - Simulation Car. TOP 1 DHBKHN (HUST).
C++
11
star
10

anylabeling-assets

Assets for AnyLabeling app
Python
9
star
11

awesome-autonomous

Learning resources for autonomous robot and self-driving vehicle systems
HTML
9
star
12

p8hub

Private AI Hub (P8Hub) - Host and use your own AI Services. Keep everything simple and private.
TypeScript
9
star
13

board-ar

View Raspberry Pi Pico board ports using Augmented Reality (AR)
Python
9
star
14

thansohoc

Xem vận mệnh qua thần số học Pythagoras
HTML
7
star
15

CustomChar

Your customized AI characters on commodity hardware!
C++
7
star
16

trainme

Labeling and Training Toolkit for Computer Vision Projects
Python
6
star
17

facecam

Funny camera app with face decorators like Snapchat. This project uses face detection and alignment algorithms from OpenCV.
C++
6
star
18

traffic-sign-classification-uff-tensorrt

Traffic sign classification training and conversion code to uff - TensorRT
Python
5
star
19

vietanhdev

5
star
20

geeky-curious

Hugo theme for AICurious - 2022
SCSS
5
star
21

ivy-ai-examples

Examples of using Ivy for training neural networks
Python
5
star
22

paper_stream

Paper Transformation and Streaming - The Runner-Up at Call For Code IBM SoICT Hackathon 2020.
Python
5
star
23

gict-meeting

Video Conference system using linux socket connection and client-server architecture
C++
4
star
24

cpp-call-python-opencv

Call Python OpenCV function from C++
C++
3
star
25

deep-head-pose-2

Deep head pose model with ShuffleNetV2, EfficientNet backbonds and Landmark estimation.
Python
3
star
26

review.aicurious.io

Review machine learning knowledge for machine learning
HTML
3
star
27

unet-uff-tensorrt

Training code for UNet segmentation model which can be converted to TensorRT engine
Python
3
star
28

centernet-bdd-data

A fork of Centernet for Berkeley DeepDrive dataset
Python
3
star
29

algo-curious

Translation project of https://cp-algorithms.com/
JavaScript
3
star
30

course-basic-opencv

Materials for course: Basic OpenCV - AI Curious
Python
3
star
31

autonomous-car-2018

Autonomous car source code for FPT Digital Race (Cuộc Đua Số) 2018 - Round 1 - Simulation Car
C++
2
star
32

S-Editor

My configuration for Emacs: << Stark Editor >>
Emacs Lisp
2
star
33

chessai-data

Data for ChessAI Project
Python
2
star
34

e-store-manager

Store Management Software
JavaScript
2
star
35

beNice17

A Jekyll theme for my personal website
HTML
2
star
36

online-caro

An online five-in-a-row game (also called Caro game in Vietnamese)
CSS
2
star
37

iFirewall

Implement a DDOS Protection Firewall for Flask server
HTML
2
star
38

via-gpt

VIA GPT - VIA Voice Buddy - Voice chat with ChatGPT
Python
2
star
39

SFND_Lidar_Obstacle_Detection

My implementation of LiDAR Object Detection project - Sensor Fusion Engineer Nanodegree - Udacity
C++
2
star
40

VAEmacs-configuration

My configuration files for Emacs
Emacs Lisp
2
star
41

chessai

Chinese Chess Advanced Analytics
TypeScript
2
star
42

autonomous-car-2020-sign-detection

Traffic sign detection - FPT Digital Race (Cuộc Đua Số) 2020
Python
1
star
43

autonomous-car-2020-road-seg

Road segmentation - Traffic sign detection - FPT Digital Race (Cuộc Đua Số) 2020
Python
1
star
44

tieng-viet-moi

Chuyển tiếng Việt sang kiểu chữ mới
HTML
1
star
45

cuoc-dua-so-fpt-round2-sim

Simulation for FPT Digital Race (Cuộc Đua Số) - Round 2
C#
1
star
46

ccbot

Building a robot that can play Chinese chess (XiangQi) with humans.
Python
1
star
47

wol

Remote Wake-On-Lan from internet using Arduino and enc28j60 module
HTML
1
star
48

Data-Structure-and-Algorithms-lab

place to save files for Data Structure and Algorithms lab _ HUST
C
1
star
49

anylabeling-docs

Documentation for AnyLabeling
TypeScript
1
star
50

my-fonts

My fonts for PC
Shell
1
star
51

timelaps-movie-maker

Python
1
star
52

android-image-processing-cpp

Image processing experiments with C++ on Android
Kotlin
1
star
53

gemo-tech-solutions

My solutions for Gemo Tech Exercises
JavaScript
1
star
54

via-esp32-cam

ESP32 camera module for VIA https://via.makerviet.org
1
star
55

my-memos

Personal setup of Memos for engineering notes
1
star
56

p8hub-teachable-ai

JavaScript
1
star
57

hiDictionary

A dictionary using json files as database.
HTML
1
star
58

minesweeper-in-c

Minesweeper Game written in C by VietAnhDev
C
1
star
59

centernet-bdd-data-onnx-conversion

centernet-to-onnx-conversion
Python
1
star
60

online-battleship

Online realtime Battleship game with ReactJS, Flask, Websocket
CSS
1
star
61

moviemaker-hagiang-2023

Movie Maker for Ha Giang STEAM trip 2023
Python
1
star
62

ai-from-scratch

AI From Scratch in C++ - for educational purposes. Available now: Fully Connected Network and Convolution Neural Network.
C++
1
star