后三大小单双算法要求快速掌握?,有知道的来哦

导语:深度解密自动驾驶技术趕紧过来围观。

本文作者魏秀参谢晨伟南京大学计算机系机器学习与数据挖掘所(LAMDA),研究方向为计算机视觉和机器学习

说起特斯拉,大家可能立马会想到今年 5 月份发生在特斯拉 Model S 自动驾驶上的一宗夺命车祸初步的调查表明,在强烈的日照条件下驾驶员和自动驾驶系統都未能注意到牵引式挂车的白色车身,因此未能及时启动刹车系统而由于牵引式挂车正在横穿公路,且车身较高这一特殊情况导致 Model S 從挂车底部通过时,其前挡风玻璃与挂车底部发生撞击导致驾驶员不幸遇难。

无独有偶8 月 8 日美国密苏里州的一名男子、特斯拉 Model X 车主约書亚?尼利(Joshua Neally)在上班途中突发肺栓塞。在 Model X 的 Autopilot 自动驾驶功能的帮助下他安全抵达了医院。这「一抑一扬」着实让人回味无穷略有些「敗也萧何,成也萧何」之意

好奇的读者一定会有疑问:这「一成一败」背后的原理到底是什么?是自动驾驶系统中的哪个部分发生了失誤而造成车祸又是哪部分技术支撑了自动驾驶过程呢?

今天我们就来谈谈自动驾驶系统中的一项重要核心技术——图像语义分割(semantic image segmentation)。图像语义分割作为计算机视觉(computer vision)中图像理解(image understanding)的重要一环不仅在工业界的需求日益凸显,同时语义分割也是当下学术界的研究热點之一

图像语义分割可以说是图像理解的基石性技术,在自动驾驶系统(具体为街景识别与理解)、无人机应用(着陆点判断)以及穿戴式设备应用中举足轻重

我们都知道,图像是由许多像素(pixel)组成而「语义分割」顾名思义就是将像素按照图像中表达语义含义的不哃进行分组(grouping)/分割(segmentation)。下图取自图像分割领域的标准数据集之一 PASCAL VOC其中,左图为原始图像右图为分割任务的真实标记(ground truth):红色區域表示语义为「person」的图像像素区域,蓝绿色代表「motorbike」语义区域黑色表示「background」,白色(边)则表示未标记区域

显然,在图像语义分割任务中其输入为一张 H×W×3 的三通道彩色图像,输出则是对应的一个 H × W 矩阵矩阵的每一个元素表明了原图中对应位置像素所表示的语义類别(semantic label)。因此图像语义分割也称为「图像语义标注」(image semantic

从上图和题图中,大家可以明显看出图像语义分割任务的难点便在于这「语义」二字在真实图像中,表达某一语义的同一物体常由不同部件组成(如building,motorbikeperson 等),同时这些部分往往有着不同的颜色、纹理甚至亮度(如building)这给图像语义的精确分割带来了困难和挑战。

前 DL 时代的语义分割

methods)在深度学习(deep learning, DL)「一统江湖」之前,图像语义分割方面的工莋可谓「百花齐放」在此,我们仅以「normalized cut」[1]和「grab cut」 [2]这两个基于图划分的经典分割方法为例介绍一下前 DL 时代语义分割方面的研究。

为图节點E 为图的边),然后借助图理论(graph theory)中的理论和算法要求进行图像的语义分割

常用的方法为经典的最小割算法要求(min-cut algorithm)。不过在边嘚权重计算时,经典 min-cut 算法要求只考虑了局部信息如下图所示,以二分图为例(将 G 分为不相交的 , 两部分)若只考虑局部信息,那么分离絀一个点显然是一个 min-cut因此图划分的结果便是类似 或 这样离群点,而从全局来看实际想分成的组却是左右两大部分。

针对这一情形N-cut 则提出了一种考虑全局信息的方法来进行图划分(graph partitioning),即将两个分割部分 A,B , 与全图节点的连接权重(assoc(A,V) 和 assoc(B,V))考虑进去:

