FPGA实现SDI视频H265压缩网络推流输出,基于VCU架构,支持12G-SDI 4K60帧,提供工程源码和技术支持

news2024/9/23 11:24:57

目录

  • 1、前言
    • 工程概述
    • 免责声明
  • 2、相关方案推荐
    • 我这里已有的视频图像编解码方案
    • 本博已有的 SDI 编解码方案
  • 3、详细设计方案
    • 设计框图
    • FPGA开发板
    • 视频输入
    • SDI硬件均衡器LMH1219
    • UHD-SDI GT SDI视频解串
    • SMPTE UHD-SDI RX SUBSYSTEM SDI视频解码
    • Video Frame Buffer Write
    • Zynq UltraScale+ VCU
    • PetaLinux 工程编译
    • VLC播放器
    • 工程源码架构
  • 4、Vivado工程源码详解
  • 5、工程移植说明
    • vivado版本不一致处理
    • FPGA型号不一致处理
    • 其他注意事项
  • 6、上板调试验证并演示
    • 准备工作
    • 配置Xshell
    • 配置开发板IP
    • 配置输入视频
    • 配置H265视频压缩
    • 配置VLC播放器
    • VLC播放H265码流视频演示
  • 7、福利:工程源码获取

FPGA实现SDI视频H265压缩网络推流输出,基于VCU架构,支持12G-SDI 4K60帧,提供工程源码和技术支持

1、前言

Xilinx Zynq UltraScale+ ZUEV系列FPGA自带VCU视频编解码功能,VCU有以下特点:
• 支持多达 32 个流的同步编码和解码 (最大聚合带宽为3840x2160 @ 60fps)
• 低时延速率控制
• 灵活的速率控制:CBR、 VBR 和常量 QP
• 支持分辨率高达 4K UHD @ 60 Hz 的同步编码和解码
• 支持 8 K UHD (~15 Hz) 的降低帧速率

工程概述

本设计采用Zynq UltraScale+MPSoCs–XCZU4EV的高端型号FPGA实现SDI视频H265压缩网络推流输出;输入源为笔记本电脑接入HDMI转SDI盒子,输出SDI视频给FPGA;也可以使用SDI彩条发生器或者SDI相机直接输出给FPGA;SDI视频接入FPGA开发板板载的TI公司的LMH1219芯片做均衡处理,同时将单端信号转为差分信号;然后视频进入Xilinx官方提供的UHD-SDI GT IP核做解串处理,该IP调用GTH高速接口资源将SDI视频解串为AXI4-Stream视频流和控制流,然后进入Xilinx官方提供的SMPTE UHD-SDI RX SUBSYSTEM IP核做SDI视频解码处理,将视频转为RGB;到这里,12G-SDI 视频解码工作就完成了,解码后的视频为并行的TTL电平的数据,此时可以供用户做后续处理,比如缓存、颜色转换、缩放、图像识别等;然后然后调用Xilinx官方的Video Frame Buffer Write IP核将SDI视频写入PS侧的DDR4中缓存;然后然后调用Xilinx官方的Zynq UltraScale+ VCU IP核读出图像并作H265压缩;至此,整个FPGA工程已经完成;然后编译工程,导出.xsa文件,并在PetaLinux中做嵌入式Linux启动文件,在Linux软件设计中,将压缩的H265视频码流通过TCP协议从网口发送出去,在PC端可通过LVC播放器播放压缩的H265码流;然后将做好的Linux启动文件复制到TF卡中,插上TF卡即可启动Linux系统,在Xshell中即可操作终端进行配置;

本设计提供资源如下:
• 提供一套XCZU4EV开发板
• 提供一套Vivado2020.2版本的工程源码
• 提供一套编译好的固件,可启动Linux系统

本博客详细描述了Xilinx系列Zynq UltraScale+MPSoCs–XCZU4EV的高端型号FPGA做基于VCU的H265视频压缩的设计方案,工程代码可综合编译上板调试,可直接项目移植,适用于在校学生、研究生项目开发,也适用于在职工程师做学习提升,可应用于医疗、军工等行业的高速接口或图像处理领域;
提供完整的、跑通的工程源码和技术支持;
工程源码和技术支持的获取方式放在了文章末尾,请耐心看到最后;

免责声明

