1.解压项目代码,项目目录如下
lanenet-lane-detection-master
├─ .idea
│ └─ vcs.xml
├─ config
│ └─ tusimple_lanenet.yaml
├─ data
│ ├─ source_image
│ │ ├─ accuracy.png
│ │ ├─ binary_seg_loss.png
│ │ ├─ instance_seg_loss.png
│ │ ├─ lanenet_batch_test.gif
│ │ ├─ lanenet_binary_seg.png
│ │ ├─ lanenet_embedding.png
│ │ ├─ lanenet_instance_seg.png
│ │ ├─ lanenet_mask_result.png
│ │ ├─ network_architecture.png
│ │ ├─ qr.jpg
│ │ └─ total_loss.png
│ ├─ training_data_example
│ │ ├─ gt_binary_image
│ │ │ ├─ 0000.png
│ │ │ ├─ 0001.png
│ │ │ ├─ 0002.png
│ │ │ ├─ 0003.png
│ │ │ ├─ 0004.png
│ │ │ └─ 0005.png
│ │ ├─ gt_instance_image
│ │ │ ├─ 0000.png
│ │ │ ├─ 0001.png
│ │ │ ├─ 0002.png
│ │ │ ├─ 0003.png
│ │ │ ├─ 0004.png
│ │ │ └─ 0005.png
│ │ ├─ image
│ │ │ ├─ 0000.png
│ │ │ ├─ 0001.png
│ │ │ ├─ 0002.png
│ │ │ ├─ 0003.png
│ │ │ ├─ 0004.png
│ │ │ └─ 0005.png
│ │ ├─ train.txt
│ │ └─ val.txt
│ ├─ tusimple_ipm_remap.yml
│ └─ tusimple_test_image
│ ├─ 0.jpg
│ ├─ 1.jpg
│ ├─ 2.jpg
│ └─ 3.jpg
├─ data_provider
│ ├─ lanenet_data_feed_pipline.py
│ └─ tf_io_pipline_tools.py
├─ lanenet_model
│ ├─ lanenet.py
│ ├─ lanenet_back_end.py
│ ├─ lanenet_discriminative_loss.py
│ ├─ lanenet_front_end.py
│ ├─ lanenet_postprocess.py
│ └─ __init__.py
├─ LICENSE
├─ local_utils
│ ├─ config_utils
│ │ ├─ parse_config_utils.py
│ │ └─ __init__.py
│ └─ log_util
│ ├─ init_logger.py
│ └─ __init__.py
├─ mnn_project
│ ├─ config.ini
│ ├─ config_parser.cpp
│ ├─ config_parser.h
│ ├─ convert_lanenet_model_into_mnn_model.sh
│ ├─ dbscan.hpp
│ ├─ freeze_lanenet_model.py
│ ├─ kdtree.cpp
│ ├─ kdtree.h
│ ├─ lanenet_model.cpp
│ ├─ lanenet_model.h
│ └─ __init__.py
├─ README.md
├─ requirements.txt
├─ semantic_segmentation_zoo
│ ├─ bisenet_v2.py
│ ├─ cnn_basenet.py
│ ├─ vgg16_based_fcn.py
│ └─ __init__.py
├─ tools
│ ├─ evaluate_lanenet_on_tusimple.py
│ ├─ evaluate_model_utils.py
│ ├─ generate_tusimple_dataset.py
│ ├─ make_tusimple_tfrecords.py
│ ├─ test_lanenet.py
│ └─ train_lanenet_tusimple.py
├─ trainner
│ ├─ tusimple_lanenet_multi_gpu_trainner.py
│ ├─ tusimple_lanenet_single_gpu_trainner.py
│ └─ __init__.py
└─ _config.yml
tuSimple/
├── clips
│ ├── 0313-1
│ ├── 0313-2
│ ├── 0530
│ ├── 0531
│ └── 0601
├── label_data_0313.json
├── label_data_0531.json
├── label_data_0601.json
├── readme.md
└── test_tasks_0627.json
安装anaconda(安装过程记得添加环境变量) https://www.anaconda.com/download/
安装pycharm,一个非常好用的python开发环境。(社区版) https://www.jetbrains.com/pycharm/download/download-thanks.html?platform=windows&code=PCC
CUDA下载网址(v10.0) https://developer.nvidia.com/compute/cuda/10.0/Prod/local_installers/cuda_10.0.130_411.31_win10
双击安装先会安装一个安装程序。安装完成后会自动添加环境变量。
cuDNN下载网址(v7.4.2) https://pan.baidu.com/s/14Oisbo9cZpP7INQ6T-3vwA 提取码:z4pl
cuDNN操作
将cudnn目录下的文件移入到对应的cuda文件夹中(C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0)
conda create -n py36 python==3.6
conda activate py36
然后配置好pycharm项目的python解释器。
pip install -r requirements.txt -i http://pypi.douban.com/simple/ --trusted-host=pypi.douban.com/simple
#脚本位于tools目录下
python generate_tusimple_dataset.py --src_dir=YOURPATH\data\tuSimple
几分钟后,在tuSimple目录下自动生成了training和testing两个目录,如下所示:
tuSimple/
|
├──training/
| ├── gt_binary_image
| ├── gt_image
| ├── gt_instance_image
| ├── label_data_0313.json
| ├── label_data_0531.json
| ├── label_data_0601.json
| └── train.txt
└──testing/
└── test_tasks_0627.json
train.txt: 用来训练的图片文件的文件名列表 (训练集)2186
val.txt: 用来验证的图片文件的文件名列表 (验证集)720
test.txt 用来测试的图片文件的文件名列表 (测试集)720
该脚本仅生成了train.txt,我们可以手动分割一下train set和val set,也就是剪切train.txt中的一部分到一个新建的val.txt和test.txt文件中。
路径修改
DATASET:
DATA_DIR: 'YOURPATH\data\tuSimple\training'
IMAGE_TYPE: 'rgb' # choice rgb or rgba
NUM_CLASSES: 2
TEST_FILE_LIST: 'YOURPATH\data\tuSimple\training\test.txt'
TRAIN_FILE_LIST: 'YOURPATH\data\tuSimple\training\train.txt'
VAL_FILE_LIST: 'YOURPATH\data\tuSimple\training\val.txt'
根据显卡配置修改batchsize(8)
TRAIN:
MODEL_SAVE_DIR: 'model/tusimple/'
TBOARD_SAVE_DIR: 'tboard/tusimple/'
MODEL_PARAMS_CONFIG_FILE_NAME: "model_train_config.json"
RESTORE_FROM_SNAPSHOT:
ENABLE: False
SNAPSHOT_PATH: ''
SNAPSHOT_EPOCH: 8
BATCH_SIZE: 8
首先编辑make_tusimple_tfrecords.py文件,插入
#脚本位于tools目录下
python make_tusimple_tfrecords.py --dataset_dir YOURPATH\data\tuSimple\training --tfrecords_dir YOURPATH\data\tuSimple\training\tfrecords
等待几分钟,脚本会在项目的data/training/tfrecords目录下生成相应的tfrecord文件
#脚本位于tools目录下
python train_lanenet_tusimple.py
或
python train_lanenet_tusimple.py --dataset_dir YOURPATH\data\tuSimple\training --multi_gpus False
tensorboar查看训练过程
cd tboard/tusimple/bisenetv2_lanenet
tensorboard --logdir=.
tensorboard查看模型在验证集上的 总损失(val_cost)、分割损失(val_binary_seg_loss)、嵌入损失(val_instance_seg_loss)以及分割精度(val_accuracy) 变化曲线