cnn iou_roi_roc_auc
做机器学习,再别把IoU,ROI 和 ROC,AUC 搞混了 !聊聊目标检测,医疗领域的那些评价函数
涉及领域不多的机器学习爱好者经常会把IoU,ROI 和 ROC,AUC 这样的评价函数(Metric functions)搞混。其实记住它们也没那么难,David 9今天就来帮大家理一理:
IoU (Intersection over Union),交集并集比
ROI (region of interest) , 感兴趣区域,就是人工labelImg标注的绿色框,就是真实感兴趣区域
ROC (Receiver Operating Characteristic curve) 受试者工作特征曲线
AUC (Area Under the Curve) , 曲线下区域
首先要区分,前两个 是目标检测领域的术语;
后两个是从医疗领域引进的,但是所有机器学习准确率都可能用到该指标。
最容易理解的是第2个ROI,我们做任何目标检测在准备数据集时都要选择感兴趣区域, 我们之前的文章也提到过:
labelImg 就是一个不错的标注工具。帮助你选择目标检测的感兴趣框。是的这不是一个评价函数,是一个概念而已。
目标检测的训练集图片准备完成后,真正的评价函数是IoU(Intersection over Union)。为什么要用交集与并集的比值呢?
让我们看看一味地追求交集最大会发生什么:
上图绿色框是真实感兴趣区域,红色框是预测区域,这种情况下交集确实是最大的,但是红色框并不能准确预测物体位置。因为预测区域总是试图覆盖目标物体而不是正好预测物体位置。这时如果我们能除以一个并集的大小,就可以规避这种问题:
这样,如果我们控制并集不要让并集太大,对准确预测是有益的。具体IoU的计算大家可以参考文章:https://www.pyimagesearch.com/2016/11/07/intersection-over-union-iou-for-object-detection/
接下来,是两个分类准确率的指标:ROC和AUC。
首先ROC受试者工作特征曲线,听名字就是从医疗领域引入的。理解之前我们先要回顾一下真阳率(TP),假阳率(FP),假阴率(FN),真阴率(TN)的概念:
很熟悉吧?真阳率(TP)就是预测类别1而事实上是类别1, 假阳率(FP)就是预测类别1但是事实上部署类别1.
把TP作为纵坐标,FP作为横坐标,就是一个类别的ROC曲线了 :
曲线下的蓝色区域就是曲线下区域AUC (Area Under the Curve)了 如果AUC的面积为1,恭喜你,在这个类别上你的准确率是最高的。AUC一般越大越好,说明某个类别的分类准确度越高。
参考文献:
- https://www.pyimagesearch.com/2016/11/07/intersection-over-union-iou-for-object-detection/
- https://www.learnopencv.com/how-to-select-a-bounding-box-roi-in-opencv-cpp-python/
- https://stats.stackexchange.com/questions/132777/what-does-auc-stand-for-and-what-is-it
- https://github.com/tzutalin/labelImg
- https://en.wikipedia.org/wiki/Region_of_interest