边缘计算【智能+安全检测】系列教程--使用OpenCV+GStreamer实现真正的硬解码,完全消除马赛克-程序员宅基地

技术标签: 安全  边缘计算  人工智能  边缘计算图像识别  图像识别  opencv  

在这里插入图片描述
通过现有博客的GST_URL = "rtspsrc location=rtsp://admin:[email protected]:554/h264/ch01/main/av_stream latency=150 ! rtph264depay ! avdec_h264 ! videorate ! videoconvert ! appsink sync=false" GStreamer的解码方式解码,大多情况应该存在上图马赛克的问题,请勿紧张,其实上述url并没有调用硬件解码,后面有调用硬件解码的ULR,我们来在接下来的介绍中释获。
通过RTSP协议连接海康威视摄像头将图片送入AI推理,发现OpenCV的VideoCapture使用的是软解码大量消耗了cpu的资源,并无法做到实时数据处理存在5秒钟的延时。只能把解码这部分送到硬件解码器去处理分摊掉cpu的压力,

NVCODEC是什么?

一语概括就是Nvidia提供的硬件编解码,它是一个专门的硬件元器件,在处理视频上面很有优势,但是不代表不消耗任何的cpu或者内存资源。下面我们就一步步开始实现硬件编码。

编译OpenCV
  1. 安装相关依赖
sudo apt-get update
sudo apt-get dist-upgrade -y --autoremove
sudo apt-get install -y \
        build-essential \
        cmake \
        git \
        gfortran \
        libatlas-base-dev \
        libavcodec-dev \
        libavformat-dev \
        libavresample-dev \
        libcanberra-gtk3-module \
        libdc1394-22-dev \
        libeigen3-dev \
        libglew-dev \
        libgstreamer-plugins-base1.0-dev \
        libgstreamer-plugins-good1.0-dev \
        libgstreamer1.0-dev \
        libgtk-3-dev \
        libjpeg-dev \
        libjpeg8-dev \
        libjpeg-turbo8-dev \
        liblapack-dev \
        liblapacke-dev \
        libopenblas-dev \
        libpng-dev \
        libpostproc-dev \
        libswscale-dev \
        libtbb-dev \
        libtbb2 \
        libtesseract-dev \
        libtiff-dev \
        libv4l-dev \
        libxine2-dev \
        libxvidcore-dev \
        libx264-dev \
        pkg-config \
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/llm765800916/article/details/137631678

智能推荐

漏洞扫描软件AWVS的介绍和使用_awvs csdn-程序员宅基地

文章浏览阅读740次,点赞21次,收藏20次。Acunetix Web Vulnerability Scanner(AWVS)可以扫描任何通过Web浏览器访问和遵循HTTP/HTTPS规则的Web站点。适用于任何中小型和大型企业的内联网、外延网和面向客户、雇员、厂商和其它人员的Web网站。AWVS可以通过检查SQL注入攻击漏洞、XSS跨站脚本攻击漏洞等漏洞来审核Web应用程序的安全性。主菜单功能介绍:主菜单共有5个模块,分别为Dashboard、Targets、Vulnerabilities、Scans和Reports。_awvs csdn

毕设分享 基于STM32的智能水产养殖系统_毕业设计水产养殖-程序员宅基地

文章浏览阅读238次。这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天要分享的是毕设分享 基于STM32的智能水产养殖系统(源码+硬件+论文)学长这里给一个题目综合评分(每项满分5分)难度系数:3分工作量:3分创新点:4分包含内容。_毕业设计水产养殖

【资料分享】基于单片机大气压监测报警系统电路方案设计、基于飞思卡尔的无人坚守点滴监控自动控制系统设计(程序,原理图,pcb,文档)_基于单片机和无线通信的压强压力报警系统-程序员宅基地

文章浏览阅读1.2k次,点赞21次,收藏21次。如果我们说“10元给我汽车小零花钱妈妈”,或者“妈妈给我10亿人民币,我要买F-22”,妈妈就会觉得奇怪,听不懂我们的意思,或者理解错误,责备我们。汇编语言是计算机发展初期的一门语言,它的执行效率非常高,但是开发效率非常低,所以在常见的应用程序开发中不会使用汇编语言,只有在对效率和实时性要求极高的关键模块才会考虑汇编语言,例如操作系统内核、驱动、仪器仪表、工业控制等。我们说的是汉语,是“中国语言”,只要把我们的需求告诉父母,父母就会满足,我们用“中国语言”来控制父母,让父母做我们喜欢的事情。_基于单片机和无线通信的压强压力报警系统

Python里的全局变量、局部变量、类的self.*-程序员宅基地

文章浏览阅读853次,点赞20次,收藏21次。全局变量没有在任何函数内部定义,并且具有全局范围的变量;局部变量的定义:在函数内部定义的变量,范围仅限于该函数;是在一个函数内部声明一个全局变量,以便在函数内部对全局变量进行修改,这个全局变量本身已经定义过了,而不是我想当然认为的定义了一个全新的全局变量!️如果没有将其声明为全局变量,则在函数内部更改或创建的任何变量都是局部变量。当全局变量和局部变量的命名一样时,在一个函数内部还是会使用自己内部的局部变量;

国内可访问GPG Keyserver列表-程序员宅基地

文章浏览阅读1.7w次,点赞3次,收藏5次。apt-get update 或者aptitude update出现以下错误:The following signatures couldn't be verified because the public key is not available: : NO_PUBKEY B5B7720097BB3B58解决方法:1,从任何一个key server获得缺失的公钥B5B7720_keyserver

51-矩阵键盘和矩阵键盘密码锁_矩阵键盘密码锁如何不可见-程序员宅基地

文章浏览阅读907次,点赞3次,收藏4次。矩阵键盘和矩阵键盘密码锁_矩阵键盘密码锁如何不可见

随便推点

网站流量地域统计里面有“APNIC”这个词,指什么意思呢?_apnic是什么意思-程序员宅基地

文章浏览阅读1.1k次。关于APNIC (Asia-Pacific Network Information Centre)是现在在世界中操作的五个地区的英特网登记处之一,分配B类IP地址的国际组织。它提供全球性的支持互联网操作的分派和注册服务。这是成员包括网络服务提供商、全国互联网登记, 和相似的组织的一个非营利, 基于会员资格的组织。APNIC 就是"亚太地区互联网信息中心",负责分配亚洲太平洋区域的网站IP地址,包含_apnic是什么意思

EOJ1147-程序员宅基地

文章浏览阅读87次。进制转换Time Limit:1000MS Memory Limit:30000KBTotal Submit:2041 Accepted:765Description 输入一个十进制数N,将它转换成R进制数输出。Input 输入一个正整数T。表示测试数据的组数。每个测试实例包含两个整数N(32位整数)和R(2Output 为每个测试实

使用Autolayout实现UITableView的Cell动态布局和高度动态改变_ios cell布局完成会调用什么方法?-程序员宅基地

文章浏览阅读604次。http://blog.163.com/china_uv/blog/static/1171372672014111681232340/本文翻译自:stackoverflow有人在stackoverflow上问了一个问题:如何在UITableViewCell中使用Autolayout来实现Cell的内容和子视图自动计算行高,并且能够保持平滑滚动的?_ios cell布局完成会调用什么方法?

《剑指 Offer》专项突破版 - 面试题 88 : 动态规划的基础知识(C++ 实现)-程序员宅基地

文章浏览阅读1k次,点赞29次,收藏16次。面试题 88 : 爬楼梯的最少成本(C++ 实现)

argmin是什么意思-程序员宅基地

文章浏览阅读9.3k次,点赞13次,收藏11次。举个简单的例子,考虑一个函数 f(x),其中 x 是实数。如果 f(x) 在 x = 3 时取得最小值,那么。经常用于描述需要找到某个函数的最小值时,所需的自变量的值。是一个数学术语,用于表示一个函数在其定义域中取得最小值的参数值(自变量的值),而不是最小值本身。表示函数的自变量(通常是一个实数或向量),当输入到该函数后,使函数取得最小值的自变量的值。的名称来源于 “argument of the minimum”,意思是最小值的参数。这表示当 x = 3 时,函数 f(x) 的值最小。_argmin

ssm/php/node/python基于人脸识别的学生上课考勤与监控系统_人脸识别考勤系统上课-程序员宅基地

文章浏览阅读919次,点赞21次,收藏12次。该系统能够有效提高考勤的准确性和效率,减少人为错误和作弊行为,确保考勤数据的真实性和可靠性。这一技术的应用也体现了教育信息化的发展趋势,有助于培养学生的信息素养,为他们适应未来社会的发展奠定基础。在教育领域,传统的考勤方式如点名、签到等不仅耗时耗力,而且容易出现代签、漏签等问题,影响了考勤的准确性和效率。这种系统可以无缝集成到现有的校园网络中,通过实时比对数据库中存储的学生面部信息,快速准确地完成考勤工作,大大减轻了教师的管理负担,提高了教学管理的效率和质量。文末可领取本课题的JAVA源码参考。_人脸识别考勤系统上课

推荐文章

热门文章

相关标签