基于 瑞芯微 RK1126 平台的项目总结(包含AI 画中画 RTSP OSD 录像 双路摄像头)

news2024/11/6 3:04:14

其实这个项目结束一两个月了  中间过了个年  就把这事给忘记了

趁现在比较空记录一下 

说下概况 项目是基于RK1126平台 硬件配置2个摄像头一个广角一个长焦

需要支持画中画在广角摄像头的画面中 显示长焦摄像头的大概位置 

但是由于硬件还是驱动没有搞好 导致了两个摄像头不能同时工作,所以 对于应用程序就用同一个摄像头模拟两个摄像头来实现画中画 

主要的功能如下

  • 1.支持三路RTSP流 主摄像头高清码流 普通码流 副摄像头码流
  • 2.支持视频参数的设置 H264/H265 分辨率 码率 CBR/VBR 等
  • 3.支持设置ISP 包括 明度亮度饱和度等 
  • 4.支持设置摄像头的OSD 多个OSD 多个位置 OSD支持矢量字体替换
  • 5.支持实时AI识别 支持多模型的AI 同时支持AI模型文件更新功能 支持设置AI识别帧数间隔并将 结果反馈给平台端
  • 6.支持上传JPG图片进行AI识别 同时将识别结果 反馈给平台端
  • 7.支持AI模型类别 以及阈值的配置
  • 8.支持拍照/录像
  • 9.支持文件下载功能,将之前拍下的照片或者录像的文件 发送给平台
  • 10.云台控制(硬件未配置 暂未实现)
  • 11.使用json格式配置文件对程序进行配置 
  • 12.支持画中画 并支持实时开启或者关闭
  • 13.将平台相关的代码进行分离 实现代码解耦

由于本身没有屏幕

所以所有的操作都通过平台HTTP 方式和平台侧通信 

由于手头现在没有设备 放下之前的画面 手一直在动 VBR 比较模糊 画中画功能如下:

 

看下程序入口

 

 

 

主函数都在上面了 其实没有去整理  将启动部分 和 结束部分的资源清理 放在两个独立的函数里面看会更清晰  但是现在没有硬件板子 调试 就不动他了

启动之后 创建一个程序的结构体 做些初始化工作包括 读取配置文件 视频参数默认值 rtsp的URL路径等等 

然后检查AI模型文件的有效性

创建程序主任务队列 以及其他用于 AI识别结果的队列 录像时候的视频流队列等等

然后开启了几个线程 与平台通信的HTTP线程 主任务线程 以及用于将AI结果发给平台的Socket线程

然后去开启camera 然后一个while循环 

while循环中 有个 去检查flash剩余空间的函数 如果 不满足多少 就要去删除比较早的录制的视频和照片

后面就是程序结束时候的资源回收

程序和平台交互主要是通过HTTP方式 等待平台下发消息给程序

包括下载文件 上传文件 一起其他录像 设置ISP等消息 其中又包含GET POST两种方式

 

收到HTTP请求之后程序会将消息做转发 并放到 程序的主任务队列里面

比如下面 画中画开关的消息

 

然后在主任务队列中取出消息做实际的处理

 

至于相机部分的配置 AI的识别等等 平台相关的功能 抽象出来放在另一个 类中实现 

如下

 至于后面的则都是 处理的细节部分了 

有业务需求的 可以联系博主  

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

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

相关文章

Puppeteer 爬虫学习

puppeteer简介: Puppeteer 是一个 Node 库,它提供了一个高级 API 来通过 DevTools 协议 控制 Chromium 或 Chrome。Puppeteer 默认以 headless 模式运行, 但是可以通过修改配置文件运行“有头”模式。能作什么?: 生成…

Linux驱动学习笔记

驱动学习笔记 1、字符设备驱动 Linux 驱动有两种运行方式 第一种就是将驱动编译进 Linux 内核中,这样当 Linux 内核启 动的时候就会自动运行驱动程序。 第二种就是将驱动编译成模块(Linux 下模块扩展名为.ko),在 Linux 内核启动以后使用“insmod”命…

稳态钙钛矿IV测试系统太阳光模拟器

一、概述用途:设备在一定的面积下提供一个接近自然光的光源,光源等级为AAA 级,主要用于大面积光伏组件的老化测试,测试可满足 IEC 61215、IEC 61730 标准。二、设备主体设备箱体尺寸2、硬件信息设备箱体采用能够完全阻隔太阳光的板材拼装而成…

金三银四春招特供|高质量面试攻略

🔰 全文字数 : 1万5千 🕒 阅读时长 : 20min 📋 关键词 : 求职规划、面试准备、面试技巧、谈薪职级 👉 公众号 : 大摩羯先生 本篇来聊聊一个老生常谈的话题————“面试”。利用近三周工作午休时间整理了这篇洋洋洒洒却饱含真诚…

搭建Hexo博客-第4章-绑定自定义域名

搭建Hexo博客-第4章-绑定自定义域名 搭建Hexo博客-第4章-绑定自定义域名 搭建Hexo博客-第4章-绑定自定义域名 在这一篇文章中,我将会介绍如何给博客绑定你自己的域名。其实绑定域名本应该很简单的,但我当初在这上走了不少弯路,所以我觉得有…

腾讯云架构师亲码“redis深度笔记”,从入门到精通,面面俱到

