置信度

目标检测之IoU、precision、recall、AP、mAP详解

喜欢而已 提交于 2020-01-16 01:06:58
目录 1. 目标检测概述 2. IoU 3.precision(精度)和recall(召回率) 4. AP和mAP 5.实际计算方法 1. 目标检测概述 目标检测的任务是找出图像中所有感兴趣的目标(物体),确定它们的位置和大小,是计算机视觉领域的核心问题之一。以下图为例,图中需要识别3类物体:car(车)、bicycle(自行车)、dog(狗),通过特定的目标检测算法希望最终把每类物体检测出来,每类物体用一个矩形框框出来并且输出对应的类别。 因此,目标检测可以简单的理解为用个框把物体框出来并告诉我这个框里是什么。 在目标检测领域需要衡量每个检测算法的好坏,因此定义了很多指标,例如常见的IoU、precision、recall、AP、mAP等, 各个算法经过检测后得到每个物体的检测框和置信度,然后根据该值来计算上述指标值,从而方便大家一起来评估各个算法的优劣。 每个指标各不相同,下面详细阐述每个指标的概念和计算方法。 2. IoU IoU全程为Intersection Over Union ,意思是“并集里面的交集”。它的计算可以简单的用下图表示: 一个物体它会有一个真值框,英文称为ground truth,也就是我们实际为它标注的真实矩形框(一般情况下该矩形框是物体的最小外接矩形框,手工标注)。在评价一个算法的时候首先用该算法对图片进行检测,得到该物体的预测框

机器学习在高德用户反馈信息处理中的实践

早过忘川 提交于 2020-01-13 02:58:17
1.背景 作为国内领先的出行大数据公司,高德地图拥有众多的用户和合作厂商,这为高德带来了海量的出行数据,同时通过各个渠道,这些用户也在主动地为我们提供大量的反馈信息,这些信息是需要我们深入挖掘并作用于产品的,是高德地图不断进步和持续提升服务质量的重要手段。 本文将主要介绍针对用户反馈的文本情报,如何利用机器学习的方法来提高大量用户数据的处理效率、尽可能实现自动化的解题思路。 先来解释一下重点名词。 情报:是一种文本、图片或视频等信息,用来解决高德地图生产或者导航中的具体问题,本质上是指与道路或交通相关的知识或事实,通过一定空间和时间通知给特定用户。 用户反馈:是指用户借助一定的媒介,对所使用的软件等提供一些反馈信息,包括情报、建议和投诉等。 典型的用户反馈类型和选项如下图所示: 2.问题及解法 用户反馈的方式可以通过手机的Amap端、PC端等进行上报,上报时选择一些选择项以及文本描述来报告问题,以下是一个用户反馈的示例,其中问题来源、大类型、子类型和道路名称是选择项,用户描述是填写项,一般为比较短的文本。这些也是我们可以使用的主要特征。 每个用户在上报了问题之后,均希望在第一时间内问题能够得到解决并及时收到反馈。但是高德每天的用户反馈量级在几十万,要想达到及时反馈这个目标非常的不容易。 针对这些用户反馈信息,当前的整体流程是先采用规则进行分类

文献翻译——基于关联规则挖掘识别的鸡源大肠杆菌共有多重耐药模式(下)

荒凉一梦 提交于 2020-01-10 05:55:07
原文来源 https://www.frontiersin.org/articles/10.3389/fmicb.2019.00687/full 引言 尽管细菌具有抗生素耐药性基因比1940年发现和临床使用抗生素还要早,抗生素使用为致病的和非致病的细菌选择了抗生素耐药性。通过在食物生产动物中使用抗生素,会使增加的AMR出现和存留在食物源病原菌中。据推断,由于不断增加的肉产品需求和人口增长,从2010到2013年,食物产出动物的AMU提高了67%。通过选择受治疗个体中的表型耐药细菌的生长和存留,每一种AMU实例直接地造成了AMR。AMU还通过增加某个群体的耐药表型间接地造成了AMR,并增加了未来耐药感染的风险。 通过直接接触,耐药病原菌可以从移植的食物产出动物传播到一小部分人类,如果肉类在屠宰环节被病原菌感染,则还会通过食物链传播到更广大的人类群体。 相比对一种或一类药品耐药的病原菌,具有多重耐药性的病原菌是一个更大的公共健康威胁,因为要找到一种能够有效抵抗MDR感染的抗生素会非常困难或者不可能。MDR不是随机共同出现的个体药品耐药的简单结果。Chang等人发现MDR发生的概率往往比偶然预期更高,并描述了造成MDR出现的一些机制。一些生物学机制或变更(流出泵)抵抗几种抗生素药品或种类,创造了交叉耐药。此外,耐药性基因会被基因性链接,通过发生在共同迁移因子或者染色体区域上

机器学习在高德用户反馈信息处理中的实践

