自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 资源 (3)
  • 收藏
  • 关注

原创 图片相似度计算 3---(dhash--c++实现)

前面两篇博客介绍了均值哈希算法(ahash)、感知哈希算法(phash)。由前面的介绍可知,ahash算法是基于比较灰度图每个像素与所有像素点的平均值来实现的,最适合用于缩略图,放大搜索在本质上是对颜色作比较。phash由于做了DCT操作,本质上是对频率的比较。下面要介绍的图像差异哈希算法(dhash)是通过对比相邻像素像素值的差异,即逐像素得到当前像素与右邻像素的差值,得到一个图像差异矩阵,通过该矩阵生成哈希值。这个逐像素得到的图像差异矩阵的比原像素矩阵少了一列,即宽度比原像素矩阵少了1,高度不变。下

2020-06-08 17:06:33 1634 3

原创 图片相似度计算 2---(phash--c++实现)

在上一篇博客里介绍了图片相似计算中的最简单的一个ahash, 其是基于内容检索最简单的一种,这篇介绍它的增强版感知哈希算法(phash—perceptual hash)。主要也是用缩略图搜索原图并能达到较好点的效果。其实现一共包含以下几个步骤:图像缩放–将图像缩放到32*32大小,这一步的作用是取出各种图片尺寸和图片比例的差异,只保留结构、明暗等信息。灰度化–将32*32大小的图像进行灰度化离散余弦变换(DCT)–对32*32大小图像进行DCT计算均值–用3232大小图片前面88的像素值中大于均

2020-06-08 15:30:34 1293

原创 图片相似度计算 1----(ahash--c++实现)

最近接触到图像去重算法,有phash、dhash和ahash等基于哈希方法的去重算法。phash全称是感知哈希算法(Perceptual hash algorithm),使用这玩意儿可以对每个图片生成一个值,然后计算他们的hamming distance,简单的说就是数一数二进制之后有几位不同。整个处理流程有点像对文章去重时先算simhash再算hamming distance,很多东西都可以直接套用过来。首先介绍ahash算法(全称average hash)是phash算法的一种,是基于图像内容搜.

2020-06-07 17:06:37 1552

原创 数据结构与算法总结

最近刚刚学完邓俊辉数据结构这本书,但是看完一遍之后好像印象不是特别深刻,趁着研一的尾巴把这些这是都梳理一遍。将分为两个部分进行梳理—数据结构,算法。数据结构1、向量(数组)​ 在程序设计语言,都将数组作为一种内置的数据类型,支持对异族相关元素的存储组织与访问操作。具体地,若集合S由n个元素组成,且各元素之间具有一个先行次序,则可将它们存放起始于地址A物理位置连续的一段存储空间,并统称为数组(array)。​ 按照面向对象思想中的数据抽象原则,可对以上的数组结构做一般性推广,使得其以上特性更具有普

2020-05-31 23:10:30 416

原创 c++实现快速排序

快速排序是对冒泡排序的一种改进,由 C.A.R.Hoare(Charles Antony Richard Hoare,东尼·霍尔)在 1962 年提出。快速排序的核心思维每次都取数组的第一个元素作为基准元素,凡是大于这个基准元素的都放在他的右边,凡是小于这个基准元素的都放在它的左边,具体步骤如下:设置两个变量i和j(也称为哨兵),令序列第一个元素作为基准元素i指向序列的最左边,j指向序列的最右边,j从右往左试探,i从左往右试探,直到j找到小于基准的数就停止,i找到大于基准的数就...

2020-05-27 22:36:20 3484 4

原创 二叉堆(c++实现)

二叉堆的介绍二叉堆是完全二元树或者是近似完全二元树,按照数据的排列方式可以分为两种:最大堆和最小堆。最大堆:父结点的键值总是大于或等于任何一个子节点的键值;最小堆:父结点的键值总是小于或等于任何一个子节点的键值。示意图如下:二叉堆一般都通过"数组"来实现。数组实现的二叉堆,父节点和子节点的位置存在一定的关系。有时候,我们将"二叉堆的第一个元素"放在数组索引0的位置,有时候放在1的位置。当然,它们的本质一样(都是二叉堆),只是实现上稍微有一点点的区别。假设"第一个元素"在数组中的索引为 0 的话,则

2020-05-17 14:20:50 852

