国产RK3588+DSP+FPGA+AI工业视觉主板解决方案

 工业4.0驱动新一轮工业革命,核心特征是互联,进一步信息化、智能化是典型的特点。顺应工业4.0的需求,瑞芯微针对性地提供了HMI人机交互、信息采集及控制、以及AI视觉等解决方案,并广泛应用于工业各个领域。信迈科技发挥多年FPGA的优势,推出国产RK3588+DSP+FPGA+AI工业视觉主板解决方案。

一、功能需求

  1. 具备视频/图像解码单元、视频/图像编码单元、串口通信单元、视频缓存单元等;
  2. 能够完成图像采集、帧缓存、预处理、串口通信控制等功能;
  3. 能够完成图像增强、目标检测、目标跟踪等功能。

二、性能需求

  1. 能够实现对像素大小1920*1080(25帧/秒)的视频流数据进行实时处理;
  2. 支持深度卷积神经网络模型(如YOLO系列,Faster RCNN系列等)对视频数据的实时处理;

三、接口需求

  1. 视频图像输入接口:1组CameraLink base,1组HD-SDI
  2. 图像输出接口:1组PAL
  3. 控制及通信输入输出接口:1组422
  4. 硬件调试接口:FPGA—jtag,DSP/AI芯片—串口
  5. 输入电源:28V直流
  6. 网口要求:RJ45

RK3588 是一款低功耗、高性能的处理器,适用于基于 arm 的 PC 和 Edge 计算设备、个人 移动互联网设备等数字多媒体应用,采用 8nm 结构,将四核 Cortex-A76 和四核 Cortex-A55 分 别与 NEON 集成在一起。RK3588 支持 8K、60fps 解码,拥有高质量的 JPEG 编码器/解码器, 专业的图像预处理器,内置 GPU 可以完全兼容 OpenGLES 1.1、2.0 和 3.2。RK3588 引入了新 一代完全基于硬件的最大 4800 万像素 ISP,内置 NPU,支持 INT4/INT8/INT16/FP16 混合运算 能力,支持安卓 12 和 linux 系统。

瑞芯微 RK3588 功能框图

 

内置NPU 算力高达6T

内置NPU, 支持INT/INT8/INT16/FP16混合运算,运算能力高达6Tops。支持深度学习框架,基于TensorFlow/MXNet/PyTorch/Caffe等一系列框架的网络模型可以轻松转换,赋能各类AI场景。

8K编码+8K解码 多路视频源同编同解

iTOP-3568拥有强大的视频编解码能力,支持8K@60fps H.265/H.264/VP9/AV1视频解码和8K@30fps H.265/H.264视频编码,可以支持多达40多路1080P高清视频的同时解码,图像更清晰、细节更丰富。

多屏显示

RK3568可实现4屏显示, 支持真8K或双4K120Hz的显示能力,同样支持1080P高清图像,真正做到超高清、高帧率、多分辨率任意组合的多屏异显。可有效提高行业定制的拓展性。

多摄像头

RK3588集成4800万安防级别ISP、3F HDR 20bit、3D降噪、畸变矫正、宽动态对比度增强等技术,支持多摄像头接入,在智慧安防行业带来相当震撼的视觉体验。

超强的网络通讯能力

人工智能时代,更多设备需要稳定联网,迅为RK3588板载2路千兆以太网接口、WIFI与蓝牙二合一模块,支持4G模块、5G模块,保障数据传输的稳定性,为每台接入设备的稳定连接保驾护航。

显示接口

开发板显示接口支持2路HDMI_TX高清输出接口, 1路HDMI_RX高清输入,2路MIPI TX接口、1路EDP接口,支持多路8K视频输出和4K视频输入。

数据接口 超强联接

板载1路PCIe3.0、1路PCIe2.0,支持M.2固态硬盘和SATA硬盘,1路SATA3.0、1路USB3.0、3路USB2.0、1路TypeC接口,多接口,多需求,大满足。

