此文系第16届智能车智能视觉组-上海交通大学AuTop战队开源算法讲解第三部分--标定与透视变换,专栏及开源方案链接: llo:第16届智能车智能视觉组-上海交通大学AuTop战队开源汇总 补充:有收到一些反馈说这部分看的不是很懂。建议看不懂的小伙伴先去了解一下相机成像模型和坐标变换等基础知识。文章限于篇幅没法从最基础的地方开始介绍。 本次比赛我们使用了一个150°的广角镜头以获得更大的视野范
此文系第16届智能车智能视觉组-上海交通大学AuTop战队开源算法讲解第二部分--边线提取,专栏及开源方案链接: llo:第16届智能车智能视觉组-上海交通大学AuTop战队开源汇总 视觉巡线(二)边线提取 在得出一个良好的二值化后(我们采用的自适应阈值,几乎可以做到零调参),还需要从其中提取出赛道的边线。 一个比较常见的做法是从图像中间开始向两侧扫描,遇到的第一个黑色像素即为赛道边线,从图像下
好久不见。上俩星期开学复习补考去了,所以没更。。。嘤嘤嘤,今天考完啦。 我在识别眼镜和长头发特征的时候用的yolov5 主要是环境比较好搭建,效果也比较好,修改方便。省赛的时候,我是直接训练的识别眼镜和长头发,比较老实,在网上爬虫爬了九千多张图片去训练的,效果还是相当不错滴。国赛改为识别不同的人物姿态了,八个不同的人物模型做八个不同的标签,大概搜刮了4000多张图片训练的。效果神奇,图片稍微模糊一
此文系第16届智能车智能视觉组-上海交通大学AuTop战队开源算法讲解第一部分--二值化的技巧,专栏及开源方案链接: llo:第16届智能车智能视觉组-上海交通大学AuTop战队开源汇总 视觉巡线(一)二值化的技巧 在智能车比赛当中的,如果使用摄像头进行巡线,二值化几乎是一个必不可少的一步。 二值化可以看作通过某种映射,将原始灰度图中的某个像素变换为0或255。 固定阈值二值化 最简单的二值
写在前面: 看到网上对于环岛的介绍微乎其微,想着写点什么,对于一些没有祖传代码和资料的同学起到一点指导和抛砖引玉的作用把,看了一些国一国二的代码,发现跟自己想的方法基本一致,所以个人认为应该能对没有思路的同学有一点启发,当然,比赛最主要的就是锻炼个人能力,条条大路通环岛,希望同学们不要被我的这种方法所局限,自己的思想无论在何时都是要有的,当然,由于本人能力不足等原因,如果有错误欢迎批评指出。 摄
最近在搞超声波,把自己走过的一些坑,和经验分享一下,互相学习,让初学者少走一些弯路,K60代码网上找了一些,结果没有能用的,没办法,自己看讲解,用PIT计时测试成功,在K60和K66上测试可以使用,测距也比较准确,希望能有些帮助 1.HC-SR04超声波测距原理 准备 :引出4个排针,连接到单片机的vcc(5V),io口,io口,gnd,用到2个io口, 1.给脉冲触发引脚(Trig)输入一个持续
前几天分享出我的代码啦,这里开始细表一下导航方面 导航相关的主要参数在gazebo_nav文件夹下面,这里主要内容就在gazebo_nav和ucar_controller两个文件夹里的内容。 首先说一下建图的事情 建图我用的gmapping,都是提前建好一张图。我前期调车是用的车子跑出来的地图,分辨率是0.05,效果一般,在代码的map文件夹下面。后来在与鲁东大学的同学交流的时候发现他们用的是仿真
说明 能够取得ROS组的亚军对我来说三一个很满意的结果,既有运气也有努力。已经有不少小伙伴跟我聊过希望看一下代码啦。之前的代码一直有一个远程仓库在码云上,现在解除了它的私有状态了,大家可以去这里码云地址查看我的代码。或者可以直接在这里面下载项目下载地址说实话,代码可能写的比较粗糙,除了yolo那一块和爬虫那一块是拿python写的,其它都是C++,这里为就叫他C++吧,哈哈哈,或者叫C++的C语言
上一节中我们讲解了什么是二值化,并且讲到了二值化的一般方法,那么每种算法究竟是怎么样对图像经行二值化处理的呢?,算法的原理是什么呢,怎么样用代码实现,这节我们分享下。 1.otsu(最大类间方差法、大津法) 最大类间方差法是由日本学者大津于1979年提出的,是一种自适应的阈值确定的方法,又叫大津法,简称OTSU。它是按图像的灰度特性,将图像分成背景和目标2部分。背景和目标之间的类间方差越大,
前言 好久不见,甚是想念。大家好,我是小沐。书接上文,上一篇文章我们进行了仿真环境的配置但是呢它并没有进行导航相关的配置,所以还不能进行move-base的相关操作,本文将延续上文进行move_base的配置。上一篇文章还给各位萌新同学留了思考任务,不知道各位同学有没有思考,如果没有思考的话,可能会在这篇文章吃到一丢丢苦头哦~ 正文 提到move_base就不得不提到这个图了:导航的基本框架图,老
前言 好久不见,甚是想念,大家好,我是小沐。相信今年的暑期学校大家都看了,大家是不是都收获满满呀!小沐是真的收获到了很多有用的知识,不得不感叹今年的干货给的真足,不知道大家有没有关注到最后由天之博特举办的F1TENTH无人车挑战赛,因为小沐自己就是做无人驾驶这方面的,所以这个无人车仿真赛对小沐吸引力无疑是巨大的,虽然最后小沐没有参加比赛,但是小沐也是跟着参赛者体验了一把F1TENTH无人车挑战赛的
在阅读本文之前,应该先阅读朱葛峻的《逆透视变换的一种方法》(下简称《方法》),本文的实现是基于这篇文章的推导的。 本文中提到的方法主要用于智能车竞赛。 虽然在智能车有限的视野和像素内,这种方法有时并不是一种很好的选择。 在谈逆透视变换之前,我们先谈一下真实世界和智能车上安装的摄像头所获取的照片的关系。 世界坐标系下的点要经历平移变换、旋转变换、缩放变换、投影变换而得到摄像头坐标系下的点。前三种变
由于计算机控制是一种采样控制, 它只能根据采样时刻的偏差计算控制量,而不能像模拟控制那样连续输出控制量量, 进行连续控制。 由于这一特点,积分项和微分项不能直接使用,必须进行离散化处理。如果采样周期足够小,则可以获得足够精确的结果,离散控制过程与连续过程十分接近。 表示的控制算法式直接给出的 PID 控制规律定义进行计算的,所以它给出了全部控制量的大小,因此被称为全
作者:Sumjess 直接上代码,直接可以使用。 #define IMG_BUF imgbuff //宏定义图像数组名 #define IMG_W 80 int get_img_point(uint16 h,uint16 w) { char * pimg=(char *)IMG_BUF; // uint8 ch=pimg[((img_size.W>>3)*
该函数就是简单的获取图像的函数,如果对这部分不了解,可以去山外的历程了解一下,关于摄像头部分的参数,并没有进行参数更改。下面就把重要的参数部分截图下来。 帧数:150帧 分辨率:80*60 调焦: 阈值:50
前言 大家好,小沐又来了,这次的分享还是给讯飞组比赛的同学的,最近这不是疫情又严重了嘛,整的小沐的小心脏紧张兮兮的,而小沐是个喜欢四处乱晃的孩子,所以前些日子出报道的时候,小沐提心吊胆的,很幸运小沐没去那些地,最近小沐决定老老实实在学校哪都不去了,真是要被吓死了……好了,惯例的吐槽完了,哈哈,这次的文章呢是给马上要参加讯飞国赛的同学提供一个思路,其实是推荐一个好用的软件。先来个网址,ToDesk官
该初始化函数下有以下语句: 一、ftm_pwm_init(); --- 电机初始化: 直接调用山外的库函数,该函数内部并无修改。 ftm_pwm_init(MOTOR_FTM, MOTOR1_PWM,MOTOR_HZ,0); //初始化 电机 PWM ftm_pwm_init(MOTOR_FTM, MOTOR7_PWM,MOTOR_HZ,0); //初始化
该初始化函数下有以下语句: 一、init_control_circle(); --- 初始化PIT1和 PIT2: PIT1:用于控制速度采集周期,没开中断,PID需要控制速度的采集时间是均匀的才行。 PIT2:用于图像采集周期。 二、enable_pit_int(PIT1);enable_pit_int(PIT2); --- 使能PIT1和PIT2:
该初始化函数下有以下语句: 一、key_init(KEY_MAX); --- 按键初始化: 用在山外的lcd上,直接调用山外的库函数,该函数内部并无修改,截图如下 二、duoji_init(); --- 舵机初始化: 舵机使用的引脚为:FTM3_CH0_PIN PTE5舵机频率为:SD-5 300hz S3010 50-60hz舵机打脚中心值、最左最右打脚值为
系列文章【智能车Code review】—曲率计算、最小二乘法拟合【智能车Code review】——坡道图像与控制处理【智能车Code review】——拐点的寻找 智能车复工日记【1】——菜单索引回顾 智能车复工日记【2】——普通PID、变结构PID、微分先行PID、模糊PID、专家PID 智能车复工日记【3】:图像处理——基本扫线和基本特征提取和十字补线 智能车复工日记【4】:关于
全国大学生智能车竞赛知识经验汇总
第三方账号登入
看不清?点击更换
第三方账号登入
QQ 微博 微信