本工程及其源码即有自己写的一部分,也有网络公开渠道获取的一部分(包括CSDN、Xilinx官网、Altera官网以及其他开源免费获取渠道等等),若大佬们觉得有所冒犯,请私信批评教育;部分模块源码转载自上述网络,版权归原作者所有,如有侵权请联系我们删除;基于此,本工程及其源码仅限于读者或粉丝个人学习和研究,禁止用于商业用途,若由于读者或粉丝自身原因用于商业用途所导致的法律问题,与本博客及博主无关,请谨慎使用。。。

2、相关方案推荐

我这里已有的视频图像编解码方案

我这里有图像的JPEG解压缩、JPEG-LS压缩、H264编解码、H265编解码以及其他方案,后续还会出更多方案,我把他们整合在一个专栏里面,会持续更新,专栏地址:
直接点击前往

本博已有的 SDI 编解码方案

我的博客主页开设有SDI视频专栏,里面全是FPGA编解码SDI的工程源码及博客介绍;既有基于GS2971/GS2972的SDI编解码,也有基于GTP/GTX资源的SDI编解码;既有HD-SDI、3G-SDI,也有6G-SDI、12G-SDI等;专栏地址链接如下:
点击直接前往

3、详细设计方案

设计框图

本设计使用的工程详细设计方案框图如下:
在这里插入图片描述

FPGA开发板

本UP主有下列FPGA开发板均可实现4K@60Hz视频 HDMI2.0的收发,本博客仅仅是介绍了其中Zynq UltraScale+系列的开发板实现方案,关于本博客使用的这款开发板详细信息,请参考我之前的博客,对这块开发板感兴趣的朋友可以咨询本UP获得;博客链接如下:
点击直接前往

视频输入

输入源为笔记本电脑接入HDMI转SDI盒子,输出SDI视频给FPGA;架构如下:
在这里插入图片描述
如需支持12G SDI 4K60帧,你的笔记本电脑要能够输出4K@60Hz分辨率才行,可通过查看显示驱动版本确定是否支持4K@60Hz分辨率,一般驱动版本在20.0以上就是支持输出4K的;参考如下:
在这里插入图片描述
演示用的例程仅作1080P输入;
也可以使用SDI彩条发生器或者SDI相机直接输出给FPGA;
本博主热爱SDI视频开发,自研了一款12G-SDI彩条发生器,如下:
在这里插入图片描述
该设备价格低廉但很好用,可产生3G、6G、12G等多种分辨率的SDI视频彩条,通过一个按键切换,具体切换逻辑如下:
上电默认输出1080P@60Hz的彩条;
按第一下按键:输出1080P@50Hz的彩条;
按第二下按键:输出4K@60Hz的彩条;
按第三下按键:输出4K@50Hz的彩条;
按第四下按键:输出4K@30Hz的彩条;
按第五下按键:输出4K@25Hz的彩条;
该彩条发生器非常适合做SDI视频输入源,需要它的朋友,向本博主可有偿提供;

SDI硬件均衡器LMH1219

SDI接收端使用TI公司的LMH1219芯片做均衡处理,同时将单端信号转为差分信号,最高支持12G-SDI;
LMH1219和LMH1218可做硬件回环处理,这样可以将SDI视频做到极低的延时,本设计默认做了硬件回环处理,若需要FPGA接收SDI视频经处理再输出,需要i2c总线配置LMH1218,本设计工程即是这种方式;
另外,需要做LMH1219和LMH1218硬件回环的朋友,可联系本博主有偿提供硬件设计或成品;

UHD-SDI GT SDI视频解串

工程使用Xilinx官方提供的UHD-SDI GT IP核,可解串和串化3G、6G、12G SDI视频,本设计配置为最高的2G SDI,可向下兼容3G SDI、6G SDI视频,如下:
在这里插入图片描述
该IP直接调用GTH高速接口资源实现SDI视频的解串与串化,使用和配置非常方便,但需要指定SDI硬件连接的GT块位置和GT时钟引脚,此外,该IP不需要软件配置,可使用官方例程进行配套连接;

SMPTE UHD-SDI RX SUBSYSTEM SDI视频解码

工程使用Xilinx官方提供的SMPTE UHD-SDI RX SUBSYSTEM,可解码3G、6G、12G SDI视频,本设计配置为12G SDI,可向下兼容3G SDI、6G SDI视频,如下:
在这里插入图片描述
该IP需要软件配置,本设计提供了vitis软件驱动,详情请参考vitis工程;

Video Frame Buffer Write

