目标检测——目标检测概述

这篇具有很好参考价值的文章主要介绍了目标检测——目标检测概述。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目标检测

目标检测——目标检测概述,tensorflow和cv,目标检测,人工智能,计算机视觉
目标检测——目标检测概述,tensorflow和cv,目标检测,人工智能,计算机视觉

常用的开源数据集

PASCAL VOC数据集

目标检测——目标检测概述,tensorflow和cv,目标检测,人工智能,计算机视觉
下载地址
目标检测——目标检测概述,tensorflow和cv,目标检测,人工智能,计算机视觉
目标检测——目标检测概述,tensorflow和cv,目标检测,人工智能,计算机视觉
目标检测——目标检测概述,tensorflow和cv,目标检测,人工智能,计算机视觉

MS COCO数据集

目标检测——目标检测概述,tensorflow和cv,目标检测,人工智能,计算机视觉

常用的评价指标

IOU(交并比)

目标检测——目标检测概述,tensorflow和cv,目标检测,人工智能,计算机视觉
目标检测——目标检测概述,tensorflow和cv,目标检测,人工智能,计算机视觉

import numpy as np

def IOU(box1,box2,wh=False):
    #判断表示方式
    if wh==False:
        #极坐标表示
        xmin1,ymin1,xmax1,ymax1=box1
        xmin2,ymin2,xmax2,ymax2=box2
    else:
        #中心点坐标表示
        #第一框
        xmin1,ymin1=int(box1[0]-box1[2]/2.0),int(box1[1]-box1[3]/2.0)
        xmax1,ymax1=int(box1[0]+box1[2]/2.0),int(box1[1]+box1[3]/2.0)
        #第二框
        xmin2,ymin2=int(box2[0]-box2[2]/2.0),int(box2[1]-box2[3]/2.0)
        xmax2,ymax2=int(box2[0]+box2[2]/2.0),int(box2[1]+box2[3]/2.0)
    #获取交集的左上角和右下角坐标
    xx1=np.max(xmin1,xmin2)
    yy1=np.max(ymin1,ymin2)
    xx2=np.min(xmax2,xmax1)
    yy2=np.min(ymax1,ymax2)
    #计算交集面积
    inter_area=(np.max(0,xx2-xx1))*(np.max(0,yy2-yy1))
    #计算并的面积
    area1=(xmax1-xmin1)*(ymax1-ymin1)
    area2=(xmax2-xmin2)*(ymax2-ymin2)
    union_area=area1+area2-inter_area
    #IOU
    IOU=inter_area/(union_area+1e-6)
    return IOU
import matplotlib.pyplot as plt
import matplotlib.patches as patches #给图像打上矩形框

#真是框 预测框
true_box=[100,35,398,400]
pre_box=[40,150,355,398]
#将框绘制在图像上
img=plt.imread('dog.jpeg')
fig=plt.imshow(img)
#将真实框和预测框绘制在图像上
fig.axes.add_patch(plt.Rectangle((true_box[0],
                                  true_box[1],
                                  width=true_box[2]-true_box[1],
                                  height=true_box[3]-true_box[1],
                                  fill=False,
                                  edgcolor='blue',
                                  linewidth=2)))
fig.axes.add_patch(plt.Rectangle((pre_box[0],
                                  pre_box[1],
                                  width=pre_box[2]-pre_box[1],
                                  height=pre_box[3]-pre_box[1],
                                  fill=False,
                                  edgcolor='red',
                                  linewidth=2)))

目标检测——目标检测概述,tensorflow和cv,目标检测,人工智能,计算机视觉

IOU(ture_box,pre_box)

0.5114435907762924

mAP(Mean Average Precision)

目标检测——目标检测概述,tensorflow和cv,目标检测,人工智能,计算机视觉
目标检测——目标检测概述,tensorflow和cv,目标检测,人工智能,计算机视觉
目标检测——目标检测概述,tensorflow和cv,目标检测,人工智能,计算机视觉
目标检测——目标检测概述,tensorflow和cv,目标检测,人工智能,计算机视觉
voc2010前,求取Recall11个点对应的presion,求平均
voc2010后,使用分段函数的线下面积

NMS(非极大值抑制)

去除冗余检测框,保留最好的一个
目标检测——目标检测概述,tensorflow和cv,目标检测,人工智能,计算机视觉
目标检测——目标检测概述,tensorflow和cv,目标检测,人工智能,计算机视觉
目标检测——目标检测概述,tensorflow和cv,目标检测,人工智能,计算机视觉

def nms(boxes,score,thre):
    #容错处理
    if (len(boxes)==0):
        return [],[]
    #类型转换
    #box使用极坐标
    boxes=np.array(boxes)
    score=np.array(score)
    #获取左上角和右下角坐标
    x1=boxes[:,0]
    y1=boxes[:,1]
    x2=boxes[:,2]
    y2=boxes[:,3]
    #计算面积
    areas=(x2-x1)*(y2-y1)
    #NMS
    picked_boxes=[]
    picked_socre=[]
    #排序:小->大
    order=np.argsort(score)
    while order.size>0:
        #获取score最大的索引
        index=order[-1]
        #保留下来
        picked_boxes.append(boxes[index])
        picked_score.append(score[index])
        #计算IOU
        #交的面积
        x11=np.maximum(x1[index],x1[order[:-1]])
        y11=np.maximum(y1[index],y1[order[:-1]])
        x22=np.maximum(x2[index],x2[order[:-1]])
        y22=np.maximum(y2[index],y2[order[:-1]])
        w=np.maximum(0.0,x22-x11)
        h=np.maximum(0.0,y22-y11)
        inter_area=w*h
        #交并比
        iou=inter_area/(areas[index]+areas[order[:-1]]-inter_area)
        #删除冗余框
        keep_boxes=np.where(iou<thre)
        #更新order
        order=order[keep_boxes]
    return picked_boxes,picked_score
