本文总结红外弱小目标检测领域论文中经常出现的算法评价指标,并对部分评价指标用MATLAB实现。

目前总结的评价指标最为常见,像检测率、ROC曲线这些都要基于大量的实验才能得到数据,进而绘制表格或曲线对算法进行客观评价。(所以,有好的idea,一定要尽快做实验呀!)

本文代码全部原创,若有不足之处,欢迎指正。


常见的评价指标(evaluation metrics)

一、检测率与虚警率

检测率与虚警率的定义如图1.

图1 检测率与虚警率,摘自[1]

关于检测率的理解:

  1. 单帧图像中,拍摄到M个目标,正确检测出N个目标,则;
  2. 图像序列中,拍摄到多个目标或目标出现多次,假设目标共出现M次,目标被正确检测出N次,则

关于虚警率的理解:

  1. 单帧图像中,若所有目标被正确检出,则虚警率为0;
  2. 图像序列中,图像共N帧,检测出的误检的数量为F,则

怎样的检测结果才可以被看作是“true detection“?

必须同时满足两个条件:

  1. 检测结果与图像中的真实目标有重叠(have overlap pixels);
  2. 检测结果的中心像素位置与真实目标的中心像素位置相差不超过一定的范围,文献[1]中阈值为4 pixels。

二、信噪比(Signal-to-Clutter Ratio,  SCR)

2.1 SCR定义

  ……………… 公式(1)

式中,表示目标的像素平均值,分别表示目标周围背景的像素平均值和像素标准差。

图2 目标及其邻域示意图,摘自[1],其中d的大小不超过20个像素

2.2 MATLAB 计算SCR

2.2.1 绘制弱小目标的三维灰度图

在阅读文献时,经常可以看到目标的三维灰度图,作者通过展示目标增强前与增强后,或背景抑制前和抑制后的三维灰度图来直观地向读者呈现其算法的效果。

此外绘制目标的三维灰度图也可以直观的感受目标的SCR。所以,我们先来学习如何绘制目标的三维灰度图。

补充说明,绘制目标的三维灰度图有两种选择:

(1)有些文章会选择绘制整张图的三维灰度图,然后用箭头—>标示出目标的“峰值”;

(2)也可以选择绘制目标的局部区域,观察目标的局部对比度是否得到了增强。

这里给出分别给出两种方式的MATLAB代码与图例。

%% 绘制图像的三维灰度图
img1 = imread('images/1.jpg');
if (size(img1,3) > 1)img1 = rgb2gray(img1);
end
subplot(221)
imshow(img1);title('原图');
sub_img1 = img1(68:88,99:119);   % 这里需要人工选择目标区域位置及大小
subplot(222)
imshow(sub_img1);title('目标局部图像 20*20');subplot(223)
[y,x] = size(img1);
[X,Y] = meshgrid(1:x, 1:y);
surf(X, Y, img1);title('全局三维灰度图');
shading interp;subplot(224)
[sub_y, sub_x] = size(sub_img1);
[sub_X, sub_Y] = meshgrid(1:sub_x, 1:sub_y);
surf(sub_X, sub_Y, sub_img1);title('局部三维灰度图');
shading interp;

图3 含弱小目标的红外图像的全局三维灰度图与局部三维灰度图

2.2.2 求目标的SCR

  1. 本文给出的代码只适用于灰度图;
  2. 参考计算模型如图2.
