自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(64)
  • 资源 (22)
  • 收藏
  • 关注

原创 CentOS安装基于Mellanox网卡的DPDK开发环境

主要参考:https://doc.dpdk.org/guides/nics/mlx5.html#quick-start-guide-on-ofed-enhttps://blog.csdn.net/qq_16088269/article/details/103477194环境网卡:Mellanox MCX515A系统:CentOS 7.8DPDK: dpdk-19.11.3网卡驱动:MLNX_OFED_LINUX-5.1-0.6.6.0-rhel7.8-x86_64下载Mellanox 网卡

2020-08-18 14:10:19 5949 3

原创 ubuntu 18.04 虚拟机安装 dpdk 开发环境

配置虚拟机网卡,在虚拟机设置中添加 2 个网络适配器,并配置为桥接模式在 DPDK 官网首页打开下载页面选择长期支持版 19.11.3下载后的 dpdk-19.11.3.tar.xz 文件导入虚拟机并解压至主目录,为方便使用,将文件夹改名为 dpdk打开终端,转为 root 用户sudo su配置环境变量export RTE_SDK=/home/bt/dpdkexport RTE_TARGET=x86_64-native-linuxapp-gcc安装辅助软件apt-get

2020-08-13 13:29:06 2980 2

原创 Nios II 基础工程和自定义组件

软件环境:Quartus Prime Standard 18.1 Window 10硬件环境:小梅哥 AC501 开发板主要参考:Intel Quartus Prime Standard Edition User Guide/Platform DesignerAvalon Interface Specifications本实验使用 Nios 的自定义组件控制开发板上 LED 闪烁。...

2020-04-13 07:26:45 1206 6

原创 ViBe 增强算法

原文:Background Subtraction: Experiments and Improvements for ViBe作者:M. Van Droogenbroeck and O. Paquothttps://github.com/upcAutoLang/BackgroundSplit-OpenCV/blob/master/src/ViBe%2B/ViBePlus.cpphttp...

2020-04-03 10:38:27 532

原创 MDNet 算法原理

概述MDNet 全称 Multi-Domain Convolutional Neural Network原文:Learning Multi-Domain Convolutional Neural Networks for Visual Tracking代码:https://github.com/hyeonseobnam/py-MDNet作者:Hyeonseob Nam, Bohyung ...

2020-03-25 15:00:56 6946 2

原创 ViBe 算法仿真

使用 Python 对 ViBe 算法进行仿真,通过对一段视频的测试,发现以下 2 个问题:算法参数对计算效果的影响还是比较大,主要影响慢速运动和亮度闪烁不进行专门的并行计算优化的情况下,计算速度相当慢。仿真图像:下方仿真代码从视频片段中读出图像帧,经过 ViBe 计算得到区分前景与背景的二值图像,将原始图像帧与 ViBe 输出图像合并后组成输出视频import cv2impo...

2020-03-20 15:54:41 445

原创 ViBe 背景提取算法原理

本文由原始文档的部分章节翻译得到:ViBe: A universal background subtraction algorithm for video sequencesOlivier Barnich and Marc Van Croogenbroeck, Member, IEEEIII. ViBe 算法描述背景提取算法至少必须妥善处理以下 3 个方面的问题才能得到理想的结果:算法...

2020-03-19 13:43:18 2057

原创 Numpy 用 npy/npz 文件保存与载入数据

Numpy 的数据保存与载入方法比 Python 的 pickle 要方便的多。而且由于目前大多数的复杂数据处理都使用 Numpy,因此相比较而言 npy/npz 的 Numpy 数据保存与载入更为常用。函数说明numpy.load(file, mmap_mode=None, allow_pickle=True, fix_imports=True, encoding=‘ASCII’)用于...

2020-03-07 18:16:42 3584

原创 Python 读写文件的二进制数据

概述Python 读写文件的二进制数据比 C/C++ 语言复杂得多。主要差别在于需要进行 bytes 类型和其它基础数据类型(比如 int/float)的转换。转换工具在一般情况下都是使用 struct 库。读出数据在 open 函数中使用 rb 作为 mode 打开文件,再用 struct.unpack 函数解析 bytes 数据。具体可以参考 open 函数和 stuct.unpac...

