- 博客(22)
- 收藏
- 关注
原创 学习STM32使用官方标准生成的固件库点流水灯
学习STM32使用官方标准生成的固件库点流水灯。我们首先要创建几个文件夹,这样有条理的分类,让代码看起来更清晰。然后从官方下载固件库,或者从STM32CubeMX中生成固件库,这样从库里解析出需要的头文件。把固件库中需要的库移植到我们建立好的文件夹中。新建工程把固件库的CMSIS文件 <下图是CMSIS文件夹包含的库>和 STM32F10x_StdPeriph_Driver文件复制到我们新建工程文件夹里的->Libraries文件夹打开Keil5,新建工程,进入桌面
2021-07-30 14:29:31
607
原创 STM32使用固件库来控制流水灯
STM32使用固件库来控制流水灯1.固件库,相对含义类似于高级语言中的调包。固件库相当于你在一个文件里定义好的函数,定义好的宏,在main函数中调用。使main函数看起来更简洁。更像高级语言一样让人有上下文的既视感。使用寄存器操作STM32,相对来讲,简单,但是代码量过于繁琐。而且指针,和地址偏移,对于后续的代码递归,循环,有非常大的烦恼(可行,但是废脑子)。所以我们用STM32官方指定的固件库,在现成的固件库里根据自己的电路板阵脚定义,少量的添加一些自定义函数,及宏。这样大大的减少了每次都要神经
2021-07-03 14:22:31
888
2
原创 STM32寄存器知识点
使用STM32主要寄存器1.<总线基地址> :使用寄存器编程前,我们需要了解到STM32外设功能 百分之80的芯片只会用到这一类。其余的用不到我们就不学。Block2<储存器> : Block2用于设计片内的外设,所以我们一般的外设都会挂载到Block2内。Block2上个有三条总线,根据外设速度的不同,APB1 是低速外设,APB2 and AHB挂载高速外设。我们根据三条线的地址来选定。2.<外设基地址 >总线上挂载这各
2021-06-28 17:19:29
3780
6
原创 MTCNN网络 前期XML转text,通过读取text,计算negative、positive、part
1.XML转成Text前几天自己看github大神的代码,然后跟着复原了一遍MTCNN,因为想跑跑自己的数据集,所以就拿了YOLO2中一段代码,修改一下, 开始自己制作MTCNN前期的数据集。目标检测目前是万变不离其宗,都需要前期的标注。但是如果要改变神经网络形式提高检测精度,那么前期的标注处理就变的非常多样化。数据标注这一块我就不多叙述了。先上一张我标注的图片给大家养养眼。1.1标注的好的图片这是我标注的图片保存后的XML格式为这是我截取的一部分annot ----->保存的是
2020-10-25 16:33:06
452
原创 3、tensorflow2.0 实现MTCNN、训练O_net网络,并进行测试图片
训练O_net网络,并测试图片上一篇,我们已经知道如何生成O_net训练集,这次我们开始训练Onet网络。训练完成后,保存权重,我们随机抽取一张照片,测试一下效果。代码:train_Onet.pyimport tensorflow as tfimport tensorflow.keras as kerasfrom tensorflow.keras import metricsfrom red_tf import *from MTCNN_ import Onet,cls_ohem,ca
2020-07-16 15:06:51
935
原创 2、tensorflow2.0 实现MTCNN,生成R_net数据集,并训练
1.生成R_net数据集,并喂入R_net网络训练为了提高R_net数据的质量,我们的R_net数据集会通过P_net精炼一下。把回归框中对应的图片从原理图片中crop出来,resize生成24*24的大小。运行P_Net,得到每个回归框的分类得分和坐标的回归值。P_Net中推理出来的 bounding box 坐标可能超出元素图片的大小,这时候需要做图片处理,把坐标值限定在元素图片内,而空出来的数值为 0。对于回归框,根据得分情况,执行非极大值抑制算法,得到要校正的回归框。对P_Net得到的
2020-07-16 11:06:35
1110
2
原创 1、tensorflow2.0 实现MTCNN、P_net数据生成,及训练。
1.MTCNN 的优点及必须要了解基础点。MTCNN 的 “MT”是指多任务学习(Multi-Task),在同一个任务中同时学习“识别人脸”、“边框回归”,“人脸关键点识别”。多尺度问题一直是困扰检测准确性的一个难点。MTCNN使用图像金字塔来解决目标多尺度问题。(图像金字塔百度上介绍非常多,我这里不过多叙述)。P-NET的网络模型时用单尺度(12X12)的图片训练出来的,想要识别各种尺度的人脸更准确,需要把待识别的人脸尺度先按照一定的比例,多次等比例缩放(缩一次识别一次,最后缩到接近12x12)
2020-07-15 09:51:54
1738
15
原创 docker安装TensorFlow2.0 + jupyter lab。
docker加虚拟机,简直就是坑中埋雷~~~ 让我抱怨一下。我们开始进入主题。我的系统是ubuntu20 安装在虚拟机里。这个我就不再阐述过多了。大家都会。docker安装过程我也不多说了,这个资料很多。那么我们直接进入主题。首先在docker中拉取tensorflow:2.2.0-jupyter镜像第一步我们打开 Terminal1. 启动dockersudo service docker start2.查看dokcer 镜像列表sudo service docker image ls
2020-06-08 18:53:03
1566
原创 tensorflow2.0 实现垃圾分类 (加入注意力机制)
1 垃圾分类数据下载:https://pan.baidu.com/s/1sbyoJjVy51BXxoAJ9tUatg密码:9a2g有两种形式,一种是未加注意力通道的卷积。这种卷积运算速度较快,但是识别率低一些。我们进去代码看一下:1.1导入需要的包import numpy as npimport matplotlib.pyplot as pltfrom keras.preprocessing.image import ImageDataGenerator,load_img,img_to_ar
2020-06-05 10:10:25
7333
22
原创 6、TensorFlow2.0 实现Yolo2目标检测(YOLO2损失函数及模型训练)
1 损失函数计算目标检测的损失函数和目标分类的损失有很大的不同,目标检测需要输出目标的坐标,类别,置信度,既然输出了这三个值,那训练的时候,也需要针对这三个参数计算损失值。这一步其实算是整个目标检测中最重要和复杂的一部分。1.1置信度计算先谈一谈什么是置信度,置信度就是在这个网格中的每个anchors有目标的概率,比如第2行第2列网格的第2个anchors,我们给它起个名叫小Y,在训练中,经过网络预测,网络说小Y啊,你只有30%的概率,不可信啊,这个30%概率就是这个anchors小Y的预测置信度。那
2020-06-04 20:23:21
938
原创 5、TensorFlow2.0 实现Yolo目标检测(YOLO2网络搭建)
1.yolo2网络模型搭搭建yolo2模型展示因为我的电脑显卡太烂了,所以我的tensorflow2.0是CPU模式。当然GPU的同学们一样可以用。只是一条命令的问题。import os, glob# os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'import numpy as npimport tensorflow as tffrom tensorflow import kerasfrom tensorflow.keras import layer
2020-06-04 16:15:44
1795
3
原创 4、TensorFlow2.0 实现Yolo2(Compose labels)
1.Compose labelsYOLO网络需要的形式是 [b,16,16,5,6] , 而我们的标签shape则是 [batch,max_boxes, 5],明显真实标签shape与网络预测输出shape不一致,无法做比较,损失函数就不能完成,为了完成损失函数或者说是真实标签与网络预测输出作比较,需要修改真实标签的形状。YOLOV2损失函数包含三部分:坐标损失: x,y,w,hx,y,w,hx,y,w,h类别损失: class,根据自己的标签设定置信度损失: confidence, anch
2020-06-03 16:17:19
447
原创 3、TensorFlow2.0 实现Yolo2(用k-mean聚类算法,得到YOLO2的先验框piror boxes)
1.K-means计算Anchor boxes根据YOLOv2的论文,YOLOv2使用anchor boxes来预测bounding boxes的坐标。YOLOv2使用的anchor boxes和Faster R-CNN不同,不是手选的先验框,而是通过k-means得到的YOLO的标记文件格式:.<object-class> <x> <y> <width> <height>object-class是类的索引,后面的4个值都是相对于整张图片的
2020-06-03 11:24:33
906
1
原创 2、TensorFlow2.0 实现Yolo2 (2.数据集预处理:图片增强)
1.提取图像信息预处理上一篇我们进行了XML提取信息。那么现在我们利用XML提取的信息进行处理。我们训练需要的是图片的内容信息,不是路径,所以我们需要通过图片路径来读取图片,以获得图片信息。1.1图片的读取import tensorflow as tfimport os,globimport numpy as npfrom tensorflow import kerasimport matplotlib.pyplot as pltfrom matplotlib import patches
2020-06-02 18:25:08
887
1
原创 1、TensorFlow2.0 实现Yolo2 (1.数据集预处理:XML解析)
1.训练数据集预处理我们利用标注软件把图片标注好以后,保存为XML格式。图片显示的就是我们标注完后XML格式的文件。有了该XML文件后,我们要做的就是利用代码去解析XML文件。要解析的标签有:< folder > train < folder> : 文件名< filename>X2-10-0.png< filename> :原图名、路径< path/> :< width > :宽< height>
2020-06-02 14:18:28
768
原创 tensoflow2.0完成吴恩达卷积神经网络第二周作业
**一句话,tensorflow2.0真是难用啊。**实验目的:我们用600张图片,进行训练,最后区分笑脸和不笑的脸。多说无益。我们上代码、1.导入必要的包import tensorflow as tfimport keras.backend as Kimport mathimport numpy as npimport h5pyfrom tensorflow.python.keras import layers, Sequentialfrom tensorflow.keras.m
2020-05-11 16:48:58
794
原创 Adaboost 通过《统计学方法例题》推导深刻理解算法原理
AdaBoost原理主要理论:根据训练集中的样本权重:www ,及弱分类器的权重:ααα,不断继承产生新的弱学习器--------构建一套所有父类到子类的弱学习器相加的组合学习模型放入符号函数(sign) 进行分类。看图吧!!!没明白对吧,开始我也不明白,往下看就会明白一点点了。我们先罗列出公式部分,根据公式我们一步一步就会知道为什么会根据训练集权重:www、和弱学习器权重:ααα,产...
2020-03-24 23:59:03
392
原创 吴恩达,神经网络优化课后作业总结版
标题接着上一篇,猫脸脸识别4层神经网络。1.我们将在原代码的基础上进行添加各类优化设置。(即添加剂)第一步,导入数据from lr_utils import load_datasetimport numpy as npimport matplotlib.pyplot as pltimport h5pytrain_set_x_orig , train_set_y , test_s...
2020-03-21 14:53:08
417
原创 神经网络识别猫图形
使用深层神经网络分类图片目的:判断一张图片是否是猫。1.编写获取数据函数def load_data(): train_dataset = h5py.File('datasets/train_catvnoncat.h5', "r") train_set_x_orig = np.array(train_dataset["train_set_x"][:]) # your trai...
2020-03-21 10:55:58
926
原创 KNN实现0-9数字手写板识别
通过Knn算法来识别手写的0-9的数字图片1. 首先把 .png格式的图片处理成标准化后的数组矩阵处理思路:需要用导pllow库下的Image类。通过getpixel()方法可以 提取图片中像素的色彩RGB值。比如:(0,0,0)=黑色,(255,255,255)=白色编写图片转换# png :为存储32x32的图片集#txt :为存储每张图片标准化后的矩阵集pngpat...
2020-03-14 23:39:51
940
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人