Video Frame Buffer Write相当于精简版的VDMA,只具有视频写入DDR的功能,与VDMA相比具有YUV视频写入的功能,配置如下:
在这里插入图片描述
在Linux设计中可以对视频写入的基地址进行配置,通过终端指令配置;

Zynq UltraScale+ VCU

Zynq UltraScale+ VCU是Xilinx Zynq UltraScale+ ZUEV系列FPGA才有的IP,可以实现最高4K60帧的视频压缩和解压,IP的官方文档是《PG252》,读者可以自行前往阅读,Zynq UltraScale+ VCU配置如下:
在这里插入图片描述
输入视频格式为YUV420,最高分辨率配置为4K60帧;

PetaLinux 工程编译

注意!!!
注意!!!
注意!!!
本博主已经提供好已制作完成的启动文件,理论上PetaLinux 工程编译不不要您重复再做,如果您感兴趣,则可以做这一步。。。

PetaLinux版本:PetaLinux版本为2020.2,因为vivado用的vivado202.2,为了兼容性,建议使用与之配套的PetaLinux2020.2;
运行环境:Ubuntu操作系统,我用的Win10上虚拟机搭建的Ubuntu,当然也可以使用直接装Ubuntu操作系统的电脑;

第1步:导出vivado工程的.xsa文件,并放到Ubuntu下你新建的文件夹中;同时下载我们提供的BSP包,也放到Ubuntu下你新建的文件夹中;然后改变其用户权限,如下图:
• 终端指令:sudo chmod -R 777 文件名
在这里插入图片描述
第2步:配置PetaLinux2020.2环境变量,如下图:
• 终端指令:source /opt/pkg/petalinux/2020.2/settings.sh
在这里插入图片描述
第3步:建立基于BSP包的PetaLinux2020.2工程,如下图:
• 终端指令:petalinux-create -t project -s zu402_sd.bsp -n zu402_sd
在这里插入图片描述
第4步:将.xsa硬件信息导入PetaLinux2020.2工程,如下图:
• 终端指令:petalinux-config --get-hw-description=/home/文件路径/zu402_sd
在这里插入图片描述
在编译环境设置时,建议使用离线编译,当然,选择在线编译也是可以的,离线编译配置如下:
Yocto Settings → Add pre-mirror url如下,路径要改为你自己 download 及 ssate 的解压路径;
在这里插入图片描述
Yocto Settings → Local sstate feeds settings如下,路径要改为你自己 download 及 ssate 的解压路径;
在这里插入图片描述
其他配置保持默认即可,然后保存退出,如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
第5步:修改设备树文件,如下图:
将我们提供的设备树文件替换掉PetaLinux工具自动生成的用户设备树文件;
• 终端指令:ln -sf zu402_sdirx.dtsi system-user.dtsi
• 终端指令:ls -l
在这里插入图片描述
第6步:编译PetaLinux2020.2工程,如下图:
• 终端指令:petalinux-build
在这里插入图片描述
如果编译中途有报错信息,请复制报错信息并百度寻找解决办法,因为每个人的电脑配置不一样,环境配置不一样,遇到的问题也不一样,无法给出统一的答案;

第7步:生成镜像,如下图:
• 终端指令:cd images/linux
• 终端指令:petalinux-package --boot --fsbl zynqmp_fsbl.elf --u-boot u-boot.elf --pmufw pmufw.elf --fpga
system.bit
在这里插入图片描述
然后把PetaLinux2020.2工程生成的如下几个文件连同我们提供好的脚本文件一起放入SD卡中,如下:
在这里插入图片描述
到此们就可以插入SD卡上电跑系统了;

VLC播放器

压缩后的H265码流可通过VLC播放器播放,关于VLC播放器的安装与使用,请参考下面的博客链接:
点击直接前往

工程源码架构

工程源码架构包括vivado Block Design逻辑设计和PetaLiux软件设计;
Block Design逻辑设计架构截图如下:
在这里插入图片描述
综合后的源码架构如下:
在这里插入图片描述
需要注意的是,在对Block Design进行Generate Output Products时需要选择Global模式,如下:
在这里插入图片描述

4、Vivado工程源码详解

开发板FPGA型号:Xilinx–Zynq UltraScale+MPSoCs–xczu4ev-sfvc784-2-i;
开发环境:Vivado2020.2;
输入:笔记本电脑,3G-SDI,最高支持12G-SDI 4K60帧;
输出:RJ45网口,H265压缩码流;
视频压缩方案:Zynq UltraScale+ VCU–H265;
工程源码架构请参考前面第3章节中的《工程源码架构》小节;
工程作用:此工程目的是让读者掌握FPGA基于VCU的H265视频压缩的设计能力,以便能够移植和设计自己的项目;
工程的资源消耗和功耗如下:
在这里插入图片描述

