追踪算法入门:从 SORT 到 ByteTrack

news2026/3/14 4:39:05
本文基于 SORT、StrongSORT、ByteTrack 三篇顶会 / 顶刊经典论文结合工程落地实践用通俗的语言 具象化例子讲透多目标跟踪MOT里最核心的几个灵魂问题卡尔曼滤波到底在跟踪里干啥用我都有检测器出的框了为啥还要卡尔曼校正漏检帧卡尔曼已经做预测了StrongSORT 为啥还要插帧后处理ByteTrack 和 SORT 到底啥关系是不是完全重写了适合人群MOT 入门新手、算法工程落地人员、面试备考的同学看完就能搞懂工业界 90% 场景在用的 SORT 系跟踪算法。目录先搞懂根基Tracking-by-Detection 跟踪范式一切的起点SORT 算法MOT 的 “Hello World”灵魂拆解卡尔曼滤波在跟踪里的核心作用与实现解决长漏检痛点StrongSORT 的插帧后处理到底补了啥工业界顶流ByteTrack把 SORT 的潜力挖到极致四大算法横向对比与工程落地避坑指南总结1. 先搞懂根基Tracking-by-Detection 跟踪范式在讲算法之前先搞明白现在工业界主流的多目标跟踪到底是个什么逻辑。多目标跟踪MOT的核心目标给视频里的每个目标行人、车辆等分配一个唯一的 ID从它进画面到出画面全程跟着不跟丢、不换 ID。现在 99% 的落地场景用的都是 **Tracking-by-Detection基于检测的跟踪** 范式大白话就是两步走检测每一帧都用目标检测器比如 YOLO 系列把画面里的所有目标框出来得到每个框的位置、大小、置信度。跟踪把不同帧里、属于同一个目标的框串成一条完整的轨迹给同一个 ID。你可以把它理解成「找人」检测就是每一秒给你拍一张照片圈出照片里所有人的位置跟踪就是告诉你上一秒照片里的张三对应这一秒照片里的哪个人。而我们今天讲的 SORT、StrongSORT、ByteTrack全都是这个范式下的跟踪算法核心解决的就是「怎么把框串对」的问题。2. 一切的起点SORT 算法MOT 的 “Hello World”SORT 全称是Simple Online and Realtime Tracking是 2016 年发表的经典论文堪称 MOT 领域的入门基石后面几乎所有主流跟踪算法都是在它的架构上做的优化。2.1 SORT 的核心架构两大件搞定跟踪SORT 的设计哲学就是「简单有效」全程没有花里胡哨的操作只用两个核心模块就实现了又快又稳的跟踪卡尔曼滤波负责预测目标下一帧在哪同时融合检测结果输出更准的目标状态。匈牙利匹配算法负责把卡尔曼预测的框和检测器出的框做最优配对把同一个目标的框串起来。除此之外只有简单的轨迹生命周期管理比如连续多少帧没匹配上就删掉轨迹没有其他复杂操作在 2016 年就做到了 260FPS 的实时性放到现在也是速度第一梯队的算法。2.2 SORT 的局限成也简单败也简单SORT 的极简设计也带来了很明显的短板也是后面所有算法优化的方向只认高置信度检测框比如置信度 0.5目标被遮挡、模糊导致检测置信度变低直接就把框扔了很容易跟丢目标。只用 IOU 做匹配没有外观信息两个目标离得近、框重叠多很容易跟错人ID 切换。卡尔曼只能做在线单步预测连续多帧漏检时预测会越来越偏轨迹直接断裂。3. 灵魂拆解卡尔曼滤波在跟踪里的核心作用与实现很多新手学 MOT第一个卡壳的就是卡尔曼滤波公式看着吓人不知道它到底在干啥。其实你不用死记硬背公式只要搞懂它在跟踪里的 3 个核心作用以及「预测 - 校正」的两步逻辑就行。3.1 卡尔曼滤波到底在跟踪里干啥一句话总结卡尔曼滤波是线性高斯场景下的「最优状态估计器」在跟踪里它就是目标的「运动轨迹管家」核心干 3 件事。作用 1预测下一帧目标大概率会出现在哪你可以把它理解成「预判走位」比如你跟踪一个走路的行人上一帧他在 (100,200) 的位置每秒往右走 2 个像素那卡尔曼就能预判这一帧他大概率在 (102,200) 的位置。这个预判有两个核心价值给后面的匹配提供基准有了预测框你就知道该去哪个位置找这个目标的检测框不用全画面瞎找。给漏检帧做临时补位万一这一帧检测器没检出这个目标这个预测框就能临时顶上不让轨迹直接断了。作用 2融合预测和检测得到比两者都更准的结果这是很多新手最困惑的点我都有检测器出的精准框了为啥还要用卡尔曼校正大白话解释无论是检测器的框还是卡尔曼的预测框都不是 100% 准的都有误差。卡尔曼做的事就是把两个有误差的结果融合成一个更准的结果。举个最具象的例子你跟踪一个匀速走路的行人上一帧融合后的最优位置是 x100速度是每帧走 2 像素卡尔曼预测这一帧的位置是x102这一帧检测器给的框中心位置是x105—— 因为光线变化、目标轻微晃动检测器的框抖了 3 个像素卡尔曼会判断这个行人走路很稳我的预测不确定性很小很靠谱检测器这一帧的抖动有点大没那么靠谱所以给预测更高的权重最终融合输出x103。你看最终的结果既不会跟着检测器乱抖也不会完全不听检测结果、目标变向了跟不上这就是卡尔曼校正的核心价值。作用 3漏检时维持轨迹不让 ID 直接消失当目标被遮挡、检测器漏检时没有检测框做校正卡尔曼会持续用运动模型做预测临时补上漏检帧的位置让轨迹能维持住等目标重新出现时还能接上原来的 ID不会直接生成一个新 ID。3.2 讲透卡尔曼的「预测 - 校正」两步走SORT 里用的是最经典的恒速运动模型CV 模型我们就以这个为例不讲复杂的数学推导只讲清楚每一步在干啥以及对应的代码实现。第一步先定义我们要跟踪的「目标状态」是什么卡尔曼滤波要跟踪的不是一个单纯的框坐标而是一个7 维的状态向量包含了目标的位置、大小和运动速度每个维度x,y目标框的中心坐标就像行人的胸口位置s目标框的面积目标的大小r目标框的宽高比比如行人的框都是瘦高的这个值基本不变vx​,vy​,vs​x 方向、y 方向的移动速度还有面积的变化速度恒速模型假设速度不变除了状态向量还有一个协方差矩阵 P你不用管它的数学定义只要记住它描述的是我们对当前状态估计的「不确定性」数值越大说明我们越没把握。第二步预测步骤 —— 根据历史猜当前帧的状态预测的核心逻辑就是基于我们设定的运动模型恒速用上一帧的最优状态推出当前帧的预测状态同时更新不确定性。大白话公式先讲人话再给数学公式这一帧的预测位置 上一帧的位置 上一帧的速度 × 时间视频里两帧的时间间隔是 1所以直接加就行这一帧的不确定性 上一帧的不确定性 运动模型自带的误差比如目标可能突然变速我们猜的不准对应的数学公式F状态转移矩阵就是我们的「恒速运动规则」比如 x 上一帧 x 上一帧 vxQ过程噪声协方差就是「运动模型的误差」目标运动越不稳定这个值就该设的越大对应的极简伪代码Python 风格带注释import numpy as np # 1. 初始化恒速模型的状态转移矩阵F7x7 F np.eye(7) # 单位矩阵基础是状态不变 F[0, 4] 1 # x 上一帧x 上一帧vx * 1 F[1, 5] 1 # y 上一帧y 上一帧vy * 1 F[2, 6] 1 # s 上一帧s 上一帧vs * 1 # 2. 卡尔曼预测步骤 def kalman_predict(x_prev, P_prev, F, Q): x_prev: 上一帧的最优状态向量 P_prev: 上一帧的协方差矩阵 F: 状态转移矩阵 Q: 过程噪声协方差 x_pred F x_prev # 预测当前帧的状态 P_pred F P_prev F.T Q# 更新不确定性越预测不确定性越大 return x_pred, P_pred第三步校正步骤 —— 用检测结果修正我们的猜测当这一帧有目标的检测框时我们就用这个真实的观测结果来修正刚才的预测得到这一帧的最优状态同时降低不确定性。核心逻辑先算「预测的结果」和「检测的结果」差了多少残差再算「我该信检测多一点还是信预测多一点」卡尔曼增益最后用这个权重把预测和检测融合得到最优结果同时更新不确定性对应的数学公式zk​当前帧的检测框观测值就是检测器给的 [x,y,s,r]H观测矩阵把 7 维的状态向量映射到 4 维的检测框空间因为我们只能观测到位置和大小观测不到速度R检测噪声协方差就是「检测器的误差」检测器越拉胯框越抖这个值就该设的越大Kk​卡尔曼增益核心就是「信任权重」检测器越准K 越大越信检测预测越稳K 越小越信预测对应的伪代码# 1. 初始化观测矩阵H4x7只观测位置、面积、宽高比不观测速度 H np.zeros((4, 7)) H[0, 0] 1 # 观测x H[1, 1] 1 # 观测y H[2, 2] 1 # 观测s H[3, 3] 1 # 观测r # 2. 卡尔曼校正步骤 def kalman_update(x_pred, P_pred, detection, H, R): detection: 当前帧的检测框 [x,y,s,r] R: 检测噪声协方差 # 计算残差检测结果 和 预测的观测结果 差了多少 y detection - H x_pred # 计算卡尔曼增益K S H P_pred H.T R K P_pred H.T np.linalg.inv(S) # 融合得到最优状态 x_update x_pred K y # 更新协方差校正后不确定性降低 I np.eye(len(x_pred)) P_update (I - K H) P_pred return x_update, P_update3.3 连续漏检时卡尔曼会一直预测吗会但有两个关键限制也是它的核心局限只要轨迹没被终止就会一直执行预测每一帧到来时不管有没有检测框卡尔曼都会先执行 predict 步骤给出当前帧的预测状态。不确定性会爆炸轨迹最终会被终止连续漏检时没有检测框做 update 校正协方差矩阵 P 会每帧都变大因为每次预测都加 Q也就是我们对预测的把握越来越小结果越来越飘。SORT 和所有衍生算法里都会设置一个max_age阈值比如连续 30 帧漏检超过这个阈值就会认为目标已经离开画面把轨迹终止不再继续预测。举个例子一个行人被广告牌挡住了 20 帧卡尔曼会每帧都预测他的位置但越往后预测的框越不准可能都飘到别的行人那里去了。如果max_age设的是 3020 帧后他重新出现还能接上轨迹如果被挡了 40 帧轨迹就被删了再出现就会生成一个新的 ID。4. 解决长漏检痛点StrongSORT 的插帧后处理到底补了啥StrongSORT 是 2022 年发表的论文《StrongSORT: Make DeepSORT Great Again》核心是在 DeepSORTSORT 外观特征的基础上做了一系列优化其中最让新手困惑的就是卡尔曼已经能预测漏检帧了为啥还要加 GSI 高斯平滑插值做插帧后处理4.1 先搞懂核心区别在线跟踪 vs 离线后处理这是问题的核心卡尔曼滤波和 GSI 插帧根本就不是一个环节的东西用的信息、目标、时机完全不一样模块卡尔曼滤波在线跟踪GSI 插帧后处理离线优化运行时机实时逐帧运行来一帧处理一帧整个视频的跟踪全跑完了再全局处理能用的信息只能用当前帧之前的历史信息绝对看不到未来的帧能用整个视频的所有帧信息包括漏检区间之后的检测结果核心目标维持轨迹在线不中断做单帧的状态估计修复长时漏检的轨迹断裂让整条轨迹更平滑、更准确运动假设单步递推的恒速线性模型高斯过程回归能拟合非线性、变速的运动4.2 灵魂拷问有卡尔曼为啥还要插帧一句话总结卡尔曼是「蒙着眼睛往前猜」GSI 插帧是「看着完整路线回头补」长时漏检场景下卡尔曼的在线预测根本不准必须靠离线插帧来修复。我们还是用例子讲明白假设一个行人在第 10 帧的时候被大货车挡住了一直到第 50 帧才重新出现中间 40 帧全是漏检。卡尔曼在线预测的表现第 11 帧用第 10 帧的状态预测误差很小第 20 帧已经连续 10 帧没校正了不确定性已经很大预测框开始飘第 40 帧预测的位置已经完全偏离了行人真实的路线甚至可能飘到画面外了到第 50 帧行人重新出现时卡尔曼的预测框和真实检测框的 IOU 几乎为 0根本匹配不上轨迹直接断成两段ID 直接换了。GSI 插帧后处理的表现等整个视频跑完算法知道这个 ID 在第 10 帧的位置是 A第 50 帧重新出现的位置是 B中间 40 帧是漏检区间。它会用 A 和 B 这两个前后锚点结合高斯过程回归拟合出这 40 帧里行人最可能走的平滑路线把中间的漏检帧全部补全。哪怕中间 40 帧全漏了也能把前后两段轨迹拼成一条完整的、ID 一致的轨迹而且补的框比卡尔曼盲猜的准 10 倍都不止。4.3 关键补充插帧会替换卡尔曼的预测结果吗会而且是完全替换。在 StrongSORT 的流程里在线跟踪阶段卡尔曼对漏检帧的预测只是临时用来维持轨迹的到了离线后处理阶段GSI 会直接忽略这些临时的预测框只保留轨迹里有真实检测的锚点帧重新拟合漏检区间的所有帧用新的插帧结果替换掉之前卡尔曼的预测结果。除此之外StrongSORT 还搭配了 AFLink外观无关的全局轨迹拼接先把视频里断裂的短轨迹全局拼接成完整的长轨迹再用 GSI 把拼接后的漏检区间补全双管齐下把轨迹的完整性拉满。5. 工业界顶流ByteTrack把 SORT 的潜力挖到极致ByteTrack 是 2021 年发表的论文《ByteTrack: Multi-Object Tracking by Associating Every Detection Box》现在已经是工业界落地的首选算法很多同学问ByteTrack 到底有没有用 SORT 的思想答案是ByteTrack 完全继承了 SORT 的核心骨架只在「检测框的关联策略」上做了一个颠覆性的创新就把跟踪的精度和鲁棒性提升了一大截。5.1 ByteTrack 对 SORT 的完全继承ByteTrack 的底层架构100% 复用了 SORT 的核心设计完全沿用恒速模型的卡尔曼滤波做目标的状态预测和校正完全沿用匈牙利匹配算法做预测框和检测框的全局最优匹配完全沿用IOU 匹配代价以及轨迹生命周期管理max_age、min_hits。可以说ByteTrack 就是「SORT 的骨架BYTE 的血肉」没有 SORT 的基础就没有 ByteTrack 的成功。5.2 核心创新BYTE 关联策略把 SORT 扔掉的框捡回来SORT 最大的短板就是只认高置信度检测框直接把低置信度框全扔了 —— 但很多时候低置信度框不是背景而是被遮挡、模糊的真实目标。比如两个行人并排走后面的人被前面的人挡住了一半检测器给的框置信度只有 0.3SORT 的置信度阈值是 0.5直接就把这个框扔了后面的人的轨迹直接就断了。ByteTrack 的核心突破就是不随便扔低置信度框而是分两次做关联把被遮挡的目标找回来。5.3 大白话讲透 ByteTrack 的关联流程ByteTrack 把检测框分成了三类分两步做匹配全程逻辑非常简单但效果出奇的好框的分类高置信度框置信度 高阈值比如 0.6是确定的真实目标低置信度框置信度在 0.1~0.6 之间可能是被遮挡的目标也可能是背景极低置信度框置信度 0.1直接扔掉视为背景。第一次匹配高置信度框匹配所有轨迹拿所有高置信度框和当前所有的轨迹卡尔曼预测了位置做 IOU 匹配 匈牙利算法。匹配上的轨迹直接用检测框做卡尔曼校正更新状态。这一步结束后会剩下两类东西没匹配上的轨迹大概率是被遮挡的目标没找到对应的高置信度框没匹配上的高置信度框大概率是新出现的目标。第二次匹配低置信度框匹配没匹配上的轨迹拿所有低置信度框和上一步没匹配上的轨迹再做一次 IOU 匹配。匹配上的轨迹就用这个低置信度框做校正保住了被遮挡的目标不会跟丢。没匹配上的低置信度框直接扔掉视为背景。轨迹生成与销毁上一步没匹配上的高置信度框生成新的待激活轨迹连续多帧没匹配上的轨迹超过 max_age 就销毁。就这么一个简单的两步匹配完美解决了遮挡场景下的目标漏跟问题在 MOT17、MOT20 等权威数据集上精度直接超过了之前的 DeepSORT、FairMOT 等算法同时还保持了极高的实时性完美适配工业界的落地需求。6. 四大算法横向对比与工程落地避坑指南6.1 核心算法横向对比表算法核心组件核心优势核心劣势首选落地场景SORT卡尔曼滤波 IOU 匹配 匈牙利算法极致简单、速度最快、算力要求极低遮挡场景差、ID 切换多、长漏检易断算力极有限、目标无严重遮挡的高实时场景DeepSORTSORTReID 外观特征匹配大幅减少 ID 切换速度慢、外观特征依赖重、遮挡仍有问题对 ID 一致性要求高、算力充足的非遮挡场景StrongSORTDeepSORT 优化 NSA 卡尔曼 GSI 插帧 AFLink轨迹完整性拉满、ID 切换极少、长漏检修复强离线后处理、速度慢、算力要求高离线视频分析、事后轨迹回溯、对轨迹平滑度要求极高的场景ByteTrackSORT 骨架 BYTE 高低置信度关联兼顾速度与精度、遮挡召回极强、工程落地友好、调参简单极长时遮挡仍有局限、无外观特征易 ID 跳工业界通用首选、自动驾驶、安防监控、实时直播等绝大多数落地场景6.2 工程落地避坑指南干货总结1. 卡尔曼滤波的调参核心Q 矩阵过程噪声跟踪的目标运动越灵活比如行人突然变向、快跑Q 就调大一点告诉卡尔曼「别太信之前的速度目标可能会变」跟踪的目标运动越稳比如高速上的车Q 就调小一点。R 矩阵检测噪声你的检测器越拉胯、框抖的越厉害R 就调大一点告诉卡尔曼「别太信检测框多信预测的平滑结果」检测器很准R 就调小一点。2. 轨迹生命周期参数怎么设max_age最大漏检帧数遮挡多的场景比如室内安防、拥挤的步行街设大一点30~50高速运动场景比如自动驾驶、交通卡口设小一点10~20避免跟错目标。min_hits激活轨迹的最小命中数检测器误检多就设大一点3~5避免假目标生成无效轨迹检测器很准就设小一点1~2快速捕捉新出现的目标。3. 在线还是离线别选错了实时场景自动驾驶、直播推流、实时预警只能用在线算法SORT/ByteTrack绝对不能用离线后处理因为你看不到未来的帧。离线场景视频回放、事后取证、轨迹分析可以用 StrongSORT 的后处理把轨迹补的更完整ID 一致性更好。4. 隔帧检测提速可行吗工程上为了降低算力占用很多人会做「隔帧检测」比如每 2 帧跑一次检测器中间帧只用卡尔曼预测不做检测。可行但有代价会提升漏检率目标快速运动时容易跟丢建议最多隔 1 帧别隔太多。7. 总结最后我们把整个 SORT 系算法的脉络再串一遍帮你彻底搞懂Tracking-by-Detection 是根基所有算法都是「先检测再把框串成轨迹」卡尔曼滤波是整个跟踪体系的基石它负责在线的状态预测、检测融合、轨迹维持解决「目标在哪」的问题匈牙利匹配是关联的核心解决「哪个框对应哪个 ID」的问题SORT 是极简的起点用两大件实现了实时跟踪但对遮挡、漏检的鲁棒性不足StrongSORT 用离线后处理解决了长漏检的轨迹断裂问题适合离线场景ByteTrack 用两步关联策略解决了遮挡场景的目标漏跟问题兼顾速度与精度成为工业界首选。多目标跟踪的核心逻辑从来都不是越复杂越好而是用最简单的方案解决最核心的痛点。SORT、ByteTrack 的成功也印证了这一点。参考论文Simple online and realtime trackingStrongSORT: Make DeepSORT Great AgainMulti-object tracking by associating every detection box

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2409946.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…

wordpress后台更新后 前端没变化的解决方法

使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…

网络编程(Modbus进阶)

思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造&#xff0c;完美适配AGV和无人叉车。同时&#xff0c;集成以太网与语音合成技术&#xff0c;为各类高级系统&#xff08;如MES、调度系统、库位管理、立库等&#xff09;提供高效便捷的语音交互体验。 L…

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道&#xff08;多模态 OCR → 语义检索 → 答案渲染&#xff09;、两级检索&#xff08;倒排 BM25 向量 HNSW&#xff09;并以大语言模型兜底”的整体框架&#xff1a; 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后&#xff0c;分别用…

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板&#xff0c;载入页面后&#xff0c;会显示引导弹窗&#xff0c;适用于引导用户使用页面&#xff0c;点击完成后&#xff0c;会显示下一个引导弹窗&#xff0c;直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑&#xff1a;陈萍萍的公主一点人工一点智能 未来机器人的大脑&#xff1a;如何用神经网络模拟器实现更智能的决策&#xff1f;RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战&#xff0c;在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …

华为云AI开发平台ModelArts

华为云ModelArts&#xff1a;重塑AI开发流程的“智能引擎”与“创新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企业拥抱AI的意愿空前高涨&#xff0c;但技术门槛高、流程复杂、资源投入巨大的现实&#xff0c;却让许多创新构想止步于实验室。数据科学家…

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…