💥💥💞💞欢迎来到本博客❤️❤️💥💥
🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。
⛳️座右铭:行百里者,半于九十。
📋📋📋本文内容如下:🎁🎁🎁
⛳️赠与读者
👨💻做科研,涉及到一个深在的思想系统,需要科研者逻辑缜密,踏实认真,但是不能只是努力,很多时候借力比努力更重要,然后还要有仰望星空的创新点和启发点。建议读者按目录次序逐一浏览,免得骤然跌入幽暗的迷宫找不到来时的路,它不足为你揭示全部问题的答案,但若能解答你胸中升起的一朵朵疑云,也未尝不会酿成晚霞斑斓的别一番景致,万一它给你带来了一场精神世界的苦雨,那就借机洗刷一下原来存放在那儿的“躺平”上的尘埃吧。
或许,雨过云收,神驰的天地更清朗.......🔎🔎🔎
💥1 概述
【无人机】基于无人机搭载摄像头网络的交互式监控分布式方法研究
多摄像头监控系统正日益广泛地应用于提升安全保障水平,而将摄像头搭载于无人机(Unmanned Aerial Vehicles,UAVs)上的可能性更是将其能力提升到了全新的层次。本项目旨在利用多架无人机搭载的摄像头,为交互式监控问题找到一种可行的解决方案。
多摄像头监控系统在研究和工业领域的诸多方面都已成为一种现代趋势。这些系统正日益广泛地应用于提升公园、机场和银行等公共场所,以及政府和军事设施等受限区域的安全保障水平。此外,将摄像头搭载于无人机(Unmanned Aerial Vehicles,UAVs)上的可能性更是将这些监控系统的能力提升到了全新的层次。实际上,使用飞行摄像头能够大幅提高网络的可重构性,并带来观察环境的新视角和更广泛的覆盖范围。

摘要
本文旨在从自上而下的视角出发,在已知环境中利用多架无人机搭载的摄像头,为交互式监控问题找到一种可行的解决方案。采用基于贝叶斯理论的贪婪算法与状态交换相结合的分布式方法来解决协同巡逻问题。在受限环境中,将该策略的结果与通过线性规划得到的最佳路径进行比较。此外,还在大规模环境中对该方法的整体性能进行了评估,因为在这种环境中,最优解问题变得不可行。本项目采用卡尔曼理论实现了一种智能目标跟踪算法,该算法的摄像头变焦控制针对目标包含和信息损失最小化进行了优化。通过多次仿真,对采用不同轨迹模型的目标进行跟踪,同时改变滤波器的采样频率和检测精度。最后,对该算法在测量误差和摄像头故障情况下的鲁棒性进行了测试。
一种基于无人机搭载相机网络的交互式监控分布式方法
摘要——本文旨在从自上而下的视角,探讨一种在已知环境中使用多架无人机搭载相机解决交互式监控问题的可行方案。采用基于贝叶斯理论的带状态交换的贪婪算法,以分布式方式解决协同巡逻问题。在受限环境中,将该策略的结果与通过线性规划得到的最佳路径进行比较。此外,在大规模环境中评估整体性能,因为在这些环境中,最优问题变得不可行。采用卡尔曼理论实现了一种智能目标跟踪算法,该算法的相机变焦控制针对目标包含和信息损失最小化进行了优化。进行了多次仿真,使用不同的轨迹模型跟踪目标,并改变滤波器的采样频率和检测精度。最后,对该算法在测量误差和相机故障方面的鲁棒性进行了测试。
I. 引言
多相机监控系统已成为许多领域的研究和产业发展的现代趋势。这些系统正越来越多地用于增强公园、机场和银行等公共场所以及政府和军事设施等受限区域的安全性和保障性。此外,将相机安装在无人机(UAV)上的可能性使这些监控系统的能力提升到了一个全新的水平。实际上,使用飞行相机可实现网络的大幅可重构性,并能够从新的角度观察环境,扩大覆盖范围。因此,这种相机的使用将应用场景扩展到了地形监测[1]、搜索与救援行动[2]和灾害管理活动[3]等恶劣环境。此外,基于无人机的监控系统甚至在家用安防[4]领域也成为了消费行业的一种趋势。然而,与许多基于闭路电视(CCTV)架构的网络不同,在那些网络中,人类操作员负责相机控制和数据解释,而对于这些创新系统,多个飞行物体的协调和所获取数据的分析需要某种形式的自动化。此任务可通过集中式处理或采用分布式方法[5]来实现,以获得更好的可扩展性。
本研究针对已知环境中的交互式监控目的,探讨了无人机搭载的多相机系统。在此,监控任务分为以下三个子任务:
• 巡逻——为安全目的,定期在环境中四处移动或穿行的活动;
• 事件检测——从相机数据流中识别物体、人或情况的活动,通常通过计算机视觉(CV)技术实现;
• 跟踪——为收集信息而在环境中跟踪事件的活动。
为解决协同巡逻问题,从[6]中提出的基于贝叶斯理论的数学形式主义出发,实现了一种带状态交换的贪婪算法用于相机协调。这种分布式策略在受限环境中进行了测试,其结果与通过线性规划技术得到的最佳路径结果相当。此外,还在大规模环境中模拟了一个真实场景,其中最优控制变得不可行。
事件检测问题在很大程度上取决于应用场景。特别是,所采用的计算机视觉技术通常是为检测特定形状和颜色方案而专门设计的。因此,对该问题的深入分析超出了本文的范围,本文假定事件可自动检测。
为实现智能目标跟踪,设计了一种将卡尔曼滤波理论与优化的相机变焦控制相结合的算法。特别是,通过管理目标包含和信息损失最小化之间的权衡,实现了最佳变焦,这依赖于卡尔曼滤波预测误差的协方差矩阵。进行了多次仿真,改变了目标轨迹模型和滤波器的采样频率。所获得的结果与预期结果一致。特别是,在许多场景中,以高于5Hz的频率运行滤波器可实现几乎完美的跟踪。此外,还评估了该算法对测量误差和相机故障的鲁棒性。
在下一节中,将对当前技术进行简要概述,并描述本文的贡献。随后,在第三节中,将形式化交互式监控问题,突出所有假设和期望的工作规范。接下来的两节将深入描述并展示我们对环境协同巡逻(第四节)和移动物体智能跟踪(第五节)的方法的相应仿真结果。最后,本文以结论和未来研究开放问题作为结尾。
VI. 结论
在本研究中,探讨了使用多架无人机搭载相机解决交互式监控问题的可行方案。针对巡逻问题,在考虑邻近节点感知智能体的背景下,对一种二值线性规划(BLP)策略进行了形式化阐述。设计了一种带状态交换的基于贝叶斯的贪婪算法,在受限环境中该算法得出了接近最优的结果。在类似真实的环境中,当BLP策略不可行时,也取得了出色的成果。所获得的结果表明,该方法在团队规模发生变化后具有高度的可扩展性和自我调整能力。
关于跟踪任务,实现并测试了一种具有优化变焦控制的智能跟踪算法,该算法针对不同的轨迹模型进行了测试,并考虑了多种设计参数组合。结果发现,卡尔曼滤波器的更新频率是对跟踪性能影响最大的参数。特别是,当更新频率f > 5Hz时,跟踪系统几乎能取得完美效果,始终不会丢失目标。此外,所提出的框架对测量系统中的临时故障的鲁棒性也得到了验证。
鉴于所取得的令人鼓舞的成果,在未来的研究中,值得对以下方面进行探究。
关于巡逻问题,由于状态交换贝叶斯搜索(SEBS)算法具有灵活性和简便性,可通过引入记忆功能对其做进一步拓展。在考虑通信网络的情况下,这种引入方式使巡逻相机能够解锁基于过往集体经验做出自主决策的能力,即在每个顶点,任何智能体先前做出的决策都将被考虑用于下一个决策。
作为在真实无人机上测试所提出系统的第一步,精确设计一种专用的高度控制器并实现一种适合的轨迹跟踪控制算法至关重要。
考虑到监控系统的成本效益,可以对相机数量N和卡尔曼滤波器的工作频率f进行优化,以在降低能耗和整体系统成本的同时,取得与本研究类似的结果。这一特定主题尤为有趣,因为两项任务之间的微妙平衡或许能让因滤波器频率降低而丢失的目标,迅速被附近的巡逻智能体重新检测到。
📚2 运行结果





部分代码:
%% Coordinated Surveillance
N = 200; % duration
Npre = 500; % duration transient
Simulation_preprocessing; % load data
% SEBS Initialization
Np = NoC;
s1 = round(0.5/Tc);
env.IvReset();
env.heatReset();
d = zeros(NoC,2);
detected = false;
for t = 1:Npre
S = zeros(1,length(env.V)); % Initialize vertex intentions
for n = randperm(NoC)
% SEBS
if t/s1 == round(t/s1)
v(n) = C(n).SEBS(env,Np,S,L,M); % Select next step
d(n,:) = env.Vm(v(n),:) - C(n).X(1:2);
% Share Intention
view = env.A(env.Vmap(v(n)),:);
view(1,env.Vmap(v(n))) = 1;
% Simulate transmission errors
if randi([0,100])/100 > e_tx
S(logical(view)) = S(logical(view)) + 1;
end
end
end
% MOVE
for n = 1:NoC
C(n).V = v(n);
C(n).X(1:2) = C(n).X(1:2) + d(n,:)/s1;
% Simulate transmission errors
if randi([0,100])/100 > e_tx
env.IvUpdate(t*Tc,C(n).V) % Update Idleness
env.deheat(C(n).V) % Deheat viewed vertices
end
end
end
% Tracking Control Initialization
nL = 0;
s = round(T/Tc);
realZ = [];
hctrl.h0 = C(1).zMax;
hctrl.vh0 = 0;
% open Simulink model
open_system('control.slx');
figure()
for t = Npre+1:N+Npre
env.plotBorders();
hold on
% TARGET TRAJECTORY
if t > Npre+50
x = (Ac*x' + Qc*randn(4,1))'; % New Trajectory point
% verify if new trajectory point is inside our environment
in = inpolygon(x(1),x(2),B(:,1),B(:,2));
in1 = inpolygon(x(1),x(2),NFZ2{1}(:,1),NFZ2{1}(:,2));
in2 = inpolygon(x(1),x(2),NFZ2{2}(:,1),NFZ2{2}(:,2));
if in
scatter(x(1),x(2),30,[0.8500, 0.3250, 0.0980],'filled')
end
% DETECTION
firstStep = false;
for n = 1:NoC
if (abs(C(n).X(1)-x(1)) < C(n).FoV && abs(C(n).X(2)-x(2)) < C(n).FoV && ~detected && in && ~in1 && ~in2)
C(n).Task = 1;
Np = Np-1;
env.addHeat(3,1,1,C(n).V);
detected = true;
firstStep = true;
tDetect = t;
% Initialize Filter
r = C(n).FoV*C(n).eFoV;
R = r^2*eye(2);
y = (H*x' + sqrt(R)*randn(2,1))';
🎉3 参考文献
文章中一些内容引自网络,会注明出处或引用为参考文献,难免有未尽之处,如有不妥,请随时联系删除。(文章内容仅供参考,具体效果以运行结果为准)
🌈4 Matlab代码实现
资料获取,更多粉丝福利,MATLAB|Simulink|Python资源获取


被折叠的 条评论
为什么被折叠?



