自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Faster-RCNN简易复现

Faster-RCNN复现数据准备主要目标是利用pytorch框架简易复现Faster-RCNN,我选了一个比较简单的数据集VOC2012,这个数据集标注用的xml格式。数据读取如下:def loadXml(path): ''' 读取原始的XMLlabel文件 :return: ''' dom = xml.dom.minidom.parse(path)​ root = dom.documentElement #获取...

2021-07-20 22:44:47 1746 5

原创 vim操作和shell语句

vim操作a:光标右侧插入字符A:行尾插入字符i:光标左侧插入字符I:行首插入字符o:下方新增一行插入字符O:上方新增一行插入字符0:移至行首$:移至行尾w:下一个单词x:删除一个字符(n+x:删除n个字符)dd:删除一行(n+dd:删除n行)y:复制光标字符yw:复制光标到行尾字符yy:复制一行(n+yy:复制n行)p:粘贴u:撤销一步/+内容:光标位置向下查找内容?+内容:光标位置向上查找内容n:下一个查找结果set nu:显示行号Shell编程Shell

2021-02-23 15:37:11 216

原创 pytorch入门笔记(二):数据预处理、模型的保存读取以及分类实战

torchvision.transforms常用的几个图像预处理方法transforms.Resize(size) :会把图片的短边尺寸转换成size,整体长宽比不变transforms.CenterCrop(size) : 在图片的中心抠出一张(size, size)的小图像,往往配合Resize使用transforms.RandomRotation((n,m)) : 把图片旋转,旋转角度为n~m的随机角度,可为负数transforms.RandomHorizontalFlip§

2021-01-12 20:20:42 701

原创 爬虫笔记(五):百度图片爬取实战

对这几天的爬虫学习做一个小结式的实战,爬取百度图片,这也是后面复现论文最有可能用到的,不过百度的反爬虫越来越严了,所以这个实战不知道还有能用多久目标链接如果你直接打开百度图片,搜索一个东西,你会发现链接特别的长,参数很多,当你用该链接去爬虫时,第一步获取网页信息就会有问题。会被安全验证给拦截了。经过我多番百度。。找到一个能用的链接:‘https://image.baidu.com/search/flip?tn=baiduimage&ie=utf-8&word=’ + target

2021-01-10 20:35:39 584

原创 爬虫笔记(四):BeautifulSoup笔记