5、工程移植说明

vivado版本不一致处理

1:如果你的vivado版本与本工程vivado版本一致,则直接打开工程;
2:如果你的vivado版本低于本工程vivado版本,则需要打开工程后,点击文件–>另存为;但此方法并不保险,最保险的方法是将你的vivado版本升级到本工程vivado的版本或者更高版本;
在这里插入图片描述
3:如果你的vivado版本高于本工程vivado版本,解决如下:
在这里插入图片描述
打开工程后会发现IP都被锁住了,如下:
在这里插入图片描述
此时需要升级IP,操作如下:
在这里插入图片描述
在这里插入图片描述

FPGA型号不一致处理

如果你的FPGA型号与我的不一致,则需要更改FPGA型号,操作如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
更改FPGA型号后还需要升级IP,升级IP的方法前面已经讲述了;

其他注意事项

1:由于每个板子的DDR不一定完全一样,所以MIG IP需要根据你自己的原理图进行配置,甚至可以直接删掉我这里原工程的MIG并重新添加IP,重新配置;
2:根据你自己的原理图修改引脚约束,在xdc文件中修改即可;
3:纯FPGA移植到Zynq需要在工程中添加zynq软核;

6、上板调试验证并演示

准备工作

FPGA开发板,推荐使用本博的开发板;
笔记本电脑,仅作输入源;
带显卡的电脑主机,显卡越贵越好;
网线;
我的开发板具体连接如下:
在这里插入图片描述
开发板有启动模式选择拨码开关,SD卡启动方式如下,请将开发板拨到如图的配置:
在这里插入图片描述
然后将资料中的如下图所示压缩包解压,并将解压后的全部文件复制到TF卡中:
在这里插入图片描述
然后插上TF卡,然后将串口线和网线连接到电脑,安装串口驱动,资料包中已经提供,上电;

配置Xshell

我们使用Xshell连接开发板模拟Linux终端的操作,Xshell配置如下:
在这里插入图片描述
在这里插入图片描述

配置开发板IP

首先需要配置开发板IP,配置为和你的电脑在同一网段即可,因为开发板压缩的码流视频需要发送给电脑;首先查看你的电脑IP,以我的为例如下:
在这里插入图片描述
然后在Xshell依次输入如下指令配置配置开发板IP,具体配置要根据你的电脑IP而定,这里只是以我的为例,如果这一步都看不懂建议不要往下看了。。。
• 终端指令:ifconfig
• 终端指令:ifconfig eth0 169.254.135.135
如下:
在这里插入图片描述
然后ping电脑IP,一定要能ping通,不然后面的操作就没意义了,如下:
• 终端指令:ping 169.254.135.77
在这里插入图片描述

配置输入视频

需要检测输入视频的格式,配置视频缩放,如下:
• 终端指令:media-ctl -p -d /dev/media0
在这里插入图片描述

配置H265视频压缩

输入如下指令:
• 终端指令:gst-launch-1.0 v4l2src device=/dev/video0 !
video/x-raw, width=1920, height=1080, format=NV16_10LE32, framerate=60/1
! omxh265enc target-bitrate=60000 periodicity-idr=120 ! queue
! mpegtsmux alignment=7 name=mux ! rtpmp2tpay ! udpsink host=169.254.135.77 port=5004
注意!!!
注意!!!
注意!!!
上述指令中的《udpsink host=169.254.135.77 port=5004》
这里的IP是根据我自己的电脑配置的,你的电脑请根据实际情况修改;端口号5004为固定值;
在这里插入图片描述
如果输入为12G-SDI,则分辨率为4K@30Hz,则指令变为如下:
• 终端指令:gst-launch-1.0 v4l2src device=/dev/video0 !
video/x-raw, width=3840, height=2160, format=NV16_10LE32, framerate=30/1
! omxh265enc target-bitrate=25000 periodicity-idr=120 ! queue
! mpegtsmux alignment=7 name=mux ! rtpmp2tpay ! udpsink host=169.254.135.77 port=5004

配置VLC播放器

