书籍详情
PyTorch自动驾驶视觉感知算法实战
作者:刘斯坦
出版社:机械工业出版社
出版时间:2024-01-01
ISBN:9787111740278
定价:¥119.00
购买这本书可以去
内容简介
《PyTorch自动驾驶视觉感知算法实战》全面介绍了自动驾驶系统中深度学习视觉感知的相关知识,包括深度神经网络和深度卷积神经网络的基本理论,深入讲解了自动驾驶中常用的目标检测、语义、实例分割和单目深度估计四种视觉感知任务。《PyTorch自动驾驶视觉感知算法实战》对自动驾驶工程实践中很重要但经常被忽略的知识进行了全面总结,包括多任务模型的损失平衡、Ubuntu操作系统、Anaconda和Docker等环境配置工具、C++开发环境搭建、神经网络压缩、模型导出和量化、TensorRT推理引擎等和部署相关的技术。《PyTorch自动驾驶视觉感知算法实战》各个任务都由PyTorch实现,模型部署的代码则提供C++实现,并附带一个中等规模的自动驾驶数据集用于示例。所有代码都公开在Github公开源码仓库上,很多代码可以直接用于生产环境,且提供了商业友好的代码许可证。《PyTorch自动驾驶视觉感知算法实战》适用于具备基本机器学习知识,有志于从事自动驾驶算法工作的学生,也适用于刚迈入职场,面对各种陌生技术无所适从的初级工程师。同时,本书也可供中高级算法工程师作为案头常备书籍,以便查阅。
作者简介
刘斯坦,本科毕业于上海交通大学,硕士毕业于德国慕尼黑工业大学。深度学习资深工程师,从事无人驾驶智能感知系统的研发工作。在德国相关领域从业超过十年,负责无人驾驶系统中多个神经网络模型在量产车的落地以及中国地区的本地化。刘斯坦对深度学习的各个领域不但有着全景式的理解,还具备从数学理论到部署产品线的知识纵深。这种即广又深全面覆盖的知识面,相信能为读者带来更开阔的视野。
目录
前言
第1章 卷积神经网络的理论基础
1.1神经网络回顾
1.1.1神经网络模型
1.1.2神经网络的训练——反向传播算法
1.1.3神经网络的拟合能力和泛化能力
1.2什么是卷积神经网络
1.2.1什么是卷积运算
1.2.2通道(Channel)和三维卷积
1.2.3为什么需要深度网络
1.2.4什么是批次(Batch)
1.3卷积神经网络的组成细节
1.3.1卷积神经网络的输入层
1.3.2神经网络的输出层
1.3.3卷积层和转置卷积层
1.3.4激活层
1.3.5归一化层
1.3.6上采样层和下采样层
1.3.7池化层
1.3.8跳跃、空间注意力等特殊的连接方式
1.3.9构建一个复杂的卷积神经网络
1.4卷积神经网络的训练
1.4.1常用损失函数
1.4.2常用的正则化方法
1.4.3常用的优化器
1.4.4常用的训练学习率调整方法
第2章 深度学习开发环境及常用工具库
2.1硬件和操作系统
2.1.1显卡
2.1.2操作系统
2.2Python开发环境管理
2.2.1Anaconda虚拟环境的管理
2.2.2Python的包管理器pip
2.3常用的Python包
2.3.1NumPy——Python科学计算库
2.3.2OpenCV——Python图像处理库
2.4GPU加速的深度学习和科学计算库PyTorch
2.4.1GPU加速的科学计算功能
2.4.2PyTorch的自动求导功能
2.4.3PyTorch的优化器
2.4.4PyTorch的数据加载
2.4.5用PyTorch搭建神经网络
2.4.6常用的辅助工具
2.4.7搭建一个神经网络并进行训练
第3章 神经网络的特征编码器——主干网络
3.1什么是神经网络的主干网络
3.1.1神经网络的元结构
3.1.2神经网络的主干网络及有监督预训练
3.1.3主干网络的自监督预训练
3.2流行的主干网络
3.2.1简单直白的主干网络——类VGG网络
3.2.2最流行的主干网络——ResNet系列网络
3.2.3速度更快的轻量级主干网络——MobileNet系列
3.2.4自由缩放的主干网络——RegNet系列
3.3使用TorchVision模型库提供的主干网络
3.3.1构建和加载模型
3.3.2修改主干网络获取多尺度特征图
3.3.3不同主干网络和预训练模型的训练对比
第4章 目标检测网络——识别车辆
4.1目标检测基本概念
4.1.1Anchor
4.1.2NMS
4.1.3目标检测网络的类别
4.2以Faster RCNN为代表的两阶段检测方法
4.2.1RPN网络
4.2.2ROI网络
4.2.3使用TorchVision模型库中的Faster RCNN
4.3以Yolo为代表的一阶段检测方法
4.3.1YoloV3的整体结构
4.3.2Yolo的训练
4.3.3类Yolo的一阶段检测网络
4.4以CenterNet为代表的Anchor-Free方法
4.4.1CenterNet的整体结构
4.4.2用高斯模糊和Focal Loss训练CenterNet
4.4.3YoloX网络
4.5Yolo的PyTorch实现
4.5.1样本选择算法的实现
4.5.2Yolo层的实现
4.5.3构造损失函数
4.5.4NMS的实现
第5章 语义分割与实例分割——逐像素分类
5.1语义分割
5.1.1语义分割的网络构架和损失函数
5.1.2评价语义分割质量的指标
5.1.3使用OHEM和类别权重解决样本不均衡问题
5.1.4语义分割的关键——信息融合
5.2使用PyTorch训练一个语义分割模型
5.2.1语义分割的数据加载
5.2.2加载Lite R-ASPP语义分割模型进行训练
5.2.3计算混淆矩阵
5.2.4计算mIoU
5.3实例分割——分辨行人和车辆
5.3.1以Mask-RCNN为代表的两阶段实例分割方法
5.3.2以SOLO为代表的单阶段实例分割方法
5.3.3基于CondInst的半监督实例分割方法BoxInst
5.4安装及使用OpenMMLab——以MMDetection为例
5.4.1安装和配置MMDetection
5.4.2MMDetection介绍
5.4.3SOLO代码解析
第6章 单目深度估计——重建三维世界
6.1计算机三维视觉基础知识
6.1.1相机模型
6.1.2什么是深度图
6.1.3相机运动模型
6.2单目深度估计的网络构架
6.2.1深度图预测网络
6.2.2基于相对视差的深度图输出编码
6.2.3基于有序回归的深度图输出编码
6.2.4相机运动估计网络
6.3无监督学习的机制
6.3.1无监督学习系统构架
6.3.2将深度图反投影为点云的PyTorch实现
6.3.3从相邻帧采集RGB值并重投影的PyTorch实现
6.3.4无监督单目深度推断的损失函数
6.4可能存在的问题及解决方案
6.4.1用图像梯度图解决边缘模糊问题
6.4.2用图像一致性掩膜解决移动物体问题
6.4.3用速度损失解决尺度问题
第7章 通过控制网络结构提高速度和精度
7.1使用多任务网络构架提高速度和精度
7.1.1多任务网络的设计
7.1.2多任务网络的任务平衡问题
7.2用PyTorch搭建一个语义分割和目标检测双任务网络
7.2.1多任务数据加载
7.2.2多任务网络的搭建
7.2.3多任务损失的平衡
7.3压缩神经网络提高推理速度
7.3.1什么是神经网络压缩
7.3.2几种常见的通道剪枝方法
7.3.3在训练中使用L1正则化压缩权重
7.3.4使用可微通道加权进行通道剪枝
7.3.5网络压缩的流程
7.4用PyTorch实现可微网络压缩
7.4.1用PyTorch构造可微通道选择层
7.4.2利用通道选择层确定压缩方案
7.4.3对PyTorch模型进行压缩并对比运行速度
第8章 导出和部署神经网络模型
8.1配置开发环境
8.1.1Docker的使用
8.1.2配置C++开发环境
8.2使用LibTorch部署PyTorch模型
8.2.1导出TorchScript模型
8.2.2将LibTorch加入CMake项目
8.2.3将输入图像转换为Tensor
8.2.4加载TorchScript模型并进行推理
8.3用TensorRT部署模型
第1章 卷积神经网络的理论基础
1.1神经网络回顾
1.1.1神经网络模型
1.1.2神经网络的训练——反向传播算法
1.1.3神经网络的拟合能力和泛化能力
1.2什么是卷积神经网络
1.2.1什么是卷积运算
1.2.2通道(Channel)和三维卷积
1.2.3为什么需要深度网络
1.2.4什么是批次(Batch)
1.3卷积神经网络的组成细节
1.3.1卷积神经网络的输入层
1.3.2神经网络的输出层
1.3.3卷积层和转置卷积层
1.3.4激活层
1.3.5归一化层
1.3.6上采样层和下采样层
1.3.7池化层
1.3.8跳跃、空间注意力等特殊的连接方式
1.3.9构建一个复杂的卷积神经网络
1.4卷积神经网络的训练
1.4.1常用损失函数
1.4.2常用的正则化方法
1.4.3常用的优化器
1.4.4常用的训练学习率调整方法
第2章 深度学习开发环境及常用工具库
2.1硬件和操作系统
2.1.1显卡
2.1.2操作系统
2.2Python开发环境管理
2.2.1Anaconda虚拟环境的管理
2.2.2Python的包管理器pip
2.3常用的Python包
2.3.1NumPy——Python科学计算库
2.3.2OpenCV——Python图像处理库
2.4GPU加速的深度学习和科学计算库PyTorch
2.4.1GPU加速的科学计算功能
2.4.2PyTorch的自动求导功能
2.4.3PyTorch的优化器
2.4.4PyTorch的数据加载
2.4.5用PyTorch搭建神经网络
2.4.6常用的辅助工具
2.4.7搭建一个神经网络并进行训练
第3章 神经网络的特征编码器——主干网络
3.1什么是神经网络的主干网络
3.1.1神经网络的元结构
3.1.2神经网络的主干网络及有监督预训练
3.1.3主干网络的自监督预训练
3.2流行的主干网络
3.2.1简单直白的主干网络——类VGG网络
3.2.2最流行的主干网络——ResNet系列网络
3.2.3速度更快的轻量级主干网络——MobileNet系列
3.2.4自由缩放的主干网络——RegNet系列
3.3使用TorchVision模型库提供的主干网络
3.3.1构建和加载模型
3.3.2修改主干网络获取多尺度特征图
3.3.3不同主干网络和预训练模型的训练对比
第4章 目标检测网络——识别车辆
4.1目标检测基本概念
4.1.1Anchor
4.1.2NMS
4.1.3目标检测网络的类别
4.2以Faster RCNN为代表的两阶段检测方法
4.2.1RPN网络
4.2.2ROI网络
4.2.3使用TorchVision模型库中的Faster RCNN
4.3以Yolo为代表的一阶段检测方法
4.3.1YoloV3的整体结构
4.3.2Yolo的训练
4.3.3类Yolo的一阶段检测网络
4.4以CenterNet为代表的Anchor-Free方法
4.4.1CenterNet的整体结构
4.4.2用高斯模糊和Focal Loss训练CenterNet
4.4.3YoloX网络
4.5Yolo的PyTorch实现
4.5.1样本选择算法的实现
4.5.2Yolo层的实现
4.5.3构造损失函数
4.5.4NMS的实现
第5章 语义分割与实例分割——逐像素分类
5.1语义分割
5.1.1语义分割的网络构架和损失函数
5.1.2评价语义分割质量的指标
5.1.3使用OHEM和类别权重解决样本不均衡问题
5.1.4语义分割的关键——信息融合
5.2使用PyTorch训练一个语义分割模型
5.2.1语义分割的数据加载
5.2.2加载Lite R-ASPP语义分割模型进行训练
5.2.3计算混淆矩阵
5.2.4计算mIoU
5.3实例分割——分辨行人和车辆
5.3.1以Mask-RCNN为代表的两阶段实例分割方法
5.3.2以SOLO为代表的单阶段实例分割方法
5.3.3基于CondInst的半监督实例分割方法BoxInst
5.4安装及使用OpenMMLab——以MMDetection为例
5.4.1安装和配置MMDetection
5.4.2MMDetection介绍
5.4.3SOLO代码解析
第6章 单目深度估计——重建三维世界
6.1计算机三维视觉基础知识
6.1.1相机模型
6.1.2什么是深度图
6.1.3相机运动模型
6.2单目深度估计的网络构架
6.2.1深度图预测网络
6.2.2基于相对视差的深度图输出编码
6.2.3基于有序回归的深度图输出编码
6.2.4相机运动估计网络
6.3无监督学习的机制
6.3.1无监督学习系统构架
6.3.2将深度图反投影为点云的PyTorch实现
6.3.3从相邻帧采集RGB值并重投影的PyTorch实现
6.3.4无监督单目深度推断的损失函数
6.4可能存在的问题及解决方案
6.4.1用图像梯度图解决边缘模糊问题
6.4.2用图像一致性掩膜解决移动物体问题
6.4.3用速度损失解决尺度问题
第7章 通过控制网络结构提高速度和精度
7.1使用多任务网络构架提高速度和精度
7.1.1多任务网络的设计
7.1.2多任务网络的任务平衡问题
7.2用PyTorch搭建一个语义分割和目标检测双任务网络
7.2.1多任务数据加载
7.2.2多任务网络的搭建
7.2.3多任务损失的平衡
7.3压缩神经网络提高推理速度
7.3.1什么是神经网络压缩
7.3.2几种常见的通道剪枝方法
7.3.3在训练中使用L1正则化压缩权重
7.3.4使用可微通道加权进行通道剪枝
7.3.5网络压缩的流程
7.4用PyTorch实现可微网络压缩
7.4.1用PyTorch构造可微通道选择层
7.4.2利用通道选择层确定压缩方案
7.4.3对PyTorch模型进行压缩并对比运行速度
第8章 导出和部署神经网络模型
8.1配置开发环境
8.1.1Docker的使用
8.1.2配置C++开发环境
8.2使用LibTorch部署PyTorch模型
8.2.1导出TorchScript模型
8.2.2将LibTorch加入CMake项目
8.2.3将输入图像转换为Tensor
8.2.4加载TorchScript模型并进行推理
8.3用TensorRT部署模型
猜您喜欢