function scr = CalculateSCR(img, pos, t_size, d)
%% 功能说明:计算弱小目标的SCR
%% 参数说明: img -- 原图像
%            pos -- 目标在原图像中的位置
%            t_size = [a,b]-- 目标尺寸
%            d -- 目标邻域半径,最终计算的目标及其局部区域的大小为(2d+a)*(2d+b)% 1. 转灰度图if(size(img,3)>1)img = rgb2gray(img);end% 2. 目标大小为a*ba = t_size(1);b = t_size(2);T = img(ceil(pos(1)-b/2):ceil(pos(1)+b/2), ceil(pos(2)-a/2):ceil(pos(2)+a/2));% 3. 目标与其周围邻域,大小为(a+2d)*(b+2d) B = img(ceil(pos(1)-b/2-d):ceil(pos(1)+b/2+d), ceil(pos(2)-a/2-d):ceil(pos(2)+a/2+d));B(d:d+b,d:d+a) = 0;% 4. 分别显示目标图与背景图figureimshow(T);title('Target');figureimshow(B);title('Background');% 5. 分别计算目标的灰度均值、背景的灰度均值与标准差T_avg = mean(T(:));B_avg = sum(B(:)) / ((a+2*d)*(b+2*d) - a*b);size(B)B_1 = B(1:d,:);B_2 = B(a+d+1:a+2*d,:);B_3 = B(d+1:d+a, 1:d);B_4 = B(d+1:d+a, d+b+1: 2*d+b);B_final = [B_1(:)',B_2(:)',B_3(:)',B_4(:)'];size(B_final);B_std = std(double(B_final));% 6. 计算SCRscr = abs(T_avg - B_avg)/B_std;
end

图4 原图、目标图与局部背景图,

这里原图大小为(150,200),手动选择的目标位置为pos=(80,108),目标尺寸为t_size=(4,4),d = 10.

三、平均信噪比(Average SCR, )

当(1)一张图中含有多个目标;(2)图像序列中含有多个目标时,目标的平均信杂比来评估多目标检测的难度与算法的性能。

平均信杂比的定义为:         ……………………公式(2)

式中,N表示目标的数量;表示第i个目标的信杂比。

文献[1]中,还使用 分别表示被检测的真实目标与未被检测出的真实目标的平均信杂比。通常,在检测虚警率确定的情况下,越小,算法的检测性能越好。

四、ROC曲线

弱小目标检测中的ROC曲线与机器学习中的ROC曲线定义略微不同。

弱小目标检测中的ROC曲线,以虚警率(false-rate, FA)为横轴,以检测率(Probability of detection, PD)为纵轴(FA,PD的定义见第一部分)。

通常,虚警率相同的情况下,检测率越高,则算法的性能越好。

图5 不同算法的ROC曲线对比,摘自[1]

绘制ROC曲线并不难,难点在于需要通过实验获取数据——不同算法的在相同虚警率下的检测率。

这里给出MATLAB绘制折线图的简单示例,包含一些小技巧:设置x, y轴的间隔;设置线宽与线的样式;设置x, y坐标轴描述

x = 0:0.5:15;%% 这里需要替换为实验结果
Pd_1 = 1 - exp(-x) ;
Pd_2 = 1 - exp(-1/2*x);% 设置显示样式与线宽LineWidth
plot(x, Pd_1, '-ob', 'LineWidth', 2);
hold on
plot(x, Pd_2, '-*r', 'LineWidth', 1);% 设置坐标轴范围
axis([0,15,0,1]);
% 设置坐标轴范围及间隔
set(gca, 'XTick', [0:5:15]);
set(gca, 'YTick', [0:0.1:1]);% 显示图例
legend('method_1', 'method_2');% 显示坐标轴描述与标题
xlabel('False-rate, F_a');
ylabel('Probability of detection, P_d');
title('不同算法的ROC曲线');

图6 ROC示例图

参考文献

[1]   C. Gao et al., “Infrared Patch-Image Model for Small Target Detection in a Single Image,” vol. 22, no. 12, pp. 4996–5009, 2013.