BeautifulSoup简单介绍常规采用正则表达式提取网页信息很不方便,BeautifulSoup是个针对网页的解析库,支持多种解析器。使用BeautifulSoup可以不用编写正则表达式去获取网页上的信息BeautifulSoup的基本使用html = """<html> <head> <title>The Dormouse's story</title> </head> <body>

2021-01-10 19:16:58 136

原创 爬虫笔记(三):正则表达式的使用

常见的匹配模式\w 匹配字母数字及下划线\W 匹配f非字母数字下划线\s 匹配任意空白字符,等价于[\t\n\r\f]\S 匹配任意非空字符\d 匹配任意数字\D 匹配任意非数字\A 匹配字符串开始\Z 匹配字符串结束,如果存在换行,只匹配换行前的结束字符串\z 匹配字符串结束\G 匹配最后匹配完成的位置\n 匹配一个换行符\t 匹配一个制表符^ 匹配

2021-01-10 19:13:04 168

原创 爬虫笔记(二):Requests库的基本使用

介绍Requests库是基于urllib编写,功能上能够替代urllib,使用上比urllib方便,需要独立pip安装基本用法响应的基本内容import requestsresponse = requests.get("http://www.baidu.com")print(response.status_code) #状态码print(response.url) #请求地址print(response.headers) #头部信息print(response.cookies) #co

2021-01-10 18:55:08 130

原创 爬虫笔记(一):urllib的使用

0. 为什么学习爬虫上班之后,论文的学习逐渐落下了,最近工作步入了正轨(刚加完一个月的班:)),加上之前在研究生期间主做GAN,人工智能的其他领域研究比较少,所以想在空闲时间读读论文,复现复现论文,计划是都学一下,包括但不限于目标检测、图像分割、nlp、知识图谱。然后,在做准备工作时,突然发现可能需要学点简单的爬虫知识来构建数据集。这几天简单的学习了一下,也实战了一下,过来做一下笔记,写得比较简单,本人小白,有错误也请指正。1. 读取网页的最基本操作import urllib.requestreq

2021-01-10 18:03:50 104

原创 pytorch入门笔记(一):数据读取、模型搭建和训练

最近发现周围的大佬都在用pytorch了,作为一个还在用tensorflow1.14的渣中渣:),决定也跟随大佬们的步伐,学习一波pytorch在网上看了看相关教程(看文档学习是不可能的,这辈子都不可能的),对pytorch有了一点了解,手动搞了个CIFAR10的分类(手动弱鸡),虽然比较弱,还是过来写个总结吧关于pytorch中相关函数的介绍就不写了,来来去去就是什么卷积啊,激活函数啊,损失函数之类的,基本上tensorflow有的,pytorch都有。不过pytorch有些功能往往是返回一个对象

2020-11-13 20:53:11 1604

转载 GCN入门资料

如何理解 Graph Convolutional Network(GCN)?https://www.zhihu.com/question/54504471 推荐初学者可以先从知乎的这个问题出发,点赞最多的《从CNN到GCN的联系与区别——GCN从入门到精(...

2019-06-24 16:35:49 898

原创 Leetcode127 双向BFS

今天常规刷题,刷到一道搜索的题目,第一次用单向BFS过了,然后发现耗时是大佬们的10倍,看了下网上的题解,大概学习了一下双向BFS。双向BFS的特点是,从起点和终点同时出发,交替搜索,如果在中间相遇了,意味着终点和起点之间存在路径。双向BFS一般情况下可以大大减少搜索范围(脑补一下正方形从左上和右下启动,均按圆弧状往外搜索,一旦两个圆弧相交,搜索结束,那么左下角和右上角有大量区域不需要搜索)。...

2019-06-03 19:49:01 727

转载 Attention在计算机视觉上的一些应用

        首先,本文从计算机视觉领域介绍attention机制,主要是在图像上的应用,会从总体motivation,具体的文章,以及相应的代码实现进行描述。        本文背景部分,大...

2019-05-10 17:22:39 2413 1

转载 Attention的理解

1. 什么是Attention机制?其实我没有找到attention的具体定义,但在计算机视觉的相关应用中大概可以分为两种:1)学习权重分布:输入数据或特征图上的不同部分对应的专注度不同,对此Jason Zhao在知乎回答中概括得很好,大体如下: - 这个加权可以是保留所有分量均做加权(即soft attention);也可以是在分布中以某种...

2019-05-10 11:28:32 632

转载 神经网络架构搜索(Neural Architecture Search)杂谈

原文链接:https://blog.csdn.net/jinzhuojun/article/details/84698471一、背景机器学习从业者被戏称为“调参工”已经不是一天两天了。我们知道,机器学习算法的效果好坏不仅取决于参数,而且很大程度上取决于各种超参数。有些paper的结果很难重现原因之一就是一些超参最优值需要发很大的力气。超参数的自动...

2019-05-07 17:33:26 1605

原创 Leetcode43 大数相乘 Python版

今天刷leetcode的时候,刷到了一道大数相乘的题目,以前水比赛的时候都是模板或者java。。今天算是第一次写大数相乘的题目了。链接:https://leetcode-cn.com/problems/multiply-strings/description/一开始思路很弱智,将一个数从低位开始按位取,乘上另一个数,然后一层一层的叠加起来,结果没错,就是超时了,上一下超时的代码:#e...

2018-10-21 20:39:00 1950

原创 Leetcode720 python的自定义排序

一直以来都不知道python应该怎么做到自定义排序,今天刷leetcode的时候终于学习了一波。题目链接:https://leetcode-cn.com/problems/longest-word-in-dictionary/description/题目的大概意思是在一个字符串列表中尝试找出一个字符串,使得它是由列表中其他字符串逐步添加一个字符生成的。我的思路很简单,先按长度大到小排序,一...

2018-09-25 21:08:45 454

原创 DCGAN和cDCGAN在mnist上实战

这个博客主要是总结下模型的搭建细节,完成这两模型花了三四天吧,DCGAN的参数一直调不好。先简单说说DCGAN的原理吧,主要原理还是GAN,一个生成网络和一个判别网络。和基础的GAN相比,区别就在于DCGAN无论是生成网络还是判别网络都采用了卷积。一开始,生成网络和判别网络都采用较深的卷积(都用了10层吧),什么LeakyRelu都用上了,效果一直很差,后来感觉,可能mnist数据图片小,...

2018-09-02 22:03:31 5609 5

转载 Leetcode 458

 我这智商,刷Leetcode简单题都不够用了,又被一道简单题虐了,思路太巧妙了。记录一下。题目链接:https://leetcode-cn.com/problems/poor-pigs/description/转自:https://blog.csdn.net/JackZhang_123/article/details/78775716There are 1000 buckets,...

2018-08-30 21:43:21 376

原创 Leetcode 447 Python中用get建立字典

今天在做leetcode简单题时,又被一道水题卡住了,疯狂TLE,然后就上网看思路,发现思路没问题啊,怎么回事呢?上个题目链接:https://leetcode-cn.com/problems/number-of-boomerangs/description/首先说一下思路,应该也是最纯的思路了,就是遍历i的点,在ide前提上再遍历到其他点的距离,统计距离相同(存在好多种距离)的点的数目(...

2018-08-29 21:49:25 383

原创 Leetcode371 位运算解决数的加减

依旧是leetcode的简单题,这道题要求我们不能使用+、-来完成数的加减,毫无疑问,需要用到位运算来解决,思路OK的,但是在实现上思路没缕清晰,而且Python在实现这道题上需要考虑的问题比较复杂。leetcode链接:https://leetcode-cn.com/problems/sum-of-two-integers/description/先说说位运算的思路吧,一共有两个部分:...

2018-08-23 20:35:10 473

原创 减一与运算计算汉明重量

刷Leetcode还是能学到很多小知识的,今天学到了如何在二进制数中快速输出有几个1, 二进制中1的个数也称为汉明重量Leetcode 链接:https://leetcode-cn.com/problems/number-of-1-bits/description/思路很简单:1、设个数为0,原始数据是n2、如果n等于0,输出个数,如果不等于零,n = n &amp; (n-1)...

2018-08-17 21:24:05 641

原创 Leetcode 136 利用异或运算寻找出现奇数次的数

今天在水Leetcode的简单题时,遇到一道题让我从一个数字列表中找出只出现一次的数,其他的数均出现两次。题目链接:https://leetcode-cn.com/problems/single-number/description/我的思路就非常水了,排个序,左右比较一下,然后总感觉还有更好的方法,就去搜了一下,果然,又学到了。网上的大佬都用异或运算来解决道题目。异或的特点:a ...

2018-08-15 21:23:49 1308

原创 Leetcode 108 平衡二叉搜索树

为了以后能够找个工作苟活下去,最近开始刷Leetcode了。。。惨,还TMD要用Python,感觉刷题没有C++好用。。虽然以前搞过竞赛吧(划水的那种),但是毕竟不是科班出身,数据结构基础简直薄弱。说实话,今天第一次听说平衡二叉搜索树的概念(竞赛很少有二叉树的题就没怎么看过。。)。Leetcode链接:https://leetcode-cn.com/problems/convert-sorte...

2018-08-13 21:24:40 495

原创 GAN的简单入门

最近在准备毕业设计的开题,基本确定了GAN这个大方向,接下来一年计划用博客记录一下GAN的学习历程吧。今天先记录一下对于GAN的一些个人理解。GAN的原始论文链接:https://arxiv.org/abs/1406.2661GAN的全称叫生成对抗网络,主要用于生成与真实样本相似的样本。GAN包含了两个模块,一个是用于生成样本的生成网络Generative,另一个是用来判别样本是否来自真实...

2018-08-12 15:58:44 1010

原创 图像的重映射

今天学习了一个比较简单的内容,叫图像的重映射。思想很简单,就和中学学的函数映射差不多,定义x和y方向的映射表就能实现。所谓的映射表就是指用来确定生成图像的每个像素点对应于原图的位置。涉及的函数如下:(1)remap(源Mat对象,目标Mat对象,x方向的映射表,y方向的映射表)//注意这里的映射表是Mat类对象(虽然我觉得用一维数组就行了),关于映射表内容的解释看代码注释代码演示:#i

2017-04-26 10:49:27 2040

原创 霍夫直线和圆检测

在图像处理中,图像的特征提取是一大关键,今天学习的霍夫变换就是用来提取图像中的直线和圆的。对于霍夫的直线检测,步骤如下:(1)利用Canny边缘提取获取图像边缘的灰度图(2)利用函数HoughLinesP(源Mat对象,存放结果的向量,以像素为单位的距离精度,以弧度为单位的角度精度,阈值,最短距离,最大间断距离)//存放结果的向量是一个n x 4的二维数组,每个单元有四个值,分别代表直

2017-04-25 13:06:08 844

原创 边缘提取

今天学习的内容是图像的边缘提取。边缘提取其实也是一种滤波,不同的算子有不同的提取效果。比较常用的方法有三种,Sobel算子,Laplacian算子,Canny算子。在opencv中,这几个算子被封装成函数。(1)Sobel算子是通过求取像素的一阶导来获取边缘,如果变化大则像素值高,Sobel算子有x和y方向之分。Sobel(源Mat对象,目标Mat对象,输出图像深度,x方向阶数,y方向阶数

2017-04-23 17:25:18 8481

原创 自定义滤波和边缘处理

之前的学习中接触了很多常用的滤波,不过,如果我们想用自己定义的滤波该怎么办呢?其实也是没问题的。首先回顾一下滤波的工作流程,首先确定滤波的范围,然后确定范围中每个点的权重,然后算出区域的像素加权和,最后替换掉目标点的像素值。我们可以利用filter2D函数来实现。(1)在使用filter2D之前,我们需要定义一个小Mat对象,相当于滤波范围,这个小Mat对象的内容就是每个点的权重。Mat

2017-04-23 11:07:10 3001

原创 图像金字塔——上采样和下采样

在图像处理中,图像的缩放常常会利用到。图像金字塔概念就和图像的缩放相关。如果把正常大小的图片放在金字塔结构的中间,那么金字塔的上部就相当于图片的收缩,金字塔的地步就相当于图片的放大。金字塔结构有两种,分别是高斯金字塔和拉普拉斯金字塔。在本次学习中,接触到的是高斯金字塔,我们把图片收缩叫做下采样,图片放大叫做上采样。相关函数如下:(1)pyrUp(源Mat对象,目标Mat对象,Size(源对象列

2017-04-20 22:28:01 6436 4

原创 形态学操作

在介绍opencv的形态学操作之前,要先介绍一下两个基础内容,一个是腐蚀,一个膨胀。膨胀和腐蚀相当于滤波的一种,只不过之前介绍的几种滤波,什么均值啊,高斯啊都是把区域的平均值或者说中值去替换中心点的像素值,而膨胀和腐蚀正好相反,膨胀是用区域中最高的像素值去替换中心点的像素值,而腐蚀则是用区域中最小的像素值去替换中心点的像素值。相关函数如下:(1)Mat kernel = getstructur

2017-04-17 22:10:43 841

原创 opencv中的各种滤波函数

在图像处理中,尽可能消除图片中的噪声,消除噪声就需要用到滤波,在本次opencv学习中,学习了三个滤波方式。(1)平均滤波,就是将一个区域内的像素值求和取平均值,然后用这个平均值替换区域中心的像素值。blur(源Mat对象,目标Mat对象,Size对象,Point对象)//Size对象用来确定区域大小,Point对象如果x,y都是-1则表示更新区域中心的像素。(2)高斯滤波,也是将一个

2017-04-16 21:05:11 13576

原创 opencv简单形状绘制

今天继续opencv的学习,今天学习的内容是,画一些简单的形状,比如直线、方形等。主要涉及的函数:(1)Mat::zeros(Size size,Type type)//可以用来初始化一个背景全黑的画板。(2)Point对象,初始化方式Point(int x,int y),用来建立一个点对象,在图形绘制上常用。(3)Scalar对象,用来建立颜色对象,初始化时最对四个通道。(4

2017-04-14 21:57:32 1725

原创 图片像素值得获取和修改

在之前的学习中,已经知道了如何获取每个图像的行像素数组,但是在修改图像像素值时并不方便,特别是多通道图像,很容易弄错,今天的学习,让我知道了更加直观的方式修改图像像素。主要涉及下面两个函数:(1)对于单通道图像(灰度图):Mat对象.at(x,y);//x,y是图像上的坐标,返回一个uchar值(2)对于三通道图像(BGR图像):Mat对象.at(x,y);//x,y是图像上的坐标,返

2017-04-12 12:38:29 3638

原创 Mat对象的初始化和一些相关操作函数

Mat对象在opencv的图像处理中起着至关重要的作用。对于Mat对象的初始化有很多种方法。(1)Mat(Size size, int type);//size数据可以通过Mat的子函数size获取,type数据表示图像的类型,常用的有CV_8UC3、CV_8UC1,第一个是说每个像素单元是8位uchar类型,图像通道数是3(比如BGR图像),第二个不同在于图像通道数是1(比如灰度图)(2

2017-04-08 11:12:25 3940

原创 opencv掩膜操作

所谓的掩膜操作,是用来提高图像的对比度。掩膜操作有一个简单的公式:在进行掩膜操作之前,必须需要了解下面几个opencv的函数:(1)int Mat对象.channels();//获取图像的通道数,不同类型的图像通道数不一样,以BGR为例,一张图按行按列均匀分布着像素点,但是每个像素点由三种颜色组成(灰度图只有一种颜色),相当于三个按行排列的通道,所以在处理图片像素时,往往列数要乘以

2017-04-04 22:55:00 3701 1

原创 opencv基本的几个图像处理函数

转眼大学四年就要过去了,终于到了做毕设的时候。选的题目我只能说比较僵,目标跟踪。。。根本不会,不过研究生导师是搞这方面的,早点学习一下也挺不错的。我老师给我的要求是使用opencv编写一个目标跟踪的程序,之前从没接触过opencv,接下来几周只能和opencv硬肛了。今天学习了一下最基础的几个函数,记录一下学习内容。(1)图片读取imread()+Mat对象要进行图像处理,首先肯定是要

2017-04-04 21:14:20 6113

转载 DEBUG各命令详细说明(很详细)

DEBUG各命令详细说明启动DEBUG1.打开Windows命令窗口在Windows 95/98的环境中,打开命令窗口的步骤为:点击“开始”→“运行”,输入“command”命令; 在WindowsXP及WIN7的环境中,打开命令窗口的步骤为:点击“开始”→“运行”,输入“cmd”命令;2.启动DEBUG在命令窗口中启动DEBUG,启动命令一般为:DEBUG  [文

2017-02-28 15:04:11 1348

转载 欧几里得算法及扩展欧几里得算法

欧几里德算法欧几里德算法又称辗转相除法,用于计算两个整数a,b的最大公约数。基本算法:设a=qb+r,其中a,b,q,r都是整数,则gcd(a,b)=gcd(b,r),即gcd(a,b)=gcd(b,a%b)。第一种证明:      a可以表示成a = kb + r,则r = a mod b  假设d是a,b的一个公约数,则有  d|a, d|b,而r = a - kb,因

2016-04-23 22:55:43 531

转载 SSE Intrinsics各函数介绍

转自:http://blog.csdn.net/fengbingchun/article/details/19293081SIMD相关头文件包括:[cpp] view plaincopyprint?//#include //MMX  //#include //SSE(also include ivec.h)  //#include //S

2015-11-11 21:08:15 1063

转载 在C/C++代码中使用SSE等指令集的指令(5)SSE进行加法运算简单的性能测试

下面是一个简单的测试SSE指令性能的程序,可以看到明显的性能提升。(说明:程序中的timing.h使用的是http://blog.csdn.net/gengshenghong/article/details/6973086中介绍的时间间隔获取方法)[cpp] view plaincopyprint?#define WIN  #include "tim

2015-11-10 22:13:51 600

空空如也

空空如也

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

TA关注的人

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