X86与FPGA相结合,基于PIB的AI开发——人体姿态识别

人体姿态估计是计算机视觉领域中用于理解和分析人类行为的一个关键技术。它主要涉及到检测和识别图像或视频中人体的各个关键点,并预测这些关键点之间的空间关系,从而构建出人体的骨架模型。

本文将介绍基于PIB板的人体姿态估计案例。这是一个交互式的实时人姿态识别的Openvino案例展示,它是在Intel X86 i7 CPU和 Cyclone V GT FPGA之间进行异构计算。

1. 系统组成

系统主要由一套PIB板、一套D8M + lvds TX 子卡+ LVDS线以及一台HDMI显示器组成。

PIB是一个基于Intel x86 i7 CPU和 Cyclone V GT FPGA 的智能开发平台,结合FPGA可重配置和CPU的软件可编程能力。

PIB板主要分为FPGA基板和CM模块。PIB 规格如下:

CPU

Intel 11th Core i7

HDMI x1

Ethernet x1 (I219)

USB3.0 x3, USB2.0 x1

Audio Jack x1

SATA x1, mSATAx1, M.2 for Wifi x1

RS232 x2, RS485 x1 (shared with FPGA)

20-pin GPIO Header x1 

FPGA

Serial configuration device: EPCQ256

External JTAG header

1GB DDR3 SDRAM(32-bit data bus)

Gigabit Ethernet x4

LVDS Camera x4, MIPI Camera x2

RS232 x2, RS485 x1, CAN x2

20-pin GPIO Header

9-axis sensor

FPGA_RST Button x1, KEY x2, green LED x2

Four 50MHz clock sources

FPGA基板

图片

图片

CM模块

图片

图片

D8M

D8M-GPIO 是一个 2x20 pin GPIO 接口的八百万素摄像头套件。套件内包含了 MIPI Camera Module 以及MIPI decoder。

MIPI Camera module 撷取影像后输出 MIPI 影像讯号封包,该影像讯号封包经过 MIPI decoder 转换成 10-bits parallel 的 bayer pattern,最终由 2x20 pin GPIO connector 输出。MIPI Camera Module 并内建了控制焦距的音圈马达 ( Voice Coil Motor;VCM ),开发者可透过 I2C 来控制对焦距离。

lvds TX 子卡

接口转换子卡,将GPIO槽口转lvds接口。

图片

2. OpenVINO简介

OpenVINO是Intel推出的开放可视化推理及神经网络优化工具包,运用OpenVINO 可以很轻松的将各种优化后的AI模型部署到 CPU+ FPGA上,从而降低了开发成本和开发时间,还提高了设计性能。

OpenVINO主要特点有:

  • 支持在边缘设备上进行CNN深度学习推理

  • 支持跨Intel计算机视觉加速器的异构加速执行,CPU,英特尔集成图形化,英特尔神经计算棒及FPG。

  • 使用统一的API 通过易于使用的计算机视觉函数和预先优化的内核加速上市时间。

  • 包括对OpenCV*, OpenCL™, and OpenVX*等对算机视觉标准的优化调用。

图片

OpenVINO包含深度学习部署工具包,该工具包主要分以下两个模块:

  • 模型优化器:基于Python的命令行工具从主流的深度学习框架(如caffe,TensorFlow, Apache MXNet等)导入训练过的模型。输入训练模型,优化网络拓扑,并将其转换为IR(中间表示)文件。

  • 推理引擎:推理引擎使用统一的API在您选择的平台(如CPU, GPU, VPU, FPGA)等提供优化的推理解决方案,来进行异构处理和异步执行以节省开发时间。

OpenVINO工作流程

以下是使用 OpenVINO优化并部署训练后的模型的步骤:

1. 为您的框架配置模型优化器

2. 转换训练后的模型,根据训练的网络拓扑、权重和偏置值生成模型的优化中间表示 (IR)文件

3. 通过验证应用程序或示例应用程序,在目标环境中使用推理引擎以中间表示格式测试模型

4. 在应用程序中集成推理引擎,以在目标环境中部署模型

图片

本案例也是直接用Intel openvino预训练好的模型,将人体姿态估计demo部署到PIB的过程。

3. 硬件设计

