车牌检测回归任务(三、目标检测模型评估)
2018-07-26 11:32
369 查看
目标检测模型评估的常用指标是召回率(Recall),精度(Precision),IoU(交并比),其实在Tensorflow中有对应的API(tf.metrics.Accuracy),但是本人为了更深入的理解这些概念,所以自写。
思路:将预测的四个坐标在单通道图像进行填充绘制,即目标区域为1,非目标区域为0,计算非0像素的个数就是目标区域的面积。当然也可以直接利用不规则四边形的面积来计算(博客:https://blog.csdn.net/attitude_yu/article/details/81204694)。真实与预测相交区域的面积也是通过最简单的计算像素的个数来获得。
[code]import numpy as np import cv2 Width = 64 Height = 64 def coord_convert_arr(coord): img = np.zeros((Height, Width)) fill_coord = np.array(coord, np.int32).reshape((4,2)) new_img = cv2.fillPoly(img, [fill_coord], 1) #2121 # 获得非0区域的像素个数 non_zero = cv2.countNonZero(new_img)+1 #print("non zero num:",non_zero) # 转化为单行数组 arr = new_img.reshape((1,Height*Width))[0] return arr, non_zero # 获得相交区域的像素个数 def inter_pixel_num(label_arr, pred_arr): count = 0 for idx in range(Width*Height): if label_arr[idx]==1 and pred_arr[idx]==1: count +=1 return count # 将归一化后的坐标调整为原图上的坐标 def adjust_coord(coord): for idx in range(8): if idx%2==0: coord[idx]=coord[idx]*Width else: coord[idx]=coord[idx]*Height return coord # 将调整后的坐标恢复为归一化的坐标 def recovery_coord(coord): for idx in range(8): if idx%2==0: coord[idx]=coord[idx]/Width else: coord[idx]=coord[idx]/Height return coord # 根据像素个数计算召回 精度 IoU def recall_precision_Iou(label, pred): # label_ = adjust_coord(label) # pred_ = adjust_coord(pred) label_ = label pred_ = pred label_arr, label_area = coord_convert_arr(label_) pred_arr, pred_area = coord_convert_arr(pred_) inter_area = inter_pixel_num(label_arr, pred_arr) #print("label_area:{} pred_area:{} inter_ area:{}".format(label_area, pred_area, inter_area)) recall = inter_area/float(label_area) precision = inter_area/float(pred_area) IoU= inter_area/float(label_area+pred_area-inter_area) return recall, precision, IoU
阅读更多
相关文章推荐
- 车牌检测回归任务(四、训练模型,测试模型)
- 目标检测模型中的性能评估——MAP(Mean Average Precision)
- 目标检测模型的性能评估--MAP(Mean Average Precision)
- 什么是MAP? 理解目标检测模型中的性能评估
- 《Spark机器学习》笔记——Spark回归模型(最小二乘回归、决策树回归,模型性能评估、目标变量变换、参数调优)
- 车牌检测回归任务(五、数据增强)
- 对codebook model模型运动目标检测的理解
- VOC2007检测任务的评估标准
- 针对机器学习初学者的MNIST实验——回归的实现、训练和模型评估
- 深度学习目标检测模型发展过程:R-CNN Fast R-CNN Faster R-CNN R-FCN
- 基于形变部件模型(Deformable Part Models)的目标检测
- 动动手,用TensorFlow API训练出自己的目标检测模型
- python回归模型的评估与交叉验证
- 深度学习目标检测模型全面综述:Faster R-CNN、R-FCN和SSD
- 逻辑回归模型的评估方法
- 目标检测之LatentSVM和可变形部件模型(Deformable Part Model,DPM)
- 大话目标检测经典模型(RCNN、Fast RCNN、Faster RCNN)
- Tensorflow训练自己的Object Detection模型并进行目标检测
- 使用判别训练的部件模型进行目标检测 Object Detection with Discriminatively Trained Part Based Models
- 运动目标检测 之 GMM背景模型算法