借助运动过滤条件模型,您可以将较长的视频片段剪辑成包含动作事件的较小片段,从而缩短计算时间。借助此模型,您可以设置运动灵敏度、最短事件时长、回溯期和冷却期,以根据您的使用情形调整运动事件的输出。
模型参数
运动过滤器模型有 4 个控制参数,用于调整事件片段以及模型返回这些片段的方式。
| 参数 | 说明 | 标志 | 默认值 | 可用的值 |
|---|---|---|---|---|
| 事件录制时长下限 | 在动作事件结束后,捕获动作事件的最短时长(以秒为单位)。 | --min-event-length INT |
10(秒) | 1 - 3600 |
| 移动侦测灵敏度 | 模型动作事件过滤的灵敏度。高灵敏度 对运动的响应更灵敏,并提供更严格的运动过滤,从而检测到更多运动。 | --motion-sensitivity STRING |
"medium" |
"high"、"medium" 或 "low" |
| 回溯期 | 服务在检测到动作事件之前捕获的视频内容时长(以秒为单位)。 | --lookback-length INT |
3(秒) | 0 - 300 |
| 冷却期 | 动作事件结束后,系统会进入指定时长的冷却期。在冷却期内,模型不会注册运动事件。 | --cooldown-length INT |
300(秒) | 0 - 3600 |
移动感应灵敏度
运行运动滤镜时,运动敏感度在确定模型从视频流中创建多少个片段视频方面发挥着最重要的作用。
移动侦测灵敏度越高,模型检测对噪声和较小动作的灵敏度就越高。 建议在光线稳定的环境中采用此较高灵敏度设置,并拍摄较小的移动物体(例如从远处拍摄的人)。
相反,低灵敏度 对光线干扰和小动作最不敏感。此设置适用于光线干扰较多的情况,例如室外环境。由于此设置是最严格的过滤选项,因此它会忽略小型物体的移动。
事件录制时长下限
最短事件时长是指模型在停止检测到画面中的动作事件后捕获的视频时长。默认值为 10 秒,但您可以指定介于 1 秒到 3,600 秒之间的时间。如果在最短事件时长期间检测到新的动作事件,系统会将新的动作事件添加到当前视频片段中,时长为新检测到的动作事件的时长加上新的最短事件时长倒计时。

