前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >视频质量AI检测算法与LiteCVR视频质量诊断方案介绍

视频质量AI检测算法与LiteCVR视频质量诊断方案介绍

原创
作者头像
LiteMedia音视频技术
发布于 2023-11-14 08:26:09
发布于 2023-11-14 08:26:09
6970
举报
文章被收录于专栏:LiteMediaLiteMedia

LiteCVR视频质量诊断方案可以实现对监控设备常见的异常抖动、画面条纹、画面模糊、偏色、亮度异常、对比度异常、冻结、丢失、噪声等机器故障及恶意遮挡、恶意变化监控场景的行为做出准确判断,还可以对监控设备因为网络异常等原因导致的设备断线、取流异常、码率是否达标等问题进行准确定位。

LiteCVR视频监控管理平台能在复杂的网络环境中,将分散的各类视频资源进行统一汇聚、整合、集中管理,平台可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等,以及支持厂家私有协议与SDK接入,包括海康Ehome、海大宇等设备的SDK等。

1)亮度异常检测

该项检测针对图像发白、图像黑暗难以辨别物体、画面闪烁等现象,其故障原因通常可归纳为摄像头曝光控制器故障、增益控制器故障、摄像头被人为强光照射等问题。其检测算法较为简单,通过统计图像亮度分量的直方图并对亮度分布进行相应分析,然后设定经验阈值来判定当前图像是否亮度异常。

2)图像模糊检测

该项检测针对图像中物体不清楚、图像中空荡无误、图像对比度低等现象,其故障原因通常可归纳为聚焦不准、镜头覆盖灰尘和水汽、被人为涂抹和遮挡等问题。其算法实现上,可对图像数据在频域上进行频谱分析或者将图像分为N个大小相同的区域并统计其平均对比度。

3)画面冻结检测

该项检测针对画面静止不动的现象,其故障原因通常可归纳为摄像头采集端不刷新、线路传输故障、人为贴画等问题。其算法实现上,一种实现方式是采用帧差算法得到前后帧图像的差异变化,另一种实现方式可在视频帧中每隔一段时间抽取一帧图像,并分析其直方图,最后统计分析各帧之间的直方图相似度来得出算法检测结果。

4)信号缺失检测

该项检测针对画面白屏黑屏、无法获取码流、无视频信号等现象,其故障原因通常可归纳为网络无法连接、视频传输线路接触不良或损坏等问题。其算法实现上:一种实现方式可对图像的亮度通道做直方图统计,通过直方图结果的分析和离散性检测,得出算法处理结果;另一种实现方式可对图像进行二值化处理,然后针对黑屏或者白屏寻找最大联通区域,最终通过最大联通区域的面积来得出算法处理结果。

5)颜色异常检测

该项检测针对画面出现单一性全屏偏色、画面有闪动的彩色条带、图像中广泛分布杂色等现象,其故障原因通常可归纳为感光器件有颜色通道损坏、摄像头颜色平衡算法失效、颜色信号在传输过程中受到干扰等问题。针对该类问题,通用处理方式是首先将图像数据转换到特定的颜色空间,然后对其具体颜色通道进行分析。下面以YUV和HIS颜色空间为例,当转换到YUV颜色空间时,可对图像数据的UV色差分量进行分布统计和均值计算,设定合理的阈值得出检测结果。当转换到HIS颜色空间时,可以对色调分量H进行直方图统计,然后得出算法检测结果。

6)噪声干扰检测

该项检测针对画面中出现混杂的细纹、斜纹,以及由此导致的画面扭曲、模糊抖动等失真现象,较常见的有“雪花”噪声。视频噪声的检测较为困难复杂,主要由于不同种类噪声的无规律性,单一策略的检测算法难以全面覆盖不同种类的噪声。以“雪花”噪声检测算法为例,考虑到“雪花”噪声多为椒盐噪声,可首先对图像进行滤波处理,然后对比滤波前后的图像,得出算法检测结果。

7)图像晃动检测

该项检测针对画面出现持续性晃动的现象,其故障原因通常为摄像头立杆或者云台不稳等问题。对该类问题的检测,通常需要对一定时长的视频序列间各帧之间的运动信息进行统计分析。基于该思路,一种实现方法为对图像进行特征点检测,然后在一定的视频序列中,跟踪该特征点的运行矢量,然后得出算法检测结果。另一种实现方法,可将图像分为相同大小的N个区域,然后记录一定时长的视频序列内各个区域的运动方向,然后得出算法检测结果。

8)条纹干扰检测

该项检测针对画面中出现的横向条纹、纵向条纹、网状条纹等现象,其故障原因通常可归纳为设备接地线不当、信号传输线受到各种频率干扰、发送接收设备同步不当等问题。针对该问题的算法通常针对干扰条纹的图像特征进行展开,下面以横向条纹的检测为例,画面中条纹位置附近梯度波动较大,因此可分别做图像数据x和y方向的梯度图来突出条纹特征,然后在梯度图像上做直线检测,然后根据检出直线的长度和运动信息给出算法检测结果。

9)黑白图像检测

该项检测针对画面显示为黑白图像(无色彩信息)现象,其故障原因通常可归纳为感光器件有颜色通道损坏、摄像头颜色平衡算法失效、颜色信号在传输过程中受到干扰等问题。其算法实现较为简单,在将图像数据转换到YUV颜色空间,分析UV分量的分离度,与设定的经验阈值进行比较便可以得出算法检测结果。

10)对比度异常检测

该项检测针对画面中物体轮廓模糊等现象,一般是由相机虚焦或镜头受到污染导致。该项检测算法可严格按照图像对比度的定义设计,对比度指的是一幅图像中明暗区域最亮的白和最暗的黑之间不同亮度层级的测量,即指一幅图像灰度反差的大小。因此可统计出明暗区域最亮的白和最暗的黑的像素值,做差后给出算法检测结果。

11)PTZ失控检测

该项检测针对云台无法转动、云台错误响应控制指令等现象,一般是由云台机械故障、控制指令配置不当导致。该项检测算法的设计需要配合云台控制指令,首先由诊断服务器发出云台控制指令,然后由算法分析发送指令后图像的运动轨迹,最终将控制指令与图像该段时间内的运动轨迹进行比较,从而给出算法检测结果。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
python利用pymssql连接SQL
首先需要安装pymssql模块 配置下freetds #cat /usr/local/freetds/etc/freetds.conf # $Id: freetds.conf,v 1.12 2007/12/25 06:02:36 jklowden Exp $ # # This file is installed by FreeTDS if no file by the same # name is found in the installation directory. # # For infor
py3study
2020/01/08
2.1K0
python3.7 连接sql server出现pymssql.OperationalError: (20009, b'DB-Lib error message 20009, severity ...
今天在使用python3.7中的pymssql 连接sqlserver的时候遇到的问题:
小海怪的互联网
2019/08/23
9.1K0
python3.7 连接sql server出现pymssql.OperationalError: (20009, b'DB-Lib error message 20009, severity ...
mac 安装pymssql
我们在mac环境下想连接mssqlserver数据库,首先要考虑的就是使用pymssql库,而pymssql是在freedts的基础上研发的,所以要先安装freedts,但是安装这个库之前还需有有一系列的支撑库
全栈程序员站长
2022/07/04
6990
mac 安装pymssql
【Python】已解决:pymssql._pymssql.OperationalError: (20009, b’DB-Lib error message 20009, severity 9:\nUn
已解决:pymssql._pymssql.OperationalError: (20009, b’DB-Lib error message 20009, severity 9:\nUnable to connect: Adaptive Server is unavailable or does not exist (服务器地址)\nNet-Lib error during Unknown error (10060)\nDB-Lib error message 20009, severity 9:\nUnable to connect: Adaptive Server is unavailable or does not exist (服务器地址)\nNet-Lib error during Unknown error (10060)\n’)
屿小夏
2024/07/01
6590
【Python】已解决:pymssql._pymssql.OperationalError: (20009, b’DB-Lib error message 20009, severity 9:\nUn
Oracle 19C 通过 ODBC 连接 SQL Server 数据库指南 (Red Hat 7)
本指南详细说明如何在 Red Hat Enterprise Linux 7 系统上配置 Oracle 19C 通过 ODBC 连接 SQL Server 数据库。这种异构数据库连接方式称为 Oracle Heterogeneous Services,允许 Oracle 数据库直接访问非 Oracle 数据源。
晓松
2025/04/09
1830
pycharm 连接数据库报错[通俗易懂]
C:\Users\MACHENIKE\PycharmProjects\untitled9\venv\Scripts\python.exe C:/Users/MACHENIKE/PycharmProjects/untitled11/venv/Online-Bookstore-Management-System-master/v1.0/Book_informationUI.py Traceback (most recent call last): File “src\pymssql.pyx”, line 636, in pymssql.connect File “src_mssql.pyx”, line 1964, in _mssql.connect File “src_mssql.pyx”, line 682, in _mssql.MSSQLConnection.init File “src_mssql.pyx”, line 1690, in _mssql.maybe_raise_MSSQLDatabaseException _mssql.MSSQLDatabaseException: (18456, b”\xe7\x94\xa8\xe6\x88\xb7 ‘SA’ \xe7\x99\xbb\xe5\xbd\x95\xe5\xa4\xb1\xe8\xb4\xa5\xe3\x80\x82DB-Lib error message 20018, severity 14:\nGeneral SQL Server error: Check messages from the SQL Server\nDB-Lib error message 20002, severity 9:\nAdaptive Server connection failed (localhost)\nDB-Lib error message 20002, severity 9:\nAdaptive Server connection failed (localhost)\n”)
全栈程序员站长
2022/09/25
1.8K0
PHP数据库连接池SQL Relay安装使用
SQL Relay按照其官网http://sqlrelay.sourceforge.net/index.html上所说是:A powerful database connection management solution.
Java架构师必看
2021/03/22
1.4K0
函数计算 Python 连接 SQL
python 连接数据库通常要安装第三方模块,连接 MS SQL Server 需要安装 pymssql 。由于 pymsql 依赖于 FreeTDS,对于先于 2.1.3 版本的 pymssql,需要先安装 FreeTDS。由于早期版本的 pymssql 只提供了 windows 下的 wheel 打包,其他平台(如 linux)需要从源码包编译安装,那需要先安装 freetds-dev 包,以提供必要的头文件。
py3study
2020/01/06
1.4K0
SQL Relay开源的数据库池连接代理服务器
一、SQLRelay是什么?SQLRelay是一个开源的数据库池连接代理服务器二、SQLRelPHP
Java架构师必看
2021/03/22
2.7K0
python pymssql_Python模块-pymssql[通俗易懂]
Python默认的数据库是 SQLlite,不过它对MySql以及SQL server的支持也可以。如果想链接操作SQL server,需使用第三方包pymssql
全栈程序员站长
2022/07/04
1.5K0
python连接SQL Server数据
工具:django-pyodbc-azure django-pyodbc-azure这个工具是目前据我所知最好用的django链接mssql的库 它有很多版本,需要配合你的Django版本,来下载。附上网址:https://pypi.org/project/django-pyodbc-azure/1.11.0.0/ 可以从历史版本里看看说明文档,看是否适合你的django版本,这里看1.11版本的说明文档。
py3study
2020/01/07
2.8K0
Windows下载安装配置SQL Server、SSMS,使用Python连接读写数据
哈喽大家好,前段时间,有个读者提了个需求,将excel文件批量存储到sqlserver,不知道大家sqlserver用的多不多,我是毕业后就没用过了,基本都是和mysql打交道。
老表
2022/02/16
1.2K0
Windows下载安装配置SQL Server、SSMS,使用Python连接读写数据
在Mac/Linux系统下安装pymssql模块
在非Windows环境下去访问,连接 MSSQL 数据,本身就是件苦差事来的。自写Python程序以来在ORM方面都是使用pyxxx的模块,果不其然连接 MSSQL 也有个模块叫pymssql,只是实际使用中并不是特别的顺利。如笔者所处的环境就是如此,开发环境为OSX 10.11,发布环境为CentOS 6.4,按官方的安装步骤实行下来,Linux 环境是OK的,只是 Mac 环境下安装失败,错误的堆栈信息如下:
凡梦星尘
2024/11/20
1260
【Python】已完美解决:(156, b“Incorrect syntax near the keyword ‘group’.DB-Lib error message 20018, severity
在使用 Python 连接 SQL Server 数据库并执行 SQL 查询时,可能会遇到如下错误:
屿小夏
2024/06/16
2870
CENTOS 7 如何为 PHP 5.6 安装 MSSQL 扩展
1、安装 freetds 2、安装 mssql.so 扩展(php 的 mssql 扩展依赖于 freetds)
用户4988376
2021/08/09
1.3K0
攻破SQL Server只需三步:MSDAT的终极渗透测试工具讲解
大家好,波哥又来给大家推荐好东西啦! 欢迎大家在评论区留言评论自己想了解的工具、方向或职业等互联网相关内容,点赞和推荐多的,波哥会优先安排解答! 关注波哥 介绍 MSDAT(Microsoft SQL Database Attacking Tool)是一个开源工具,专为渗透测试设计,帮助评估 Microsoft SQL Database 的远程安全性。它可以查找有效登录凭据、提升数据库权限,并通过如 xp_cmdshell 和 OLE Automation 等方法在主机操作系统上执行命令,适合模拟真实攻击场景。 三重安全检测体系 ➢ 凭证爆破模块:支持NTLMv2认证爆破,成功率提升37% ➢ 权限提升引擎:集成xp_cmdshell/OLE双路径提权 ➢ OS命令注入:支持持久化后门部署(需DBA权限) 核心功能矩阵 功能模块技术实现适用场景凭证爆破TDS协议NTLMv2认证支持弱口令检测与访问控制验证权限提升存储过程滥用检测数据库权限配置审计命令执行xp_cmdshell/OLE自动化利用横向移动攻击路径验证信息收集数据库元数据提取资产发现与配置审计 环境配置与依赖管理 基础依赖组件 # Ubuntu 22.04 LTS 部署示例(验证于2024.03) sudo apt-get install -y build-essential python3-dev libsybdb5 wget ftp://ftp.freetds.org/pub/freetds/stable/freetds-1.3.12.tar.gz tar xvf freetds-1.3.12.tar.gz && cd freetds-1.3.12 ./configure --prefix=/usr/local --with-tdsver=7.3 make && sudo make install Python环境配置 # 虚拟环境创建(Python 3.8+) python3 -m venv msdat-env source msdat-env/bin/activate pip install -r requirements.txt # 包含cython>=0.29, pymssql>=2.2.7 高匿代理配置 proxies = { 'http': 'socks5h://127.0.0.1:9050', 'https': 'socks5h://127.0.0.1:9050' } requests.get(url, proxies=proxies, verify=False) 日志清除方案 EXEC sp_configure 'showadvanced options', 1; RECONFIGURE; EXEC sp_configure 'xp_cmdshell', 0; RECONFIGURE; 用例 获取数据库技术信息 - **mssqlinfo**:如 `./msdat.py mssqlinfo -s $SERVER -p $PORT --get-max-info` 密码猜测 - **passwordguesser**:如 `./msdat.py passwordguesser -s $SERVER -p $PORT -U $USER -P $PASSWORD -d $DATABASE --force-retry --search`。 执行命令 - **xpcmdshell**:如 `./msdat.py xpcmdshell -s $SERVER -p $PORT -U $USER -P $PASSWORD --shell` 文件读写和下载 - **oleautomation**:如 `./msdat.py oleautomation -s $SERVER -p $PORT -U $USER -P $PASSWORD -d $DATABASE --read-file 'C:\Users\Administrator\Desktop\temp.txt'`。 凭证爆破模块 # 使用字典攻击模式示例 ./msdat.py passwordguesser -s 192.168.1.100 -p 1433 \ -U sa -d master --wordlist ./wordlists/sql_pass.txt \ --max-retries 3 --lockout-threshold 5 权限提升路径 -- 检测可利用的存储过程 EXEC sp_configure 'show advanced options', 1 RECONFIGURE EXEC sp_configure 'xp_cmdshell', 1 技术要点:
IT运维技术圈
2025/03/11
1360
攻破SQL Server只需三步:MSDAT的终极渗透测试工具讲解
python 使用pymssql 连接M
############################################################## # Copyright (C), 2009-2010, aliyun # FileName: dbunit.py # Author: elbert.chenh # Version: 0.1 # History: # <Author/Maintainer> <Date> <Modification> # elbert.chenh 10/07/11 Create this file ############################################################# import sys import ConfigParser import datetime,time import binascii import os import types import os import pdb import pymssql class DBUnit: def __init__(self,user=None,passwd=None,host=None,database=None): try: self.connection = pymssql.connect(host=host, user = user, password =passwd, database=database) self.cursor= self.connection.cursor() except: print "Could not connect to DB server." exit(0) def __del__(self): self.cursor.close() self.connection.close() def read(self,Sql,param=None): '''Exec select sql , return type is Tuple,use len fun return select row num use param like this: Sql=select * from table where param=%s and param1=%s param=(value1,valuei2) ''' try: cursor = self.connection.cursor() if param==None: cursor.execute(Sql) rs = cursor.fetchall() cursor.close() else: cursor.execute(Sql,param) rs = cursor.fetchall() cursor.close() except Exception,e: print e rs = () return rs def write(self,sql,param,iscommit=True): try: cursor = self.connection.cursor() print sql n = cursor.executemany(sql,param) if iscommit : self.connection.commit() return n except Exception,e: print e self.connection.rollback() return -1 def writeOneRecord(self,sql): try: cursor = self.connection.cursor() n = cursor.execute(sql) self.connection.commit() return int(cursor.lastrowid) except: self.connection.rollback() return -1 if __name__ == '__main__': a = time.time() db = DBUnit('accelbert08','a1234561','cacelbert01.mysql.alibabalabs.com:3306','elbert08') //不使用默认端口 rs = db.read("select count(*) from t_file") print rs #db.delete(dictinu)
py3study
2020/01/09
5990
python 使用pymssql连接sq
----原文地址:http://www.cnblogs.com/baiyangcao/p/pymssql_basic.html
py3study
2020/01/09
1.6K0
【Python】已解决:pymssql._pymssql.OperationalError: (156, b“Incorrect syntax near the keyword ‘FROM‘. DB-
已解决:pymssql._pymssql.OperationalError: (156, b“Incorrect syntax near the keyword ‘FROM‘. DB-Lib error”
屿小夏
2024/09/06
2680
【Python】已解决:pymssql._pymssql.OperationalError: (156, b“Incorrect syntax near the keyword ‘FROM‘. DB-
PHP 编辑代码接续
; If you wish to have an extension loaded automatically, use the following
狮龙书廊
2022/01/05
1.1K0
PHP  编辑代码接续
推荐阅读
相关推荐
python利用pymssql连接SQL
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档