开发板网线连接电脑,打开VLC播放器,配置如下:
在这里插入图片描述
在这里插入图片描述
这里一定要注意:这里的IP是根据我自己的电脑配置的,你的电脑请根据实际情况修改;
注意!!!
注意!!!
注意!!!
电脑端一定要用有显卡的电脑,不要用笔记本电脑,不然延时很大,根本无法播放。。。
播放效果如下:
在这里插入图片描述
同时可打开任务管理器–>性能,查看网卡正在接收数据,如下:
在这里插入图片描述

VLC播放H265码流视频演示

VLC播放H265码流视频演示如下:

SDI视频接收H265压缩

7、福利:工程源码获取

福利:工程代码的获取
代码太大,无法邮箱发送,以某度网盘链接方式发送;
获取方式:私,或者博客末尾的V名片;
网盘资料如下:
在这里插入图片描述
此外,有很多朋友给本博主提了很多意见和建议,希望能丰富服务内容和选项,因为不同朋友的需求不一样,所以本博主还提供以下服务:
在这里插入图片描述

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

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

相关文章

大模型时代下,软件检测行业将如何发展?

大模型时代,软件测试面临着前所未有的机遇和挑战,各类产品测试领域将如何应对技术发展和时代变化? 2024年8月28日晚八点,安畅检测首席专家李龙与腾讯Tech Lead茹炳晟、中电金信质量团队负责人王壮做客人民邮电出版社创办的IT专业…

springboot集成guava布隆过滤器

1.创建springboot项目&#xff0c;引入maven依赖 <dependency><groupId>com.google.guava</groupId><artifactId>guava</artifactId><version>23.0</version></dependency>2.创建guava布隆过滤器 Component public class Gua…

DexclassLoader读取dex在Android14上遇到问题

报错如下&#xff1a; 在Android 14&#xff08;API 级别 34&#xff09;及以后版本中&#xff0c;DexClassLoader 被进一步限制&#xff0c;只能用于加载只读文件中的代码。这意味着你不能再使用 DexClassLoader 来加载从应用的内部存储空间中读取的文件。 我想通过JNI来修改…

Elasticsearch 8.13.4 LocalDateTime类型转换问题

框架背景 springboot 3.3.1elasticseach8.13.4spring-data-elasticsearch5.3.1(其实只要用了springboot3.3.1 上下两个的版本都在里面绑死了) 问题描述 使用spring-data-elasticsearch操作es&#xff0c;当字段增加映射注解,其实如果是日期类型&#xff0c;你不加默认也给你…

计算机网络概述(协议层次与服务模型)

目录 1.协议层次 2.服务模型 1.协议层次 层次化方式实现复杂网络功能&#xff1a; 将网络复杂的功能分成明确的层次&#xff0c;每一层实现了其中一个或一组功能&#xff0c;功能中有其上层可以使用的功能&#xff1a;服务本层协议实体相互交互执行本层的协议动作&#xff0…

C++(Qt)-GIS开发-QGraphicsView显示在线瓦片地图

C(Qt)-GIS开发-QGraphicsView显示在线瓦片地图 文章目录 C(Qt)-GIS开发-QGraphicsView显示在线瓦片地图1、概述2、实现效果3、主要代码4、源码地址 更多精彩内容&#x1f449;个人内容分类汇总 &#x1f448;&#x1f449;GIS开发 &#x1f448; 1、概述 支持加载显示在线瓦片…

TD学习笔记————中级教程总结(NEW)

目录 Instance功能讲解 问题&#xff1a; 报错All ops must generate the same number of instances (have the same length Replicator功能讲解 问题&#xff1a; 视频分辨率过大 Cannot find function named:onValueChange Instance功能讲解 数据通道的长度要一致 N…

redroid搭建云手机学习笔记(一)

参考链接 通过Redroid搭建自己的云手机 docker安装 docker官网目前打不开了&#xff0c;通过官网安装的方式无法实现&#xff0c;这里需要借助镜像网站来实现docker的安装 参考链接&#xff1a;https://developer.aliyun.com/mirror/docker-ce # step 1: 安装必要的一些系统…

Dockerfile 实例

删除不需要的镜像&#xff1a;示例&#xff1a;通配符可用 [rootdocker ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE <none> <none> 580260c93725 2 hours ago 4.27MB <none&…

基于python的足球比赛数据及可视化 python 足球预测

Python 足球可视化分析是使用 Python 编程语言来进行足球比赛数据分析&#xff0c;并将结果呈现为可视化图形的过程。Python 作为一种高效灵活的编程语言&#xff0c;可以用于数据处理和分析&#xff0c;同时也有丰富的可视化库。 足球比赛数据可以从各种数据来源获取&#xf…