例如,假设有一段十字路口的视频,其中有两辆汽车在画面中移动。 第一辆车在前三秒内经过,第二辆车在两秒后经过。如果您将最短事件时长设置为 1 秒,则会有两个包含运动的视频片段。一个视频片段包含第一辆汽车,而另一个片段包含第二辆汽车。不过,如果您将动作事件时长设置为 3 秒,则只会生成一个包含动作的视频片段。第二辆车在第一辆车出现后仅两秒就出现在画面中。
设置最短事件时长时,请考虑视频中通常发生运动事件的频率以及您要保存的视频片段数量。如果运动事件发生得非常频繁,但您希望将大多数运动事件分别保存到不同的视频片段中,请将最短事件时长设置为较短的时间段。如果运动事件不经常发生,但您想将事件分组在一起,请将最短事件时长设置为较长时间,以便在同一视频片段中捕获多个事件。
回溯期
回溯期是指检测到动作事件之前的一段时间。如果您想了解在模型检测到动作事件之前的几秒内发生了什么,此窗口会很有用。回溯窗口的默认值为 3 秒,但您可以指定介于 0 到 300 秒之间的值。
您可以使用回溯期来查看移动对象的来源。您还可以使用回溯窗口来查看在检测到动作事件前几秒画面中显示的内容。如果画面中存在未被检测为动作事件的小型移动物体,回溯期会很有用。不过,画面中的小型移动物体可能导致了检测到的大型运动事件。
冷却期
冷却期是指在捕获到动作事件和最短事件时长后的一段时间。在冷却期内,检测到的运动不会触发运动过滤条件。此周期的范围介于 0 秒到 3,600 秒之间。默认设置为 300 秒。
设置冷却期的目的是为了帮助用户节省计算费用。如果帧中的移动是预期中的,并且您只对何时发生运动感兴趣,而不关心之后会发生什么,那么冷却期是一个有用的设置。
使用模型
您可以使用 Gemini Enterprise Agent Platform Vision SDK 来使用运动滤镜模型。
使用 vaictl 命令行工具,通过指定 applying encoded-motion-filter 并传入值来设置控制参数,从而启用模型。
Gemini Enterprise Agent Platform Vision SDK
如需使用运动滤镜模型发送请求,您必须安装 Gemini Enterprise Agent Platform Vision SDK。
进行以下变量替换:
- PROJECT_ID:您的 Google Cloud 项目 ID。
- LOCATION_ID:您的位置 ID。例如
us-central1。支持的地区。 了解详情。 - LOCAL_FILE.EXT:本地视频文件的文件名。例如
my-video.mp4。 - STREAM_ID:您在集群中创建的流 ID。
例如
input-stream。 --motion-sensitivity:动作事件过滤的灵敏度。 选项包括high、medium、low。--min-event-length:动作事件的最短持续时间(以秒为单位)。 默认值为10秒。可用的值:1-3600。--lookback-length:在运动事件开始之前回溯期的持续时间(以秒为单位)。默认值为3秒。可用的值:0-300。--cooldown-length:运动事件发生后的冷却时间(以秒为单位)。默认值为300秒(5 分钟)。可用的值:0-3600。--continuous-mode:是否以连续模式发送。默认值为true。- OUTPUT_DIRECTORY:您要保存输出视频片段 MP4 文件的目录。
查看命令信息
使用以下命令可查看有关该命令及其可选参数的更多信息:
vaictl send video-file applying motion-filter -h
使用运动滤镜模型过滤本地文件内容
此命令仅发送模型检测到运动的视频片段。
vaictl -p PROJECT_ID \
-l LOCATION_ID \
-c application-cluster-0 \
--service-endpoint visionai.googleapis.com \
send video-file --file-path LOCAL_FILE.EXT \
applying motion-filter --motion-sensitivity=medium \
--min-event-length=10 --lookback-length=3 --cooldown-length=0 \
to streams STREAM_ID --loop
使用运动滤镜模型过滤本地文件内容并保存输出
此命令使用 --continuous_mode 标志为每个运动片段输出单独的视频文件。
vaictl -p PROJECT_ID \
-l LOCATION_ID \
-c application-cluster-0 \
--service-endpoint visionai.googleapis.com \
send video-file --file-path LOCAL_FILE.EXT --continuous-mode=false \
applying motion-filter --motion-sensitivity=medium \
--min-event-length=10 --lookback-length=3 --cooldown-length=0 \
to mp4file --mp4-file-path=OUTPUT_DIRECTORY
最佳做法
运动滤波器旨在成为一种轻量级模型,以帮助减少传输期间解码编码视频的计算时间。为了让滤镜发挥最佳效果,请将静止相机直接对准感兴趣的对象。避免在画面背景中包含不重要的移动对象。例如,如果帧包含移动的树木、持续的车流或移动物体的阴影等背景物体,系统会检测到这些不重要正文的运动。
将感兴趣的对象放在前景中,并尽可能减少背景中持续移动的对象数量。总结:
- 使用静态照片相机。
- 请务必避免使用不断移动的背景。
- 系统不会检测到细微的动作。
- 确保对象足够大。
室内最佳实践
对于光线稳定且背景移动最少的室内环境,请遵循以下室内最佳实践:
- 提高灵敏度。画面中的物体往往更大,画面中的噪点也更少。
- 使用较短的回溯期和事件时长。室内运动速度较慢,且运动空间有限。
遵循这些室内拍摄实践可让运动滤镜在最短时间内记录物体运动。
户外最佳实践
对于室外环境,室外场景中有更多变量可能会影响滤镜的性能。例如,对于动态滤镜模型,移动的树木在画面中产生的阴影或阳光的变化都属于检测到的运动。请考虑以下情况以及应对这些情况的最佳方式。
情况 1:
假设有一个视频拍摄的是人行道,行人偶尔会从人行道上走过。这些移动可以像休闲散步一样缓慢,也可以像滑板车经过一样快速。请遵循以下指导:
- 将最小窗口长度和回溯期设置为较长的值。运动速度的范围比室内场景大,因此增加最小窗口长度和回溯期可让模型捕获完整的动作事件。
- 将运动检测灵敏度调高。户外环境包含更多自然移动的对象,例如移动的树木和阴影。如需仅关注人、自行车等感兴趣的对象,请将运动敏感度调高,以免持续检测到背景对象。
情境 2:
再设想一个视频,其中重点拍摄的是一条车辆不断驶过、行人偶尔经过的街道。请遵循以下指导:
- 将灵敏度设置为中或低:较低的灵敏度设置可让模型捕获画面中各种大小的移动对象。
- 将回溯期和最短事件时长设置为较短的值。街道上的汽车和其他车辆的行驶速度远快于行人和自行车。为这些参数设置较短的值,是因为运动速度更快,物体快速进入和退出画面。
- 设置较短的冷却时间。由于运动速度更快,下一个对象可能会在第一个对象之后不久进入画面。因此,较短的冷却时间可以解决此问题。
限制
由于运动滤镜在很大程度上取决于每帧中的运动矢量,因此请注意以下几点限制。
- 拍摄角度:使用静态相机,因为动态相机在画面中始终处于运动状态。
- 对象大小:尽量将拍摄对象构图在画面中,使关键对象在画面中显得足够大,以便通过动态滤镜获得最佳效果。
- 光照:光照变化(例如画面中亮度突然变化或出现剧烈的阴影移动)可能会降低模型性能。动态范围较小,导致整个视频的亮度色调相似,从而影响模型对运动的解读,并降低模型性能。
- 摄像头位置:该模型旨在检测画面中的运动。这包括背景移动,例如风吹动树木或画面外的物体产生阴影。如果帧中有很大一部分指向产生这些运动的背景对象,可能会影响模型性能。