YOLO的核心思想及YOLO的实现细节

2018-06-05 09:12 次阅读

YOLOv1

这是继 RCNN,fast-RCNN 和 faster-RCNN之后,Ross Girshick 针对 DL 目标检测速度问题提出的另外一种框架。YOLO V1 其增强版本在 GPU 上能跑45fps,简化版本155fps。

论文下载:

http://arxiv.org/abs/1506.02640

代码下载:

https://github.com/pjreddie/darknet 

1. YOLO 的核心思想

YOLO 的核心思想就是利用整张图作为网络的输入,直接在输出层回归 bounding box(边界框) 的位置及其所属的类别。

faster-RCNN 中也直接用整张图作为输入,但是 faster-RCNN 整体还是采用了RCNN 那种 proposal+classifier 的思想,只不过是将提取 proposal 的步骤放在 CNN 中实现了,而 YOLO 则采用直接回归的思路。

2.YOLO 的实现方法

将一幅图像分成 SxS 个网格(grid cell),如果某个 object 的中心落在这个网格中,则这个网格就负责预测这个 object。 

每个网格要预测 B 个 bounding box,每个 bounding box 除了要回归自身的位置之外,还要附带预测一个 confidence 值。 

这个 confidence 代表了所预测的 box 中含有 object 的置信度和这个 box 预测的有多准这两重信息,其值是这样计算的:  

其中如果有 object 落在一个 grid cell 里,第一项取 1,否则取 0。 第二项是预测的 bounding box 和实际的 groundtruth 之间的 IoU 值。

每个 bounding box 要预测 (x, y, w, h) 和 confidence 共5个值,每个网格还要预测一个类别信息,记为 C 类。则 SxS个 网格,每个网格要预测 B 个 bounding box 还要预测 C 个 categories。输出就是 S x S x (5*B+C) 的一个 tensor。

注意:class 信息是针对每个网格的,confidence 信息是针对每个 bounding box 的。

举例说明: 在 PASCAL VOC 中,图像输入为 448x448,取 S=7,B=2,一共有20 个类别(C=20),则输出就是 7x7x30 的一个 tensor。

整个网络结构如下图所示: 

在 test 的时候,每个网格预测的 class 信息和 bounding box 预测的 confidence信息相乘,就得到每个 bounding box 的 class-specific confidence score:

等式左边第一项就是每个网格预测的类别信息,第二、三项就是每个 bounding box 预测的 confidence。这个乘积即 encode 了预测的 box 属于某一类的概率,也有该 box 准确度的信息。

得到每个 box 的 class-specific confidence score 以后,设置阈值,滤掉得分低的 boxes,对保留的 boxes 进行 NMS 处理,就得到最终的检测结果。

注:

*由于输出层为全连接层,因此在检测时,YOLO 训练模型只支持与训练图像相同的输入分辨率。

*虽然每个格子可以预测 B 个 bounding box,但是最终只选择只选择 IOU 最高的 bounding box 作为物体检测输出,即每个格子最多只预测出一个物体。当物体占画面比例较小,如图像中包含畜群或鸟群时,每个格子包含多个物体,但却只能检测出其中一个。这是 YOLO 方法的一个缺陷。

3.YOLO 的实现细节

每个 grid 有 30 维,这 30 维中,8 维是回归 box 的坐标,2 维是 box的 confidence,还有 20 维是类别。 

其中坐标的 x, y 用对应网格的 offset 归一化到 0-1 之间,w, h 用图像的 width 和 height 归一化到 0-1 之间。

在实现中,最主要的就是怎么设计损失函数,让这个三个方面得到很好的平衡。作者简单粗暴的全部采用了 sum-squared error loss 来做这件事。

这种做法存在以下几个问题: 

第一,8维的 localization error 和20维的 classification error 同等重要显然是不合理的; 

第二,如果一个网格中没有 object(一幅图中这种网格很多),那么就会将这些网格中的 box 的 confidence push 到 0,相比于较少的有 object 的网格,这种做法是 overpowering 的,这会导致网络不稳定甚至发散。

解决办法:

更重视8维的坐标预测,给这些损失前面赋予更大的 loss weight, 记为

在 pascal VOC 训练中取 5。

对没有 object 的 box 的 confidence loss,赋予小的 loss weight,记为

在 pascal VOC 训练中取 0.5。

有 object 的 box 的 confidence loss 和类别的 loss 的 loss weight 正常取 1。

对不同大小的 box 预测中,相比于大 box 预测偏一点,小 box 预测偏一点肯定更不能被忍受的。而 sum-square error loss 中对同样的偏移 loss 是一样。

为了缓和这个问题,作者用了一个比较取巧的办法,就是将 box 的 width 和 height 取平方根代替原本的 height 和 width。这个参考下面的图很容易理解,小box 的横轴值较小,发生偏移时,反应到y轴上相比大 box 要大。(也是个近似逼近方式)

一个网格预测多个 box,希望的是每个 box predictor 专门负责预测某个 object。具体做法就是看当前预测的 box 与 ground truth box 中哪个 IoU 大,就负责哪个。这种做法称作 box predictor 的 specialization。

最后整个的损失函数如下所示: 

这个损失函数中: 

只有当某个网格中有 object 的时候才对 classification error 进行惩罚。

只有当某个 box predictor 对某个 ground truth box 负责的时候,才会对 box 的 coordinate error 进行惩罚,而对哪个 ground truth box 负责就看其预测值和 ground truth box 的 IoU 是不是在那个 cell 的所有 box 中最大。

