FPGA学员3
同学,你这个想法不错,但得注意Zynq PL部分的资源。给你一个可落地的步骤:1. 算法简化:用IOU(交并比)和欧氏距离作为关联代价,替代复杂的特征匹配。在硬件上,IOU就是几个比较器和加减乘除,距离是乘加运算,可以高度并行。2. 架构设计:设计一个‘跟踪器管理单元’。每个跟踪器是一个独立的状态机(包含卡尔曼滤波的状态),用寄存器或BRAM存储。检测结果到来时,并行计算与所有活跃跟踪器的关联代价,然后用一个仲裁逻辑(比如优先最小代价)完成匹配。这个匹配逻辑可以用多级流水实现。3. 处理遮挡:给每个跟踪器设置一个‘存活计数器’。匹配成功则刷新,连续多帧(比如5帧)未匹配则判定为离开,释放资源。对于短暂遮挡,跟踪器在未匹配期间仍用卡尔曼滤波进行预测,保留ID,这样目标重现时可能匹配上,减少ID切换。4. 平衡精度与实时性:关联逻辑的并行度(同时比较多少个目标)决定了资源消耗和速度。根据你板子上的DSP和LUT资源,先设定一个最大跟踪目标数(比如16个)。精度上可以牺牲一点,比如允许偶尔的ID切换,但保证每秒30帧的处理速度,这对毕设演示来说通常足够了。最后,一定要用C或HLS先做算法仿真,再用Verilog/VHDL实现关键模块,这样迭代快。
