Skip to content

XiangbingJi/Stanford-cs230-final-project

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

46 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Stanford-cs230-final-project

This project uses a semantic segmentation approach to tackle the freeway lane detection problem.

Model

Our model is modified from a widely used semantic segmentation model called Segnet: https://arxiv.org/abs/1511.00561. Our implementation of Segnet is based on an existing keras implementation (https://github.com/divamgupta/image-segmentation-keras). The keras code loads pre-trained VGG-16 weights for Segnet's encoder.

Baseline model

We compare our model with Lanenet (https://arxiv.org/pdf/1802.05591v1.pdf), a state-of-the-art lane detection model that won 4th in TuSimple Lane Detection Challenge. We use an exisitng Tensorflow implementation of LaneNet (https://github.com/MaybeShewill-CV/lanenet-lane-detection). The repo contains pre-trained weights of LaneNet.

Dataset

We use the TuSimple dataset: https://github.com/TuSimple/tusimple-benchmark, which contains 2858 images. And we split the data into train (80%), dev (10%), test (10%).

pre-processing

use ./tools/process to pre-process our data. The script takes in the label of TuSimple Dataset (in Json format) and generates a binary image for the semantic segmentation. Usage as follows:

python tools/process.py --home_dir YOUR_HOME_DIR_CONTAIN_DATA

The home_dir is where you store all the clips of your dataset. The script saves its outputs in two separate folders. home_dir/original_image saves all original images, where home_dir/label_image saves all binary label images. The image names in original_image folder and label_image folder are identical. For example, an image in path home_dir/clips/0313-1/60/20.jpg will generate two images named clips_0313-1_60.png in both home_dir/original_image and home_dir/label_image.

post-processing

To start post-processing, you need to be read three text files: train.txt, val.txt, test.txt, where each one of them contain file names for train, dev and test set respectively. Run

python tools/convert_binary_to_label.py --home_dir YOUR_HOME_DIR

It will generate 3 jsons train_pred.txt, val_pred.txt and test_pred.txt. These txts contain the json labels converted from the binary predict images from our semantic segmentation model.

evaluate

Run python tools/evaluate.py YOUR_PRED_JSON_TXT GROUND_TRUTH_JSON_TXT

DEMO

We randomly downloaded some freeway videos online (outside of our training/dev/text set) and ran our model on it.

You can find complete video here: https://youtu.be/py-JNsGZ6_g

We will start from the baseline mode and build our lane detection model.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published