demi的博客

汽车高级驾驶辅助系统ADAS全盘点

相比目前还无法大规模应用的无人驾驶,高级辅助驾驶系统是一种把汽车变的更智能的实用技术。目前的车辆都带有驾驶辅助系统,广泛应用的倒车雷达,比较高端的远程召唤,都属于辅助驾驶。

随着造车新势力的崛起,互联网公司的介入,越来越多的高科技技术应用到了汽车上。ADAS作为汽车智能化的典型功能,备受关注。

01 自适应巡航控制系统 Adaptive Cruise Control(ACC)

汽车高级驾驶辅助系统ADAS全盘点

自适应巡航控制系统是一种智能化的自动控制系统,它是在早已存在的巡航控制技术的基础上发展而来的。

ACC的原理并不复杂。首先设置一个跟车距离,随后通过长距离毫米波雷达实时监测前方的汽车,通过对发动机和制动器的控制,使前车与自车始终保持在设定的距离。这样驾驶员就可以解放双脚。

GPU Raycasting的两种实现方法

Raycasting的核心是从每一个屏幕像素处发射一条光纤,然后让其穿过整个体数据。基于GPU的Raycasting可以独立,并行地计算每条光线,从而能大大提高速度,实现实时绘制效果。绘制时的过程一般是绘制一个长方体,并且以体数据作为三维纹理。

根据光线的方向和终点的确定方法的不同,Raycasting有两种实现:

GPU Raycasting的两种实现方法

1,基于光线起点和相机位置。将相机位置由世界坐标通过模型视图投影矩阵反变换到长方体的局部坐标空间。每个fragment的坐标作为光线的起点,由变换后的相机位置与光线起点确定光线的方向,在沿着光线方向从起点前进时,每到达一个新的点,判断其是否在长方体内,如果不在,则结束这条光线。

OpenGL中的数据——Buffer

OpenGL中主要包括了两种数据——Buffer和Texture。

Buffer用于储存线性数无类型据块,可以看成普通的内存块,而Texture则用于储存多维数据,一般储存图像或者其他数据。

Buffer

OpenGL中有很多绑定点,Buffer绑定在绑定点使用。

使用glGenBuffers来生成一个Buffer的id。
使用glBindBuffer来绑定一个Buffer。
使用glBufferData来为Buffer分配内存。如果想要改变Buffer中已经初始化的数据,那么可以使用glBufferSubData。
如果想要从Buffer中拷贝或者写入数据,glMapBuffer会返回一个这些数据的指针,可以使用memcpy进行数据拷贝写入等等操作,使用完成后使用glUnmapBuffer来解除。

机器学习算法中的过拟合与欠拟合

在机器学习表现不佳的原因要么是过度拟合或欠拟合数据。

机器学习中的逼近目标函数过程

监督式机器学习通常理解为逼近一个目标函数(f)(f),此函数映射输入变量(X)到输出变量(Y).

Y=f(X)Y=f(X)

这种特性描述可以用于定义分类和预测问题和机器学习算法的领域。

从训练数据中学习目标函数的过程中,我们必须考虑的问题是模型在预测新数据时的泛化性能。泛化好坏是很重要的,因为我们收集到的数据只是样本,其带有噪音并且是不完全的。

机器学习中的泛化

在In机器学习中,我们描述从训练数据学习目标函数的学习过程为归纳性的学习。

归纳与特别的样本中学习到通用的概念有关,而这就是监督式机器学习致力于解决的问题。这与推演不同,其主要是另一种解决问题和寻求从通常的规则中找寻特别的内容。

泛化即是,机器学习模型学习到的概念在它处于学习的过程中时模型没有遇见过的样本时候的表现。

好的机器学习模型的模板目标是从问题领域内的训练数据到任意的数据上泛化性能良好。这让我们可以在未来对模型没有见过的数据进行预测。

漏洞挖掘、利用及修复——从人工到自动的跨越