下图所示为PIB RTL设计系统框图,CPU可通过PCIE_DMA_Ctl子系统中的PCIe Gen2 x1配置Camera子系统,LVDS camera 拍摄到的图像数据会由 Camera 子系统进行处理,然后存储到 DDR3 内存中,CPU 可通过 PCIE_DMA_Ctl 子系统中的 PCIe Gen2x4 读取 DDR3 中的图像数据。

图片

4. 应用程序

如下是人体姿态识别的应用程序流程图:

图片

5. 测试步骤

1. 将D8M-GPIO子卡连接到LVDS-TX子卡上。

图片

2. 将GMSL线缆连接到LVDS-TX子卡的J2接口。

图片

3. 将GMSL线缆的另一端连接到PIB底板的LVDS0(J4)接口。

图片

4. 保持SW1处于OFF,然后将24V/5A电源适配器的插头插到PIB底板的DC_IN(J20)接口,开机PIB系统。

图片

5. PIB系统启动后,显示器上会显示输入密码的界面,输入密码(terasic)进入系统桌面。

图片

4. 视频演示

视频请参考原文:X86与FPGA相结合,基于PIB的AI开发——人体姿态识别

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

CentOS-7部署mysql、clickhouse并通过普罗米修斯、grafna监控告警

一、准备工作 1、系统环境 所用镜像:CentOS-7-x86_64-DVD-2009.iso 2、涉及安装包 3、克隆4台虚拟机 用途IP主机名Prometneus服务器192.168.15.129master被监控服务器1192.168.15.133node1mysql、clickhouse、grafana服务器192.168.15.134node2被监控服务器219…

19 Debian如何配置DNS服务(1)缓存服务器

作者:网络傅老师 特别提示:未经作者允许,不得转载任何内容。违者必究! Debian如何配置DNS服务(1)缓存服务器 《傅老师Debian小知识库系列之19》——原创 前言 傅老师Debian小知识库特点: 1、…

MySQL无法打开情况下读取frm文件的表结构

一、背景: 开发人员通过MySQL客户端工具,可以访问MySQL5.7.6,可以访问具体的DB,可以查看小写表的数据,但是无法查看大写表的数据,报错信息为“table does not exist”。 二、检查与分析: ssh登录…

网络安全主题纪录片

网络安全主题纪录片 文章目录 网络安全主题纪录片第四公民黑客帝国系列龙纹身女孩碟中谍系列虎胆龙威4匿名者终结者2:审判日东方快车谋杀案黑客国家公敌我是谁:没有绝对安全的系统黑客军团速度与激情系列十亿美元大劫案勒索软件的背后黑客的恐惧为什么网…

贪心算法-活动安排问题和背包问题

实验6贪心算法-活动安排问题和背包问题 实验目的: 理解贪心算法的基本思想运用贪心算法解决实际问题 实验内容: 采用贪心方法编程实现以下问题的算法 1.如何安排下列活动使得使用的活动场所最少,并给出具体的安排方法。 活动 a b c …

mybatis 生成器,是否功能实现,需写测试类

一、看视频步骤 请按视频流程走 mybatis-18-CSDN直播 二、视频报错 解决思路 网址: 使用配置 | MyBatis-Plus (baomidou.com) 添加代码: 效果图:√ Tests passed: 前面✔,表示正确。 1为最终结果

面包屑新玩法,ReactRouter+Ant Design实现动态渲染