其他细节,例如使用激活函数使用 leak RELU,模型用 ImageNet 预训练等等,在这里就不一一赘述了。

注:

*YOLO 方法模型训练依赖于物体识别标注数据,因此,对于非常规的物体形状或比例,YOLO 的检测效果并不理想。

*YOLO 采用了多个下采样层,网络学到的物体特征并不精细,因此也会影响检测效果。

* YOLO 的损失函数中,大物体 IOU 误差和小物体 IOU 误差对网络训练中 loss 贡献值接近(虽然采用求平方根方式,但没有根本解决问题)。因此,对于小物体,小的 IOU 误差也会对网络优化过程造成很大的影响,从而降低了物体检测的定位准确性。

4.YOLO 的缺点

YOLO 对相互靠的很近的物体,还有很小的群体检测效果不好,这是因为一个网格中只预测了两个框,并且只属于一类。

同一类物体出现的新的不常见的长宽比和其他情况时,泛化能力偏弱。

由于损失函数的问题,定位误差是影响检测效果的主要原因。尤其是大小物体的处理上,还有待加强。

YOLOv2

YOLOv2:代表着目前业界最先进物体检测的水平,它的速度要快过其他检测系统(FasterR-CNN,ResNet,SSD),使用者可以在它的速度与精确度之间进行权衡。

YOLO9000:这一网络结构可以实时地检测超过 9000 种物体分类,这归功于它使用了 WordTree,通过 WordTree 来混合检测数据集与识别数据集之中的数据。

工程代码地址:

http://pjreddie.com/darknet/yolo/

▌简介

目前的检测数据集(Detection Datasets)有很多限制,分类标签的信息太少,图片的数量小于分类数据集(Classification Datasets),而且检测数据集的成本太高,使其无法当作分类数据集进行使用。而现在的分类数据集却有着大量的图片和十分丰富分类信息。

文章提出了一种新的训练方法–联合训练算法。这种算法可以把这两种的数据集混合到一起。使用一种分层的观点对物体进行分类,用巨量的分类数据集数据来扩充检测数据集,从而把两种不同的数据集混合起来。

联合训练算法的基本思路就是:同时在检测数据集和分类数据集上训练物体检测器(Object Detectors ),用监测数据集的数据学习物体的准确位置,用分类数据集的数据来增加分类的类别量、提升鲁棒性。

YOLO9000 就是使用联合训练算法训练出来的,他拥有 9000 类的分类信息,这些分类信息学习自ImageNet分类数据集,而物体位置检测则学习自 COCO 检测数据集。

代码和预训练模型地址:

http://pjreddie.com/yolo9000/

▌更准

YOLO 一代有很多缺点,作者希望改进的方向是改善 recall,提升定位的准确度,同时保持分类的准确度。 

目前计算机视觉的趋势是更大更深的网络,更好的性能表现通常依赖于训练更大的网络或者把多种模型综合到一起。但是 YOLO v2 则着力于简化网络。具体的改进见下表:

Batch Normalization

使用 Batch Normalization 对网络进行优化,让网络提高了收敛性,同时还消除了对其他形式的正则化(regularization)的依赖。通过对 YOLO 的每一个卷积层增加 Batch Normalization,最终使得 mAP 提高了 2%,同时还使模型正则化。使用 Batch Normalization 可以从模型中去掉 Dropout,而不会产生过拟合。

High resolution classifier

目前业界标准的检测方法,都要先把分类器(classifier)放在ImageNet上进行预训练。从 Alexnet 开始,大多数的分类器都运行在小于 256*256 的图片上。而现在 YOLO 从 224*224 增加到了 448*448,这就意味着网络需要适应新的输入分辨率。

为了适应新的分辨率,YOLO v2 的分类网络以 448*448 的分辨率先在 ImageNet上进行微调,微调 10 个 epochs,让网络有时间调整滤波器(filters),好让其能更好的运行在新分辨率上,还需要调优用于检测的 Resulting Network。最终通过使用高分辨率,mAP 提升了 4%。

Convolution with anchor boxes

YOLO 一代包含有全连接层,从而能直接预测 Bounding Boxes 的坐标值。  Faster R-CNN 的方法只用卷积层与 Region Proposal Network 来预测 Anchor Box 偏移值与置信度,而不是直接预测坐标值。作者发现通过预测偏移量而不是坐标值能够简化问题,让神经网络学习起来更容易。

所以最终 YOLO 去掉了全连接层,使用 Anchor Boxes 来预测 Bounding Boxes。作者去掉了网络中一个池化层,这让卷积层的输出能有更高的分辨率。收缩网络让其运行在 416*416 而不是 448*448。由于图片中的物体都倾向于出现在图片的中心位置,特别是那种比较大的物体,所以有一个单独位于物体中心的位置用于预测这些物体。YOLO 的卷积层采用 32 这个值来下采样图片,所以通过选择 416*416 用作输入尺寸最终能输出一个 13*13 的特征图。 使用 Anchor Box 会让精确度稍微下降,但用了它能让 YOLO 能预测出大于一千个框,同时 recall 达到88%,mAP 达到 69.2%。

Dimension clusters

之前 Anchor Box 的尺寸是手动选择的,所以尺寸还有优化的余地。 为了优化,在训练集的 Bounding Boxes 上跑一下 k-means聚类,来找到一个比较好的值。

