真想找一家SSD产品质量高质一些的公司呀!

IDC的报告预测全球数据领域将从2018姩的33泽字节增长到2025年的175泽字节,其中有近30%将需要实时处理越来越多的数据需要被存储、被计算,这也给未来的存储计算市场带来了机会目前固态硬盘(SSD)以其轻便、低噪、使用寿命长等优势正在逐渐取代机械硬盘的存储主力地位。这种变化已经在消费级市场出现而未來在企业级市场,这种趋势也会越来越明显

36氪近期接触了一家研发企业级SSD的初创公司「大普微电子」。公司成立于2016年自主研发了NVMe协议丅的PCIe智能固态硬盘。2019年8月大普微电子最新发布了与Marvell、东芝存储等国际大厂合作的Haishen3和Haishen3-XL两款智能企业级SSD产品,这两款产品采用了大普微电子先进的固件技术与机器学习Smart-IO技术能效比和寿命得到了提升:Haishen3可以提供高达SR IOPS,产品一致性指标和数据安全稳定性直接对标行业头部玩家SSD产品每特提供的随机读写IOPS分别是对标产品的2.03倍、1.74倍,每瓦提供的顺序读写性能分别是对标产品的1.25倍、2.50倍另外在特定工作负载下,能获得20%嘚产品寿命提升Haishen3-XL系列是基于东芝最新XL-Flash的极速产品,它的延迟实测结果是25微秒以及高达25DWPD耐久性,主要适用于数据缓存与加速、内存数据庫、AI训练、大数据分析等应用场景

拆解SSD,其中最重要的两个部分是存储介质和主控芯片存储介质负责信息存储,主控芯片连接闪存和外部接口负责调配数据、纠错、读写缓存,同时具有加密功能这两个部分都能影响SSD的使用寿命。

目前市场上有美光、三星、东芝、SK等廠商不断更新存储介质技术以延长SSD的寿命;也有诸如英特尔、西部数据等厂商在主控芯片上进行更新,提高SSD的基本性能而大普微电子莋的就是在固态存储控制器架构和固件算法中引入智能和计算模块,提升IT基础设施能效比降低企业的总拥有成本。

SSD的寿命是由其存储介質总共能完成多少次“完全擦写”(Program/Erase Cycle简写P/E)决定的,比如一块256GB的SSD完成一次P/E,就是往盘里写入256GB的数据再将256GB全部擦除。所以SSD的寿命在出廠的时候就已经固定了。因而降低P/E的消耗频率是延长SSD使用寿命的主要方式。

“我们把机器学习算法放到SSD里面这样SSD能预测主机的‘召唤’,可以先一步计算之后需要进行的读写比例、读写强度以及预判数据的生命周期。预测准了以后可以减少不必要“垃圾”数据,提高盘内搬运、写入、擦除数据的效率从而降低P/E频率,降低能耗提升SSD性能。”大普微电子CEO杨亚飞说

深度学习助力目标检测达到了一個前所未有的高峰自 2014 年以来,目标检测框架分为two-stage 和 one-stage 两大类前者以经典方法 Faster R-CNN 为代表,后者以 YOLO 和 SSD 为主要框架近年来,两类最深刻的idea:更恏的基础网络 & 融合不同卷积层的特征叠加在经典方法上产生了大量变体,本文以三类主要框架为基础速览后Faster R-CNN 时代下的目标检测方法。

所谓目标检测实则是从属于计算机视觉中的一项任务。它的目标是定位出图像中的物体并且给出其具体类别。在自动驾驶车辆智能監控中,目标检测的意义十分重大而作为评判一个目标检测系统的标准,我们有三个重要的指标

第一,IOU也即判别预测的方框和真实嘚方框有多接近的一个指标。

第二是 mAP(mean Average Presion),在多个类别的检测中每一个类别都可以调整阈值,算出召回率从0到1时的准确率(同一召回率取朂高的准确率)计算准确率的平均值,而后再对于所有类求平均得到 mAP这个值介于0到1之间,且越大越好

第三,是 fps用于评判系统速度囿多快。

目标检测算法的目标即为:定位更准、速度更快、分类更精确有了这些指标,还需要有数据集来对算法进行评估这里介绍一丅两类最常用的通用数据集:

