写在前面

本文是作者在学习上海交通大学AuTop战队开源算法时列的提纲备忘,并做了很多资料的链接,像是一个目录,分享给大家一起学习,
如有侵权,联系删除;
参考:https://github.com/SJTU-AuTop

目录

  • 写在前面
    • (一)[二值化的技巧](https://zhuanlan.zhihu.com/p/391051197)
      • 1.[ 固定阈值二值化](http://t.csdn.cn/idWrg)
      • 2. [大津法(OTSU)阈值](http://t.csdn.cn/GCaYZ)
      • 3. [自适应阈值](http://t.csdn.cn/fguKM)
    • (二)[边线的提取](https://zhuanlan.zhihu.com/p/391392970)
      • 1. “迷宫法”进行边线提取
      • 2. 提出一边巡线一边二值化的算法。即进行“迷宫法”巡线时,直接输入原始灰度图像,当需要某个点的二值化结果时,才对其进行一次自适应二值化。
    • (三)[标定与透视变换]()
      • 1. 相机标定(张氏标定法)
      • 2. 射影变换
      • 3. PnP算法
      • 4. 透视变换在边线提取中的应用
    • (四)[边线处理与方向控制](https://zhuanlan.zhihu.com/p/391797246)
      • 1.边线处理
    • (五)[元素识别](https://zhuanlan.zhihu.com/p/391253271)
      • 1. 角点计算方法
      • 2. 元素识别详解
      • [角点(Corner Point)](http://t.csdn.cn/dYSLc)
    • (六)[Openart识别方案](https://zhuanlan.zhihu.com/p/391216590)
      • 一.识别基本思路
      • 二、方案讲解
      • 三.模型训练
        • 数据增强方法
    • (七)三岔数字识别
    • (八)系统辨识与速度控制算法
      • 1. 常规PID控制算法
      • 2. PID调参方案
        • 1. 实验试凑法
        • 2. 基于MATLAB系统辨识的参数整定
        • 3. 其它整定方法
      • 3、改进式PID思想
    • 九、[速度控制方案](https://zhuanlan.zhihu.com/p/391919279)
      • 1、速度控制方案
        • 1-1常规速度控制
        • 1-2特殊元素速度控制
        • 1-3多模态PID切换
      • 2.差速标定方法
      • 3. 机械机构与轮胎
    • 十、[电感控制方案](https://zhuanlan.zhihu.com/p/392246246)
      • 1 电磁基础介绍
      • 2.电磁滤波与控制方案
        • 2-1 电感矫正与归一化
        • 2-2.滤波
      • 3.控制算法
      • 4.、电磁元素识别与控制
    • 十一、[激光打靶](https://zhuanlan.zhihu.com/p/392971207)
      • 1、坐标系定义
      • 2、模型建立
      • 3、参数标定
        • 3.1 手眼标定
        • 3.2 相机-激光标定
      • 4.模型简化

(一)二值化的技巧

1. 固定阈值二值化

2. 大津法(OTSU)阈值

3. 自适应阈值

总结:

(二)边线的提取

1. “迷宫法”进行边线提取

2. 提出一边巡线一边二值化的算法。即进行“迷宫法”巡线时,直接输入原始灰度图像,当需要某个点的二值化结果时,才对其进行一次自适应二值化。

  • 这样一个简单的优化,直接使得我们的算法运行速度极快,O3编译优化。

(三)标定与透视变换

1. 相机标定(张氏标定法)

  • 标定是对特定的相机成像模型中的参数进行拟合的过程。

2. 射影变换

  • 使用透视变换(射影变换),我们可以将相机斜向下得到的赛道图像变换成完全的俯视图。由于赛道正好在地平面上,满足同一平面的要求,所以可以使用透视变换完成。(这也同时也代表着该算法对于坡道地形无能为力)
  • 使用4对点来计算一个透视变换矩阵(不推荐)
  • 通过测定当前相机坐标系和俯视情况下相机坐标系的相对位姿来计算透视变换矩阵 H H H(参考文献:《视觉SLAM14讲》第七章 视觉里程计)

3. PnP算法

  • PnP算法是一种常于计算机视觉中测定坐标系之间变换关系的方法
  • PnP计算得出的旋转矩阵
  • 参考《视觉SLAM14讲》第七章的内容。

4. 透视变换在边线提取中的应用

  • 从原图中提取到了两条赛道边界。利用去畸变和透视变换,我们可以得到两条处于俯视视角下的赛道边线

(四)边线处理与方向控制

1.边线处理

  • 纯跟踪控制

使用纯跟踪控制可以使得小车从当前点平滑的过渡到目标点

  • 提取赛道中线

在确定了两条赛道边线后,从图像下方往上依次取左右边线的一个点,将这两个点的中点当作中线上的一点。这个方法对于直道效果不错,但并不适合大转角处。

  • 三角滤波
  • 等距采样
  • 方向控制

一种常用的设定预锚点的方式是使得预锚点和当前速度正相关,即高速行驶时“看”远一些,低速行驶时“看”近一些。

(五)元素识别

1. 角点计算方法

  • 角点就是极值点,即在某方面属性特别突出的点,是在某些属性上强度最大或者最小的孤立点、线段的终点。
  • 得到稳定且等距的边线前提下,直接取每个点前后20cm构成一个三点,利用向量的角度计算公式算实际角度即可。
  • 为方便判断,又进行了角度的非极大抑制,保证只留下角度最大的点,即角点。这样算出来的角度很稳定,跟实际也很接近
  • 判断元素时候便可直接通过角点判断

2. 元素识别详解

  • 左库循左线,出右库循右线,出库时可适当调近预瞄以获得更好的控制效果。
  • 入库完成标志为:左线右线重合,此时角点判断得到两线都存在左右L角点且L角点较近
  • 斑马线识别方案:

将透视变换视角下得到的中线反变换回原图,取每一中线点对行做处理,对该点左右各一定区域的黑白区域进行循环记录,黑白区域应交替出现。若黑白交替次数大于阈值,且每一区域点数大于指定阈值

  • 三叉的识别与控制
  • 圆环的识别与控制
  • 十字识别与控制
  • 长直道,坡道,上坡的时候微踩一脚刹车,克制飞坡效果显著
  • 小S弯,方向环控制算法为Pure Pursuit方案

角点(Corner Point)

角点的具体描述可以有几种:

(六)Openart识别方案

一.识别基本思路

  1. Openart上模型的部署
  • 直接使用tensorflow将h5模型转化为tflite模型,并量化实现
    **(详细步骤可参考nxp工程师Rocky Song的方案,在github上有详细开源记录。)
  • 通过nncu工具将训练好的h5模型进行量化转化
    ** 第二种方案,其使用更加方便,量化效果较好,且时间上更优。

二、方案讲解

  1. 数字识别
  • AuTop方案:基于全局分类器的设计思想,。在识别到三叉路口后,取1方框为ROI,使用训练好的分类模型直接对这一区域进行分类识别。
  • 逐飞方案:基于Openart的find_rects()可以方便地找到数字矩形的边框,再使用一个十一分类模型即可快速对十个数字进行识别。这一方案的问题在于find_rects()函数本身对光照、背景、设定阈值等较为敏感,找寻方框会耗费大量的时间,甚至可能找不到对应的矩形,运动状况下也很难发现对应的矩形。
  1. .Apriltag识别
  • 在合适的距离内对中线点各取15×15(或更小)的区域,对每一区域分别计算黑色点占比及跳变点占比(方差理论来讲亦可),满足阈值即为Apriltag
  1. 水果动物的识别
  • 加速模型的运行

针对找矩形这一易扰因素,可以考虑提前根据一些因素对目标进行筛选,例如最小长宽、长宽比、指定ROI、矩形与外接矩形的角度偏差等等,这些思路都可以滤去大多的杂乱矩形,只留下需要分类的靶标,可以极快加速模型的运行。

三.模型训练

数据增强方法

  • 翻转、旋转、缩放、移位、高斯模糊、椒盐噪声、运动模糊以及对比度和亮度的随机改变等。

(七)三岔数字识别

(八)系统辨识与速度控制算法

1. 常规PID控制算法

  • 增量式PID算法对应可由位置式推出
  • 过程控制系统(如电机控制)因较慢的响应常采用PI控制,突出积分项的作用
  • 随动控制系统(如舵机控制)为了达到较快的响应常采用PD控制
  • 速度环使用增量式PID,方向环使用位置式PID,

这是由于增量PID由于也不容易造成电机的正反转切换。但我们认为,在合适的参数下,增量式PID与位置式PID应该是可以等价。

PID算法中,比例环节P的作用是成比例地反映控制系统的偏差信号e(t),一旦产生偏差,比例控制环节立即产生控制作用以减小偏差。积分环节I的作用是消除静差,提高系统的无差度,在使用积分控制时,常常对积分项进行限幅以减少积分饱和的影响。微分环节D的作用是反映偏差信号的变化趋势,能够在偏差信号变化之前先引入一个有效的早期修正信号来提前修正偏差,加快系统的动作速度,减少调节时间。

2. PID调参方案

1. 实验试凑法

  • 匿名科创上位机

一般而言,使用实验试凑法进行PID参数的整定步骤为:
先将Ki、Kd置0,整定Kp
待达到合适响应速度控制后,调小Kp(0.8左右)整定Ki
保持Ki不变,重新调整Kp
加入Kd,整定Kd
依次类推,直到获得满意参数。

2. 基于MATLAB系统辨识的参数整定

  • 模型辨识的方案有两种,
  • 一是熟知系统模型直接进行机理建模,
  • 二是基于数据的黑箱建模。

3. 其它整定方法

临界比例度法、衰减曲线法、反应曲线法、经典Ziegler-Nichols法

  • Ziegler-Nichols方法通过系统的瞬态响应特性确定参数,若建立在上文模型辨识的基础上,可直接根据打表公式给出PID的值。临界比例度法和衰减曲线法分别利用等幅震荡和衰减比4:1这两个条件,同样可根据打表公式给出PID的值。
  • 打表

3、改进式PID思想

    1. 抗积分饱和思想
    1. 抗微分扰动思想
    1. 小偏差弱调节思想
    1. BangBang-PID串级控制
    1. 模糊PID算法
  • 模糊PID算法C++实现
    1. 专家PID算法
    1. 神经网络速度控制

九、速度控制方案

1、速度控制方案

1-1常规速度控制

  • 根据轨迹斜率的速度控制
  • 由比例控制换为PD控制。即建立弯道速度增减PID,
  • 突入弯道时,由于微分项的作用,会得到一个较低的target_speed,从而获得更快的减速。
  • 三点曲率半径的计算
  • 十字交叉法–判断中线与道路有无交点决定基础速度,-

1-2特殊元素速度控制

1-3多模态PID切换

  • 变积分PID(增量式)起到缓加速的作用
  • 增量式PID在克服打滑、减少猛加速上也有着不错的效果
  • 位置环的停车方式,保证小车不会冲出过多看不到二维码
  • 大转角PWM限幅的方式,减少打滑

2.差速标定方法

  • 机械差速与软件差速(不同速度)

3. 机械机构与轮胎

  • 车轮的前束角有内束与外束两种,
  • 外束有利于转弯性能,但在直道上容易抖动;
  • 内束稳定可以消去较小抖动,保证直线上的稳定动态性能
  • 2.轮胎
  • 轮胎的打磨一般需要:软化剂,砂纸(砂轮机),硅橡胶等等。

十、电感控制方案

1 电磁基础介绍

2.电磁滤波与控制方案

2-1 电感矫正与归一化

2-2.滤波

  • 常规的滤波方案为先经过中值滤波,再使用中位值平均滤波,最后再经过一层低通滤波,如此得到可靠的信号

3.控制算法

  • 偏差计算公式得到的偏差恰好与距道路中点的位置成正比

4.、电磁元素识别与控制

  • 摄像头高度的组别使用广泛。摄像头的高度被限制,相当于小车可感知的距离变短,视角也变差,
  • 电磁前瞻可放置较远的地方(一般25cm-40cm),有着较远的感知距离

十一、激光打靶

1、坐标系定义

  • 多自由度机械臂

2、模型建立

3、参数标定

  • 通过测量的方式得到变换矩阵,并不精确,所以需要标定

3.1 手眼标定

3.2 相机-激光标定

4.模型简化

  • 通过巧妙的设计机械结构,从而简化舵机角度的求解

【智能车】上海交通大学AuTop战队开源算法提纲备忘相关推荐

  1. 第16届智能车智能视觉组-上海交通大学AuTop战队算法分享

    简 介: 参加了第十六届智能车竞赛室内视觉AI组别同学留下的对于智能车竞赛参赛感悟与建议.并对于自己参赛过程中学习研究的算法进行开源并给出了详细的介绍. 关键词: 智能车竞赛,SJTU-AuTop,视 ...

  2. 智能车百度赛道培训第二弹-算法篇

    智能车百度赛道培训第二弹--算法篇来袭!接住了吗?往下看!

  3. 合肥内推 | 商汤智能车舱研发团队招聘计算机视觉算法实习生

    合适的工作难找?最新的招聘信息也不知道? AI 求职为大家精选人工智能领域最新鲜的招聘信息,助你先人一步投递,快人一步入职! 商汤科技 商汤智能车舱研发团队致力于打造AI在智能汽车等边缘计算行业的核心 ...

  4. 讯飞智能录音笔SR502:七夕值得入手的资料备忘好物

    现在学业压力很重,学生们被各种专业课.必修课压得喘不过气来,基本每一门课都要记笔记,但有时难免跟不上老师讲课的速度.这就非常需要一个帮助自己整理笔记资料的工具--讯飞智能录音笔SR502,这款录音笔可 ...

  5. 【智能车】图像二值化算法--大津法OTSU

    图像二值化算法–大津法OTSU 大津算法是一种图像二值化算法,作用是确定将图像分成黑白两个部分的阈值. 大津法是针对灰度值进行阈值分割二值化,如果是彩色图像的话需要先转化成灰度图再进行计算. 方差越大 ...

  6. 关于YOLO算法的备忘

    YOLO算法(判断是行人 汽车 还是摩托车) 训练过程 1构建训练集 输入一张图片(网格设置成3*3) 设置两个archor box 对面个格子进行卷积 进行一个卷积的输出y={pc bx by bh ...

  7. 【排序算法复习备忘】冒泡、选择、插入、归并、快排、堆排序

    冒泡排序,最简单的排序,基本思想遍历数组n次,每一次选出当前最大(小)的元素,以近似起泡的方式将最值慢慢挪到边界,完成排序.时间复杂度 O(n^2)下面以升序为列 void bubbleSort(ve ...

  8. 智能车竞赛技术报告 | 智能车视觉 - 山东大学(威海) - 山魂五队

    简 介: 本文详细介绍了山东大学(威海)山魂五队在第十六届"恩智浦"杯全国大学生智能汽车竞赛智能视觉组中的系统方案,包括硬件电路设计.机械结构设计.巡线算法以及识别算法的设计等.本 ...

  9. 第十六届全国大学生智能车竞赛报名信息统计

    §01 信息处理 一.信息来源 处理信息来自于8月24日 智能车竞赛网站 的报名信息导出的EXCEL表格.这是参加第16届智能车竞赛竞速组别的队伍报名信息.不包括参加"三个创意组别" ...

最新文章

  1. 请查收!深度学习超详细发展路线大公开!
  2. 让Vue也可以使用Redux
  3. Linux 5.10将解决2038年问题
  4. STM32F103单片机读取芯片自身ID
  5. 社区团购会一直走下去吗?
  6. linux tomcat/bin/shutdown.sh 关闭不了
  7. 这难道是原子、比特and供应链的新内涵?京东如是说……
  8. 基金公司以及各大平台发布的那些亮眼的收益率数据,是你个人真实的投资收益率吗
  9. 什么是云计算云计算能干什么?云计算学习笔记工具素材
  10. reincarnation server
  11. Pathon的安装过程
  12. 今天在网上找QQ头像,找到两个字,太强了,一个我老婆的名字,另一个.....用了肯定有人打我脸
  13. win10打开软件提示无法成功完成操作 因为文件包含病毒
  14. 【云原生 | Kubernetes 系列】---CephFS和OSS
  15. M1 Mac Ps2022如何不转译使用拓展插件
  16. js实现表单及时验证功能 用户信息立即验证
  17. BATJ大数据架构师带你领略实时计算框架Flink的魅力!
  18. vr直播怎么做?vr直播平台有哪些?
  19. 一起来看流星雨剧情简介/剧情介绍/剧情分集介绍第十集
  20. echart绘制海南地图时增加南海诸岛显示(现成geojson数据)

热门文章

  1. 在Eclipse中引用Jquery框架路径问题
  2. Zoox 已成自动驾驶人才quot;收割机quot; ,特斯拉受伤最深
  3. 联想小新Pro16和小新air15 的区别 哪个更值得入手
  4. 为应用添加分享到新浪微博
  5. 鸿蒙系统稳了,首发鸿蒙OS系统!华为P50稳了:关键部件大量采用国产技术
  6. Tensorflow和Gensim里word2vec训练
  7. 研发管理-通过任务带动
  8. blender中的灯光和相机学习笔记
  9. Win10如何启动mysql服务
  10. 注册机没办法正常安装