如果我们用标准的欧式距离的 k-means,尺寸大的框比小框产生更多的错误。因为我们的目的是提高 IOU 分数,这依赖于 Box 的大小,所以距离度量的使用: 

通过分析实验结果(Figure 2),左图:在模型复杂性与 high recall 之间权衡之后,选择聚类分类数 K=5。右图:是聚类的中心,大多数是高瘦的 Box。

Table1 是说明用 K-means 选择 Anchor Boxes 时,当 Cluster IOU 选择值为 5 时,AVG IOU 的值是 61,这个值要比不用聚类的方法的 60.9 要高。选择值为 9 的时候,AVG IOU 更有显著提高。总之就是说明用聚类的方法是有效果的。

Direct location prediction

用 Anchor Box 的方法,会让 model 变得不稳定,尤其是在最开始的几次迭代的时候。大多数不稳定因素产生自预测 Box 的(x,y)位置的时候。按照之前 YOLO的方法,网络不会预测偏移量,而是根据 YOLO 中的网格单元的位置来预测坐标,这就让 Ground Truth 的值介于 0 到 1 之间。而为了让网络的结果能落在这一范围内,网络使用一个 Logistic Activation 来对于网络预测结果进行限制,让结果介于 0 到 1 之间。 网络在每一个网格单元中预测出 5 个 Bounding Boxes,每个 Bounding Boxes 有五个坐标值 tx,ty,tw,th,t0,他们的关系见下图(Figure3)。假设一个网格单元对于图片左上角的偏移量是 cx、cy,Bounding Boxes Prior 的宽度和高度是 pw、ph,那么预测的结果见下图右面的公式: 

因为使用了限制让数值变得参数化,也让网络更容易学习、更稳定。Dimension clusters和Direct location prediction,使 YOLO 比其他使用 Anchor Box 的版本提高了近5%。

Fine-Grained Features

YOLO 修改后的特征图大小为 13*13,这个尺寸对检测图片中尺寸大物体来说足够了,同时使用这种细粒度的特征对定位小物体的位置可能也有好处。Faster-RCNN、SSD 都使用不同尺寸的特征图来取得不同范围的分辨率,而 YOLO 采取了不同的方法,YOLO 加上了一个 Passthrough Layer 来取得之前的某个 26*26 分辨率的层的特征。这个 Passthrough layer 能够把高分辨率特征与低分辨率特征联系在一起,联系起来的方法是把相邻的特征堆积在不同的 Channel 之中,这一方法类似与 Resnet 的 Identity Mapping,从而把 26*26*512 变成 13*13*2048。YOLO 中的检测器位于扩展后(expanded )的特征图的上方,所以他能取得细粒度的特征信息,这提升了 YOLO 1% 的性能。

Multi-Scale Training

作者希望 YOLOv2 能健壮地运行于不同尺寸的图片之上,所以把这一想法用于训练模型中。 

区别于之前的补全图片的尺寸的方法,YOLOv2 每迭代几次都会改变网络参数。每 10 个 Batch,网络会随机地选择一个新的图片尺寸,由于使用了下采样参数是  32,所以不同的尺寸大小也选择为 32 的倍数 {320,352…..608},最小 320*320,最大 608*608,网络会自动改变尺寸,并继续训练的过程。

这一政策让网络在不同的输入尺寸上都能达到一个很好的预测效果,同一网络能在不同分辨率上进行检测。当输入图片尺寸比较小的时候跑的比较快,输入图片尺寸比较大的时候精度高,所以你可以在 YOLOv2 的速度和精度上进行权衡。

下图是在 voc2007 上的速度与精度

▌更快

YOLO 使用的是 GoogLeNet 架构,比 VGG-16 快,YOLO 完成一次前向过程只用 85.2 亿次运算,而 VGG-16 要 306.9 亿次,但是 YOLO 精度稍低于 VGG-16。

Draknet19

YOLO v2 基于一个新的分类模型,有点类似于 VGG。YOLO v2 使用 3*3 的 filter,每次池化之后都增加一倍 Channels 的数量。YOLO v2 使用全局平均池化,使用 Batch Normilazation 来让训练更稳定,加速收敛,使模型规范化。

最终的模型–Darknet19,有 19 个卷积层和 5 个 maxpooling 层,处理一张图片只需要 55.8 亿次运算,在 ImageNet 上达到 72.9% top-1 精确度,91.2% top-5 精确度。

Training for classification

在训练时,把整个网络在更大的448*448分辨率上Fine Turnning 10个 epoches,初始学习率设置为0.001,这种网络达到达到76.5%top-1精确度,93.3%top-5精确度。

▌更强

在训练的过程中,当网络遇到一个来自检测数据集的图片与标记信息,那么就把这些数据用完整的 YOLO v2 loss 功能反向传播这个图片。当网络遇到一个来自分类数据集的图片和分类标记信息,只用整个结构中分类部分的 loss 功能反向传播这个图片。

但是检测数据集只有粗粒度的标记信息,像“猫“、“ 狗”之类,而分类数据集的标签信息则更细粒度,更丰富。比如狗这一类就包括”哈士奇“”牛头梗“”金毛狗“等等。所以如果想同时在监测数据集与分类数据集上进行训练,那么就要用一种一致性的方法融合这些标签信息。

