一种面向资源受限嵌入式平台视觉检测的闭环ROI调度方法
本发明属于嵌入式视觉处理与目标检测,具体涉及一种面向资源受限嵌入式平台视觉检测的闭环roi调度方法。
背景技术:
1、随着嵌入式视觉处理技术迅速发展,颜色识别、标记识别、轻量级ai检测等视觉任务已广泛应用于机器人控制、教育平台以及工业巡检。上述场景通常要求系统在资源受限的硬件平台上完成实时检测与结果输出,因此对处理时延、cpu占用率、运行稳定性、检测质量均提出了较高要求。
2、在实际应用中,嵌入式视觉系统虽然通常在同一时刻只执行单个检测任务,但由于处理器算力、存储带宽及片上缓存资源有限,若直接对每一帧图像进行全帧高频检测,容易造成cpu占用率升高、端到端时延增加、单帧处理时间变长,从而影响系统的实时响应能力。特别是在目标位置变化较小或场景长时间稳定时,持续执行全帧检测会带来大量重复计算,造成不必要的资源消耗。
3、为降低计算开销,现有的一种策略是,先通过低成本检测确定候选区域,再在局部区域执行高精度检测。例如,faster r-cnn是一种典型的两阶段目标检测方法,该方法通过区域建议网络 rpn 生成候选区域,再由后续检测网络对候选区域进行分类和位置回归,从而减少传统候选区域生成过程带来的计算开销。
4、但是,上述方法主要从目标检测网络结构角度生成候选区域,其检测流程通常按照固定模型结构和固定推理流程执行,并未针对资源受限嵌入式平台运行过程中的端到端时延、cpu 占用率、roi 命中率、检测有效率以及回退触发情况建立闭环反馈调节机制;也未根据目标稳定程度和候选区域可靠性动态切换跳过粗检、局部粗检和全帧粗检等不同检测模式。因此,在资源受限平台上,当目标位置长时间稳定、系统负载波动或 roi 预测失效时,仍难以同时兼顾实时性、检测质量和资源利用效率。
5、因此,迫切需要一种适用于资源受限嵌入式平台的视觉检测方法,能够结合系统运行指标、目标稳定程度和候选区域可靠性进行闭环 roi 调度,在保证检测质量的同时降低重复计算和资源消耗。
技术实现思路
1、本发明提供一种面向资源受限嵌入式平台视觉检测的闭环roi调度方法,通过稀疏采样快速定位候选区域,结合roi追踪与分层精检策略,并引入指标反馈与动态调度机制,在端到端延迟、cpu占用等端侧约束条件下保持检测质量与实时性,从而提升多类视觉任务在嵌入式平台上的稳定运行能力。
2、为了实现上述目的,本发明采用的技术方案是:
3、一种面向资源受限嵌入式平台视觉检测的闭环 roi 调度方法,包括以下步骤:
4、步骤1,输入帧获取:
5、获取摄像头采集的包含待检测目标的目标场景图像或视频,将所述图像或视频中的图像帧作为待处理数据;
6、步骤2,指标读取与闭环控制更新:
7、读取上一调度周期的运行指标,所述上一调度周期为当前帧处理之前已经完成的统计周期;当所述资源受限嵌入式视觉检测系统逐帧更新时,上一调度周期对应上一帧,当所述资源受限嵌入式视觉检测系统采用窗口统计时,上一调度周期对应前k帧统计窗口;
8、所述运行指标至少包括上一调度周期的端到端时延、cpu占用率、roi命中率、检测有效率以及回退触发统计。
9、根据上述运行指标以及预设的时延阈值、cpu占用率阈值和检测质量约束,对当前帧的调度控制量进行更新;
10、所述调度控制量包括粗检步长、粗检间隔、精检间隔、roi保持帧数、roi扩边参数以及全局校准间隔;获取roi 状态缓存。
11、当 roi 状态缓存为空或当前帧为首帧时,将当前 roi 状态标记为无效,并在步骤3中选择粗检模式;
12、否则,根据上一帧 roi 的位置与尺寸预测当前帧 roi 的位置与尺寸,得到当前帧的预测 roi;当所述预测 roi 满足图像边界约束和最小面积约束时,将其确定为有效预测 roi;并结合上一帧检测置信度、追踪一致性、命中统计以及连续丢失计数,计算当前帧的先验 roi 可靠度;
13、步骤3,复用判定:
14、判定当前帧是否复用上一帧检测结果;
15、若不复用,进入粗检模式选择流程;根据当前帧的先验 roi 可靠度、连续丢失计数以及距上次全局校准的间隔帧数,选择当前帧的粗检模式,所述粗检模式包括跳过粗检模式、局部粗检模式和全帧粗检模式。
16、步骤4,候选 roi 生成:
17、按选择的粗检模式生成候选 roi 集合;当选择跳过粗检模式时,将得到的有效预测 roi作为候选 roi;当选择局部粗检模式或全帧粗检模式时,执行稀疏采样或分辨率分层粗检,并生成候选 roi 集合;
18、其中,稀疏采样粗检用于通过增大采样步长降低扫描密度,分辨率分层粗检用于通过降低输入图像分辨率快速获得候选区域,系统根据当前 cpu 占用率、端到端时延和目标尺度变化情况选择其中一种或组合使用。
19、步骤5,roi 候选池构建与筛选:
20、对所述候选 roi 集合以及步骤2得到的有效预测 roi 进行合并、排序与预算分配,确定待精检 roi;
21、步骤6,roi有效性检查与分级回退:
22、对待精检 roi 进行几何边界、roi 可靠性以及预算约束检查,获取确认有效的roi,当检查失败时执行分级回退。
23、步骤7,roi裁剪与缓存复用准备:
24、对确认有效的 roi 进行裁剪或建立 roi 视图映射,并采用缓存复用方式构建roi 精检输入数据。
25、步骤8,roi内分层精检:
26、在所述 roi 精检输入数据上执行高精度分层检测,得到当前帧检测结果;
27、并更新 roi 状态缓存、运行指标以及调度状态,进入下一调度周期的闭环 roi调度流程。
28、所述步骤1图像帧获取的具体过程为:
29、通过目标硬件平台对ov2640摄像头进行初始化配置,所述初始化配置至少包括时钟配置、分辨率配置、输出格式配置以及帧缓冲使能配置;在初始化完成后,由ov2640摄像头对目标场景中的待检测目标进行图像采集,获得包含待检测目标的当前帧图像数据,同时记录当前帧的帧序号和采集时间戳,作为后续闭环 roi 调度流程的输入数据。
30、所述步骤2指标读取与闭环控制更新的具体过程为:
31、读取上一调度周期的运行指标向量:
32、
33、并在预设目标与约束下对调度参数进行更新,其优化目标表示为:
34、
35、满足约束条件:
36、
37、式中,为上一调度周期的端到端时延,为上一调度周期的 cpu 占用率,为上一调度周期的 roi 命中率,为上一调度周期的检测有效率,为为上一调度周期的回退触发统计;为时延阈值,为 cpu 占用率阈值,为 roi 命中率阈值,为检测有效率阈值,为回退触发阈值,
α、β、γ、δ、η为权重系数;
38、根据上述目标与约束,更新当前帧的调度控制量:
39、
40、其中,
coarse_stride为当前帧粗检步长、
coarse_interval为粗检间隔、精检间隔
refine_interval为精简间隔、
roi_hold为roi保持帧数、
roi_pad为roi扩边参数,
global_
calib_interval_t为全局校准间隔,
roi_min_hits_t为 roi 进入稳定态所需的最小连续命中次数。
41、所述步骤2具体过程为:
42、步骤2.1:读取上一调度周期更新得到的 roi 状态缓存,所述 roi 状态缓存至少包括上一帧 roi 的位置、尺寸、检测置信度、连续命中统计、连续丢失计数以及上一帧检测结果;
43、当 roi 状态缓存为空或当前帧为首帧时,将当前 roi 状态标记为无效,并在步骤3中选择全帧粗检模式;当 roi 状态缓存有效时,根据上一帧 roi 的位置与尺寸预测当前帧 roi 的位置与尺寸,得到预测 roi,记为;
44、步骤2.2:基于上一帧检测置信度、追踪一致性、连续命中统计以及连续丢失计数,计算当前帧的先验 roi 可靠度,用于后续复用判定以及粗检模式选择;
45、当前帧的先验可靠度表示为:
46、
47、式中,为当前帧的先验 roi 可靠度,为上一帧检测或精检置信度,为追踪一致性指标,为连续命中统计量,为连续丢失计数,为预设权重系数。
48、所述步骤3中,根据计算得到的当前帧先验 roi 可靠度、由上一调度周期更新得到的roi 状态缓存中读取的连续命中统计和连续丢失计数、由上一调度周期更新得到的调度状态中读取的检测结果复用次数,以及由闭环控制更新得到的roi 保持帧数和全局校准间隔,判定当前帧是否复用上一帧检测结果,规则如下:
49、roi 保持帧数用于限定检测结果连续复用的最大帧数;全局校准间隔用于限定系统强制执行局部粗检或全帧粗检的最大间隔;当先验 roi 可靠度高于复用阈值、连续丢失计数小于丢失阈值、检测结果复用次数未超过 roi 保持帧数,且距上次全局校准的间隔帧数未超过全局校准间隔时,复用上一帧检测结果;否则进入粗检模式选择。
50、所述步骤3复用判定的具体过程为:
51、根据先验可靠度、连续命中统计、连续丢失计数、检测结果复用次数,以及步骤2确定的 roi保持帧数和全局校准间隔
global_calib_interval_t,判定当前帧是否复用上一帧检测结果;其判定关系可表示为:
52、
53、式中,为当前帧复用判定结果,为复用阈值,为丢失计数阈值,为距上次全局校准的间隔帧数,为全局校准间隔;
54、当时,表示当前帧不复用上一帧检测结果,进入步骤3执行粗检模式选择;
55、当时,表示当前帧复用上一帧检测结果作为当前帧检测结果,跳过后续候选roi 生成、roi 候选池构建与筛选、roi 有效性检查、roi 裁剪以及 roi 内分层精检步骤,进入步骤8进行输出与状态更新。
56、判定当前帧不复用上一帧检测结果时,根据当前帧先验roi可靠度、连续丢失计数以及距上次全局校准的间隔帧数,选择当前帧的粗检模式,其判别关系表示为:
57、
58、式中,为当前帧粗检模式选择结果,与分别为高可靠度阈值和低可靠度阈值;
59、当时,表示当前帧先验 roi 可靠度较高且目标状态稳定,选择跳过粗检模式,将步骤3得到的有效预测 roi 作为候选 roi,进入步骤5;
60、当时,表示当前帧先验 roi 可靠度处于中等范围,选择局部粗检模式,在预测 roi 周围的局部区域内执行粗检,并进入步骤4生成候选 roi 集合;
61、当时,表示当前帧先验 roi 可靠度较低、目标连续丢失或达到全局校准条件,选择全帧粗检模式,在当前帧全图范围内执行粗检,并进入步骤4生成候选 roi 集合。
62、所述步骤4候选 roi 生成的具体过程为:
63、当步骤3选择跳过粗检模式时,不执行粗检计算,将得到的有效预测 roi 作为候选 roi,并加入当前帧候选 roi 集合;
64、当步骤3选择局部粗检模式时,以得到的有效预测 roi 为中心,根据 roi 扩边参数
roi_pad构建局部搜索区域,并在所述局部搜索区域内按照粗检步长
coarse_stride或分辨率分层方式执行快速检测,生成候选 roi 集合;
65、当步骤3选择全帧粗检模式时,在当前帧全图范围内按照粗检步长
coarse_stride或分辨率分层方式执行快速检测,生成候选 roi 集合;所述候选 roi 集合记为,并为每个候选 roi 记录粗检置信度、候选面积以及位置参数。
66、所述步骤5 roi 候选池构建与筛选的具体过程为:
67、步骤5.1: 以步骤4生成的候选 roi 集合为基础构建候选池;当步骤3存在有效预测 roi 且该有效预测 roi 尚未包含于步骤4生成的候选 roi 集合中时,将所述有效预测roi 合并至候选池,并对候选池中的 roi 执行重叠合并、去重与排序;
68、步骤5.2:对于候选池中的每个候选 roi,其综合得分表示为:
69、
70、式中,为第个候选 roi 的综合得分,为候选roi 与有效预测 roi的一致性度量,为面积惩罚项,为丢失惩罚项,为权重系数;当候选 roi 来源于有效预测 roi且未执行粗检时,可由上一帧检测置信度或当前帧先验 roi 可靠度替代。
71、在精检预算约束下,选取得分最高或得分满足预设阈值的候选 roi,作为待精检roi。
72、所述步骤6 roi有效性检查与分级回退的具体过程为:
73、步骤6.1:对步骤5确定的待精检进行有效性检查,所述有效性检查包括 roi几何边界检查、roi 可靠性检查以及预算约束检查,其有效性判定关系可表示为:
74、
75、式中,为待精检roi的有效性判定结果,为待精检roi面积,与分别为roi最小面积阈值和最大面积阈值,为当前帧图像边界区域,为待精检roi的综合得分,为有效性阈值,为指示函数;
76、步骤6.2:当时,将确认为有效 roi,并进入步骤7;当时,触发分级回退,其回退等级表示为:
77、
78、式中,为当前帧回退等级,为轻度纠偏回退,为局部重扫回退,为全帧重捕获回退,为低可靠性失败阈值,且<;
79、当=时,增大 roi 扩边参数
roi_pad或调整roi几何边界后重新进行有效性检查;
80、当=时,扩大局部粗检区域,并回到步骤4执行局部粗检和候选 roi 生成;
81、当=时,强制切换为全帧粗检模式,并回到步骤3重新进行粗检模式选择。
82、所述步骤7 roi裁剪与缓存复用准备的具体过程为:
83、步骤7.1:对步骤6确认有效的 roi 在当前帧图像上进行裁剪,或者建立对应的roi 视图映射,得到 roi 图像块或 roi 映射区域;
84、步骤7.2:为减少频繁内存申请与拷贝开销,采用缓存复用方式构建 roi 精检输入数据,所述缓存复用方式至少包括预分配缓存、双缓冲、循环复用或零拷贝映射操作中的一种或多种。
85、所述步骤8roi内分层精检的具体过程为:
86、在步骤7构建的 roi 精检输入数据上执行分层精检,仅在确认有效的 roi 区域内执行高精度检测,得到当前帧检测结果;根据所述当前帧检测结果更新连续命中统计和连续丢失计数。
87、所述步骤8输出与状态更新的具体过程为:
88、输出当前帧检测结果,并更新运行指标、roi 状态缓存以及调度状态;
89、所述运行指标至少包括端到端时延、单帧处理时长、cpu 占用率、roi 命中率、检测有效率、回退触发统计以及复用触发统计中的一项或多项;
90、所述 roi 状态缓存至少包括当前帧 roi 的位置、尺寸、检测置信度、连续命中统计、连续丢失计数以及当前帧检测结果;
91、所述调度状态至少包括检测结果复用次数、距上次全局校准的间隔帧数以及当前帧回退等级。更新后的运行指标作为下一调度周期步骤2中闭环控制更新的反馈依据,更新后的 roi 状态缓存作为下一调度周期步骤2中预测式 roi 追踪与先验 roi 可靠度计算的输入依据,从而形成跨调度周期的闭环 roi 调度过程。
92、本发明的有益效果:
93、1、本发明提出了一种面向嵌入式单任务视觉检测的闭环 roi 调度方法,以端到端时延、cpu 占用率、roi 命中率、检测有效率以及回退触发统计等运行指标作为反馈量,对粗检步长、粗检间隔、精检间隔、roi 保持帧数、roi 扩边参数以及全局校准间隔等调度控制量进行动态调节,使检测过程由固定参数驱动转变为基于运行状态反馈和资源约束的闭环控制。相较于现有依赖经验调参或固定检测频率的方案,本发明能够在满足端侧资源约束的前提下兼顾检测质量与实时性。
94、2、本发明通过预测式 roi 追踪、先验 roi 可靠度计算、复用判定以及粗检模式选择,提高了单任务串行检测流程的时序利用效率。系统能够根据上一调度周期更新得到的 roi 状态缓存,预测当前帧 roi 并计算先验 roi 可靠度;当目标状态稳定且满足复用条件时,可直接复用上一帧检测结果并进入输出与状态更新;当不满足复用条件但预测roi 仍较可靠时,可选择跳过粗检模式,将有效预测 roi 作为候选 roi;当目标状态不稳定、连续丢失或达到全局校准条件时,则自动切换为局部粗检或全帧粗检。由此减少不必要的全帧高频检测开销,降低端到端时延及其波动,提升嵌入式平台上的实时处理能力。
95、3、本发明通过 roi 有效性检查与分级回退机制,提高了 roi 调度过程的可靠性。对待精检 roi 进行几何边界、roi 可靠性以及预算约束检查,当 roi 轻微偏移时执行轻度纠偏回退,当局部候选区域不可靠时执行局部重扫回退,当 roi 状态失效或可靠性过低时执行全帧重捕获回退,从而避免系统长时间依赖失效 roi,保证检测结果的稳定性。
96、4、本发明通过 roi 裁剪与缓存复用配合 roi 内分层精检,降低了内存拷贝与带宽压力,提高了资源受限平台上的部署效率。本发明仅在确认有效的 roi 区域内执行高精度分层检测,并采用预分配缓存、双缓冲、循环复用或零拷贝映射等方式构建 roi 精检输入数据,避免了全帧高频精检以及频繁内存申请、释放和大规模数据搬运带来的性能损耗,能够有效降低系统运行抖动,提高在 mcu、轻量 soc 及其他边缘嵌入式平台上的长时间稳定运行能力。
版权声明:本站专利文献数据主要来源于国家知识产权局等公开渠道,由 技术新讯 进行整理汇编。页面设计及数据汇编的著作权归本站所有。全部内容仅供个人学习、科研评估与技术交流参考,严禁用于任何商业用途(包括但不限于直接生产制造、技术转让、倒卖数据等)。
免责条款:专利技术具有时效性,本站不对资料的绝对准确性、完整性和可实施性提供任何明示或暗示的担保。因参考本站内容造成的直接或间接损失,本站不承担相关法律责任。若您认为本站内容有侵权问题,请及时提供权属证明与我们联系,本站将在核实后依法处理。反馈意见:yyfuon@163.com