网站首页 > 教程文章 正文
「大家好,我是熊猫,你的NAS领航员。NAS不只是存储那么简单,数码也可以是生活,关注我,给你的生活加点'技'趣!」
引言
今天要介绍的容器项目大有来头,他可以对接支持onvif协议的摄像头,或者支持RTSP流的网络摄像头,而单纯的对接肯定没意思,毕竟各大NAS厂商自己就有视频监控工具。但它内置了很多大模型,通过内置的这些大模型,能实现对视频流的AI分析,从而实现告警的作用,这一切都在你NAS本地上执行,所以这个容器项目我也愿称之为NAS性能杀手,今天咱们要介绍的便是「思通数科——AI视频卫士」。
项目官网
项目介绍
首先还是简单介绍一下,AI视频卫士是一个多功能AI实时监控系统,支持多种设备混合接入,包括:无人机、行车记录仪,收银机、监控摄像头、Pad、手机和电脑摄像头。系统具备高度灵活性,能够针对监控目标和范围提供实时预警。此外,系统内置低代码算法模型快速训练平台(付费版),简化了算法开发流程。用户还可以便捷地通过文字或图像搜索监控录像中的人脸、物体、标牌、车牌和语音对话。
在开源版本中,作者提供了20种免费模型供我们使用,例如配戴安全帽、人体跌倒识别、电动车监测、大货车监测、房门关开监测、灭火器正常、地面积水、口罩识别、安全手套识别、玩手机识别、睡觉识别、吸烟监测、非机动车识别、表情识别、占道经营识别、智能电网守卫、宠物牵绳识别、轮椅识别、婴儿车识别、交通事故识别。
以下是坐着给到的项目特性:
- 「实时监控功能」:
- 视频直播画面:系统首页展示当前监控摄像头下的实时监测画面,用户可以点击全屏查看。
- 监控画面切换:用户可以通过下拉框选择不同摄像头和分组,查看不同监控画面。
- 实时数据展示:首页左侧栏展示最新的实时预警数据,用户可以点击查看详情。
- 摄像头点位统计:管理员可以看到摄像头的生效、失效状态和总数。
- 预警统计与走势:展示监控场景中预警次数最多的情况,以及不同时间范围内的预警类型统计。
- 「监测任务管理」:
- 监测任务列表:展示用户创建的监控任务列表。
- 添加监测任务:允许用户添加多个参数,并将任务分配给单个或多个摄像头。
- 任务状态管理:用户可以对监控任务进行开启、停止或定时监控等操作。
- 监测任务管理:用户可以查看任务详情并进行修改。
- 「事件告警功能」:
- 事件列表:展示最新的报警信息,支持分类、分组和分时间段检索。
- 告警详情:用户可以查看预警数据的详细信息。
- 「算法商城」:
- 算法列表:实时同步更新算法列表。
- 算法详情:查看算法的详细介绍。
- 算法导入:通过本地或在线方式导入算法模型。
- 停用与更新:允许用户停止当前算法并提醒相关监测任务,联网时自动检测更新。
- 「视频检索」:
- 视频标记:自动为视频帧打标签。
- 图像文字识别:自动提取视频中的文字内容。
- 标记存储:存储视频标记和原始图片的对应关系。
- 检索视频:通过关键词、摄像头点位、时间范围检索视频内容。
- 「模型训练(商用版)」:
- 样本管理:上传图片样本作为训练数据集。
- 样本标注:对图像进行目标物体标记。
- 自动标注:使用导入的模型自动标注图像。
- 模型发布:将训练好的模块发布到正式系统中。
- 迭代训练:在原有模型基础上进行迭代训练。
- 模型训练:使用标注后的数据样本进行模型训练。
- 「视频接入」:
- 添加设备:添加不同协议型号的摄像头。
- 分组管理:设置摄像头分组,便于管理。
- 设备管理:对摄像头进行修改、删除等操作。
部署
项目的部署稍微有点麻烦,不过聪明的你们应该能一看就会,毕竟虽然麻烦,都步骤都并不难。首先,我们需要准备好六个镜像,分别是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
随后在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检测
任务的检测会一直进行,这时候你就会看到你的NAS开始高强度负载了,熊猫这里加了六个模型,N100直接干到了99%的占用,8G的内存也基本告急。
负载
理论上如果你的NAS足够强,那么可以添加足够多的模型进去。不过N100应该不行,所以熊猫也就没有过多尝试了。不过AI检测实测在较为清晰和近距离的情况下的确可用,如果检测目标太远或者很糊,那么依然检测不到。
总结
很牛的项目,最牛的还是作者,完成度如此之高的项目居然选择了开源,虽说作者是靠卖模型盈利,不过实际感觉个人或者店面使用,免费的模型也足够用了。给作者点赞!!!
以上便是本期的全部内容了,如果你觉得还算有趣或者对你有所帮助,不妨点赞收藏,最后也希望能得到你的关注,咱们下期见!
猜你喜欢
- 2024-12-15 [常用工具] cvat安装与使用指北 cvaat
- 2024-12-15 Harbor简介及将私有镜像仓库 Harbor 接入 Containerd 管理介绍
- 2024-12-15 如何制作CentOS 8 Linux安装U盘?UltraISO软件的使用方法介绍
- 2024-12-15 [ 小白玩树莓派系列] 如何在树莓派 4 上USB 外接SSD启动 Android 12L?
- 2024-12-15 Docker的安装与使用 docker的安装方法
- 2024-12-15 独家深度 | 一文看懂 ClickHouse vs Elasticsearch:谁更胜一筹?
- 2024-12-15 5分钟在虚拟机中搭建Linux开发环境
- 2024-12-15 目前还能用的Docker容器加速方案和可用镜像源
- 2024-12-15 容器化之Docker镜像仓库Harbor的安装
- 2024-12-15 kali下对Docker的详细安装 kali安装go
- 06-18CentOS7安装Mongodb 4.x.x(centos7安装openstack)
- 06-18Window环境配置Mongodb(mongodb默认配置文件路径)
- 06-18FineReport如何连接和使用MongoDB数据库
- 06-18nosql之mongodb(nosql怎么读正确发音)
- 06-18Mongodb centos7安装(mongodb4.4.2安装教程)
- 06-18群晖(Synology)NAS 安装 MongoDB(群晖安装nat123)
- 06-18MongoDB 安装及实践(mongodb的安装过程和操作命令)
- 06-18MongoDB最全详解(万字图文总结)(mongodb lsm)
- 最近发表
-
- CentOS7安装Mongodb 4.x.x(centos7安装openstack)
- Window环境配置Mongodb(mongodb默认配置文件路径)
- FineReport如何连接和使用MongoDB数据库
- nosql之mongodb(nosql怎么读正确发音)
- Mongodb centos7安装(mongodb4.4.2安装教程)
- 群晖(Synology)NAS 安装 MongoDB(群晖安装nat123)
- MongoDB 安装及实践(mongodb的安装过程和操作命令)
- MongoDB最全详解(万字图文总结)(mongodb lsm)
- CentOS安装MongoDB教程(centos安装mpich)
- MongoDB入门指南:下载、安装和配置一款强大的NoSQL数据库
- 标签列表
-
- location.href (44)
- document.ready (36)
- git checkout -b (34)
- 跃点数 (35)
- 阿里云镜像地址 (33)
- qt qmessagebox (36)
- mybatis plus page (35)
- vue @scroll (38)
- 堆栈区别 (33)
- 什么是容器 (33)
- sha1 md5 (33)
- navicat导出数据 (34)
- 阿里云acp考试 (33)
- 阿里云 nacos (34)
- redhat官网下载镜像 (36)
- srs服务器 (33)
- pico开发者 (33)
- https的端口号 (34)
- vscode更改主题 (35)
- 阿里云资源池 (34)
- os.path.join (33)
- redis aof rdb 区别 (33)
- 302跳转 (33)
- http method (35)
- js array splice (33)