2020-02-18 17:08:13 26972

原创 建立基于 Anaconda 和 VS Code 的 Python 开发环境

概述使用 VS Code 进行 Python 开发时,Anaconda 可以方便的辅助 VS Code 进行包管理。配置 Anaconda打开 Anaconda (Anaconda Navigator),进入 Environment 页面,点击下方的 Create 按钮:在弹出的 Create new environment 窗口中选择 Python 版本和运行环境名称后,点击 Crea...

2020-02-18 08:45:00 1052

原创 建立基于 Anaconda 和 PyCharm 的 Python 开发环境

概述Anaconda 和 PyCharm 都可以独立完成整个 Python 开发流程。使用 Anaconda 和 PyCharm 联合开发,将Anaconda 作为包管理器器,PyCharm 作为开发环境,则可以更好的发挥 2 个软件的优势,简化流程。下载Anaconda 网站:https://www.anaconda.com/PyCharm 的 Anaconda 配套版本(或者正常的...

2020-02-18 08:32:51 1026

原创 hls_zcu102_0_基础流程与放弃

本系列文档通过实例说明 Vivado HLS 的使用方法。开发环境:zcu102 开发板Windows 10Vivado 2018.2.1Visual Studio CodeMatlab 2017b主要参考资料包括:ug998ug871ug902ug1197Vivado HLS 基本应用与图像处理视频教程本文档说明了使用 Vivado HLS 实现算法功能的基本...

2020-02-06 15:02:55 1440

原创 vitis_zcu102_3_Vitis 实现多核工作

文章目录添加 Domain添加 Application Project配置 Application 的指令空间编写测试代码:a0 代码a1 代码a2 代码a3 代码测试运行SD 卡加载镜像具体方法与 SDK 的多核工作实现方法基本一致,详细操作可以参考 zcu102 系列文档。本文的代码工程继承 vitis_zcu102_1 文档添加 Domain打开 Platform Project,双...

2020-01-19 12:34:51 2624 1

原创 vitis_zcu102_2_Vitis 实现 Bare-Metal 工程

文章目录建立 Vivado 工程建立 Platform Project建立 Application Project运行测试Vitis 自带的串口 Terminal具体方法与 SDK 的 Bare-metal 工程基本一致,详细操作可以参考 zcu102 系列文档。建立 Vivado 工程建立基于 zcu102 开发板的 Vivado 工程。建立 Block Design,添加 Zynq U...

2020-01-15 14:58:36 1576

原创 vitis_zcu102_1_Hello Vitis

主要参考:ug1400安装串口调试软件安装串口软件 tinyserial本人使用 Qt 5.12.6 编译后使用(deb 安装后无法运行)。建立 Platform Project启动 Vitis Software Platform,设置 Workspace 路径后点击 Launch 按钮。进入 IDE 后在菜单栏选择 File > New > Platform Proj...

2020-01-09 09:38:42 1784

原创 vitis_zcu102_0_建立开发环境

文章目录前言开发环境安装步骤安装 opencl下载并安装 Vitis Software Platform安装加载线驱动安装 Xilinx Runtime (XRT)设置运行路径前言Vitis 被 Xilinx 称为 “统一软件平台”,从目前已了解的情况来看,嵌入式软件开发在 Vitis 上更为简单方便。从 ISE 到 Vivado,再到 Vitis 的升级趋势来看,Vitis 将是未来数年的...

2020-01-09 09:10:35 2686 7

原创 FPGA图像处理13_常用算法_图像放大

图像放大此处只说明图像放大,不涉及图像缩小,因为大多数图像处理场景下图像缩小的需求可以直接使用像素点抽取的方式实现,而且在缩小之后还涉及到与需求关联紧密的图像拼接,很难有通用化的设计。算法原理坐标转换图像放大有以下关键设计:坐标转换:输出图像像素点坐标转化为输入图像内的坐标,并找到包围该坐标的像素点用于插值计算。数据缓冲:输入图像数据截取与缓冲,将用于插值计算的像素点值缓冲,并且在缓...

