ECO跑UAV数据集填坑

 

首先有读懂以下解决方案的基础:

https://blog.csdn.net/qq_33970986/article/details/105496382

按照这种方式修改之后,仍然出现error

遇到这种情况,主要是因为tracker中最后一行[seq, results] = get_sequence_results(seq)的问题,打开这个函数,

function [seq, results] = get_sequence_results(seq)
% »ñÈ¡ÐòÁнá¹û
if strcmpi(seq.format, 'otb')%otbÊý¾Ý¼¯
    results.type = 'rect';
    results.res = seq.rect_position;
elseif strcmpi(seq.format, 'vot')%votÊý¾Ý¼¯
    seq.handle.quit(seq.handle);
else
    error('Uknown sequence format');%δ֪Êý¾Ý¼¯
end
 
if isfield(seq, 'time') %È·¶¨ÊäÈëÊÇ·ñΪ½á¹¹Êý×é×ֶΣ¬Êä³öÂß¼­0-1
    results.fps = seq.num_frames / seq.time;%ÇóÖ¡ÂÊ
else
    results.fps = NaN;
end
 
%AUC results
pd_boxes = results.res;
thresholdSetOverlap = 0: 0.05 : 1;
success_num_overlap = zeros(1, numel(thresholdSetOverlap));
res = calcRectInt(seq.gt_box, pd_boxes);
for t = 1: length(thresholdSetOverlap)
    success_num_overlap(1, t) = sum(res > thresholdSetOverlap(t));
end
results.cur_AUC = mean(success_num_overlap) / size(seq.gt_box, 1);



 

会发现它没有对UAV数据及进行定义,并且提前计算了AUC,

通过main_unning的错误报告问题可知seq.gt_box未定义:

对照错误信息与BACF的运行代码进行修补,

在BACF中,最后的结果是以这种形式体现的:

因此,需要将ECO中的[seq, results] = get_sequence_results(seq)

修改一下:

1,加入uav选项,其实跟otb一样都是rect

2,定义好结果,不需要函数内自行比对AUC,删除这一块

3fps计算方式无误,不需要修改

function [seq, results] = get_sequence_results(seq)
% »ñÈ¡ÐòÁнá¹û
if strcmpi(seq.format, 'otb')%otbÊý¾Ý¼¯
    results.type = 'rect';
    results.res = seq.rect_position;
elseif strcmpi(seq.format, 'vot')%votÊý¾Ý¼¯
    seq.handle.quit(seq.handle);
elseif strcmpi(seq.format, 'uav')%uavÊý¾Ý¼¯
    results.type = 'rect';
    results.res = seq.rect_position;
else
    error('Uknown sequence format');%δ֪Êý¾Ý¼¯
end
 
if isfield(seq, 'time') %È·¶¨ÊäÈëÊÇ·ñΪ½á¹¹Êý×é×ֶΣ¬Êä³öÂß¼­0-1
    results.fps = seq.num_frames / seq.time;%ÇóÖ¡ÂÊ
else
    results.fps = NaN;
end
 
% %AUC results
% pd_boxes = results.res;
% thresholdSetOverlap = 0: 0.05 : 1;
% success_num_overlap = zeros(1, numel(thresholdSetOverlap));
% res = calcRectInt(seq.gt_box, pd_boxes);
% for t = 1: length(thresholdSetOverlap)
%     success_num_overlap(1, t) = sum(res > thresholdSetOverlap(t));
% end
% results.cur_AUC = mean(success_num_overlap) / size(seq.gt_box, 1);

完成,重新跑一下试试:

完美运行,所以其实就是get_sequence_results中多此一举,多了一个计算AUC的步骤,因为读取不到groundtruth导致函数无法返回gt_box进而引起评测代码不能正确读取结果而导致的报错。

 

UAV数据集检测模型是指使用无人机采集的数据集进行目标检测的模型。无人机作为一种空中移动平台,能够获取到多种类型的数据,如图像、视频、雷达信号等。这些数据可以用于目标检测任务,即从数据中找出特定目标的位置和类别。 UAV数据集检测模型的核心是深度学习模型,如卷积神经网络(CNN)和循环神经网络(RNN)。通过使用深度学习算法,模型可以对目标进行识别和分类,并给出其在图像或视频中的精确位置。 对于UAV数据集检测模型的训练,首先需要将采集到的数据集进行预处理,包括数据清洗、数据增强和标注等步骤。然后,使用标注好的数据集来训练模型,通过反向传播算法来优化模型的参数。在训练过程中,可以使用一些优化技术,如随机梯度下降(SGD)和批量归一化(Batch Normalization),来提高模型的训练效果和泛化能力。 在模型训练完成后,可以使用训练好的模型来进行目标检测。通过将新的数据输入模型,模型会输出检测到的目标的位置和类别信息。为了提高检测的精确度和鲁棒性,可以使用一些后处理技术,如非极大值抑制(NMS)和边界框回归等。 总之,UAV数据集检测模型是一种利用无人机数据进行目标检测的技术。它能够对无人机采集的数据进行分析和处理,识别出目标的位置和类型,为无人机应用提供有力支持。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值