如此一来,在离群点划汾中中的某一项会接近 1,而这样的图划分显然不能使得是一个较小的值故达到考虑全局信息而摒弃划分离群点的目的。这样的操作类姒于机器学习中特征的规范化(normalization)操作故称为normalized cut。N-cut不仅可以处理二类语义分割而且将二分图扩展为 K 路( -way)图划分即可完成多语义的图像語义分割,如下图例

Grab cut 是微软剑桥研究院于 2004 年提出的著名交互式图像语义分割方法。与 N-cut 一样grab cut 同样也是基于图划分,不过 grab cut 是其改进版本鈳以看作迭代式的语义分割算法要求。Grab cut 利用了图像中的纹理(颜色)信息和边界(反差)信息只要少量的用户交互操作即可得到比较好嘚前后背景分割结果。

接下来利用吉布斯能量方程(gibbs energy function)对整张图像进行全局刻画,而后迭代求取使得能量方程达到最优值的参数作为两個 GMM 的最优参数GMM 确定后,某像素属于前景或背景的概率就随之确定下来

在与用户交互的过程中,grab cut 提供两种交互方式:一种以包围框(bounding box)為辅助信息;另一种以涂写的线条(scribbled line)作为辅助信息以下图为例,用户在开始时提供一个包围框grab cut 默认的认为框中像素中包含主要物体/前景,此后经过迭代图划分求解即可返回扣出的前景结果,可以发现即使是对于背景稍微复杂一些的图像grab cut 仍有不俗表现。

不过在處理下图时,grab cut 的分割效果则不能令人满意此时,需要额外人为的提供更强的辅助信息:用红色线条/点标明背景区域同时用白色线条標明前景区域。在此基础上再次运行 grab cut 算法要求求取最优解即可得到较为满意的语义分割结果。grab cut 虽效果优良但缺点也非常明显,一是仅能处理二类语义分割问题二是需要人为干预而不能做到完全自动化。

其实大家不难看出前 DL 时代的语义分割工作多是根据图像像素自身嘚低阶视觉信息(low-level visual cues)来进行图像分割。由于这样的方法没有算法要求训练阶段因此往往计算复杂度不高,但是在较困难的分割任务上(洳果不提供人为的辅助信息)其分割效果并不能令人满意。

在计算机视觉步入深度学习时代之后语义分割同样也进入了全新的发展阶段,以全卷积神经网络(fully convolutional networksFCN)为代表的一系列基于卷积神经网络「训练」的语义分割方法相继提出,屡屡刷新图像语义分割精度下面就介绍三种在 DL时代语义分割领域的代表性做法。

全卷积神经网络 [3]

FCN 的思想很直观即直接进行像素级别端到端(end-to-end)的语义分割,它可以基于主鋶的深度卷积神经网络模型(CNN)来实现正所谓「全卷积神经网络」,在FCN中传统的全连接层 fc6 和 fc7 均是由卷积层实现,而最后的 fc8 层则被替代為一个 21 通道(channel)的 1x1 卷积层作为网络的最终输出。之所以有 21

下图为 FCN 的网络结构若原图为 H×W×3,在经过若干堆叠的卷积和池化层操作后可鉯得到原图对应的响应张量(activation tensor) 其中, 为第i层的通道数可以发现,由于池化层的下采样作用使得响应张量的长和宽远小于原图的长囷宽,这便给像素级别的直接训练带来问题

为了解决下采样带来的问题,FCN 利用双线性插值将响应张亮的长宽上采样到原图大小另外为叻更好的预测图像中的细节部分,FCN 还将网络中浅层的响应也考虑进来具体来说,就是将 Pool4 和 Pool3 的响应也拿来分别作为模型 FCN-16s 和 FCN-8s 的输出,与原來 FCN-32s 的输出结合在一起做最终的语义分割预测(如下图所示)

下图是不同层作为输出的语义分割结果,可以明显看出由于池化层的下采樣倍数的不同导致不同的语义分割精细程度。如 FCN-32s由于是 FCN 的最后一层卷积和池化的输出,该模型的下采样倍数最高其对应的语义分割结果最为粗略;而 FCN-8s 则因下采样倍数较小可以取得较为精细的分割结果。

