上位机图像处理和嵌入式模块部署(视频处理vs图像处理)

news2024/11/16 2:54:20

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】

        从目前发展的情况来看,视频处理会慢慢变成一种主流趋势。这里面的原因很多,比如说现在嵌入式soc的算力越来越强、获取图像的手段越来越方便、视频相比较图像信息更丰富等等的。不管怎么说,视频相比较图像而言,除了对soc的算力有一定要求之外,几乎没有什么缺点。就算是处理单张图片的信息,我们也可以从视频当中挑选质量最好的那一张来处理,这样对采集设备本身的要求也会降低很多。

1、视频图像信息更多

        视频,简单一点说,就可以看成是流动的图像。如果视频没有明显的卡顿,那么只需要1秒钟的帧率超过24即可。所以对于采集设备来说,完全可以从24帧的数据当中挑选质量最好的那一张来处理。因为光源、光源控制、镜头、曝光时间,这些因素都聚集到一起,有的时候需要连续拍摄才能获取到质量最好的那一张图片,某种意义上说和摄影是一样的。

2、更多的采集设备

        和之前相比较,现在的图像采集设备更多,比如说手机、pad、电脑、随身记录仪、工业摄像头设备、安防设备等等。这些设备都有一个共同的特点,那就是既支持图像的拍摄,也支持网络传输。所以,对于上层处理软件来说,基本上只要一根网线,或者有一个WiFi设备,就可以很顺利地把这些设备上的图像拿到,后续的处理基本上就和这些设备没啥关系了。

3、更强的芯片性能

        这里说的处理设备有两种,一种是pc,一种是soc本身。pc越来越强,core越来越多,频率也越来越高,这些都毋庸置疑的。而嵌入式soc越来越强,cpu的频率普遍达到了2G Hz,而且很多高端的soc都集成了isp、gpu、npu这些复杂的ip core,处理图像更加地得心应手。这使得之前只能在pc端实现的功能,现在同样可以放到嵌入式终端实现,一下子增加了很多的应用场景,扩展了原先产品的种类和类型。

4、更安全的处理算法

        之前图像处理的时候,由于只有一张图像,整个安全措施还是不太高的。比如大家取款的时候,需要进行人脸识别认证,如果仅仅是一张图片,那么作假的成本其实比较低,比如说拿出一张素描来代替人脸。但是如果是视频认证,就需要进行摇头、眨眼、前进、后退等动作,这样安全性会一下子高很多,这是之前单纯图像处理没有办法比拟的。所以,从安全性的角度来说,视频比图像处理也更加地合适。

5、视频在opencv上的处理

        对于opencv来说,不管是图像处理,还是视频处理,这方面的差距并不会很大。因为,对于它来说,图像的采集也是通过一个frame、一个frame去处理的,所以这里提供了一个最简单的opencv视频采集脚本,大家可以回头自己动手测试下,

# -*- coding: utf-8 -*-
import cv2
 
cap = cv2.VideoCapture(0)
 
while True:
    ret, frame = cap.read()
    
    if not ret:
        print("Unable to read frame.")
        break
        
    cv2.imshow('Camera', frame)
    
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break
 
cap.release()
cv2.destroyAllWindows()

6、视频处理的挑战

        对于算法来说,视频处理和图像处理其实差别不大。不过视频中的信息,前后frame一般有一定的关联性,所以算法上还是存在优化空间的。但是对于单张图片而言,这里面就会存在一个问题,那就是单张图片处理的时间必须要尽可能地少,通常来说,必须要少于40ms,即保持画面连续播放的最低要求。或者换一种说法,单张图片的时间可以是40ms以上,但是pipeline结果输出的时间必须要小于40ms。因为一旦大于这个时间,很容易发生卡顿的现象,客户使用体验极差。记得之前在做车载设备时、也就是adas的dms系统的时候,如果单张图像处理时间过长,卡顿非常明显,一般来说,客户都是很难认可和接受的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1421443.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【大数据安全】大数据安全的挑战与对策基础设施安全

目录 一、大数据安全的挑战与对策 (一)数据加密技术 (二)大数据安全与隐私 (三)大数据安全保障体系 (四)华为大数据安全解决方案 二、基础设施安全 (一&#xff0…

TSINGSEE青犀视频智慧电梯管理平台,执行精准管理、提升乘梯安全

一、方案背景 随着城市化进程的不断加快,我国已经成为全球最大的电梯生产和消费市场,电梯也成为人们日常生活中不可或缺的一部分。随着电梯数量的激增,电梯老龄化,维保数据不透明,物业管理成本高,政府监管…

用React给XXL-JOB开发一个新皮肤(四):实现用户管理模块

目录 一. 简述二. 模块规划 2.1. 页面规划2.2. 模型实体定义 三. 模块实现 3.1. 用户分页搜索3.2. Modal 配置3.3. 创建用户表单3.4. 修改用户表单3.5. 删除 四. 结束语 一. 简述 上一篇文章我们实现登录页面和管理页面的 Layout 骨架,并对接登录和登出接口。这篇…

【代码随想录】刷题笔记Day56

前言 26回了老家参加二姨的婚礼,还逛了几圈亲戚,回来就接家教的活,想到还要刷题开组会,回家注定是没法怎么休息啦,可恶 42. 接雨水 - 力扣(LeetCode) 暴力解法(双指针优化&#xf…

SpringBoot中集成Minio高性能分布式存储文件服务入门

场景 若依前后端分离版手把手教你本地搭建环境并运行项目: 若依前后端分离版手把手教你本地搭建环境并运行项目-CSDN博客 参考上面搭建项目。 Minio Minio是基于Go语言编写的对象存储服务,适合于存储大容量非结构化的数据,例如图片、音频…

定制自己的linux

记得看目录哦! 1. 基本介绍2. 思路分析3. 开始定制3.1 添加一块20G的硬盘3.2 重启,进行磁盘分区3.3 格式化分区3.4 创建目录,并挂载磁盘3.5 安装grub3.6 看是否安装上3.7 内核文件拷贝到磁盘3.8 修改grub2/grub.cfg3.9 创建目标主机的根文件系…

Spring Boot项目中集成连接池及部分细节说明

连接池 一,Connection连接二,数据库连接池三,集成数据库连接池1,Spring Boot默认连接池2,Druid连接池3,集成Druid(原生版本)3.1,引入依赖3.2,配置数据源3.3&a…

CSS 实现立体字效果

我们在工作中&#xff0c;很多场景会遇到立体文字&#xff0c;今天我们就来实现下&#xff0c;很简单&#xff0c;算是水文章吧&#xff1a; <h1>立体字体</h1>h1 {margin: 100px 0 0 100px;font-size: 5em;color: #fff;text-shadow: -1px 1px #bbb,-2px 2px #bbb…

设计模式——职责链模式(Chain of Responsibility Pattern)

概述 职责链模式(Chain of Responsibility Pattern)&#xff1a;避免请求发送者与接收者耦合在一起&#xff0c;让多个对象都有可能接收请求&#xff0c;将这些对象连接成一条链&#xff0c;并且沿着这条链传递请求&#xff0c;直到有对象处理它为止。职责链模式是一种对象行为…

深度学习(9)--pydot库和graphviz库安装流程详解

目录 一.pydot库安装 二.graphviz库安装 一.pydot库安装 pydot的安装可直接在编译器安装相关包&#xff0c;以PyCharm举例&#xff1a; 如果搜索可用软件包显示为空&#xff0c;记得在此处把使用Conda软件包管理器”点亮 二.graphviz库安装 点击链接下载安装包graphviz-2.38…

DX-11A DC0.075A 型信号继电器 柜内安装,板前接线

DX-11信号继电器&#xff1b; DX-11A信号继电器&#xff1b; DX-11B信号继电器&#xff1b; DX-11C信号继电器&#xff1b; DX-11Q信号继电器&#xff1b; DX-11A/Q信号继电器&#xff1b; DX-11B/Q信号继电器&#xff1b; DX-11C/Q信号继电器&#xff1b; 一. 用途 DX-11/0.…

.net core 6 集成 elasticsearch 并 使用分词器

1、nuget包安装NEST、安装elasticsearch、kibana、ik分词器、拼音分词器 2、创建操作对象 //索引库 static string indexName "testparticper"; //es 操作对象 ElasticClient elasticClient new ElasticClient(new ConnectionSettings(new Uri("http://192.…

Python使用分治算法作归并排序

对于分治算法的一个较为常规的应用中&#xff0c;归并排序是一个使用分治算法的排序方式。给定一个随机排序的数组&#xff0c;我们要将其元素按照升序或者降序的方式进行排序&#xff0c;可以设想到这样的一种算法&#xff0c;如果一个数组的上半部分和下半部分已经排好序&…

(HAL)STM32F407ZGT6——10-4 高级定时器 PWM 输入模式实验

一、高级定时器简介 高级定时器的框图和通用定时器框图很类似&#xff0c;只是添加了其它的一些功能&#xff0c;如&#xff1a;重复计数器、带死区控制的互补输出通道、断路输入等。 高级定时器的时钟来自APB2, 而PCLK2 168Mhz, 我们设置PPRE2不分频, 因此高级定时器时钟 …

如何通过Hive/tez与Hadoop的整合快速实现大数据开发

一、Hive的功能 Hive是基于Hadoop的一个外围数据仓库分析组件&#xff0c;可以把Hive理解为一个数据仓库&#xff0c;但这和传统的数据库是有差别的。 传统数据库是面向业务存储&#xff0c;比如 OA、ERP 等系统使用的数据库&#xff0c;而数据仓库是为分析数据而设计的。同时…

05 MyBatis之表关系的声明+事务+SqlSession三件套的作用域

MyBatis 支持一对一&#xff0c;一对多&#xff0c;多对多查询。XML 文件和注解都能实现关系的操作。多对多实质就是一对多 1. 表关系的维护 1.1 One一对一 一对一查询和多表(两表)查询很相似, 都能查询两表的全部属性 区别是一对一可以在对象中嵌套对象, 呈现包含关系; 多表…

Kotlin快速入门系列9

Kotlin对象表达式和对象声明 对象表达式 有时&#xff0c;我们想要创建一个对当前类有些许修改的对象同时又不想重新声明一个子类。如果是Java&#xff0c;可以用匿名内部类的概念来解决这个问题。kotlin的对象表达式和对象声明就是为了实现这一点(创建一个对某个类做了轻微改…

Java 开发环境 全套包含IDEA

一、JDK配置 1.下载 JDK Builds from Oracle 去这边下载open JDK 2.JDK环境变量配置 按win&#xff0c;打开设置 找到环境变量编辑 这边输入的是你下载的那个JDK的bin的路径 检擦配置是否正确在cmd中输入 二、IDEA安装配置 1.下载&#xff08;社区版&#xff09; JetBrai…

干货 | 大模型在图数据分析、推荐系统和生物科学中的综合应用

点击蓝字 关注我们 AI TIME欢迎每一位AI爱好者的加入&#xff01; 图机器学习、推荐系统与大语言模型的融合正成为新的前沿热点。图机器学习通过利用图结构数据&#xff0c;能够有效地捕捉和分析复杂关系和模式。同时&#xff0c;推荐系统正逐步成为我们日常生活的一部分&#…

华为——NGFW Module安装在集群交换机上,二层双机负载分担部署,交换机重定向引流

NGFW Module安装在集群交换机上&#xff0c;二层双机负载分担部署&#xff0c;交换机重定向引流 业务需求 如图1所示&#xff0c;两台交换机集群组网&#xff0c;两块NGFW Module分别安装在两台交换机的1号槽位组成双机负载分担组网。NGFW Module工作在二层&#xff0c;也就是…