2024年11月24日星期日 上午5:45:13

Frigate - HA安装Frigate,实现人形检测和人数检测

10 个月 前
#25252 引用
Frigate


Frigate 是强大的 NVR 系统,篇文章介绍基础的接入,但它还有更多功能比如 Detectors、Masks & Recording 等等可按需使用


摄像头才是人体存在的终局(厕所等私密环境除外)所以关注我的朋友可以看到我一直在摄像头方面琢磨着搞事情,因为人体存在只能判断有无,但是摄像头还能进一步看到是谁,甚至做了什么,想象空间是非常大的!

目前我测试跑在笔记本的docker环境系统本身的延时在1s左右,用tpu的朋友反馈走tpu的话大概0.8秒
自动化本身我花了一秒的时间判断,这个后面可以优化
另外一个优化点在于frigate的判定区域,这个要再调试一下,目前不是最好的状态

HA安装Frigate,实现人形检测和人数检测

https://docs.frigate.video/frigate/installation

https://bbs.hassbian.com/thread-22179-1-1.html
https://bbs.hassbian.com/thread-16985-1-1.html
https://bbs.hassbian.com/thread-16991-1-1.html

Frigate插件,误报率非常低,可以自动截图、保存相关录像

在HA里面测试,对人、猫、狗都能识别
https://bbs.hassbian.com/thread-16991-1-1.html
0
10 个月 前
#25253 引用
Hardware recomendations for frigate ha integration
需要的设备列表

Run Frigate on external server

X86主机(必须)最好是带PCIe接口的板子

Google TPU(非必须)但最好是有

摄像头(必须)最好买大品牌,例如Frigate官网推荐的大华/海康。
萤石是送给我用都不要,因为我的摄像头、录像设备、NAS都是禁止联外网的,在外面通过OPenVPN接入自己的网络再使用,这样安全很多。萤石的东西不适合这样用

摄像头
这个在Frigate官网推荐的是大华/海康系列摄像头,我自己也用的是海康,只要能获取到RTSP流的摄像头都可以,但这个玩意,用大品牌的可靠很多

排雷 优先大华,海康rtsp坑居多 编码单一强制 复码率分辨率固定等
HA
X86工业主机,配置为:4代i5、8G内存、120G固态硬盘。

X86主机
这个我相信坛友们几乎都有吧,不管是旧电脑,旧笔记本,或者群晖,以及大家热爱的软路由都可以



(5)需要运行Frigate的机器CPU强一些,我的NAS的CPU是INTEL Celeron J3455,连接1一个摄像头,在识别是CPU使用率达到70%。而TPU比较难买到。

隐私处理
最介意的问题就是隐私,毕竟谁也不想自己的家成为在线直播间

摄像头的隐私堪忧,我是不敢装在卧室里,尽管在路由器上限制了摄像头的外网访问,但还是觉得有双眼睛,后来就把摄像头移到了阳台。

在路由器哪里禁止摄像头外网访问ok了呀 保留内网。一般路由器在MAC过滤里可以设置
0
10 个月 前
#25254 引用
软件
Frigate:
官网  https://frigate.video/

https://github.com/blakeblackshear/frigate
一款部署于本地的AI识别(可识别多种物体,人、车、猫、狗等)以及摄像头事件监听等强大功能的开源框架。

NVR(Network video recorder)即网络视频录像机,它可以实现将视频内容存储到文件

Frigate is an open source NVR built around real-time AI object detection. All processing is performed locally on your own hardware, and your camera feeds never leave your home.
It detects a person in <1s

Google TPU:官网
首先,Frigate官网也说了,虽然TPU是可选的,但强烈建议使用。TPU甚至会优于最好的CPU,并且可以处理100多个FPS,并且开销很少。
TPU分为PCIe接口和USB的,但是,不管哪个接口的,都及其难买,当然PCIe的是最有性价比的,我自己是在黄鱼上蹲了半个月买到一块PCIe的,但现在由于缺芯问题导致没货或者有货价格也很高,这个就看大家自己判断了



Docker
这个坛友们几乎都玩过并且装过,这个就不做过多介绍,主要用于安装MQTT/HomeAssistat/Frigate等

PVE/ESXI。
大多数软路由都是装的PVE或者ESXI,我个人是用的PVE,所以下文中的教程也是以PVE为主,这个不是必须的,反正能装Docker的机器就行

MQTT
主要用于接收Frigate产生的数据并能够和方便的接入HA和Node-Red

Node-Red
用于接收MQTT产生的实时数据用于做自动化,如果喜欢用HA做自动化也可以用HA


https://bbs.hassbian.com/thread-16985-1-1.html



Camera setup
0
10 个月 前
#25255 引用
与MQTT、HA系统的连接

Camera setup --> rstp://http://ip地址:3000
Frigate加载项安装后的ip地址是 --> http://ip地址:5000

MQTT

Frigate Integration

安装和配置Frigate的过程:
step 1:安装cam
不需要摄像头接入homeassistant,他是直接接入frigate里,可以当NVR来使用,动态检测
step 2.安装Frigate加载项
在加载项中安装Frigate加载项:进入配置-加载项-加载项商店,添加仓库地址:https://github.com/blakeblackshear/frigate-hass-addons,并安装Frigate。
step 3.安装mqtt

step 4.HACS中安装Frigate集成:进入HACS,在集成中搜索Frigate,安装完毕后,重启HA。
0
10 个月 前
#25275 引用
Frigate非常耗CPU,如果NAS的CPU能力不够,可能不行。TPU是性能要求到的时候一定要带上的。
没有TPU人脸识别太慢了

这个tpu,最实用的m2款,价格好像25美元(官网),但是由于现在缺芯片,基本到处都没货,买不到,能买到的地方目前应该也是500以上吧,不需要年费,这是个一次性付费的硬件,就跟内存条这些一样
0
10 个月 前
#25276 引用
Frigate有上下文管理,如果检测到一个物体不动,就认为是个固定物体,就会跳过该物体,直到该物体再次活动,就再次进行检测,但是这也可以通过参数修改
detect:
  stationary:
    interval: 0
    threshold: 50
复制代码

将interval修改成大于0的数,就代表哪怕是检测成了固定物体,依旧每隔几秒进行一次检测,这当然会更耗资源
threshold是一个物体在被视为静止之前需要保持相对静止的帧数,可以设置的高一些,毕竟你一个人体不可能几百秒或者一直不动,当然,设置了interval的话,下面的参数其实意义不太大,毕竟每隔几秒就会重新检测,哪怕被识别成了固定物体,几秒后就会检测成人体,你可以尝试修改一下参数

https://bbs.hassbian.com/forum.php?mod=redirect&goto=findpost&ptid=16985&pid=465016
0
10 个月 前
#25277 引用
这种方案,不过摄像头现在用旧手机+软件代替,现在在考虑换摄像头
0
10 个月 前
#25281 引用
HASSOS - Install frigate Add-on

在商店搜索不到,需要采取手工添加接口的方式安装

直接在前端Supervisor > Add-on Store > 右上角三个点>Repositories,里面输入https://github.com/blakeblackshear/frigate-hass-addons,点ADD,就会出现插件
0
10 个月 前
#25282 引用
https://bbs.hassbian.com/thread-12194-1-1.html




# 检测硬件,目前就先这么配置
detectors:
  coral:
    type: cpu
# mqtt,必须
mqtt:
  # mqtt的服务地址
  host: 192.168.3.22
  # mqtt的用户
  user: xxxxxx
  # mqtt的密码
  password: xxxxx
# 摄像头接入
cameras:
  # 摄像头名称,自定义
  fristcamera:
    ffmpeg:
      inputs:
        # 摄像头地址
        - path: rtsp://admin:[email protected]:554/Streaming/Channels/1
          # 要开启的功能,下面这些功能,不需要就删掉
          roles:
            # 检测功能
            - detect
            # 短片剪辑功能
            - clips
            # 录像功能
            - record
            # 像外提供播放功能(一个坑,要确定你的摄像头是不是h265编码的,如果是就不要开启这个,不然就会一直报错)
            - rtmp
    # 摄像头画面的分辨率,一定要准确,不然会花屏,先在本地电脑上用软件播放,查看下分辨率,填入下面,
    width: 2560
    height: 1440
    fps: 3
    detect:
      # 开启检测
      enabled: True
    # 不检测的区域,可以先不设置在网页游览器里复制过来
    motion:
      mask:
        - 1198,134,1243,299,1552,289,1530,0,0,0,0,145
        - 482,1440,457,408,0,416,0,1440
    # 区域,可以先不设置在网页游览器里复制过来
    zones:
      zone_0:
        coordinates: 766,1440,1103,591,1241,442,1616,535,1697,193,1802,1440
    # 剪辑
    clips:
      # 是否开启
      enabled: True
      # 拍摄前3秒
      pre_capture: 3
      #拍摄后5秒
      post_capture: 5
      retain:
        # 保留录像天数
        default: 5
        # 特定的物体保留天数
        objects:
          person: 10
    # 快照
    snapshots:
      enabled: True
      # 在快照上打印时间戳 默认False
      timestamp: False
      # 在快照上绘制边界框 默认False
      bounding_box: True
      # 裁剪快照 默认False
      crop: False
      # 将快照大小调整为的高度(默认值:原始大小)
      #height: 175
      retain:
        # 默认保留天数(默认值:如下所示)
        default: 10
        # 每个对象的保留天数
        objects:
          person: 15
objects:
  # 选择需要检测的物体,能选择的列表在labelmap.txt
  track:
    - person
    - bicycle
    - car
    - motorcycle
    - cat
    - dog
  # 定制过滤器减少误报
  filters:
    person:
      # 检测到的对象的边框的最小面积,宽度*高度(默认:0)
      #min_area: 0
      # 检测到的对象的边框的最大面积,宽度*高度 (默认: 24000000)
      #max_area: 100000
      # 启动跟踪的对象的最低分数 (默认: 0.5)
      min_score: 0.5
      # 将被跟踪对象的计算分数的最小十进制百分比视为真实正值 (默认: shown below)
      threshold: 0.7



0
10 个月 前
#25289 引用
How to use
访问Frigate 5000 端口查看 Web 界面

Cameras 页面显示全部的摄像头
0