社会主义新天地 提交于 2020-01-07 15:54:47
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 1.背景 作为国内领先的出行大数据公司,高德地图拥有众多的用户和合作厂商,这为高德带来了海量的出行数据,同时通过各个渠道,这些用户也在主动地为我们提供大量的反馈信息,这些信息是需要我们深入挖掘并作用于产品的,是高德地图不断进步和持续提升服务质量的重要手段。 本文将主要介绍针对用户反馈的文本情报,如何利用机器学习的方法来提高大量用户数据的处理效率、尽可能实现自动化的解题思路。 先来解释一下重点名词。 情报:是一种文本、图片或视频等信息,用来解决高德地图生产或者导航中的具体问题,本质上是指与道路或交通相关的知识或事实,通过一定空间和时间通知给特定用户。 用户反馈:是指用户借助一定的媒介,对所使用的软件等提供一些反馈信息,包括情报、建议和投诉等。 典型的用户反馈类型和选项如下图所示: 2.问题及解法 用户反馈的方式可以通过手机的Amap端、PC端等进行上报,上报时选择一些选择项以及文本描述来报告问题,以下是一个用户反馈的示例,其中问题来源、大类型、子类型和道路名称是选择项,用户描述是填写项,一般为比较短的文本。这些也是我们可以使用的主要特征。 每个用户在上报了问题之后,均希望在第一时间内问题能够得到解决并及时收到反馈。但是高德每天的用户反馈量级在几十万,要想达到及时反馈这个目标非常的不容易。 针对这些用户反馈信息

Self-training with Noisy Student improves ImageNet classification阅读笔记

主宰稳场 提交于 2019-12-11 07:08:15
论文地址: https://arxiv.org/pdf/1911.04252v1.pdf 这篇文章实现了自训练方法,使用部分带标签数据进行训练,在ImageNet上top-1为87.4%。 方法 : 1. 为有标签和无标签的图片。 2. 使用有标签的数据、标准交叉熵损失训练了一个EfficientNet作为教师网络。 3. 用这个教师网络,在无标签数据上生成伪标签,伪标签可以是soft label(持续分布),或者hard label(one-hot分布)。文章说软标签效果更好。 4. 在有标签和无标签数据下,使用交叉熵训练一个学生网络。 5. 通过把学生网络视为教师网络,迭代以上步骤,生成新的伪标签,并训练学生网络。 软标签和硬标签,举个例子,比如图片A,输入一个分5类的网络。软标签[0.7, 0.3, 0, 0, 0],硬标签[1, 0, 0, 0, 0]。 算法如下: 算法基于半监督学习,主要的困难在于:训练学生网络的时候添加更多的噪声,在教师网络生成标签时把这些噪声移除。使用的噪声有:dropout,随机深度,数据增广。如果使用数据增广,学生必须保证被转换的图片和未转换的图片有相同的标签。如果使用dropout,教师表现更像模型集成(生成伪标签时不使用dropout),学生表现更像单一模型。 对于Noisy Student,为了更好的效果,学生模型必须足够大以适应更多的数据

【YOLO-V1】You Only Look Once: Unified, Real-Time Object Detection

天涯浪子 提交于 2019-12-10 09:34:38
You Only Look Once: Unified, Real-Time Object Detection 您只看一次:统一的实时对象检测 前言 近几年来,目标检测算法取得了很大的突破。比较流行的算法可以分为两类,一类是基于Region Proposal的R-CNN系算法(R-CNN,Fast R-CNN, Faster R-CNN),他们是two-stage的,需要先使用启发式方法(selective search)或者CNN网络(RPN)产生Region Proposal,然后再在Region proposal上做分类与回归。而另一类是Yolo,SSD这类one-stage算法,其仅仅使用一个CNN网络直接预测不同目标的类别与位置。第一类方法是准确率高一些,但是速度慢,但是第二类算法是速度快,但是准确率要低一些。这里我们谈的是Yolo-v1版本算法,其性能是差于后来的SSD算法的,但是Yolo后来也继续进行改进,产生了Yolo9000算法。本文主要讲述Yolo-v1算法的原理,特别是算法的训练与预测中详细细节,最后将给出如何使用TensorFlow实现Yolo算法。 滑动窗口与CNN 在介绍Yolo算法之前,首先先介绍一下滑动窗口技术,这对我们理解Yolo算法是有帮助的。采用滑动窗口的目标检测算法思路非常简单,它将检测问题转化为了图像分类问题

python数据挖掘(5.Apriori算法)

