跳到主要内容
Esc

AI 识别

本页内容

Rerinku View 的 AI 识别全部在运行 Rerinku View 的这台机器上完成,画面和识别结果都不会上传。它包括两部分:

  • 物体检测:识别人、车辆(小汽车、卡车、公交车、摩托车、自行车)和宠物(狗、猫、鸟);模型支持 COCO 的 80 个类别,常用的 9 类可以直接勾选。
  • 人脸识别:在检测到人的基础上,认出人脸库里登记过的人,其余的标为「陌生人」或「待确认」。

识别出的结果会生成事件:带画面截图、标出目标位置,并从第一次看到目标前 5 秒开始录一段视频,见事件与通知。

开启

  1. 打开 设置 → 智能检测。第一次使用时,按提示下载检测模型。模型来自 Hugging Face;在中国大陆可以把「模型下载源」切换为「国内镜像」。
  2. 在摄像头列表里,给要识别的摄像头打开「物体检测」,需要认人的再打开「人脸识别」。
  3. 每台摄像头的细节在 设备详情 → 设置 → 智能检测 里调:用哪一路码流检测、识别哪些类别、只在哪些区域检测,还可以打开「查看检测画面」实时看到识别框。

人脸识别建立在物体检测之上:打开人脸识别时,会自动打开这台摄像头的物体检测并勾选「人」;人脸识别开着的时候关闭物体检测或取消「人」,会先请你确认,确认后两者一起关闭。

模型

模型 大小 用途
YOLOX-Nano 3.5 MB 物体检测,最省资源
YOLOX-Tiny 19 MB 物体检测,推荐
YOLOX-S 34 MB 物体检测,更准,占用更高
YuNet + ArcFace 约 250 MB 人脸检测与识别,开启人脸识别时下载

模型保存在数据目录的 models/ 下(可用 MODELS_PATH 修改)。正在使用的模型不能删除,关掉对应功能后可以删。也可以上传自己导出的 YOLOX ONNX 模型。

什么时候会产生事件

  • 只关心动起来的东西。 Rerinku View 先做运动检测,只在画面有变化的区域运行推理;另外每 10 秒会完整扫描一次整幅画面。
  • 静止的目标不报。 一个目标大约 10 秒不动就视为静止;从开始检测起就没动过的目标(比如一直停着的车)不会产生事件。
  • 一次连续出现算一个事件。 同一时间出现的多个目标会合并成一条事件;目标离开后事件结束。
  • 默认阈值:每秒分析 5 帧(可设 1–15),单帧置信度 0.5,确认一个目标需要 0.7。默认检测「人」和「小汽车」。这些都可以在 设置 → 智能检测 → 高级设置 里调,单台摄像头也可以单独覆盖。
  • 运动遮罩:画面里总在动但不需要关心的区域(树、马路),可以在摄像头的检测区域里排除。

控制事件的频率

在 设置 → 智能检测 → 高级设置 里有两个节流选项,默认都关闭,单台摄像头可以单独设置:

  • 事件间隔:一条事件结束后,这台摄像头暂停检测多久(最长 24 小时)。暂停期间画面照常录制,但不运行推理,状态会显示「事件间隔中,HH:MM 恢复检测」。重启 Rerinku View 后立即恢复检测。
  • 事件最长时长:一条事件最多持续多久(10 秒到 24 小时),到时就结束这一条。

识别页

侧栏的 识别 页集中查看结果:

  • 物体:按类别(人、车辆、宠物)、摄像头和时间筛选检测到的目标。
  • 人员:
    • 检测记录:每一张抓到的人脸,分为「已识别」「待确认」「陌生人」。可以把待确认的人脸归到某个人名下。
    • 人脸库:登记要认的人,每人最多 5 张照片,可以分组(家人、亲友、常客),也可以合并重复的人、测试识别效果。

认出的人名会写进事件里,手机通知和 MQTT 里也能看到。

支持的平台

识别组件随程序一起分发,Rerinku View 启动时自动解压,不需要单独安装。

平台 AI 识别
Linux(x86-64) 支持,需要 glibc 2.34 或更高
Linux(ARM64) 支持,需要 glibc 2.34 或更高
Windows 10 / 11(x64) 支持,无需另装运行库;有显卡时尝试用显卡加速(DirectML)
Windows(ARM64) 暂不支持
macOS(Apple 芯片) 支持,需要 macOS 14 Sonoma 或更高
macOS(Intel 芯片) 不支持
Docker 镜像(x86-64) 支持,识别组件和 Intel / AMD 显卡驱动都已内置

不支持 AI 识别的平台上,实时查看、录像、回放等其余功能都照常可用。识别相关的入口不会被隐藏:识别 页和 设置 → 智能检测 顶部会说明原因,相关开关置灰。

Linux

需要 glibc 2.34 或更高。近几年的主流发行版都满足,例如 Debian 12+、Ubuntu 22.04+、Fedora 35+、RHEL 9 系,以及基于 Debian 12 的 Raspberry Pi OS(Bookworm);Alpine 等使用 musl 的发行版不满足。不确定时可以查看:

ldd --version

第一行末尾的数字就是 glibc 版本。Linux 上推理目前在 CPU 上运行。

Docker 镜像(x86-64)同样内置识别组件,不需要另外安装,见快速开始。

Windows

适用于 Windows 10 / 11(x64)。识别组件已内置,不需要另外安装任何运行库。

Windows 版会尝试用显卡运行物体检测和人脸识别:通过 DirectML,支持 Direct3D 12 的显卡都可以用,包括 NVIDIA、AMD 和 Intel(含核显)。显卡用不了时(没有显卡、虚拟机、驱动有问题),会自动回到 CPU,识别照常工作。

  • 在 设置 → 智能检测 → 高级设置 → 检测参数 里,「推理设备」可以选「自动(优先显卡)」(默认)或「仅 CPU」,保存后立即生效。
  • 想确认是否用上了显卡,看 设置 → 智能检测 底部的「性能」:「推理设备」一项会显示显卡名称;没有用上时会说明原因。
  • 显卡加速需要较新的显卡驱动,没有用上显卡时先更新驱动再试。

macOS

需要 Apple 芯片(M1 及更新) 的 Mac,并且系统为 macOS 14 Sonoma 或更高。识别组件已内置,无需额外安装;目前推理在 CPU 上运行。

  • Intel 芯片的 Mac 不支持 AI 识别:推理运行库 ONNX Runtime 从 1.24 起不再提供 Intel 版。其余功能正常。
  • 在 Apple 芯片的 Mac 上运行了 Intel 版(经 Rosetta 转译):改用 Apple 芯片(arm64)版即可使用。
  • macOS 13 及更早版本:升级到 macOS 14 或更高后即可使用。

想确认芯片和系统版本,点屏幕左上角的苹果菜单 → 关于本机:Apple 芯片的 Mac 会显示「芯片」一项(如 Apple M1),Intel 芯片的 Mac 显示的是「处理器」;同一窗口里也能看到 macOS 版本。

视频解码

识别要看画面内容,得先把摄像头的视频解码成图片。实时查看和录像直接转发摄像头的原始码流,不需要解码;只有做识别的摄像头才会解码。

Rerinku View 优先用显卡的视频解码单元(硬件解码,几乎不占 CPU),显卡解不了的格式或显卡出错时,才交给 CPU(软件解码):

平台 硬件解码
Linux(x86-64) VA-API(Intel、AMD)、NVDEC(NVIDIA)
Linux(ARM64) 暂不支持,使用软件解码
Windows D3D11VA(NVIDIA、AMD、Intel)
macOS VideoToolbox

Rerinku View 启动时会用一小段内置视频在每块显卡上实际试解 H.264 和 H.265,只把解得出来的格式交给显卡。在 设置 → 视频解码 里可以看到每一路摄像头此刻用的是硬件还是软件解码、没用硬件的原因,以及找到了哪些显卡、各自能解哪些格式。

Linux 原生安装使用硬件解码需要:

  • 显卡驱动:Intel 装 intel-media-va-driver(老显卡用 i965-va-driver),AMD 装 mesa-va-drivers,NVIDIA 用官方驱动 470 或更新(开源的 nouveau 驱动不行);
  • 运行 Rerinku View 的用户在 render 和 video 组里:sudo usermod -aG render,video 用户名,重新登录或重启服务后,在 设置 → 视频解码 里点「重新检测」。

Docker 镜像里已经带好了 Intel、AMD 的显卡驱动,宿主机不用装驱动、也不用管用户组:启动容器时加上 --device /dev/dri(Compose 里写在 devices: 下)就能用显卡解码,容器会自动获得显卡的访问权限。NVIDIA 显卡需要宿主机装好 NVIDIA 驱动和 NVIDIA Container Toolkit,启动时加 --gpus all。

如果某块显卡一解码就出问题,可以设环境变量 VIDEO_HW_DECODE=false,强制只用软件解码。

要多少算力

没有统一的配置要求,取决于摄像头数量、分辨率和模型。参考数据:在一台 Ryzen 7 5825U 笔记本的 CPU 上,YOLOX-Tiny 每次推理约 22 毫秒,每秒分析 5 帧时大约能带 8 路;解码一路 1080p 视频约占 0.35–0.6 个 CPU 核心。

最准确的办法是看 设置 → 智能检测 底部的「性能」:它会实测推理速度,并估算这台机器还能再开几路识别。