9.1.tensorRT高级(4)封装系列-自动驾驶案例项目self-driving-道路分割分析
目录
- 前言
- 1. 道路分割
- 总结
前言
杜老师推出的 tensorRT从零起步高性能部署 课程,之前有看过一遍,但是没有做笔记,很多东西也忘了。这次重新撸一遍,顺便记记笔记。
本次课程学习 tensorRT 高级-自动驾驶案例项目self-driving-道路分割分析
课程大纲可看下面的思维导图

1. 道路分割
这节我们学习自动驾驶场景中的模型案例
1. 这个案例中存在 4 个模型,分别是:车辆检测 YoloX、车道线检测、道路分割、深度估计
2. 学习把该案例的模型跑起来,对不同任务进行了解
项目地址:https://github.com/iwatake2222/self-driving-ish_computer_vision_system

我们只需要拿到项目提供的模型并导出 ONNX 就行了,至于其它的环境配置等我们就不用关注了
那在案例中提供了下载好的模型,因此我们可以直接看案例代码
我们先来看道路分割模型,我们的目的是找到道路分割的 onnx,分析其 onnx 的大致使用逻辑,然后写出最简洁版本的 predict.py,大体可以分为以下三步:
1. 打开道路分割的 onnx,查看其输入与输出
2. 查看代码,找到 onnx 的预处理,分析得到预处理的逻辑
3. 针对获得的信息,编写 predict.py,尝试写出来
我们来观察下其 onnx 模型,如下图所示:

从导出的 onnx 我们可以了解并猜测:
- 输入是 1x3x512x896
- 输出是 1x512x896x4,并且是概率值,0~1,仅仅是不确定 4 通道代表什么
- 可能代表:可行驶区域、车道线、不可行驶区域、马路牙子
我们通过分析项目中的 image_processor/semantic_segmentation_engine.cpp 文件可以得出具体的预处理所做的工作:(详细分析请参照视频)
- normalize → \rightarrow → mean = 0, norm = 1.0
- 对输入图像直接 resize 到 height=512,width=896
- 确定输入的图像就是 BGR 图像
- normalize = (src_image - normalize.mean) * normalize.norm
我们可以简单的写个预处理程序来验证下,代码如下:
import onnxruntime
import cv2
import numpy as npsession = onnxruntime.InferenceSession("workspace/road-segmentation-adas.onnx", provider_options=["CPUExecutionProvider"])image = cv2.imread("workspace/imgs/dashcam_00.jpg")
image = cv2.resize(image, (896, 512))
image_tensor = image.astype(np.float32)
image_tensor = image_tensor.transpose(2, 0, 1)[None]prob = session.run(["tf.identity"], {"data": image_tensor})[0]print(prob.shape)cv2.imwrite("prob0.jpg", prob[0, :, :, 1] * 255)
输出如下图:

可以看到输出符合我们的预期,输出的概率图如下所示:

总结
本次课程学习了开源项目中的道路分割案例,主要是对道路分割模型的 onnx 进行了简单分析,并通过对项目代码的分析将预处理部分理清楚,然后通过 onnxruntime 进行了简单验证。
次课程学习了开源项目中的道路分割案例,主要是对道路分割模型的 onnx 进行了简单分析,并通过对项目代码的分析将预处理部分理清楚,然后通过 onnxruntime 进行了简单验证。
相关文章:
9.1.tensorRT高级(4)封装系列-自动驾驶案例项目self-driving-道路分割分析
目录 前言1. 道路分割总结 前言 杜老师推出的 tensorRT从零起步高性能部署 课程,之前有看过一遍,但是没有做笔记,很多东西也忘了。这次重新撸一遍,顺便记记笔记。 本次课程学习 tensorRT 高级-自动驾驶案例项目self-driving-道路分…...
稳定的 Glance 来了,安卓小部件有救了!
稳定的 Glance 来了,安卓小部件有救了! 稳定版本的 Glance 终于发布了,来一起看看吧,看看这一路的旅程,看看好用么,再看看如何使用! 前世今生 故事发生在两年的一天吧,其实夸张了…...
用友U8与MES系统API接口对接案例分析
企业数字化转型:轻易云数据集成平台助力 U8 ERPMES 系统集成 为什么选择数字化转型? 领导层对企业资源规划(ERP)的深刻理解促使了数字化转型的启动。采用精确的“N5”滚动计划,为供应商提供充分的预期信息,…...
web UI自动化介绍
文章目录 一、web UI自动化介绍1.1 执行UI自动化测试前提1.2 Selenium介绍以及知识点梳理 二、Selenium 学习2.1 基础2.1.1 环境安装与基础使用2.1.2 web浏览器控制2.1.3 常见控件的八大定位方式2.1.3.1 八大定位方式介绍2.1.3.2 NAME、ID定位2.1.3.3 css_selector定位2.1.3.4 …...
小米13Pro/13Ultra刷面具ROOT后激活LSPosed框架微X模块详细教程
喜欢买小米手机,很多是因为小米手机的开放,支持root权限,而ROOT对普通用户来说更多的是刷入DIY模块功能,今天ROM乐园小编就教大家如何使用面具ROOT,实现大家日常情况下非常依赖的微X模块功能,体验微X模块的…...
文盘Rust -- 给程序加个日志 | 京东云技术团队
日志是应用程序的重要组成部分。无论是服务端程序还是客户端程序都需要日志做为错误输出或者业务记录。在这篇文章中,我们结合log4rs聊聊rust 程序中如何使用日志。 log4rs类似java生态中的log4j,使用方式也很相似 log4rs中的基本概念 log4rs 的功能组件也由 appe…...
C语言深入理解指针(非常详细)(五)
目录 回调函数qsort使用举例qsort函数的模拟实现sizeof和strlen的对比sizeofstrlensizeof和strlen的对比一道关于sizeof的题 回调函数 回调函数就是一个通过函数指针调用的函数 如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指…...
[docker]笔记-portainer的安装
1、portainer是一款可视化的容器管理软件,利用portainer可以轻松方便的管理和创建容器。portainer本身是一个容器,完全免费并且具有汉化版。本文介绍portainer的安装和使用。 2、安装好容器并配置好容器环境,可参照https://blog.csdn.net/bl…...
详解TCP/IP的三次握手和四次挥手
文章目录 前言一、TCP/IP协议的三次握手1.1 三次握手流程 二、TCP/IP的四次挥手2.1 四次挥手流程 三、主要字段3.1、标志位(Flags)3.2、序号(sequence number)3.3、确认号(acknowledgement number) 四、状态…...
YOLOv5算法改进(16)— 增加小目标检测层
前言:Hello大家好,我是小哥谈。小目标检测层是指在目标检测任务中用于检测小尺寸目标的特定网络层。由于小目标具有较小的尺寸和低分辨率,它们往往更加难以检测和定位。YOLOv5算法的检测速度与精度较为平衡,但是对于小目标的检测效…...
蓝桥杯官网练习题(图像模糊)
题目描述 小蓝有一张黑白图像,由 nm 个像素组成,其中从上到下共 n 行,每行从左到右 �m 列。每个像素由一个 0 到 255 之间的灰度值表示。 现在,小蓝准备对图像进行模糊操作,操作的方法为: 对…...
使用鳄鱼指标和ADX开立空头的条件,3秒讲清楚
使用鳄鱼指标和ADX开立空头的条件其实很简单,anzo capital昂首资本3秒钟讲清楚。 首先,市场行情需呈水平状态。再者,均线体系开始向上发散,给出明确的信号。最后,ADX确认该信号,要求指数上涨20%以上&#…...
RabbitMQ死信队列与延迟队列
目录 死信队列 死信队列的定义 死信队列的应用场景 死信队列的作用 死信队列架构图 死信队列代码实现 延迟队列 延迟队列的定义 延迟队列的应用场景 延迟队列的作用 延迟队列架构图 延迟队列的代码实现 死信队列 死信队列的定义 死信队列(Dead Letter …...
存储管理呀
世界太吵,别听,别看,别管,别怕,向前走 一. 存储管理 初识硬盘 机械 HDD 固态 SSDSSD的优势 SSD采用电子存储介质进行数据存储和读取的一种技术,拥有极高的存储性能,被认为是存储技术发展的未来…...
学习 BeautifulSoup 库从入门到精通
可以按照以下步骤进行: 1. 安装 BeautifulSoup: 首先,确保你已经安装了 Python。然后可以使用 pip 命令来安装 BeautifulSoup 库。在命令行中输入以下命令: pip install beautifulsoup42. 导入 BeautifulSoup: 在 …...
JavaScript基础知识总结
目录 一、js代码位置 二、变量与数据类型 1、声明变量 2、基本类型(7种基本类型) 1、undefined和null 2、String ⭐ 模板字符串(Template strings) 3、number和bigint ⭐ 4、boolean ⭐ 5、symbol 3、对象类型 1、Fun…...
技术面试与HR面:两者之间的关联与区别
🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…...
【Redis】为什么要学 Redis
文章目录 前言一、Redis 为什么快二、Redis 的特性2.1 将数据储存到内存中2.2 可编程性2.3 可扩展性2.4 持久性2.5 支持集群2.6 高可用性 三、Redis 的应用场景四、不能使用 Redis 的场景 前言 关于为什么要学 Redis 这个问题,一个字就可以回答,那就是&…...
动静态库生成使用
🔥🔥 欢迎来到小林的博客!! 🛰️博客主页:✈️林 子 🛰️博客专栏:✈️ Linux 🛰️社区 :✈️ 进步学堂 🛰…...
LLVM编译安装
LLVM编译安装 #全量下载 git clone https://github.com/llvm/llvm-project.git #只下载最新commit版本 git clone --depth 1 https://github.com/llvm/llvm-project.git#配置 #!/bin/bash set -ex cmake -S llvm -B build -DCMAKE_INSTALL_PREFIX/data0/huozai/software/insta…...
SPX截图神器隐藏玩法:除了撕边效果,还能批量给图片加动态水印?
SPX截图神器进阶指南:从动态水印到高效办公的全能玩法 在数字办公时代,截图工具早已不再是简单的屏幕捕捉软件。SPX Instant Screen Capture作为一款轻量级却功能强大的截图工具,其隐藏的高级功能可以显著提升工作效率。本文将深入探索SPX的进…...
嵌入式信号发生器库:高精度方波生成与载波调制
1. SignalGenerator 库概述SignalGenerator 是一个轻量级、可移植的嵌入式信号发生器开源库,专为资源受限的微控制器设计。其核心目标是在任意 GPIO 引脚上生成高精度、可编程的方波信号,同时支持载波调制(Carrier Modulation)功能…...
清音听真Qwen3-ASR-1.7B多场景案例:播客剪辑辅助、有声书文稿校对、残障人士沟通助手
清音听真Qwen3-ASR-1.7B多场景案例:播客剪辑辅助、有声书文稿校对、残障人士沟通助手 1. 语音识别新标杆:清音听真Qwen3-ASR-1.7B 语音识别技术正在改变我们处理音频内容的方式。清音听真Qwen3-ASR-1.7B作为新一代语音识别系统,以其卓越的识…...
vLLM引擎配置!DeepSeek-R1-Distill-Qwen-1.5B CPU推理参数调优指南
vLLM引擎配置!DeepSeek-R1-Distill-Qwen-1.5B CPU推理参数调优指南 1. 模型概述与CPU部署价值 1.1 DeepSeek-R1-Distill-Qwen-1.5B核心特性 DeepSeek-R1-Distill-Qwen-1.5B是专为高效推理设计的轻量级语言模型,其技术亮点包括: 参数精简&…...
改进鲸鱼优化算法性能深度解析:多策略融合、参数优化与测试函数波形报告
改进鲸鱼优化算法(IWOA,自己融合了多策略改进,名字自己取的[破涕为笑]),具体改进公式会在readme说明文件中详细给出。 与鲸鱼算法,灰狼算法,麻雀算法,北方苍鹰算法,在初始种群为30,独…...
Wishbone总线在嵌入式系统中的高效数据传输实践
1. Wishbone总线在嵌入式系统中的核心价值 第一次接触Wishbone总线是在2015年设计工业控制器的时候。当时我们需要在FPGA和多个传感器之间建立高速数据通道,尝试了几种总线方案后,最终被Wishbone的简洁高效所折服。这种开源总线协议虽然不如AXI、AHB等商…...
星图AI算力平台:零基础训练PETRV2-BEV模型,5步搞定自动驾驶感知
星图AI算力平台:零基础训练PETRV2-BEV模型,5步搞定自动驾驶感知 1. 为什么选择PETRV2-BEV模型? 自动驾驶技术的核心挑战之一是如何让车辆准确理解周围环境。BEV(Birds Eye View)模型通过将多视角传感器数据转换为统一…...
抖音直播数据实时抓取终极指南:5个实战技巧打造智能监控系统
抖音直播数据实时抓取终极指南:5个实战技巧打造智能监控系统 【免费下载链接】DouyinLiveWebFetcher 抖音直播间网页版的弹幕数据抓取(2024最新版本) 项目地址: https://gitcode.com/gh_mirrors/do/DouyinLiveWebFetcher 你是否正在寻…...
华为:智慧交管感知解决方案及产品手册 2023
这份华为 2023 年智慧交管感知解决方案及产品手册,聚焦城市道路交通管理中的各类痛点,依托云计算、大模型、AI、机器视觉等技术,推出全场景的智慧交管感知产品与解决方案,通过环保化、高清化、智能化的技术升级,解决交…...
JDK25已来,为何大多公司仍在JAVA8?
第一章:JDK 25 都发了,为什么大家还在 Java 8JDK 25 发布那天,我特意去看了一眼发布说明。内容不复杂,新特性不少,语气一如既往地克制,像是在告诉你: “你可以升级了,但我们不催。”…...