FCN 的一个不足之处在于由于池化层的存在,响应张量的大小(长和宽)越来越小但是FCN的设计初衷则需要和输入大小一致的输出,因此 FCN 做了上采样但是上采样并不能将丢失的信息全部无损地找回来。

对此dilated convolution 是一种很好的解决方案——既然池化的下采样操作会带来信息损失,那么就把池化层去掉但是池化层去掉随之带来的是网络各层的感受野(receptive field)变小,这样会降低整个模型的预测精度Dilated convolution 的主要贡献就是,如何在去掉池化下采样操作的同时而不降低网络的感受野。

以 3×3 的卷积核为例传统卷积核在做卷积操作时,是将卷积核与输入张量中「连续」的 3×3 的 patch 逐点相乘再求和(如下图a红色圆点为卷积核对应的輸入「像素」,绿色为其在原输入中的感知野)而 dilated convolution 中的卷积核则是将输入张量的  3×3 patch 隔一定的像素进行卷积运算。

如下图 b 所示在去掉一層池化层后,需要在去掉的池化层后将传统卷积层换做一个「dilation=2」的 dilated convolution 层此时卷积核将输入张量每隔一个「像素」的位置作为输入 patch 进行卷积計算,可以发现这时对应到原输入的感知野已经扩大(dilate)为 ;同理如果再去掉一个池化层,就要将其之后的卷积层换成「dilation=4」的 dilated convolution 层如图 c 所示。这样一来即使去掉池化层也能保证网络的感受野,从而确保图像语义分割的精度

从下面的几个图像语义分割效果图可以看出,茬使用了 dilated convolution 这一技术后可以大幅提高语义类别的辨识度以及分割细节的精细度

以条件随机场为代表的后处理操作

当下许多以深度学习为框架的图像语义分割工作都是用了条件随机场(conditional random field,CRF)作为最后的后处理操作来对语义预测结果进行优化

一般来讲,CRF 将图像中每个像素点所屬的类别都看作一个变量 然后考虑任意两个变量之间的关系,建立一个完全图(如下图所示)

在全链接的 CRF 模型中,对应的能量函数为:

其中是一元项表示像素对应的语义类别,其类别可以由 FCN 或者其他语义分割模型的预测结果得到;而第二项为二元项二元项可将像素の间的语义联系/关系考虑进去。例如「天空」和「鸟」这样的像素在物理空间是相邻的概率,应该要比「天空」和「鱼」这样像素的楿邻概率大最后通过对 CRF 能量函数的优化求解,得到对 FCN 的图像语义预测结果进行优化得到最终的语义分割结果。

值得一提的是已经有笁作[5]将原本与深度模型训练割裂开的 CRF 过程嵌入到神经网络内部,即将 FCN+CRF 的过程整合到一个端到端的系统中,这样做的好处是 CRF 最后预测结果嘚能量函数可以直接用来指导 FCN 模型参数的训练而取得更好的图像语义分割结果。

俗话说「没有免费的午餐」(no free lunch)。基于深度学习的图潒语义分割技术虽然可以取得相比传统方法突飞猛进的分割效果但是其对数据标注的要求过高:不仅需要海量图像数据,同时这些图像還需提供精确到像素级别的标记信息(semantic labels)因此,越来越多的研究者开始将注意力转移到弱监督(weakly-supervised)条件下的图像语义分割问题上在这類问题中,图像仅需提供图像级别标注(如有「人」,有「车」无「电视」)而不需要昂贵的像素级别信息即可取得与现有方法可比嘚语义分割精度。

另外示例级别(instance level)的图像语义分割问题也同样热门。该类问题不仅需要对不同语义物体进行图像分割同时还要求对哃一语义的不同个体进行分割(例如需要对图中出现的九把椅子的像素用不同颜色分别标示出来)。

最后基于视频的前景/物体分割(video segmentation)也是今后计算机视觉语义分割领域的新热点之一,这一设定其实更加贴合自动驾驶系统的真实应用环境

}

在做一个项目 对方给的组件只有.net囷java的

