최근 도로나 인도에 전동 킥보드가 많이 보이고 있지 않나요?
배달로 인한 오토바이의 수도 점점 증가하고 있어요.
이렇게 개인형 이동수단의 개체 수가 증가하면서 그에 따른 사건/사고들도 급격히 증가하고 있습니다.
Ruvve는 이러한 문제를 해결하기 위해 개발된 개인형 이동수단 전용 네비게이션이에요!
Ruvve가 가진 다른 네비게이션 서비스와의 차별점이 두 가지 있는데요.
먼저, 딥러닝을 기반한 개체 추적으로 주행 중 장애물 탐지를 통해 알림을 주는 기능을 가집니다.
또, AR 뷰를 통해 흔히 길치라고 부르는 공간감 능력이 부족한 분들도 직과적인 뷰를 통해 쉽게 길찾기를 할 수 있어요!
개인형 이동수단을 위한 전용 경로를 찾아 AR화면을 통한 길안내 서비스를 제공합니다. ML을 통한 사물인식 기술을 통해 주행 중 사고 요소를 사전 감지하고 사고를 미연에 방지할 수 있는 안전 서비스를 가지고 있습니다. 장애물 탐지 기능과 AR Navigation이라는 특징이 기존의 Navigation과의 차별점입니다.
최근 뉴스 등에서 이슈가 되고 있는 전동 킥보드의 자전거 도로 주행 관련 법 개정에 이 지속적으로 이루어지고 있습니다. 이는 전동 킥보드를 규정에 벗어난 이용하고 있는 사용자들로 인해 많은 시민들의 안전에 위협을 주고 있고 있으며, 사용자 또한 다양한 안전사고에 노출되어 있는 것이 현실입니다. 이러한 사회적 문제해결에 AI와 IoT 기술을 통해 기여를 하고자 합니다.
더 자세한 이야기는 아래 Notion 에 소개해두었습니다 😆
피드백과 질문은 언제나 환영입니다! 👉🏻 노션 "Feedback & Comment" Section에 달아주시면 됩니다 👀🔥
Object tracking implemented with YOLOv4, DeepSort, and TensorFlow. YOLOv4 is a state of the art algorithm that uses deep convolutional neural networks to perform object detections. We can take the output of YOLOv4 feed these object detections into Deep SORT (Simple Online and Realtime Tracking with a Deep Association Metric) in order to create a highly accurate object tracker.
To get started, install the proper dependencies either via Anaconda or Pip. I recommend Anaconda route for people using a GPU as it configures CUDA toolkit version for you.
# Tensorflow CPU
conda env create -f conda-cpu.yml
conda activate yolov4-cpu
# Tensorflow GPU
conda env create -f conda-gpu.yml
conda activate yolov4-gpu
(TensorFlow 2 packages require a pip version >19.0.)
# TensorFlow CPU
pip install -r requirements.txt
# TensorFlow GPU
pip install -r requirements-gpu.txt
To implement the object tracking using YOLOv4, first we convert the .weights into the corresponding TensorFlow model which will be saved to a checkpoints folder. Then all we need to do is run the object_tracker.py script to run our object tracker with YOLOv4, DeepSort and TensorFlow.
# Convert darknet weights to tensorflow model
python save_model.py --model yolov4
# Run yolov4 deep sort object tracker on video
python object_tracker.py --video ./data/video/test.mp4 --output ./outputs/demo.avi --model yolov4
# Run yolov4 deep sort object tracker on webcam (set video flag to 0)
python object_tracker.py --video 0 --output ./outputs/webcam.avi --model yolov4
The following commands will allow you to run yolov4-tiny model. Yolov4-tiny allows you to obtain a higher speed (FPS) for the tracker at a slight cost to accuracy. Make sure that you have downloaded the tiny weights file and added it to the 'data' folder in order for commands to work!
# save yolov4-tiny model
python save_model.py --weights ./data/yolov4-tiny.weights --output ./checkpoints/yolov4-tiny-416 --model yolov4 --tiny
# Run yolov4-tiny object tracker
python object_tracker.py --weights ./checkpoints/yolov4-tiny-416 --model yolov4 --video ./data/video/test.mp4 --output ./outputs/tiny.avi --tiny
Create a firebase-key.json
file.
{
"API_KEY": "firebase-api-key",
"TOKEN": "device-token"
}
Add a firebase-adminsdk.json
file in the top folder.
Huge shoutout goes to hunglc007 and nwojke for creating the backbones of this repository: