当前位置: 首页 > news >正文

概率多假设跟踪(PMHT):多目标跟踪中的概率软关联与高效跟踪算法解析

一、PMHT 的起源与核心定位

(一)背景

在多目标跟踪中,传统算法面临以下瓶颈:

  • JPDA:单帧局部最优关联,无法处理跨帧长时间断联,且假设目标数固定(如雷达跟踪中预设目标数范围)。
  • MHT:通过多帧假设集实现全局最优,但假设数随时间呈指数增长(如K帧后假设数达 ( N M ) K (NM)^K (NM)K),计算复杂度极高。 PMHT于 1997 年由 Singer 和 Kashyap 提出,基于期望最大化(EM)算法,通过概率分配隐式管理多帧关联,避免显式假设生成,在精度与效率间取得平衡,适用于目标数变化、中等杂波场景(如空中交通、智能监控)。

(二)核心定位

PMHT 是一种基于概率软关联的多帧迭代跟踪算法,核心是通过 EM 框架联合优化:

  1. 关联概率:观测与目标的归属概率(软决策,非硬分配);
  2. 目标状态:通过加权最小二乘估计,融合多帧观测信息。
  • 核心优势:跨帧关联鲁棒性优于 JPDA,计算复杂度低于 MHT(线性增长而非指数),支持目标数动态变化。

二、PMHT 理论基础:概率模型与 EM 框架

1. 基础假设与符号定义

(1)系统模型
  • 时间序列 k = 1 , 2 , … , K k=1,2,\dots,K k=1,2,,K(共K帧)。
  • 目标状态:第i个目标在帧k的状态为 x k ( i ) ∈ R d x_k^{(i)} \in \mathbb{R}^d xk(i)Rd,服从状态转移模型: x k ( i ) = F k x k − 1 ( i ) + w k ( i ) , w k ( i ) ∼ N ( 0 , Q k ) x_k^{(i)} = F_k x_{k-1}^{(i)} + w_k^{(i)}, \quad w_k^{(i)} \sim \mathcal{N}(0, Q_k) xk(i)=Fkxk1(i)+wk(i),wk(i)N(0,Qk)其中 F k F_k Fk为状态转移矩阵, Q k Q_k Qk为过程噪声协方差。
  • 观测模型:帧k的观测 z k ( m ) ∈ R r z_k^{(m)} \in \mathbb{R}^r zk(m)Rr,若来自目标i,则: z k ( m ) = H k x k ( i ) + v k ( m ) , v k ( m ) ∼ N ( 0 , R k ) z_k^{(m)} = H_k x_k^{(i)} + v_k^{(m)}, \quad v_k^{(m)} \sim \mathcal{N}(0, R_k) zk(m)=Hkxk(i)+vk(m),vk(m)N(0,Rk)其中 H k H_k Hk为观测矩阵, R k R_k Rk为观测噪声协方差;若为杂波,则均匀分布于观测空间 Z \mathcal{Z} Z,密度为 λ = C Vol ( Z ) \lambda = \frac{C}{\text{Vol}(\mathcal{Z})} λ=Vol(Z)C(C为杂波数期望, Vol ( Z ) \text{Vol}(\mathcal{Z}) Vol(Z)为观测空间体积)。
(2)关联变量

定义软关联概率 γ k , m , i \gamma_{k,m,i} γk,m,i:观测 z k ( m ) z_k^{(m)} zk(m)来自目标i的概率( 0 ≤ γ k , m , i ≤ 1 0 \leq \gamma_{k,m,i} \leq 1 0γk,m,i1),满足:

∑ i = 0 N k γ k , m , i = 1 , γ k , m , 0 = 杂波关联概率 \sum_{i=0}^{N_k} \gamma_{k,m,i} = 1, \quad \gamma_{k,m,0} = \text{杂波关联概率} i=0Nkγk,m,i=1,γk,m,0=杂波关联概率

其中 N k N_k Nk为帧k的目标数, γ k , m , 0 = 1 − ∑ i γ k , m , i \gamma_{k,m,0} = 1 - \sum_i \gamma_{k,m,i} γk,m,0=1iγk,m,i表示观测属于杂波的概率。

2. 与对比算法的核心区别

特性JPDAMHTPMHT
关联方式单帧硬分配(概率最大)多帧显式假设树多帧软关联(概率迭代)
目标状态更新单帧滤波(如卡尔曼)假设集贝叶斯更新多帧加权最小二乘
目标数适应性固定范围灵活但高计算量动态(需初始化)
数据利用效率单帧局部最优全局最优多帧次优但高效

三、PMHT 算法详解:基于 EM 的迭代优化

PMHT 通过 E 步(计算关联概率)M 步(更新目标状态) 交替迭代,收敛至最大似然解(MLE)。假设初始目标数为 N 0 N_0 N0,初始状态 { x 1 ( i ) } \{x_1^{(i)}\} {x1(i)}由检测或先验知识给出。

1. 期望步骤(E-Step):关联概率计算

对每帧k、观测m、目标i( i ≥ 1 i \geq 1 i1 i = 0 i=0 i=0代表杂波),计算:

γ k , m , i = p d ⋅ p ( z k ( m ) ∣ x k ( i ) ) ⋅ p ( x k ( i ) ∣ x k − 1 ( i ) ) λ V + ∑ j = 1 N p d ⋅ p ( z k ( m ) ∣ x k ( j ) ) ⋅ p ( x k ( j ) ∣ x k − 1 ( j ) ) \gamma_{k,m,i} = \frac{p_d \cdot p(z_k^{(m)}|x_k^{(i)}) \cdot p(x_k^{(i)}|x_{k-1}^{(i)})}{\lambda V + \sum_{j=1}^{N} p_d \cdot p(z_k^{(m)}|x_k^{(j)}) \cdot p(x_k^{(j)}|x_{k-1}^{(j)})} γk,m,i=λV+j=1Npdp(zk(m)xk(j))p(xk(j)xk1(j))pdp(zk(m)xk(i))p(xk(i)xk1(i))

关键项展开

  • 检测概率 p d p_d pd(目标被检测到的概率,未检测时不生成观测);
  • 观测似然 p ( z k ( m ) ∣ x k ( i ) ) = N ( z k ( m ) ; H k x k ( i ) , R k ) = 1 ( 2 π ) r ∣ R k ∣ exp ⁡ ( − 1 2 ( z k ( m ) − H k x k ( i ) ) ⊤ R k − 1 ( z k ( m ) − H k x k ( i ) ) ) p(z_k^{(m)}|x_k^{(i)}) = \mathcal{N}(z_k^{(m)}; H_k x_k^{(i)}, R_k) = \frac{1}{\sqrt{(2\pi)^r |R_k|}} \exp\left(-\frac{1}{2}(z_k^{(m)} - H_k x_k^{(i)})^\top R_k^{-1} (z_k^{(m)} - H_k x_k^{(i)})\right) p(zk(m)xk(i))=N(zk(m);Hkxk(i),Rk)=(2π)rRk 1exp(21(zk(m)Hkxk(i))Rk1(zk(m)Hkxk(i)))
  • 状态转移先验 p ( x k ( i ) ∣ x k − 1 ( i ) ) = N ( x k ( i ) ; F k x k − 1 ( i ) , Q k ) p(x_k^{(i)}|x_{k-1}^{(i)}) = \mathcal{N}(x_k^{(i)}; F_k x_{k-1}^{(i)}, Q_k) p(xk(i)xk1(i))=N(xk(i);Fkxk1(i),Qk)
  • 杂波项 λ V \lambda V λV为帧内杂波数期望( V = Vol ( Z ) V = \text{Vol}(\mathcal{Z}) V=Vol(Z)),确保分母为全概率归一化因子。

2. 最大化步骤(M-Step):目标状态更新

对每个目标i,利用加权最小二乘估计更新状态 x k ( i ) x_k^{(i)} xk(i),权重为关联概率 γ k , m , i \gamma_{k,m,i} γk,m,i

x ^ k ( i ) = arg ⁡ min ⁡ x k ( i ) ∑ k = 1 K ∑ m = 1 M k γ k , m , i ⋅ ∥ z k ( m ) − H k x k ( i ) ∥ R k − 1 2 \hat{x}_k^{(i)} = \arg\min_{x_k^{(i)}} \sum_{k=1}^K \sum_{m=1}^{M_k} \gamma_{k,m,i} \cdot \left\| z_k^{(m)} - H_k x_k^{(i)} \right\|_{R_k^{-1}}^2 x^k(i)=argminxk(i)k=1Km=1Mkγk,m,i zk(m)Hkxk(i) Rk12

其中 ∥ a ∥ P 2 = a ⊤ P a \|a\|_P^2 = a^\top P a aP2=aPa为马氏距离平方。对于线性高斯系统,最优解为:

x ^ k ( i ) = ( ∑ k = 1 K H k ⊤ R k − 1 ∑ m = 1 M k γ k , m , i ) − 1 ∑ k = 1 K H k ⊤ R k − 1 ∑ m = 1 M k γ k , m , i z k ( m ) \hat{x}_k^{(i)} = \left( \sum_{k=1}^K H_k^\top R_k^{-1} \sum_{m=1}^{M_k} \gamma_{k,m,i} \right)^{-1} \sum_{k=1}^K H_k^\top R_k^{-1} \sum_{m=1}^{M_k} \gamma_{k,m,i} z_k^{(m)} x^k(i)=(k=1KHkRk1m=1Mkγk,m,i)1k=1KHkRk1m=1Mkγk,m,izk(m)

递推形式(结合状态转移): 引入先验估计 x ˉ k ( i ) = F k x ^ k − 1 ( i ) \bar{x}_k^{(i)} = F_k \hat{x}_{k-1}^{(i)} xˉk(i)=Fkx^k1(i),协方差 P ˉ k ( i ) = F k P ^ k − 1 ( i ) F k ⊤ + Q k \bar{P}_k^{(i)} = F_k \hat{P}_{k-1}^{(i)} F_k^\top + Q_k Pˉk(i)=FkP^k1(i)Fk+Qk,则更新后状态:

x ^ k ( i ) = x ˉ k ( i ) + K k ( i ) ( z k ( m ) − H k x ˉ k ( i ) ) \hat{x}_k^{(i)} = \bar{x}_k^{(i)} + K_k^{(i)} \left( z_k^{(m)} - H_k \bar{x}_k^{(i)} \right) x^k(i)=xˉk(i)+Kk(i)(zk(m)Hkxˉk(i))

其中卡尔曼增益 K k ( i ) = P ˉ k ( i ) H k ⊤ ( H k P ˉ k ( i ) H k ⊤ + R k ) − 1 K_k^{(i)} = \bar{P}_k^{(i)} H_k^\top (H_k \bar{P}_k^{(i)} H_k^\top + R_k)^{-1} Kk(i)=Pˉk(i)Hk(HkPˉk(i)Hk+Rk)1,权重由 γ k , m , i \gamma_{k,m,i} γk,m,i调制。

3. 目标存在性判决

通过关联概率之和估计目标存在概率:

P exist ( i ) = ∑ k = 1 K ∑ m = 1 M k γ k , m , i P_{\text{exist}}^{(i)} = \sum_{k=1}^K \sum_{m=1}^{M_k} \gamma_{k,m,i} Pexist(i)=k=1Km=1Mkγk,m,i

P exist ( i ) < τ P_{\text{exist}}^{(i)} < \tau Pexist(i)<τ(阈值,如 0.5),则剔除该目标;新增目标由检测初始化(如未关联到现有目标的高似然观测)。

4. EM 迭代流程

  1. 初始化:设定N个目标初始状态 { x 1 ( i ) } \{x_1^{(i)}\} {x1(i)}、参数 { F k , H k , Q k , R k , p d , λ } \{F_k, H_k, Q_k, R_k, p_d, \lambda\} {Fk,Hk,Qk,Rk,pd,λ}
  2. E-Step:对所有 k , m , i k,m,i k,m,i计算 γ k , m , i \gamma_{k,m,i} γk,m,i
  3. M-Step:更新所有目标状态 { x ^ k ( i ) } \{\hat{x}_k^{(i)}\} {x^k(i)}
  4. 收敛判断:若 max ⁡ i ∥ x ^ k ( i ) − x ^ k ( i , old ) ∥ < ϵ \max_i \|\hat{x}_k^{(i)} - \hat{x}_k^{(i,\text{old})}\| < \epsilon maxix^k(i)x^k(i,old)<ϵ,终止;否则返回步骤 2。

四、关键变形:线性高斯 PMHT(LG-PMHT)

当系统为线性高斯时,PMHT 可简化为卡尔曼滤波框架下的加权更新,显著提升计算效率。

1. 状态转移与观测模型

  • 状态转移 x k = F x k − 1 + w k , w k ∼ N ( 0 , Q ) x_k = F x_{k-1} + w_k, \ w_k \sim \mathcal{N}(0, Q) xk=Fxk1+wk, wkN(0,Q)
  • 观测模型 z k = H x k + v k , v k ∼ N ( 0 , R ) z_k = H x_k + v_k, \ v_k \sim \mathcal{N}(0, R) zk=Hxk+vk, vkN(0,R)

2. 关联概率简化

γ k , m , i = p d ⋅ N ( z k ( m ) ; H x ˉ k ( i ) , S k ( i ) ) λ V + ∑ j p d ⋅ N ( z k ( m ) ; H x ˉ k ( j ) , S k ( j ) ) \gamma_{k,m,i} = \frac{p_d \cdot \mathcal{N}(z_k^{(m)}; H \bar{x}_k^{(i)}, S_k^{(i)})}{\lambda V + \sum_j p_d \cdot \mathcal{N}(z_k^{(m)}; H \bar{x}_k^{(j)}, S_k^{(j)})} γk,m,i=λV+jpdN(zk(m);Hxˉk(j),Sk(j))pdN(zk(m);Hxˉk(i),Sk(i))

其中 S k ( i ) = H P ˉ k ( i ) H ⊤ + R S_k^{(i)} = H \bar{P}_k^{(i)} H^\top + R Sk(i)=HPˉk(i)H+R为创新协方差。

3. 状态协方差更新

后验协方差为:

P ^ k ( i ) = ( ∑ m = 1 M k γ k , m , i R − 1 ) − 1 + P ˉ k ( i ) − P ˉ k ( i ) H ⊤ ( S k ( i ) ) − 1 H P ˉ k ( i ) \hat{P}_k^{(i)} = \left( \sum_{m=1}^{M_k} \gamma_{k,m,i} R^{-1} \right)^{-1} + \bar{P}_k^{(i)} - \bar{P}_k^{(i)} H^\top (S_k^{(i)})^{-1} H \bar{P}_k^{(i)} P^k(i)=(m=1Mkγk,m,iR1)1+Pˉk(i)Pˉk(i)H(Sk(i))1HPˉk(i)

反映观测对状态估计不确定性的修正。

有关PMHT的matlab代码见https://m.tb.cn/h.6Rx9Zmm?tk=FsQ4V1J4GTC

五、典型应用场景与实现细节

1. 空中交通管制(ATC)

  • 挑战:多航空器匀速 / 机动混合(需切换 F k F_k Fk矩阵)、雷达杂波( λ \lambda λ动态估计)。
  • 实现
    1. 初始化:通过首次检测的航迹点聚类生成初始目标;
    2. 迭代优化:每 5 帧运行一次 EM(平衡实时性, I = 5 I=5 I=5次迭代);
    3. 目标删除:连续 3 帧 P exist ( i ) < 0.3 P_{\text{exist}}^{(i)} < 0.3 Pexist(i)<0.3则剔除。

2. 自动驾驶:多车辆跟踪

  • 观测模型:融合视觉检测框(中心坐标 ( u , v ) (u,v) (u,v))和雷达测距(r),构建混合观测: z = [ u v r ] , H = [ 1 0 0 0 0 1 0 0 cos ⁡ θ sin ⁡ θ 0 0 ] z = \begin{bmatrix} u \\ v \\ r \end{bmatrix}, \ H = \begin{bmatrix} 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ \cos\theta & \sin\theta & 0 & 0 \end{bmatrix} z= uvr , H= 10cosθ01sinθ000000 θ \theta θ为雷达方位角,状态 x = [ x , y , x ˙ , y ˙ ] ⊤ x=[x, y, \dot{x}, \dot{y}]^\top x=[x,y,x˙,y˙])。
  • 优化:使用 GPU 并行计算所有目标的 γ k , m , i \gamma_{k,m,i} γk,m,i,加速 E-Step(单帧处理时间 < 10ms)。

六、技术演进与前沿挑战

1. 理论扩展

(1)非线性 PMHT
  • 结合无迹变换(UT)**或**粒子滤波处理非线性状态转移 / 观测模型,如: p ( z k ∣ x k ( i ) ) = ∫ p ( z k ∣ y ) p ( y ∣ x k ( i ) ) d y ( 非高斯观测 ) p(z_k|x_k^{(i)}) = \int p(z_k|y) p(y|x_k^{(i)}) dy \quad (\text{非高斯观测}) p(zkxk(i))=p(zky)p(yxk(i))dy(非高斯观测)
  • 代价:计算复杂度提升
(2)贝叶斯 PMHT(BPMHT)

引入目标数的先验分布(如泊松分布),通过边缘化目标数实现贝叶斯推理:

p ( N ∣ Z 1 : K ) = p ( Z 1 : K ∣ N ) p ( N ) p ( Z 1 : K ) p(N|Z_{1:K}) = \frac{p(Z_{1:K}|N) p(N)}{p(Z_{1:K})} p(NZ1:K)=p(Z1:K)p(Z1:KN)p(N)

支持完全未知目标数场景。

2. 工程化挑战

(1)初始化敏感性
  • 问题:初始目标数和状态误差会导致关联概率发散(如误将杂波初始化为目标)。
  • 解决方案:结合检测置信度筛选初始观测(如仅使用置信度 > 0.9 的检测框),或通过密度聚类(如 DBSCAN)生成初始目标。
(2)计算复杂度优化
  • 稀疏化:仅保留 γ k , m , i > ϵ \gamma_{k,m,i} > \epsilon γk,m,i>ϵ(如 0.1)的关联对,减少无效计算;
  • 近似 EM:固定迭代次数(如 I = 3 I=3 I=3),用启发式方法提前终止(如关联概率变化 < 1%)。

七、总结

PMHT 通过EM 框架下的概率软关联,在多目标跟踪中实现了三大突破:

  1. 跨帧鲁棒性:利用多帧观测迭代优化,比 JPDA 更抗遮挡和漏检;
  2. 效率优势:隐式处理关联假设,复杂度随目标数线性增长,适合实时系统;
  3. 模型兼容性:支持线性 / 非线性系统,易与卡尔曼滤波、粒子滤波结合。

其核心公式 —— 关联概率 γ k , m , i \gamma_{k,m,i} γk,m,i和状态更新 x ^ k ( i ) \hat{x}_k^{(i)} x^k(i)—— 构成了从观测到目标状态的概率映射桥梁。未来研究需聚焦动态目标数自适应低计算成本的非线性建模与深度学习的深度融合(如用神经网络近似 EM 迭代),推动 PMHT 在复杂场景下的规模化应用。

相关文章:

概率多假设跟踪(PMHT):多目标跟踪中的概率软关联与高效跟踪算法解析

一、PMHT 的起源与核心定位 &#xff08;一&#xff09;背景 在多目标跟踪中&#xff0c;传统算法面临以下瓶颈&#xff1a; JPDA&#xff1a;单帧局部最优关联&#xff0c;无法处理跨帧长时间断联&#xff0c;且假设目标数固定&#xff08;如雷达跟踪中预设目标数范围&…...

4.信号和槽|存在意义|信号和槽的连接方式|信号和槽断开|lambda表达式|信号和槽优缺点(C++)

信号和槽存在意义 所谓的信号槽&#xff0c;终究要解决的问题&#xff0c;就是响应用户的操作 信号槽&#xff0c;其实在GUI开发的各种框架中&#xff0c;是一个比较有特色的存在 其他的GUI开发框架&#xff0c;搞的方式都要更简洁一些&#xff5e;~ 网页开发 (js dom api) 网…...

电脑 BIOS 操作指南(Computer BIOS Operation Guide)

电脑 BIOS 操作指南 电脑的BIOS界面&#xff08;应为“BIOS”&#xff09;是一个固件界面&#xff0c;允许用户配置电脑的硬件设置。 进入BIOS后&#xff0c;你可以进行多种设置&#xff0c;具体包括&#xff1a; 1.启动配置 启动顺序&#xff1a;设置从哪个设备启动&#x…...

Scrapeless Scraping Browser: A high-concurrency automation solution for AI

介绍&#xff1a;升级无缝抓取浏览器的并发能力 作为 Scrapeless 的开发者和创始团队&#xff0c;我们对人工智能自动化的未来充满真诚的热情。我们的使命是创建一个真正为 AI 设计的自动化浏览器。在过去的几年中&#xff0c;从 Browserless.io 到众多云服务供应商推出的“浏…...

Java项目—— 拼图小游戏(进阶版)

项目需求 在拼图小游戏基础版的基础上&#xff0c;完成下列要求&#xff1a; 一、实现更换拼图图片功能 1&#xff0c;给美女&#xff0c;动物&#xff0c;运动菜单按钮添加单击事件&#xff08;动作监听&#xff09; 2&#xff0c;当我们点击了美女之后&#xff0c;就会从13…...

解析:深度优先搜索、广度优先搜索和回溯搜索

一、深度优先搜索&#xff08;DFS&#xff09; 1. 原理 思想&#xff1a;从起始节点出发&#xff0c;顺着一条路径不断深入&#xff0c;直到到达目标或无路可走&#xff0c;然后回溯到最近的分支点&#xff0c;继续探索其他分支。 应用场景&#xff1a;路径查找、连通性检测、…...

探索大语言模型(LLM):循环神经网络的深度解析与实战(RNN、LSTM 与 GRU)

一、循环神经网络&#xff08;RNN&#xff09; 1.1 基本原理 循环神经网络之所以得名&#xff0c;是因为它在处理序列数据时&#xff0c;隐藏层的节点之间存在循环连接。这意味着网络能够记住之前时间步的信息&#xff0c;并利用这些信息来处理当前的输入。 想象一下&#xf…...

从零开始开发 MCP Server

作者&#xff1a;张星宇 在大型语言模型&#xff08;LLM&#xff09;生态快速演进的今天&#xff0c;Model Context Protocol&#xff08;MCP&#xff09;作为连接 AI 能力与真实世界的标准化协议&#xff0c;正逐步成为智能体开发的事实标准。该协议通过定义 Resources&#…...

Oracle日志系统之重做日志和归档日志

Oracle日志系统之重做日志和归档日志 重做日志归档日志 本文讨论Oracle日志系统中对数据恢复非常重要的两个日志&#xff1a;重做日志和归档日志。 重做日志 重做日志&#xff0c;英文名Redo Log&#xff0c;顾名思义&#xff0c;是用来数据重做的&#xff0c;主要使用场景是事…...

嵌入式开发--STM32G4系列硬件CRC支持MODBUS和CRC32

需求 在项目中&#xff0c;需要用到MODBUS CRC16校验&#xff0c;也要用到CRC32的校验&#xff0c;出于效率的考虑&#xff0c;准备用硬件CRC。 CRC 16的参数模型有很多种&#xff0c;我这里用的是MODBUS&#xff0c;对于不同的参数模型&#xff0c;会有不同的参数设置和初值&a…...

基于尚硅谷FreeRTOS视频笔记——4—多任务处理

目录 多任务处理 任务调度 任务的调度策略 优先级不同 优先级相同 多任务处理 通俗来讲就是 能够在同一时间 同时 进行多个任务的处理&#xff0c;这就时多任务处理。 但是&#xff0c;单核处理器一次只能处理一个任务&#xff0c;就是说在while中&#xff0c;任务们只能…...

中小型及初创企业如何实现数字化转型?

在当今动态的商业环境中&#xff0c;财务团队开始肩负起推动企业数字化转型的重任&#xff0c;即从传统的财务规划系统稳步迈向基于商业智能平台和以创新技术为驱动的解决方案领域。这些举措有望提高运营和分析效率&#xff0c;同时依托数据驱动的决策机制&#xff0c;帮助企业…...

java输出、输入语句

先创建一个用于测试的java 编写程序 #java.util使java标准库的一个包&#xff0c;这里拉取Scanner类 import java.util.Scanner;public class VariableTest {public static void main(String[] args) {#创建一个 Scanner 对象Scanner scanner new Scanner(System.in);System.…...

Python基础知识语法归纳总结(数据类型-1)

Python基础知识&语法归纳总结&#xff08;数据类型&#xff09; 一、Python基本数据类型 尤其注意&#xff0c;Python中的变量不需要特定的去声明&#xff0c;每个变量在使用前都必须对其进行赋值&#xff0c;它没有类型&#xff0c;我们所说的“类型”是变量所指的内存中对…...

Spring数据访问全解析:ORM整合与JDBC高效实践

目录 一、Spring ORM集成深度剖析 &#x1f31f; ORM模块架构设计 核心集成特性&#xff1a; 整合MyBatis示例配置&#xff1a; 二、Spring JDBC高效实践指南 &#x1f31f; 传统JDBC vs Spring JDBC对比 &#x1f31f; JdbcTemplate核心操作示例 批量操作优化&#xf…...

哪种电脑更稳定?Mac?Windows?还是云电脑? 实测解密

随着科技的发展进步&#xff0c;电脑已成为当下各类群体的必备产品之一&#xff0c;它的妙用有很多&#xff0c;无论是学生党、打工人还是已经退休的人群或都离不开它的存在。然而&#xff0c;电脑虽好却也差异很大、不同品牌、不同系统、不同配置、不同价位的统统都会有区别。…...

【AI模型学习】关于写论文——论文的审美

文章目录 一、“补丁法”&#xff08;Patching&#xff09;1.1 介绍1.2 方法论1.3 实例 二、判断工作的价值2.1 介绍2.2 详细思路2.3 科研性vs工程性 三、novelty以及误区3.1 介绍3.2 举例 看了李沐老师的读论文系列后&#xff0c;总结三个老师提到的有关课题研究和论文写作的三…...

【面经】杭州产链数字科技一面

1.介绍一下自己 面试官您好&#xff01;我叫***&#xff0c;目前是就读于****计算机科学与技术专业的一名学生。我平时在学校也自学了编程相关的知识&#xff0c;比如Java基础、Springboot、SpringCloud&#xff0c;关系型数据库Mysql&#xff0c;非关系型数据库Redis&#xff…...

微信小程序调用yolo目标检测模型

目录 后端 前端微信小程序 完整代码 后端 利用Flask&#xff0c;调用目标检测模型&#xff0c;后端代码如下。 # flask_yolo.py from flask import Flask, request, jsonify from ultralytics import YOLO from PIL import Imageapp Flask(__name__) model_path best.p…...

vmware17 虚拟机 ubuntu22.04 桥接模式,虚拟机无法接收组播消息

问题描述&#xff1a; 在一个项目中&#xff0c;宿主机win10中&#xff0c;使用的vmware17pro 虚拟机安装的ubuntu22.04&#xff0c;按照网上的教程使用Qt绑定组播消息&#xff0c;在另外一个Ubuntu工控机上发送用wiresahrk抓包的组播消息 sudo tcpreplay -i enp1s0 --loop0 y…...

Kaggle-Bag of Words Meets Bags of Popcorn-(二分类+NLP+Bert模型)

Bag of Words Meets Bags of Popcorn 题意&#xff1a; 有很多条电影评论记录&#xff0c;问你每一条记录是积极性的评论还是消极性的评论。 数据处理&#xff1a; 1.首先这是文件是zip形式&#xff0c;要先解压&#xff0c;注意sep ‘\t’。 2.加载预训练的 BERT 分词器 …...

数字信号处理技术架构与功能演进

数字信号处理&#xff08;DSP&#xff09;是通过数字运算实现信号分析、变换、滤波及调制解调的技术领域&#xff0c;其发展过程与技术应用如下&#xff1a; 一、定义与核心功能 技术定义&#xff1a;通过算法将模拟信号转换为数字形式进行处理&#xff0c;具有高精度、可编程…...

IaaS架构剖析、场景实践

一、什么是 IaaS 1.1 定义 Infrastructure as a Service&#xff08;IaaS&#xff0c;基础设施即服务&#xff09;是一种按需、弹性提供计算、存储、网络和安全等底层 IT 资源的云服务模式。用户通过 API、CLI 或 Web 控制台即可在几分钟内创建、扩容或释放资源&#xff0c;而…...

国产之光DeepSeek架构理解与应用分析02

本专栏 国产之光DeepSeek架构理解与应用分析-CSDN博客 国产之光DeepSeek架构理解与应用分析02-CSDN博客 前置的一些内容理解 GPU TPU NPU的区别&#xff1f; 设计目的 GPU&#xff1a;最初是为了加速图形渲染而设计的&#xff0c;用于处理图像和视频数据&#xff0c;以提供高…...

EDID结构

EDID DDC通讯中传输显示设备数据 VGA , DVI 的EDID由128字节组成&#xff0c;hdmi的EDID增加扩展块128字节。扩展快的内容主要是和音频属性相关的&#xff0c;DVI和vga没有音频&#xff0c;hdmi自带音频&#xff0c;扩展快数据规范按照cea-861x标准。 Edid为了让pc或其他的图像…...

4.黑马学习笔记-SpringMVC(P43-P47)

1.SpringMVC简介 SpringMVC技术&#xff08;更少的代码&#xff0c;简便&#xff09;与servlet技术功能相同&#xff0c;属于web层开发技术。 SpringMVC是一种基于java实现MVC模型的轻量级web框架。 轻量级指的是&#xff08;内存占用比较低&#xff0c;运行效率高&#xff09;…...

CSS 文件格式

A QFrame#andrFrm[status"android_en"] A&#xff1a;表示父类或顶层窗口的类型。如果 A 是一个自定义的类名&#xff0c;确保该类已经正确注册到 Qt 系统中。QFrame&#xff1a;表示具体的控件类型。#andrFrm&#xff1a;表示控件的对象名称&#xff08;通过 setOb…...

java输出HelloWorld

创建一个java格式文件&#xff0c;这里命令为HelloWorld 这里我选择用notepad编译&#xff0c;也可以直接用记事本 #public 访问修饰词&#xff0c;表示这个类可以被其他任何类访问 #class 定义类的关键字 #HelloWorld 类名&#xff0c;遵循驼峰命名法&#xff08;首字母大写…...

【SAP ME 44】在 HANA DB中报废SFC时的SHOP_ORDER表记录锁定

症状 SELECT…FROM SHOP_ORDER FOR UPDATE 在 SFC 报废期间持有锁,当同时调用数量较大时,可能会导致 HANA 数据库出现大量锁积压。这有时会导致因等待 HANA 数据库释放“选择更新”锁而导致报废 SFC 花费数分钟。 HANA 数据库日志中的示例: # begin PreparedStatement_ex…...

《软件设计师》复习笔记(12.1)——范围管理、进度管理

目录 一、范围管理 1. 核心概念 2. 范围管理过程 WBS&#xff08;工作分解结构&#xff09;示例 真题示例&#xff1a; 二、进度管理 1. 核心过程 2. 关键工具与技术 真题示例&#xff1a; 一、范围管理 1. 核心概念 项目范围&#xff1a;为交付产品必须完成的工作…...

Git-使用教程(新手向)

一、基本概念&#xff1a; 1.Git&#xff0c;Github的关系&#xff1a; Git --- 本地用于管理代码的工具&#xff0c;可类比为游戏存档。&#xff08;存档&#xff0c;仓库&#xff0c;项目在Git中是一个东西&#xff09; Github --- 远程仓库平台&#xff0c;可类比为云端。…...

密码学中的盐值是什么?

目录 1. 盐值的基本概念 2. 盐值的作用 (1) 防止彩虹表攻击 (2) 防止相同的密码生成相同的哈希值 (3) 增加暴力破解的难度 3. 如何使用盐值&#xff1f; (1) 生成盐值 (2) 将盐值附加到密码 (3) 存储盐值和哈希值 (4) 验证密码 4. 盐值如何增加暴力破解的难度 在线暴…...

[工具]Java xml 转 Json

[工具]Java xml 转 Json 依赖 <!-- https://mvnrepository.com/artifact/cn.hutool/hutool-all --> <dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.8.37</version> </dependen…...

安全光幕的CE认证

在工业自动化飞速发展的当下&#xff0c;安全光幕作为保障操作人员安全的关键设备&#xff0c;其重要性不言而喻。对于想要进军欧盟市场的安全光幕制造商来说&#xff0c;CE 认证是必须跨越的一道关卡。今天&#xff0c;我们就来深入探讨安全光幕的 CE 认证流程。 什么是安全…...

DNS解析失败怎么解决?

在互联网时代&#xff0c;畅快地浏览网页、使用各类网络服务已成为生活常态。然而&#xff0c;当屏幕突然弹出 “DNS解析失败”的提示&#xff0c;原本顺畅的网络连接戛然而止&#xff0c;让人倍感困扰。DNS即域名系统&#xff0c;它如同互联网的 “电话簿”&#xff0c;负责将…...

亚马逊商品详情API数据接口概述,Amazon API

亚马逊商品详情API数据接口概述 亚马逊商品详情API&#xff08;如Amazon Product Advertising API或Selling Partner API (SP-API)&#xff09;是亚马逊为开发者提供的官方接口&#xff0c;允许通过编程方式获取商品的详细信息&#xff0c;包括商品标题、价格、描述、图片、用…...

TCP/IP和UDP协议的发展历程

TCP/IP和UDP协议的发展历程 引言 互联网的发展史是人类技术创新的辉煌篇章&#xff0c;而在这一发展过程中&#xff0c;通信协议发挥了奠基性的作用。TCP/IP&#xff08;传输控制协议/互联网协议&#xff09;和UDP&#xff08;用户数据报协议&#xff09;作为互联网通信的基础…...

LeetCode 259 题全解析:Swift 快速找出“满足条件”的三人组

文章目录 摘要描述示例 1&#xff1a;示例 2&#xff1a;示例 3&#xff1a; 题解答案&#xff08;Swift&#xff09;题解代码分析示例测试及结果时间复杂度空间复杂度总结 摘要 本文围绕 LeetCode 259 题“较小的三数之和”&#xff0c;通过 Swift 给出两种解法&#xff0c;并…...

【MySQL】MySQL表的增删改查(CRUD) —— 上篇

目录 MySQL表的增删改查&#xff08;CRUD&#xff09; 1. 新增&#xff08;Create&#xff09;/插入数据 1.1 单行数据 全列插入 insert into 表名 values(值, 值......); 1.2 单行数据 指定列插入 1.3 多行数据 指定列插入 1.4 关于时间日期&#xff08;datetime&am…...

基于大模型的腹股沟疝诊疗全流程风险预测与方案制定研究报告

目录 一、引言 1.1 研究背景与意义 1.2 国内外研究现状 1.3 研究目的与创新点 二、大模型技术概述 2.1 大模型基本原理 2.2 常用大模型类型及特点 2.3 大模型在医疗领域的应用潜力 三、腹股沟疝诊疗流程分析 3.1 腹股沟疝的发病机制与分类 3.2 传统术前评估方法与局…...

使用nssm将Nginx配置为Windows服务

使用nssm将Nginx配置为Windows服务 下载nssm工具 &#xff1a;使用NSSM创建服务启动并验证服务管理服务&#xff08;启动/停止/重启&#xff09; 下载nssm工具 &#xff1a; nssm下载网址 下载到指定路径下&#xff0c;解压就行。 使用NSSM创建服务 winr打开运行命令框&am…...

(8)VTK C++开发示例 --- 交互式3D部件

文章目录 1. 概述2. CMake链接VTK3. main.cpp文件4. 演示效果 更多精彩内容&#x1f449;内容导航 &#x1f448;&#x1f449;VTK开发 &#x1f448; 1. 概述 这个例子介绍了3D小部件&#xff08;vtkBoxWidget&#xff09;。3D小部件利用了前面介绍的事件/观察者设计模式。它们…...

ReAct、CoT 和 ToT:大模型提示词推理架构的对比分析

ReAct、CoT 和 ToT&#xff1a;大模型提示词推理架构的对比分析 在大型语言模型&#xff08;LLM&#xff09;的研究与应用中&#xff0c;如何有效提升模型在复杂任务上的推理能力是关键问题之一。目前&#xff0c;ReAct&#xff08;Reasoning and Acting&#xff09;、CoT&…...

Evidential Deep Learning和证据理论教材的区别(主要是概念)

最近终于彻底搞懂了Evidential Deep Learning&#xff0c;之前有很多看不是特别明白的地方&#xff0c;原来是和证据理论教材&#xff08;是的&#xff0c;不只是国内老师写的&#xff0c;和国外的老师写的教材出入也比较大&#xff09;的说法有很多不一样&#xff0c;所以特地…...

golang context源码

解析 context结构 Deadline&#xff1a;返回 context 的过期时间&#xff1b; Done&#xff1a;返回 context 中的 channel&#xff1b; Err&#xff1a;返回错误&#xff1b; Value&#xff1a;返回 context 中的对应 key 的值. type Context interface {Deadline() (deadl…...

VSCODE插值表达式失效问题

GET https://cdn.jsdelivr.net/npm/vue2.6.14/dist/vue.js net::ERR_CONNECTION_-CSDN博客 更换正确的vue域名 GET https://cdn.jsdelivr.net/npm/vue2.6.14/dist/vue.js net::ERR_CONNECTION_ <script src"https://unpkg.com/vue2.6.14/dist/vue.js"></sc…...

6.VTK 颜色

文章目录 概念RGB示例HSV示例 概念 RGB颜色系统&#xff1a;通过红(R)、绿(G)、蓝(B)三个颜色分量的组合来定义颜色。每个分量的取值范围是0到1&#xff0c;其中(0, 0, 0)代表黑色&#xff0c;而(1, 1, 1)代表白色。可以使用vtkProperty::SetColor(r, g, b)方法为Actor设置颜色…...

MQTTClient.c的线程模型与异步事件驱动

MQTTClient.c的线程模型与异步事件驱动 1. 多线程架构设计 MQTTClient.c通过分离网络I/O和用户逻辑线程实现异步通信&#xff0c;核心设计如下&#xff1a; sequenceDiagramparticipant 主线程 as 主线程&#xff08;用户调用&#xff09;participant 发送队列 as 发送队列pa…...

Flutter异常Couldn‘t find dynamic library in default locations

Flutter项目在Windows系统使用ffigen生成代码时报下面的错误&#xff1a; [SEVERE] : Couldnt find dynamic library in default locations. [SEVERE] : Please supply one or more path/to/llvm in ffigens config under the key llvm-path. Unhandled exception: Exception: …...

在PyCharm中部署AI模型的完整指南

引言 随着人工智能技术的快速发展,越来越多的开发者开始将AI模型集成到他们的应用程序中。PyCharm作为一款强大的Python IDE,为AI开发提供了出色的支持。本文将详细介绍如何在PyCharm中部署AI模型,从环境配置到最终部署的完整流程。 第一部分:准备工作 1. 安装PyCharm …...