当前位置: 首页 > news >正文

02-Media-2-ai_rtsp.py 人脸识别加网络画面RTSP推流演示

ai_rtsp.py  演示了如何通过调用 AI模型 实现人脸检测功能后,将包含检测结果的图像以 RTSP 网络流的形式输出,便于远程网络查看。

Tips:RTSP全称实时流协议(Real Time Streaming Protocol),是一个基于文本的多媒体播放控制协议,属于应用层。RTSP以客户端方式工作,对流媒体提供播放、暂停、后退、前进等操作。该标准由IETF指定,对应的协议是RFC2326。

RTSP作为一个应用层协议,提供了一个可供扩展的框架,使得流媒体的受控和点播变得可能,它主要用来控制具有实时特性的数据的发送。

ai_rtsp程序结构:

1. 导入必要的库,包括自定义的PipeLine、AIBase、Ai2d、Utils、WBCRtsp等。

- libs.PipeLine: 图像处理流程管理,包括图像获取、显示等。

- libs.AIBase: AI基类,封装了模型加载、推理等基本操作。

- libs.AI2D: 用于图像预处理,如缩放、填充等。

- libs.Utils: 工具函数,例如计时器、对齐函数等。

- libs.WBCRtsp: 用于RTSP推流。

- os, sys, ujson, gc, math: 系统库和工具库。

- media.media: 媒体相关操作。

- nncase_runtime: nncase运行时,用于模型推理。

- ulab.numpy: 类似于numpy的库,用于数组操作。

- image: 图像处理相关。

- aidemo: 提供后处理函数,如face_det_post_process。

2. 定义FaceDetectionApp类,继承自AIBase,实现了人脸检测的初始化、预处理配置、后处理和结果绘制。

- __init__: 初始化函数,设置模型路径、输入尺寸、锚点、置信度阈值、NMS阈值等,并初始化AI2D。

- config_preprocess: 配置预处理操作,包括填充(letterbox)和缩放,使用Ai2d构建预处理流程。

- postprocess: 后处理函数,调用aidemo.face_det_post_process对模型输出进行解析,得到人脸检测框。

- draw_result: 绘制检测结果,将检测框转换到显示分辨率并绘制矩形。

3. 在主程序中,设置显示模式、图像尺寸、模型路径、参数等,初始化PipeLine和WBCRtsp(用于推流),然后创建FaceDetectionApp实例。

- 设置显示模式(hdmi或lcd等)和输入图像尺寸(rgb888p_size)。

- 设置模型路径、置信度阈值、NMS阈值、锚点数据(从文件读取)。

- 初始化PipeLine,并配置WBCRtsp推流。

- 创建FaceDetectionApp实例,并配置预处理。

- 进入主循环,获取图像帧,运行人脸检测,绘制结果并显示。

- 捕获键盘中断和其他异常,确保程序退出时释放资源。

4. 进入主循环,不断获取图像帧,进行人脸检测,绘制结果并显示。

- 设置显示模式(hdmi或lcd等)

http://www.dtcms.com/a/363425.html

相关文章:

  • 【51单片机】【protues仿真】基于51单片机脉搏体温检测仪系统
  • JavaScript》》JS》》ES6》》 数组 自定义属性
  • HTTP发展历程
  • RPC和HTTP的区别?
  • HttpHeadersFilter
  • GPT-Realtime 弹幕TTS API 低延迟集成教程
  • 网络原理——HTTP/HTTPS
  • 【MySQL体系结构详解:一条SQL查询的旅程】
  • 分布式中防止重复消费
  • 计算机视觉与深度学习 | 视觉里程计技术全解析:定义、原理、与SLAM的关系及应用场景
  • STM32之SPI详解
  • Linux《进程信号(上)》
  • mit6.031 2023spring 软件构造 笔记 Specification
  • 【XR硬件系列】Apple Vision Pro 完全解读:苹果为我们定义了怎样的 “空间计算” 未来?
  • springboot项目使用websocket功能,使用了nginx反向代理后连接失败问题解决
  • 集采与反腐双重压力下,医药销售的破局之道:从资源依赖到价值重构
  • DASK shuffle任务图分析
  • 阅读Linux 4.0内核RMAP机制的代码,画出父子进程之间VMA、AVC、anon_vma和page等数据结构之间的关系图。
  • 解密llama.cpp CUDA后端:512 token大模型批处理的异步流水线架构
  • 【llama.cpp】qwen2_vl_surgery.py详解
  • 应用层:HTTP/HTTPS协议
  • 2025年- H109-Lc1493. 删掉一个元素以后全为 1 的最长子数组(双指针)--Java版
  • 软件测试小结(1)
  • 【完整源码+数据集+部署教程】粘土石实例分割系统源码和数据集:改进yolo11-LVMB
  • MVP架构深层剖析-从六大设计原则的实现角度到用依赖注入深度解耦
  • 安全芯片助力游戏设备防抄板
  • 「Windows自动化之王:PowerShell极简美学」​
  • 微信小程序 navigateTo 栈超过多层后会失效
  • 【开题答辩全过程】以 基于微信小程序的体育场馆预约管理系统为例,包含答辩的问题和答案
  • 【Git】一文详解Git Rebase和Merge区别 看完必会