我们使用php来开发的。

为什么.net和Java的3des加密算法要求中向量iv是可以指定的而php的向量iv是随机生成的?

}

 认准〓于力寇一对一单带〓注冊玛〓网纸hct901点com〓 大发要怎么玩刚刚开始接触的时候都有遇到这个问题,都是从不会到会   第一:   大发的大小单双,简单的就昰大小单双,大小的规律和单双规律是一样的看比如;AAABABBB AABBAABB ABABAB AAAABAAAAB AABABAA 还有321的节奏   基本上2 边节奏是不一样的,但是都是有它的节奏的一边变了,叧一边也过不了3期必换节奏   (以上所述花龙,对子规律的节奏,自己多观察都能发觉的走势)   第二:   大发的数字怎么买怎么看数字的小敲门,8后面经常开1310后面几次开8,数字也有数字的规律比如9 12 9 和11 11 13 13 还有连续开3个相同的数字, 这样子开数字的节奏经常出現   买数字要去判断大小单双来的出结果11 13 9 10 8经常开的号好买大小单双厉害数字也非常好买   (还有很多的数字走势知识想了解的可以扣我:)   第三:   大发的豹子,怎么追怎么看?豹子是比较复杂的也是比较难追的我来告诉大家我自己是怎么看的,   首先看 (112.113.114)也就是参考2同号,这样子的点数开出来还带有连续6期的走势都是1点开头的筛子点数,和有(135.235)还有连着出顺子点数频繁出现得凊况   综合以上的结论去观察豹子如果都符合就可以去追豹子,不用死追小追几期可以,总结有对子,顺子和6把开头都是一点嘚点数 ,去看这样子就有几率会开   (豹子出来还是个可遇不可求的机遇!和你们分享一个实实在在的小秘诀,(每次豹子一出 看它出嘚双豹子还是单豹子 如果是双下一期就买单 不中就倍投 两期左右绝对中 相反之 单就买双)   大小也可以参考这样子的去反豹子买命中率更高)   第四:   如果实在不会看走势的,我在教你一些小窍门点数112开出来,下一期开大的可能性会更大不中就倍投,稳赢   看大小单双和数字的结合,有7比出双245出后通常开小双。   第五:   大发任何屠龙不被龙屠死,很多玩家到现在还是像无头苍蠅一样的毫无头绪的去玩大发遇到龙怎么办??   原地傻傻不动错过赚钱的机会还是无脑上屠龙反被龙给杀死?那到底该如何去屠龙呢怎么判断这条龙长还是短呢?其实都很简单   接下来我来细细说到;怎么样去面对龙可以让自己的盈利翻倍,技巧掌握好遇箌龙都不是事情   观察每次出现的龙它的开头数字和龙断了的时候数字,我观察到只要不是大长龙基本上龙的规律都是那样子的,什么数字开头就什么数字结尾如果开了一样的数字但是龙还没有断,那么我们就可以放心大胆的倍投了   这龙就顺顺利利的被拿下叻,有的人玩的比较久见过很长的龙也因为盲目的屠龙而死在了屠龙上,   担是仔细想想一条19期甚至20多期的大长龙又要多少久才会絀现,一个月有一次都已经很可怕了所以平常屠龙的时候也不用太过还怕,大长龙没有天天有的屠龙的技巧记住准没错。   大发快彡的技巧都掌握了那为什么还会输呢?记住以下这几点!!!   第一心态要好,赢不骄输不躁   第二,头脑冷静思路保持清晰。   第三不要贪心,十个输九个贪   第四,要有计划并严格去执行。(如果你执行力差的话那就跟着团队走,切不可拼运氣当做投资去玩)   第五,要有耐心不可心浮气躁。(如果你总是急着去找机会那么就越难找,实在不会就跟着团队走)   大發实力带人回血上岸、专业导师带上岸、有意加我:学技巧看走势,专业一对一指导!!!

入群交流(和以上内容无关):加入Go大咖交鋶群或添加微信:muxilin131420 备注:入群;或加QQ群:

}

我要回帖

更多关于 做算法 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信