tx

熊猫不是猫QAQ

平平无奇小熊猫
612,331
NAS部署AI视频卫士,压榨NAS的最后一滴性能,NAS性能检测镜像 NAS部署AI视频卫士,压榨NAS的最后一滴性能,NAS性能检测镜像

大家好,我是熊猫,你的NAS领航员。NAS不只是存储那么简单,数码也可以是生活,关注我,给你的生活加点'技'趣!

引言

今天要介绍的容器项目大有来头,他可以对接支持onvif协议的摄像头,或者支持RTSP流的网络摄像头,而单纯的对接肯定没意思,毕竟各大NAS厂商自己就有视频监控工具。但它内置了很多大模型,通过内置的这些大模型,能实现对视频流的AI分析,从而实现告警的作用,这一切都在你NAS本地上执行,所以这个容器项目我也愿称之为NAS性能杀手,今天咱们要介绍的便是思通数科——AI视频卫士

项目官网项目官网

项目介绍

首先还是简单介绍一下,AI视频卫士是一个多功能AI实时监控系统,支持多种设备混合接入,包括:无人机、行车记录仪,收银机、监控摄像头、Pad、手机和电脑摄像头。系统具备高度灵活性,能够针对监控目标和范围提供实时预警。此外,系统内置低代码算法模型快速训练平台(付费版),简化了算法开发流程。用户还可以便捷地通过文字或图像搜索监控录像中的人脸、物体、标牌、车牌和语音对话。

在开源版本中,作者提供了20种免费模型供我们使用,例如配戴安全帽、人体跌倒识别、电动车监测、大货车监测、房门关开监测、灭火器正常、地面积水、口罩识别、安全手套识别、玩手机识别、睡觉识别、吸烟监测、非机动车识别、表情识别、占道经营识别、智能电网守卫、宠物牵绳识别、轮椅识别、婴儿车识别、交通事故识别。

以下是坐着给到的项目特性:

  1. 实时监控功能

    • 视频直播画面:系统首页展示当前监控摄像头下的实时监测画面,用户可以点击全屏查看。
    • 监控画面切换:用户可以通过下拉框选择不同摄像头和分组,查看不同监控画面。
    • 实时数据展示:首页左侧栏展示最新的实时预警数据,用户可以点击查看详情。
    • 摄像头点位统计:管理员可以看到摄像头的生效、失效状态和总数。
    • 预警统计与走势:展示监控场景中预警次数最多的情况,以及不同时间范围内的预警类型统计。
  2. 监测任务管理

    • 监测任务列表:展示用户创建的监控任务列表。
    • 添加监测任务:允许用户添加多个参数,并将任务分配给单个或多个摄像头。
    • 任务状态管理:用户可以对监控任务进行开启、停止或定时监控等操作。
    • 监测任务管理:用户可以查看任务详情并进行修改。
  3. 事件告警功能

    • 事件列表:展示最新的报警信息,支持分类、分组和分时间段检索。
    • 告警详情:用户可以查看预警数据的详细信息。
  4. 算法商城

    • 算法列表:实时同步更新算法列表。
    • 算法详情:查看算法的详细介绍。
    • 算法导入:通过本地或在线方式导入算法模型。
    • 停用与更新:允许用户停止当前算法并提醒相关监测任务,联网时自动检测更新。
  5. 视频检索

    • 视频标记:自动为视频帧打标签。
    • 图像文字识别:自动提取视频中的文字内容。
    • 标记存储:存储视频标记和原始图片的对应关系。
    • 检索视频:通过关键词、摄像头点位、时间范围检索视频内容。
  6. 模型训练(商用版)

    • 样本管理:上传图片样本作为训练数据集。
    • 样本标注:对图像进行目标物体标记。
    • 自动标注:使用导入的模型自动标注图像。
    • 模型发布:将训练好的模块发布到正式系统中。
    • 迭代训练:在原有模型基础上进行迭代训练。
    • 模型训练:使用标注后的数据样本进行模型训练。
  7. 视频接入

    • 添加设备:添加不同协议型号的摄像头。
    • 分组管理:设置摄像头分组,便于管理。
    • 设备管理:对摄像头进行修改、删除等操作。

    部署

    项目的部署稍微有点麻烦,不过聪明的你们应该能一看就会,毕竟虽然麻烦,都步骤都并不难。首先,我们需要准备好六个镜像,分别是redis、rabbitmq、mysql、minio、elasticsearch以及ai_video镜像。六个镜像加起来总体积达到了接近10GB,非常离谱。

