自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(167)
  • 收藏
  • 关注

原创 基于深度学习的车牌识别项目的APP部分之图像预处理(二):C语言实现bmp的二值化处理

基于深度学习的车牌识别项目的APP部分之图像预处理(二):C语言实现bmp的二值化处理一、二值化概念二 、代码实现三、运行结果:1、图像是8位深度的运行结果:2、图像是16位深度的运行结果:本文实现的带选择开关是输入图像是16位深度,输出保存图像分别可以是16位或者8位 ,8位的需要加上调色板如果不懂概念,请参考前面的文章基于深度学习的车牌识别项目的APP部分之图像预处理(一):C语言读取bmp图像信息一、二值化概念二值化(英语:Binarization)是图像分割的一种最简单的方法。二值化可以把灰

2022-05-10 17:12:42 11737 1

原创 基于深度学习的车牌识别项目的APP部分之图像预处理(一):C语言读取bmp图像信息

车牌识别项目之图像预处理一:C语言读取bmp图像信息一、什么是bmp文件二、BMP格式结构1、文件信息头2、图像描述信息块3、BMP调色板4、BMP图像数据区①像素存储②像素数据③位图像素格式三、原理实现:1、打开一张bmp文件2、查看图像属性3、用ULtraEdit打开bmp文件。显示的是16进制的代码。四、完整代码实现一、什么是bmp文件BMP是bitmap的缩写形式,bitmap顾名思义,就是位图也即Windows位图。它一般由4部分组成:文件头信息块、图像描述信息块、颜色表(在真彩色模式无颜色表

2022-05-10 11:10:01 11171 2

原创 用C语言实现卷积操作(包含单通道单卷积和多通道多卷积以及维度的转换)

用C语言实现卷积单通单卷积多通道多卷积维度转换(多维转一维)完整代码实现:单通单卷积卷积其实就是个点成相加的过程原理图如下:关键代码实现://单通道单卷积#define IMG_SIZE 5#define W_SIZE 3#define OUT_SIZE 3 // (f-w+2p)/s + 1 = (5-3+0)/1+1 = 3int conv(float img[IMG_SIZE][IMG_SIZE],float w[W_SIZE][W_SIZE],float out[OUT_

2022-05-05 17:10:44 15249 2

原创 python自动化办公(五)实现将读取的excel数据写到word指定的地方:示例(劳动合同)

python自动化办公(五)实现将读取的excel数据写到word指定的地方:示例(劳动合同)一、相关库的下载二、excel 和 word模板事先准备三、代码实现一、相关库的下载pip install docxtplpip install openpyxl二、excel 和 word模板事先准备excelword三、代码实现from docxtpl import DocxTemplatefrom openpyxl import load_workbookimport os#定义一

2022-01-07 10:17:20 3021 4

原创 一文攻克Python的线程以及线程间通信(队列)以及互斥锁的使用

Python的线程以及线程间通信(队列)以及互斥锁的使用一、什么是线程二、创建线程1、使用threading模块创建线程2、使用Thread子类创建线程3、线程间通信4、使用队列在线程间通信三、互斥锁1、使用互斥锁四、线程和进程的区别总结一、什么是线程如果需要同时处理多个任务,一种是可以在一个应用程序内使用多个进程,每个进程负责完成一部分工作;另一种将工作细分为多个任务的方法是使用一个进程内的多个线程。那么,什么是线程呢?线程(Thread)是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是

2022-01-04 00:02:03 911 1

原创 一文攻克Python的进程以及如何实现进程间通信(队列)

Python的进程以及如何实现进程间通信一、进程概念二、创建进程的常用方式1、使用multiprocessing模块创建进程2、使用Process子类创建进程3、 使用进程池Pool创建进程三、通过队列实现进程间通信1、不通过其他条件,进程之间是否能共享信息?2、多线程队列的简单使用3、使用队列在进程中通信一、进程概念在了解进程之前,先了解多任务。多任务就是指操作系统能够执行多个任务。例如,使用Window或Linux操作系统可以同时看电影、聊天、查看网页信息等,此时操作系统就是在执行多任务,而每一个任

2022-01-03 23:37:41 1181

原创 HLS+各种接口实现案例(mm_master、mm_slave、pointer、mm_stream interface)

HLS+各种接口实现加案例 mm_master和mm_slavePointer_argumentsAvalon Streaming Interfacesstream_instream_out使用包信号允许多个流调用站点Avalon Memory-Mapped Master InterfacesImplicit ExampleExplicit ExampleSlave Interfaceshls_avalon_slave_componenthls_avalon_slave_register_argument

2021-12-14 17:46:42 1659

原创 VS code配置Python+PYQT5

VS code配置Python+PYQT5一、自行安装Python3 (安装包如下)二、安装PyQt5以及PyQt5-tools(这里面含有designer了)三、VSCode配置PyQt5和designer1.安装pyqt integration扩展2.配置pyqt integration一、自行安装Python3 (安装包如下)链接:https://pan.baidu.com/s/1fMYMmwXIPy0rGS_B5V6Iqg提取码:3333二、安装PyQt5以及PyQt5-tools(这里面

2021-12-10 22:27:47 2516 2

原创 SoC FPGA 内核裁剪(编译内核),生成zImage

SoC FPGA 内核裁剪(编译内核),生成zImage二、临时指定交叉编译工具链路径三、将内核配置为开发板出厂设置四、修改自己的内核配置五、编译内核一、linux-socfpga的目录下,切换版本到4.9#进入内核目录cd linux-socfpga #列出所有分支版本git tag -l #切换版本git checkout rel_socfpga-4.9.78-ltsi_18.02.01_pr 二、临时指定交叉编译工具链路径export CROSS_COMPILE=/home/z/W

2021-12-10 00:57:37 489

原创 SoC FPGA 使用PIO 实现按键点灯

SoC FPGA 使用PIO 实现按键点灯实验流程手册https://pan.baidu.com/s/1wg42rNQdY36bS2ROLANA5Q提取码:3333其中DS-5 中eclipse代码更新为如下:/* * main.c * * Created on: 2021年12月9日 * Author: wei *///gcc标准头文件#include <stdio.h>#include <unistd.h>#include <fcnt

2021-12-10 00:30:34 882 2

原创 SoC 外设-自定义 ip 实验 PWM实现呼吸灯

SoC 外设-自定义 ip 实验 PWM实现呼吸灯实验流程链接:https://pan.baidu.com/s/1ukN9QYPqNp10BJlALUwljw提取码:3333DS-5 中eclipse更新第二种代码为:/* * main.c * * Created on: 2021年12月9日 * Author: awcloud *///gcc标准头文件#include <stdio.h>#include <unistd.h>#inclu

2021-12-10 00:20:13 2879

原创 SoC FPAG之linux系统搭建完整版

SoC FPAG之linux系统搭建完整版搭建流程链接如下链接:https://pan.baidu.com/s/1uGy1T1wPUQpAIhCzpdlEfQ提取码:3333

2021-12-10 00:12:10 807

原创 修改IP,开发板上配置ip 让开发板和电脑处于同一网段

修改IP,开发板上配置ip 让开发板和电脑处于同一网段一、设置临时IP二、设置动态IP三、设置静态IP一、设置临时IP板子和电脑通过网线直连,设置成同一网段,但是每次重启板子后,都需要ifconfig eth0 192.168.0.2的设置ifconfig eth0 192.168.0.2二、设置动态IP终端命令:vi etc/network/interface在打开的界面,添加下面内容auto eth0iface eth0 inet dhcp注意:对于SOC FPGA来说,

2021-12-08 01:13:30 10346

原创 IP地址,netmask 子网掩码、gateway 默认网关,dns-nameserve域名服务器总结

IP地址,netmask 子网掩码、gateway 默认网关,dns-nameserve域名服务器总结一、IP地址二、netmask 子网掩码三、gateway 默认网关四、dns-nameserve域名服务器一、IP地址每个IP地址都是由“网络号+主机号”两部分组成。IP地址管理机构在分配IP地址时,只分配网络号,而剩下的主机号则由得到该网络号的单位自行分配。IP地址由32位二进制数组成,通常是十进制表示,并以“.”分隔。IP地址是一种逻辑地址,用来表示网络中的一个个主机,并且IP地址具有唯一性,

2021-12-08 00:59:55 4596

原创 分割字符串split函数的正确用法(切片)

分割字符串split函数的正确用法(切片)split函数是将字符串分割为列表函数原型:str.split(sep,maxsplit)参数说明:str:表示要进行分割的字符串sep:用于指定分隔符,可以包含多个字符,默认为None,即所有空字符(包括空格、换行“\n”、制表符“\t”等)maxsplit:可选参数,用于指定的分割次数,如果不指定或者为-1,则分割次数没有限制,否则返回结果列表的元素个数最多为maxsplit+1返回值:分割后的字符串列表。注意:如果在split()方

2021-11-24 00:01:32 19191

原创 HLS初始化时,关于找不到Microsoft Visual Studio 10.0 的解决办法

HLS初始化时,关于找不到Microsoft Visual Studio 10.0 的解决办法方法一:方法二:方法一:找到vcvars64.bat文件 我的目录是如下:D:\FPGA\install_package\Microsoft Visual Studio 10.0\VC\bin\amd64\vcvars64.bat接着找到hls的初始化脚本然后将中图命令加载到hls中init_hls.bat脚本中,记得保存哦 ,如图所示call D:\FPGA\install_package\"

2021-11-19 17:10:24 793

原创 python UDP网络通信

python UDP网络通信一、概念二、创建UDP服务器 udp_server.py三、创建UDP客户端 udp_client.py一、概念UDP是面向消息的协议,如果通信是不需要建立连接,数据的传输自然是不可靠的,UDP一般用于多点通信和实时的数据业务,例如:语言广播视频TFTP(简单文件传送)SNMP(简单网络管理协议)RIP(路由信息协议,如报告股票市场、航空信息)DNS(域名解析)和TCP类似,使用UDP的通信双方也分为客户端和服务器。相关函数:s = socket.soc

2021-11-18 17:15:19 2364 1

原创 python 快速生成Verilog模板工程目录,加速开发效率 (超级好用)

python 快速生成Verilog模板工程目录由于在编写Verilog代码时,需要创建工程加很多子文件,难道一个工程就要进行繁琐的操作么,其实大可不必,为了偷懒写了一个快速生成Verilog模板工程目录的例如:代码如下:import osdir_name = input("请输入主文件夹工程的名字:\n")os.mkdir(dir_name)os.chdir(dir_name) #进入创建主文件夹的工程#创建在主文件夹内创建四个子文件夹,分别是 doc prj rtl tb ip#

2021-11-18 00:47:59 1308

原创 python 一行代码生成自己图片的二维码

python 一行代码生成自己的二维码环境生成二维码环境python 3.7.9 (其他环境没验证过,不过也应该可以)还需要安装myqr (生成二维码的库)安装命令其如下:pip install myqr如果上面不行,请用下面的命令pip install myqr -i https://pypi.tuna.tsinghua.edu.cn/simple生成二维码1.准备好图片(图片可以使任意格式图片入:.jpg .bmp .png .gif)2.然后再终端(win+

2021-11-17 17:26:32 1334

原创 python 推导式(列表推导式、元组推导式、字 典推导式和集合推导式)以及zip 函数及用法(带示例)

python 推导式(列表推导式、元组推导式、字 典推导式和集合推导式)以及zip 函数及用法(带示例)一、推导式1.概念2.Python 列表推导式Python 元组推导式Python 字典推导式二、zip 函数及用法1.概念2.用法一、推导式1.概念推导式(又称解析器),是 Python 独有的一种特性。使用推导式可以快速生成列表、元组、字典以及集合类型的数据,因此推导式又可细分为列表推导式、元组推导式、字典推导式以及集合推导式。2.Python 列表推导式列表推导式可以利用 range 区间

2021-11-17 09:53:47 1656

原创 python实现简易的图书管理系统

python实现简易的图书管理系统一、设计需求二、实现代码一、设计需求1.添加书籍2.查询数据3.借书存储方式 ,用excel保存到硬盘上二、实现代码# 一、介绍# 主要功能实现# 1、借书# 2、添加新书# 3、查找图书# 数据存储:excel表import xlwtimport xlrdimport xlutils.copyimport os#book = {"位置":"","书名":"","价格":"","作者":""}#存储方式 用exceltitle

2021-11-16 19:17:55 3291

原创 python for 循环多种用法详解(穿插整数、字符串、列表、元组、字典)

python for 循环及用法详解一、for 循环二、用法1.for 循环遍历数值2.for 循环遍历字符串3.for 循环遍历列表和元组4.for 循环遍历字典keys()values()items()一、for 循环for 循环的语法格式如下:for 迭代变量 in 字符串|列表|元组|字典|集合: 代码块迭代变量用于存放从序列类型变量中读取出来的元素,所以一般不会在循环中对迭代变量手动赋值;代码块指的是具有相同缩进格式的多行代码(和 while 一样),由于和循环结构联用,因此代码块

2021-11-16 18:43:49 11547

原创 python format()格式化输出方法详解

python format格式化输出方法详解format() 方法的语法格式如下:各个参数的含义如下:简单示例字符串类型(str)提供了 format() 方法对字符串进行格式化format() 方法的语法格式如下:str.format(args)此方法中,str 用于指定字符串的显示样式;args 用于指定要进行格式转换的项,如果有多项,之间有逗号进行分割。学习 format() 方法的难点,在于搞清楚 str 显示样式的书写格式。在创建显示样式模板时,需要使用{}和:来指定占位符,其完整的语

2021-11-16 10:34:16 1695

原创 神经网络量化与反量化( int8与float32之间的转换)+C语言实现

神经网络量化与反量化(int8与float32之间的转换)一、背景知识量化反量化一、背景知识量化并不是什么新知识,我们在对图像做预处理时就用到了量化。回想一下,我们通常会将一张 uint8 类型、数值范围在 0~255 的图片归一成 float32 类型、数值范围在 0.0~1.0 的张量,这个过程就是反量化。类似地,我们经常将网络输出的范围在 0.0~1.0 之间的张量调整成数值为 0~255、uint8 类型的图片数据,这个过程就是量化。所以量化本质上只是对数值范围的重新调整,可以「粗略」理解为是一

2021-11-15 10:36:32 21948 3

原创 python 浅拷贝和深拷贝

python 浅拷贝和深拷贝一、浅拷贝(shallow copy)二、深拷贝(deep copy)一、浅拷贝(shallow copy)浅拷贝:指的是重新分配一块内存,创建一个新的对象,但里面的元素是原对象中各个子对象的引用换句话说:(浅拷贝(shallowCopy)只是增加了一个指针指向已存在的内存地址)对于元组,使用 tuple() 或者切片操作符 ‘:’ 不会创建一份浅拷贝,相反它会返回一个指向相同元组的引用:对数据采用浅拷贝的方式时,如果原对象中的元素不可变,那倒无所谓;但如果元素可

2021-11-15 10:21:51 730

原创 如何只通过ModelSim仿真单独写的测试文件

如何只通过ModelSim仿真单独写的测试文件一、编写好的代码如下二、打开ModelSim三、切换到工作目录 File->Change Directory四、然后编译工程五、然后点击仿真六、运行结果:一、编写好的代码如下`timescale 1ns/1nsmodule test_display_tb();reg [3:0] a;reg [3:0] b;reg [3:0] c;initial begin $display("hello"); $display("FPG

2021-11-10 18:18:46 1301

原创 C语言实现字符串转二进制编码,并保存.txt

C语言实现字符串转二进制编码一、代码实现(不涉及保存)终端打印二、代码实现,转化后二进制的保存成.txt文件一、代码实现(不涉及保存)终端打印#include <stdio.h>#include <string.h>//字符串转二进制编码int str_to_bin(char *str){ char len = strlen(str); printf("len:%d\n",len); char tmp; for(int i=0;i<

2021-11-10 17:45:15 5177

原创 python+tensorflow对mnist数据集的神经网络训练和推理 加参数提取(图片、权重、偏置)----规范版

python+tensorflow对mnist数据集的神经网络训练和推理 加参数提取----规范版一、数据集获取二、训练1.前向传播2.反向传播三、预测四、参数提取1.权重和偏置2.图片参数提取(归一化)五、完整工程下载一、数据集获取extract_mnist.pyfrom tensorflow_core.examples.tutorials.mnist import input_datafrom scipy import miscimport numpy as npimport osmni

2021-11-05 20:15:32 905

原创 C语言指针和内存之间的关系(经典示例)

C语言指针和内存之间的关系(经典示例)相关知识:①.c语言%#x是指带格式的16进制输出1、c语言中%x的意思是16进制输出。2、c语言中符合%#的意思是带格式输出。比如,%#x的意思是在输出前面加上0x,%#b的意思是在输出前面加上0b。3、%在c语言中有两种释义,一是求余符号,经bai常会用到判断一个数是不是能被另一个整除;二是引导符,用于引导输入输出项表列的格式,C语言运算符号的种类编辑。在这里是第二种释义。4、所以c语言中的%#x意思是带格式0x的16进制输出。②.%p1.格式控制符

2021-11-05 14:16:13 621

原创 全连接神经网络用C语言实现

全连接神经网络用C语言实现一、分析输入输出二、分析神经网络层数三、分析神经元数量四、分析参数数量五、分析传递过程连接方式六、代码框架七、完整代码实现:关于参数的获取:已经在上篇博客中提出,请参照相关链接请点击一、分析输入输出1、手写体输入为28x28的黑白图片,所以输入为784个x2、输出为识别0-9的数字的概率,所以有10个输出3、输入只能是-1~1的小数,主要是防止计算溢出二、分析神经网络层数如果只是一层,输入784,输出10,中间能记录的神经元只能是10个,很难达到识别0-9这10个数字

2021-10-29 09:44:17 1932

原创 python+tensorflow对mnist数据集的神经网络训练和推理 加参数提取(图片、权重、偏置)----简易版

python+tensorflow对mnist数据集的神经网络训练和推理 加参数提取一、数据集的获取python+tensoflow的训练三、预测predict四、参数提取成 c头文件的形式(例:input_0.h)①权重和偏置的提取②图片参数保存一、数据集的获取from tensorflow_core.examples.tutorials.mnist import input_datafrom scipy import miscimport numpy as npimport os#获取数

2021-10-29 09:29:36 1849

原创 用C语言实现单通道的卷积(conv )、池化(max and average pooling、填充(Padding)

用C语言实现单通道的卷积 、激活、池化、全连接一、单通道的卷积 conv二、单通道的激活relu三、单通道池化pooling四、单通道全连接full_connect一、单通道的卷积 conv#include <stdio.h>//单卷积//IMG:5x5 kernel:3x3 out:3x3 //计算公式:(f-w+2p)/s + 1 //其中f是矩阵的大小 w是卷积核的大小 p是padding填充 s是步长(默认为1)#define IMG_SIZ

2021-10-22 17:18:55 2504 1

原创 基于SoC FPAG实现手写体识别(HLS编译的全连接算子)

基于SoC FPAG实现手写体识别(HLS编译的全连接算子)点击操作手册下载由于流程过多,这里采用pdf文件下载的方式点击操作手册下载链接:https://pan.baidu.com/s/1bG7SiEfTkkltgvKRacuThg提取码:3333

2021-10-21 11:43:15 1476 1

原创 基于SoC FPGA 用HLS编译全连接算子

用HLS编译全连接算子一、HLS编译代码二、编译命令1.先初始化hls环境2.指定开发平台为x86-643.指定开发平台为CycloneV一、HLS编译代码#include "HLS/hls.h"#include <stdio.h>#include "input_0.h"#include "input_1.h"#include "input_2.h"#include "input_3.h"#include "input_4.h"#include "input_5.h"#in

2021-10-20 23:13:56 613

原创 SoC FPGA加accsytem加神经网络算子实现: 车牌识别BMP版本

车牌识别BMP版本一、开发工具二、利用HLS编译先关算子1.conv.c2.biasrelu.c3.pooling.c4.full_connection.c编译方式因为都一样(雷同) 所以只拿conv.c 做例子三、accsystem连线五、重新分配地址六、保存并生成HDL代码七、复制soc_system的例化模板八、修改顶层文件九、编译Quartus工程十、利用SOC EDS 生成 soc_system.dtb、soc_system.rbf和hps_0文件十一、执行车牌识别DEMO程序一、开发工具Qu

2021-10-20 11:48:50 1649 1

原创 HLS实验(一):环境搭建和开发流程及环境的测试

安装环境和开发流程一、环境搭建二、开发流程及环境的测试初始化环境i++编译与测试编译为FPGA程序ModelSim仿真三、Example示例**Image_downsample****YUV2RGB**一、环境搭建Quartus prime 18.1作为HLS实验环境搭建的必要软件之一,经验证Quartus Prime 17.1以及18.1版本可支持HLS开发。该软件可在Intel官网上注册后直接下载并按默认选项安装即可。Modelsim Starter Edition 10.5bMode

2021-10-08 00:24:00 2993

原创 HLS实验(二) 流水线仿真(排队函数的调用)

流水线仿真(排队函数的调用)一、函数介绍二、流水线仿真三、代码实现没加流水线(没有使用排队函数)使用流水线仿真一、函数介绍①ihc_hls_enqueue(void *retptr, void *funcptr,/*function arguments*/)参数:retptr:返回值funcptr:将要调用的HLS component这个函数对HLS组件的一次调用进行排队。返回值存储在第一个实参中,该实参应该是指向返回类型的指针。在调用ihc_hls_component_run_all()之

2021-10-05 16:15:38 1544

原创 HLS实验(三)实现滑动均值滤波运算

实现滑动均值滤波运算一、概念二、代码实现三、指定编译平台①x86-64:②FPGA上(CycloneV)四、从波形分析结果的正确性:一、概念名称:递推平均滤波法(又称滑动平均滤波法)方法:把连续取得的N个采样值看成一个队列,队列的长度固定为N,每次采样到一个新数据放入队尾,并扔掉原来队首的一次数据(先进先出原则),把队列中的N个数据进行算术平均运算,获得新的滤波结果。优点:对周期性干扰有良好的抑制作用,平滑度高;适用于高频振荡的系统。二、代码实现#include "HLS/hls.h"

2021-10-05 15:21:17 485

原创 SOC EDS 中eclipse 中远程gdbserver调试与使用(超级详细)

SOC EDS 中eclipse 中远程gdbserver调试与使用(超级详细)一、安装二、建立远程调试配置Debugger启动 gdbserver 调试三、简单的调试操作:一、安装DS-5 软件的安装包下默认提供了 gcc-linaro-arm-linux-gnueabihf-4.8- 2014.04_linux 工具链,包括编译工具,但是将用于调试的 arm-linux-gnueabihf- gdb.exe 这个工具给去除了,导致软件默认安装完成后,D:\intelFPGA\18.1\embed

2021-09-30 14:38:52 1388

原创 编译SOC linux的系统时,明明打开openssh 但是报错 sshd:key_load_public:invalid format

报错 sshd:key_load_public:invalid format或者sshd启动报错解决:sshd re-exec requires execution with an absolute path解决办法:ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_keyssh-keygen -t rsa -f /etc/ssh/ssh_host_dsa_keyssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ecdsa_k

2021-09-29 19:35:32 1452

空空如也

空空如也

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

TA关注的人

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