Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

deleted: lanenet/model/BiseNet.py #2

Open
wants to merge 4 commits into
base: main
Choose a base branch
from
Open
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
update
mengpengfei committed May 8, 2021
commit 533655922fb91a09ca6880b2ba4262feb4790625
21 changes: 20 additions & 1 deletion lanenet/config.py
Original file line number Diff line number Diff line change
@@ -1,11 +1,30 @@
# coding: utf-8
# number of unique pixel values
n_labels=6
#embeding特征数
no_of_instances=6
#分割目标的种类数 只分割车道线值为2
num_classes=2
#device_ids 中第一个gpu号
gpu_no='cuda:0'
# 使用的gpu
device_ids = [0, 1,2,3,4,5,6]
lr=0.001
epochs=2000
bs=16
show_interval=30
save_interval=3
# 1-train,2-val
is_training=1

# 模型保存位置
save_path='./checkpoints'
#loss权重设置详见compute_loss
w1=0.25
#loss权重设置详见compute_loss
w2=0.25
#loss权重设置详见compute_loss
w3=0.25
#loss权重设置详见compute_loss
w4=0.25
train_dataset_file = '/workspace/all/index/train1'
val_dataset_file = '/workspace/all/index/val1'
18 changes: 13 additions & 5 deletions lanenet/online_test_video.py
Original file line number Diff line number Diff line change
@@ -8,9 +8,10 @@
from lanenet.dataloader.transformers import Rescale
from lanenet.model.model import LaneNet
import torch.nn as nn
import argparse
import os
DEVICE = torch.device('cuda:3' if torch.cuda.is_available() else 'cpu')
os.environ["CUDA_VISIBLE_DEVICES"] = '3'
DEVICE = torch.device('cuda:0' if torch.cuda.is_available() else 'cpu')
os.environ["CUDA_VISIBLE_DEVICES"] = '0'

def compose_img(image_data, out, i=0):
oridata=image_data[i].cpu().numpy()
@@ -38,7 +39,16 @@ def compose_img(image_data, out, i=0):
return val_gt

if __name__ == '__main__':
model_path = './checkpoints-combine-new1/83_checkpoint.pth'
parser = argparse.ArgumentParser()
parser.add_argument("--weight", help="./checkpoints/83_checkpoint.pth")
parser.add_argument("--video", help="./checkpoints/83_checkpoint.pth")
args=parser.parse_args()
model_path = args.weight

# sourceFileName='ch0_20200318140335_20200318140435'
# video_path = os.path.join("/workspace/lanenet-lane-detection-11000", sourceFileName+'.mp4')
video_path = args.video

gpu = True
if not torch.cuda.is_available():
gpu = False
@@ -61,8 +71,6 @@ def compose_img(image_data, out, i=0):

model.eval()

sourceFileName='ch0_20200318140335_20200318140435'
video_path = os.path.join("/workspace/lanenet-lane-detection-11000", sourceFileName+'.mp4')
times=0
frameFrequency=1
camera = cv2.VideoCapture(video_path)
40 changes: 20 additions & 20 deletions lanenet/train.py
Original file line number Diff line number Diff line change
@@ -97,7 +97,7 @@ def train(train_loader, model, optimizer, epoch,w1,w2,w3,w4):
batch_time.update(time.time() - end)
end = time.time()

if step % 30 == 0:
if step % config.show_interval == 0:
print(
"Epoch {ep} Step {st} |({batch}/{size})| ETA: {et:.2f}|Total loss:{tot:.5f}|Binary loss:{bin:.5f}|Instance loss:{ins:.5f}|IoU:{iou:.5f}".format(
ep=epoch + 1,
@@ -131,13 +131,13 @@ def save_model(save_path, epoch, model):


def main():
args = parse_args()
# args = parse_args()

save_path = args.save
w1 = args.w1
w2 = args.w2
w3 = args.w3
w4 = args.w4
save_path = config.save_path
w1 = config.w1
w2 = config.w2
w3 = config.w3
w4 = config.w4

if not os.path.isdir(save_path):
os.makedirs(save_path)
@@ -147,19 +147,19 @@ def main():

train_dataset = LaneDataSet(train_dataset_file, transform=None)
# train_dataset = LaneDataSet(train_dataset_file, transform=transforms.Compose([Rescale((1280, 720))]))
train_loader = DataLoader(train_dataset, batch_size=args.bs, shuffle=True,num_workers=24,pin_memory=True,drop_last=True)
train_loader = DataLoader(train_dataset, batch_size=config.bs, shuffle=True,num_workers=4,pin_memory=True,drop_last=True)

if args.val:
val_dataset = LaneDataSet(val_dataset_file, transform=None)
# val_dataset = LaneDataSet(val_dataset_file, transform=transforms.Compose([Rescale((1280, 720))]))
val_loader = DataLoader(val_dataset, batch_size=args.bs, shuffle=True,num_workers=24,pin_memory=True,drop_last=True)
# if args.val:
val_dataset = LaneDataSet(val_dataset_file, transform=None)
# val_dataset = LaneDataSet(val_dataset_file, transform=transforms.Compose([Rescale((1280, 720))]))
val_loader = DataLoader(val_dataset, batch_size=config.bs, shuffle=True,num_workers=4,pin_memory=True,drop_last=True)

model = LaneNet()
model = nn.DataParallel(model, device_ids=config.device_ids)
model.to(DEVICE)

optimizer = torch.optim.Adam(model.parameters(), lr=args.lr)
print(f"{args.epochs} epochs {len(train_dataset)} training samples\n")
optimizer = torch.optim.Adam(model.parameters(), lr=config.lr)
print(f"{config.epochs} epochs {len(train_dataset)} training samples\n")
log_model="/workspace/pytorch-lanenet-master/checkpoints-combine-new1/83_checkpoint_state.pth"
# 如果有保存的模型,则加载模型,并在其基础上继续训练
if os.path.exists(log_model):
@@ -177,12 +177,12 @@ def main():
start_epoch = 0
print('no model,will start train from 0 epoche')

for epoch in range(start_epoch, args.epochs):
for epoch in range(start_epoch, config.epochs):
print(f"Epoch {epoch}")
train_iou = train(train_loader, model, optimizer, epoch,w1,w2,w3,w4)
if args.val:
val_iou = test(val_loader, model, epoch)
if (epoch+1) % 3 == 0:
# if args.val:
val_iou = test(val_loader, model, epoch)
if (epoch+1) % config.save_interval == 0:
save_model(save_path, epoch, model)
save_state_name = os.path.join(save_path, f'{epoch}_checkpoint_state.pth')
checkpoint = {
@@ -192,8 +192,8 @@ def main():
}
torch.save(checkpoint, save_state_name)
print(f"Train IoU : {train_iou}")
if args.val:
print(f"Val IoU : {val_iou}")
# if args.val:
print(f"Val IoU : {val_iou}")


if __name__ == '__main__':
2 changes: 1 addition & 1 deletion lanenet/utils/postprocess.py
Original file line number Diff line number Diff line change
@@ -2,7 +2,7 @@
from sklearn.cluster import MeanShift, estimate_bandwidth


def embedding_post_process(embedding, bin_seg, band_width=1.5, max_num_lane=4):
def embedding_post_process(embedding, bin_seg, band_width=1.5, max_num_lane=6):
"""
First use mean shift to find dense cluster center.