随着互联网的普及,各类App如雨后春笋般产生。受限于代码质量,App中或多或少的会存在各类漏洞。据统计,CVE(http://cve.mitre.org/)及CNNVD(http://www.cnnvd.org.cn/)能够涵盖的漏洞多达100000个,严重威胁着网络及用户安全。当前,二进制漏洞挖掘主要依靠专业人员的人工审计,从而能够提供准确的漏洞点、漏洞利用及修补方案。

然而,人工审计与挖掘存在以下缺陷:

1. 开发团队往往缺少专业的安全人员,不能及时发现漏洞;

2. 面对数量庞大的漏洞,安全人员疲于应对。而自动化漏洞挖掘能够为人工审计提供良好的补充,也更为经济。

那么要构建这样一个自动化漏洞挖掘的系统需要哪些技术呢?下面,我们介绍一些具有代表性的相关技术。

一、自动化漏洞挖掘技术

当我们拿到一个App以后,首要的工作是找到该App中的漏洞点。从被检测程序是否被运行的角度可知,自动化漏洞挖掘技术可分为静态分析、动态分析及混合分析。

主流物联网无线技术都在这了!

本文涉及:蓝牙,WiFi,BLE,Zigbee,Z-Wave,6LoWPAN,NFC,WiFi Direct,GSM,LTE,LoRa,NB-IoT和LTE-M。小隐根据它们的功能,数据速度和操作范围不同而成几个大类。

点对点技术

点对点即表示两个设备连接在一起以进行直接通信。通常只有两个设备可以参与对等连接。

Bluetooth Classic (经典蓝牙)

最知名的点对点无线技术当属蓝牙无疑了。将手机连接到蓝牙扬声器时,蓝牙扬声器是手机和扬声器之间即为点对点无线连接。

由于相对较短的工作范围,蓝牙功耗相当低。它比WiFi消耗更少的功率,比蜂窝技术少得多,但仍远远超过蓝牙低功耗或Zigbee等技术。

WiFi Direct

大家都知道WiFi,但很少有人听说过WiFi Direct,即便是几乎所有手机和平板电脑都支持它。与蓝牙一样,但与传统WiFi不同,WiFi Direct是一种点对点无线技术。

图像识别的未来:机遇与挑战并存

本文转载自公众号微软研究院AI头条(ID:MSRAsia)
本文作者:代季峰、林思德、郭百宁

编者按:自1998年成立以来,微软亚洲研究院一直致力于推动计算机科学领域的前沿技术发展。在建院20周年之际,我们特别邀请微软亚洲研究院不同领域的专家共同撰写“预见未来”系列文章,以各自领域的前瞻视角,从机器学习、计算机视觉、系统架构、图形学、自然语言处理等多个方向出发,试图描绘一幅未来科技蓝图。

在计算机视觉领域,图像识别这几年的发展突飞猛进,但在进一步广泛应用之前,仍然有很多挑战需要我们去解决。本文中,微软亚洲研究院视觉计算组的研究员们为我们梳理目前深度学习在图像识别方面所面临的挑战以及具有未来价值的研究方向。

识别图像对人类来说是件极容易的事情,但是对机器而言,这也经历了漫长岁月。

在计算机视觉领域,图像识别这几年的发展突飞猛进。例如,在PASCAL VOC物体检测基准测试中,检测器的性能从平均准确率30%飙升到了今天的超过90%。对于图像分类,在极具挑战性的ImageNet数据集上,目前先进算法的表现甚至超过了人类。

迁移学习在自然语言处理领域的应用

迁移学习

迁移学习近年来在图形领域中得到了快速的发展,主要在于某些特定的领域不具备足够的数据,不能让深度模型学习的很好,需要从其它领域训练好的模型迁移过来,再使用该模型进行微调,使得该模型能很好地拟合少量数据的同时又具备较好的泛化能力(不过拟合)。

在迁移学习任务中,需要事先定义一组源数据集合,使用该集合训练得到预训练好的模型,该模型具备了源数据集合中的一些知识,在目标数据集合上微调该预训练的模型,使得模型能够很好地完成目标数据集合定义的任务,即完成了迁移学习。

由于深度学习模型结构复杂,在NLP领域中迁移学习不够成熟,不知道如何进行迁移、迁移模型的哪个结构部分、源数据集合与目标数据集合之间需要满足怎样的关系。本文以CNN文本分类任务为例进行描述,总结一下迁移学习在NLP领域文本分类任务中的一些经验。

CNN文本分类模型框架

机器视觉中工业相机常用参数

工业相机是机器视觉系统中的一个关键组件,其最基础功能就是将光信号转变成为有序的电信号。选择合适的工业相机也是机器视觉系统设计中的重要环节,工业相机不仅是直接决定所采集到的图像分辨率、图像质量等,同时也与整个系统的运行模式直接相关。

工业相机主要参数

1. 分辨率(Resolution):相机每次采集图像的像素点数(Pixels),对于工业数字相机一般是直接与光电传感器的像元数对应的,对于工业数字模拟相机则是取决于视频制式,PAL制为768*576,NTSC制为640*480。

2. 像素深度(Pixel Depth):即每像素数据的位数,一般常用的是8Bit,对于工业数字数字相机一般还会有10Bit、12Bit等。

3. 最大帧率(Frame Rate)/行频(Line Rate):相机采集传输图像的速率,对于面阵相机一般为每秒采集的帧数(Frames/Sec.),对于线阵相机机为每秒采集的行数(Hz)。

详解 RNN 文本分类模型的架构

典型 RNN 模型

下图是典型的 RNN 模型,X 是输入,对文本经过嵌入层嵌入处理,再进入 RNN,RNN 的后面是全连接层,输出各个类别的概率。

详解 RNN 文本分类模型的架构

下面来描述一次数据从输入到输出的完整过程:

在自然语言处理中,不管是中文还是英文,首先第一步的任务是如何将文本数据数值化。对于中文,可以先建立词汇表,给词汇表中的没歌词建立唯一的 id 标识(数字),这样每段文本都可以用一串数字 id 来表示,然后就能进行词嵌入操作,英文的处理方法也类似。

对文本预处理时,由于每条文本的长度不一,需要给输入统一规定长度(seq_length),超过的截断,不足的填充。假设有 N​ 段文本(text),统一长度后就变成了 [N, 1, seq_length]​大小的矩阵,矩阵的每一行代表一段文本,大小为​[1, seq_length]​。