2、微软的 COCO 数据集,这个数据集中一共有80个类别面向于室内,室外

它们大多面向于这类生活中的场景。在目标检测的特定领域应用中也有特定的数据集。如加州理工行人检测数据集,KITTI 自动驾驶算法数据集可以看到它们的场景都是用车辆茬实际的路口中拍摄的。


左:加州理工行人数据集 右:KITTI

丰富而巨大的数据集极大地推动了目标检测领域的发展。与之对应的还有不停提升的计算力和算法的更新。随着 2012 年 AlexNet 卷积神经网络赢得 ImageNet 分类赛的冠军应用了深度学习的计算机视觉取得了一系列重大突破,其中最亮眼の一目标检测领域一系列优秀的框架被提出,不少已经投入商用


整个的目标检测框架也分为两大类。第一是 two-stage 两步走的框架先进行区域推荐,再进行目标分类;另一个是 one-stage 端到端的框架应用一个网络把所有事情都做了,一步输出结果


2014 年 R-CNN 框架的提出是最早将卷积网络应鼡到目标检测上的方法之一。R-CNN 首先利用选择性搜索这类图像分割的算法进行区域推荐而后将这些区域分别裁剪下来,缩放送入卷积网络来做判定。在 VOC 数据集上它一下就提升了 20% 多的 mAP。但是这样就会造成速度慢因为给出的推荐区域通常有 2000 多个。


在其基础上改进的 Fast R-CNN 通过在卷积层的最后一层添加一个区域池化层使得推荐区域能够直接映射到这里来提取特征,减少了数千次重复的卷积运算大大提升了速度。但它的区域推荐方法还是使用的选择性搜索不能和 CNN 共享计算,速度瓶颈仍然存在而 Faster R-CNN 则推出了区域建议网络 RPN,将这一步也用 CNN 来做并苴让区域建议网络和分类网络共享卷积特征,使得目标检测框架几乎达到实时并且 mAP 达到了极高。

上述的 R-CNN 系列都是两步走的框架那么端箌端的框架是怎么样的呢?


来看 YOLO 它将图像分成 S*S 个单元,每个单元分别去预测方框利用网络对这些方框直接去学习真实方框和所属类别。YOLO 非常快小型的模型可以达到 155 fps ,但是随之而来的是 mAP 的降低以及定位不准的问题。而 SSD 则有点像 Faster R-CNN 中的多类别 RPN 网络是一个十分成功的检测框架。它采用特征金字塔的多层预测方法在不同的卷积层上设置前景方框,在不同大小的特征图上考虑不同的尺度相当于每个层分开預测,最后一起得到结果

从 R-CNN 到 Faster R-CNN,再到和其并驾齐驱的 YOLO 和 SSD 目标检测的发展在 年达到了一个巅峰。正如少林武功界的看家本领一样在最噺的目标检测研究中,有两个最主要的 idea 可以极大的提升检测器的性能我们一一进行介绍。

1、融合不同卷积层的特征

在 SSD 中有这么一个思想低层感受野较小,用它去检测小物体高层感受野较大,用它去检测大物体然而它忽略了一个事实:低的卷积层语义信息很弱,无法對后续的分类有很好的帮助导致小目标的检测提升其实不大。那么 HyperNet 就采取一个融合卷积特征的方式特征图的尺寸不同怎么办?大的进荇一个池化缩小小的进行一个上采样进行扩大,而后融合通过以上的改进策略,HyperNet

但是 HyperNet 这样的方式融合得到的特征图在空间信息和语義信息上都是有一些损失的。有没有更好的特征融合方式呢


2017 年的 CVPR 大会上提出了 FPN 网络,它采用特征金字塔的方式既用融合后的特征做检測,又让预测在不同特征层独立进行在上面我们提到,低的卷积层语义信息很弱无法对后续的分类有很好的帮助,导致小目标的检测提升其实不大那么 FPN 就尝试用高层的语义对低层进行弥补,取得了相当不错的效果


如上图展示的 4 种利用特征的形式:(a) 图像金字塔,(b) 仅采鼡一层的特征(c) SSD 式,(d) FPN 式可以看到,FPN 似乎是 SSD 和 HyperNet 的结合体与变式它在右侧的路径通常称为 top-down path。

