hood2000 发表于 2024-4-8 16:33:49

PVE+ vGPU Tesla P4 + Frigate 的简单尝试

本帖最后由 hood2000 于 2024-4-11 09:57 编辑

在论坛里学了好多天,弄的一头雾水,还是要实践一下试试。

1.服务器
二手华为2288hv5 一台,垃圾矿卡 tesla P4 一张。


2.监控设备
垃圾tplink一套,支持rtsp 。

3.环境配置(1)PVE配置vGPU host 驱动,单独部署一个docker FastAPI-DLS授权服务,将P4 切分给虚拟机。不得不说,P4这张卡,300多一片,8G显存,待机功耗10w,满载75w,我按2g显存切成为4份,分别配置给黑群、win11、Jellyfin和Frigate,一般软件和解码足够用了。 具体可参考 https://xinalin.com/159/vgpu-configuration-on-pve 。

(2)配置Frigate专用的虚拟机,要用ubuntu server,安装vGPU驱动。驱动装好之后如下图,暂时忽略下面的ffmpeg进程,这是加载了6个摄像头的进程。


(3)配置docker部署frigate。这里可参照使用Frigate配合摄像头进行人数统计最详细的中文教程 - 『HomeAssistant』综合讨论区 - 『瀚思彼岸』» 智能家居技术论坛 - Powered by Discuz! (hassbian.com),也要参照官方文档 Full Reference Config | Frigate。

image: ghcr.io/blakeblackshear/frigate:stable-tensorrt #镜像文件看官方文档,这里选用了自带模型的镜像。

          devices: #这是docker直通虚拟机显卡的配置,nvidia gpu及驱动。
            - driver: nvidia
            count: 1
            capabilities:
    devices:
      - /dev/dri/renderD128:/dev/dri/renderD128volumes:
      - /root/frigate/:/config
      - /root/frigate/storage:/media/frigate #建议加上,需要下载模型文件

<blockquote>ffmpeg:            
hwaccel_args: preset-nvidia-h264 #GPU


(4)frigate配置。配置参照文档自己调整,用gpu模型需要配置好detectors和model。mqtt:
host: 192.168. .#mqtt的ip
port: 1883 #mqtt端口
user: mqtt #mqtt用户名,如果没有的话,可不写
password:   #mqtt密码,如果没有的话,可不写
client_id: frigate #用于区分

detectors:
tensorrt:
    type: tensorrt #nvidia tensorrt
    device: 0 #第一个gpu

model:
path: /config/model_cache/tensorrt/yolov7-tiny-288.trt
input_tensor: nchw
input_pixel_format: rgb
width: 288
height: 288

      
objects:
track:
    - person
    - dog
    - face

cameras:
South:
    enabled: True
    record:
      enabled: True
    ffmpeg:
      inputs:
      - path: rtsp://admin:*****@1.1.1. 1:554/stream2&channel2
          roles:
            - detect
            - audio
            - record
    audio:
      enabled: True
    detect:
      enabled: True

ffmpeg:            
hwaccel_args: preset-nvidia-h264 #GPU
4.效果控制界面

动态鹰眼图,可以实时看所有的摄像头。

动态事件,在gpu和模型的加持下,有一点风吹草动都跑不掉,比tplink的app更灵敏更准确。但是,目前发现人狗不分。。。

有gpu的支持,系统占用喜人,功耗不超过30w


5.模型选择
frigate docker部署完成后,如果需要重新选择物体检测的模型,需要删除docker重新构建并生成相应预训练文件。备份好docker-compose.yml和config.yml ,分别在相应位置修改。
模型可选范围Object Detectors | Frigate
frigate:
environment:
    - YOLO_MODELS=yolov7-320,yolov7x-640 #模型可选范围见
    - USE_FP16=false

detectors:
tensorrt:
    type: tensorrt
    device: 0 #This is the default, select the first GPU

model:
path: /config/model_cache/tensorrt/yolov7-320.trt#预训练的模型文件
input_tensor: nchw
input_pixel_format: rgb
width: 320 #与上面文件尺寸对应
height: 320
初次编译模型的时间还是挺长的,如果同时选择了几个,不要着急。



换成yolov7-320,分辨率4608x1260占用大概在300m左右,分辨率1792x490大概在150m,识别的成功率明显提高,但是显存和功耗也相应提升不少。
p4在切片为2g显存的情况下,如果采用yolov7-640 ,不足以支持以上6台摄像头。
配合mqtt推送给手机客户端,可参照下文。
Frigate + MQTT + HA 推送摄像头----更新为PushDeer推视截图+视频 - 『HomeAssistant』综合讨论区 - 『瀚思彼岸』» 智能家居技术论坛 - Powered by Discuz! (hassbian.com)




6.完
p4这张十年前的gpu对于这种轻量级的应用还是非常实惠的,相对于其他设备便宜大碗,欢迎大家搞来一起玩。








hhh. 发表于 2024-4-8 16:42:30

4.06ms 的能力,雀食牛皮。

P4这个卡美中不足的就是解码不支持AV1。

godzqh 发表于 2024-4-8 16:48:11

居然人狗不分:L

twfjcn 发表于 2024-4-8 16:55:24

hhh. 发表于 2024-4-8 16:42
4.06ms 的能力,雀食牛皮。

P4这个卡美中不足的就是解码不支持AV1。

价格感人:lol

hood2000 发表于 2024-4-8 16:55:54

godzqh 发表于 2024-4-8 16:48
居然人狗不分

应该是模型输入只有288x288像素,所以人狗不分,估计换个大模型应该可以。不过,考虑到功耗和实际需求,影响不大。

jjcs 发表于 2024-4-8 16:56:00

请问pve部署vgpu是要在宿主系统部署吗,有详细部署命令吗,谢谢

hood2000 发表于 2024-4-8 16:58:42

本帖最后由 hood2000 于 2024-4-8 17:00 编辑

jjcs 发表于 2024-4-8 16:56
请问pve部署vgpu是要在宿主系统部署吗,有详细部署命令吗,谢谢
https://xinalin.com/159/vgpu-configuration-on-pve
相信这个帖子能解决你的问题,方法、驱动、破解都在里面。:lol

jjcs 发表于 2024-4-8 17:19:57

hood2000 发表于 2024-4-8 16:58
https://xinalin.com/159/vgpu-configuration-on-pve
相信这个帖子能解决你的问题,方法、驱动、破解都在 ...

论坛有你更精彩

hood2000 发表于 2024-4-8 19:00:31

jjcs 发表于 2024-4-8 17:19
论坛有你更精彩

能不能打赏一点:$

ryanh7 发表于 2024-4-8 20:23:18

yolov7是这样的,实测误报有点严重。p4的价格已经不美丽了,最近不得已在用p106训练小模型,速度和电费都吐了
页: [1] 2 3 4 5
查看完整版本: PVE+ vGPU Tesla P4 + Frigate 的简单尝试