六眼飞鱼酱① 提交于 2019-12-10 04:22:23
第一章我们介绍了最基础的亲和性分析,尝试了所有的规则计算了所有的置信度和支持度,但是这个方法效率不高而且我们使用的数据集只有5种商品,但是实际生活中即使是小商店的商品也会超过百种,而网店商品的种类则可能更多,依旧使用第一章的亲和性分析,那么随着商品数量的增加,计算量和计算的时间也会急剧增加,所以需要一个聪明的算法来解决这个问题 Apriori算法 Apriori 算法诗一个景点的亲和性分析算法,他只从数据集中频繁出现的商品中选取共同出现的商品组成 频繁项集 ,避免上述复杂度呈指数级增长的问题,一旦找到了 频繁项集 ,生成关联规则就很容易了。 Apriori算法首先保证规则在数据集中有足够的支持度,最重要的一个参数就是 最小支持度 比如要生成商品A B的频繁项集(A,B)要求支持度至少为30,那么A,B都必须至少在数据集中出现30次,更大的频繁项集也要最受这个约定。 这一章我们通过电影推荐的问题来举例。 数据集地址在文章开头 In [1]: import numpy as np In [2]: import pandas as pd In [3]: all_ratings = pd.read_csv('/Users/gn/scikit--learn/ml-100k/u.data',delim ...: iter="\t", header=None, names = ["UserID"

论文笔记:SSD:Single Shot MultiBox Detector

吃可爱长大的小学妹 提交于 2019-12-06 21:32:55
版权声明:本文为博主原创文章,未经博主允许不得转载。 论文原文: SSD title:《SSD: Single Shot MultiBox Detector》 author:Wei Liu1, Dragomir Anguelov2, Dumitru Erhan3, Christian Szegedy3Scott Reed4, Cheng-Yang Fu1, Alexander C. Abstract. 我们提出了一个用于图片中检测目标的新方法,这个方法只需要 a single deep neural network.方法取名为SSD,SSD在每一个feature map的位置上将输出空间的bounding box 离散化成一系列默认的不同横纵比和尺度的boxs。在预测的时候,网络在默认box中生成每一个object类别的分数,调节box使其更好的匹配object的形状。而且为了处理各种大小的object,网络结合了不同分辨率的各特征图。SSD相对于需要目标区域的方法来说更为简单,因为它完全消除了区域生成和随后像素或特征的重采样步骤并且将所有的计算压缩到单个网络中。这使得SSD更容易训练,并且能直接集成到需要检测成分的系统中。PASCAL VOC, COCO, 和ILSVRC数据集上的实验结果证实当提供一个统一的用于训练和推理的框架时

SSD源码解读——损失函数的构建

ぐ巨炮叔叔 提交于 2019-12-06 07:07:58
之前,对SSD的论文进行了解读,可以回顾之前的博客: https://www.cnblogs.com/dengshunge/p/11665929.html 。 为了加深对SSD的理解,因此对SSD的源码进行了复现,主要参考的github项目是 ssd.pytorch 。 搭建SSD的项目,可以分成以下三个部分: 数据读取 ; 网络搭建 ; 损失函数的构建。 接下来,本篇博客重点分析 损失函数的构建 。 检测任务的损失函数,与分类任务的损失函数具有很大不同。在检测的损失函数中,不仅需要计类别置信度的差异,坐标的差异,还需要使用到各种tricks,例如hard negative mining等。 在train.py中,首先需要对损失函数MultiBoxLoss()进行初始化,需要传入的参数为num_classes类别数,正例的IOU阈值和hard negative mining的正负样本比例。在论文中,VOC的类别总数是21(20个类别加上1个背景);当预测框与GT框的IOU大于0.5时,认为该预测框是正例;hard negative mining的正样本和负样本的比例是1:3。 # 损失函数 criterion = MultiBoxLoss(num_classes=voc['num_classes'], overlap_thresh=0.5, neg_pos=3) 在models

SSD源码解读——网络搭建

爷,独闯天下 提交于 2019-12-06 06:28:10
之前,对SSD的论文进行了解读,可以回顾之前的博客: https://www.cnblogs.com/dengshunge/p/11665929.html 。 为了加深对SSD的理解,因此对SSD的源码进行了复现,主要参考的github项目是 ssd.pytorch 。 搭建SSD的项目,可以分成以下三个部分: 数据读取 ; 网络搭建; 损失函数的构建。 接下来,本篇博客重点分析 网络搭建 。 该部分整体比较简单,思路也很清晰。 首先,在train.py中,网络搭建的函数入口是函数build_ssd(),该函数需要传入以下几个参数:"train"或者"test"字符串、图片尺寸、类别数。其中,"train"或者"test"字符串用于区分该网络是用于训练还是测试,这两个阶段的网络有些许不同,本文主要将训练阶段的网络;而类别数需要加上背景,对于VOC而言,有20个类别,加上1个背景,即类别数是21。 ssd_net = build_ssd('train', voc['min_dim'], voc['num_classes']) 这里,先放一张SSD的网络结构图,可以看出,SSD网络是有3部分组成的,vgg主干网络,新增网络(Conv6之后的层)和用于检测的头部网络(Extra Feature Layers)。 接着,在ssd.py中,首先定了一个参数,如下所示