PyTorch 自動駕駛視覺感知算法實戰

劉斯坦

  • 出版商: 機械工業
  • 出版日期: 2024-01-01
  • 售價: $714
  • 貴賓價: 9.5$678
  • 語言: 簡體中文
  • 頁數: 264
  • 裝訂: 平裝
  • ISBN: 7111740270
  • ISBN-13: 9787111740278
  • 相關分類: DeepLearning自駕車
  • 立即出貨 (庫存 < 4)

買這商品的人也買了...

商品描述

本書全面介紹了自動駕駛系統中深度學習視覺感知的相關知識,包括深度神經網絡和深度卷積神經網絡的基本理論,
深入講解了自動駕駛中常用的目標檢測、語義、實例分割和單目深度估計四種視覺感知任務。
本書對自動駕駛工程實踐中很重要但經常被忽略的知識進行了全面總結,包括多任務模型的損失平衡、
Ubuntu操作系統、Anaconda和Docker等環境配置工具、C++開發環境搭建、
神經網絡壓縮、模型導出和量化、TensorRT推理引擎等和部署相關的技術。
本書各個任務都由PyTorch實現,模型部署的代碼則提供C++實現,並附帶一個中等規模的自動駕駛數據集用於示例。
所有代碼都公開在Github公開源碼倉庫上,很多代碼可以直接用於生產環境,且提供了商業友好的代碼許可證。

目錄大綱

前言
第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部署模型