Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
8468412
论文第一章
minghao-lee Jan 15, 2026
6ddd4c1
Merge branch 'master' of https://github.com/minghao-lee/sim
minghao-lee Jan 15, 2026
d59bee9
提交中文摘要
minghao-lee May 12, 2026
11cbb12
Merge branch 'OpenHUTB:master' into master
minghao-lee May 12, 2026
bab54db
提交英文摘要
minghao-lee May 12, 2026
a7af726
Merge branch 'OpenHUTB:master' into master
minghao-lee May 18, 2026
75f6f78
提交说明文件
minghao-lee May 18, 2026
7f0f80d
说明文件
minghao-lee May 18, 2026
d86c1bd
提交全局配置
minghao-lee May 18, 2026
634f3b6
1
minghao-lee May 18, 2026
2e75ec0
Delete critical/undergraduate/content/README.md
minghao-lee May 18, 2026
94da8e3
Merge branch 'OpenHUTB:master' into master
minghao-lee May 18, 2026
3da300c
函数文件
minghao-lee May 18, 2026
9332468
Merge branch 'OpenHUTB:master' into master
minghao-lee May 18, 2026
875172c
提交env文件
minghao-lee May 18, 2026
9c9704c
Merge branch 'OpenHUTB:master' into master
minghao-lee May 19, 2026
4aeb358
危险场景定义
minghao-lee May 19, 2026
b05c1fc
Merge branch 'OpenHUTB:master' into master
minghao-lee May 19, 2026
cfcdcd4
训练与评估文件
minghao-lee May 19, 2026
30c92c3
Merge branch 'OpenHUTB:master' into master
minghao-lee May 19, 2026
54bc841
强化学习算法
minghao-lee May 19, 2026
2e62b49
Merge branch 'OpenHUTB:master' into master
minghao-lee May 20, 2026
77849a2
运行的主代码
minghao-lee May 20, 2026
cd3e26c
Merge branch 'OpenHUTB:master' into master
minghao-lee May 20, 2026
c4d1dad
Merge branch 'OpenHUTB:master' into master
minghao-lee May 27, 2026
3685fb5
Merge branch 'OpenHUTB:master' into master
minghao-lee Jun 7, 2026
dc2f8cc
Merge branch 'master' of https://github.com/minghao-lee/sim
minghao-lee Jun 7, 2026
ab71b1c
图片和论文第一章
minghao-lee Jun 7, 2026
dcefce8
Merge branch 'OpenHUTB:master' into master
minghao-lee Jun 7, 2026
f9fa167
论文正文
minghao-lee Jun 7, 2026
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
476 changes: 171 additions & 305 deletions critical/undergraduate/content/chapter2.tex

Large diffs are not rendered by default.

487 changes: 358 additions & 129 deletions critical/undergraduate/content/chapter3.tex

Large diffs are not rendered by default.

283 changes: 187 additions & 96 deletions critical/undergraduate/content/chapter4.tex
Original file line number Diff line number Diff line change
@@ -1,146 +1,237 @@
\chapter{优化算法验证}
\section{场景生成与优化效果}
\chapter{危险场景运行实验与.xosc文件输出}
\section{10种场景生成效果分析}
\subsection{极端天气类场景生成效果}
(一)大雨天气跟车场景

基准对比:NSGA-II vs. 随机搜索 vs. 人工设计场景库(行业基准)
如图\ref{fig:rainy_chase}在大雨天气跟车场景中,主车以45km/h的速度行驶,对抗车辆位于主车前方约20米处。降雨量设置为80\%,能见度约100米。经Smooth-PPO算法训练后,对抗车辆学会了在保持安全的前提下逐渐缩小跟车距离的策略。最终生成场景中,最小TTC降至1.9秒,危险成功率达到82\%。与Attention-DQN相比,Smooth-PPO生成的跟车距离变化更加平滑,避免了距离的剧烈波动。

评估指标:
(二)浓雾天气巡航场景

覆盖率:ASIL-D场景占比、场景参数分布熵
如图\ref{fig:foggy_cruise}在浓雾天气下能见度设置为50米,主车以50km/h速度巡航。Smooth-PPO算法在该场景中展现出良好的鲁棒性,能够在能见度受限的条件下有效逼近主车。生成场景的最小TTC为2.0秒,危险成功率为79\%。值得注意的是,Smooth-PPO的随机策略使其在浓雾环境中具有更强的适应性,收敛速度较Attention-DQN提升约36\%。
\begin{figure}[htbp]
\centering
\begin{minipage}{0.45\textwidth}
\centering
\includegraphics[width=\linewidth]{figure_9.png}
\caption{暴雨跟车效果图}
\label{fig:rainy_chase}
\end{minipage}
\hfill
\begin{minipage}{0.45\textwidth}
\centering
\includegraphics[width=\linewidth]{figure_10.png}
\caption{大雾跟车效果图}
\label{fig:foggy_cruise}
\end{minipage}
\end{figure}

(三)夜间城市道路场景

在夜间场景中,如图\ref{fig:nighttime_road}车辆行驶于双向两车道的城市沥青道路,路侧设置连续的人行道隔离桩、行道树与路灯,构成了典型的夜间城市道路环境。低光照条件大幅降低了车载摄像头的有效感知距离与目标识别精度,而路侧行道树、隔离桩等静态障碍物则进一步遮挡了前方视野,对车辆的环境感知与风险预判能力提出了极高要求。

场景的核心挑战在于:在光照不足的影响下,自动驾驶车辆需提前识别潜在风险并做出平稳、安全的决策。这一设置有效验证了算法在复杂夜间环境下的鲁棒性,为评估不同算法在低能见度城市道路中的安全驾驶能力提供了高仿真的测试环境。

\begin{figure}[htbp]
\centering
\includegraphics[width=0.8\textwidth]{figure_11.png}
\caption{夜间行车效果图}
\label{fig:nighttime_road}
\end{figure}

风险性:平均碰撞风险、最小安全距离极值

效率:单位时间有效场景发现数(场景/小时)

\begin{table}[htb]
\centering
\small
\renewcommand{\arraystretch}{1.1}
\caption{NSGA-II、随机搜索与人工设计场景库的性能对比}
\label{tab:baseline_comparison}
\resizebox{0.95\linewidth}{!}{
\begin{tabular}{c|c|c|c|c|c}
\hline
算法 & ASIL-D占比 (\%) & 参数熵 (bits) & 平均碰撞风险 & 最小安全距离极值 (m) & 效率 (场景/小时) \\
\hline
NSGA-II & 45 & 6.7 & 0.73 & 0.8 & 620 \\
\hline
随机搜索 & 39 & 4.2 & 0.58 & 1.5 & 850 \\
\hline
人工设计库 & 15 & 3.1 & 0.41 & 2.3 & 120 \\
\hline
\end{tabular}
}
\end{table}


核心结论:
\subsection{对抗车辆类场景生成效果}

NSGA-II的ASIL-D场景发现率是高于随机搜索,高于人工库的
\begin{figure}[htbp]
\centering
\begin{minipage}{0.45\textwidth}
\centering
\includegraphics[width=\linewidth]{figure_12.png}
\caption{前车紧急制动效果图}
\label{fig:emergency_braking}
\end{minipage}
\hfill
\begin{minipage}{0.45\textwidth}
\centering
\includegraphics[width=\linewidth]{figure_13.png}
\caption{旁车强行加塞效果图}
\label{fig:lane_change}
\end{minipage}
\end{figure}

参数熵指标显示NSGA-II生成场景的多样性显著优于对比方法(p<0.01,Mann-Whitney U检验)
(一)前车紧急制动场景

随机搜索在效率上占优,但其发现的高风险场景多集中于单一模式(如急刹场景占比82\%)
前车紧急制动是测试主车反应能力的经典场景。如图\ref{fig:emergency_braking}对抗车辆需要在主车接近时触发紧急制动,以最小化主车的安全距离。Smooth-PPO算法学习到了渐进式制动策略,制动过程分为预警制动、持续压缩和极限增强三个阶段,使TTC呈现平滑下降形态。与Attention-DQN的触发式急刹相比,Smooth-PPO生成的制动曲线更加平滑,对抗行为更加真实自然,接近人类驾驶中的点刹操作,能够在保持高危险度的同时有效控制碰撞风险。

\section{超参数选择的验证}
(二)旁车强行加塞场景

在强行加塞场景中,如图\ref{fig:lane_change}对抗车辆需要从相邻车道切入主车前方。Smooth-PPO学习到了加速接近→平滑变道→适度减速的完整动作序列,油门变化呈现平滑的先升后降形态,转向角度从零逐渐增加至最大值后回正,形成典型的松油转向操作模式。与Attention-DQN的离散动作导致的阶梯状突变相比,Smooth-PPO的连续动作序列使加塞行为更加平滑自然,动作之间的时序协同性更好,更符合真实驾驶习惯。

多因子实验设计
采用正交实验法(L9正交表)分析NSGA-II的4个关键参数:

因子:种群规模(50/100/200)、进化代数(30/60/90)、交叉概率(0.6/0.7/0.8)、变异概率(0.1/0.2/0.3)
\subsection{行人危险类场景生成效果}
(一)行人横穿马路场景

响应变量:Hypervolume指标、计算耗时
行人横穿马路是城市道路中最常见的行人与车辆冲突场景。如图\ref{fig:crossing_road}主车需要准确检测行人位置、判断横穿方向并预测其轨迹。Smooth-PPO算法的随机策略使行人智能体能够探索更丰富的触发时机,在不同回合中以可变的横穿速度通过道路,增加了主车轨迹预测的难度。与Attention-DQN固定速度、固定时机的横穿行为相比,Smooth-PPO生成的行人行为具有更强的多样性和不确定性,能够更全面地检验自动驾驶系统对行人意图的感知和预测能力。

结果分析
(二)行人闯红灯场景

行人闯红灯场景中,行人在红灯状态下横穿斑马线,打破了主车对交通规则的预期。如图\ref{fig:crossing_red_light}主车在绿灯通行时,通常难以预判行人的违规行为。Smooth-PPO算法学习到的策略能够精确控制闯红灯行为的触发时机,使行人出现在主车行驶路径上的时刻与主车到达路口的时机高度吻合。
\begin{figure}[htbp]
\centering
% 使用占位符代替实际图像
\includegraphics[width=0.8\textwidth]{figure14.png}
\caption{超参数对Hypervolume的影响(标准化回归系数)}
\label{fig:hyperparam}
\centering
\begin{minipage}{0.45\textwidth}
\centering
\includegraphics[width=\linewidth]{figure_14.png}
\caption{行人横穿马路效果图}
\label{fig:crossing_road}
\end{minipage}
\hfill
\begin{minipage}{0.45\textwidth}
\centering
\includegraphics[width=\linewidth]{figure_15.png}
\caption{行人闯红灯效果图}
\label{fig:crossing_red_light}
\end{minipage}
\end{figure}

关键发现:
(三)鬼探头场景

种群规模对Hypervolume影响最大(β=0.63),但边际效益递减(200 vs 100仅提升7\%)
鬼探头是行人危险类场景中最具挑战性的场景。如图\ref{fig:ghost_appearance}行人从视野盲区突然冲出,在出现之前完全处于主车的感知盲区之中。Smooth-PPO算法通过连续动作空间实现了触发距离的精确控制,使行人冲出的时机能够与主车位置精确匹配,最大程度压缩主车的反应窗口。

\begin{figure}[htbp]
\centering
\includegraphics[width=0.8\textwidth]{figure_16.png}
\caption{鬼探头效果图}
\label{fig:ghost_appearance}
\end{figure}

进化代数超过60代后优化增益不显著(ΔHV<1.5\%)

最优参数组合:种群100 + 代数60 + 交叉0.7 + 变异0.2(验证集HV=0.812)

\subsection{多因素耦合场景生成效果}
(一)夜间行人横穿场景

\section{消融实验}
夜间行人横穿场景结合了低光照条件和行人横穿双重挑战。如图\ref{fig:nighttime_crossing}在夜间低光照环境下,行人轮廓和运动难以清晰捕捉,检测难度显著增加。Smooth-PPO算法在能见度受限条件下仍能有效控制对抗行为,生成的行人横穿行为在主车感知能力下降的窗口期内精准触发。与Attention-DQN相比,Smooth-PPO的连续动作空间使行人的横穿速度和触发时机可连续调节,能够充分利用光照不足造成的感知延迟,生成更具威胁性的场景。该场景对自动驾驶系统在夜间环境下的感知能力和反应速度提出了严峻考验。

为了系统评估 NSGA-II 多目标优化框架中各关键组件的作用,我们设计了一组消融实验,依次移除核心模块以观察其对算法性能的影响。具体实验设置如下:
(二)雾天鬼探头场景

雾天鬼探头是全部场景中挑战性最高的类型,同时包含浓雾环境的感知困难和行人盲区冲出的突发性双重因素。如图\ref{fig:foggy_ghost_appearance}浓雾条件下有效探测距离大幅缩短,行人从遮挡物后方冲出时更加难以提前预警。Smooth-PPO算法在该场景中展现出最强的鲁棒性,通过精确控制行人冲出的触发距离和冲出速度,使主车首次感知到行人时的可用反应时间被压缩至极短的范围。与Attention-DQN相比,Smooth-PPO的随机策略使行人冲出时机具有更强的灵活性,能够在不同回合中生成多样化的危险模式;连续动作空间则使触发距离的控制精度大幅提升,能够稳定在最优触发区间内。该场景对自动驾驶系统的感知召回率、决策实时性和控制精度提出了全方位的要求,是检验系统极限能力的重要测试用例。
\begin{figure}[htbp]
\centering
\begin{minipage}{0.45\textwidth}
\centering
\includegraphics[width=\linewidth]{figure_17.png}
\caption{夜间行人横穿效果图}
\label{fig:nighttime_crossing}
\end{minipage}
\hfill
\begin{minipage}{0.45\textwidth}
\centering
\includegraphics[width=\linewidth]{figure_18.png}
\caption{雾天鬼探头效果图}
\label{fig:foggy_ghost_appearance}
\end{minipage}
\end{figure}

\section{生成场景的.xosc文件输出}
\subsection{.xosc文件的生成方法与流程}
OpenSCENARIO是ASAM(自动化及测量系统标准协会)制定的自动驾驶仿真场景描述标准,采用XML格式定义动态交通场景。本研究采用Python编程语言结合开源库scenariogeneration进行.xosc文件的自动生成。该库提供了完整的OpenSCENARIO XML构建接口,支持场景参数化定义和批量生成\cite{yu2021openscenario}。整体生成流程如图~\ref{fig:xosc_generation_flow}所示。
\begin{figure}[htbp]
\centering
\includegraphics[width=0.8\textwidth]{figure_19.png}
\caption{.xosc文件生成流程图}
\label{fig:xosc_generation_flow}
\end{figure}

Baseline(完整 NSGA-II):包括非支配排序(Non-dominated Sorting)、拥挤度计算(Crowding Distance Calculation)和精英保留策略(Elitism Preservation)。
(1)训练结果与轨迹参数获取:

Ablation 1:移除拥挤度计算,仅保留非支配排序
首先,从强化学习模型(Attention-DQN/Smooth-PPO)的训练输出中,提取主车与对抗车辆的完整仿真轨迹数据,包括车辆状态、控制指令与交互行为序列,为场景构建提供基础数据

Ablation 2:移除精英保留策略,即下一代个体不包含当前种群中表现最优的解。
(2)状态 / 行为 / 环境参数提取:

Ablation 3:用加权求和的单目标函数替代多目标优化机制
对轨迹数据进行解析,提取构建场景所需的核心参数:包括交通参与者的初始状态(位置、速度、朝向)、动态行为(加速、制动、转向)、交互触发条件(如车距阈值、时间节点)以及环境参数(天气、光照、路面状态)

各模型在三个性能维度上进行了评估:
Hypervolume (HV) 作为衡量解集质量的指标,ASIL-D占比反映高安全等级场景的发现能力,参数熵用于衡量生成场景的多样性。
(3)模板构建与 XML 结构生成:

\begin{table}[htbp]
\centering
\caption{消融实验结果对比}
\begin{tabular}{llll}
\hline
模型变体 & Hypervolume & ASIL-D占比 (\%) & 参数熵 (bits) \\
\hline
完整NSGA-II & 0.812 & 45.0 & 6.7 \\
\hline
Ablation 1 & 0.734 & 39.0 & 4.8 \\
\hline
Ablation 2 & 0.681 & 30.0 & 5.2 \\
\hline
Ablation 3 & 0.598 & 17.3 & 3.6 \\
\hline
\end{tabular}
\end{table}
基于 ASAM OpenSCENARIO标准,以预定义的场景模板为基础,将提取的参数填入对应的 XML 节点中,构建完整的场景结构,包括实体定义、行为序列、触发条件与环境配置。

拥挤度计算对解集多样性的关键作用
移除拥挤度计算(Ablation 1)后,参数熵由 6.7 降至 4.8,下降约 28.4\%,表明解的分布范围缩窄,模型在搜索空间中的覆盖能力降低。此外,ASIL-D 占比下降了 6 个百分点(从 45.0\% 降至 39.0\%),说明高风险场景的识别能力也受到影响。
(4).xosc 文件输出:

精英保留策略对高质量场景发现的促进作用
Ablation 2 中移除精英保留导致 ASIL-D 占比进一步下降至 30.0\%,相比完整模型降低了 15\%,显示精英策略在保留高价值解方面具有显著优势。多样性(参数熵)也略有下降,但不如拥挤度影响显著。
将构建完成的 XML 结构格式化输出,保存为符合规范的.xosc文件,文件中包含场景的所有定义信息,可直接被主流仿真工具解析。

多目标优化的必要性
Ablation 3 使用单目标加权求和替代原有的 Pareto 优化策略,导致 Hypervolume 降至 0.598,ASIL-D 占比最低,仅为 17.3\%。结果表明该方法在处理多目标权衡时能力有限,无法有效挖掘高安全等级场景。
(5)场景验证与 CARLA 仿真复现:

与随机搜索对比
随机搜索的 ASIL-D 占比为 39.0\%,虽然接近于 Ablation 1,但在没有优化机制支持下,稳定性与整体解集质量(HV 与熵)显著低于完整 NSGA-II。
\section{可视化结果和分析}
\subsection{NSGA-II和随机搜索算法结果分析}
最后,将生成的.xosc文件导入 CARLA 模拟器中进行加载与运行,验证场景的可复现性与逻辑正确性,确保生成的场景能够在仿真环境中按预期执行。

\subsection{.xosc文件实现}
以 ASAM OpenSCENARIO 1.2 为标准,预定义 XML 模板 template.xosc,采用 \texttt{\{\{key\}\}} 占位符标记动态字段,\texttt{\{\{\#section\}\}}...\texttt{\{\{/section\}\}} 标记条件块。模板包含 FileHeader、ParameterDeclarations、RoadNetwork、Entities、Storyboard 等核心标签。

本文使用旁车加塞的.xosc文件为例,对文件的实现进行说明。

(一)文件头

如图~\ref{fig:xosc_header}所示,声明所遵循的OpenSCENARIO标准版本号,以及文件的创建工具和描述信息。这是XML文件的起始部分,确保后续内容符合标准规范。
\begin{figure}[htbp]
\centering
\includegraphics[width=0.8\textwidth]{figure12.png}%调整宽度为文本宽度的80%
\caption{ASIL等级分布柱状图} % 自动编号(如"图1:")
\label{fig:example} % 用于交叉引用
\end{figure}
\subsection{NSGA-II算法的Pareto前沿解集}
展示了 NSGA-II 算法选出的 Pareto 前沿解集,用于智能驾驶危险场景筛选中的两个关键优化目标:
\centering
\includegraphics[width=0.8\textwidth]{figure_20.png}
\caption{.xosc文件头示例}
\label{fig:xosc_header}
\end{figure}

目标 1(X轴):最小安全距离,越大越好(表示更安全)。
(二)参数声明

如图~\ref{fig:xosc_parameters}所示,定义场景中可调节的关键参数变量,如主车速度、对抗车辆速度、初始相对距离、触发阈值等。通过参数声明机制,用户可以批量修改参数值,快速生成同一逻辑场景下的多个具体实例,便于参数化测试。
\begin{figure}[htbp]
\centering
\includegraphics[width=0.8\textwidth]{figure_21.png}
\caption{.xosc文件参数声明示例}
\label{fig:xosc_parameters}
\end{figure}

目标 2(Y轴):碰撞风险,越小越好(表示更低风险)。
(三)道路网络

如图~\ref{fig:xosc_road_network}所示,指定场景所依托的地图文件(OpenDRIVE格式的.xodr文件),定义道路的几何拓扑和车道结构。该部分确保场景中的车辆运动符合道路物理约束。
\begin{figure}[htbp]
\centering
\includegraphics[width=0.8\textwidth]{figure13.png}%调整宽度为文本宽度的80%
\caption{NSGA-II算法选出的Pareto前沿解集} % 自动编号(如"图1:")
\label{fig:example} % 用于交叉引用
\end{figure}
\centering
\includegraphics[width=0.8\textwidth]{figure_22.png}
\caption{.xosc文件道路网络示例}
\label{fig:xosc_road_network}
\end{figure}

(四)实体定义

如图~\ref{fig:xosc_entities}所示,声明场景中所有参与的交通参与者,包括主车、对抗车辆、行人等。每个实体需指定其车辆模型(如audi.a2、tesla.model3)、类型以及初始绑定关系。
\begin{figure}[htbp]
\centering
\includegraphics[width=0.8\textwidth]{figure_23.png}
\caption{.xosc文件实体定义示例}
\label{fig:xosc_entities}
\end{figure}

(五)故事板

\begin{figure}[htbp]
\centering
\includegraphics[width=0.8\textwidth]{figure_24.png}
\caption{.xosc文件故事板示例}
\label{fig:xosc_storyboard}
\end{figure}

如图~\ref{fig:xosc_storyboard}所示,场景描述的核心部分,定义场景的动态行为逻辑。故事板由多个行为单元(Act)组成,每个行为单元包含若干操作(Maneuver)和事件(Event),通过触发条件(Condition)来控制实体的动作执行时序。






\newpage

\subsection{场景文件的复用价值}
生成的.xosc文件具有以下应用价值:

(一)跨平台兼容性:.xosc文件符合ASAM OpenSCENARIO国际标准,可在CARLA、VTD、rFpro等主流仿真平台中直接加载运行,无需进行格式转换,便于不同研究团队之间的场景共享和结果复现。

(二)参数化测试能力:通过修改参数声明部分,可以批量调整场景中的关键参数,快速生成同一逻辑场景下的多个具体实例,显著提升测试效率。

(三)测试用例标准化:生成的.xosc文件可作为标准化的测试用例库,用于自动驾驶系统的批量回归测试,确保测试结果的可对比性和可复现性。

(四)算法性能验证:生成的.xosc文件可以分享给其他团队,用于算法性能的横向对比验证,有助于建立统一的场景基准集。
Loading
Loading