Frigate 如何启用语义搜索并重新索引历史跟踪对象? Frigate 如何启用语义搜索并重新索引历史跟踪对象【免费下载链接】frigateNVR with realtime local object detection for IP cameras项目地址: https://gitcode.com/GitHub_Trending/fr/frigateFrigate 的语义搜索Semantic Search允许你用自然语言描述或图像相似度来检索已保存的跟踪对象tracked objects。但有两个前提容易踩坑该功能默认是关闭的而且首次启用后 Frigate 不会自动为已有的历史跟踪对象建立嵌入embeddings索引——如果不手动触发 reindex重建索引你在 Explore 视图里搜索到的只会是启用之后新产生的对象。本文覆盖一条完整路径确认硬件条件 → 启用semantic_search配置 → 重新索引历史跟踪对象 → 在 Explore 视图中验证检索效果。启用前的硬件与网络前提语义搜索会在本地运行一个大型 AI 模型官方文档给出了明确的最低要求至少8GB 内存CPU 必须支持AVX AVX2指令集。Raspberry Pi 这类小型/低性能系统无法可靠运行语义搜索GPU 不是硬性要求但 CPU 推理性能明显更低。文档建议为获得最佳性能准备16GB 以上内存和独立 GPU需要一次性联网从 HuggingFace 下载嵌入模型Jina CLIP 的 ONNX 版本加 tokenizer。模型会缓存到/config/model_cache/之后离线可用。如果你的实例已经缓存好全部模型并跑在离线环境文档建议在容器上设置HF_HUB_OFFLINE: 1和TRANSFORMERS_OFFLINE: 1环境变量以阻止外联但要确保模型文件已存在于/config/model_cache/否则会导致失败。内网环境还可以通过HF_ENDPOINT环境变量把模型下载指向内部镜像。步骤一启用 semantic_search 配置配置入口在Settings Enrichments Semantic searchUI或 YAML 配置文件容器内路径/config/config.yml作为 Home Assistant App 运行时在/addon_configs/addon_directory/config.yml。semantic_search是全局配置项完整字段参照 完整配置参考字段默认值说明enabledFalse开关必须显式打开reindexFalse设为True并重启 Frigate 时会从数据库中的历史跟踪对象重建嵌入索引modeljinav1可选jinav1、jinav2或配置了embeddings角色的 GenAI provider 的 config keymodel_sizesmallsmall为量化版、跑 CPU、内存占用小嵌入质量差异极小large为完整模型可用 GPU 加速deviceNone多 GPU 环境下指定模型运行的 GPU 设备索引最小启用配置semantic_search: enabled: True reindex: False模型选择的文档结论默认推荐的jinav1视觉模型同时把图像和文本编码到同一向量空间支持text - image与image - image检索。model_size: small适合 CPUlarge在 GPU 可用时自动走 GPU。jinav2增加多语言支持89 种语言V1 仅支持英语但文档明确其相比 V1 只有约 3% 的检索性能提升而内存与 GPU 要求显著更高V2 搭配small做 CPU 推理不被推荐使用 V2 建议model_size: large并配备独立 GPU。GPU 加速CLIP 模型以 ONNX 格式下载large模型在有 GPU 的对应 Docker build 上会自动检测并使用 GPUdevice选项用于在多 GPU 安装中指定设备不指定则使用第一个可用 GPU。步骤二重新索引历史跟踪对象这是标题里的关键动作。文档原文提示如果你第一次启用语义搜索Frigate不会自动索引旧的跟踪对象必须按下面任一方式手动触发。reindex 会遍历数据库中所有既有跟踪对象生成嵌入文档提醒跟踪对象数量多时可能耗时很长且索引期间 CPU 可能被打满。方式 AUI 按钮文档推荐路径在Settings Enrichments的 Semantic search 设置页点击Reindex按钮。方式 BYAML 重启semantic_search: enabled: True reindex: True保存配置并重启 Frigate启动时会自动执行重建索引。方式 CAPI 触发API 定义与 实现代码 暴露了PUT /reindex端点需要 admin 角色语义搜索未启用时返回 400。响应含义可以直接用来判断索引状态状态码含义202重建索引已启动Embeddings reindexing has started.409重建索引已在进行中Embeddings reindexing is already in progress.400语义搜索未启用无法重建索引500启动失败注意切换嵌入后端jinav1↔jinav2或 Jina ↔ GenAI provider后新旧嵌入互不兼容必须重新 reindex否则搜索结果会不正确。步骤三在 Explore 视图验证语义搜索的入口是 Frigate UI 的Explore视图。启用后Explore 页面会出现一个搜索栏结合两种能力文本检索输入自然语言查询后按 Enter对跟踪对象做语义搜索图像检索在跟踪对象详情面板点击Find Similar执行image - image相似度搜索返回最接近的缩略图。验证要点搜索栏的Search Type可以选择匹配对象的Thumbnail缩略图还是Description文本描述。若没有配置对象描述主要用 Thumbnail 类型检索结果能否按relevance排序配合 date、object score、estimated speed历史对象能被搜到说明 reindex 生效——如果搜到的全部是启用语义搜索之后的新对象说明旧对象还没完成索引索引还在进行中或未触发。查询写法上文档给了几条实践建议缩略图检索时把查询写成图像描述风格例如 red sedan driving down a residential street on a sunny day 通常优于 red car缩略图检索对占据画面主体的大目标效果更好cat 这类小目标效果较差多模态搜索中description匹配的结果默认排在前面可以切换 Search Type 观察差异。已知限制模型切换必须重索引V1/V2 之间、Jina 与 GenAI provider 之间的嵌入互不兼容不 reindex 会得到错误搜索结果。V2 的 CPU 推理不被推荐需要充足的 RAM 和独立 GPU。首次启用不会索引旧数据这是最常见的搜索不到历史对象原因。语义搜索也是Triggers按图像/描述自动触发动作的功能的前置条件Triggers 依赖同一套 CLIP 模型reindex 本身不影响 trigger 配置但可能更新用于匹配的嵌入。索引过程对 CPU 有压力大规模历史库上属于预期现象不是故障。完成以上步骤后你的 Frigate 即可对全部跟踪对象含启用前的历史对象执行文本与图像的语义检索Explore 视图中按 relevance 排序的结果即为嵌入检索的直接输出。更多检索技巧可参考 Explore 使用文档配置字段全集见 Configuration Reference。【免费下载链接】frigateNVR with realtime local object detection for IP cameras项目地址: https://gitcode.com/GitHub_Trending/fr/frigate创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考