2019-09-29 08:08:04 3931 2

原创 FPGA图像处理12_常用算法_饱和度调节

饱和度调节饱和度调整的算法很多,基本上是越复杂的算法,调整后的图像视觉效果越好。由于FPGA 不善长复杂的浮点运算,另一方面由于本文定位于基本的图像处理算法,此处只选择一种比较简单的饱和度算法。设当前输入像素值位宽为 8,RGB 三通道数值为 r、g、b,三个数值间最大值为 max,最小值为 min。如果 max=minmax=minmax=min,则当前像素点不用调节,直接输出原像素值。...

2019-09-05 15:49:12 1774 1

原创 FPGA图像处理11_常用算法_亮度及对比度调节

亮度及对比度调节亮度及对比度需要根据数值配合一齐调节,以达到更新的视觉效果。如果是 RGB 彩色图像,亮度与对比度调节需要在所有颜色通道上进行相同的调节。设当前像素点位宽为 8,则像素值范围 0~255。设当前像素点值为 x,调节输出像素点值为 y。设亮度参数b范围 -1~1,则有亮度调节公式:yb=x+255×by={0yb≤0255yb≥255yb0<yb&l...

2019-09-05 15:45:11 3447 4

原创 FPGA图像处理10_常用算法_图像锐化

锐化锐化即在图像上增强显示图像内容的边缘成分。根据边缘成分的计算方法,常用的方法有高斯滤波锐化和拉普拉斯滤波锐化。高斯滤波锐化将原始图像 x 减去高斯滤波(相当于低通滤波)后得到的平滑图像 gaussian(x),计算得到边缘图像 z:z=x−gaussian(x)z=x-gaussian(x)z=x−gaussian(x)拉普拉斯滤波锐化直接使用拉普拉斯滤波(相当于高通滤波)得到边...

2019-09-05 15:40:24 3104 1

原创 FPGA图像处理9_常用算法_直方图均衡

直方图均衡直方图均衡算法通过将各颜色通道的像素点数值间距拉大,实现在当前颜色通道内像素点数值的大幅差异,增强视觉效果。除此以外,在图像传感器输入的像素值位宽与实际用于显示的像素值位宽不一致的情况下,直方图均衡算法也常用于像素点位宽的转换。对于 RGB 图像,可以先将其转化为 YUV 图像,仅对 Y 通道执行直方图均衡算法后,再由 YUV 图像转化为 RGB 图像,实现彩色图像的增强。一般情况...

2019-09-05 15:35:38 1898 4

原创 FPGA图像处理8_常用算法_中值滤波去噪

中值滤波去噪中值滤波是一种算法简单,效果较好的“高性价比”去噪算法。算法原理是使用图像内二维滑窗的中值(全部像素点数值排序位于中间位置的数值为中值)代替当前像素点值。如下图的 3×33\times 33×3 滑窗内,处于滑窗中心的当前像素点值为 8,滑窗内全部 9 个像素点的中值为 5,中值滤波即用数值 5 代替当前像素点值 8:以 3×33\times 33×3 中值滤波为例,首先将图...

2019-09-05 09:11:50 2446 10

原创 FPGA图像处理7_常用算法_解 Bayer 格式

DebayerDebayer 算法译成中文为解 Bayer 格式。Bayer 格式指的是大多数彩色图像传感器在每个像素点位置只感应 RGB 三通道中一个通道的颜色,用于节约制造成本。而且由于人眼对绿色较为敏感,50% 的像素点感应 G,25% 的像素点感应 R,25% 的像素点感应 B。不同型号的图像传感器像素点的 RGB 分布不同,比较典型的分布如下图所示:由于每个像素点只有 1 个颜...

2019-09-05 09:08:11 2875 1

原创 FPGA图像处理6_常用算法_RGB图像转灰度图像

RGB 图像转灰度图像RGB 图像转灰度图像的计算,即由当前像素点的 RGB 值计算 YUV 色域的 Y 通道的数值RGB 计算 Y 通道数值的计算公式:Y=0.299×R+0.587×G+0.114×BY=0.299\times R+0.587\times G+0.114\times BY=0.299×R+0.587×G+0.114×B在 FPGA 实现时,为了节约计算资源,将小数乘...

2019-09-05 09:01:27 1243

原创 FPGA图像处理5_基础功能_双线性插值(原理)

双线性插值双线性插值是常用的插值算法,是许多图像处理算法的组成部分。双线性插值由包围当前目标像素点的4个像素点的数值通过与当前像素点的相对位置偏移进行插值计算。如下图所示:由 4 个红点的数值通过双线性插值计算中间绿点的数值 g。公式如下:g=(w−xw×h00+xw×h01)×h−yh+(w−xw×h10+xw×h11)×yhg=(\frac{w-x}{w}\times h00+...

2019-09-03 16:42:26 1674 2

原创 FPGA图像处理4_基础功能_二维卷积滤波

二维卷积滤波二维卷积是常用的图像处理算法,即图像滑窗内的并行数据按滑窗内的坐标与卷积核函数对应坐标的参数相乘后,将所有乘法积值相加得到卷积滤波结果。但是由于卷积核函数大多数情况下都包含小数部分,在 FPGA 内执行浮点数乘法将占用大量资源。比较常用的处理方法是将核函数内各元素数值都乘以 2 的指数,将小数部分放大至整数部分,并且根据核函数的生成原理选择足够大的指数值以保证各元素间的差异。最终在...

2019-09-03 16:39:35 1095

原创 FPGA图像处理3_基础功能_二维缓冲

二维缓冲二维缓冲的功能是将串行的像素点数据转化为并行的多个像素点的滑窗,将滑窗内的坐标中心点作为当前并行数据对应的像素点,一般用于插值计算或者二维卷积。由于二维缓冲主要是逻辑控制,不涉及数值计算,最简单的方法是使用 Verilog 实现,但是由于二维缓冲在图像处理算法中应用十分广泛,做成 sysgen 模块更适合在 sysgen 中直接调用。根据图像处理原理,大部分计算用的滑窗都是 3×33...

2019-09-03 16:35:02 1132

原创 FPGA图像处理2_基础功能_数据类型转换

浮点数与无符号整数转换图像处理算法在 sysgen 中实现,大多使用定点整数计算,并且为了与图像算法原理一致,定点整数也仅限于无符号整数。对于必须与小数相乘的算法,在 sysgen 实现时可以用乘以无符号整数后再进行截去低位的办法实现等效计算。但是如果小数计算的数值在不同情况下有多种不确定的数值,则无法用先乘法再截位的办法模拟,只能使用浮点数进行计算。由此必须将定点无符号整数转化为浮点数,完...

2019-09-03 16:28:47 862

原创 FPGA图像处理1_基础功能_像素点行列坐标生成

虽然在图像数据流水线中已包含行列坐标,但是一些算法由于其本身的设计必须由行有效信号 lv 重新生成行列坐标。令图像的列数目为 COLS,行数目为 ROWS。列坐标范围 0~(COLS-1)。行坐标范围 0~(ROWS-1)。基本设计思想是使用 2 个计数器分别计算列坐标和行坐标,当列坐标计数器计数至最大列坐标时,行坐标值增 1 。模块 Subsystem 封装后如下所示:rst 用于...

2019-09-03 16:18:59 1907

原创 FPGA图像处理0_概述及设计原则

概述目前实时图像处理的硬件主要是 FPGA、GPU 和 DSP 三类。从笔者的开发经验来看,FPGA 以其实时性和灵活性占据主流;GPU 虽然不及DSP应用广泛,但是随着开发技术逐步升级和性能逐步提升,以及 DSP 技术自身的没落(个人观点,不讨论),GPU 在某些特定场景下可能是更优于 FPGA 的首选。本系列文章主要说明基于 Xilinx FPGA 的实时图像处理。虽然 FPGA 开发用的...

2019-09-03 15:56:11 1034

原创 zcu102_17_PS通过I2C接口读写外设寄存器

根据 ug1182,zcu102 板卡上 PS 连接 2 个 I2C 接口,分别是 I2C0(MIO 14-15) 和 I2C1(MIO 16-17)。本试验使用 I2C1 通过 zcu102 板卡的 FMC HPC1 接口连接外设,PS 作为 I2C Master,外设作为 I2C Slave。I2C 接口说明由于 PS 程序通过 API 封装函数使用 I2C 接口,因此本文不再详述 I2...

2019-07-31 10:39:32 2480

原创 zcu102_13_PS多核协同工作

本试验在 PS 中使用 zynq 内部全部 4 个 A53 核分别独立运行程序,并且使用 DDR 进行数据通信。除了在 SDK 中使用 Debug 进行运行调试外,还试验了以镜像文件的方式在 SD 卡中加载启动。除了官方的 ug1186(本试验未使用 openamp)、xapp1079 以外,还有以下:https://blog.csdn.net/long_fly/article/detail...

2019-07-25 15:42:33 2107 2

原创 zcu102_注意_PS程序DDR空间分配

PS工程建立后在BSP工程的在xparameters.h文件中定义了可访问的DDR内存空间范围需要注意的是,此空间范围包括两个部分,程序指令空间和用户空间在编程时如果将数据写入程序指令空间则可能出现不可理解的异常状况,因此程序中读写DDR内存应当尽量避开程序指令空间程序指令空间的定义在工作工程的linker script文件lscript.ld中双击打开lscript.ld文件默认建立...

2019-07-25 08:41:19 3175 1

原创 zcu102_16_PL端读写DDR4

文章目录建立工程板卡器件及对应IPIP用户接口地址映射DDR4 MIG IP的读写时序封装设计测试工程说明本试验建立DDR4读写的MIG IP核,并且对其读写时序进行封装实现类似FIFO的读写接口。测试工程已上传至<>建立工程参考之前的文档在Vivado内建立基于zcu102开发板的测试工程板卡器件及对应IP参考ug1182,在zcu102板卡上与PL连接的DDR4外部存储...

2019-07-10 08:48:00 7509 30

原创 双硬盘主机安装Ubuntu 18.04

硬件环境主板:Asus Z370-P IICPU:Intel I7 8700k硬盘:256GB NVMe SSD + 2TB 机械硬盘Windows 10系统下创建安装u盘在Ubuntu官网下载iso镜像文件,并根据安装指导下载Rufus 3.5.1497用于创建安装u盘插入u盘(保证空间足够),打开Rufus界面后,选择下载的iso镜像文件分区类型:GPT目标系统类型:UEFI(...

2019-05-22 15:02:35 6467

原创 zcu102_15_Vivado中使用SysGen

SystemGenerator的具体使用方法见ug897/ug948/ug958配置Matlab版本在开始菜单打开System Generator 2018.2 MATLAB Configurator使用Find MATLAB选择对应版本的MatlabStatus显示的Configured表示当前的Matlab版本R2017b与Vivado 2018.2版本完全匹配点击OK关闭窗口...

2019-05-16 17:23:31 1246

原创 zcu102_14_Zynq在Standalone下使用uGUI

uGUI的基本工作原理是将GUI组件的像素通过数据修改或者替换的方法叠加在原始图像数据上uGUI的使用非常简单,将下载的ugui.h和ugui.c文件导入PS工程中即可以使用,通过官网手册和代码注释可以查看详细用法下载在官网下载uGUI的最新版本在网页的下方可以找到使用手册,源代码和示例程序导入PS工程可以通过复制粘贴的方式将下载的源码文件ugui.h和ugui.c文件导入PS工程...

2019-04-11 09:21:19 951 2

原创 zcu102_注意_解决SDK链接静态库bug

在SDK中开发PS程序时,如果改动工程配置中的Path and Symbols中Libraires参数,则可能出现链接时undefined reference的错误因为添加的静态库失效,没有链接,原因在于改动Libraries之后,gcc的链接指令多出一个-l指令,与SDK建立工程时默认的Libraries的指令格式不匹配,导致链接失败比如新建工程时,在工程上右键菜单选择Properties,...

2019-03-12 10:54:50 2819 4

原创 zcu102_12_Standalone以太网数据的TCP传输

本文在PS的Standalone程序中使用lwip库通过TCP协议实现网络数据传输。包含TCP Server和TCP Client两种形式本文主要参考lwip的SDK内部说明和工程模板,xapp1026, xapp1306, SDK以及3篇博客:https://www.cnblogs.com/54zorb/p/9609021.htmlhttps://www.cnblogs.com/54zo...

2019-03-06 10:51:08 3101 7

原创 zcu102_12_Standalone以太网数据的UDP传输

本文在PS的Standalone程序中使用lwip库通过UDP协议实现网络数据传输。包含UDP Server和UDP Client两种形式本文主要参考lwip的SDK内部说明和工程模板,xapp1026, xapp1306, SDK以及两篇博客:https://www.cnblogs.com/54zorb/p/9609021.htmlhttps://www.cnblogs.com/54zo...

2019-03-05 16:51:04 2097 2

cus_com.7z

博客配套源码: https://blog.csdn.net/botao_li/article/details/105480605

2020-04-13

hls_0_基础流程

博客配套源码: https://blog.csdn.net/botao_li/article/details/104196140

2020-02-06

vitis_3.7z

博客配套资源 https://blog.csdn.net/botao_li/article/details/104039068

2020-01-19

vitis_2.7z

博客配套资源 https://blog.csdn.net/botao_li/article/details/103989316

2020-01-15

vitis_1.7z

博客配套资源 https://blog.csdn.net/botao_li/article/details/103901856

2020-01-09

zcu102多核协同工作

博客 https://blog.csdn.net/botao_li/article/details/97266272 配套资源

2019-07-25

zcu102用PL读写DDR4

博客配套源码工程 https://blog.csdn.net/botao_li/article/details/95302992

2019-07-10

zcu102用lwip实现TCP传输

博客配套源码 https://blog.csdn.net/botao_li/article/details/88222925

2019-03-06

zcu102用lwip实现UDP传输

博客配套源码 https://blog.csdn.net/botao_li/article/details/88189357

2019-03-05

zcu102读写SD卡文件

博客配套源码 https://blog.csdn.net/botao_li/article/details/88101417

2019-03-04

zcu102上试验petalinux

博客配套原码工程 https://blog.csdn.net/botao_li/article/details/86645442

2019-01-25

zcu102试验axi timer

博客配套资源 https://blog.csdn.net/botao_li/article/details/86475467

2019-01-14

zcu102试验axi bram

博客配套原码工程 https://blog.csdn.net/botao_li/article/details/86301995

2019-01-11

zcu102试验axi gpio并使用pl中断

博客配套原码工程 https://blog.csdn.net/botao_li/article/details/86242850

2019-01-10

zcu102试验emio

博客配套原码工程 https://blog.csdn.net/botao_li/article/details/86221390

2019-01-10

zcu102试验axi dma

博客配套原码工程 https://blog.csdn.net/botao_li/article/details/86168384

2019-01-09

zcu102_axi_lite参考实验源码

博客配套工程源码 https://blog.csdn.net/botao_li/article/details/85630090

2019-01-02

zcu10_PS端LED开关工程

博客配套:https://blog.csdn.net/botao_li/article/details/85265606

2018-12-26

zcu102_pl闪烁led工程

博客配套:https://blog.csdn.net/botao_li/article/details/85257566

2018-12-26

博客配套资源

博客地址: https://blog.csdn.net/botao_li/article/details/85088667

2018-12-19

基于Quartus Prime的NiosII基础开发流程

博客的配套工程及文档 https://blog.csdn.net/botao_li/article/details/84403894

2018-11-23

基于Quartus Prime Std 18.0的FPGA基础开发流程

博客的配套工程及文档 https://blog.csdn.net/botao_li/article/details/84312917

2018-11-21

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除