基于海思soc的智能产品开发(视频的后续开发)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】
前面我们讨论了camera,也讨论了屏幕驱动,这些都是基础的部分。关键是,我们拿到了这些视频数据之后,是否还需要做一些后面的工作。难道,拿到这些视频数据之后,仅仅是为了lcd显示一下,是否有必要保存下来、送出去,或者是从视频中提一些信息呢。
截图是hdmi转csi2的设计,呼应文章最后一小段内容。
1、mcu、fpga、soc处理视频的驱动差不多
其实,不光soc可以处理视频,mcu和fpga也是可以处理视频的。只不过mcu处理的视频,一般sensor都自带isp功能,fpga处理sensor则比较麻烦一点,编译起来也不方便。相比较而言,soc处理视频会复杂一点,分成了i2c驱动、mipi驱动、isp驱动、uvc驱动等几个部分。对于mcu和fpga的驱动,大家可以参考某火、某原子的资料。对于soc资料,i2c驱动、mipi驱动、uvc驱动这些都可以找到,但是isp,一般厂家都只是提供工具,不会提供对应驱动代码的。客户会使用、会配置isp即可。
比如,这是v3s驱动中mipi的代码,
https://github.com/aodzip/sun6i-mipi-csi
假设sensor用的是ov5640,驱动代码在这,
https://elixir.bootlin.com/linux/v5.2.21/source/drivers/media/i2c/ov5640.c
2、视频编码
和传统pc编码相比较,嵌入式soc上面的视频编码一般都是硬件完成的。常见的编码有h264、h265。具体的编码,通常都是硬件来完成的,而把h264、h265组合成mp4、avi这样的工作,就会用ffmepg来完成。毕竟对于软件来说,实时编码几乎是不可能的,只要靠硬件来实现实时的编码操作。
3、视频解码
很多时候,视频编、解码不一定是同时存在的。比如说,ipcam上面,很多soc只有编码。而dvr等很多设备,则只有视频解码。这里面主要还是基于成本和市场的考虑。当然,如果不考虑成本,或者soc的价格足够高,这个时候视频编、解码就会都存在了。
4、isp功能
虽然都叫isp,但是不同厂家的isp差异很大。可以这么说,一般的小厂soc也就是做一些基本的图像处理,比如自动曝光、自动白平衡、自动对焦、黑电平、左右翻转、上下反转、噪声处理、osd这些。而大厂的soc,这方面做的要多得多,不仅引入更多的isp图像算法,比如去雾算法、畸变矫正等等,还会引入更多的ai model对isp进行处理。所以大家虽然名字都叫isp,但是差异还是非常大的。
如果本身对isp的要求比较高,可以考虑大厂的soc,反之为了降成本的话,则可以选择一般的soc,甚至是自带部分isp功能的sensor,都是可以的。
5、存储
本地存储是最容易想到的功能。一般的行车记录仪、运动相机,基本上就是编码+lcd显示/本地保存这样的思路。
6、npu处理
现在图像处理,除了图像本身,还会引入越来越多的ai功能。目前来说,刚需的ai功能有这几个部分,人脸识别、车牌识别、ocr识别、指纹识别等等。npu的话,不必注重数值越大越好,主打一个够用就行。毕竟一分钱,一分货。
7、机器视觉
图像本身除了用来看,还可以从中提取到很多的有用信息。这个时候,可以把一些常规的机器视觉算法移植到嵌入式设备上,这样设备摇身一变,就是智能嵌入式设备了。
8、网络处理
目前视频处理这块很火,有一部分就是基于网络的处理。网络的带宽一般都是大小一定的,我们总是希望图像要尽量地好,但是带宽要尽量地低,延迟也要尽可能地低,所以这里面能做的工作还是非常多的。常见的rtsp、rtmp未必能满足我们要求,有些场景需要我们自定义协议才能去解决。
网络这部分,如果是后端处理,一般就是ipcam;如果是前端处理,一般就是dvr。不过大家可以扩展一下思路,毕竟还可以用于飞控、监控、医疗等很多领域。
9、fpga导出,接入csi2
有些算法如果为了低延时和高性能,引入fpga也是有可能的。这种情况下,就是fpga接入sensor,对图像进行预处理之后,再把图像传给soc的csi2接口,进行后续的处理。fpga虽然处理图像比较方便,但是没有linux的帮助,很多事情都做不了,也不方便。所以,fpga+soc这样的处理模式,还是非常方便的。
10、csi2接入转换芯片
很多时候,我们会认为,csi2接口只能接入sensor,其实除了camera sensor之外,还可以是fpga的接口,甚至是其他芯片转换过来的数据,比如hdmi转换过来的mipi数据。大家试想一下,如果是hdmi转换过来的数据,不就是一个视频采集设备吗?现在的销售直播、游戏直播、综艺直播这么火,这方面肯定有很大的市场。
相关文章:
基于海思soc的智能产品开发(视频的后续开发)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 前面我们讨论了camera,也讨论了屏幕驱动,这些都是基础的部分。关键是,我们拿到了这些视频数据之后,…...
为什么相关性不是因果关系?人工智能中的因果推理探秘
目录 一、背景 (一)聚焦当下人工智能 (二)基于关联框架的人工智能 (三)基于因果框架的人工智能 二、因果推理的基本理论 (一)因果推理基本范式:因果模型࿰…...
【QT】已解决:Qt4.11.0无法使用MSVC编译器问题
目录 一、背景 1.本机环境 2.问题描述 3.问题解决前后对比图 二、详细操作 1.下载项目二所需qt环境 2.解决思路 3.安装VS2017 4.安装MSVC调试器 5.打开qtCreator查看编译器 5.编译运行项目二 三、参考 一、背景 1.本机环境 windows11 qtCreator4.11.0 minGW 64位…...
python如何解析word文件格式(.docx)
python如何解析word文件格式(.docx) .docx文件遵从开源的“Office Open XML标准”,这意味着我们能用python的文本操作对它进行操作(实际上PPT和Excel也是)。而且这并不是重复造轮子,因为市面上操作.docx的…...
点云目标检测训练数据预处理---平面拟合与坐标转换(python实现)
在做centerpoint训练之前,需要先对点云数据进行标注,然后制作kittti数据集。不用nuScenes或者waymo数据集的理由也很简单,因为麻烦,没有kitti数据集直观。 kitti数据集的格式如下,可以看到数据集中只有航向角ÿ…...
Debezium日常分享系列之:对于从Oracle数据库进行快照的性能优化
Debezium日常分享系列之:对于从Oracle数据库进行快照的性能优化 源数据库Kafka Connect监控测试结果 源数据库 Oracle 19c,本地,CDB数据库主机的I/O带宽为6 GB/s,由此主机上运行的所有数据库共享临时表空间由42个文件组成&#x…...
logback日志自定义占位符
前言 在大型系统运维中,很大程度上是需要依赖日志的。在java大型web工程中,一般都会使用slf4jlogback这一个组合来实现日志的管理。 logback中很多现成的占位符可以可以直接使用,比如线程号【%t】、时间【%d】、日志等级【%p】,…...
【Red Hat8】:搭建FTP服务器
目录 一、匿名FTP访问 1、新建挂载文件 2、挂载 3、关闭防火墙 4、搭建yum源 5、安装VSFTPD 6、 打开配置文件 7、设置配置文件如下几个参数 8、重启vsftpd服务 9、进入图形化界面配置网络 10、查看IP地址 11、安装ftp服务 12、遇到拒绝连接 13、测试 二、本地…...
华为AI培训-NLP实验
中文分词、命名实体识别、语义词性标注、语句逻辑推理、文本摘要、机器翻译、文本情感分析、内容创作 1 实验介绍 1.1 实验背景 中文分词、命名实体识别、语义词性标注、语句逻辑推理是自然语言处理领域中的重要任务。中文分词是将连续的汉字序列切分成有意义的词语序列…...
goodreads书籍评论爬取NRC Emotion Lexicon分析
文章目录 目标网站数据获取评论情感分析对爬虫、逆向感兴趣的同学可以查看文章,一对一小班教学:https://blog.csdn.net/weixin_35770067/article/details/142514698 目标网站 https://www.goodreads.com/book/show/3656.The_Sea 就是针对一本书进行3000+评论抓取和情感分析…...
【vitePress】基于github快速添加评论功能(giscus)
一.添加评论插件 使用giscus来做vitepress 的评论模块,使用也非常的简单,具体可以参考:giscus 文档,首先安装giscus npm i giscus/vue 二.giscus操作 打开giscus 文档,如下图所示,填入你的 github 用户…...
论文笔记(六十二)Diffusion Reward Learning Rewards via Conditional Video Diffusion
Diffusion Reward Learning Rewards via Conditional Video Diffusion 文章概括摘要1 引言2 相关工作3 前言4 方法4.1 基于扩散模型的专家视频建模4.2 条件熵作为奖励4.3 训练细节 5 实验5.1 实验设置5.2 主要结果5.3 零样本奖励泛化5.4 真实机器人评估5.5 消融研究 6 结论 文章…...
电梯系统的UML文档07
从这个类中得到的类图,构划出了软件的大部分设计。 系统结构视图提供软件和整个系统结构最复杂的也是最优雅的描述。和通常的软件系统相比,在分布式嵌入系统中了解系统组件如何协同工作是非常重要的。毕竟,每个类图仅仅是一个系统的静态设计…...
【Python】综合案例--人生重开模拟器
1. 设置初始属性 在游戏中我们设定四个属性.: 颜值 (face) 体质 (strong) 智力 (iq) 家境 (home)我们约定每个属性的范围为 [1, 10], 并且总和不能超过 20. 如果玩家输入的初始属性不合理, 就提示输入有误, 重新输入. print("-----------------------------------------…...
vue+高德API搭建前端3D交通页面
1. 模板部分 (<template>) <template><div class"content"><div><div id"container"></div></div></div> </template> 功能:定义了组件的HTML结构。分析: div.content 是最…...
2024年博客之星主题创作|猫头虎分享AI技术洞察:2025年AI发展趋势前瞻与展望
2025年AI发展趋势前瞻:猫头虎深度解析未来科技与商业机遇 摘要 2024年,AI技术迎来爆发式增长,AIGC、智能体、AIRPA、AI搜索、推理模型等技术不断突破,AI应用场景持续扩展。2025年,AI将进入全新发展阶段,W…...
算法刷题笔记——图论篇
这里写目录标题 理论基础图的基本概念图的种类度 连通性连通图强连通图连通分量强连通分量 图的构造邻接矩阵邻接表 图的遍历方式 深度优先搜索理论基础dfs 与 bfs 区别dfs 搜索过程深搜三部曲所有可达路径广度优先搜索理论基础广搜的使用场景广搜的过程 岛屿数量孤岛的总面积沉…...
虚幻基础-1:cpu挑选(14600kf)
能帮到你的话,就给个赞吧 😘 文章目录 ue非常吃cpu拉满主频打开项目编写蓝图运行原因 时间长 关于压力测试 本文以14600kf为例,双12购入,7月份产。 ue非常吃cpu 经本人测试,ue是非常吃cpu的。 拉满主频 无论任何时间…...
IP地址:127.0.0.1
概述 首先,我们需要明确 127.0.0.1 地址的含义。在网络中,127.0.0.1 地址称为本地回环地址,是一种特殊的网络地址,用于让单独的计算机进行自我回路测试和通信。这个地址在 IP 协议中被定义为环回地址。 在网络设备中,…...
深度学习 | pytorch + torchvision + python 版本对应及环境安装
Hi,大家好,我是半亩花海。要让一个基于 torch 框架开发的深度学习模型正确运行起来,配置环境是个重要的问题,本文介绍了 pytorch、torchvision、torchaudio 及 python 的对应版本以及环境安装的相关流程。 目录 一、版本对应 二…...
学习ASP.NET Core的身份认证(基于JwtBearer的身份认证6)
重新创建WebApi项目,安装Microsoft.AspNetCore.Authentication.JwtBearer包,将之前JwtBearer测试项目中的初始化函数,jwt配置类、token生成类全部挪到项目中。 重新编写login函数,之前测试Cookie和Session认证时用的函数适合m…...
企业级流程架构设计思路-基于价值链的流程架构
获取更多企业流程资料 纸上得来终觉浅,绝知此事要躬行 一.企业流程分级规则定义 1.流程分类分级的总体原则 2.完整的流程体系需要体现出流程的分类分级 03.通用的流程分级方法 04.流程分级的标准 二.企业流程架构设计原则 1.流程架构设计原则 流程框架是流程体…...
深度学习 DAY2:Transformer(一部分)
前言 Transformer是一种用于自然语言处理(NLP)和其他序列到序列(sequence-to-sequence)任务的深度学习模型架构,它在2017年由Vaswani等人首次提出。Transformer架构引入了自注意力机制(self-attention mech…...
【2025】拥抱未来 砥砺前行
2024是怎样的一年 2024在历史画卷上是波澜壮阔的一年,人工智能的浪潮来临,涌现出无数国产大模型。 22年11月ChatGPT发布,它的出现如同在平静湖面上投下一颗巨石,激起了层层波澜,短短五天用户数就达到了100万࿰…...
精选100+套HTML可视化大屏模板源码素材
大屏数据可视化以大屏为主要展示载体的数据可视化设计。 “大面积、炫酷动效、丰富色彩”,大屏易在观感上给人留下震撼印象,便于营造某些独特氛围、打造仪式感。 原本看不见的数据可视化后,便能调动人的情绪、引发人的共鸣。 使用方法&…...
欧拉(Euler 22.03)安装ProxySQL
下载离线安装包 proxysql-2.0.8-1-centos7.x86_64.rpm 链接: https://pan.baidu.com/s/1R-SJiVUEu24oNnPFlm9wRw 提取码: sa2w离线安装proxysql yum localinstall -y proxysql-2.0.8-1-centos7.x86_64.rpm 启动proxysql并检查状态 systemctl start proxysql 启动proxysql syste…...
Electron实践继续
文章目录 前言一、知识储备前提二、开发工具集(一)代码编辑器之选(二)命令行工具运用(三)Git 与 GitHub 协作利器(四)Node.js 与 npm 核心环境 你的第一个Electron应用程序 前言 上…...
【STM32-学习笔记-11-】RTC实时时钟
文章目录 RTC实时时钟一、RTC简介二、RTC框图三、RTC基本结构四、RTC操作注意事项五、RTC函数六、配置RTCMyRTC.c 七、示例:实时时钟①、main.c②、MyRTC.c③、MyRTC.h RTC实时时钟 一、RTC简介 RTC(Real Time Clock)实时时钟 RTC是一个独立…...
使用ffmpeg提高mp4压缩比,减小文件体积【windows+ffmpeg+batch脚本】
文章目录 关于前情提要FFmpeg是什么使用脚本运行FFmpeg首先,下载ffmpeg.exe然后在视频相同位置写一个bat脚本运行压缩脚本 关于 个人博客,里面偶尔更新,最近比较忙。发一些总结的帖子和思考。 江湖有缘相见🤝。如果读者想和我交…...
PostgreSQL-01-入门篇-简介
文章目录 1. PostgreSQL是什么?2. PostgreSQL 历史 2.1. 伯克利 POSTGRES 项目2.2. Postgres952.3. PostgreSQL来了 3. PostgreSQL vs MySQL4. 安装 4.1 Windows 安装4.2 linux 安装4.3 docker安装 1. PostgreSQL是什么 PostgreSQL 是一个基于加州大学伯克利分校计算机系开…...
虚拟专用网VPN的概念及实现VPN的关键技术
虚拟专用网VPN通过建立在公共网络上的重要通道(1分),实现远程用户、分支机构、业务伙伴等与机构总部网络的安全连接,从而构建针对特定组织机构的专用网络,实现与专用网络类似的功能,可以达到PN安全性的目的,同时成本相对要低很多(…...
电脑风扇声音大怎么办? 原因及解决方法
电脑风扇是电脑的重要组件之一,它的作用是为电脑的各个部件提供冷却,防止电脑过热。然而,有时候我们会发现电脑风扇的声音特别大,不仅影响我们的使用体验,也可能是电脑出现了一些问题。那么,电脑风扇声音大…...
【Pytorch】unsqueeze与expand结合使用
示例代码 mask mask.unsqueeze(1).expand(-1, N, -1, -1)unsqueeze(1) 操作 unsqueeze是一个在指定位置增加维度的方法。在这行代码中,mask.unsqueeze(1)的作用是在mask张量的第二个维度(索引为1的位置)上插入一个新的维度。 例如…...
基于 Spring Boot 和 Vue.js 的全栈购物平台开发实践
在现代 Web 开发中,前后端分离的架构已经成为主流。本文将分享如何使用 Spring Boot 和 Vue.js构建一个全栈购物平台,涵盖从后端 API 开发到前端页面实现的完整流程。 1. 技术栈介绍 后端技术栈 JDK 1.8:稳定且广泛使用的 Java 版本。 Spring…...
MongoDB单机版安装
MongoDB单机版安装 在CentOS Linux release 7.9.2009 (Core)下安装MongoDB的步骤如下: 1 创建用户和组(可选,根据需要) 如果您希望以非root用户运行MongoDB服务,可以创建一个专用的用户和组。 groupadd mongodb us…...
HTTP/2 与 HTTP/3 的新特性
一、引言 在互联网蓬勃发展的浪潮中,HTTP 协议作为网络通信的基石,历经多次迭代升级,不断推动着网络传输效率与性能的提升。从最初简单的 HTTP/0.9 版本,仅能实现基本的文本传输,到 HTTP/1.0 引入多种请求方法与头部信…...
【软件开发过程管理规范】需求管理,需求分析,设计开发管理,测试管理(Word)
一、需求管理规程 1 简介 2 过程总体描述 2.1 过程概述 2.2 过程流程图 3 过程元素描述 3.1 准备阶段 3.2 需求调研 3.3 需求分析 软件开发人员及用户往往容易忽略信息沟通,这导致软件开发出来后不能很好地满足用户的需要,从而造成返工。而返工不仅在技术…...
mysql的主从配置
#mysql数据库 #主从 MySQL数据库主从配置 1.MySQL主从介绍 MySQL 主从又叫做 Replication、AB 复制。简单讲就是 A 和 B 两台机器做主 从后,在 A 上写数据,另外一台 B 也会跟着写数据,两者数据实时同步的。 MySQL 主从是基于 binlog 的&…...
debian中apt的配置与解析
引言 在系统使用过程中,我们可能会遭遇 apt update 操作出现问题,或者 apt upgrade 速度迟缓的情况。这往往是由于所使用软件源本身存在诸如服务器性能不佳、维护不及时等质量问题,同时,软件源服务器与我们所处地理位置的距离较远…...
Python Pyside6 加Sqlite3 写一个 通用 进销存 系统 初型
图: 说明: 进销存管理系统说明文档 功能模块 1. 首页 显示关键业务数据商品总数供应商总数本月采购金额本月销售金额显示预警信息库存不足预警待付款采购单待收款销售单2. 商品管理 商品信息维护商品编码(唯一标识)商品名称规格型号单位分类进货价销售价库存数量预警…...
Java工程结构:服务器规约(JVM 碰到 OOM 场景时输出 dump 信息、设置tomcat的 JVM 的内存参数、了解服务平均耗时)
文章目录 I 调用远程操作必须有超时设置。II 推荐了解每个服务大致的平均耗时JVM 的 Xms 和 Xmx 设置一样大小的内存容量让 JVM 碰到 OOM 场景时输出 dump 信息调大服务器所支持的最大文件句柄数(File Descriptor,简写为 fd)高并发服务器建议调小 TCP 协议的 time_wait 超时…...
Spring经典面试题
在Spring的面试中,经常会被问到一些经典的问题,这些问题涵盖了Spring的基本概念、核心特性、工作原理以及在实际项目中的应用。以下是一些Spring面试中最经典的题目: 一、Spring概述 什么是Spring框架?Spring框架有哪些主要模块&…...
以太网实战AD采集上传上位机——FPGA学习笔记27
一、设计目标 使用FPGA实现AD模块驱动采集模拟电压,通过以太网上传到电脑上位机。 二、框架设计 数据位宽转换模块(ad_10bit_to_16bit):为了方便数据传输,数据位宽转换模块实现了将十位的 AD 数据转换成十六位&#…...
数据结构与算法整理复习(一):数据结构概念与线性表
目录 第一章:绪论 1.1 数据结构的基本概念 1.2 算法与算法评价 第二章:线性表 2.1 线性表的定义和基本操作 2.2 线性表的顺序表示(顺序表) 应用题 2.3 线性表的链式表达(链表) 2.3.1 单链表 2.3.2…...
虚幻商城 Fab 免费资产自动化入库
文章目录 一、背景二、实现效果展示三、实现自动化入库一、背景 上一次写了个这篇文章 虚幻商城 Quixel 免费资产一键入库,根据这个构想,便决定将范围扩大,使 Fab 商城的所有的免费资产自动化入库,是所有!所有! 上一篇文章是根据下图这部分资产一键入库: 而这篇文章则…...
TCP Window Full是怎么来的
wireshark查看包时,会看到TCP Window Full,总结下它的特点: 1. Sender会显示 TCP Window Full 2. “Sender已发出,但,Receiver尚未ack的字节”,即Sender的 bytes in flights 3. Sender的 bytes in fligh…...
高效建站指南:通过Portainer快速搭建自己的在线网站
文章目录 前言1. 安装Portainer1.1 访问Portainer Web界面 2. 使用Portainer创建Nginx容器3. 将Web静态站点实现公网访问4. 配置Web站点公网访问地址4.1公网访问Web站点 5. 固定Web静态站点公网地址6. 固定公网地址访问Web静态站点 前言 Portainer是一个开源的Docker轻量级可视…...
“UniApp的音频播放——点击视频进入空白+解决视频播放器切换视频时一直加载的问题”——video.js、video-js.css
今天,又解决了一个单子“UniApp的音频播放——点击视频进入空白解决视频播放器切换视频时一直加载的问题” 一、问题描述 在开发一个基于 video.js 的视频播放器时,用户通过上下滑动切换视频时,视频一直处于加载状态,无法正常播放…...
如何让openhands始终输出中文?
在本地创建一个文件./user_prompt.j2 添加一行 Always respond in 中文你可以直接: echo "Always respond in 中文" > ./user_prompt.j2使用官方文档的docker命令启动容器时-v挂载一个文件/app/openhands/agenthub/codeact_agent/prompts/user_promp…...
CSS 溢出问题及解决方案:实用案例与技巧
在网页开发中,CSS 的布局和样式起着至关重要的作用,但经常会遇到一个棘手的问题——溢出问题。溢出是指元素内的内容超出了其设定的容器大小,这不仅会影响页面的美观,还可能干扰用户体验。本文将详细探讨 CSS 溢出问题的案例&…...