前言 作为这个时代码代码的秃头人员,对Redis肯定是不陌生的,如果连Redis都没用过,还真不好意思出去面试,指不定被面试官吊打多少次。 毕竟现在互联网公司和一些创业公司都要用到Redis,像亚马逊、谷歌、阿里、腾讯都要…

ChatGPT会抢项目经理饭碗?飞项可不这么认为

ChatGPT的火爆,让AI替代人类的言论,又一次甚嚣尘上。有人说ChatGPT注定会改变这个世界,这改变主要聚焦三个方面:有利的是帮助天才和独狼加快创新,不利的是削减工作岗位需求、制造更多的垃圾信息。 比如,Cha…

OnGUI label 控件||Unity 3D GUI教程||OnGUI Background Color 控件

Unity 3D Label 控件用于在设备的屏幕上创建文本标签和纹理标签,和Box 控件类似,可以显示文本内容或图片。Label 控件一般用于显示提示性的信息,如当前窗口的名称、游戏中游戏对象的名字、游戏对玩家的任务提示和功能介绍等。具体使用方法如下…

麦肯锡给CEO的元宇宙指南

ChatGPT突然大张旗鼓地登上全球新闻的头条时,元宇宙似乎如明日黄花般过气了,未来渺茫起来。而麦肯锡的4位合伙人在今年1月给全球CEO们的“元宇宙指南”中强调,“太大元宇宙 ,不容忽视”。《元宇宙日爆》编译了这份指南供企业管理者…

git代码提交后jenkins构建和自动部署

利用jenkins和gitlab的webhook结合,实现提交代码之后,自动触发jenkins的构建。顺带介绍一下通过触发器构建,比如直接通过url去触发的方式。 一、jenkins结合webhook 1、jenkins配置 a、首先jenkins得需要安装两个gitlab的插件:(…

进一步了解C++函数的各种参数以及重载,了解C++部分的内存模型,C++独特的引用方式,巧妙替换指针,初步了解类与对象。满满的知识,希望大家能多多支持

C的编程精华,走过路过千万不要错过啊!废话少说,我们直接进入正题!!!! 函数高级 C的函数提高 函数默认参数 在C中,函数的形参列表中的形参是可以有默认值的。 语法:返…

spring cloud alibaba Sentinel(四)

服务雪崩 在分布式系统中,由于网络原因或自身的原因,服务一般无法保证 100% 可用。 如果一个服务出现了问题,调用这个服务就会出现线程阻塞的情况, 此时若有大量的请求涌入,就会出现多条 线程阻塞等待,进而导致服务瘫痪。 由于服…

互联网新时代要到来了(三)什么是ChatGPT?

什么是ChatGPT? tips:资料来自百度百科、openAi、CSDN博主「琦在江湖飘」、Info写作社区、CSDN博主「夕小瑶」等网页资料。 1.什么是ChatGPT? ChatGPT(全名:Chat Generative Pre-trained Transformer),…

车载基础软件——AUTOSAR AP典型应用案例

我是穿拖鞋的汉子,魔都中一位坚持长期主义的工程师! 最近不知道为何特别喜欢苏轼的一首词: 缺月挂疏桐,漏断人初静。谁见幽人独往来,缥缈孤鸿影。 惊起却回头,有恨无人省。拣尽寒枝不肯栖,寂寞…

Python机器学习入门笔记(1)—— Scikit-learn与特征工程

目录 机器学习算法分类 数据集工具 Scikit-learn Scikit-learn的安装 scikit-learn数据集API介绍 bunch对象 datasets模块 数据集的划分 train_test_split 代码示例 特征工程 特征提取 sklearn.feature_extraction API 字典特征提取示例 文本特征提取案例 jieba分…

无线蓝牙耳机哪个品牌音质好?性价比高音质好的蓝牙耳机排行榜

其实蓝牙耳机购买者最担忧的就是音质问题,怕拿到手的蓝牙耳机低频过重又闷又糊,听歌闷耳的问题,但从2021年蓝牙技术开始突飞猛进后,蓝牙耳机的音质、连接甚至是功能都发生了很大的变化,下面我分享几款性价比高音质的蓝…

运动控制器八通道PSO的视觉飞拍与精准输出

本文主要介绍正运动技术EtherCAT控制器在多通道视觉飞拍与多点精准输出上的应用,采用高性能ZMC408CE控制器,控制器内部高速FPGA实现硬件位置比较输出、精准输出功能,实现运动控制多通道视觉飞拍与精准输出功能。 一、硬件介绍 ZMC408CE是正…

基于微信小程序的新冠肺炎服务预约小程序

文末联系获取源码 开发语言:Java 框架:ssm JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7/8.0 数据库工具:Navicat11 开发软件:eclipse/myeclipse/idea Maven包:Maven3.3.9 浏览器…

OpenAI 官方api 阅读笔记

网站 API Key concepts Prompts and completions You input some text as a prompt, and the model will generate a text completion that attempts to match whatever context or pattern you gave it. Token  模型通过将文本分解成token来理解和处理, 处理token数量取…

STL讲解——模拟实现string

STL讲解——模拟实现string 经典的string类问题 大厂在面试中,面试官总喜欢让学生自己来模拟实现string类,最主要是实现string类的增、删、查、改、构造、拷贝构造、赋值运算符重载以及析构函数。大家看下自己可不可以写一个string类? cla…