瑞芯微工业级芯片产品除了拥有高扩展性、品质保障、可靠性及寿命保障等硬性优势外,还具有软件保障、强大的生态保障以及服务经验优势等雄厚的软实力,助力工业类应用需求的各类客户实现产品智能化升级。

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
【资源介绍】 基于RK3588上部署yolov5s模型源码(实时摄像头检测)+部署说明文档.zip 该项目是个人毕设项目,答辩评审分达到95分,代码都经过调试测试,确保可以运行!欢迎下载使用,可用于小白学习、进阶。 该资源主要针对计算机、通信、人工智能、自动化等相关专业的学生、老师或从业者下载使用,亦可作为期末课程设计、课程大作业、毕业设计等。 项目整体具有较高的学习借鉴价值!基础能力强的可以在此基础上修改调整,以实现不同的功能。 yolov5模型(.pt)在RK3588(S)上的部署(实时摄像头检测) - 所需: - 安装了Ubuntu20系统的RK3588 - 安装了Ubuntu18的电脑或者虚拟机 <details> <summary>一、yolov5 PT模型获取</summary> [Anaconda教程](https://blog.csdn.net/qq_25033587/article/details/89377259)\ [YOLOv5教程](https://zhuanlan.zhihu.com/p/501798155)\ 经过上面两个教程之后,你应该获取了自己的`best.pt`文件 </details> <details> <summary>二、PT模型转onnx模型</summary> - 将`models/yolo.py`文件中的`class`类下的`forward`函数由: ```python def forward(self, x): z = [] # inference output for i in range(self.nl): x[i] = self.m[i](x[i]) # conv bs, _, ny, nx = x[i].shape # x(bs,255,20,20) to x(bs,3,20,20,85) x[i] = x[i].view(bs, self.na, self.no, ny, nx).permute(0, 1, 3, 4, 2).contiguous() if not self.training: # inference if self.dynamic or self.grid[i].shape[2:4] != x[i].shape[2:4]: self.grid[i], self.anchor_grid[i] = self._make_grid(nx, ny, i) if isinstance(self, Segment): # (boxes + masks) xy, wh, conf, mask = x[i].split((2, 2, self.nc + 1, self.no - self.nc - 5), 4) xy = (xy.sigmoid() * 2 + self.grid[i]) * self.stride[i] # xy wh = (wh.sigmoid() * 2) ** 2 * self.anchor_grid[i] # wh y = torch.cat((xy, wh, conf.sigmoid(), mask), 4) else: # Detect (boxes only) xy, wh, conf = x[i].sigmoid().split((2, 2, self.nc + 1), 4) xy = (xy * 2 + self.grid[i]) * self.stride[i] # xy wh = (wh * 2) ** 2 * self.anchor_grid[i] # wh y = torch.cat((xy, wh, conf), 4) z.append(y.view(bs, self.na * nx * ny, self.no)) return x if self.training else (torch.cat(z, 1),) if self.export else (torch.cat(z, 1), x) ``` 改为: ```python def forward(self, x): z = [] # inference
RK3588是一款高性能的嵌入式处理器,而Qv4l2是一个用于视频设备的Linux内核驱动程序。在RK3588上使用Qv4l2可以实现对视频设备的控制和操作。 要在RK3588上使用Qv4l2,首先需要通过ioctl()函数查询设备的基本信息。可以使用VIDIOC_QUERYCAP命令来获取设备的名称、版本号以及已支持的标准等信息。以下是一个示例代码: ```c // 定义一个 v4l2_capability 结构体的变量 cap struct v4l2_capability cap; // 使用 ioctl 函数发送 VIDIOC_QUERYCAP 命令来获取视频设备的基本信息,并将结果保存到 cap 变量中 if (ioctl(fd, VIDIOC_QUERYCAP, &cap) < 0) { perror("VIDIOC_QUERYCAP"); return -1; } ``` 在查询设备的基本信息之后,可以使用v4l2_fmtdesc结构体来查询设备支持的分辨率。v4l2_fmtdesc结构体中的description字段可以用来描述分辨率的信息。以下是一个示例代码: ```c // 定义一个 v4l2_fmtdesc 结构体的变量 fmt struct v4l2_fmtdesc fmt; // 设置 fmt 的 index 字段为要查询的格式编号 fmt.index = 0; // 使用 ioctl 函数发送 VIDIOC_ENUM_FMT 命令来获取设备支持的分辨率信息,并将结果保存到 fmt 变量中 if (ioctl(fd, VIDIOC_ENUM_FMT, &fmt) < 0) { perror("VIDIOC_ENUM_FMT"); return -1; } // 打印分辨率的描述信息 printf("Resolution description: %s\n", fmt.description); ``` 通过以上代码,可以查询到设备支持的分辨率的描述信息。你可以根据需要修改代码中的参数来查询其他分辨率的信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值