Skip to content

Visual-based Speed sign Targeting and Recognition

Notifications You must be signed in to change notification settings

jchrismer/V-STaR

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

V-STaR

Visual-based Speed sign Targeting and Recognition

alt tag

Overview

V-STaR is a C++ program which automatically detects and labels US speed limit signs from video.

Motivation

V-STaR was created to aid in driver awareness by using a raspberry pi 3 to automatically recognizing and cataloguing speed limit signs, preventing the driver from missing or forgeting local speeds. Currently its focus is on autonomous mining of speed limit signs images to be used for further refinement.

How does it work?

  • Videos are downloaded from a user curated document labeled "URL_list.txt"
  • "URL_list.txt" is just a list of youtube URLs which are preselected by the user for mining/evaluation
  • Progress is logged in "Progress.txt" which allows users to end the current session and resume on the last frame
  • OpenCV loads images from a camera or video file
  • Rectangles of similar size to a speed sign are sough usting a Fast Symmetric Radial Transform (FRST)
  • Detected rectangles are sent to a trained LBP classifier to quickly determine if the object is a Speed sign
  • Any object recognized by the classifier is sent to a Convolutional Neural Network (CNN) for detection
    • The CNN has 11 outputs corresponding to 25,30, ... 75
    • If the CNN's output exceeds a minimum convidence value the object is considered a speed limit sign and it's value is drawn on the screen
  • V-STaR also has a Optical Character Recognition (OCR) based detection mode
    • This mode attempts to read the sign by segmenting text out from the classified object and passing it to a tesseract OCR
    • A minimum edit distance is used to determine how close the recognized text is to "SPEED" and "LIMIT"
    • Text that is within a minium edit distance is considered to be that of a sign it's value drawn on the screen
    • Although the OCR is significantly less accurate than the CNN, when combined with FRST, OCR mode can read any type of rectangular road sign, allowing for autonomous imaging databases to be built for futher trainig and refinement.

Requirements

  • Only tested on Linux (sys commands may not work on other operating systems)
  • youtube-dl
  • OpenCV >= 3.1.0
  • Keras >= 1.0.8
  • Theano >= 0.8.2
  • Tesseract >= 3.05
  • Python >= 2.7.6 (Currently incompatible with python 3.0 or above)

Usage

./vid_miner [destination]

  • destination is full file path to where sign images are to be saved at. Must end with "/" , e.g: "~/Video/"

Installation

  • cd Speed_Sign_Detector
  • mkdir build
  • cd build
  • cmake ..
  • make

Want to learn more?

This repo is part of a project which can be found at: http://aerialarithmetic.blogspot.com/. Look under any post with "Raspberry Pi Speed Sign Detector" in the title to learn more about theory driving the project, future plans, issues and areas for improvments.

About

Visual-based Speed sign Targeting and Recognition

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages