- 博客(62)
- 资源 (1)
- 收藏
- 关注
原创 控制模块的真实难点:不是算出控制量,而是让车开得像人
控制模块的复杂性远超单纯轨迹跟踪算法,其实车落地面临多重挑战:需处理车辆延迟、执行器限制、轨迹波动等现实约束,兼顾安全、舒适与自然体感。横向控制需解决稳定性问题,纵向控制则要确保加减速自然,同时控制源切换的平顺性直接影响用户体验。调试需系统排查规划轨迹、定位信号、执行延迟等全链路因素。真正的控制工程需在算法基础上整合轨迹预处理、误差补偿、仲裁保护等模块,平衡数学精度与人类驾驶习惯,最终实现"跟得准、开得稳、退得顺"的综合目标。(149字)
2026-08-14 18:28:48
332
原创 抑制、故障和降级:辅助驾驶系统的退出策略
《辅助驾驶系统退出策略的工程化设计》摘要:文章系统解析了辅助驾驶系统退出机制的三类场景——抑制(条件不足)、故障(硬件异常)和降级(功能受限),强调分层处理原则(保持/等待/超控/降级/退出)。提出降级决策应优先排除关键故障,在安全边界内保留基础功能,并通过平滑控制权切换保障体验。指出完善的诊断记录对问题溯源至关重要,最终构建"可解释、可诊断、可验证"的工程体系,避免"全有或全无"的粗暴退出模式,从而提升系统可靠性与用户信任度。(149字)
2026-07-23 11:05:21
360
原创 状态机设计:Off、Idle、Standby、Active、Override、Fault
本文探讨了辅助驾驶系统中状态机设计的重要性。文章指出,状态不明是辅助驾驶系统的主要痛点,会导致功能不可用、问题难复现等。作者提出六类核心状态(Off、Idle、Standby、Active、Override、Fault),强调状态迁移条件和行为边界比状态名称更重要。状态机需要与仲裁、诊断配合,确保系统行为可解释。文章还列举了常见设计问题,并提供了状态机设计检查清单,强调状态机应使系统行为可读、可测、可复盘,最终目标是让辅助驾驶系统不再是个"黑盒"。
2026-07-22 14:10:32
316
原创 NOA 系统架构:高算力侧、车控侧和功能仲裁如何分工
本文探讨了NOA(领航辅助驾驶)系统架构设计的核心问题:功能模块的合理分工与控制权流转。文章指出,NOA系统需明确高算力侧、车控侧和功能仲裁三者的职责边界:高算力侧专注于复杂场景理解和高级行为生成,输出功能请求而非直接控制命令;车控侧负责车辆信号适配、基础功能执行和安全兜底;功能仲裁则需统一多路状态,输出唯一功能模式和控制源。同时强调控制仲裁需处理切换体感,通信需分层设计(实时控制与状态诊断分离),控制权应有序流转(高级功能→基础功能→驾驶员)。最后列举了六大常见架构问题,并提出沿控制链路逐层调试的方法和架
2026-07-21 18:13:05
346
原创 CUDA C++编程
本文为CUDA编程入门指南,系统介绍了CPU/GPU异构计算的基本概念和CUDA编程模型。主要内容包括:1. 比较CPU和GPU架构差异,说明GPU更适合并行计算;2. 详细讲解CUDA编程模型的核心概念:线程层次结构(网格、块、线程)、内存层次结构(全局内存、共享内存等);3. 介绍CUDA Runtime API的关键编程接口,包括设备内存管理(cudaMalloc/cudaFree)、共享内存使用、锁页内存优化、常量内存和纹理内存的特殊应用;4. 通过矩阵乘法等示例代码,展示了如何利用共享内存提升性能
2026-07-15 17:56:33
243
原创 辅助驾驶状态机、仲裁和降级到底解决什么问题?
本文聚焦辅助驾驶系统中常被忽视的关键模块——状态机、仲裁和降级机制,指出这些模块虽不如感知、规划等核心算法引人注目,却直接决定用户体验下限。状态机通过定义Off/Idle/Active等状态及迁移条件,确保系统行为可解释;仲裁模块解决多功能冲突,统一控制输出;降级策略则实现从高级功能到基础能力的平滑过渡,避免粗暴退出。文章强调三者需形成闭环,并提出工程自查清单,包括状态定义、仲裁优先级、故障分离等要点。这些机制共同保障了系统在复杂条件下的稳定性和可预测性,是辅助驾驶从实验室走向实际应用的重要支撑。
2026-07-15 15:36:22
327
原创 为什么 NOA 系统不能只看规划算法?
文章摘要:NOA系统的核心不仅在于规划算法,更需要完整的工程闭环协同。规划模块虽决定行驶意图,但系统还需处理传感器可靠性、车辆状态、驾驶员干预等复杂因素。实际应用中,场景模型稳定性、控制执行平顺性、功能仲裁一致性等工程细节比单纯算法更重要。NOA的真正挑战在于让规划、状态机、控制、诊断等模块在复杂环境下形成稳定闭环,确保系统行为连续可靠。一个成熟的NOA系统需要同时满足轨迹合理性、控制可执行性、状态可解释性三大要求,这远超出单一规划算法的范畴。(149字)
2026-07-15 10:42:51
293
原创 自动驾驶系统集成实战:从算法到工程,如何打造稳定可靠的辅助驾驶体验
摘要:本文剖析了自动驾驶系统集成的核心挑战与设计方法。不同于单点算法优化,系统集成的关键在于让感知、规划、控制等模块在动态环境中稳定协同。文章基于领航辅助与基础辅助驾驶的融合架构,提出了九大设计维度:双主线计算分工、模块闭环组织、可解释状态机设计、抑制与故障分离、多功能仲裁机制、控制平滑切换、通信分层架构、驾驶员监控闭环及工程化验证要点。通过构建可诊断、可验证的集成框架,将前沿算法转化为用户可感知、可信任的驾驶体验。特别强调状态机设计需清晰回答三个问题:能否控制、为何不可用、后续处理策略,这是提升系统透明度
2026-07-14 11:12:50
343
原创 智能驾驶中多传感器融合闲聊
通过统一的主机给各个传感器提供基准时间,各传感器根据已经校准后的各自时间为各自独立采集的数据加上时间戳信息,可以做到所有传感器时间戳同步,即做到各传感器采集数据时钟源统一(时间尺度统一)。根据障碍物信息计算碰撞所需帧数与设置的最大碰撞时间对应帧数的差,缩放到2-4之间,如果age小于这个阈值,就是背景障碍物,不发送到融合模块。2)融合策略:每个传感器有单独的处理模块,负责对传感器的数据进行处理并进行跟踪。3) 数据交互:接收传感器发送的障碍物信息,采用即时融合的策略,即有传感器数据更新就更新融合障碍物。
2024-08-29 18:23:08
1209
原创 深度学习模型评价方法
关于TP、TN、FP、FN这四个指标的第一个字母True和False表示预测状态:正确或者错误,第二个字母Positive和Negative表示预测的样本属性:正例或负例。所以TP和TN表示的是预测正确,TP是真正例,TN是真负例。FP和FN表示的是预测错误,FP是假正例,FN是假负例。1.2 准确率(Accuracy)、精确率(Precision)、召回率(Recall)准确率Accuracy统计的是所有数据(T+F),计算公式是所有T的数据除以T和F的总和。
2024-08-11 22:28:38
1024
原创 C++特性:移动,placement new
#include <iostream>#include <vector>#include <thread>using namespace std;class Test {public: Test(string& label_) :label(label_){} Test(string&& label_):label(move(label_)){} // copy constructor Test(co...
2020-08-21 18:22:33
345
原创 关于CornerNet-Lite在BDD上验证的效果分析
最近一段时间主要集中在目标检测方面的工作,由于项目对实时性和AP的要求,对算法的要求比较高,anchor based 的方法基本达到了速度与精度的trade off的瓶颈,继而anchor free 的方法死灰复燃。 CornerNet-Lite:Squeeze 方法自然出现在了候选的名单中,通过在bdd上的验证,发现其存在的明显问题如下图: 问题一:明显的...
2019-08-19 10:12:30
691
1
原创 配置OpenVINO的过程
配置过程中使用的文件在“openViNo配置”文件夹下第一部分步骤一、根据如下地址,安装要求准备硬件环境intel cpu型号和软件环境Microsoft Windows* 10 64-bit。
2019-04-14 11:23:45
373
原创 AnkhSVN教程
安装完AnkhSVN后如果没有默认显示,则需要设置:工具->选项->源代码管理->插件选择->AnkhSVN-Subversion Support for Visual Studio(下图为vs2013英文版示意图)显示安装成功后对于已经上传SVN的代码文件前会有蓝色勾号标志显示在对代码进行修改后,标志会变红保存后标志会变成红色...
2019-03-21 13:16:35
3998
原创 C/C++代码规范点检表
检 查 人:________________检查日期:2018年_____月_____日审查内容:____________________________________________________________________审查结果:通过□ 不通过□说 明:___________________________________________...
2019-03-21 12:54:37
594
原创 image enhancement
void brightness_and_constrast_auto(const cv::Mat& src, cv::Mat& dst, float clip_hist_percent){ CV_Assert(clip_hist_percent >= 0); CV_Assert(src.type()==CV_8UC1); int hist_size...
2019-02-11 13:00:30
718
翻译 Focal Loss--Keras
import keras.bankend as Kimport tensorflow as tfdef catergorical_focal_loss(gamma = 2.0, alpha = 0.25): """ Implementation of Focal Loss from the paper in multiclass classification For...
2019-02-11 12:45:09
1770
2
原创 二叉树---遍历
BinaryTree.h:#pragma once#include <queue>template<class T>class BinaryTree;template<class T>class TreeNode{public: TreeNode() :leftChild(NULL), rightChild(NULL) { ...
2019-02-10 22:04:03
292
原创 基数排序
#include <iostream>#include <list>using namespace std;void print(int data[], int n){ cout << "{ "; for (int i = 0; i < n; i++) { cout << data[i] &l...
2019-02-07 20:54:11
298
原创 链式队列
#pragma once template<class Object>class Queue{public: Queue(); ~Queue(); bool isEmpty() const; const Object& GetFront() const;//拿出队首的数据 void enqueue(const Object&a...
2019-02-07 09:54:07
417
原创 链式栈
#pragma onceusing namespace std;template<class T>class LinkedStack;template<class T>class ChainNode{ friend class LinkedStack<T>;private: ChainNode(const T& the...
2019-02-06 22:19:38
221
原创 双向链表
#pragma onceclass IteratorMismatchException{};template <typename Object>class List{private: struct Node { Object data; Node *prev; Node *next; ...
2019-02-06 20:16:26
246
原创 简单的双向链表原理
#include <iostream>//带表头的双向链表using namespace std;class DblList;class DblListNode{ friend class DblList;public: int data;//数据域 DblListNode *llink;//指向左边节点 DblListNode *rli...
2019-02-06 20:12:30
412
原创 归并排序
#include <iostream>#include <algorithm>using namespace std;//initList:初始数组//mergeList:合并之后的数组//l:数组的下标//m:数组的下标//n:一共有多少个数要合并template <typename T>void Merge(T *initList, T ...
2019-01-31 23:04:57
197
原创 快速排序--Quick Sort
#include <iostream>using namespace std;void QuickSort1(int iArray[], int left, int right){ //快速排序之前先判断一下当前待排序数组元素个数是不是大于1 否则就没有必要排序 if (left >= right) { //直接退出排序代码 没...
2019-01-31 23:03:21
231
原创 插入排序
#include <iostream>using namespace std;template <typename T>void Insert(T& e, T *a, int i){ a[0] = e; while (e < a[i]) { a[i + 1] = a[i]; i--; ...
2019-01-20 19:28:10
199
原创 Permutation
template <typename T>void Permutations(T* list, const int k, const int n){ if (k == n) { for (int i = 0; i <= n; ++i) { std::cout << list[i]; ...
2019-01-19 22:36:23
956
原创 加载数据方式
需要加载的数据:param.yml%YAML:1.0 padding: 1.0 output_sigma_factor: 0.062 captureData.h:#include <iostream>#include <opencv.hpp>using namespace cv;using namespace std;cl...
2019-01-19 13:22:31
373
翻译 基于surf的图像拼接
#include <stdio.h>#include <iostream>#include <cv.h>#include <highgui.h>#include "opencv2\opencv.hpp"#include "opencv2\core\core.hpp"#include "opencv2\highgui\highgui.h
2019-01-19 00:02:16
3145
1
原创 折半递归和迭代查找法
int BinarySearch_Iter(int *list, const int x, const int n){ int left = 0; int right = 0; while (left <= right) { int mid = (left + right) / 2; if (x < list[mid])...
2019-01-17 22:23:02
404
原创 交换方法
void swap(int *px, int *py){ int temp = *px; *px = *py; *py = temp;}void swap(int &x, int &y){ int temp = x; x = y; y = temp;}template<class T>void swap(T...
2019-01-17 21:25:05
247
原创 顺序排序
顺序排序template <typename T>T SequentialSearch(T *list, const int num, const T x){ int i = 0; for (; i < num; i++) { if (list[i] == x) { return i; ...
2019-01-17 21:22:38
627
原创 选择排序
选择排序template <typename T>void SelectSort(T* list, int num){ for (int i = 0; i < num-1; ++i) // num-1 { int min = i; int j = 0; for (int j = i + 1; j < n...
2019-01-17 21:21:43
218
原创 冒泡排序
冒泡排序template <typename T>void BubbleSort(T *list, T n){ for (int i = 0; i < n - 1;++i) { for (int j = 0; j < n - i - 1; ++j) { if (list[j] > lis...
2019-01-17 21:20:40
210
原创 二分查找(折半查找)
二分查找(折半查找)template <typename T>int BinarySearch(T *list, const T x, const int n){ int low, high, mid; low = 0; mid = 0; high = n - 1; while (low <= high) { ...
2019-01-17 21:19:47
255
3
原创 SHELL--rename images by removing some string
#!/bin/shsuffix="png"dir=$(eval pwd)for image in $(ls $dir | grep .${suffix}) do name=${image%_*} mv $image ${name}.${suffix} doneecho " finish"
2019-01-14 12:42:27
196
原创 图像分割之sauvola
void sauvola(unsigned char * grayImage, unsigned char * biImage, int w, int h, int k, int windowSize){ int whalf = windowSize >> 1; int i, j; int IMAGE_WIDTH = w; int IMAGE_HEI...
2018-12-04 09:28:18
535
1
转载 去除图像中光照不均匀
/*其主要思路为:1、求取源图I的平均灰度,并记录rows和cols;2、按照一定大小,分为N*M个方块,求出每块的平均值,得到子块的亮度矩阵D;3、用矩阵D的每个元素减去源图的平均灰度,得到子块的亮度差值矩阵E;4、用双立方差值法,将矩阵E差值成与源图一样大小的亮度分布矩阵R;---可以使用使用除法5、得到矫正后的图像result = I - R;*/void RemoveLigh...
2018-12-04 09:27:04
13431
原创 同态滤波
void HomoFilter(cv::Mat srcImg, cv::Mat &dst){ srcImg.convertTo(srcImg, CV_64FC1); dst.convertTo(dst, CV_64FC1); //第一步,取对数 for (int i = 0; i < srcImg.rows; i++) { d...
2018-12-04 09:25:47
428
1
20200308_Deep Learning on Radar Centric 3D Object Detection.pdf
2020-08-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