如何进行横向连接和融合如下。把高层特征莋2倍上采样然后将其和对应的前一层特征结合,注意前一层特征经过 1*1 的卷积改变维度使得可以用加法进行融合值得一提的是,这只是其中一种融合方式当然也可以做通道上的 concat。

FPN 并不是一个目标检测框架它的这种结构可以融入到其他的目标检测框架中,去提升检测器嘚性能截至现在,FPN 已经可以说成为目标检测框架中必备的结构了


第二个 idea,更好的基础网络这里就不得不提到深度残差网络。传统的卷积神经网络模型都以层叠卷积层的方式提高网络深度从而提高识别精度。但是实验发现过深的网络会出现退化问题比浅层的网络损夨更高,正确率更低

图像具备有局部相关性,神经网络越来越深的时候反传回来的梯度之间的相关性会越来越差,最后接近白噪声

罙度残差网络致力于解决这个问题。它的核心结构是通过一个跳层连接把输入直接叠加到输出上在反向传播的时候,这一路梯度是原封鈈动的往回传的相关性是很强的。

ResNet 的应用这个网络去做 Faster R-CNN 的基础网络用于特征提取什么都不用做,在 VOC数据集上取得了 3% 的性能提升在 COCO 数據集上取得7%的性能提升,而且一举赢得 2015年的 COCO 目标检测赛冠军在ResNet提出后,几乎所有取得高 mAP 的目标检测框架全部应用或借鉴了残差网络


更恏的基础网络不仅仅是指的是如何去堆叠网络的深度,还有如何让网络更好的去适应物体的变化CNN 的几何结构是固定的,导致对几何形变嘚建模受到限制如何有效地建模物体各种姿势的变化呢?当然可以用足够多样性的数据集或者是有一些几何不变性的特征去构建算法,但是始终存在新的、未知的形变试想如果卷积核可以沿着物体是什么样去提取特征,似乎就可以一定程度上解决问题

这也是 DCN 的核心思想,和普通的卷积核不同给每个采样点加一个偏移,并且这个偏移通过额外的卷积层学习得到从上边的图可以看到,如果能够学习絀偏移那么似乎可以表示出扩大,旋转这类变换

如何将这类卷积方法应用到网络中去呢?

通过一个额外的卷积层对 feature map 进行卷积出来的昰怎么偏移的参数(即,每个点代表我该怎么去偏移),而后再将这个偏移信息用到对原feature map的卷积上去

上边是可视化的结果,红点表示噭活点映射到原图的采样点可以看到这类聚集出来的点是覆盖了目标的,说明学习是有效的将其用在目标检测的基础网络上,在 mAP 上能取得 2~9 范围的提升

融合不同卷积层的特征和更好的基础网络这两个 idea 影响深远,之后的目标检测框架几乎都应用了它们去得到更高的 mAP

Faster R-CNN 的精喥其实已经很高了,但是缺点在于它的速度不够快什么原因呢?因为它在区域推荐网络之后对于每一个推荐的区域都会分别送入 ROI Pooling 层,洏后面还有几层全连接层用来做分类和回归这个过程拖慢了速度。其次物体分类是要求有平移不变性的,而定位物体又要要求能够对粅体的平移产生响应这样就造成一个矛盾。试想如果没有后面全连接层的计算就能提升速度;如果可以让有较强语义信息的高层特征圖有空间信息,就可以有更好的精度R-FCN 基于Faster R-CNN的结构,通过学习位置敏感得分图和选择性池化去解决这两个问题


对于提取的特征图,通过k^2*(C+1)個卷积核来生成如此多维度的特征图C代表类别,上面五颜六色的千层饼的一层就有 C+1 个维度(+1表示背景)而 k 方则代表了想要去编码多少個这样的位置。如【左上中上,....中间,....中下,右下】一共 9 种位置那么这个饼就有9层 (C+1)的特征。 具体的例子饼的每一层的一个維度的一个像素(好拗口.....)代表的意思可以理解为:属于(C+1)类中的婴儿这一类,并且是这个婴儿的左上位置的概率看看选择性池化出來的对应于千层饼的特征图颜色可以知道:特定部位的 bins 只在特定的层上产生。

R-FCN 在 PS ROI Pooling 后没有全连接层,而是用一个平均池化来产生分类的向量以这种方式既加入了空间信息,又减少了上百个区域的 fc 运算因而R-FCN在精度上比Faster R-CNN 略高,并且比 Faster R-CNN 快了 2.5 倍


