精华内容
下载资源
问答
  • 兖矿集团通过不断探索研究与实践,开展综合防尘样板化矿井建设,形成了以关键技术与装备为主体的粉尘防治企业技术规范。本文介绍了粉尘检测、粉尘危害粉尘防治方面的内容,包括与尘肺病有直接关系的呼吸性粉尘问题,...
  • 本文将结合作者在工业领域多年的实践应用经验,力图对工业大数据分析技术的应用思路、方法和流程进行总结,旨在为企业开展大数据分析工作提供技术和业务上的借鉴。在本文中我们将一起研讨和思考:工业大数据分析的...
  • 在分析三维可视化建模技术特点、技术难点的基础上,剖析了地下矿三维可视化建模的三大关键技术,具体包括空间插值技术、数据拟合修正技术和研发矿山三维信息系统。以石槽村煤矿为工程案例,阐明了地下矿三维可视化建模...
  • 本书以C++语法VC++6.0MFC类库编程的重点与难点内容为主线,从实践应用的角度,结合经典的实例阐述C++类的特性,深入剖析VC++,特别是MFC编程的体系结构,使有初级基础的读者能够快速掌握VC++的MFC程序设计思想...
  • 在本次讲解中,魏勋老师首先分析新零售下货架巡检存在现状,给出了以图像识别目标检测实现货架巡检的方案,之后分别从图像分类与目标检测发展历史,货架商品识别的难点、落地关键及实际应用案例等方面进行深入讲解...
    5a06bee3e6f2f4408bf78bc41b38e3c7.png

    出品 | 智东西公开课讲师 | 魏勋 品览数据技术合伙人

    导读:

    6月8日晚,品览数据技术合伙人魏勋在智东西公开课进行了AI零售合辑第三讲的直播讲解,主题为《商品识别算法在货架商品智能巡检中的应用》。

    在本次讲解中,魏勋老师首先分析新零售下货架巡检存在现状,给出了以图像识别和目标检测实现货架巡检的方案,之后分别从图像分类与目标检测发展历史,货架商品识别的难点、落地关键及实际应用案例等方面进行深入讲解。

    本文为此次专场主讲环节的图文整理:

    正文:

    大家好,我是魏勋,是上海品览数据的技术合伙人,今天由我为大家带来在快消零售领域的一个具体落地方案,是讲货架商品的智能巡检的应用,今天分享的主题为《商品识别算法在货架商品智能巡检中的应用》,主要分以下5个部分:

    1、新零售赛道:货架战争2、图像分类与目标检测发展历史3、货架商品识别的难点4、货架商品识别落地实践5、货架巡检应用实例

    新零售赛道:货架战争

    新零售的概念是马云于2016年提出,它是用大数据、人工智能等先进的技术手段,对商品的生产、流通与销售过程进行升级改造,进而重塑业态结构和生态圈,并对线上服务、线下体验以及现代物流进行深度融合的零售新模式。

    按照传统,在零售领域可以分为三大元素,分别为人、货、场,人是指消费者,货是指商品,即SKU,场是指各种大卖场、超市、全家便利店或夫妻老婆店等。场可以再细分到最小的有机单元,就是货架。随着新零售时代到来,货架已经逐渐成为零售企业的战场。

    货架的情况包括商品有多少,它被放在哪里?放在哪里比较适合?同时也包括陈列哪些品类,有没有竞品,竞品是如何放置?这些对于零售企业都很重要,对于未来销售、营销的策略有很大的参考意义,所以把它称为一场关于货架的战争。

    举个简单的例子,比如当货架上的商品缺货了,作为一个消费者,会做什么样的行为?可能会买别的品牌,还可能去别处买,或者干脆不买,或买另一种类型替代。无论如何若货架上缺货时,品牌商可能会失去46%的购买者,而零售商可能会失去30%的购买者。

    为了要打赢这场货架战争,我们必须要精确的获取线下商品的实际陈列信息。为了做到这一步,我们必须要对货架图像中的商品进行识别,这就会用到计算机视觉领域中的图像分类和目标检测技术。

    cb6d97cbc5108cb4ae634fc5a2f1f5b5.png

    如果在CV领域研究比较久的同学肯定清楚,图像分类跟目标检测是计算机视觉中非常基础的研究方向,且非常重要。图像分类是最基础的,例如上图显示的小猫,可以直接对它进行分类,判断到底是猫还是狗。检测就额外增加了一部分,必须进行定位,才知道它到底是在哪里,同时对定位的目标进行分类。

    从图像分类和目标检测的发展历史来看,在2012年以前都是通过提取手工特征,比如SIFT、HOG、LBP等,然后才有后续的分类和检测。随着AlexNet在2012年横空出世,后面所有的方法都是用了CNN或者深度学习的方式来自动提取图像特征,进而帮助我们进行图像分类和目标检测。

    2d337233c1ac2cbc88cbdbc877fd0174.png

    对于目标检测的发展脉络,可以从1999年SIFT的提出开始,还有Cascades、HOG、DPM等,这些都是2012年之前提出用来实现目标检测的手段。随着AlexNet提出之后,AlexNet最早用于图像分类。2013年后,开始有学者在想目标检测是否也可以用CNN来做,所以第一个作品是Overfeat,在与它很接近的时间里,出现了一个非常经典的网络RCNN,然后像Fast R-CNN、Faster R-CNN还有YOLO系列及SSD和RetinaNet等。诸如此类的很多网络可以从上图中看到,从13年到了19年,这段时间里涌现了非常多的网络,标红的都是些比较有影响力的网络。

    926f6613ee251beac36d9d6620fba983.png

    目标检测的深度学习模型通常是分为两种,第一种是两阶段模型,有Overfeat和RCNN系列,它先要对目标框有一个比较粗的定位,然后再对粗的目标框进行精细的修正,同时进行分类识别。有学者觉得这太麻烦了,能不能一步到位,直接从图像里得到bounding box和它的类别信息。这就是YOLO系列,还有SSD和RetinaNet等。通常,两阶段模型的精度会比较高,但速度会比较慢;单阶段模型的精度通常要低些,但它的速度会很快,如上图右边所示,不仅是说两阶段、单阶段的问题,还考虑了backbone的问题,若backbone越大,速度可能越慢。我们可以看到同一个backbone,在单阶段的模型下,它的速度远远要快于两阶段模型,但是精度mAP会要低一些,这张图是在COCO数据集上计算的结果。

    货架商品识别的难点

    上面简要介绍了图像分类及目标检测的大致情况,下面直接进入具体场景,就是货架商品识别。识别包含检测和分类两部分。对于货架商品识别的难点分成两块,首先,是算法难点,主要有四点。第一是商品种类繁多,像ImageNet用来刷榜时,一般用到1000个种类,但商品的SKU种类基本上是上万,甚至是几十万,对真实世界里面的SKU数量可能是百万千万级;第二是在货架场景中,通常会摆放的非常密集;第三是某些商品非常相似,特征看上去没有明显的差异,这也是图像分类的难点,只是在货架上体现程度可能会更大;第四点比较特殊,同一款商品可能有不同的规格,比如可口可乐,它可能会有330毫升、500毫升,或一升的,它更像是等比例缩放,因为计算机视觉天然是要求有尺度不变性的,这种情况通常是很难区分的。

    a00693e7567a8e0f8fe93b2d552efcde.png

    上图是具体的图片展示,最左边的图是一个调味料的货架,可以看到种类非常多,一排货架里面应该有几十种,摆放也非常密集,基本上是紧挨着的情况。中间的图是一个比较典型的情况,两个商品属于同一个商家,左边是一个常规的,右边的可能是为了某种活动促销特别特意加了100克,可以看到商品其实非常相像,除了中间多了“100克”之外,其他方面没有任何差异。因为在PPT的图比较大,看得比较清楚,如果是在货架上,是很难分辨出来的。右面的图片是同类商品具有多种规格,可以看到最左上角的酱油是300毫升,中间第二排的是500毫升,倒数第二排是800毫升。它们的外观很像,只是存在不同的规格,如果你只是用常规的分类模型去训练,或者用常规的操作去处理,这三种分错的概率很大。

    第二个是数据难点,也包括四个部分。第一个是拍摄的货架可能是一种非常倾斜的状态,倾斜很容易导致透视,很多商品就会被遮挡,检测跟分类会受到很大的干扰;第二个是采集到的货架图片是模糊的,里面可辨识的特征基本上看不清,第三个是货架图片翻拍,有一些从业人员可能会偷懒,对着电脑拍一张图片作为工作业绩,然后上传图片,这就是翻拍的情况,这种翻拍也会影响模型的准确率,客户也会要求我们把这类图片识别出来;第四个是货架图片存在曝光过度或者曝光不足的情况,在这种情况下货架的商品基本上看不清的。

    f47e212b9c6af81ceaa11a344cb94c79.png

    针对上面四点,再给大家展示下,第一张图是货架过度倾斜,在过度倾斜的情况下,靠右边的商品还可以看出,但靠左边的商品基本上被遮挡,即使能检测出来,它的类别也识别不了,因为大部分的特征都被遮挡。第二张图展示货架图片模糊的情况,模糊导致看不清商品的主要区分特征,尤其涉及到一些比较相似的商品,模糊基本上就看不清了。第三张图是翻拍的情况,通过肉眼能看出一些情况,它里面会有一条条纹理信息,一般叫摩尔纹,由屏幕的发射光和自然光不一样导致。最后是货架图片过暗或特别亮的情况,过亮时特征都被遮挡,你只能看到一片闪亮,过暗时可以隐约看到一点,但也不知道具体是什么商品。

    货架商品识别落地实践

    03bd3fb9e279ebb0545327e481930d64.png

    下面介绍下整体落地实践的流程,流程是比较通用的。首先是数据标注,这是深度学习不可避免的。通常先手标一部分,再利用一个比较弱的模型,进行一个预标注,最后是人工调整,这很大程度上节省人力的成本。

    第二个是模型的训练调优,通过模型选型和超参的调整去训练模型。训练完后,先做内部测试,内部测完后,还要再做公测,根据公测的反馈,再去迭代上面的步骤,也可能会重新补一批数据,再重新训练模型,达到公测的要求之后,我们会部署上线。目前我们主要是云端部署的方式,模型的云端部署用的是tf serving的方式,外部端是 flask框架。

    对于数据难点,其实有一句机器学习的名言:数据是模型的上限,必须要保证数据质量,你才能谈模型的准确率。所以对刚才的几种情况:货架倾斜、模糊、翻拍、过暗和过亮,再把图片送给模型之前,先对图像质量进行分析。实际情况可能还不止这4种。对于货架倾斜,我们会做一个货架检测,根据检测出来的货架层的一个角度来判断倾斜情况。后面三种是通过图像处理的方式来进行判断,一张图片必须通过质量检测,同时满足这4个条件后,才把它送到模型里面去做后续的检测和识别。

    在最早期时,对于场景货架商品的识别,我们直接应用检测模型来做检测,但实际上,我们尝试了很多种检测模型,但是效果不太理想,mAP也很低,只有40%左右,与COCO的情况就差不多,SKU类别非常容易分错,根本无法商用。

    0b4366559b0b2cd8d673537d8217076f.png

    通过分析发现,首先,直接用检测模型去进行检测、识别,在COCO数据集上在SOTA模型上有54%左右的准确率。由于数据量及SKU的种类数量非常大,所以不容易实现。通过大量的阅读论文,发现目标检测里面的定位和分类,其实是有一定矛盾的,通过上图右边看到,若要检测北极熊,它关注的地方是语义信息比较丰富的,主要集中在中间的部分,对于定位通常是更倾向于去关注物体的边界处。对于检测相当于一个多任务学习,同时去做定位跟识别,是有一定的矛盾的,它会影响检测器的训练。

    第二点是一旦更新了某些SKU,就必须要重新训练检测器。若大家对目标检测比较熟悉,发现检测器的训练会花费很长时间,时间成本很大,训练复杂度也很高。所以,是否有一种比较通用的检测器,可以避免了上面提到的两种情况。

    经过多方讨论,我们决定对SKU不按具体的类别去标注,而是按它的包装对它进行标注,比如像调味品,主要以瓶装、罐装、盒装主为主,然后以这个标注再去训练检测器,定位到具体的SKU位置,之后对定位出来的SKU进行crop操作,对抠出的小图进行后续的识别,相当于是把它分为两个阶段来做。

    为什么要这样做?第一点看使用包装,包装相当于SKU的形状,我们在对SKU形状进行定位及分类时,会削弱定位及分类之间的矛盾。第二点是SKU的种类是成千上万甚至十几万,但是它的包装种类数量是有限的,通常不到10种,具有很强的通用性。一旦训练完成后,如果有SKU的更新,我们不需要再重新训练。除非包装发生了很大的变化,才会重新训练检测模型。

    到底要使用一个什么样的检测模型呢?在模型选型时,同时还要兼顾检测精度和速度,目前以云端部署为主,虽然不要求实时性,但也希望尽量快的响应,客户通过web请求,上传图片、做检测分类,还有后续一系列的逻辑处理,在这种情况下,希望能够在几秒内有一个实时响应。

    bf18bdce9b82226aa122824e795feaf1.png

    在V100上测试过,早期时分别尝试了Faster-RCNN、RetinaNet、YOLO v3。可以看到Faster-RCNN的backbone用的是ResNet50+FPM,它的检出率能达到能到97.1%,但是它的速度很慢,因为是一个二阶段的模型,只有6FPS;RetinaNet经过调优之后,能达到一个96.7的检出率,速度为15FPS;YOLO v3的效果也不是特别理想,检出率只有94.5%,但是它的FPS很高,能超过30。右图是RetinaNet和YOLO v3对同一张图的检测效果,可以看到YOLO v3会把上面的两个箱体漏掉,而且右边会多检测出非商品的东西,这个与YOLO v3的机制有关,它对如此密集的商品摆放支持不太友好,而RetinaNet使用了一个更密集的Anchor设置,效果上会更好。

    介绍完检测后,下一步如何对成千上万的SKU进行有效的识别?最开始考虑用图像检索的方式,这也是比较自然、省力的想法,只需要训练一个比较通用的提特征模型,如有一个新的SKU,只需要提供几张样例图片作为检索库,然后对一个小图进行识别,直接去检索库里面检索即可。所以先通过模型先提取特征,提完后跟检索特征库进行匹配,比如可以直接计算余弦距离或者欧式距离,然后去找Top1。经过多次实验,它的识别准确率最高也只能达到90%左右,这是无法达到商用标准,商用标准一般至少得到97%、98%,对有些客户比较严格会要求99%以上。

    原因分析下来发现,首先是不同商品之间的特征差异很大,现实场景很复杂,训练提取特征的模型无法达到很强的鲁棒性。而且业界SOTA的图像检索方法准确率也只有90%左右。最终,还是通过图像分类的方式对小图进行识别。

    由上图可以看出,货架上的商品摆放是非常密集的,很容易影响定位精度,造成重框的现象,左边这张图是早期的情况,可以看到第二排下有很多的重框,第三排也是类似的情况。经过优化之后,基本上都能够把重框去掉。分析发现用传统的 smooth-l1的回归loss,以及传统NMS技术无法高效的定位去除重复的框。我们的改进方法是使用一种针对性的回归loss,使得这种密集的商品摆放能够有比较好的回归定位。第二是使用后处理的去重框逻辑,经过这两部分操作后,最终能达到像右边的一个效果。

    针对商品十分相似的情况,比如1000种的SKU类别,里面可能有几十种是很相似的,相似商品之间的类间距会很小,它混在大量的类间距很大的类别中,比如酱油跟豆瓣酱,它们可能差异会很大,因为一个是瓶装,一个是罐装;比如两种酱油,一种是红烧酱油,另一种是天然酱油,它们就很接近,可能只是颜色上有差异。之前也实验过用细粒度图像分类来做,但发现细粒度分类是有要求的,必须要求图片的分辨率很高,才能去做细粒度分类,货架图片通常是几百万到千万级的像素,再从里面抠出来的小图,宽、高可能就200×200,是无法满足用细粒度分类要求的。

    可以通过一个分治的方法,对SKU进行层级划分,非相似的划在一起,相似的划在一起,相似的都统一一个label,统一完label后,再把相似的具体细划分。相当于在同一层级之下,它们的类间距是在一个量级,至少分类器是不容易去忽视这样的情况。

    对于同一类商品具有不同的规格,跟刚才略有差异,因为刚刚只有相似,但还有一些特征差异的,这里并没有太大的特征差异,只是等比例缩放的情况,分析下来发现,对于2D计算机视觉,它本身需要满足尺度不变性,仅靠视觉特征基本是无解的,所以必须要借助非视觉特征。我们会采用机器学习的方法来提取一些关键有用的特征,比如高度、宽度等进行区分,当然这种情况必须得满足拍摄距离是比较固定的。通常拍摄距离不会有大幅的改变,而且我们不仅有高度这样的特征来进行机器学习模型的训练,还会有一些别的非视觉特征。可能有同学会问,如果2D视觉解决不了,为什们不用3D视觉?这受限于我们的场景,图像本身其实主要是由客户来提供,他来调用我们的服务,所以我们是无法要求他持一个3D的设备去进行数据采集,这是无法做到的,也限制了我们的一个技术实施。

    货架巡检应用实例

    436404f77b650ceae5b138096b508f4b.png

    上面介绍了把货架商品识别的难点,以及所采取的方案,下面简单介绍下货架巡检的应用实例。比如跟欣和的合作,它主要生产各种调味料,像酱油、豆瓣酱等。我们给他做好商品识别后可以用来做什么?首先,他们内部的一些陈列规则,比如看它的排面是否少于竞品,当看到同一排里面少于竞品的,这说明什么?他们要加强这家店或者这些相关货架的陈列数量;第二个是说不在黄金位置,黄金位置是你能进到一个店里,或者是在货架面前最容易拿到或者最容易看到的货架层的位置,通常5层货架,第二层、第三层是黄金位置,第一层可能很不好拿得到,下面两层弯腰也不方便,所以黄金位置,对于商家来说也是很重要的一个指标;第三是缺货、陈列不合格,看货架是否能陈列饱满;第四个是本品没有集中陈列,就是商品不应该隔开来放,应该放在一起。

    同时也跟国内味全果汁也有合作,我们主要是在AI巡店通上做的产品,味全果汁包装的更新速度非常快。所以,我们迭代的速度必须要满足他们更新速度。我们基本能够精确地识别出他们具体有哪些果汁,以及它的一个陈列位置,以及各种陈列信息。

    展开全文
  • 中国电信股份有限公司上海分公司通过建设城市光网智能化运维支撑平台,建立了标准接口规范,突破了ODN故障定位的技术难点,实现了跨系统协同的服务前移,提升了城市光网服务质量。本文描述了平台开发思路、系统架构...
  • 本文将结合作者在工业领域多年的实践应用经验,力图对工业大数据分析技术的应用思路、方法和流程进行总结,旨在为企业开展大数据分析工作提供技术和业务上的借鉴。 在本文中我们将一起研讨和思考: 工业大数据分析的...

    导读:工业大数据即工业数据的总和,其来源主要包括企业信息化数据、工业物联网数据、“跨界”数据等,它是工业互联网的核心,是智能制造的关键。工业大数据分析作为工业大数据的核心技术之一,是工业智能化发展的重要基础和关键支撑。

    本文将结合作者在工业领域多年的实践应用经验,力图对工业大数据分析技术的应用思路、方法和流程进行总结,旨在为企业开展大数据分析工作提供技术和业务上的借鉴。
    在本文中我们将一起研讨和思考:

    工业大数据分析的特殊性;
    工业大数据分析的困境及难点;
    工业大数据分析的基本框架;
    工业大数据分析该如何开展?
    

    工业大数据分析技术在实践应用中的思路与方法

    01 工业大数据分析与传统数据分析的差异性及特殊性
    工业大数据分析是利用统计学分析技术、机器学习技术、信号处理技术等技术手段,结合业务知识对工业过程产生的数据进行处理、计算、分析并提取其中有价值的信息和规律的过程。从过程与目标角度看,工业大数据分析和传统统计分析、商业智能分析涉及的学科和技术大同小异。但从分析理念和特点上看,工业大数据分析又有其自身的特殊性。
    首先,进入大数据时代,数据的变化往往引发工作方法和价值体现的改变。对于数据的变化,非工业领域往往强调数量上的变化;但在工业领域,则更注重数据完整性和质量的提升。工业现场往往对分析结果的精度、可靠度要求高,加之工业对象和过程本身也很复杂。因此,工业大数据分析方法的重点是通过数据条件的改善,结合相关分析技术的有效应用,得到质量高的分析结果。
    此外,工业场景的边界往往都有专业领域的机理来约束。对于复杂的工业过程数据分析,往往不能仅局限于相关关系分析,需要强调工业领域业务知识和数据分析过程的深度融合;强调复杂业务问题简化和分析结果的可解释性,而不是简单地追求数据量大与分析算法的复杂和先进性。一言以蔽之,工业大数据分析需要在工业具体业务要求的边界下,用数据思维和数理逻辑去严格地定义问题,采用“数据驱动+机理模型”的双轮驱动方式去精确表征、有效解决实际问题。

    02 工业大数据分析的困境及难点

    工业大数据分析的困境及难点主要体现在对工业对象(过程)理解和认知要求的高标准和一致性、工业大数据建模的复杂性和反复性、分析结果的可靠性和确定性三个方面。
    第一. 工业大数据分析对数据分析人员的业务背景认知能力要求较高
    数据分析师不能按照以往思路,对业务相关对象、数据情况初步摸底认知后就匆匆开展具体分析建模工作。而针对工业对象和过程的复杂系统,不同的场景下业务问题之间的关系往往会发生改变,加之数据缺失严重、噪声大、业务含义代表性强等因素,理论体系下的数据分析相关理念与技术很难直接适用于此类场景的变化和复杂度要求。如若数据分析团队对研究工业对象认识不够深入或“片面性”理解,往往会导致分析出来的结果是只是证明了领域内业务机理/常识的正确性或某一公认理念,就会经常出现项目研究投入高、产出低的问题。
    因此,工业大数据分析需坚持的原则是分析和应用都要结合具体的流程,分析工作开展前要保证数据条件符合业务场景要求。
    第二. 工业大数据建模算法的复杂性和过程的反复性使得整个实现过程较为“繁琐和曲折”
    在开展工业建模时,虽然基础算法原理和应用方式的变化不大,但运用此类算法的过程却极大程度地“曲折”,往往需要结合业务知识和数据情况将算法嵌入到实际的工业应用场景与逻辑中去,需要模型基于初次的分析结果不断地修正、迭代和完善,以此来提升模型的鲁棒性与准确性。此外,工业过程数据形式的复杂性、数据质量参差不齐等也使得工业大数据分析建模与有效应用的困难度加大。
    第三. 工业产业模式及应用场景对工业大数据分析结果的可靠性和决策可指导性要求高,导致工业大数据分析应用的成熟化落地变得困难。
    一般情况下,大多数企业的工业现场设备控制、工艺调整、质量管控等都已处在相对优良的阶段,而通过工业数据分析得到的概率性结论和现场实际有一定的偏差。此偏差可能是生产环节本身引起的,也有可能是数据采集环节的数据本身失真引起的,单从数据分析结果角度往往很难发现和解释具体差异引起的原因,导致大家对于分析结果的可靠性存疑。另一方面,企业业务人员对所从事的工业过程/经营管理等业务的认识原本就相对深刻,这就要求工业大数据分析能剖析、给出更深层次的业务实情信息或优化策略,只有分析得到的知识具有更高精度和可靠性时,从业务决策指导层面才具有实用价值,这也是工业大数据分析价值落地应用面临的挑战之一。
    因此,工业领域的数据分析重点强调数据分析技术和领域知识融合来获取有价值的知识。当模型涉及到的因素很多、形成真正的复杂多维度问题且机理不清晰时,且往往没足够的数据来建立和验证模型,这时就需要充分利用专业领域知识进行“降维”,力求从有限的数据中分析出足够可靠的结果。

    我们在实践中认识到工业大数据分析的瓶颈难点,往往不是计算机存储和处理数据的能力,而是蕴含工业机理的数据关联关系的复杂性。这种复杂性使得传统的数据分析方法难以奏效,无法从数据中获得质量更高、价值更大的知识,如果没有合适的思想和技术手段,面对工业大数据价值的蓝海时,就会无从下手。

    展开全文
  • 如何从复杂的代谢组学数据中提取出有价值的信息,筛选出潜在的生物标志物成为近年来代谢组学研究的热点和难点。网络药理学能够通过计算机模拟算法、运用组学、高通量筛选及网络分析等技术揭露药物-靶点-疾病之间复杂...

    代谢组学是近年发展快速的一门学科,目前在医学、植物学、微生物学、毒理学、药物研发等多个领域中得到了广泛的应用。如何从复杂的代谢组学数据中提取出有价值的信息,筛选出潜在的生物标志物成为近年来代谢组学研究的热点和难点。网络药理学能够通过计算机模拟算法、运用组学、高通量筛选及网络分析等技术揭露药物-靶点-疾病之间复杂的网络信号关系,已经成为揭示生物系统复杂功能和行为的有力工具。

    大纲:

    一、代谢组学研究技术与实践

    1、代谢组学简介及样本的采集与制备关键问题探讨

    1.1 代谢组学概述

    1.2 代谢组学操作流程

    1.3 样本的采集、储存与制备关键问题

    2、代谢组学数据采集与预处理,决定数据统计结果的准确性

    2.1 常用技术平台介绍(NMR和LC-MS)

    2.2 常用软件和数据库介绍(代谢物鉴定、数据预处理与分析)

    2.3 数据预处理,包括数据归一化、标准化和数据转化以及缺失值评估等

    3、基于SIMCA-P软件的代谢组学数据多元统计分析与实操

    3.1 样本分类(无监督和监督模式)

    3.2 差异变量筛选(S-plot、S+V-plot、VIP、biplot等)

    3.3 常见图形结果解读

    二、网络药理学研究技术与实践

    4、网络药理学研究思路和流程

    5、网络药理学数据分析与实操

    5.1 化学成分的获取与筛选(Pubchem、TCMSP数据库、TCMID数据库、Swiss ADME数据库等)

    5.2 中药化学成分靶点获取(TCMSP数据库、BATMAN-TCM数据库、Similarity Ensemble Approach (SEA)数据库、HitPick数据库、Swiss Target Prediction数据库等)

    5.3 疾病靶点富集数据库(DisGeNET数据库、GeneCards数据库、OMIM数据库等)

    5.4 化合物与疾病靶点映射(韦恩图)

    5.5 PPI网络分析(PPI网站的构建、PPI核心网络的筛选)

    5.6 富集分析(DAVID数据库、Metascape 数据库)

    5.7 网络图构建—Cytoscape(数据导入、节点关系的建立、节点属性计算、调整网络样式、筛选及过滤、网络图导出)

    三、代谢组学与网络药理学结合研究技术与实践

    6、代谢组学与网络药理学结合研究思路

    7、代谢组学与网络药理学结合分析技术

    7.1 代谢组学与网络药理学数据的获取(HMDB数据库、成分靶点获取、疾病靶点富集数据库、 代谢专属数据库)

    7.2 代谢组学功能分析(富集分析、通路分析等)

    7.3 代谢小分子网络关联分析(Metscape软件、KEGG数据库、OmicsNet数据库)

    7.4 代谢组学与网络药理学功能层次关联分析

    四、文献解读及实例解析

    8、文献解读:代谢组学与网络药理学结合的文章分析流程和套路

    8.1 中药化学成分靶点与代谢小分子网络分析实例

    (Food Res Int. 2020, 136:109503)

    创新点:采用Metscape软件对代谢组学发现的差异代谢物和中药成分的药物靶点关联,聚焦关键蛋白。

    8.2代谢组学与网络药理学功能层次关联分析实例

    (J Ethnopharmacol. 2021,264:113281. )

    创新点:采用功能富集工具分别对网络药理学和代谢组学数据进行关联,聚焦关键通路。

    8.3代谢组学和网络药理关联分析实例

    (Comput Struct Biotechnol J. 2021, 19:1002-1013)

    创新点:整合代谢组学和网络药理学揭示羟基红花黄色素A抗急性脑外伤的作用机制损伤。

    9、实例解析与练习

    9.1 TCMSP数据库获取与筛选化学成分

    9.2 Swiss Target Prediction数据库预测成分靶点

    9.3 DisGeNET数据库获取疾病靶点

    9.4 化合物与疾病靶点映射

    9.5 PPI网络绘制

    9.6 DAVID软件进行富集分析

    9.7 Cytoscape工具绘制成分-靶点图

    9.8 Metscape绘制代谢-酶网络关联图
    创新点1

    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • 蓝色简洁风格高校论文答辩PPT模板.pptx,模板概述该PPT共计30页,颜色以蓝色为主。详细介绍该PPT分为5个 章节,分别为“绪论”、“研究思路与方法”、“关键技术和实践难点”、“研究成果与应用”、“相关建议与
  • 15.2.1 H.264/AVC关键技术要点 569 15.2.2 X264视频编码设计与剖析 577 15.2.3 X264核心模块MMX/DSP汇编优化 599 15.3 运行X264编码系统 606 15.3.1 VC平台下编译运行X264 606 15.3.2 JM验证X264码流 610 ...
  • 论文答辩通用ppt模板,目录:绪论、研究方法与研究思路、关键技术和实践难点、研究成果与运用,论文总结,淡雅灰立方体网格背景,博士帽考卷主图、大标题文字创意封面,简约扁平化设计,咖啡棕配色,精美图表图文...
  • 8.4 高清摄像机的关键技术 241 8.4.1 高清配套镜头 242 8.4.2 图像传感器 242 8.4.3 图像灵敏度问题 242 8.4.4 编码压缩算法 242 8.4.5 高清信号传输 243 8.4.6 视频管理平台支持 243 8.4.7 高清信号...
  • 8.4 高清摄像机的关键技术 241 8.4.1 高清配套镜头 242 8.4.2 图像传感器 242 8.4.3 图像灵敏度问题 242 8.4.4 编码压缩算法 242 8.4.5 高清信号传输 243 8.4.6 视频管理平台支持 243 8.4.7 高清信号...
  • 15.2.1 H.264/AVC关键技术要点 569 15.2.2 X264视频编码设计与剖析 577 15.2.3 X264核心模块MMX/DSP汇编优化 599 15.3 运行X264编码系统 606 15.3.1 VC平台下编译运行X264 606 15.3.2 JM验证X264码流 610 ...
  • 15.2.1 H.264/AVC关键技术要点 569 15.2.2 X264视频编码设计与剖析 577 15.2.3 X264核心模块MMX/DSP汇编优化 599 15.3 运行X264编码系统 606 15.3.1 VC平台下编译运行X264 606 15.3.2 JM验证X264码流 610 ...
  • 4.1.7 dvr的关键技术 96 4.1.8 dvr术语介绍 96 4.2 dvr软硬件构成 97 4.2.1 嵌入式dvr 97 4.2.2 pc式dvr 100 4.2.3 嵌入式对比pc式dvr 101 4.3 dvr软件功能 102 4.3.1 设备配置及管理 103 4.3.2 录像管理 ...
  • 无铅焊接理论与实践均属于锡焊技术的领域,仅是有铅转向无铅的过程,目前无铅焊料的标准体系,锡银铜已成为共识,但其熔点仍偏高,对锡银铋铟以及锡铋、锡锌焊料将成为人们关注的热点方向。由于无铅焊接液相温度与...
  • 15.2.1 H.264/AVC关键技术要点 569 15.2.2 X264视频编码设计与剖析 577 15.2.3 X264核心模块MMX/DSP汇编优化 599 15.3 运行X264编码系统 606 15.3.1 VC平台下编译运行X264 606 15.3.2 JM验证X264码流 610 15.3.3 ...
  • 15.2.1 H.264/AVC关键技术要点 569 15.2.2 X264视频编码设计与剖析 577 15.2.3 X264核心模块MMX/DSP汇编优化 599 15.3 运行X264编码系统 606 15.3.1 VC平台下编译运行X264 606 15.3.2 JM验证X264码流 610 15.3.3 ...
  • 15.2.1 H.264/AVC关键技术要点 569 15.2.2 X264视频编码设计与剖析 577 15.2.3 X264核心模块MMX/DSP汇编优化 599 15.3 运行X264编码系统 606 15.3.1 VC平台下编译运行X264 606 15.3.2 JM验证X264码流 610 15.3.3 ...
  • 15.2.1 H.264/AVC关键技术要点 569 15.2.2 X264视频编码设计与剖析 577 15.2.3 X264核心模块MMX/DSP汇编优化 599 15.3 运行X264编码系统 606 15.3.1 VC平台下编译运行X264 606 15.3.2 JM验证X264码流 610 15.3.3 ...
  • 15.2.1 H.264/AVC关键技术要点 569 15.2.2 X264视频编码设计与剖析 577 15.2.3 X264核心模块MMX/DSP汇编优化 599 15.3 运行X264编码系统 606 15.3.1 VC平台下编译运行X264 606 15.3.2 JM验证X264码流 610 15.3.3 ...
  • 15.2.1 H.264/AVC关键技术要点 569 15.2.2 X264视频编码设计与剖析 577 15.2.3 X264核心模块MMX/DSP汇编优化 599 15.3 运行X264编码系统 606 15.3.1 VC平台下编译运行X264 606 15.3.2 JM验证X264码流 610 15.3.3 ...
  • 15.2.1 H.264/AVC关键技术要点 569 15.2.2 X264视频编码设计与剖析 577 15.2.3 X264核心模块MMX/DSP汇编优化 599 15.3 运行X264编码系统 606 15.3.1 VC平台下编译运行X264 606 15.3.2 JM验证X264码流 610 15.3.3 ...
  • 15.2.1 H.264/AVC关键技术要点 569 15.2.2 X264视频编码设计与剖析 577 15.2.3 X264核心模块MMX/DSP汇编优化 599 15.3 运行X264编码系统 606 15.3.1 VC平台下编译运行X264 606 15.3.2 JM验证X264码流 610 15.3.3 ...
  • 15.2.1 H.264/AVC关键技术要点 569 15.2.2 X264视频编码设计与剖析 577 15.2.3 X264核心模块MMX/DSP汇编优化 599 15.3 运行X264编码系统 606 15.3.1 VC平台下编译运行X264 606 15.3.2 JM验证X264码流 610 15.3.3 ...
  • 15.2.1 H.264/AVC关键技术要点 569 15.2.2 X264视频编码设计与剖析 577 15.2.3 X264核心模块MMX/DSP汇编优化 599 15.3 运行X264编码系统 606 15.3.1 VC平台下编译运行X264 606 15.3.2 JM验证X264码流 610 15.3.3 ...
  • 15.2.1 H.264/AVC关键技术要点 569 15.2.2 X264视频编码设计与剖析 577 15.2.3 X264核心模块MMX/DSP汇编优化 599 15.3 运行X264编码系统 606 15.3.1 VC平台下编译运行X264 606 15.3.2 JM验证X264码流 610 15.3.3 ...
  • 在社区看到了这篇日志分析的文章--《Web日志安全分析浅谈》,文章整体写的非常棒,对日志分析的作用、难点、工程化建设攻击溯源等方面进行了全面的描述。去年的毕设我也做了相关的研究,主要是去实现一个日志分析...

    前言

    在社区看到了这篇日志分析的文章--《Web日志安全分析浅谈》,文章整体写的非常棒,对日志分析的作用、难点、工程化建设和攻击溯源等方面进行了全面的描述。去年的毕设我也做了相关的研究,主要是去实现一个日志分析系统,算是一个更加的完整的工程化建设,这里把一些关键的过程与大家分享。

    一、系统设计

    在开发一个项目之前当然要先做好设计,明白自己想要的是一个什么系统,可以使用哪些技术、算法和硬件设备。我们分成功能设计、数据库设计、算法结构设计、硬件拓扑设计、前端界面设计、主框架设计6个部分。

    1.1功能设计

    系统应包括系统监控、用户管理(系统使用人员)、日志管理、实时分析、离线分析等功能,并为用户提供可视化的操作、分析与结果展示界面。功能结构图如图所示:

    1.2数据设计

    系统使用MySQL数据库,库中需要建立logmanagement数据库,拥有user、offline、online三个数据表,分别为用户表、离线数据表、在线数据表。数据库中的数据表如下:

    offline数据表用于存储离线日志的分析结果,每一个上传的日志文件对应一条记录,包括名称、大小、类型、起止日期、访问量最高的前10个IP地址、访问量最高的前10个URL、10大攻击类型的攻击次数、以及攻击者和被攻击者的地理位置信息。数据表结构如下:

    online数据表用于存储实时分析的中间结果,数据表的结构如下:

    user表是管理员的用户表,用来存储管理员的个人信息。

    1.3算法结构设计

    系统使用了三种机器学习算法进行恶意攻击的识别:逻辑回归、支持向量机和朴素贝叶斯。同时包含了传统的正则匹配算法,正则虽然无法识别未知攻击,但是在已知攻击的识别上误报率相对机器学习是比较低的。为了能够识别爆破、目录扫描等与时序有关的攻击,还应设计数值统计模块进行恶意ip访问频率的计算。此外,多种算法如何结合需要进行足够的实验,谁的权重(对结果的影响)更大?并行还是串行?本系统中对正则匹配、数值统计和机器学习(三种机器学习算法两两取交集,即实行投票机制,三种中两者检测出异常则认为异常)进行串行处理,得出一条日志的识别结果--正常或恶意(具体到攻击类型),然后检测结果(而非日志)存储到数据库中,算法结构如图所示:

     

    1.4硬件拓扑设计

    为了实现系统对日志的高效收集,使用了Flume框架;为了具有大数据的处理能力,使用了Spark和HDFS做计算和存储。其中Flume与HDFS是完美兼容的,可以很方便的实现实时日志收集。这几个框架都是分布式的,结构大概如下所示

    1.5前端界面设计

    为了提供一个良好的用户交互性能,需要一个便捷的可视化界面,这里选用Flask框架开发一个Web管理平台,包含对服务器状态的监控、日志的管理以及分析结果的可视化等。

    1.6主框架设计

    主框架要能够说明系统的总体功能及数据流走向,其中,日志获取有两种途径,Web界面负责接收用户的离线上传,Flume负责实时获取;HDFS负责日志存储,自动将获取(离线和实时)的日志备份到各个节点上;Spark负责日志处理,运行特征匹配、数值统计和机器学习算法对其进行识别和分类;MySQL负责结果存储,根据日志获取途径,存储到不同的表中;Flask和Echarts负责界面展示与操作,使用多种图表样式,形象化地展示分析结果。如图所示:

    离线分析就是用户通过Web界面将文本日志文件上传进行分析,相对简单,实时分析就需要严格控制数据流的走向。这里就像一个生产者与消费者的模型,Flume不断收集日志(生产)存储到HDFS,Spark Streaming不断的从HDFS读取日志(消费),实时结构如下:

    二、系统实现

    2.1日志预处理

    我们知道一条日志大概是这样的

    115.28.44.151 - - [28/Mar/2014:00:26:10 +0800] "GET /manager/html HTTP/1.1" 404 162 "-" "Mozilla/3.0 (compatible; Indy Library)"

    字段含义为:远程IP - 用户名 时间 请求主体 响应码 请求字节 请求来源 客户端信息
    想要对日志进行识别分析,首先要对各字段进行提取,其中攻击识别主要依靠“请求主体”,我们可以如下正则进行提取

    log_Pattern = r'^(?P<remote_addr>.*?) - (?P<remote_user>.*) \[(?P<time_local>.*?)\] "(?P<request>.*?)" '\
            '(?P<status>.*?) (?P<body_bytes_sent>.*?) "(?P<http_referer>.*?)" "(?P<http_user_agent>.*?)"$'

    2.2正则匹配

    算法的匹配正则来自与网络和一些CMS厂商的的正则代码,经过多次修改测试可以识别常见的已知的Web攻击,包括SQL注入、XSS攻击、命令执行等常见Web漏洞。比如部分正则如下所示:

    self.SQL_pattern = """/select(\s)+|insert(\s)+|update(\s)+|(\s)+and(\s)+|(\s)+or(\s)+|delete(\s)+|\'|\/\*|\*|\.\.\/
            |\.\/|union(\s)+|into(\s)+|load_file(\s)+|outfile(\s)+"""
    self.Webshell_pattern = """(preg_replace.*\/e|`.*?\$.*?`|\bcreate_function\b|\bpassthru\b|\bshell_exec\b|\bexec\b|
            \bbase64_decode\b|\bedoced_46esab\b|\beval\b|\bsystem\b|\bproc_open\b|\bpopen\b|\bcurl_exec\b|\bcurl_multi_exec\b|
            \bparse_ini_file\b|\bshow_source\b|cmd\.exe|KAdot@ngs\.ru|小组专用大马|提权|木马|PHP\s?反弹|shell\s?加强版|
            WScript\.shell|PHP\s?Shell|Eval\sPHP\sCode|Udp1-fsockopen|xxddos|Send\sFlow|fsockopen\('(udp|tcp)|SYN\sFlood)|
            z0|z1|z2|z9|caidao"""
    self.XSS_pattern = """xss|javascript|vbscript|expression|applet|meta|xml|blink|link|style|script|embed|object|
            iframe|frame|frameset|ilayer|layer|bgsound|title|base|onabort|onactivate|onafterprint|onafterupdate|
            onbeforeactivate|onbeforecopy|onbeforecut|onbeforedeactivate|onbeforeeditfocus|onbeforepaste|onbeforeprint|
            onbeforeunload|onbeforeupdate|onblur|onbounce|oncellchange|onchange|onclick|oncontextmenu|oncontrolselect|
            oncopy|oncut|ondataavailable|ondatasetchanged|ondatasetcomplete|ondblclick|ondeactivate|ondrag|ondragend|
            ondragenter|ondragleave|ondragover|ondragstart|ondrop|onerror|onerrorupdate|onfilterchange|onfinish|onfocus|
            onfocusin|onfocusout|onhelp|onkeydown|onkeypress|onkeyup|onlayoutcomplete|onload|onlosecapture|onmousedown|
            onmouseenter|onmouseleave|onmousemove|onmouseout|onmouseover|onmouseup|onmousewheel|onmove|onmoveend|onmovestart|
            onpaste|onpropertychange|onreadystatechange|onreset|onresize|onresizeend|onresizestart|onrowenter|onrowexit|
            onrowsdelete|onrowsinserted|onscroll|onselect|onselectionchange|onselectstart|onstart|onstop|onsubmit|
            onunload(\s)+"""

    所有的攻击类型如下所示

    2.3数值统计

    在所采集海量日志文本中,包含了大量用户行为、交互IP、访问次数等信息,这些信息所表现出的统计特征可以明确地表达一个网络动作,而有些动作通过传统的规则匹配、黑白名单、策略控制等方式是很难发现的。比如在一段时间内访问目标网站的Agent连接数、不同域名下出现同一URL的次数、访问应答结果中非200的请求比例等,所有这些统计结果都表达了某种特定的网络行为,而这一行为如果符合网络攻击的行为,则通过数值统计的方法就能发现。比如下表中列举的常用的基于数值统计的方式发现潜在异常行为的一些统计方法。

    在实现中只进行了一定时间内某ip访问频率的计算

    2.4特征向量

    使用机器学习算法的前提是构造好的特征向量,日志的识别主要是针对日志记录中的request、referer和user-agent。request、referer都是URL路径,user-agent是浏览器名称,这三部分是用户可控且可能注入payload的地方。向量的构造方法主要参考用机器学习玩转恶意URL检测 和基于机器学习的web异常检测,训练集分为两个部分,一个是恶意的在URL请求,主要收集于github中知名的payload仓库,大约有30000条数据,其中包括SQL注入、Traversal(目录遍历)、XSS(跨站脚本攻击)、LFI(本地文件包含)、XML注入、SSI注入、XPATH注入、Webshell攻击。恶意请求部分样例如下:

    二是正常的URL请求,测试部分包括日志中的request、referer和user-agent,其中request和referer的正常样本基本一致,都是URL请求地址,user-agent虽然并不是URL但在受到攻击时仍和request、referer这两处相似,都是注入相关漏洞的payload,所以这三处在分类的可以使用相同模型。其中正常的URL取自国外的日志网站SecRepo的正常Web日志,正常请求部分样例如下:

    User-agent是指了各大浏览器厂商正常的名称,训练集中正常请求部分样例如下:

    将上述的训练集一分为二,90%作为训练集集,10%作为测试集并进行打标用于测试。在真正分类的时候,将所有的日志依据request、referer和user-agent这三个部分进行二分类。向量构造首先通过N-Gram将文本数据向量化,比如对于下面的例子:

    首先通过长度为N的滑动窗口将文本分割为N-Gram序列,例子中,N取2,窗口滑动步长为1,可以得到如下N-Gram序列:

    其中N的取值需要进行多次试验,不同的算法最佳值不同。然后声明一个长度为10000的特征向量,将这些序列映射到特征向量中,并使用TF-IDF生成特征向量的值。词频—逆文档频率(简称TF-IDF)是一种用来从文本文档(例如URL)中生成特征向量的简单方法。它为文档中的每个词计算两个统计值:一个是词频(TF),也就是每个词在文档中出现的频率,另一个是逆文档频率(IDF),用来衡量一个词在整个文档语料库中出现的(逆)频繁程度。这两个值的积,也就是TF×IDF,展示了一个词与特定文档的相关程度(比如这个词在某文档中很常见,但在整个语料库中却很少见)。

    def TFIDF(self,badData,goodData,distance,step):
        '''IT-IDF函数,根据不同的分词方法生成TF-IDF向量'''
        tf = self.tf
        badFeatures = badData.map(lambda line: tf.transform(split2(line,distance,step)))
        goodFeatures = goodData.map(lambda line: tf.transform(split2(line,distance,step)))
        badFeatures.cache()
        goodFeatures.cache()
        idf = IDF()
        idfModel = idf.fit(badFeatures)
        badVectors = idfModel.transform(badFeatures)
        idfModel = idf.fit(goodFeatures)
        goodVectors = idfModel.transform(goodFeatures)
        badExamples = badVectors.map(lambda features: LabeledPoint(1, features))
        goodExamples = goodVectors.map(lambda features: LabeledPoint(0, features))
        dataAll = badExamples.union(goodExamples)
        return dataAll

    一个TF-IDF向量如下所示:

    其中第一项0.0是向量的标签,表示这是一条恶意的请求,后面是各个分词序列在投影后的坐标及其TF×IDF值。

    2.5机器学习算法

    三种算法训练完毕后以后的检测只需从本地加载模型即可

    def train(self,sc):
        # #生成Logistic和SVMWithSGD算法数据
        # dataLogistic = self.TFIDF(bad,good,3,1)
        # #生成SVMWithSGD算法数据
        # dataSVMWithSGD = self.TFIDF(bad,good,3,1)
        # #生成NaiveBayes算法数据
        # dataNaiveBayes = self.TFIDF(bad,good,2,1)
        # 使用分类算法进行训练,iterations位迭代次数,step为迭代步长
        # modelLogistic = LogisticRegressionWithSGD.train(data=dataLogistic,iterations=10000,step=6) 
        # print "train success1"
        # modelLogistic.save(sc,"model/modelLogistic")
        # modelSVMWithSGD = SVMWithSGD.train(data=dataSVMWithSGD,iterations=10000,step=5) 
        # print "train success2"
        # modelSVMWithSGD.save(sc,"model/modelSVMWithSGD")
        # modelNaiveBayes = NaiveBayes.train(data=dataNaiveBayes,lambda_=0.1) 
        # print "train success3"
        # modelNaiveBayes.save(sc,"model/modelNaiveBayes")
        self.modelLogistic = LogisticRegressionModel.load(sc,"modelLogistic")
        self.modelSVMWithSGD = SVMModel.load(sc,"modelSVMWithSGD")
        self.modelNaiveBayes = NaiveBayesModel.load(sc,"modelNaiveBayes")
    
    def check_Line(self,line,algorithm):
        """元素检测"""
        tf = self.tf
        request_url = line
        check_Result = 0
        if "Logistic" in algorithm:
            check_Result += self.modelLogistic.predict(tf.transform(split2(request_url,3,1)))
        if "SVM" in algorithm:
            check_Result += self.modelSVMWithSGD.predict(tf.transform(split2(request_url,3,1)))
        if "NaiveBayes" in algorithm:
            check_Result += self.modelNaiveBayes.predict(tf.transform(split2(request_url,2,1)))
        print check_Result
        print "model check  :  "+str(check_Result)
        if check_Result>2:
            line.append([-1])
        else:
            line.append([])
        return line
    
    def check(self,test,sc,algorithm="Logistic,SVM,NaiveBayes"):
        """执行模型检测"""
        self.train(sc)
        check_Line = self.check_Line
        temp1 = test.map(lambda line: check_Line(line,algorithm))
        return temp1.collect()

    三、系统展示

    离线日志分析
    离线分析包括分析报表和日志管理两个子功能,用户需要在日志管理处上传日志才可通过分析报表查看分析结果(如果直接点击分析报表界面则默认显示最近一次的分析结果),日志在上传的过程中就会完成数据分析,分析结果会在分析报表界面显示并同时写入数据库。同理,用户也可以在日志管理处删除已上传的日志,但同时也会删除存在数据库中的分析结果。日志管理界面如图所示:

    点击每一条记录右侧的查看按钮,即可跳到相应的分析报表界面,分析报表界面包含5个部分,分别为基本信息、访问次数最高的前10个IP、访问次数最高的前10个URL、攻击次数统计、攻击源地图。具体如图所示:

    实时日志分析
    实时分析部分包含两个显示界面,一个是访问次数(蓝色)与攻击次数(黑色)的双曲线图表,表示当前时间访问的次数以及当中可能包含的攻击次数,两者同时显示,相互对比;另一个是百度地图实时地理位置的世界地图图表。显示界面如下:

    四、一些问题

    1、程序运行起来虽然看起来还可以,但是识别率其实比较一般,一是正则写的不够完善;二是机器学习误报有点高,如果把判别条件放太宽,会出现一些低级分类错误。
    2、算法中机器学习其实只是一个二分类,具体的攻击类别要靠正则识别,正则识别不出来而算法识别出来的则为未知攻击类型。
    3、这里的实时其实是伪实时。

    五、参考文献

    http://www.freebuf.com/articles/web/126543.html
    http://www.freebuf.com/articles/web/134334.html
    http://www.freebuf.com/sectool/126698.html
    http://blog.csdn.net/xnby/article/details/50782913

    展开全文

空空如也

空空如也

1 2 3 4 5
收藏数 89
精华内容 35
关键字:

关键技术和实践难点