尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
车道识别模型---Unet环境部署和个人数据集训练教程
目录一、github下载模型二、环境部署三、 数据集制作3.1 labelme下载安装3.2 数据集格式介绍3.3数据标注过程3.4 数据转换四、 训练五、测试效果一、github下载模型模型地址https://github.com/AnshChoudhary/Lane-Detection-UNet二、环境部署文件下载后压缩推荐创建一个conda虚拟环境miniconda的下载和安装不多赘述conda create -n unet python3.8 conda activate unet pip install -r requirements.txt (特别要注意torch和torchvision的版本以及自己的cuda版本是否一致)如果对torch和torchvision环境配置不清除可以在pytorch官网查询博主的环境为torch2.1.0torchvision0.16.0cuda11.x https://pytorch.org/get-started/previous-versions/三、 数据集制作3.1 labelme下载安装车道线标注使用labelme特别方便建议下载labelme工具(最新版要求python3.9版本及以上如果你的python版本低于3.9建议新建conda虚拟环境)conda create -n labelme python3.10 conda activate labelme pip install labelme这里介绍一个key如果你想单独快速下载包可以在pip install命令中添加-i参数指定镜像地址。以清华源为例你可以使用以下命令pip install -i https://pypi.tuna.tsinghua.edu.cn/simple labelme下载完成之后在虚拟环境终端输入labelme即可出现labelme的UI界面你就安装成功啦!3.2 数据集格式介绍由于要自己准备数据集所以我们得先了解模型需要的数据集格式模型中train.py文件中的数据集是这样要求的train_dataset BDD100KDataset( images_dir/home/orin/Downloads/data/jpg, masks_dir/home/orin/Downloads/data/mask, transformtransform ) val_dataset BDD100KDataset( images_dir/home/orin/Downloads/data/val/jpg, masks_dir/home/orin/Downloads/data/val/mask, transformtransform )所以我们的文件格式可以这样创建/home/orin/Downloads/data/ ├── jpg/ # 训练集图像目录 │ ├── image1.jpg │ ├── image2.jpg │ └── ... ├── mask/ # 训练集标注目录如分割mask或车道线多边形 │ ├── image1_mask.png │ ├── image2_mask.png │ └── ... └── val/ # 验证集目录 ├── jpg/ # 验证集图像目录 │ ├── val_image1.jpg │ ├── val_image2.jpg │ └── ... └── mask/ # 验证集标注目录 ├── val_image1_mask.png ├── val_image2_mask.png └── ...3.3数据标注过程首先打开图片目录右上角还可以点击自动保存和更改输出路径加快标注速度单击右键后点击创建折线标注保存后得到json文件├── jpg/ # 训练集图像目录│ └── ...├── mask/ # 训练集标注目录如分割mask或车道线多边形│ └── ...└── val/ # 验证集目录├── jpg/ # 验证集图像目录│ └── ...└── mask/ # 验证集标注目录└── ...3.4 数据转换由于数据集需要图片掩码这里需要新建python程序将json数据格式转换为图片掩码import os import json import cv2 import numpy as np def generate_mask(image_path, annotation, mask_path): # 读取图片尺寸 img cv2.imread(image_path) height, width img.shape[:2] # 创建空白掩码 mask np.zeros((height, width), dtypenp.uint8) # 处理json中每个shape绘制折线 for shape in annotation.get(shapes, []): points shape[points] pts np.array(points, np.int32) # 绘制线条 # 你可以调整线宽比如为2或3 cv2.polylines(mask, [pts], isClosedFalse, color255, thickness3) # 保存掩码 cv2.imwrite(mask_path, mask) # 你的路径 images_dir rD:\AI\Lane-Detection-UNet-main\data_process\data\jpg masks_dir rD:\AI\Lane-Detection-UNet-main\data_process\data\mask json_dir rD:\AI\Lane-Detection-UNet-main\data_process\data\json if not os.path.exists(masks_dir): os.makedirs(masks_dir) for image_filename in os.listdir(images_dir): if not image_filename.endswith(.jpg): continue image_path os.path.join(images_dir, image_filename) json_filename os.path.splitext(image_filename)[0] .json json_path os.path.join(json_dir, json_filename) if not os.path.exists(json_path): print(f对应的json文件不存在{json_path}) continue with open(json_path, r, encodingutf-8) as f: annotation_data json.load(f) # 生成掩码路径 mask_path os.path.join(masks_dir, image_filename.replace(.jpg, .jpg)) # 调用绘制线条生成掩码 generate_mask(image_path, annotation_data, mask_path)即可得到图片掩码到此数据集准备完毕四、 训练进入模型目录输入训练代码注意改动标注图片路径即可开始训练CUDA_VISIBLE_DEVICES0 python train.py训练完成之后会得到一个best_unet_lane_detection.pth权重文件五、测试效果博主自己改动了一下inference.py代码增加了一个二值化的图CUDA_VISIBLE_DEVICES0 python inference.py 注意改动测试图片路径训练过程有什么问题的欢迎和博主讨论博主qq2904385943训练成功完结撒花
RELATED