容器项目容器项目

不过作者非常贴心的给到了五个本地镜像包,并上传到了百度网盘供大家使用,这一点还是非常贴心的,这里熊猫也贴上地址,将其中的文件全部下载放到NAS中即可。网盘链接:https://pan.baidu.com/s/14tgK26G3bxibjhsT5jG25A提取码:kglr

镜像下载镜像下载

这时候有小聪明就会问了,那还有一个镜像。很抱歉,剩下的一个镜像还是需要我们自行下载,且它也是体积最大的那个,不过好在作者又贴心的给我们加了加速地址,所以下载速度其实非常不错。这里贴一个docker pull命令:docker pull crpi-q4f4vwdmprv5egrk.cn-hangzhou.personal.cr.aliyuncs.com/yssanyue/ai_video:v1.4

镜像镜像

镜像下载之后,我们还需要给镜像起一个别名,这时候就需要用到SSH端口了。打开NAS的SSH端口,用工具连接上NAS之后,咱们输入sudo -i获取root权限,随后输入命令docker tag crpi-q4f4vwdmprv5egrk.cn-hangzhou.personal.cr.aliyuncs.com/yssanyue/ai_video:v1.4 ai_video:v1.4将刚刚下载的镜像改名为ai_video

镜像改名镜像改名

熊猫今天用到的为绿联的DXP4800,多次更新之后绿联的UGOS Pro系统越来越好用了,且目前支持Docker-compose堆栈的方式来创建容器项目,加上N100的性能也还不错,所以今天就用到了绿联。这里咱们打开Docker,来到项目界面。

项目项目

可以看到熊猫是已经启动了容器项目了,在创建yml文件之前,我们需要准备一些文件以及文件夹,其中文件需要到作者给到的地址去下载,这里贴一个地址。我们需要下载volumes.zip中的文件,并将其解压之后提取其中的nginx.conf、application.yml以及config.yaml三个文件。https://gitee.com/stonedtx/stonedtaiv/tree/master/docker

image.pngimage.png
随后在NAS中新建这样的目录树,将刚刚下载的三个文件放到config文件夹中。

目录树目录树

这时候创建docker-compose.yml文件,文件内容如下,映射路径和端口记得根据自身NAS设备进行更改。

services:

  mysql:

    container_name: mysql

    image: mysql:8.0.38

    ports:

      - "3307:3306"

    environment:

      MYSQL_ROOT_PASSWORD: config5566

      MYSQL_DATABASE: yys_aivideo

      MYSQL_USER: user

      MYSQL_PASSWORD: config5566

    volumes:

      -  /volume1/docker/aivideo/mysql-data:/var/lib/mysql

    healthcheck:

      test: ["CMD-SHELL", "mysqladmin ping -h localhost -u root -pconfig5566"]

      interval: 30s

      timeout: 10s

      retries: 5

    networks:

      - videonetworks

  

  redis:

    container_name: redis

    image: redis:7.2

    ports:

      - "6381:6379"

    volumes:

      -  /volume1/docker/aivideo/redis-data:/data

    healthcheck:

      test: ["CMD", "redis-cli", "ping"]

      interval: 30s

      timeout: 10s

      retries: 3

    networks:

      - videonetworks

  

  es:

    container_name: es

    image: elasticsearch:8.14.3

    environment:

      - cluster.name=docker-cluster

      - bootstrap.memory_lock=true

      - "ES_JAVA_OPTS=-Xms2g -Xmx2g"

      - xpack.security.enabled=false

      - discovery.type=single-node

    ports:

      - "9222:9200"

      - "9333:9300"

    healthcheck:

      test: ["CMD-SHELL", "curl -f http://localhost:9200/_cluster/health || exit 1"]

      interval: 30s

      timeout: 10s

      retries: 3

    networks:

      - videonetworks

  

  minio:

    container_name: minio

    image: minio/minio:latest

    ports:

      - "9005:9000"

      - "9010:9001"

    environment:

      MINIO_ACCESS_KEY: admin

      MINIO_SECRET_KEY: admin123

    command: server /data --console-address ":9001"

    healthcheck:

      test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]

      interval: 30s

      timeout: 10s

      retries: 3

    volumes:

      -  /volume1/docker/aivideo/minio-data:/data

    networks:

      - videonetworks

  

  rabbitmq:

    container_name: rabbitmq

    image: rabbitmq:4.0

    ports:

      - "15673:15672"  # 映射 RabbitMQ 管理界面

      - "5673:5672"    # 映射 RabbitMQ 消息队列

    environment:

      RABBITMQ_DEFAULT_USER: admin

      RABBITMQ_DEFAULT_PASS: admin123

    command: >

      bash -c "rabbitmq-plugins enable rabbitmq_management && rabbitmq-server"

    healthcheck:

      test: ["CMD-SHELL", "rabbitmq-diagnostics -q ping"]

      interval: 30s

      timeout: 10s

      retries: 3

    volumes:

      -  /volume1/docker/aivideo/rabbitmq-data:/var/lib/rabbitmq

    networks:

      - videonetworks

  

  app:

    container_name: app

    image: ai_video:v1.4

    ports:

      - "35310:35300"

  

    volumes:

      -  /volume1/docker/aivideo/config/nginx.conf:/etc/nginx/nginx.conf

      -  /volume1/docker/aivideo/config/application.yml:/opt/aivideo/java-service/application.yml

      -  /volume1/docker/aivideo/config/config.yaml:/opt/aivideo/python-service/config/config.yaml

  

    # links:

    #   - mysql:mysql

    #   - redis:redis

    #   - es:es

    #   - minio:minio

    #   - rabbitmq:rabbitmq

    networks:

      - videonetworks

    depends_on:

      - mysql

      - redis

      - es

      - minio

      - rabbitmq

  

networks:

  videonetworks:

    driver: bridge

创建好之后如果你的NAS支持docker-compose堆栈,那直接将文件或者代码丢进去就可以了,如果不支持,也可以通过创建yml文件,再SSH的方式获取root之后再输入docker-compose up -d的命令来启动项目。

堆栈容器堆栈容器

成功启动之后会拉起六个容器,如果其中app容器日志出现这样的内容,就代表项目启动成功了。

日志日志

这时候我们输入NASip:35310/vis/就可以进入登录界面了,默认账号为admin,密码为Stonedt,123。

登录界面登录界面

体验

熊猫这里已经将我家里的监控加到了里面,所以在数据看板这里能看到摄像头数量1,同时右边能看到该摄像头的实时监控画面。

数据看板数据看板

功能很好理解,首先来到视频接入这里添加摄像头或者网络摄像头。现在左边的设备列表这里添加分组,建好分组之后可以直接点击右边方框中的+号添加设备。

设置分组设置分组

这里熊猫先将添加的摄像头删除,在设备支持上,首先你要知道你的设备是否支持RTSP流视频(onvif协议都支持),如果不支持那就不能添加。如果直接,咱们直接输入摄像头的RTSP流地址,点击测试,有画面就可以直接提交。

添加设备添加设备

这时候咱们就完成摄像头添加了,如何实现AI检测呢?切换到检测任务这一栏,选择右边的添加任务,输入任务名称、设置优先级、选择监控点以及监控场景(一次只能选择三个模型),最后选择检测日期和实时监控,状态选择启动就可以了。

AI检测AI检测

任务的检测会一直进行,这时候你就会看到你的NAS开始高强度负载了,熊猫这里加了六个模型,N100直接干到了99%的占用,8G的内存也基本告急。

负载负载

理论上如果你的NAS足够强,那么可以添加足够多的模型进去。不过N100应该不行,所以熊猫也就没有过多尝试了。不过AI检测实测在较为清晰和近距离的情况下的确可用,如果检测目标太远或者很糊,那么依然检测不到。

总结

很牛的项目,最牛的还是作者,完成度如此之高的项目居然选择了开源,虽说作者是靠卖模型盈利,不过实际感觉个人或者店面使用,免费的模型也足够用了。给作者点赞!!!

以上便是本期的全部内容了,如果你觉得还算有趣或者对你有所帮助,不妨点赞收藏,最后也希望能得到你的关注,咱们下期见!三连三连

版权声明 ▶ 本文作者:panda
▶ 本文链接:https://panda995.xyz/evaluation/5159.html
▶ 本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长进行核实删除。
▶ 转载本站文章需要遵守:商业转载请联系站长,非商业转载请注明出处!!
0 条评论
user 编辑评论信息
插入图片

隐私评论