自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

DL_fan的博客

神经网络的学习心得,总结

  • 博客(181)
  • 资源 (29)
  • 收藏
  • 关注

原创 一些数据增强手段

1.mixupdef mixup_data(x, y, alpha=1.0, use_cuda=True): '''Compute the mixup data. Return mixed inputs, pairs of targets, and lambda''' if alpha > 0.: lam = np.random.beta(alpha, alpha) else: lam = 1. batch_size = x.si

2021-07-15 11:51:20 11

原创 C++模板的一些基础知识

.函数模板将类型作为参数,用template修饰函数模板,解决不同类型函数但实现逻辑一样的问题demo.cpp#include <iostream>using namespace std;template <typename T>//函数模板void display(T a){ cout<<"a:"<<a<<endl; cout<<"======="<<endl;}

2021-06-07 11:18:42 52

原创 C++ opencv的一些基础知识

一.一些api1.构建矩阵#include "iostream"#include <opencv2/opencv.hpp>#include "opencv2/dnn/dnn.hpp"#include "opencv2/imgcodecs/imgcodecs.hpp"#include <vector>using namespace std;cv::Mat scalar_demo1(){ cv::Mat M(4,4,CV_32FC2,cv::Scalar(

2021-06-03 10:25:35 43

原创 gdb基础知识

在CMakeLists.txt中添加set(CMAKE_BUILD_TYPE Debug)然后make以后通过gdb filename进入该文件的gdb调试模式,同时使用shell 就可以像终端一样使用shell命令。例子:demo.cpp#include <iostream>#include <vector>#include <string>#include <algorithm>using namespace std;c.

2021-05-22 20:58:24 48

原创 设计模式--观察者模式

