IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 基于HLS的人脸肤色检测IP核设计研究 -> 正文阅读

[网络协议]基于HLS的人脸肤色检测IP核设计研究

1.开源地址

GitHub - Town-Hong/HLS_FaceDetect

2.主要工作

????????采用Vivado工具软硬件协同开发的方法,将摄像头实时画面采集、人脸肤色检测IP核和VGA显示集成在一个Zedboard嵌入式平台上,完成了系统测试及结果分析。主要工作如下:

(1)使用Vivado高层次综合工具(High-Level Synthesis,HLS)利用C++高级语言在ZYNQ可编程逻辑部分(Programmable Logic,PL)对人脸肤色检测IP核进行编码实现,主要包括:创建YCrCb高斯肤色模型计算肤色相似概率、大津法(OTSU)计算二值化阈值、形态学开运算和IP核硬件端口设计。最终利用HLS针对复杂系统的算术逻辑、资源调用和时间调度提供的优化手段,对人脸肤色检测IP核进行优化。

(2)使用Vivado工具对人脸肤色检测系统进行软硬件协同设计,添加OV7725摄像头图像采集IP、硬件加速的人脸肤色检测IP、DDR3存储IP和VGA显示IP并进行参数配置和端口连线,在ZYNQ处理系统部分(Processing System,PS)使用Vivado SDK进行软件设计,最终搭建了一套完整的实时视频检测通路。

(3)在Zedboard开发板上进行实物连接,对系统进行板上测试和分析检测效果,并通过集成逻辑分析器技术(Integrated Logic Analyzer, ILA)对检测效果做进一步的量化分析和效率评估。最终结果表明,本系统能对人脸肤色区域进行准确的检测,系统稳定且效果良好;提取效率只受工作时钟的影响,在100MHz工作频率下,处理每一帧图像(分辨率640×480)需要3.26ms,已经接近极限效率。

3.YCrCb高斯肤色模型

3.1 RGB转YCrCb

????????相比RGB颜色空间,肤色在YCrCb颜色空间可以轻松忽略亮度(Y)分量,能直接将三维空间转换为二维,而且在Cr、Cb两个分量肤色具有很好的聚类性。正是因为这些优秀的特性,可以说YCrCb颜色空间就是为肤色表示量身打造的。

? ? ? ? 转换公式:

????????

3.2?肤色计算模型

????????根据该肤色高斯分布模型就可以计算出目标像素点与肤色的可能性大小,即相似概率PCr,Cb ,取值范围[0,1],当相似概率越接近1时,目标像素就越可能属于肤色像素。相似概率计算公式:

????????高斯模型G(m,C) 的参数采用如下数据:

? ? ? ? ?仿真效果:????????

4.软硬件协同 - 算法的部署平台ZYNQ

4.1 硬件开发板

????????ZYNQ-7000嵌入式平台为ARM+FPGA体系架构,集成了ARM双核处理系统与FPGA硬件可编程逻辑。

????????Zedboard开发板是行业首款面向广大开源社区的基于Zynq-7000可扩展平台(EPP)的低成本开发板,除Zynq-7000外,还可以扩展音频视频模块、12口可编程Pmods、USB OTG 2.0接口、10/100/1000以太网接口、存储器等。

????????

?4.2 软件配套/仿真工具Vivado HLS

? ? ? ? 描述系统模型的高级语言C/C++/System C转换到描述RTL级的HDL代码,这种设计方式可以让设计人员不用再去关心底层的硬件实现细节,大大地降低了FPGA开发的难度和周期,使得更多软件开发人员能够越过硬件门槛接触硬件模块的设计。

4.3 总体方案

? ? ? ? 其中Vivado HLS视频库提供了许多与OpenCV具有相似接口和功能的函数,从而使得OpenCV能与HLS开发软件相互适配,实现FPGA架构中的图像处理功能,可以借助这个库完成视频抽帧,抽像素点,axi4数据转换。

? ? ? ? 实时视频检测软硬件模块设计如下:

HLS提供了非常多的优化手段,一方面必须根据实际代码语法、算术逻辑的特点,从而选取合适的优化手段,另一方面必须先确定极限优化时延,为实现最优优化制定目标。

4.4 详细实现

开源地址:GitHub - Town-Hong/HLS_FaceDetect

(1)视频数据处理和数据类型的转换

(2)YCrCb高斯模型计算相似概率

(3)OTSU阈值二值化

(4)形态学开运算

(5)IP核数据端口设计——Port-level接口协议

(6)IP核控制端口设计——Block-level接口协议

4.5?基于HLS的人脸肤色检测IP核的加速优化

????????HLS提供了非常多的优化手段,一方面必须根据实际代码语法、算术逻辑的特点,从而选取合适的优化手段,另一方面必须先确定极限优化时延,为实现最优优化制定目标。通过HLS提供的宏函数完成,模板:#pragma HLS xx

未经优化数据:

????????

????????优化手段:

????????????????(1)初步优化——dataflow优化:?#pragma HLS dataflow

????????????????(2)对循环的优化?—— PIPELINE优化和FLATTEN优化:#pragma HLS pipeline II=1;#pragma HLS loop_flatten off

????????????????(3)对数组的优化——ARRAY_PARTITON

? ? ? ? ? ? ? ? (4)精优化——DEPENDENCE优化和数值位宽优化

????????最终优化结果:

????????

?5. IP核详细设计及连线

????????IP核设计原理+前后连接关系:

? ? ? ? 最终IP连接图:

????????

实物连线图:

?6.实践结果论证

人脸:? ? ? ?

手部:原图 -> 仿真图 -> 实时视频检测图

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-07-04 23:19:41  更:2022-07-04 23:21:33 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/28 20:43:23-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计