在Ant Design中,可以通过Breadcrumb组件结合react-router库实现动态生成面包屑导航。具体步骤如下: 定义路由配置数据结构 我们需要在路由配置中添加额外的面包屑相关信息,例如面包屑标题、icon等。例如: const routes [{path: /,breadcrumbName: 首页},{path: /users,brea…

【笔试】03

FLOPS FLOPS 是 Floating Point Operations Per Second 的缩写,意为每秒浮点运算次数。它是衡量计算机性能的指标,特别是用于衡量计算机每秒能够执行多少浮点运算。在高性能计算领域,FLOPS 被广泛用来评估超级计算机、CPU、GPU 和其他处理器…

【macOS】M芯片安装windows10以及配置office

背景 M3芯片Macbook ProParallel Desktop19office word visio打算配置一个好用的笔记本,携带着尽快把论文的正文写完,macOS里面的word排版可能出错,所以像配置一个双系统,里面必然要有的是word和visio,其他没有要求 …

使用linux,c++,创作一个简单的五子棋游戏

#include <iostream> #include <vector> #include <unordered_map> using namespace std; // 棋盘大小 const int BOARD_SIZE 15; // 棋子类型 enum ChessType { EMPTY, BLACK, WHITE }; // 棋盘类 class ChessBoard { private: vect…

大数据学习第四天

文章目录 yaml 三大组件的方式交互流程hive 使用安装mysql(hadoop03主机)出现错误解决方式临时密码 卸载mysql (hadoop02主机)卸载mysql(hadoop01主机执行)安装hive上传文件解压解决版本差异修改hive-env.sh修改 hive-site.xml上传驱动包初始化元数据在hdfs 创建hive 存储目录启…

怎么选出一个95分的产品?选品的逻辑到底是什么?如何不选错

大家好&#xff0c;我是电商花花。 选品定生死。 做电商的应该都会听过这句话&#xff0c;可能有些商家也只是听听就过去&#xff0c;如果没有遇到选品的问题就很难感受到。 如果你体验到一款好的产品带来的流量红利&#xff0c;体验一次爆单&#xff0c;就会知道选出优质的…

Reactor 核心概念-响应式编程-003

🤗 ApiHug {Postman|Swagger|Api...} = 快↑ 准√ 省↓ GitHub - apihug/apihug.com: All abou the Apihug apihug.com: We build what we loveApiHug - API design Copilot - IntelliJ IDEs Plugin | MarketplaceReactor 核心库在: reactor-core, 实现。 引入 (gradl…

【头文件】对.h文件的理解

目录 &#x1f31e;1. 头文件的概念 &#x1f30a;1.1 头文件的由来 &#x1f30a;1.2 头文件的作用 &#x1f30a;1.3 在.h文件中实现函数也不会出错的原因 &#x1f31e;2. 简单示例 &#x1f30a;2.1 头文件addition.h &#x1f30a;2.2 头文件接口实现addition.cpp …

Leetcode 119 杨辉三角 II

目录 一、问题描述二、示例及约束三、代码方法一&#xff1a;递推方法二&#xff1a;线性递推 四、总结 一、问题描述 给定一个非负索引 rowIndex&#xff0c;返回「杨辉三角」的第 rowIndex 行。   在「杨辉三角」中&#xff0c;每个数是它左上方和右上方的数的和。   自我…

【JavaEE网络】深入理解Socket套接字及其在网络编程中的应用

目录 Socket套接字UDP VS TCP有连接 VS 无连接可靠传输 VS 不可靠传输面向字节流 VS 面向数据报 全双工 VS 半双工 UDP数据报套接字编程DatagramSocket APIDatagramPacket APIInetSocketAddress APIUDP回显客户端服务器服务器和客户端的工作流程UDP翻译客户端服务器 Socket套接…

轻松找回误删文件,告别企业数据丢失,如何有效利用teamOS二级回收站,提升数据管理效率

在数字化时代&#xff0c;我们越来越依赖电子文件来记录和管理重要信息。 然而&#xff0c;伴随着这种便利的同时&#xff0c;误删或恶意操作导致的文件丢失也成为了一个令人头疼的问题。 那么本文就来谈一谈&#xff0c;企业网盘如何解决误删、甚至恶意删除的问题。 可道云…

高效的数据采集如何促进企业发展?

大数据开启了一个大规模生产、分享和应用数据的时代&#xff0c;它给技术和商业带来了巨大的变化。麦肯锡研究表明&#xff0c;在医疗、零售和制造业领域&#xff0c;大数据每年可以提高劳动生产率0.5-1个百分点。大数据在核心领域的渗透速度有目共睹&#xff0c;然而调查显示&…

ctfshow——XSS

文章目录 XSS介绍什么是xss&#xff1f;XSS危害XSS的分类常用XSSpayload web316——反射型XSSweb317——过滤<script> web318——过滤script、imgweb319——不止过滤script、imgweb320——过滤空格web321——不止过滤空格web322——不止过滤空格web323web324web 325web32…

ubuntu下安装python模块 pip intall xxx报错

报错内容大概如下&#xff1a; WARNING: Retrying (Retry(total4, connectNone, readNone, redirectNone, statusNone)) after connection broken by NewConnectionError(<pip._vendor.urllib3.connection.HTTPSConnection object at 0x7f0fc68d6370>: Failed to establ…