feat: initial HSAP platform
Huaxu Sentinel Active Safety Platform with embedded algorithm code, Docker Compose setup, and vendored dataset scaffolds for clone-and-run. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
45
algorithms/lane_ufld/code/UFLD/configs/culane.py
Executable file
45
algorithms/lane_ufld/code/UFLD/configs/culane.py
Executable file
@@ -0,0 +1,45 @@
|
||||
# DATA
|
||||
dataset = 'CULane'
|
||||
data_root = 'C:\\data\\Tusimple\\test_set'
|
||||
|
||||
# TRAIN
|
||||
epoch = 50
|
||||
batch_size = 32
|
||||
optimizer = 'SGD' #['SGD','Adam']
|
||||
learning_rate = 0.1
|
||||
weight_decay = 1e-4
|
||||
momentum = 0.9
|
||||
|
||||
scheduler = 'multi' #['multi', 'cos']
|
||||
steps = [25,38]
|
||||
gamma = 0.1
|
||||
warmup = 'linear'
|
||||
warmup_iters = 695
|
||||
|
||||
# NETWORK
|
||||
use_aux = True
|
||||
griding_num = 200
|
||||
backbone = '18'
|
||||
|
||||
# LOSS
|
||||
sim_loss_w = 0.0
|
||||
shp_loss_w = 0.0
|
||||
|
||||
# EXP
|
||||
note = ''
|
||||
|
||||
log_path = None
|
||||
|
||||
# FINETUNE or RESUME MODEL PATH
|
||||
finetune = None
|
||||
resume = None
|
||||
|
||||
# TEST
|
||||
test_model = './model/culane_18.pth'
|
||||
test_work_dir = './tmp'
|
||||
|
||||
num_lanes = 4
|
||||
|
||||
|
||||
|
||||
|
||||
41
algorithms/lane_ufld/code/UFLD/configs/mufld_lane_culane.py
Normal file
41
algorithms/lane_ufld/code/UFLD/configs/mufld_lane_culane.py
Normal file
@@ -0,0 +1,41 @@
|
||||
# MUFLD lane pack in CULane-style layout for UFLD training.
|
||||
# Data root layout:
|
||||
# <data_root>/images/...
|
||||
# <data_root>/annotations/segmentation_masks/...
|
||||
# <data_root>/list/train_gt.txt (two columns: training split only)
|
||||
# <data_root>/list/val_gt.txt (validation pairs, optional custom loop)
|
||||
# <data_root>/list/test.txt (held-out test images, one per line)
|
||||
|
||||
dataset = 'CULane'
|
||||
data_root = '/home/chengfanglu/DATA/lane0_copy/DATASET'
|
||||
|
||||
epoch = 50
|
||||
batch_size = 16
|
||||
optimizer = 'SGD'
|
||||
learning_rate = 0.1
|
||||
weight_decay = 1e-4
|
||||
momentum = 0.9
|
||||
|
||||
scheduler = 'multi'
|
||||
steps = [25, 38]
|
||||
gamma = 0.1
|
||||
warmup = 'linear'
|
||||
warmup_iters = 695
|
||||
|
||||
use_aux = True
|
||||
griding_num = 200
|
||||
backbone = '18'
|
||||
|
||||
sim_loss_w = 0.0
|
||||
shp_loss_w = 0.0
|
||||
|
||||
note = 'lane_training_pack_v1'
|
||||
log_path = './log'
|
||||
|
||||
finetune = None
|
||||
resume = None
|
||||
|
||||
test_model = './model/culane_18.pth'
|
||||
test_work_dir = './tmp'
|
||||
|
||||
num_lanes = 4
|
||||
@@ -0,0 +1,40 @@
|
||||
# CPU 单机训练示例:batch 需显著减小;学习率可按 batch 相对 16 做线性缩放(可选)。
|
||||
#
|
||||
# layout 同 configs/mufld_lane_culane.py;
|
||||
# lane_light 环境与安装说明见 TRAIN_ENV_CPU.md
|
||||
|
||||
dataset = "CULane"
|
||||
data_root = "/home/chengfanglu/DATA/lane0_copy/DATASET"
|
||||
|
||||
epoch = 50
|
||||
batch_size = 4
|
||||
optimizer = "SGD"
|
||||
# 若在 CPU 上不收敛可先试更小 lr,例如 batch=4 时约 0.1 * (4 / 16) = 0.025
|
||||
learning_rate = 0.025
|
||||
weight_decay = 1e-4
|
||||
momentum = 0.9
|
||||
|
||||
scheduler = "multi"
|
||||
steps = [25, 38]
|
||||
gamma = 0.1
|
||||
warmup = "linear"
|
||||
# warmup 与原配置按 batch 比例对齐(原为 695 @ bs=16)
|
||||
warmup_iters = 174
|
||||
|
||||
use_aux = True
|
||||
griding_num = 200
|
||||
backbone = "18"
|
||||
|
||||
sim_loss_w = 0.0
|
||||
shp_loss_w = 0.0
|
||||
|
||||
note = "lane_training_pack_cpu_bs4"
|
||||
log_path = None
|
||||
|
||||
finetune = None
|
||||
resume = None
|
||||
|
||||
test_model = "./model/culane_18.pth"
|
||||
test_work_dir = "./tmp"
|
||||
|
||||
num_lanes = 4
|
||||
@@ -0,0 +1,54 @@
|
||||
# Multi-pack training — control merged packs in this config.
|
||||
# data_root = parent of DATASET / DATASET-AddBy-* / DATASET-A (alias).
|
||||
|
||||
from pathlib import Path
|
||||
|
||||
dataset = 'CULane'
|
||||
data_root = str(Path(__file__).resolve().parents[5] / "datasets" / "lane")
|
||||
|
||||
# Pack names: directory under data_root, or alias from datasets_registry.json
|
||||
train_packs = [
|
||||
'lane_v1',
|
||||
]
|
||||
|
||||
# Default list inside each pack (relative to pack root)
|
||||
pack_list_name = 'list/train_gt.txt'
|
||||
|
||||
# Cached merged list (auto filename from pack names if merged_train_list is None)
|
||||
merged_list_dir = 'lists_merged'
|
||||
merged_train_list = None # e.g. 'lists_merged/train_all_v2.txt'
|
||||
remerge_train_list = False # True to rebuild merged list every run
|
||||
|
||||
# Single-pack fallback (ignored when train_packs is set)
|
||||
train_list = 'list/train_gt.txt'
|
||||
|
||||
epoch = 50
|
||||
batch_size = 16
|
||||
optimizer = 'SGD'
|
||||
learning_rate = 0.1
|
||||
weight_decay = 1e-4
|
||||
momentum = 0.9
|
||||
|
||||
scheduler = 'multi'
|
||||
steps = [25, 38]
|
||||
gamma = 0.1
|
||||
warmup = 'linear'
|
||||
warmup_iters = 695
|
||||
|
||||
use_aux = True
|
||||
griding_num = 200
|
||||
backbone = '18'
|
||||
|
||||
sim_loss_w = 0.0
|
||||
shp_loss_w = 0.0
|
||||
|
||||
note = 'multi_pack_v2'
|
||||
log_path = './log'
|
||||
|
||||
finetune = None
|
||||
resume = None
|
||||
|
||||
test_model = './model/culane_18.pth'
|
||||
test_work_dir = './tmp'
|
||||
|
||||
num_lanes = 4
|
||||
35
algorithms/lane_ufld/code/UFLD/configs/mufld_lane_smoke.py
Normal file
35
algorithms/lane_ufld/code/UFLD/configs/mufld_lane_smoke.py
Normal file
@@ -0,0 +1,35 @@
|
||||
# Smoke test: few samples, 1 epoch, small batch (CPU or GPU).
|
||||
dataset = "CULane"
|
||||
data_root = "/home/chengfanglu/DATA/lane0_copy/DATASET"
|
||||
train_list = "list/train_gt_smoke.txt"
|
||||
|
||||
epoch = 1
|
||||
batch_size = 2
|
||||
optimizer = "SGD"
|
||||
learning_rate = 0.025
|
||||
weight_decay = 1e-4
|
||||
momentum = 0.9
|
||||
|
||||
scheduler = "multi"
|
||||
steps = [1]
|
||||
gamma = 0.1
|
||||
warmup = "linear"
|
||||
warmup_iters = 10
|
||||
|
||||
use_aux = True
|
||||
griding_num = 200
|
||||
backbone = "18"
|
||||
|
||||
sim_loss_w = 0.0
|
||||
shp_loss_w = 0.0
|
||||
|
||||
note = "dataset_smoke_test"
|
||||
log_path = "./log"
|
||||
|
||||
finetune = None
|
||||
resume = None
|
||||
|
||||
test_model = "./model/culane_18.pth"
|
||||
test_work_dir = "./tmp"
|
||||
|
||||
num_lanes = 4
|
||||
41
algorithms/lane_ufld/code/UFLD/configs/tusimple_res18.py
Executable file
41
algorithms/lane_ufld/code/UFLD/configs/tusimple_res18.py
Executable file
@@ -0,0 +1,41 @@
|
||||
# DATA
|
||||
dataset = 'Tusimple'
|
||||
data_root = '/mnt/HDisk2T/liuxy51/ganxian/data_luojk'
|
||||
|
||||
# TRAIN
|
||||
epoch = 500 # 10
|
||||
batch_size = 32 # 4
|
||||
optimizer = 'Adam' #['SGD','Adam']
|
||||
learning_rate = 1e-5
|
||||
weight_decay = 1e-4
|
||||
momentum = 0.9
|
||||
scheduler = 'cos' #['multi', 'cos']
|
||||
|
||||
# steps = [50,75]
|
||||
gamma = 0.1
|
||||
warmup = 'linear'
|
||||
warmup_iters = 100
|
||||
|
||||
# NETWORK
|
||||
backbone = '18'
|
||||
griding_num = 100
|
||||
use_aux = False
|
||||
|
||||
# LOSS
|
||||
sim_loss_w = 1.0
|
||||
shp_loss_w = 0.0
|
||||
|
||||
# EXP
|
||||
note = '_ufld_2lanes_res18'
|
||||
|
||||
log_path = './log'
|
||||
|
||||
# FINETUNE or RESUME MODEL PATH
|
||||
finetune = None
|
||||
resume = None
|
||||
|
||||
# TESTNone
|
||||
test_model = './model/lane_m599_all.pth'
|
||||
test_work_dir = './tmp'
|
||||
|
||||
num_lanes = 2
|
||||
41
algorithms/lane_ufld/code/UFLD/configs/tusimple_res18_4lane_v1.py
Executable file
41
algorithms/lane_ufld/code/UFLD/configs/tusimple_res18_4lane_v1.py
Executable file
@@ -0,0 +1,41 @@
|
||||
# DATA
|
||||
dataset = 'Tusimple'
|
||||
data_root = '/mnt/HDisk2T/liuxy51/ganxian/train_2025_03_13_mufld' # 针对clrnet数据集8.1w帧多车道数据
|
||||
|
||||
# TRAIN
|
||||
epoch = 500 # 10
|
||||
batch_size = 32 # 4
|
||||
optimizer = 'Adam' #['SGD','Adam']
|
||||
learning_rate = 1e-5
|
||||
weight_decay = 1e-4
|
||||
momentum = 0.9
|
||||
scheduler = 'cos' #['multi', 'cos']
|
||||
|
||||
# steps = [50,75]
|
||||
gamma = 0.1
|
||||
warmup = 'linear'
|
||||
warmup_iters = 100
|
||||
|
||||
# NETWORK
|
||||
backbone = '18'
|
||||
griding_num = 100
|
||||
use_aux = False
|
||||
|
||||
# LOSS
|
||||
sim_loss_w = 1.0
|
||||
shp_loss_w = 0.0
|
||||
|
||||
# EXP
|
||||
note = '_ufld_2lanes_res18'
|
||||
|
||||
log_path = './log'
|
||||
|
||||
# FINETUNE or RESUME MODEL PATH
|
||||
finetune = None
|
||||
resume = None
|
||||
|
||||
# TESTNone
|
||||
test_model = './model/lane_m599_all.pth'
|
||||
test_work_dir = './tmp'
|
||||
|
||||
num_lanes = 4
|
||||
41
algorithms/lane_ufld/code/UFLD/configs/tusimple_res18_nbg.py
Executable file
41
algorithms/lane_ufld/code/UFLD/configs/tusimple_res18_nbg.py
Executable file
@@ -0,0 +1,41 @@
|
||||
# DATA
|
||||
dataset = 'Tusimple'
|
||||
data_root = '/mnt/HDisk2T/liuxy51/ganxian/train_2024_03_06'
|
||||
|
||||
# TRAIN
|
||||
epoch = 500 # 10
|
||||
batch_size = 32 # 4
|
||||
optimizer = 'Adam' #['SGD','Adam']
|
||||
learning_rate = 1e-5
|
||||
weight_decay = 1e-4
|
||||
momentum = 0.9
|
||||
scheduler = 'cos' #['multi', 'cos']
|
||||
|
||||
# steps = [50,75]
|
||||
gamma = 0.1
|
||||
warmup = 'linear'
|
||||
warmup_iters = 100
|
||||
|
||||
# NETWORK
|
||||
backbone = '18'
|
||||
griding_num = 100
|
||||
use_aux = False
|
||||
|
||||
# LOSS
|
||||
sim_loss_w = 1.0
|
||||
shp_loss_w = 0.0
|
||||
|
||||
# EXP
|
||||
note = '_ufld_2lanes_res18'
|
||||
|
||||
log_path = './log'
|
||||
|
||||
# FINETUNE or RESUME MODEL PATH
|
||||
finetune = None
|
||||
resume = '/mnt/HDisk2T/liuxy51/ganxian/UFLD/log/20240607_162111_lr_1e-05_b_32_ufld_2lanes_res18/ep304.pth' # None
|
||||
|
||||
# TESTNone
|
||||
test_model = './model/lane_m599_all.pth'
|
||||
test_work_dir = './tmp'
|
||||
|
||||
num_lanes = 2
|
||||
41
algorithms/lane_ufld/code/UFLD/configs/tusimple_res18_nbg2.py
Executable file
41
algorithms/lane_ufld/code/UFLD/configs/tusimple_res18_nbg2.py
Executable file
@@ -0,0 +1,41 @@
|
||||
# DATA
|
||||
dataset = 'Tusimple'
|
||||
data_root = '/mnt/HDisk2T/liuxy51/ganxian/train_2024_03_06_1'
|
||||
|
||||
# TRAIN
|
||||
epoch = 500 # 10
|
||||
batch_size = 32 # 4
|
||||
optimizer = 'Adam' #['SGD','Adam']
|
||||
learning_rate = 1e-5
|
||||
weight_decay = 1e-4
|
||||
momentum = 0.9
|
||||
scheduler = 'cos' #['multi', 'cos']
|
||||
|
||||
# steps = [50,75]
|
||||
gamma = 0.1
|
||||
warmup = 'linear'
|
||||
warmup_iters = 100
|
||||
|
||||
# NETWORK
|
||||
backbone = '18'
|
||||
griding_num = 100
|
||||
use_aux = False
|
||||
|
||||
# LOSS
|
||||
sim_loss_w = 1.0
|
||||
shp_loss_w = 0.0
|
||||
|
||||
# EXP
|
||||
note = '_ufld_2lanes_res18'
|
||||
|
||||
log_path = './log'
|
||||
|
||||
# FINETUNE or RESUME MODEL PATH
|
||||
finetune = None
|
||||
resume = None
|
||||
|
||||
# TESTNone
|
||||
test_model = './model/lane_m599_all.pth'
|
||||
test_work_dir = './tmp'
|
||||
|
||||
num_lanes = 2
|
||||
41
algorithms/lane_ufld/code/UFLD/configs/tusimple_res18_nbg3.py
Executable file
41
algorithms/lane_ufld/code/UFLD/configs/tusimple_res18_nbg3.py
Executable file
@@ -0,0 +1,41 @@
|
||||
# DATA
|
||||
dataset = 'Tusimple'
|
||||
data_root = '/mnt/HDisk2T/liuxy51/ganxian/train_2024_03_06_2'
|
||||
|
||||
# TRAIN
|
||||
epoch = 500 # 10
|
||||
batch_size = 32 # 4
|
||||
optimizer = 'Adam' #['SGD','Adam']
|
||||
learning_rate = 1e-5
|
||||
weight_decay = 1e-4
|
||||
momentum = 0.9
|
||||
scheduler = 'cos' #['multi', 'cos']
|
||||
|
||||
# steps = [50,75]
|
||||
gamma = 0.1
|
||||
warmup = 'linear'
|
||||
warmup_iters = 100
|
||||
|
||||
# NETWORK
|
||||
backbone = '18'
|
||||
griding_num = 100
|
||||
use_aux = False
|
||||
|
||||
# LOSS
|
||||
sim_loss_w = 1.0
|
||||
shp_loss_w = 0.0
|
||||
|
||||
# EXP
|
||||
note = '_ufld_2lanes_res18'
|
||||
|
||||
log_path = './log'
|
||||
|
||||
# FINETUNE or RESUME MODEL PATH
|
||||
finetune = None
|
||||
resume = None
|
||||
|
||||
# TESTNone
|
||||
test_model = './model/lane_m599_all.pth'
|
||||
test_work_dir = './tmp'
|
||||
|
||||
num_lanes = 2
|
||||
44
algorithms/lane_ufld/code/UFLD/configs/tusimple_res34.py
Executable file
44
algorithms/lane_ufld/code/UFLD/configs/tusimple_res34.py
Executable file
@@ -0,0 +1,44 @@
|
||||
# DATA
|
||||
dataset = 'Tusimple'
|
||||
# data_root = 'C:\\data\\Tusimple\\test_set'
|
||||
# data_root = 'C:\\data\\anno\\324lane'
|
||||
# data_root = 'C:\\data\\Tusimple\\train_set'
|
||||
data_root = '/data/panh28/yk_syj/data/train_0306'
|
||||
# TRAIN
|
||||
epoch = 600
|
||||
batch_size = 64
|
||||
optimizer = 'Adam' #['SGD','Adam']
|
||||
# learning_rate = 0.1
|
||||
learning_rate = 1e-5
|
||||
weight_decay = 1e-4
|
||||
momentum = 0.9
|
||||
|
||||
scheduler = 'cos' #['multi', 'cos']
|
||||
# steps = [50,75]
|
||||
gamma = 0.1
|
||||
warmup = 'linear'
|
||||
warmup_iters = 100
|
||||
|
||||
# NETWORK
|
||||
backbone = '34'
|
||||
griding_num = 100
|
||||
use_aux = False
|
||||
|
||||
# LOSS
|
||||
sim_loss_w = 1.0
|
||||
shp_loss_w = 0.0
|
||||
|
||||
# EXP
|
||||
note = 'lane_res34_2ch_syj_0906_minilearn'
|
||||
|
||||
log_path = './log'
|
||||
|
||||
# FINETUNE or RESUME MODEL PATH
|
||||
finetune = None
|
||||
resume = "/data/panh28/yk_syj/code/UFLD/log/20230906_161808_lr_1e-04_b_64lane_res34_2ch_syj_0906/ep068.pth"
|
||||
# TESTNone
|
||||
test_model = './model/lane_m599_all.pth'
|
||||
# test_model = './model/tusimple_18.pth'
|
||||
test_work_dir = './tmp'
|
||||
|
||||
num_lanes = 2
|
||||
@@ -0,0 +1,6 @@
|
||||
# UFLD + VoVNet-19-slim-eSE backbone (train from scratch; no torchvision weights).
|
||||
|
||||
from configs.tusimple_res18_4lane_v1 import *
|
||||
|
||||
backbone = 'vov19slim'
|
||||
note = '_ufld_4lanes_vov19slim'
|
||||
Reference in New Issue
Block a user