最近看设计模式,其中谈及到观察者模式.可以理解为被观察者对外提供注册机制,观察者可以通过插入和移除实现订阅和取消订阅消息的功能,无论观察者有没有注册, 都不会影响被观察者发布消息.而这在mmdetection中体现的很好.举个例子来观察每天我的生活:其中register_hook用来注册HOOK来判断是否要观察我的每天生活.import sysclass HOOK: def before_getup(self, runner): print('{}:赖床30

2021-05-12 11:05:45 27

原创 String和STL的一些基础知识

STL的六大组件:容器,算法,迭代器,仿函数,适配器(配接器),空间配置器1.容器:各种数据结构,vector,list,deque;2.算法:各种常用算法,sort,find,copy;3.迭代器:扮演了容器与算法之间的胶合剂,他两之间的桥梁;4.仿函数:行为类似函数,可作为算法的某种策略;5.适配器: 一种用来修饰容器或者仿函数或迭代器接口的东西;6.空间配置器:负责空间的配置与管理。例如vector本质就是对数组的封装1.vector特点,读取能在常数时间完成.初始化ve

2021-05-07 22:28:49 103

原创 clion卸载+clion连接docker编写trt程序

由于本地机器没有gpu,学习trt加速模型很难受,经过一段时间摸索和请教别人,最后采用clion连接docker进行trt学习,下载安装很简单,这里主要介绍配置环境.1.docker的ssh服务,trt环境等需要配置好.2.设置工具链file->setting->Build,Exection,Deployment->Toolchains3.设置下面的cmake3.新建clion工程4.删除左侧项目的东西\5.设置显示保存tools->D

2021-04-29 13:24:16 82

原创 git的一些操作

一.git工作原理/流程:workspace: (除去.git)看见的目录。版本库(Repository):工作区有一个隐藏目录.git,这个不属于工作区,这是版本库。其中版本库里面存了很多东西,其中最重要的就是stage(暂存区),还有Git为我们自动创建了第一个分支master,以及指向master的一个指针HEAD。1.使用 git add 把文件添加进去,实际上就是把文件添加到暂存区。2.使用git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支上。二.一.

2021-04-19 23:00:58 50

原创 leetcode hot100(第二部分) + python(c++)

50-1. 乘积最大子数组思路1:找到状态转移方程:maxf[i]:表示在i处最大连乘数minf[i]:表示在i处最小连乘数maxf[i] = max(nums[i],nums[i]*minf[i-1],nums[i]*maxf[i-1])minf[i] = min(nums[i],nums[i]*minf[i-1],nums[i]*maxf[i-1])#maxf[i]:表示在i处最大连乘数#minf[i]:表示在i处最小连乘数#maxf[i] = max(nums[i],num

2021-04-14 09:53:58 57

原创 ubuntu16.04编译安装c++ opencv与vscode配置debug

一.编译安装c++ opencv1.下载zip包本文安装的是opencv3.4.3,下载链接,以Sources方式下载zip包.2.安装依赖sudo apt-get install build-essentialsudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-devsudo apt-get install python-dev python

2021-03-31 21:33:57 56 2

原创 torch版ResNet50(带有多输出)转c++ tensorrt

第一个最简单的lenet示例请参考这篇文章一.torch阶段测试图片:torch代码:# coding:utf-8import torchfrom torch import nnfrom torch.nn import functional as Fimport torchvisionimport osimport structimport timeimport cv2import numpy as npdef main(): print('cuda d.

2021-03-30 14:07:45 339 3

原创 vscode debug c++与opencv程序

一.工程代码1.本文调试代码文件夹截图为:2.代码细节:a.h:#ifndef A_H_#define A_H_ class A{ public: A(){} ~A(){} void readImg(const char* path); }; #endifa.cpp:#include<opencv2/opencv.hpp>#include <iostream>#include "a.h"using names

2021-03-28 15:14:48 63

原创 c++将.cpp编译为.so文件

1.首先看文件形式其中cpp1是直接调用.cpp和生成.so的文件夹。cpp2是测试生成的.so可以使用的文件夹。2.先直接编译.cpp检查代码没问题a.cpp内容:#include <iostream>#include "a.h"void A::readImg(char* path){ B b; b.readImg(path); }a.h内容:#ifndef A_H_#define A_H_ #include "b.h" c.

2021-03-24 14:33:34 389

原创 leetcode hot100(第一部分) + python(c++)

1-1.两数之和思路1:两层for循环 O(n2)class Solution: def twoSum(self, nums, target): res = [] for i in range(len(nums)): for j in range(i+1, len(nums)): if nums[i]+nums[j]==target: res.extend(

2021-03-15 09:38:44 208 2

原创 RepVGG

论文链接一.背景:现在的一些复杂模型虽然有很高准确度,但是缺点也很明显:1.多分支,带来了速度的减慢和降低显存的使用率;2.Mobilenet虽然采用可分离卷积.shufflenet采用分组卷积,带来了flop降低,但是却增加了内存的访问成本(MAC)二.网络结构1. 模型RepVGG在train和inference和ResNet的差异,可看出train时除了引入残差分支和1*1卷积分支,同时为了方便参数化重构,没有跨层连接.2. 3*3卷积核优势在N卡和MKL等

2021-03-05 11:23:06 182 2

原创 二叉树的一些leetcode题目+python(c++)

二叉树考点主要有:1.三种遍历方式;2.求深度3.判断平衡性1-1.前序遍历思路1:递归法# Definition for a binary tree node.# class TreeNode:# def __init__(self, x):# self.val = x# self.left = None# self.right = Noneclass Solution: def helper(s.

2021-02-21 10:36:06 151

原创 链表的一些leetcode题目+python(c++)

主要常见下面几个知识点:1-1.请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节点。# Definition for singly-linked list.# class ListNode:# def __init__(self, x):# self.val = x# self.next = Noneclass Solution: def deleteNode(self, node): .

2021-02-20 19:01:13 175

原创 python(c++)刷题+剑指offer

53-1. 在排序数组中查找数字 I思路1:hashclass Solution: def search(self, nums, target): dict_={} for i in range(len(nums)): dict_[nums[i]] = dict_.get(nums[i],0)+1 print(dict_) return dict_[target] if target in dict

2021-02-16 12:09:12 333 2

原创 python刷题+leetcode(第三部分)

200.最大正方形思路:与岛屿,水塘不同的是这个相对要规则得多,而不是求连通域,所以动态规划构造出状态转移方程即可动态规划 if 0, dp[i][j] =0if 1, dp[i][j] = min(dp[i-1][j-1],dp[i-1][j],dp[i][j-1])+1class Solution: def maximalSquare(self, matrix): print('==np.array(matrix):\n', np.array(matri

2021-01-23 15:32:16 310 4

原创 tensorrt基础知识+torch版lenet转c++ trt

1.优化流程:制作engine:大概就是c++api写的网络结构或者其他第三方格式,经过NetworkDefinition进行定义,采用builder加载模型权重,进行一些参数的优化,然后再用engine序列化成模型 。推理:采用engine反序列化,创建运行环境,在进行推理即可。参考:https://docs.nvidia.com/deeplearning/tensorrt/developer-guide/index.html#fit__fit1...

2021-01-15 16:32:27 425 2

原创 并查集

特点:用集合中的一个元素代表一个集合,就像帮主代替帮派,主要分为三步,初始化,查询,合并。用途:用来分离无环图,找到公共祖先等等。class AndCheckSet: def __init__(self, n=5):#初始化 self.fa = [0]*n for i in range(n): self.fa[i] = i def find(self, x):#查询 if (self.fa[x] == x)

2021-01-13 10:46:18 49

原创 AN IMAGE IS WORTH 16X16 WORDS :TRANSFORMERS FOR IMAGE RECOGNITION AT SCALE(VIT)

最近看transformer用于CV比较热门,特意去进行了解,这里用分类的一篇文章进行讲解。NLP中的transformer和代码讲解参考我另一篇文章。论文链接:AN IMAGE IS WORTH 16X16 WORDS :TRANSFORMERS FOR IMAGE RECOGNITION AT SCALE一.思想其实核心问题就是考虑如何把图像数据H*W*C,序列化成一个一个词那种结构,自然就想到将图片crop成一个一个patch,假设有N个patch,维度为p*p*C,reshape加c

2020-12-24 14:16:49 2052

原创 python刷题+leetcode(第二部分)

一百零一.合并二叉树思路:采用前序遍历访问二叉树,如果节点其一为none,就返回另一个1.递归法# Definition for a binary tree node.# class TreeNode:# def __init__(self, x):# self.val = x# self.left = None# self.right = Noneclass Solution: def mergeTrees(s

2020-12-07 10:58:20 543

原创 Registry注册机制

前言:不管是Detectron还是mmdetection,都有用到这个register机制,特意去弄明白,记录一下。首先看Registry代码:# Copyright (c) Facebook, Inc. and its affiliates. All Rights Reservedfrom typing import Dict, Optional, Iterable, Tuple, Iteratorfrom tabulate import tabulateclass Registr

2020-12-04 14:26:47 753

原创 CPNDet:Corner Proposal Network for Anchor-free, Two-stage Object Detection

论文链接一.背景anchor-based方法将大量框密集分布在feature map上,在推理时,由于预设的anchor与目标差异大,召回率会偏低。而anchor-free不受anchor大小限制,在任意形状上会更加灵活,但是像CornerNet,先进行角点检测,将有效的角点枚举组合成大量候选预测框,容易带来大量的FP。FCOS需要回归关键点到边界的距离,对于长宽大的物体也比较难以预测。二.网络介绍1.网络结构Stage 1: Anchor-free Proposals.

2020-11-13 14:56:18 149

原创 距离与相似度计算

一.余弦相似度from math import *def square_rooted(x): return round(sqrt(sum([a*a for a in x])), 3)def cosine_similarity(x,y): numerator = sum(a*b for a, b in zip(x,y)) denominator = square_rooted(x)*square_rooted(y) return round(numerator/fl

2020-11-12 16:13:41 178

原创 CenterNet:Objects as Points

CenterNet论文链接一.背景1.anchor-base缺点         (1).anchor的设置对结果影响很大,不同项目这些超参都需要根据经验来确定,难度较大.(2).anchor太过密集,其中很多是负样本,引入了不平衡.(3).anchor的计算涉及IOU增加计算复杂度.2.应用场景(1).目标检测(2).3D定位(3).人体姿态估计二.网络介绍输出分支主要由三部分组成(1)heatmap,大小为(W/4,H/4,C),输出不同类别的物体中心

2020-11-09 16:29:14 146

原创 CornerNet: Detecting Objects as Paired Keypoints

CornerNet论文链接Hourglass Network论文链接一.背景1.anchor-base缺点         (1).anchor的设置对结果影响很大,不同项目这些超参都需要根据经验来确定,难度较大.(2).anchor太过密集,其中很多是负样本,引入了不平衡.(3).anchor的计算涉及IOU增加计算复杂度.二.网络介绍1.网络结构网络总共有两个分支,一个分支有三个输出,主要包含heatmap,embedding,offsets.2.网络推理

2020-11-06 14:08:02 149

原创 FCOS: A Simple and Strong Anchor-free Object Detector

一.anchor-base缺点         1.anchor的设置对结果影响很大,不同项目这些超参都需要根据经验来确定,难度较大.2.anchor太过密集,其中很多是负样本,引入了不平衡.3.anchor的计算涉及IOU增加计算复杂度.二.回归方式anchor-based回归方式在于回归anchor与gt框之间的偏移量,而fcos回归的是上下左右距离....

2020-11-04 11:54:04 485

原创 水印去除(基于nosie2noise优化 代码+模型)

github链接针对noise2nosie进行改造:1.加深网络,使用空洞卷积;2.修改loss函数.class L0Loss(nn.Module): """High dynamic range loss.""" def __init__(self, eps=1e-8, nb_epochs=10): """Initializes loss with numerical stability epsilon.""" super(L0Loss,

2020-10-30 17:35:02 1523 2

原创 从attention到Transformer+CV中的self-attention

1.Position encoding其也叫做Position embedding,由于Transformer模型没有使用RNN,故Position encoding(PE)的目的就是实现文本序列的顺序(或者说位置)信息而出现的。代码实现如下:输入batch内的词位置,输出是batch内的每个词的位置embedding向量.class PositionalEncoding(nn.Module): def __init__(self, d_model, max_seq_len):

2020-10-23 17:17:32 823 1

原创 pytorch实现常用的一些即插即用模块(长期更新)

1.可分离卷积#coding:utf-8import torch.nn as nnclass DWConv(nn.Module): def __init__(self, in_plane, out_plane): super(DWConv, self).__init__() self.depth_conv = nn.Conv2d(in_channels=in_plane, out_ch

2020-09-18 08:59:52 523 3

原创 nginx做负载均衡,解决多机器多gpu卡服务对外暴露一个接口问题

思路:多个gpu 服务接口-->ngxin做负载均衡-->对外暴露一个。以一机两卡为例制作DockerfieFROM nginx:1.13.3COPY ./ /RUN mkdir /appCOPY /nginx.conf /etc/nginx/nginx.confnginx.conf详细#user nobody;worker_processes 1;#error_log logs/error.log;#error_log logs/error.lo

2020-09-03 17:16:09 354

原创 图论基础知识--最小生成树算法kruskal(克鲁斯克尔)和普里姆算法(Prim算法);最短路径算法Dijkstra(迪杰斯特拉)和Floyd(弗洛伊德)

一.基础知识 有向图 无向图二.Dijkstra算法Dijkstra算法用于解决单源最短路问题,所谓单源最短路就是指定一个起点,求出这个起点到其它所有点的最短路。示例:求M到各个顶点的最短路径先构建邻接矩阵Adjacent, 初始状态dist[1~n] = inf, dist[M]=0,顶点更新状态vst[1~n] = 0以点M为起点:dist[M] = 0 vst[M] = 0dist[W] = inf vst[W] = 0d...

2020-07-24 11:17:32 280

原创 利用dbnet分割条形码与文字(代码+模型)+知识蒸馏+tensorrt推理+利用pyzbar和zxing进行条形码解析

1.安装环境:apt-get install zbar-toolsapt-get install python-jpypepip install pyzbarpip install zxing2.代码案例#coding:utf-8import pyzbar.pyzbar as pyzbarimport timeimport shutilimport zxingimport cv2def parse_code(codeimg, reader): """ .

2020-07-08 10:25:42 1253

原创 收缩分割多边形(PSENet中有使用)

目的:为了解决密集文本的分割问题代码:# -*- coding=utf-8 -*-import osimport cv2import Polygon as plgimport pyclipperimport numpy as npdef dist(a, b): return np.sqrt(np.sum((a - b) ** 2))#计算周长def perimeter(bbox): peri = 0.0 for i in range(bbox.shap

2020-06-05 14:45:33 402

原创 生成高斯热力图(craft中有使用)

from math import expimport numpy as npimport cv2import osclass GaussianTransformer(object): def __init__(self, imgSize=512, region_threshold=0.4, affinity_threshold=0.2): distanceRatio = 3.34 scaledGaussian = la.

2020-06-04 10:26:21 942

原创 ctpn论文阅读与代码

代码地址:1.通用的目标检测是封闭的,而文字是封闭且连续2. 构造一系列宽度相等的小文本,回归中心y坐标和高度3. 对于边界回归x坐标,在进一次修正4.整个模型就是backbone提取特征,将每个像素点的相邻3*3像素拉成行向量,利用空间信息,在进入lstm提取时序信息进行分类与回归.5.文本构建算法将每个相邻竖直文本框进行合并6.一些中间过程...

2020-05-23 17:09:06 169

原创 GIOU loss+DIOU loss+CIOU loss

1.GIOU解决没有交集的框,IOU为0,其损失函数导数为0,无法优化的问题。图1GIOU,IOU,l2范数差异a)可看出 l2值一样,IOU值是不一样的,也就是l2对于尺度不具有不变性b)可看出当框有包含关系,GIOU就退化为IOU其是找到一个最小的封闭形状C,让C可以将A和B包围在里面,然后我们计算C中没有覆盖A和B的面积占C总面积的比例S.GIOU = IOU- S可看出,GIOU<=IOU图2 GIOU 计算公式GIOU的损失函数算法:...

2020-05-19 15:41:42 545

原创 递归理解以及时间复杂度计算

假如这里有 n 个台阶,每次你可以跨 1 个台阶或者 2 个t台阶,请问n个台阶有多少种走法?第一步走了一个台阶或第一步走了两个台阶,到下一个台阶也是类似,故这是一个递归。n个台阶就是,走了一个台阶后加剩下n-1台阶的走法,走了两个台阶后剩下n-2台阶的走法,f(n)=f(n-1)+f(n-2)终止条件:只剩一个台阶一种走法,只剩两个台阶两种走法,f(1)=1,f(2)=2...

2020-05-17 09:57:27 503

吴恩达课程手势数据集

吴恩达课程手势数据集,跟我的博客对应的,不想花积分的化,博客找我,我发邮箱

2018-07-19

基于430写的oled驱动

基于spi用430写的oled驱动,可以显示图片和汉字

2015-08-24

font.tar.gz

26种字库,方便以后下载.

2019-10-15

前10个手写字母数据集

前10个手写字母数据集,一个字母大概1000张,还是小的数据集,大的数据集一个字母差不多五万张。

2018-07-26

手写数字数据集

手写数字训练集和测试集,方便使用。。。。。。。。。。

2018-08-12

吴恩达课程happy人脸数据集

吴恩达课程happy人脸数据集,是跟博客一起走的,但可惜传不了,只能放在这儿了。

2018-07-21

水果数据集

博客需要用到的水果数据集。

2019-01-27

haar级联分类器

眼睛,脸等各种.xml级联分类器和模板匹配。。。。。。。

2018-08-03

利用50层ResNet实现手势数字的识别

利用50层ResNet实现手势数字的识别,准确率可达95%。。

2018-07-23

fpga vhdl计算器

fpga 基于vhdl计算器,自己写的的代码

2014-11-20

kemans聚类用的数据--包含多个数据

k-means聚类所用的数据集,与我的博客是对应的。

2018-12-17

小猫数据集

吴恩达作业1和3的小猫数据集,.h5文件,本来不想设积分的,好像最低是1分将就吧。

2018-07-13

猫狗大战数据集

猫狗大战数据集,训练集各有不同尺寸的小猫小狗1000张,测试集各有不同尺寸的小猫小狗500张。

2018-07-23

fer2013人脸表情数据集

我博客所对应的数据集,https://blog.csdn.net/fanzonghao/article/details/86543538

2019-05-17

zxing-cpp.tar.gz

zxing c++版 进行解析条形码。 1. mkdir build` 2. `cd` to `build` 3. Unix: run `cmake -G "Unix Makefiles" ..` 4. Windows: run `cmake -G "Visual Studio 10" ..` 5. make 6. ./zxing --test-mode 1.png

2020-08-19

Google新开课程的数据集和代码

Google新开课程的数据集和代码,有数据增强和未数据增强版。

2018-07-23

android4.0客户端实现图片的灰度化

android4.0客户端实现图片的灰度化,并显示在客户端界面。

2016-05-29

cifar-10数据集

cifar-10数据集,里面有5个data_batch和一个test_batch,共60000张。

2018-08-08

吴恩达作业1

利用最简单的逻辑回归分类识别猫,包含了训练样本的数据集,训练样本能达到90%准确度,测试样本40%,毕竟是最简单的,但能体会权值、偏置的更新

2018-04-26

基于430写的五线四项式步进电机

基于430写的五线四项式步进电机,单四拍,双四拍和八拍

2015-08-24

inception_v3权重文件

inception_v3 模型的权重文件,我博客有配套的使用,因为不太方便放,就设置了一个积分,不想花积分的给邮箱我发过去。

2018-07-26

GAN生成手写数字

利用GAN原始模型,生成手写数字,包含数据集和代码,直接可以用。

2018-07-29

吴恩达作业2

利用双层神经网络对随机产生的400个红点,蓝点分类,包含了训练样本的数据集,能达到96%准确度,能体会双层网络权值、偏置的更新。

2018-04-26

基于430写的风力摆控制系统

该程序基于430单片机能够实现风力摆控制系统基本功能,

2015-08-24

kemans聚类用的数据

k-means聚类所用的数据集,与我的博客是对应的。。。。。

2018-12-17

吴恩达作业3

深层神经网络的框架全部完成,包含了测试的函数,能很好体会每一步迭代正向传播和反向传播的各种值更新。

2018-04-26

font_ori.tar.gz

用作制作繁体字假数据的字库文件.

2019-12-06

视频图片打开、处理多种功能函数

能够实现图片视频的直方图均衡化、轮廓检测、视频保存,鼠标截视频图片保存本地文件等功能只需要把main函数里的函数调用即可。

2018-04-26

android4.0客户端名片识别

本程序在android4.0基础上实现了名片识别的功能,界面有打开摄像头的按钮和提示等待添加联系人信息框,拍完名片自动识别并添加联系人信息进入通讯录

2016-05-29

空空如也

空空如也

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

TA关注的人 TA的粉丝

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