红外弱小目标检测:常见的评价指标相关推荐

  1. 红外弱小目标检测算法综述

    红外弱小目标检测算法综述 ------ 参考文献: 李俊宏,张萍,王晓玮,黄世泽.红外弱小目标检测算法综述[J].中国图象图形学报,2020,25(09):1739-1753. ------ 依据是否 ...

  2. 红外弱小目标检测之TBC-Net

    总结我的一些理解和看法:19年提出的TBC-Net算法将深度学习应用到了红外弱小目标检测领域,网络轻量级,并能在NVIDIA Jetson AGX Xavier嵌入式开发板上实现实时性. TBC包含T ...

  3. 2021-03-22 基于视觉显著性的红外弱小目标检测-王警予 |笔记

    基于视觉显著性的红外弱小目标检测-王警予 | 阅读笔记 第四章 基于稀疏低秩分解的红外弱小目标检测 key 视觉注意力机制 稀疏低秩分解 针对人类视觉显著性是基于人类视觉注意的特点,将红外图像中显著性 ...

  4. 弱小目标检测跟踪算法研究(5) 基于顶帽变换(Top_hat)算法的红外弱小目标检测之背景抑制

    基于顶帽变换(Top_hat)算法的红外弱小目标检测之背景抑制 1. 前言 2. 顶帽变换(Top_hat)算法 3. Matlab仿真 4. 小结 1. 前言 红外图像中的弱小目标,目标属性包涵&q ...

  5. 弱小目标检测跟踪算法研究(7) 基于简单平滑滤波算法的红外弱小目标检测之背景抑制

    基于简单平滑滤波算法的红外弱小目标检测之背景抑制 1. 前言 2. 平滑滤波算法 3. Matlab仿真 4. 小结 1. 前言 红外图像中的弱小目标,目标属性包涵"弱"和&quo ...

  6. 《融合视觉显著性和局部熵的红外弱小目标检测》论文复现

    1.复现论文概要 复现的论文为<融合视觉显著性和局部熵的红外弱小目标检测>(赵鹏鹏,李庶中等,中国光学2022,http://www.chineseoptics.net.cn/cn/art ...

  7. 弱小目标检测跟踪算法研究(4) 基于双边滤波(BF)的红外弱小目标检测之背景抑制Opencv

    基于双边滤波(BF)的红外弱小目标检测之背景抑制Opencv 1. 前言 2. 双边滤波算法 3. Opencv实例 4. 小结 1. 前言 红外图像中的弱小目标,目标属性包涵"弱" ...

  8. 弱小目标检测跟踪算法研究(4) 基于双边滤波(BF)的红外弱小目标检测之背景抑制

    基于双边滤波(BF)的红外弱小目标检测之背景抑制 1. 前言 2. 双边滤波算法 3. Matlab仿真 4. 小结 1. 前言 红外图像中的弱小目标,目标属性包涵"弱"和&quo ...

  9. 红外弱小目标检测:LoG尺度空间

    一.目的 界定红外小目标的尺寸,拒绝多尺度重复计算,算法加速. 利用 LoG尺度空间进行红外弱小目标检测的基本思想如下: 1)当 LoG算子的中心坐标和目标中心坐标重合时,红外弱小目标在 LoG尺度空 ...

最新文章

  1. char s []和char * s有什么区别?
  2. redis源码之sds
  3. QT关于资源文件的添加使用
  4. 实践SQLServer Tuning
  5. MD5算法原理与常用实现
  6. 联想小新/YOGA新品发布会官宣:定档10月20日
  7. “宇宙最强”GPU —— NVIDIA Tesla V100 面向开发者开放试用!
  8. 如何系统的自学python-自学Python应该如何正确系统学习,避免少走弯路
  9. 在春天,我用秋来诱惑你
  10. 超好用的 PC 端长截图工具
  11. 元宇宙不是 PPT:已经发展到这个地步了
  12. 未来发展人工智能的意义是什么?
  13. 浅谈一下Program Files和Program Files(x86)
  14. 基于msm8916移植lcd流程
  15. 企业如何做好员工关怀,减少人才流失
  16. 如何解决IE浏览器阻止下载文件
  17. Chrome安装插件Save All Resources
  18. 二.java-jak和jre安装与配置
  19. js的引入方式(四种)
  20. java 集合数据类型_Java基础知识(数据类型和集合)

热门文章

  1. 联通招聘计算机基础考什么,联通集团笔试经验
  2. 渣硕2020暑期实习面经
  3. 裸辞也要跳槽,失业的第30天我就后悔了!
  4. Error: couldn‘t connect to server 192.168.61.12:27017, connection attempt failed: SocketException: E
  5. 开机脚本之——老板键
  6. 什么是USB Server?工作原理是什么?
  7. basicdbobject java_java mongol数据库怎么连接
  8. 3n 1数链问题设计程序c语言,C语言程序设计刚架程序流程.ppt
  9. 京东智联云张晓东cdn_京东智联云 云智联世界
  10. java基于微信小程序的社区心理健康咨询辅导服务系统 uniapp 小程序