bounding=[(187,82,337,317),(150,67,305,282),(246,121,368,304)]
confidence_score=[0.9,0.65,0.8]
threshold=0.5

box,score=nms(bounding,confidence_score,threshold)

目标检测方法分类

目标检测——目标检测概述,tensorflow和cv,目标检测,人工智能,计算机视觉
目标检测——目标检测概述,tensorflow和cv,目标检测,人工智能,计算机视觉文章来源地址https://www.toymoban.com/news/detail-563828.html

到了这里,关于目标检测——目标检测概述的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 人工智能学习与实训笔记(三):神经网络之目标检测问题

    人工智能专栏文章汇总:人工智能学习专栏文章汇总-CSDN博客 目录 三、目标检测问题 3.1 目标检测基础概念 3.1.1 边界框(bounding box) 3.1.2 锚框(Anchor box) 3.1.3 交并比 3.2 单阶段目标检测模型YOLOv3 3.2.1 YOLOv3模型设计思想 3.2.2 YOLOv3模型训练过程 3.2.3 如何建立输出特征图与预

    2024年02月20日
    浏览(58)
  • 人工智能学习07--pytorch15(前接pytorch10)--目标检测:FPN结构详解

    backbone:骨干网络,例如cnn的一系列。(特征提取) (a)特征图像金字塔 检测不同尺寸目标。 首先将图片缩放到不同尺度,针对每个尺度图片都一次通过算法进行预测。 但是这样一来,生成多少个尺度就要预测多少次,训练效率很低。 (b)单一特征图 faster rcnn所采用的一种方式

    2023年04月12日
    浏览(66)
  • 基于人工智能与边缘计算Aidlux的鸟类检测驱赶系统(可修改为coco 80类目标检测)

    ●项目名称 基于人工智能与边缘计算Aidlux的鸟类检测驱赶系统(可修改为coco 80类目标检测) ●项目简介 本项目在Aidlux上部署鸟类检测驱赶系统,通过视觉技术检测到有鸟类时,会进行提示。并可在源码上修改coco 80类目标检测索引直接检测其他79类目标,可以直接修改、快速

    2024年02月12日
    浏览(54)
  • 人工智能学习07--pytorch20--目标检测:COCO数据集介绍+pycocotools简单使用

    如:天空 coco包含pascal voc 的所有类别,并且对每个类别的标注目标个数也比pascal voc的多。 一般使用coco数据集预训练好的权重来迁移学习。 如果仅仅针对目标检测object80类而言,有些图片并没有标注信息,或者有错误标注信息。所以在实际的训练过程中,需要对这些数据进行

    2024年02月12日
    浏览(61)
  • 毕业设计:基于机器学习的课堂学生表情识别系统 人工智能 python 目标检测

    目录 前言 项目背景 数据集 设计思路 更多帮助     📅大四是整个大学期间最忙碌的时光,一边要忙着备考或实习为毕业后面临的就业升学做准备,一边要为毕业设计耗费大量精力。近几年各个学校要求的毕设项目越来越难,有不少课题是研究生级别难度的,对本科同学来说是充

    2024年04月16日
    浏览(114)
  • 毕业设计选题- 基于深度学习的海洋生物目标检测系统 YOLO 人工智能

    目录 前言 课题背景和意义 实现技术思路 一、基于深度学习的海洋生物目标检测研究主题 二、水下图像处理算法的研究 2.1Retinex算法 2.2直方图均衡化算法 2.3暗通道去雾算法 三、基于深度学习的目标检测算法 海洋生物目标检测实现效果 最后        📅大四是整个大学期间最

    2024年02月01日
    浏览(140)
  • 人工智能学习07--pytorch21--目标检测:YOLO系列理论合集(YOLOv1~v3)

    如果直接看yolov3论文的话,会发现有好多知识点没见过,所以跟着视频从头学一下。 学习up主霹雳吧啦Wz大佬的学习方法: 想学某个网络的代码时: 到网上搜这个网络的讲解 → 对这个网络大概有了印象 → 读论文原文 ( 很多细节都要依照原论文来实现, 自己看原论文十分

    2024年02月10日
    浏览(68)
  • 人工智能学习07--pytorch23--目标检测:Deformable-DETR训练自己的数据集

    1、pytorch conda create -n deformable_detr python=3.9 pip 2、激活环境 conda activate deformable_detr 3、torch 4、其他的库 pip install -r requirements.txt 5、编译CUDA cd ./models/ops sh ./make.sh #unit test (should see all checking is True) python test.py (我没运行这一步) 主要是MultiScaleDeformableAttention包,如果中途换了

    2024年02月14日
    浏览(131)
  • 毕业设计:基于机器学习的草莓成熟度识别分类系统 人工智能 python 目标检测

    目录 前言 项目背景 数据集 设计思路 更多帮助     📅大四是整个大学期间最忙碌的时光,一边要忙着备考或实习为毕业后面临的就业升学做准备,一边要为毕业设计耗费大量精力。近几年各个学校要求的毕设项目越来越难,有不少课题是研究生级别难度的,对本科同学来说是充

    2024年04月27日
    浏览(81)
  • 人工智能详细笔记:计算机视觉、目标检测与R-CNN系列 YOLO系列模型

    计算机视觉概述 :计算机视觉是一种利用计算机算法和数学模型来模拟和自动化人类视觉的学科领域。 计算机视觉的地位 :计算机视觉(CV)与自然语言处理(NLP)、语音识别(SR)并列为机器学习方向的三大热点方向。 计算机视觉的常见任务 :下面将从粗粒度到细粒度介

    2024年02月08日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包