This is project for Spartan SW cooperation in Soongsil University
Our topic starts to set a camera on the front of the train to detect tracks and obstacles. The system is designed to minimize casualties and property damage by sending a signal to the engineer when the detected obstacle is on the track and there is a possibility of serious casualties or equipment damage in the event of a collision. For this purpose, the image of the track and the masked data were studied to create a Segmentation Model. Also we selected Object Detection Deep Learning Model to recognize obstacle.
The data used for learning was prepared with track and train models and taken in a controlled environment. Our ultimate goal is to detect and signal the driver, even when any obstacles are detected, but because this project was designed for demonstration rather than for actual commercialization, we planned to learn only a few pre-selected obstacles and demonstrate them in a controlled environment. And because the number of used data is low, we've use Augmentation it in a variety of ways.
- Bronze Prize on Software Contest In Soongsil Univercity 2019.11.07
- Korean Software Registeration - Railway Obstacle Detection System(RODS) / Railroad Tracker 2019.11.30
- Patent Registeration - Railroad Obstacle Detection System(RODS) 2019.11.30
- Railway Segmentation model : U-net
- Obstacle Detection model : Faster-RCNN-Inception-V2
We used some of EdjeElectronics's code to design the model. The original author's Githeub code address is as follows. https://github.com/EdjeElectronics/TensorFlow-Object-Detection-API-Tutorial-Train-Multiple-Objects-Windows-10
- Setting for training
- Training model(You can skip this to download pretrained models)
- Run Project
Time Estimated: 8 hours
By: Kim Minseok, Department of Software in Soongsil University / Lee Juhee, Department of Software in Soongsil University
Our project based on anaconda, tensorflow-gpu, jupyter notebook and etc. So you have to install these first. Also, I made this project on CUDA 10.0 and cuDNN 7.3 environment. If you install another version, I don't warrant about result. I recommand to activate this code on virtual anaconda setting.
- Clone our git first https://github.com/tamasino52/Railroad_and_Obstacle_detection
- Clone https://github.com/tensorflow/models git
- Download trained Unet model from (Put file in models/research/object_detection/models ) https://drive.google.com/file/d/18Y_EbJV9s4eJmFDg69uH46xgynHb9vNl/view?usp=sharing
- Move our all file to 'models/research/object_detection'
- Download faster_rcnn_inception_v2_coco_2018_01_28 model from https://github.com/tensorflow/models/blob/master/research/object_detection/g3doc/detection_model_zoo.md
- Move model file to 'faster_rcnn_inception_v2_coco_2018_01_28' folder in 'models/research/object_detection'
- Run 'RailwayTrackingModel_Training.ipynb' file to generate model
- Run 'ObstacleDetectionModel_Training.ipynb' file to generate seccond model
- Run 'Run.py' file(for video and image) or 'Run.ipynb' file(only for image) to activate project 9-1. If you want to use captured image, Run 'Run_capture.py'. After you run, Click and Drag points that you want to capture. Then check your valid yellow box, press 'esc' to activate project.
- If you are looking at this repo because you are interested in predicting railway, please refer to it here because a better version has been released than here. This repository only predicted with computer vision technology. But this is much faster and more accurate.