原创 c++中cin.clear()、cin.sync()的用法

最近在看一段程序的时候看见用完cin之后有的时候需要用到cin.clear(); cin.sync();首先需要加#include,然后在学习这个用法时,让我对cin有了新的认识,例如我们读取一系列整型数据,将其存入vector对象中,然后使用count()统计某个指定值出现的次数,下面是我开始的程序:#include<iostream>#include"algorithm"#include<vector>using namespace std;int main()

2020-05-11 13:03:42 1290 1

原创 pytorch简单实现yolo v1

首先本文的参考代码来自于添加链接描述和添加链接描述yolo v1 原理简析yolo v1的原理相较于其他的一些目标检测算法稍微没那么复杂,Yolo采用一个单独的CNN模型实现end-to-end的目标检测模型。检测框架整个框架把输入图片分成S×S个grid,然后每个格子预测两个bbox,每个bbox包含五个预测参数:x, y, w, h, c。前四个参数都是归一化之后的,其中c代表置信度,表示预测的这个框属于哪一个物体。另外每个格子都预测20个假定类别的概率,网络的最后输出为S×S×30(52+20

2020-05-10 17:34:01 5429 4

转载 伸展树(c++)

伸展树介绍伸展树(Splay Tree)是特殊的二叉查找树。它的特殊是指,它除了本身是棵二叉查找树之外,它还具备一个特点: 当某个节点被访问时,伸展树会通过旋转使该节点成为树根。这样做的好处是,下次要访问该节点时,能够迅速的访问到该节点。伸展树的c++实现1. 基本定义1.1 节点template <typename T>class SplayTreeNode{ ...

2020-05-06 16:00:16 429

原创 AVL树(c++)

最近学习了AVL树,书上讲解的第一遍没怎么看懂,在网上搜到一篇不错的贴子,然后结合自己的理解将知识记录下来以便以后的温习回顾AVL树简介AVL树的名字来源于它的发明作者G.M. Adelson-Velsky 和 E.M. Landis。AVL树是最先发明的自平衡二叉查找树(Self-Balancing Binary Search Tree,简称平衡二叉树)。一棵AVL树有如下必要条件:条...

2020-05-04 11:00:14 271

原创 树结构及遍历算法

最近刚刚学完邓俊辉的数据结构中的二叉树结构,将自己所学记录下来,方便日后进行回顾。#include <iostream>#include <stack>#include <queue>#define BinNodePosi(T) BinNode<T>* //节点位置#define stature(p) ((p) ? (p)->hei...

2020-04-25 16:10:39 389

原创 用逆波兰表达式制作一个简易的计算器(中缀表达式转后缀表达式)

介绍最近在学习c++的数据结构时,学到对表达式的求值,正好又看到一个比较基础的c++程序设计题目,即设计一个简易的计算器首先我们求一个表达式的值时用的是中缀表达式,例如求3 + 6 / 2的值时,我们会先计算6/2的值然后在计算加法,但是在计算机中并不会这么聪明的知道计算的优先级,因此我们需要将表达式转换称为计算机能理解的表达式,这里就涉及到数据结构中的中缀表达式转后缀表达式。中缀表达式转后...

2020-04-19 23:54:00 248

转载 目标检测(SSD)-数据篇

SSD代码详解数据篇,旨在全方位介绍数据从下载到数据增强,最后封装为pytorch的data_loader过程。其中,涉及了目标检测领域绝大部分的数据增强方式,亮度、对比度、色调、裁剪、扩充等等方法。目录下载数据数据dataset数据增强1. 数据类型转换2. Transform Compose3. IOU计算4. bbox坐标变化5. 图片 Resize6. 图片色彩转...

2020-03-28 17:43:11 715 1

原创 ResNet详解(pytorch)

1ResNet是2015年就提出的网络结构,中文名字叫作深度残差网络,主要作用是图像分类。现在在图像分割、目标检测等领域都有很广泛的运用.2随着硬件的不断升级,我们可以使得原来很浅的网络不断的加深,但是这种做法随之而来就出现了这样的一个问题深层训练的效果反而不如浅层网络,也就是网络出现了退化。这个问题很大程度上归结为网络层数过深,梯度下降优化loss变得困难。作者为了解决上述问题,提出了这...

2020-03-22 14:45:06 2436

原创 LeNet-5详解及pytorch实现

LeNet-5网络简介LeNet-5出自论文Gradient-Based Learning Applied to Document Recognition,是一种用于手写体字符识别的非常高效的卷积神经网络。是入门深度学习网络的基础网络,LeNet-5网络虽然小,但是包含了深度学习的基本模块:卷积层、池化层、全连接层。LeNet5共有七层,不包含输入,每层都包含可训练参数,每个层有多个Featur...

2020-03-09 22:43:09 5909 5

原创 python中字符串的翻转(方法总结)

Python翻转字符串(reverse string), 一共包含5种方法, 其中第一种最简单, 即步长为-1, 输出字符串;方法如下5种方法的比较:简单的步长为-1, 即字符串的翻转(常用);交换前后字母的位置;递归的方式, 每次输出一个字符;双端队列, 使用extendleft()函数;使用for循环, 从左至右输出string = ‘abcdef’d...

2019-11-16 10:18:57 372

原创 python opencv-16图像ROI与ROI操作

预备知识:图像ROI:图像ROI(Region Of Interest),即感兴趣的区域,该操作能够非常轻松的通过numpy的切片操作实现。注意切片操作后对ROI像素值的更改也会影响到原图,如果不想影响到原图,先将roi做一个copy操作就好,roi_copy = roi.copy()图像像素值的界限两个uint8的ndarray相加,值超过255的部分将会以对256取模的方式返回到结果...

2019-11-13 11:54:43 1056

原创 python opencv-15 绘制几何形状

import cv2 as cvimport numpy as npimage=np.zeros((512,512,3),dtype=np.uint8) #创建一个全黑图像cv.rectangle(image,(100,100),(300,300),(255,0,0),2,cv.LINE_8,0)#绘制矩形,需要确定的就是矩形的两个点(左上角与右下角)。颜色、线的类型(不设置就默认),最后的...

2019-11-09 18:41:46 132

原创 python opencv-14图像插值

###“插值”最初是电脑的术语,现在引用到数码图像的处理上。即图像放大时,像素也相应地增加,增加的过程就是“插值”程序自动选择信息较好的像素作为增加的像素,而并非只使用临近的像素,所以在放大图像时,图像看上去会比较平滑、干净。不过需要说明的是插值并不能增加图像信息。通俗地讲插值的效果实际就是给一杯香浓的咖啡兑了一些白开水。 ★ 常见的插值方法及其原理 1. 最临近像素插值:图像出现了马赛克和锯齿等...

2019-11-08 14:44:20 980

原创 python opencv-13 图像翻转

import cv2 as cvimport numpy as npsrc=cv.imread(r’C:\Users\zs\Desktop\defm.jpg’)cv.namedWindow(‘input’,cv.WINDOW_AUTOSIZE)cv.imshow(‘input’,src)dst1=cv.flip(src,0) #垂直翻转 ...

2019-11-07 22:14:49 92

原创 python opencv-12视频读写

import cv2 as cvimport numpy as npcapture = cv.VideoCapture("./test.avi")#capture = cv.VideoCapture(0) 打开摄像头height = capture.get(cv.CAP_PROP_FRAME_HEIGHT) #获取视频流的帧高度width = capture.get(cv.CAP_PR...

2019-11-07 19:11:17 274

原创 python opencv-11图像像素归一化

预备知识归一化归一化就是要把需要处理的数据经过处理后(通过某种算法)限制在你需要的一定范围内。首先归一化是为了后面数据处理的方便,其次是保证程序运行时收敛加快。归一化的具体作用是归纳统一样本的统计分布性。归一化在0-1之间是统计的概率分布,归一化在某个区间上是统计的坐标分布。归一化有同一、统一和合一的意思。归一化的目的,是使得没有可比性的数据变得具有可比性,同时又保持相比较的两个数据之间的...

2019-11-05 22:03:52 7029

原创 python opencv-10图像像素值统计

import cv2 as cvimport numpy as npsrc=cv.imread(r’C:\Users\zs\Desktop\defm.jpg’,cv.IMREAD_GRAYSCALE)cv.namedWindow(‘input’,cv.WINDOW_AUTOSIZE)cv.imshow(‘input’,src)#最大值最小值和相应的位置min,max,minLoc,ma...

2019-11-04 19:18:20 3902

原创 python opencv-09 色彩空间与色彩空间转换

##cvtColor:Converts an image from one color space to anotherimport cv2 as cvsrc=cv.imread(r’C:\Users\zs\Desktop\defm.jpg’)cv.namedWindow(‘rgb’,cv.WINDOW_AUTOSIZE)cv.imshow(‘rgb’,src)hsv=cv....

2019-11-04 18:50:02 147

原创 python opencv-08图像通道分离合并

#OpenCV 中 imread() 函数默认加载图像文件,加载进来的是 3 通道彩色图像,色彩空间 是RGB色彩空间。通道顺序是:BGR (蓝色、绿色、红色)。通道分离函数:split()通道合并函数:merge()import cv2 as cvsrc=cv.imread(r’C:\Users\zs\Desktop\defm.jpg’)cv.namedWindow(...

2019-11-01 19:54:13 310

原创 python opencv-07 图像像素操作逻辑操作

import cv2 as cvimport numpy as npsrc1=np.zeros(shape=[400,400,3],dtype=np.uint8) # 创建图片1src1[100:200,100:200,1]=255src1[100:200,100:200,2]=255cv.imshow(‘input1’,src1)src2=np.zeros(shape=[400,40...

2019-10-31 22:10:19 351

原创 python opencv-06图像伪彩色增强

import cv2 as cvsrc = cv.imread(r"C:\Users\zs\Desktop\defm.jpg")cv.namedWindow(“input”, cv.WINDOW_AUTOSIZE)cv.imshow(“input”, src)dst = cv.applyColorMap(src, cv.COLORMAP_COOL)cv.imshow(“output”, ...

2019-10-30 14:39:44 2251

原创 python opencv-05像素算术操作

1 add 加 2 subtract 减 3 multiply 乘 4 divide 除import cv2 as cvimport numpy as npsrc1 = cv.imread(r’C:\Users\zs\Desktop\defm.jpg’);src2 = cv.imread(r’C:\Users\zs\Desktop\dede.jpg’);add_result = n...

2019-10-29 21:22:47 97

原创 python opencv-04图像像素读写

import cv2 as cvsrc = cv.imread("./test.png")cv.namedWindow(“input”, cv.WINDOW_AUTOSIZE)cv.imshow(“input”, src)h, w, ch = src.shape#高度、宽度和通道数print(“h , w, ch”, h, w, ch)#获取图像高、宽、通道数。如果图像为灰度图,则i...

2019-10-28 19:13:20 146

原创 python-opencv 03图像创建与赋值

import cv2 as cvimport numpy as npsrc = cv.imread("./test.png")cv.namedWindow(“input”, cv.WINDOW_AUTOSIZE)cv.imshow(“input”, src)#克隆图像m1 = np.copy(src)m2 = srcsrc[100:200,200:300,:] = 255cv.i...

2019-10-28 19:00:03 2449

原创 python opencv 02-图片的灰度化

import cv2src = cv2.imread("./test.png")cv2.namedWindow(“input”,cv2.WINDOW_AUTOSIZE)cv2.imshow(“input”, src)gray = cv2.cvtColor(src, cv2.COLOR_BGR2GRAY)cv2.imwrite(‘gray.png’, gray)cv2.imshow(“g...

2019-10-28 18:40:12 222

原创 python opencv 01-图片的读取与显示

#python opencv 01-图片的读取与显示import cv2src = cv2.imread(“test.jpg”)#这儿是输入图片的地址cv2.namedWindow(“input”, cv2.WINDOW_AUTOSIZE)#设置窗口为自动设置大小cv2.imshow(“input”, src)cv2.waitKey(0)cv2.destroyAllWindows(...

2019-10-28 14:51:35 182

TensorRT-Developer-Guide.pdf

TensorRT-Developer-Guide.pdf

2021-04-04

vgg16_caffe.pth

为了方便大家下载权重文件 我把资源放在这,在大家用的时候只需要下载就可以了,无需付费和积分,大家随意使用,不需要付费和积分

2020-07-13

MTCNN.zip代码解析

实现mtcnn的代码解析,具体的可以看进去的第一个mtcnn的py文件,里面的步骤非常清晰,代码是使用pytorch实现的,为最新版本的pytorch

2020-03-22

空空如也

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

TA关注的人

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