使用 AI进行绘画初体验

大家好啊&#xff0c;我是董董灿。 AI 绘画的效果是真的不错&#xff0c;最近在查找AI相关技术文章时&#xff0c;总是会时不时的发现一些好玩的 AI 应用&#xff0c;而且大多数都是免费的。 今天就给大家介绍如何使用 MidJourney 来完成 AI 绘画的网站。 MidJourney 本身是…

解决 Linux 上的 SSH 登录缓慢问题

如果您必须等待很长时间才能看到 SSH 密码提示&#xff0c;则可能存在多种问题。要解决 SSH 登录缓慢的根本原因&#xff0c;您可以运行带有 -vvv 选项的 ssh 命令&#xff0c;该命令将向您显示 SSH 登录期间幕后发生的情况。 $ ssh -vvv user<ssh-server>以下是 SSH 登…

Windows bat脚本学习六(十六进制与十进制互转)

一、十六进制转十进制 十六进制数转十进制数相对比较简单&#xff0c;可以直接通过0x来实现。 见如下代码&#xff1a; echo off chcp 65001set taaset /a hex0x%t% echo data%hex%pause 结果&#xff1a; 二、十进制转十六进制 这个转化比较麻烦&#xff0c;没有简便的方式转…

前端面试题每日一练,测测你对JavaScript对象继承和 Object.entries() 的理解

今天的挑战题目涉及到JavaScript中的原型链 (prototype chain) 和 Object.entries() 方法的使用。我们将通过一个对象继承的例子来探索如何使用 Object.entries() 获取对象的自身可枚举属性&#xff0c;并进行处理。让我们一起分析这段代码&#xff0c;看看它会输出什么以及为什…

微服务CI/CD实践(四)Jenkins部署及环境配置

微服务CI/CD实践系列&#xff1a; 微服务CI/CD实践&#xff08;一&#xff09;环境准备及虚拟机创建 微服务CI/CD实践&#xff08;二&#xff09;服务器先决准备 微服务CI/CD实践&#xff08;三&#xff09;gitlab部署及nexus3部署 微服务CI/CD实践&#xff08;四&#xff09…

ClickHouse的安装教程

ClickHouse的安装教程 文章目录 ClickHouse的安装教程写在前面准备工作关闭防火墙CentOS 取消打开文件数限制安装依赖CentOS 取消 SELINUX 单机安装在 **node01** 的/opt/software 下创建 clickhouse 目录将下载的文件上传到 node01 的 /opt/software/clickhouse 目录下将安装文…

MFC工控项目实例之九选择下拉菜单主界面文本框显示菜单名

承接专栏《MFC工控项目实例之八选择下拉菜单添加打钩图标》 1、在主界面添加一个组合框和一个静态文本框。 2、在SEAL_PRESSUREDlg.cpp文件中添加代码 BOOL CSEAL_PRESSUREDlg::OnInitDialog() {CDialog::OnInitDialog(); ... GetDlgItem(IDC_STATIC_TYPNAME)->SetFont(&a…

通用大模型应用研究重点六:AgentOS

智能体&#xff1a;一个能够自主感知环境、做出决策并执行行动的系统。具备规划思考能力、记忆能力以及使用工具函数的能力&#xff0c;能自主完成给定任务的计算机程序。 智能体的关键组成部分包括&#xff1a; 规划&#xff08;Planning&#xff09;&#xff1a;智能体能够将…

(二)、软硬件全开源智能手表,可全面高精度采集生命体征数据,进行健康检测。(HealthyPi Move)

HealthyPi Move是一款开放式硬件设备&#xff0c;可让您高精度地跟踪所有生命体征。它不仅仅是另一款带有心率监测器的智能手表&#xff0c;它还是手腕上的完整生命体征监测和记录设备&#xff0c;可以测量心电图(ECG)、光电容积脉搏波 (PPG)、SpO₂、血压(基于手指)、EDA/GSR、…

Clobotics 计算机视觉场景存储实践:多云架构、 POSIX 全兼容、低运维的统一存储

Clobotics 是一家将计算机视觉和机器学习技术应用于风电以及零售行业的企业。在风电行业&#xff0c;Clobotics 利用无人机对风力发电机叶片进行检查&#xff0c;显著降低了对人工作业的依赖。在零售领域&#xff0c;公司通过分析捕获的包装商品图像来提供基于实时数据的洞察&a…