相关推荐

端侧 AI 选运行时:先看模型覆盖,再看 WebGPU

端侧 AI 选运行时:先看模型覆盖,再看 WebGPU

页面能申请 GPUDevice,说明获得了一种计算能力,不代表目标模型已经可运行。模型格式、算子、精度、预处理和资源预算仍可能让推理失败。 2026 年 10 月 19 日,Google 介绍 LiteRT Tensor API:用原生 C 逐算子构建图,提…

📅 2026/10/28 9:25:40
TongWeb8.0生产环境配置规范之一:安装环境配置

TongWeb8.0生产环境配置规范之一:安装环境配置

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📅 2026/10/28 9:25:40
代码门禁误报率怎么记:一份可解释的审查台账

代码门禁误报率怎么记:一份可解释的审查台账

门禁报了十次,其中三次被开发者关闭,于是报告写“误报率 30%”。关闭可能因为真误报,也可能是临时豁免、重复告警或风险被接受。状态按钮不是人工裁决。 一份能解释的台账要先分清告警、真实问题、待定项和例外,再谈比例。否则模…

📅 2026/10/28 9:25:40
MORE NEWS

更多资讯

📰

我的电视(my-tv):免注册、开箱即用的电视直播软件,把老电视变成直播入口

我的电视(my-tv):免注册、开箱即用的电视直播软件,把老电视变成直播入口 【免费下载链接】my-tv 我的电视 电视直播软件,安装即可使用 项目地址: https://gitcode.com/GitHub_Trending/my/my-tv 家里只想看央视…

📰

为什么你的断点续传总是从 0 开始:Hutool 大文件下载避坑实战

为什么你的断点续传总是从 0 开始:Hutool 大文件下载避坑实战 【免费下载链接】hutool 🍬A set of tools that keep Java sweet. 项目地址: https://gitcode.com/gh_mirrors/hu/hutool 用 Hutool 做文件下载,几 MB 的包一行 HttpUtil.…

📰

Codex 免配置一键安装包|本地部署不用敲一行命令

前言 做开发的朋友应该都有体会,想要本地部署 Codex,最麻烦的不是软件本身,而是前期环境准备。手动安装 Node.js、处理依赖版本冲突,还要打开终端输入多条命令,稍有不慎就会报错,很多新手卡在这一步直接放…

📰

HarmonyOS 通知点开只进首页?让通知直接跳到指定业务页面【鸿蒙心迹】

👋 你好,欢迎来到我的博客!我是【菜鸟学鸿蒙】我是一名在路上的移动端开发者,正从传统“小码农”转向鸿蒙原生开发的进阶之旅。为了把学习过的知识沉淀下来,也为了和更多同路人互相启发,我决定把探索 Harmo…

📰

my-tv:免费电视直播软件,电视盒子装上就能看

my-tv:免费电视直播软件,电视盒子装上就能看 【免费下载链接】my-tv 我的电视 电视直播软件,安装即可使用 项目地址: https://gitcode.com/GitHub_Trending/my/my-tv my-tv 是一款开源的电视直播软件,免注册、不收费&#…

📰

【HarmonyOS 7新能力|008】互动卡片入门实战:从能力边界到最小可运行链路

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