- 博客(79)
- 收藏
- 关注
原创 特斯拉AI日的感知之旅
前情回顾特斯拉的辅助驾驶一直贯彻纯视觉方案,环绕车身共配有 8 个摄像头,视野范围达 360 度,对周围环境的监测距离最远可达 250 米。12 个新版超声波传感器作为整套视觉系统的补充,可探测到柔软或坚硬的物体,增强版前置雷达通过发射冗余波长的雷达波,能够穿越雨、雾、灰尘,甚至前车的下方空间进行探测,为视觉系统提供更丰富的数据。车头6个、车尾6个,共12个超声波传感器;前挡风玻璃下内后视镜上端长...
2021-08-26 14:36:43 557
原创 K210系列开发环境搭建
需要准备哪些工具?AIRV R3版 widora 开箱一个内置单摄像头的K210开发板、一个显示屏。我们需要外购一根Type-C的串口线用于连接PC和开发板。建议再加一个SD卡用于后续玩Deep Learning时权重的保存,毕竟板子自带的Flash太小。同时准备好以下软件,这里小编给出了自己使用的版本信息。串口测试:sscom5.13.1烧录工具:kflash_gui_v1.6.7固件程序:ma...
2021-08-17 21:13:41 4539
原创 K210系列第一个示例程序
引言关于K210的受众群体也算不少,在网上许多爱好者写了各种学习教程。本系列文章的目的是帮大家从众多信息中梳理一些关键步骤。第一篇文章让大家了解K210芯片的性能如何,能做哪些事。第二篇文章带大家配置好软硬件的开发环境。本篇从官方示例教程出发,教大家如何在开发板上做图像算法和深度学习的部署。下面是一些小编推荐的学习链接:https://canaan-creative.com/developer:官...
2021-08-17 21:12:36 3381 1
原创 K210系列开发板介绍
勘智K210是一款什么样的芯片?勘智K210是小编去年买的一块AIRV R3开发套件时接触的一款芯片。性价比不错,如下图所示:具有双核64位处理器,并自带独立FPU;有一块KPU用于神经网络加速单元;还有一块APU用于语音数据处理。所以这块芯片具有视觉和听觉处理能力,功耗低,性能高的特点,并且采用TSMC 28纳米制程,稳定性和可靠性具有一定保证。因此常被用在物联网领域的开发(勘物)和人工智能领域...
2021-08-17 21:05:56 13996 1
原创 RSDet论文解读
文章导读旋转框的目标检测任务通常出现在遥感数据,文本数据,以及点云鸟瞰图数据中。对旋转框的表达会采用中心点和长宽再加上旋转角,然后设计损失函数求学习误差。以下介绍一篇讲述旋转框回归引起的旋转敏感度误差以及如何解决该问题的文章《Learning Modulated Loss for Rotated Object Detection》。目录 前沿 核心思想 问题描述 解决方法 思考展望 前沿目标检测任务根据方向,通常可分为水平框检测和旋转..
2021-02-26 18:39:15 1036
原创 激光点云的组织形式
文章导读三维点云数据用于表征目标表面的海量点集合,但是各个离散点之间并没有拓扑关系,一般通过建立点云的空间索引来实现基于邻域关系的快速查找。在三维点云数据中用的较为广泛的两种结构分别是Kdtree和Octree。目录 什么是Kdtree 什么是Octree 对比总结 什么是Kdtree?1. Kdtree的原理Kdtree是一种划分k维数据空间的数据结构,在一个K维数据集合上构建一棵Kdtree代表了对该K维数据集合构成的K维空间的一个划分,即树中的..
2021-02-25 12:38:45 629
原创 炼丹系列之原料储备
文章导读随着人工智能在各行各业的渗透,AI算法越来越受到人们的关注,目前大多数AI算法仍然采用有监督学习的方式进行训练,而数据的质量就成了算法能力的上限,因此对数据打标签就成了一项至关重要的工作内容。本文针对计算机视觉领域的数据标注类型及一些开源工具进行简要介绍。目录 数据标注简介 视觉标注类型 开源标注工具 标注难点分析 数据标注简介数据标注是对原始数据(图片、视频、语音、文本等)添加一个或多个有意义的信息标签以提供使机器学习模型能够从它进行学习。.
2021-02-24 12:55:10 832 1
原创 TANet论文解析
文章导读本文是一篇将注意力机制应用在点云目标检测中的文章《TANet: Robust 3D Object Detection from Point Clouds with Triple Attention》,通过三元注意力机制强化目标信息,并用二级回归的方法提高定位精确度。目录 前沿 核心思想 框架结构 实现细节 要点分析 思考展望 前沿3D点云目标检测通常采用三种策略:1. 基于原始点云的方法,设计网络提取特征,然后用两阶段.
2021-02-20 13:17:09 2408
原创 激光点云滤波处理
文章导读点云滤波通常是点云预处理的第一步,只有将噪声点、离群点、孔洞、数据压缩等做相关处理后,才能更好地进行特征提取、配准、曲面重建、可视化等高阶应用,本文针对点云的几种滤波器进行分析和对比。目录 点云滤波的介绍 几种常用滤波器 对比与总结 点云滤波的介绍在获取点云数据时,由于设备精度、操作者经验、环境因素等带来的影响,点云数据中将不可避免地出现一些噪声点。而滤波的作用就是利用数据的低频特性剔除离群数据,并进行数据平滑或者提取特定频段特征。什么...
2021-02-19 12:22:20 1695 5
原创 激光点云的畸变补偿
文章导读激光雷达安装在自动驾驶车辆上,在车辆行驶过程中采集到的激光点云数据建立的三维环境模型存在一定的变形,不能真实反映某一时刻自动驾驶汽车的行驶环境。所以本文对获取一帧点云数据后如何做点云的运动补偿修复畸变问题进行讲解。目录点云畸变原理 畸变补偿方法 运动目标补偿点云畸变原理点云畸变是由于激光雷达采集数据的过程中,随着载体运动导致一帧点云中的点不是在同一时刻采集的,即不同激光点的坐标系不一致。小编使用的是VLP-16,纵向排列着16个激光发射器和接收器。VLP-16的垂直测量角度
2021-02-17 20:22:44 4004
原创 目标检测回归损失函数——IOU、GIOU、DIOU、CIOU、EIOU
一、IOU Loss上一篇文章提到L1,L2及其变种只将Bounding box的四个角点分别求loss然后相加,没有引入box四个顶点之间的相关性并且模型在训练过程中更偏向于尺寸更大的物体。在此基础上旷视在2016文章《UnitBox: An Advanced Object Detection Network》中提出了IOU Loss将4个点构成的box看成一个整体做回归。文章链接:https:...
2021-02-11 12:00:23 12237 5
原创 激光雷达感知方案
导读本文对不同类型激光雷达的数据进行分析,并且针对机械式激光雷达和混合固态激光雷达视场角不同,在中低速和高速场景下分别对比各自的感知方案。目录 激光雷达数据对比 机械式雷达感知方案 混合固态雷达感知方案 总结 前沿:由于混合固态雷达相比机械式激光雷达成本较低,也没有旋转器件过不了车轨等问题,所以逐渐得到市场上的认可。目前已经有不少主机厂采用混合固态或者固态雷达尝试做量产落地。激光雷达的应用可能是未来无人驾驶的一种发展趋势。一、激光雷达数据...
2021-02-06 17:44:41 2023 4
原创 鱼眼相机模型
鱼眼镜头之前的文章我们介绍了针孔相机模型,相机镜头是一个凸透镜,而本文介绍的鱼眼相机镜头是由十几个不同的透镜组合而成,在成像的过程中,入射光线经过不同程度的折射,投影到尺寸有限的成像平面上,使得鱼眼镜头拥有更大的视野范围。下图为鱼眼相机的组成结构:与针孔相机原理不同,鱼眼镜头采用非相似成像,在成像过程中引入畸变,通过对直径空间的压缩,突破成像视角的局限,从而达到广角成像。所以鱼眼镜头是一种极端得广角镜头,通常焦距小于等于16mm并且视角接近或等于180°(在工程上视角超过140°的...
2021-02-05 11:41:50 407
原创 激光雷达的障碍物检测
激光雷达感知自动驾驶中采用激光雷达做感知可以分为两个层次,低层次感知也叫作障碍物检测,只需要探测到前方有障碍物即可;高层次感知可以看做目标识别,需要对障碍物信息进一步分类。障碍物检测是指从点云数据中提取出潜在的障碍物体,得到它们的方位、尺寸、形状、朝向等信息,一般通过Bounding box来添加或者多边形来描述。障碍物检测框架激光雷达的障碍物检测流程一般如下:1. 考虑到车上有多个传感器共同作业,需要对输入的激光点云做时间同步和外参标定。2. 考虑到激光雷达的采样噪声和点...
2021-02-03 21:08:14 6147 2
原创 激光雷达原理介绍
激光雷达的工作原理激光雷达根据测量原理可以分为三角法激光雷达、脉冲法激光雷达、相干法激光雷达。本文我们只针对脉冲法测距的激光雷达做分析。基于脉冲法的激光雷达利用光速测距。激光发射器发射激光脉冲,计时器记录发射时间;脉冲经物体反射后由接收器接受,计时器记录接受时间;时间差乘上光速即得到距离的两倍。用此方法来衡量雷达到障碍物之间的距离。激光雷达系统组成发射单元:激光器、发射光学系统,发射激光束探测信号;接收单元:接收光学系统、光学虑光装置、光电探测器。接收反射的激光信号即回波信号;...
2021-02-02 12:39:51 17977
原创 简述L4无人驾驶的发展
根据国际自动机工程师学会(SAE)将自动驾驶技术划分为L0-L5六个等级来看,其中L4为高级自动驾驶,也就是说在限定场景下汽车可以在完全不需要驾驶员介入的情况下来进行所有的驾驶操作。目前L4级别自动驾驶的应用场景多集中在封闭区域实现,因为该场景其对硬件要求相对较低,对成本相对不敏感;区域内高精地图的绘制和更新要求低;并且可与遥控驾驶混合,方便远程接管等优势。发展状况L4无人驾驶技术在物流配送领域逐...
2021-01-29 07:42:33 2731 5
原创 图像采集与筛选
数据采集我们经常通过录制视频的方式收集,然后再抽帧处理。视频抽帧的方式我们采用的是FFmpeg命令。FFmpeg是一套可以用来编码、解码、合成和转换音频和视频数据的开源软件,提供了非常全面的音视频处理功能。它提供了常见音视频和编解码方式,能够对众多的音视频格式进行读取,基本上所有的软件都会借助FFmpeg来完成音视频的读取操作。 视频抽帧的方式具体包括以下几种:抽取视频关键帧视频帧可以分为I帧、P...
2021-01-27 10:55:37 1116 2
原创 图片格式介绍
这是一篇ffmpeg抽帧引发的血案,采用ffmpeg抽取关键帧来做训练数据的,但是抽取的图片很模糊,查了分辨率和视频保持一致。忽然想到问题肯定出在图片编码格式,指令如下:ffmpeg -i video.avi -vf select='eq(pict_type\, I)' -vsync 2 -f image2 image-%04d.jpeg 因为jpeg是有损压缩,换成无损压缩的bmp后问题解决。下...
2021-01-22 10:42:13 910
原创 Lanenet论文解读
本文是一篇2018年IEEE IV会议上的端到端车道线检测的文章,宣称可以适应变化的车道环境,并且速度可以达到50FPS(感觉聚类时间没加进去)。文章链接:《Towards End-to-End Lane Detection an Instance Segmentation Approach》核心思想:采用实例分割的方式得到每条车道线的像素点集,通过学习出路面的透视投影矩阵,将前视图转换到鸟瞰图视...
2021-01-18 09:52:17 1048
原创 简述车道线检测
针对车道线检测的任务,我们需要弄清楚几个问题:车道线的表示形式?输出类型:掩码/点集/矢量线条实例化:每个车道线是否形成实例分类:是否对车道线进行了分类(单白、双黄等)提前定义的参数:是否只能检测固定数量的车道线车道标记:是否对车道上的行车标记也做了检测这会影响到数据的标注和网络的输出形式,而且最终需要的是车道线在世界坐标系下的方程。而神经网络更适合提取图像层面的特征,直接回归方程参数有较多限制。...
2021-01-13 17:01:26 2737
原创 简述无人驾驶感知功能
视觉感知系统主要以摄像头作为传感器输入,经过一系列的计算和处理,对自车周围的环境信息做精确感知。目的在于为上层智驾融合层提供丰富的信息,包括被检测物体的类别、距离信息、速度信息、朝向信息,同时也能够给出抽象层面的语义信息。所以针对交通场景的分析主要包括以下三个方面:大目标检测(车辆、行人和非机动车)小目标分类(交通标志和红绿灯)可行驶区域的分割(道路和车道线)这三类任务如果通过一个深度神经网络的前...
2021-01-12 19:52:39 6768
原创 Jupyter Tool
日常工作中本人习惯性使用的IDE有两个,C++开发使用的是clion,Python建模使用的是pycharm,可惜最近合作的一家云资源公司提供的IDE只有Jupyter,做了些简单学习。单元格内核常用快捷键魔法命令其他技巧单元格推荐把相关的设置变量都集中放在最上面单独一个或几个cell集中修改,不影响代码逻辑。推荐把能够独立的代码变为一个def单独拿出来作为cell内容。Jupyter里面的单元格...
2021-01-12 13:20:17 169
原创 简述AI技术的工程部署
鉴于本人从事视觉感知方向,所以本文也只简述了人工智能的CV方向在工业界的推进流程:人工智能——>深度学习——>神经网络——>计算机视觉——>工业界(自动驾驶、安防、医疗)前沿文章的精度、速度很难在工业界掀起助澜,原因在于:1、不同的依赖项需要重新搭建环境2、不同框架实现的算法要重新移植3、新的算法要重新部署和验证4、学术界一般用Pytorch/Tensorflow框架,工程...
2021-01-12 12:32:58 827
原创 针孔相机模型
在介绍针孔相机模型之前,我们先了解一些相机的相关知识。光轴:是一条垂直穿过理想透镜中心的光线。焦点:与光轴平行的光线射入凸透镜时,理想的凸镜应该是所有的光线会聚在透镜后面一点上,这个会聚所有光线的一点,就叫做焦点。焦距:一般指镜片的中心到焦点为止的光轴上的距离,入射平行光线(或其延长线)与出射会聚光线(或其延长线)相交,就能确定折射主面,这个想象的平面与镜头光轴相交处就是主点。光圈:光圈对照片的影...
2021-01-11 17:29:42 2078
原创 目标检测回归损失函数——IOU、GIOU、DIOU、CIOU
一、IOU Loss上一篇文章提到L1,L2及其变种只将Bounding box的四个角点分别求loss然后相加,没有引入box四个顶点之间的相关性并且模型在训练过程中更偏向于尺寸更大的物体。在此基础上旷视在2016文章《UnitBox: An Advanced Object Detection Network》中提出了IOU Loss将4个点构成的box看成一个整体做回归。文章链接:https:...
2020-12-25 14:59:57 3974 3
原创 YOLO系列专题——Complex-YOLO
Complex-YOLO是2018年的一篇点云目标检测的文章,发表于arXiv[cs.CV]。文章链接:An Euler-Region-Proposal for Real-time 3D Object Detection on Point Clouds核心思想:本文基于YOLOv2版本的变异,通过把3D点云降维到2D鸟瞰图的方式,将图像检测的网络用于点云的目标检测中。出于降维后信息的损失考虑,本...
2020-12-25 11:59:52 3497 3
原创 炼丹手册——数据增广
数据增广这个知识点放在炼丹手册里说,总感觉不太搭,不过看到bag of freebies这个词,心想也算是提高训练精度的一种手段,那就和其他knowledge躺在一起吧。数据增广的目的是增加训练样本的多样性,使得训练的模型具有更强的泛化能力。但是在实际应用中,并非所有的增广方式都适用当前的训练数据,我们需要根据自己的数据集特征来确定应该使用哪几种数据增广方式,常见的方式包括:几何增强色彩增强遮挡增...
2020-12-23 10:02:11 316
原创 YOLO系列专题——YOLOv3理论篇
YOLOv3理论篇YOLOv3实践篇背景介绍:YOLOv3的基本思想与YOLOv2大致相同,过程如下:将输入图像分成S*S个格子,每个格子负责预测中心在此格子中的物体;每个格子预测B个bounding box及其置信度(confidence score),以及C个类别概率;bbox信息(x,y,w,h)为物体的中心位置相对格子位置的偏移及宽度和高度,均被归一化;置信度反映是否包含物体,以及包含物体...
2020-12-20 23:50:22 377
原创 YOLO系列专题——YOLOv3实践篇
YOLOv3理论篇YOLOv3实践篇工程框架:本文基于YOLOv3大体结构进行实现,采用VOC2028数据集进行测试,一份安全帽和人两个类别的检测数据集,数据总共7581帧图片。工程框架结构如下图所示:config作为参数文件用于保存训练参数、测试参数、模型参数、路径参数等信息;data文件夹下保存数据处理相关文件,包括用于数据增广的augmentation.py,用于TFRecord制作和读取的...
2020-12-20 23:49:47 530
原创 YOLO系列专题——YOLOv2理论篇
YOLOv2理论篇YOLOv2实践篇背景介绍:YOLOv1和同时期的SSD属于两个单阶段检测模型,以速度快著称。但是YOLOv1的诸多缺陷导致精准度较差、召回率低。估计YOLOv2参考了SSD或者Faster RCNN引入了anchor机制,同时加入Batch Normalization层,多尺度融合等手段提升了性能,改进方法如下:网络模型:YOLOv2采用Darknet19进行特征提取,类似于V...
2020-12-17 14:32:51 316
原创 YOLO系列专题——YOLOv2实践篇
YOLOv2理论篇YOLOv2实践篇工程框架:YOLOv2引入anchor机制后,在目标的回归上比v1版本效果好了很多。下面是一些代码实现,因为自己建的工程,所以这个系列的整体代码结构会比较相似。config作为参数文件用于保存训练参数、测试参数、模型参数、路径参数等信息;dataset文件夹下保存数据处理相关文件,包括用于数据增广的文件,用于TFRecord制作和读取的文件,图像预处理和真值编码...
2020-12-17 14:32:31 354
原创 YOLO系列专题——YOLOv1实践篇
YOLOv1理论篇YOLOv1实践篇工程框架:在YOLOv1理论篇中我们简要介绍了YOLO的基本原理,本篇从代码角度进一步给出解析。工程结构如下:config作为参数文件用于保存训练参数、测试参数、模型参数、路径参数等信息;dataset/tfrecord用于xml数据和标签的解析以及TF格式文件的制作;network用于网络模型的搭建;loss_utils用于损失函数相关计算;process_u...
2020-12-17 09:46:18 426
原创 YOLO系列专题——YOLOv1理论篇
近期工作上基于YOLOv3做项目并且需要测试TI开发板对OD模型的友好程度,所以想写个YOLO系列的专题,本文就从2015年的v1版本《You Only Look Once: Unified, Real-Time Object Detection》开始讲起。(文章比较老,旨在总结,大牛误喷)YOLOv1理论篇YOLOv1实践篇背景介绍:YOLO的训练和检测均在一个端到端的网络中进行,将物体检测作为...
2020-12-16 18:13:30 242
原创 炼丹手册——梯度弥散和爆炸
这两天造的轮子每次训练上来几个epoch就爆,试过lr降到1e-5;将所有分母/log都加了极小值;加了梯度裁剪,改了损失函数,lr衰减改成指数形式,加载预训练权重,修改权重初始化方式等等全失败,一度怀疑是我代码逻辑哪里写的有问题,检查数遍无果。就在这时随手加了个warmup,卧槽居然不飞了,个人觉得原因是加载的预训练模型最后几个输出层类别个数和自己的任务类别个数存在差异,直接采用温和的lr衰减方...
2020-12-16 15:58:24 240
原创 炼丹手册——学习率设置
深度神经网络的参数学习主要是通过梯度下降方法来寻找一组可以最小化结构风险的参数。而学习率在深度学习的训练过程中是一个很重要的超参数,指导我们该如何通过损失函数的梯度调整网络权重的超参数。学习率越低损失函数的变化速度就越慢。虽然使用低学习率可以确保我们不会错过任何局部极小值,但也意味着我们将花费更长的时间来进行收敛,特别是在被困在高原区域的情况下。下面就是梯度下降法的公式: ,其中 表示学习率。目...
2020-12-09 00:41:34 876
原创 炼丹手册——NaN值问题
对于会写BUG的炼丹师在神经网络的训练阶段,相信经常遇到loss值特别大或者出现NaN的情况。近期我自己把YOLOv1-v4手撸了一把,果不其然我是个善于写BUG的炼丹师,给自己挖了各种细节坑,然后又经历了一点点排查填坑的过程。废话到此为止,我们来说说loss出现特别大或者NaN的问题及其解决方法,内容包括自己踩的坑以及网上别的小伙伴的总结:权重初始化造成loss异常神经网络在训练过程中基于梯度下...
2020-12-06 22:13:22 435
原创 OFT论文解读
OFT是2018年的一篇单目3D检测的文章《Orthographic Feature Transform for Monocular 3D Object Detection》文章引入正交法特征变换,通过将基于图像的特征映射到正交法三维空间,实现了对图像域的转义,能够在一个尺度一致、物体之间的距离有意义的领域中对场景的空间配置进行整体推理。文章链接:Orthographic Feature Tran...
2020-11-07 21:54:08 842 2
原创 Deep3DBox论文解读
Deep3DBox是早期的一篇来自于CVPR上经典的单目3D检测的文章《3D Bounding Box Estimation Using Deep Learning and Geometry》文章链接:CSDL | IEEE Computer Society核心思想:首先使用深度神经网络回归出相对稳定的3D目标的特性,再利用估计出来的3D特征和由2D bounding box转换为3D bound...
2020-11-05 15:08:56 1653
原创 GS3D 论文解读
GS3D是来自2019年CVPR上的一篇单目3D检测的文章《An Efficient 3D Object Detection Framework for Autonomous Driving》文章链接:https://arxiv.org/pdf/1903.10955.pdf核心思想:本方法先计算2D检测结果,通过一些先验知识结合学习算法计算3D检测边界框的尺寸和方位。创新点在于充分利用3D表面在2...
2020-11-05 15:02:52 729
原创 AM3D论文解读
AM3D是来自于ICCV 2019年的一篇单目做3D检测的文章《Accurate Monocular 3D Object Detection via Color-Embedded 3D Reconstruction for Autonomous Driving》文章链接:https://arxiv.org/abs/1903.1144核心思想:算法首先获取到深度信息和二维目标位置先验之后,将二维深...
2020-11-05 10:30:09 372 4
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人