From b0ea4794939300211ee6e3250a7eacc418e1a2b1 Mon Sep 17 00:00:00 2001 From: 16337 <1633794139@qq.com> Date: Fri, 13 Feb 2026 17:15:10 +0800 Subject: [PATCH] =?UTF-8?q?feat(aiot):=20=E6=B7=BB=E5=8A=A0=E7=AE=97?= =?UTF-8?q?=E6=B3=95=E6=8A=BD=E5=B8=A7=E9=A2=91=E7=8E=87=E9=80=89=E6=8B=A9?= =?UTF-8?q?=E5=99=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 功能特性: - 新增抽帧频率参数映射和选择器 - 7个预设选项:10帧/秒到1帧/30秒 - 每个选项带有场景说明和适用描述 - 美观的下拉选择界面,清晰展示频率和用途 抽帧频率选项(物业场景优化): 1. 10帧/秒 - 高频检测,快速移动场景 2. 5帧/秒 - 中高频,正常人员活动 3. 3帧/秒 - 中频,人员离岗、聚集(离岗推荐) 4. 1帧/秒 - 标准频率,周界入侵(入侵推荐) 5. 1帧/3秒 - 低频,慢速场景 6. 1帧/10秒 - 极低频,车辆检测 7. 1帧/30秒 - 超低频,垃圾堆放等静态检测 界面优化: - 下拉选项采用双行显示(频率+说明) - 参数说明提示算法处理频率的影响 - 自动显示默认值对应的频率标签 Co-Authored-By: Claude Opus 4.6 --- .../roi/components/AlgorithmParamEditor.vue | 47 +++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/apps/web-antd/src/views/aiot/device/roi/components/AlgorithmParamEditor.vue b/apps/web-antd/src/views/aiot/device/roi/components/AlgorithmParamEditor.vue index eeea6e9a7..702172dfc 100644 --- a/apps/web-antd/src/views/aiot/device/roi/components/AlgorithmParamEditor.vue +++ b/apps/web-antd/src/views/aiot/device/roi/components/AlgorithmParamEditor.vue @@ -44,6 +44,7 @@ const newListItem = ref(''); // 参数名中英文映射 const paramNameMap: Record = { leave_countdown_sec: '离岗倒计时(秒)', + frame_rate: '抽帧频率', working_hours: '工作时间段', // 其他算法参数 cooldown_seconds: '告警冷却期(秒)', @@ -58,12 +59,24 @@ const paramNameMap: Record = { // 参数说明映射 const paramDescMap: Record = { leave_countdown_sec: '人员离开后,倒计时多少秒才触发离岗告警', + frame_rate: '算法处理视频流的频率,频率越高检测越及时但消耗越大', working_hours: '仅在指定时间段内进行监控,留空表示24小时监控', // 其他算法参数说明 cooldown_seconds: '触发告警后,多少秒内不再重复告警(用于周界入侵等算法)', confirm_seconds: '检测到目标后,持续多少秒才触发告警(避免瞬间误报)', }; +// 抽帧频率选项(物业场景优化) +const frameRateOptions = [ + { value: 10.0, label: '10帧/秒', desc: '高频检测 - 快速移动场景' }, + { value: 5.0, label: '5帧/秒', desc: '中高频 - 正常人员活动' }, + { value: 3.0, label: '3帧/秒', desc: '中频 - 人员离岗、聚集(推荐)' }, + { value: 1.0, label: '1帧/秒', desc: '标准频率 - 周界入侵(推荐)' }, + { value: 0.33, label: '1帧/3秒', desc: '低频 - 慢速场景' }, + { value: 0.1, label: '1帧/10秒', desc: '极低频 - 车辆检测' }, + { value: 0.03, label: '1帧/30秒', desc: '超低频 - 垃圾堆放等静态检测' }, +]; + // 获取参数的中文名称 function getParamLabel(key: string): string { return paramNameMap[key] || key; @@ -129,6 +142,17 @@ function isWorkingHoursField(key: string): boolean { return key === 'working_hours'; } +// 判断是否为抽帧频率字段 +function isFrameRateField(key: string): boolean { + return key === 'frame_rate'; +} + +// 获取抽帧频率显示文本 +function getFrameRateLabel(value: number): string { + const option = frameRateOptions.find(opt => Math.abs(opt.value - value) < 0.01); + return option ? option.label : `${value}帧/秒`; +} + async function handleSave() { try { console.log('[算法参数保存] 开始保存,原始数据:', formData.value); @@ -273,6 +297,29 @@ function validateParams(params: Record): { + + +