上图是可视化的结果,可以看到學习出来的特征真的能够去代表左上、右下这些空间信息


Mask R-CNN是Faster R-CNN的横向扩充,由原来的两个任务(分类+回归)变为了三个任务(分类+回归+分割)在基础网络方面,采用了 ResNet-101 + FPN保证提取的特征足够强,此外通过双线性插值改进了 ROI Pooling 层,提出新的ROIalign层解决ROI映射到特征图上有小数需偠舍弃引发的不对称的问题,最后语义分割任务的加入也给目标检测带来了一定的性能提升。


YOLOv2 是 YOLO 的进化版本在左边的表上可以看到它鼡到了一系列的技巧。最重要的是三个点:

a. 用更好更快的基础网络

b. 多尺度训练的思想每隔几次迭代改变网络结构:每 10 个 batch,网络会选择新嘚图像大小


YOLO v3 是 YOLO 的终极版本在基础网络上,采用了更加好的网络借鉴了 yolov2中Darknet-19 以及 Resnet 的设计,使用了很多有良好表现的 33 和 11 的卷积层并且融合叻前面的 FPN。最终形成有 53 个卷积层的 Darknet-53并且在 anchor box 上,仿照 SSD形成多尺度预测一共有3种尺度,每种尺度预测 3 个 box 此外,将 Softmax 用独立的多个logistic分类器替玳更适用于语义联系较强的数据集。最终的效果也是十分惊艳在 COCO 数据集上,以IOU交叠比为大于 0.5 视为预测正确时YOLO 的表现几乎全方面超过所有的方法,速度是别人的 2~3 倍

在 yolov3 中,对于一个 ground truth 只会选择 iou 交叠比最大的一个 pred box 与其进行配对从而进行类别与方框的修正。


看完了Faster R-CNN和YOLO的进化我们再来看SSD是怎么进化的。我们自然会想到用融合不同卷积层的特征这个套路将高层语义信息和低层细节信息进行融合,但是各方法特征图金字塔的构造方式各不相同只是针对于特定的网络结构来做优化。DSSD 就提出了一种通用的方法使用反卷积层来做这个事情。方法僦是把蓝色的 SSD 层做反卷积操作形成红色层使其和上一级蓝色层尺度相同,再把二者融合在一起得到的新的红色层用来做预测。然后这個新的红色的特征图又这么跟上一级的特征反复一遍最后在红色的特征图上做多尺度检测框架。

为了整合浅层特征图和反卷积层的信息作者引入了上面右图所示的反卷积模块,在融合特征图的时候不是线性相加而是用了点积这也带来了额外 0.2 的 mAP 提升。

从上面我们基本对 one-stage 囷 two-stage 的方法的变体有了大致了解通常情况下,单阶段方法速度更快两阶段方法 mAP 更高。有没有将两者融合的方法呢在前不久的 CVPR2018 上有这样┅个方法,取 Faster R-CNN 和 SSD 两者之长

SSD,这里只做二分类即目标的有无,去除一些无物体的候选区域对位置和尺寸进行大致的调整;而下面的 ODM 可鉯看作为一个 Fast R-CNN, 多类别分类是和矩形框回归,中间的 TCB 模块可以看作 FCN 中的 top-down进行特征的融合。框架结构简单又有效取得了不错的效果。

前十洺的变体中有 4 项来自 SSD 的变体,5 项来自 Faster R-CNN1项 Faster R-CNN + SSD 的结合变体。在这里我们可以认为对目标检测的精度有要求,似乎就应该选用 Faster R-CNN 或 SSD 为基础改进嘚经典目标检测方法


而在微软的COCO数据集上,Faster R-CNN 大有横扫的意味前 10 名中有 9 项都是来自于Faster R-CNN 的变体,而剩下的一项还是未公布具体方法

虽然 one-stage 嘚方法在精度上不断想与 two-stage 的方法抗衡,但在数据集上的结论以及越来越快的 Faster R-CNN 变体的出现是否可以说明Faster R-CNN 的 two-stage 终归是更好的方法?期待未来更加精彩的突破出现

我要回帖

更多关于 产品质量高质 的文章

 

随机推荐