1_目标检测基本知识
文章目录一.目标检测的基本概念1.传统目标检测2.用深度学习进行目标检测3.物体检测的精度评估(1)IOU(2)mAP(3)ROI二.R-CNN一.目标检测的基本概念目标检测就是将目标从图像中提取出来,其不仅要识别出目标的类别,还要判断出目标在图像中的位置。1.传统目标检测传统目标检测一般使用滑动窗口框架,主要为以下三个步骤:(1)利用不同尺寸的滑动窗口框住图像中的某一部分作为候选区。(区域选择)
·
一.目标检测的基本概念
目标检测就是将目标从图像中提取出来,其不仅要识别出目标的类别,还要判断出目标在图像中的位置。
1.传统目标检测
传统目标检测一般使用滑动窗口框架,主要为以下三个步骤:
(1)利用不同尺寸的滑动窗口框住图像中的某一部分作为候选区。(区域选择)
(2)提取候选区相关的视觉特征,例如人脸检测常用的Harr特征;行人检测和普通目标检测常用的HOG特征。(特征提取)
(3)利用分类器进行识别。(分类器分类)
2.用深度学习进行目标检测
比较常用的有R-CNN,Fast R-CNN,Yolo系列算法。
3.物体检测的精度评估
(1)IOU
物体检测是通过IOU(交集并集比)来进行精度评价。IOU的值越大,评估越准确。
IOU的Python代码实现:
"""计算IOU
BOX参数:(x1,y1,x2,y2)
左上角右下角点坐标"""
import numpy as np
import cv2
def CountIOU(predict_box,ground_Truth):
left_x=max(predict_box[0],ground_Truth[0])
left_y=max(predict_box[1],ground_Truth[1])
right_x=min(predict_box[2],ground_Truth[2])
right_y=min(predict_box[3],ground_Truth[3])
intersection=max(0,right_x-left_x)*max(0,right_y-left_y)
predict_box_area=(predict_box[2]-predict_box[0])*(predict_box[3]-predict_box[1])
ground_Truth_area=(ground_Truth[2]-ground_Truth[1])*(ground_Truth[3]-ground_Truth[1])
union=predict_box_area+ground_Truth_area-intersection
IOU=float(intersection)/union
img=np.ones((600,600,3),dtype=np.uint8)*255
"""绘制图形"""
cv2.rectangle(img,(ground_Truth[0],ground_Truth[1]),(ground_Truth[2],ground_Truth[3]),color=(0,0,255),thickness=3)
cv2.rectangle(img,(predict_box[0],predict_box[1]),(predict_box[2],predict_box[3]),color=(0,255,0),thickness=3)
cv2.putText(img,"IOU:{}".format(IOU),(ground_Truth[0],ground_Truth[1]),fontFace=cv2.FONT_HERSHEY_COMPLEX,fontScale=1,color=(255,0,0))
cv2.imshow("img",img)
cv2.waitKey(0)
cv2.destroyAllWindows()
predict=np.array([200,200,400,400])
label=np.array([250,250,500,500])
CountIOU(predict,label)
运行结果:
(2)mAP
mAP是目标检测中识别精度的指标
(3)ROI
ROI(感兴趣区域)是目标检测的一个概念,表示系统感兴趣的区域。ROI区域的提取能够在消除一些噪声的同时减少后续图像处理的数据量。
更多推荐
所有评论(0)