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

2023-05-16

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

趁现在比较空记录一下 

说下概况 项目是基于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的识别等等 平台相关的功能 抽象出来放在另一个 类中实现 

如下

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

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

  • python学习:最适合初学者的8本Python书籍

    Python是最友好的编程语言之一 xff0c 也因此成为初学者的首选 xff0c 为了帮助你更好更快的上手Python xff0c 并学会使用Python进行编程 xff0c 本文我们为初学者分享了最好的Python书籍 希望能够对你有所
  • 最适合Python入门到大牛必看的7本书籍,一定要收藏!

    Python零基础应该阅读哪些书籍 xff1f 我推荐这三本书 1 Python学习手册 xff08 第4版 xff09 以计算机科学家一样的思维方式来理解Python语言编程 xff0c 实用的学习指南 xff0c 适合没有Python编
  • 电脑可以上网,但是仍然显示无网络连接

    不知道是否因为win11的正式发布 xff0c 催促着win10的更新 xff0c 而在更新中对于部分用户的电脑产生了bug xff1a 目前被证实为win10 1607版本后 xff0c URL变动引起的 在我们使用WLAN连接方式时 x
  • 阿里云云平台,物联网可视化web界面简单教程

    目前市面上的云平台 xff0c 多以华为 xff0c 阿里 xff0c 中国移动为主 但是了解一个 xff0c 便可满足需求了 1 首先 xff0c 我们要创建一个属于自己的账号 xff0c 然后尽可能的领取各种限免套餐 2 打开产品这一栏
  • LCD屏幕 ~ 字模提取工具和图片转码工具

    目录 字模提取 工具资源下载 xff1a 图片转码 工具资源下载 xff1a 字模提取 工具资源下载 xff1a 链接 xff1a https pan baidu com s 1BF8lJLmM V vWrl2F6Cd7Q pwd 61 m
  • (练习篇)萤火虫esp32与小爱音响---实现笔记本电脑唤醒

    目录 初步工作 xff1a 进入正题 xff1a 初步工作 xff1a xff08 已使用过ESP32的同志们 xff0c 可以忽略这一步 xff09 首先下载arduinoIDE Software Arduino 我安装的是1 8 18直
  • Python:列表有趣挑战--斗地主扑克牌发牌

    目录 游戏描述 xff1a 题目分析与关键点 xff1a 代码参考 xff1a 游戏描述 xff1a 本题限定用以下方法打乱序列中的元素 random shuffle 几个人用一副扑克牌玩游戏 xff0c 游戏过程通常有洗牌 发牌 理牌等动
  • Python: 常用指令归纳(持续更新中)

    目录 复合赋值运算符 位运算符的运算规则 常用的转义符 常用字符串格式转换控制符 字符串处理函数 序列类型的常用操作符 复合赋值运算符 复合赋值运算符 运 算 符功 能 描 述 示 例 x 61 5 xff0c y 61 3 43 61 加
  • 无线远距离WiFi模块图传技术,无人机智能安防预警应用

    随着社会经济的快速发展 xff0c 交通工具日渐增多 xff0c 人员 车辆流动性大 xff0c 警车 警员在执法过程中对移动目标 突发场合的信息收集与现场预警 xff0c 当场发现嫌疑目标并进行抓捕已成为公安警务工作的紧迫需求 从警务执法
  • yolov5输出检测框的中心位置,框的长宽,框的位置,以及输出对应标签格式的输出

    yolov5输出检测框的中心位置 xff0c 框的长宽 xff0c 框的位置 xff0c 以及输出对应标签格式的输出 模型读取每个图片 xff0c 并将上述的信息依此输出到同名的txt文件中保存 xff0c 具体需要哪些坐标可以自己选 更改
  • 无人机远距离WiFi图传应用,CV5200无线WiFi模组,远程实时通信传输方案

    无线图传在实际应用中越来越受到追捧 xff0c 无线图传免布线 移动方便 安装简单 xff0c 大大节约了材料和人工成本 无线图传能够在远距离范围内实时视频无线传输 xff0c 满足了不同距离需要的需求 xff0c 也覆盖了不同规模的企业
  • antd表单赋值,回显表格数据

    使用 antd 做表格回显数据时 xff0c 会看到文档有写 xff1a 所以我们可以 1 定义hooks const form 61 Form useForm 2 在触发事件中使用 xff0c 以打开模态框赋值为例 const showM
  • jetson nano jacksdk4.6中cuda,cudnn,tensorrt的版本查看

    JetPack 4 6上已经预装了CUDA cuDNN and TensorRT VPI 1 1 可以直接从官网下载 xff08 jetson sdk xff09 使用拷贝到SD卡 JetPack 4 6 is the latest pro
  • 无人船毕设进展

    智能无人测量船设计进展 xff08 硬件系统 xff09 目录前言课题目的研究现状控制系统 xff08 Pixhawk xff09 动力系统供电系统通讯系统传感器系统pixhawk2 4 8接口分析控制系统详细分析技术路线参考文献 目录 前
  • OpenMV:20追踪其他物体的云台

    文章目录 追踪人脸的云台追踪AprilTags的云台追踪圆形的云台 和追踪小车的原理是一样的 首先获得目标物体的x y坐标 xff0c 然后通过目标物体的xy坐标来控制我们云台的两个舵机的pid运动 无论追踪什么物体 xff0c 都是通过物
  • 如何在Linux终端使用录屏工具Asciinema?

    安装asciinema apt get install asciinema 开始记录视频 asciinema rec first cast 以倍速重播 asciinema play s 2 first cast 分享或上传至网络 ascii
  • 初探进程和线程

    初探进程和线程 之前学习过RTOS xff0c 对线程有一些认识和理解 xff0c 但接触到Linux后还遇到了进程这个概念 xff0c 虽然两者之间名字很相像 xff0c 但其实是完全不同的两个概念 进程包含一个内存地址和执行的线程 xf
  • CENTOS7设置静态IP

    Centos7网卡配置配置永久ip xff1a 1 网卡目录 xff1a etc sysconfig network scripts ifcfg ens33 2 网卡重启命令 xff1a sudo ip addr flush dev ens
  • lsof命令

    一 lsof命令 lsof命令用于查看你进程开打的文件 xff0c 打开文件的进程 xff0c 进程打开的端口 TCP UDP 找回 恢复删除的文件 是十分方便的系统监视工具 xff0c 因为lsof命令需要访问核心内存和各种文件 xff0
  • 官网TimescaleDB 配置

    官网 xff1a https www zabbix com documentation current zh manual appendix install timescaledb TimescaleDB 配置 概述 Zabbix支持Tim

随机推荐