再者,用于分类的方法,大多是用 softmax layer 方法,softmax 意味着分类的类别之间要互相独立的。而盲目地混合数据集训练,就会出现比如:检测数据集的分类信息中”狗“这一分类,在分类数据集合中,就会有的不同种类的狗:“哈士奇”、“牛头梗”、“金毛”这些分类,这两种数据集之间的分类信息不相互独立。所以使用一种多标签的模型来混合数据集,假设一个图片可以有多个分类信息,并假定分类信息必须是相互独立的规则可以被忽略。

Hierarchical classification

WordNet 的结构是一个直接图表(directed graph),而不是树型结构。因为语言是复杂的,狗这个词既属于‘犬科’又属于‘家畜’两类,而‘犬科’和‘家畜’两类在 WordNet 中则是同义词,所以不能用树形结构。

作者希望根据 ImageNet 中包含的概念来建立一个分层树,为了建立这个分层树,首先检查 ImagenNet 中出现的名词,再在 WordNet 中找到这些名词,再找到这些名词到达他们根节点的路径(在这里设为所有的根节点为实体对象(physical object)。在 WordNet 中,大多数同义词只有一个路径,所以首先把这条路径中的词全部都加到分层树中。接着迭代地检查剩下的名词,并尽可能少的把他们添加到分层树上,添加的原则是取最短路径加入到树中。

为了计算某一结点的绝对概率,只需要对这一结点到根节点的整条路径的所有概率进行相乘。所以比如你想知道一个图片是否是 Norfolk terrier 的概率,则进行如下计算:

为了验证这一个方法,在 WordTree 上训练 Darknet19 的模型,使用 1000 类的 ImageNet 进行训练,为了建立 WordtTree 1K,把所有中间词汇加入到 WordTree 上,把标签空间从 1000 扩大到了 1369。在训练过程中,如果有一个图片的标签是“Norfolk terrier”,那么这个图片还会获得”狗“(dog)以及“哺乳动物”(mammal)等标签。总之现在一张图片是多标记的,标记之间不需要相互独立。

如 Figure5 所示,之前的 ImageNet 分类是使用一个大 softmax 进行分类。而现在,WordTree 只需要对同一概念下的同义词进行 softmax 分类。 

使用相同的训练参数,这种分层结构的Darknet19达到71.9%top-1精度和90.4% top-5 精确度,精度只有微小的下降。 

这种方法的好处:在对未知或者新的物体进行分类时,性能降低的很优雅(gracefully)。比如看到一个狗的照片,但不知道是哪种种类的狗,那么就高置信度(confidence)预测是”狗“,而其他狗的种类的同义词如”哈士奇“”牛头梗“”金毛“等这些则低置信度。

Datasets combination with wordtree

用 WordTree 把数据集合中的类别映射到分层树中的同义词上,例如上图 Figure 6,WordTree 混合 ImageNet 与 COCO。

Joint classification and detection

作者的目的是:训练一个 Extremely Large Scale 检测器。所以训练的时候使用 WordTree 混合了 COCO 检测数据集与 ImageNet 中的 Top9000 类,混合后的数据集对应的 WordTree 有 9418 个类。另一方面,由于 ImageNet 数据集太大了,作者为了平衡一下两个数据集之间的数据量,通过过采样(oversampling) COCO 数据集中的数据,使 COCO 数据集与 ImageNet 数据集之间的数据量比例达到 1:4。

YOLO9000 的训练基于 YOLO v2 的构架,但是使用 3 priors 而不是 5 来限制输出的大小。当网络遇到检测数据集中的图片时则正常地反方向传播,当遇到分类数据集图片的时候,只使用分类的 loss 功能进行反向传播。同时作者假设 IOU 最少为 0.3。最后根据这些假设进行反向传播。

使用联合训练法,YOLO9000 使用 COCO 检测数据集学习检测图片中的物体的位置,使用 ImageNet 分类数据集学习如何对大量的类别中进行分类。 

为了评估这一方法,使用 ImageNet Detection Task 对训练结果进行评估。 

评估结果: 

YOLO9000 取得 19.7 mAP。 在未学习过的 156 个分类数据上进行测试, mAP 达到 16.0。

YOLO9000 的 mAP 比 DPM 高,而且 YOLO 有更多先进的特征,YOLO9000 是用部分监督的方式在不同训练集上进行训练,同时还能检测 9000个物体类别,并保证实时运行。

虽然 YOLO9000 对动物的识别性能很好,但是对类别为“sungalsses”或者“swimming trunks”这些衣服或者装备的类别,它的识别性能不是很好,见 table 7。这跟数据集的数据组成有很大关系。

▌总结

YOLO v2 代表着目前最先进物体检测的水平,在多种监测数据集中都要快过其他检测系统,并可以在速度与精确度上进行权衡。

YOLO 9000 的网络结构允许实时地检测超过9000种物体分类,这归功于它能同时优化检测与分类功能。使用 WordTree 来混合来自不同的资源的训练数据,并使用联合优化技术同时在 ImageNet 和 COCO 数据集上进行训练,YOLO9000 进一步缩小了监测数据集与识别数据集之间的大小代沟。

YOLOv3

YOLOv3 在 Pascal Titan X 上处理 608x608 图像速度可以达到 20FPS,在 COCO test-dev 上 mAP@0.5 达到 57.9%,与RetinaNet(FocalLoss论文所提出的单阶段网络)的结果相近,并且速度快 4 倍.

YOLO v3 的模型比之前的模型复杂了不少,可以通过改变模型结构的大小来权衡速度与精度。

速度对比如下:

YOLOv3 在实现相同准确度下要显著地比其它检测方法快。时间都是在采用 M40 或 Titan X 等相同 GPU 下测量的。

简而言之,YOLOv3 的先验检测(Prior detection)系统将分类器或定位器重新用于执行检测任务。他们将模型应用于图像的多个位置和尺度。而那些评分较高的区域就可以视为检测结果。此外,相对于其它目标检测方法,我们使用了完全不同的方法。我们将一个单神经网络应用于整张图像,该网络将图像划分为不同的区域,因而预测每一块区域的边界框和概率,这些边界框会通过预测的概率加权。我们的模型相比于基于分类器的系统有一些优势。它在测试时会查看整个图像,所以它的预测利用了图像中的全局信息。与需要数千张单一目标图像的 R-CNN 不同,它通过单一网络评估进行预测。这令 YOLOv3 非常快,一般它比 R-CNN 快 1000 倍、比 Fast R-CNN 快 100 倍。

改进之处:

1.多尺度预测 (类FPN)

2.更好的基础分类网络(类ResNet)和分类器 darknet-53,见下图

3.分类器-类别预测:

YOLOv3 不使用 Softmax 对每个框进行分类,主要考虑因素有两个:

a.Softmax 使得每个框分配一个类别(得分最高的一个),而对于 Open Images这种数据集,目标可能有重叠的类别标签,因此 Softmax不适用于多标签分类。

b.Softmax 可被独立的多个 logistic 分类器替代,且准确率不会下降。

c.分类损失采用 binary cross-entropy loss.

多尺度预测

每种尺度预测 3 个 box, anchor 的设计方式仍然使用聚类,得到9个聚类中心,将其按照大小均分给 3 个尺度。

尺度1: 在基础网络之后添加一些卷积层再输出box信息。

尺度2: 从尺度1中的倒数第二层的卷积层上采样(x2)再与最后一个 16x16 大小的特征图相加,再次通过多个卷积后输出 box 信息,相比尺度1变大两倍.

尺度3: 与尺度2类似,使用了 32x32 大小的特征图

基础网络 Darknet-53

darknet-53 与 ResNet-101 或 ResNet-152 准确率接近,但速度更快,对比如下:

检测结构如下:

YOLOv3 在 mAP@0.5 及小目标 APs 上具有不错的结果,但随着 IOU的增大,性能下降,说明 YOLOv3 不能很好地与 ground truth 切合.

原文标题:从YOLOv1到YOLOv3,目标检测的进化之路

文章出处:【微信号:rgznai100,微信公众号:AI科技大本营】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
分享:

评论

相关推荐

汽车自适应巡航系统的多性能指标控制算法

如何协调这些性能指标成为ACC系统设计的关键问题。

的头像 智车科技 发表于 08-18 09:00 105次 阅读
汽车自适应巡航系统的多性能指标控制算法

上海交大提出切片循环神经网络,其速度是标准RNN的136倍

每个数据集的结果如表2所示。我们选择不同的n和k值,得到不同的SRNN。例如,SRNN(16,1)表....

的头像 新智元 发表于 08-17 08:48 226次 阅读
上海交大提出切片循环神经网络,其速度是标准RNN的136倍

总结可微图像参数表示的最新进展

可微图像参数表示邀请我们提出了这样一个问题:“反向传播通过的是什么样的图像生成过程?”答案是相当多样....

的头像 论智 发表于 08-16 09:19 207次 阅读
总结可微图像参数表示的最新进展

inotify框架的使用和原理!如何添加对于目标文件的watch呢?

为了防止文件描述符fd的快速消耗,inotify提出了一个inotify instance(inot....

的头像 Linuxer 发表于 08-15 17:43 276次 阅读
inotify框架的使用和原理!如何添加对于目标文件的watch呢?

c标准库函数大全中文版详细资料免费下载

本文包括大部分 C 标准库函数,但没有列出一些用途有限的函数以及某些可以简单的从其他函数合成的函数,....

发表于 08-14 08:00 24次 阅读
c标准库函数大全中文版详细资料免费下载

Linux内核学习经验总结分享

操作系统是介于底层硬件和应用软件之间的接口,其各个子系统的实现很大程度上依赖于硬件特性。书上介绍这些....

的头像 马哥Linux运维 发表于 08-13 17:40 165次 阅读
Linux内核学习经验总结分享

关于傅里叶变换变换?

现在给你举个例子:我们学控制的时候,比如一个二阶电路RLC系统微分方程是:LC*Uc''+RC*Uc....

的头像 电子工程专辑 发表于 08-13 08:51 203次 阅读
关于傅里叶变换变换?

双足行走机器人步行原理是什么?步态轨迹规划的详细分析资料概述

通过对双足机器人行走过程中一些特殊点进行采样分析,对比人类自身行走步态的观察测量值,采用三次多项式插....

发表于 08-13 08:00 25次 阅读
双足行走机器人步行原理是什么?步态轨迹规划的详细分析资料概述

一个优秀的算法工程师必须具备哪些素质?

上面的表给出了各种典型的机器学习算法所用到的数学知识点。我们之前已经总结过,理解绝大多数算法和理论,....

的头像 算法与数据结构 发表于 08-09 15:04 532次 阅读
一个优秀的算法工程师必须具备哪些素质?

一种基于CNN的通用框架来区别自然图像NIs与计算机生成图像CG之间的差异

我们使用的实验数据包括 Columbia Photo-graphic 与 PRCG 数据库。数据库由....

的头像 电子发烧友网工程师 发表于 08-08 11:08 328次 阅读
一种基于CNN的通用框架来区别自然图像NIs与计算机生成图像CG之间的差异

FPN(特征金字塔网络)的直觉、架构和表现简要介绍

SSD基于多个特征映射进行检测。然而,低层并不用于目标检测——这些层的分辨率很高,但语义值不够高,因....

的头像 论智 发表于 08-08 09:20 221次 阅读
FPN(特征金字塔网络)的直觉、架构和表现简要介绍

DeepMind最新提出“神经算术逻辑单元”,旨在解决神经网络数值模拟能力不足的问题

虽然加法和减法使得许多有用的系统泛化成为可能,但是可能需要学习更复杂的数学函数(例如乘法)的强健能力....

的头像 新智元 发表于 08-05 09:54 607次 阅读
DeepMind最新提出“神经算术逻辑单元”,旨在解决神经网络数值模拟能力不足的问题

常用的PHP加密函数有哪些?不可逆加密函数和可逆转加密函数概述

像常用的MD5、hash、crypt、sha1这种就是单项散列加密,单项散列加密是不可逆的。 像U....

的头像 Imagination Tech 发表于 08-04 11:44 303次 阅读
常用的PHP加密函数有哪些?不可逆加密函数和可逆转加密函数概述

机器学习优化算法中梯度下降,牛顿法和拟牛顿法的优缺点详细介绍

梯度下降法实现简单,当目标函数是凸函数时,梯度下降法的解是全局解。一般情况下,其解不保证是全局最优解....

的头像 Imagination Tech 发表于 08-04 11:40 409次 阅读
机器学习优化算法中梯度下降,牛顿法和拟牛顿法的优缺点详细介绍

激活函数中sigmoid、ReLU等函数的一些性质

非线性:当激活函数是线性的时候,一个两层的神经网络就可以基本逼近所有的函数,但是,如果激活函数是恒等....

的头像 人工智能爱好者社区 发表于 08-02 14:52 244次 阅读
激活函数中sigmoid、ReLU等函数的一些性质

利用卷积神经网络来解决传统交错的计算框架中遮挡物检测问题

现有的大多数方法都是视差或光流估计来解决遮挡物的检测问题。最简单也是最广泛使用的方法是左右交叉检查 ....

的头像 电子发烧友网工程师 发表于 08-01 09:38 703次 阅读
利用卷积神经网络来解决传统交错的计算框架中遮挡物检测问题

Qt5模板库、工具类及控件的详细资料免费下载

本文档的主要内容详细介绍的是Qt 5的模板库、工具类及控件的详细资料免费下载主要包括了:字符串类,容....

发表于 08-01 08:00 40次 阅读
Qt5模板库、工具类及控件的详细资料免费下载

Qt5位置相关函数及图形与图片的详细资料免费下载

本文档的主要内容详细介绍的是Qt5位置相关函数及图形与图片的详细资料免费下载内容包括了:Qt 5位置....

发表于 08-01 08:00 32次 阅读
Qt5位置相关函数及图形与图片的详细资料免费下载

请问用CCS看代码的时候,点击函数声明弹出的函数实现框体背景颜色看不清,怎么调?

在用CCS看代码的时候,点击函数声明弹出的函数实现框体背景颜色看不清,怎么调?...

发表于 07-31 10:36 106次 阅读
请问用CCS看代码的时候,点击函数声明弹出的函数实现框体背景颜色看不清,怎么调?

“Image outpainting”能从一个图像片段“推断”出外延的部分补全成整个画面

目前最先进的图像修复方法方法包括Satoshi Iizuka等人在SIGGRAPH 2017提出的基....

的头像 新智元 发表于 07-31 09:52 330次 阅读
“Image outpainting”能从一个图像片段“推断”出外延的部分补全成整个画面

基于计算机视觉领域中所提出的图像字幕,能够输出趣味字幕的系统

Wang等人提出了一种自动“meme”生成技术。meme是一种有趣的图像,通常包含幽默文字。Wang....

的头像 将门创投 发表于 07-29 10:42 327次 阅读
基于计算机视觉领域中所提出的图像字幕,能够输出趣味字幕的系统

GitHub星数最多的Top 10热门项目

这个GitHub库提供了他们的论文“DARTS: Differentiable Architectu....

的头像 新智元 发表于 07-29 10:10 535次 阅读
GitHub星数最多的Top 10热门项目

嵌入式C高级用法全面解析

首先我们要知道,源代码编译成程序,程序是放在硬盘上的,而非内存里!只有执行时才会被调用到内存中!我们....

的头像 电子工程专辑 发表于 07-27 08:54 441次 阅读
嵌入式C高级用法全面解析

搭建一个神经网络的基本思路和步骤

在定义好网络结构并初始化参数完成之后,就要开始执行神经网络的训练过程了。而训练的第一步则是执行前向传....

的头像 人工智能爱好者社区 发表于 07-26 17:22 501次 阅读
搭建一个神经网络的基本思路和步骤

图像PNG格式、GIF格简介,图像GIF格式工作原理

GIF(Graphics InterchangeFormat)的原义是“图像互换格式”,是Compu....

的头像 Imagination Tech 发表于 07-26 15:46 279次 阅读
图像PNG格式、GIF格简介,图像GIF格式工作原理

求一份CVI的教学视频

自己啃书第一张,加入回调函数就已经有点不知道怎么弄了,求大神提供一个CVI的教学视频,谢...

发表于 07-26 11:24 143次 阅读
求一份CVI的教学视频

请教关于DSP6713 内存分配问题

工程师您好!我想将Sun_Emif_Init()这个函数加载到CE3_SDRAM,然后在IRAM里运行,写了下面的两段程序,可为什么一...

发表于 07-25 09:40 47次 阅读
请教关于DSP6713 内存分配问题

一种基于GAN的图到图转换方法,可以检测出图片中的敏感区域

图像到图像转换是一类经典计算机视觉问题,按照一般方法,研究人员需要对齐训练集图像,让模型学习输入图像....

的头像 论智 发表于 07-25 09:20 317次 阅读
一种基于GAN的图到图转换方法,可以检测出图片中的敏感区域

请问C6748的DSPLIB中有double型矩阵乘法函数吗?

我用的板子是6748,想对矩阵乘法进行优化,但发现674X 各个版本的DSPLIB里函数没有dp的。是因为TI公司还没有开发相应的...

发表于 07-25 07:56 28次 阅读
请问C6748的DSPLIB中有double型矩阵乘法函数吗?

请问在CCS6中,是否可以对整个工程优化选项设置为O0,对某一具体文件或者函数的优化设置为O3?

请问在CCS6中,是否可以对整个工程优化选项设置为O0,但是对某一具体文件或者函数的优化设置为O3?...

发表于 07-25 07:28 32次 阅读
请问在CCS6中,是否可以对整个工程优化选项设置为O0,对某一具体文件或者函数的优化设置为O3?

请问TI有图像连通区域、亚像素等图像库的支持吗?

请问TI有图像连通区域、亚像素等图像库的支持吗?...

发表于 07-25 07:18 31次 阅读
请问TI有图像连通区域、亚像素等图像库的支持吗?

请问DM642的经真是多少?SEEDDM642-wait()函数是什么意思呢?

DM642的经真是多少啊?SEEDDM642-wait()函数是什么意思呢?...

发表于 07-25 06:21 33次 阅读
请问DM642的经真是多少?SEEDDM642-wait()函数是什么意思呢?

基本的k-means算法流程

同时,k值的选取也会直接影响聚类结果,最优聚类的k值应与样本数据本身的结构信息相吻合,而这种结构信息....

的头像 人工智能爱好者社区 发表于 07-24 17:44 280次 阅读
基本的k-means算法流程

请问CCS5.1的profile怎么用?

我现在想测试每个函数和模块的运行时间,之前读过一篇文档,说是可以由编译器的反馈信息得到,这个要看哪个文件,用profile工具可...

发表于 07-24 08:42 36次 阅读
请问CCS5.1的profile怎么用?

请问使用C6678处理信号,提供数据处理的一些函数有文档介绍吗?

各位专家好,我需要使用C6678处理信号,该芯片有提供数据处理的一些函数那么,类似FFT变换,巴特沃兹滤波器等。有没有文档介...

发表于 07-24 07:24 45次 阅读
请问使用C6678处理信号,提供数据处理的一些函数有文档介绍吗?

请问怎么找函数主体?

最近在看6678 mcsdk/example/ndk/client 的projiect,看具体程序时发现里面一些函数只在一些头文件里存在声明,但我想知道函数是...

发表于 07-24 06:59 28次 阅读
请问怎么找函数主体?

安全无忧,函数计算推出访问用户VPC功能,实现自定义的多类VPC网络资源互通

摘要: 在观察到用户需要访问到用户自定义的VPC网络下的产品,像RDS、ECS等云资源的时候,函数计....

发表于 07-23 14:02 74次 阅读
安全无忧,函数计算推出访问用户VPC功能,实现自定义的多类VPC网络资源互通

一种基于对抗训练的图像翻译技术,为裸女们自动“穿”上比基尼

对于生成器,我们测试了两种流行的结构。首先我们测试了 9-Blocks ResNet 结构的生成器,....

的头像 电子发烧友网工程师 发表于 07-23 09:11 433次 阅读
一种基于对抗训练的图像翻译技术,为裸女们自动“穿”上比基尼

神经网络模型使用什么样的优化算法?

我们都知道训练神经网络基于一种称为反向传播的著名技术。在神经网络的训练中,我们首先进行前向传播,计算....

的头像 论智 发表于 07-23 08:37 790次 阅读
神经网络模型使用什么样的优化算法?

让AI为裸照“穿上”比基尼泳装

穿着比基尼泳的女性的照片被被输入系统,教它比基尼是什么样子的。为了找出应该穿上比基尼的地方,系统也学....

的头像 新智元 发表于 07-22 08:45 376次 阅读
让AI为裸照“穿上”比基尼泳装

FFM理论与FFM实现细节

什么,这是logisitc loss?第一眼看到我是懵逼的,逻辑回归的损失函数我很熟悉啊,不是长这样....

的头像 人工智能爱好者社区 发表于 07-20 16:10 439次 阅读
FFM理论与FFM实现细节

利用Attention模型为图像生成字幕

这款笔记是一种端到端(end-to-end)的样例。如果你运行它,将会下载 MS-COCO数据集,使....

的头像 新智元 发表于 07-20 10:19 290次 阅读
利用Attention模型为图像生成字幕

基于深度学习技术,从头开始搭建图像语义搜索引擎

和软件工程一样,机器学习中,有很多处理问题的方法,各有各的折衷。如果你正在做一项研究或者一个本地原型....

的头像 论智 发表于 07-17 09:17 547次 阅读
基于深度学习技术,从头开始搭建图像语义搜索引擎

讲解随机梯度下降、类别数据编码、Vowpal Wabbit机器学习库

在数据量不大的情况下,上面的数学效果不错(我们这里不讨论局部极小值、鞍点、学习率选择、动量等问题,请....

的头像 论智 发表于 07-17 09:11 405次 阅读
讲解随机梯度下降、类别数据编码、Vowpal Wabbit机器学习库

Linux程序的编写、编译、调试方法及make

命令行中 gcc表示我们是用gcc来编译我们的源程序,-o 选项表示我们要求编译 器给我们输出的可执....

的头像 C语言专家集中营 发表于 07-16 17:02 345次 阅读
Linux程序的编写、编译、调试方法及make

Magic Leap进行了他们第三次在Twitch的直播

面对它的攻击,用户有三种选择——承受攻击、闪避、阻挡。如果用户不做出任何选择,石头就会正中你的头盔,....

的头像 AR酱 发表于 07-16 09:31 389次 阅读
Magic Leap进行了他们第三次在Twitch的直播

机智云Gokit3.0源代码分析之按键处理机制

结构体包括第几个按键、所属按键时钟、Port、Gpio、短按回调函数与长按回调函数,gokitKey....

的头像 机智云开发者 发表于 07-13 14:57 348次 阅读
机智云Gokit3.0源代码分析之按键处理机制

无需使用没有“噪声”的清晰图像,就能够实现完美去水印

如何生成清晰的图像是医学成像检测(如MRI)和天文图像中的共同问题,因为这些场景根本没有足够的时间和....

的头像 新智元 发表于 07-13 09:52 575次 阅读
无需使用没有“噪声”的清晰图像,就能够实现完美去水印

用python控制鼠标和键盘!

鼠标事件监听器是一个线程,所有的回调函数都会在独立的线程中运行。调用pynput.mouse.Lis....

的头像 马哥Linux运维 发表于 07-12 14:10 488次 阅读
用python控制鼠标和键盘!

什么叫图像bayer格式以及其插值内容有哪些?

bayer格式图片是伊士曼·柯达公司科学家Bryce Bayer发明的,Bryce Bayer所发....

发表于 07-12 14:01 107次 阅读
什么叫图像bayer格式以及其插值内容有哪些?

OpenAI的研究者们提出了一种新的生成模型,能快速输出高清、真实的图像

为下游任务提供了有用的隐藏空间。自回归模型的隐藏层有着位置的边缘分布,使其更难对数据进行正确操作。在....

的头像 论智 发表于 07-12 08:43 446次 阅读
OpenAI的研究者们提出了一种新的生成模型,能快速输出高清、真实的图像

OpenAI最新提出的可逆生成模型Glow

low是一种可逆生成模型(reversible generative model),也被称为基于流的....

的头像 新智元 发表于 07-11 09:46 863次 阅读
OpenAI最新提出的可逆生成模型Glow

动态内存分配举例,以及动态数组的构造

1:malloc是由程序员在堆栈动态开辟空间 2:返回值开辟空间的首地址,但是类型是void *,需....

的头像 嵌入式ARM 发表于 07-10 16:41 301次 阅读
动态内存分配举例,以及动态数组的构造

旋转磁力机械模拟时涉及的一些概念

默认情况下,几何序列的最后一步是形成联合体、合并所有几何对象并作为一个对象进行网格剖分,最终完成定型....

的头像 COMSOL 发表于 07-10 15:11 257次 阅读
旋转磁力机械模拟时涉及的一些概念

对常用的机器学习和深度学习算法进行总结

确定这个函数的依据是函数能够很好的解释训练样本,让函数输出值f(x)与样本真实标签值y之间的误差最小....

的头像 新智元 发表于 07-10 08:58 1587次 阅读
对常用的机器学习和深度学习算法进行总结

一文详解隐含狄利克雷分布(LDA)

多项式分布是二项式分布的推广,二项式分布做 n 次伯努利试验,规定每次试验的结果只有两个,而多项式分....

的头像 人工智能头条 发表于 07-09 14:52 226次 阅读
一文详解隐含狄利克雷分布(LDA)

经典的采样方法有哪些?

可以看到蒙特卡洛法其实就是按一定的概率分布中获取大量样本,用于计算函数在样本的概率分布上的期望。其中....

的头像 电子发烧友网工程师 发表于 07-09 09:43 504次 阅读
经典的采样方法有哪些?

一种基于Frenet坐标系的优化轨迹动作规划方法

本文介绍一种基于Frenet坐标系的优化轨迹动作规划方法,该方法在高速情况下的高级车道保持和无人驾驶....

的头像 电子发烧友网工程师 发表于 07-09 09:33 1403次 阅读
一种基于Frenet坐标系的优化轨迹动作规划方法

Python官网宣布,正式发布Python 3.7.0!

通过推迟注释评估可以解决这两个问题。编译器不是编译在定义时在注释中执行表达式的代码,而是将注释以字符....

的头像 新智元 发表于 07-09 08:52 535次 阅读
Python官网宣布,正式发布Python 3.7.0!

基于镜像构建关于θ的函数,过拟合和L2正则化

在线性分类问题中,我们一般认为对抗性扰动就是高维空间中的点积。对此,一种非常普遍的说法是:我们可以在....

的头像 论智 发表于 07-09 08:41 1413次 阅读
基于镜像构建关于θ的函数,过拟合和L2正则化