自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

tendency

路漫漫其修远兮,吾将上下而求索

  • 博客(62)
  • 收藏
  • 关注

原创 ffmpeg 常用文档

ffmpeg -i input.mp4 -b:v 64k -bufsize 64k output.mp4# 设定输出视频码率为 64kbit/sffmpeg -i input.mp4 -r 24 output.mp4#切换帧率到24fpsffmpeg -r 1 -i input.m2v -r 24 output.avi#强制把输入文件(输入文件必须是raw格式)帧率设为1fps,并把输出文件帧率设置为24fpsfilter简单:只有一个输入和输出,两边的数据为同一类型。一般用于配置每个流

2021-01-27 10:11:39 263

原创 IOU

IOU即交并比,应用:NMS(过滤重叠框)mAPimport numpt as npdef get_IOU(pred_bbox, gt_bbox): ixmin = max(pred_bbox[0], gt_bbox[0]) iymin = max(pred_bbox[1], gt_bbox[1]) ixmax = min(pred_bbox[2], gt_bbox[2]) iymax = min(pred_bbox[3], gt_bbox[3]) iw = np.maximum(ixma

2021-01-06 18:17:42 139

原创 git 操作指南

2020-12-28 17:01:41 101

原创 算法

1.图搜索算法 --邻接矩阵 邻接链表型数据BFS 广度优先搜索从根节点开始,沿着树的宽度遍历节点,遍历所有节点算法结束从算法的观点,所有因为展开节点而得到的子节点都会被加进一个先进先出的队列中。一般实现里,其邻居节点尚未被检测过的节点会被放置在一个被成为open 的容器中(队列或链表)而被检验过的节点则被放置在被成为closed的容器中。实现方法:1.首先从根节点放入队列中。2.从队列中取出第一个节点,并检验它是否为目标。* 如果找到目标,则结束搜索并回传结果。 * 否则将它所有尚未检验过

2020-12-28 15:36:37 138

原创 Transformer

transformer 由 encoder 和decoder 组成1.1 Encoder由N=6个相同的layer组成,layer分别由multi-head self-attention mechanism 和 fully connected feed-forward network 组成,这两个分别都加了 residual connection 和 normalisation。multi-head Attention 可以看成多个self-attention的结合对于self-attention.

2020-12-17 10:39:02 118

原创 细粒度分类

细粒度分类方法主要分为四类:1)基于常规图像分类的网络的微调方法2)基于细粒度特征学习的方法3)基于目标块的检测和对齐的方法4)基于视觉注意机制的方法1)常规分类模型并不能很好的区分细粒度图像,常用的方法是采用迁移学习,将ImageNet的预训练过的网络权重进行微调,另外还有对loss进行改进,例如使用triplet loss2)基于细粒度特征学习的方法Bilinear CNN ,采用VGG-D和VGG-M作为基准网络,不使用bounding Box的情况下,CUB200-2011精度84

2020-11-19 11:20:59 8713

原创 pytorch 提速trick

模型的训练过程可大概划分为数据处理,模型处理pytorch 加载数据常用的加载数据采用dataloader函数,常规情况下,直接调用实现即可。在满足GPU内存的情况下,寻求GPU利用率最大化,GPU的利用率受读取速度影响较大,也就是数据在cpu和gpu之间的交互。常规情况下调节num_worker的大小,以启动多进程,加快数据读取。根据torch对多进程读取机制,易发生阻断情况,也就是num_worker并不是越大越好。数据读取至GPU的过程中需要对进程序列就行匹配,匹配成功后,再读取下一个进

2020-08-24 16:20:10 624

原创 前路漫漫

今天公元2020年5月12日,疫情致大面积停学停工,而今天只是复苏过程中的其中一天。疫情使人堕落,使人废,使人失去,使人伤。不过在这之下,能让人活下来,也算是上天的恩赐了吧。今天,莫名的伤感,莫名的无措,不知前路何方。我们都是没有打伞的孩子,不断的被生活敦促前行。一事一事,事事皆而不断。不过疫情让很多安排断了,很多计划断了,很多自己应该做的断了。人生芳华,痛失半年。未来不可知,当下有可为。步步为营,望前路得人之所愿。...

2020-05-12 11:03:56 133

原创 Faster-RCNN

每看一次都有新感觉。好文链接:https://zhuanlan.zhihu.com/p/32404424

2019-10-29 10:51:31 140 1

原创 summary of the autumn recruitment

很久没有写博文, 最近经历2个月的痛苦与挣扎,总结以求美好结果。cv岗今年的日子过的都不太好,给自己的菜找个体面的理由吧。只投了CV岗,在最初的互联网招聘阶段,简历写的奇烂,所以没有任何面试邀请,等到9月底,重新完善了一遍,才陆续的接到了面试通知,而对目前的我来说,也仅仅是面试而已。1.凡普金科一个p2p的公司,个人相当抵触这类公司,说流氓公司其实一点也不过分,比收保护费的低一个层次,只有...

2019-10-27 11:11:37 375

原创 算法工程师相关学习资料汇总

深度学习大全:https://github.com/ChristosChristofidis/awesome-deep-learning花书要点:https://zhuanlan.zhihu.com/p/61528654互联网常见面试题:https://www.zhihu.com/question/24964987/answer/586425979leetcode解题之路:https://g...

2019-05-05 17:35:07 223

原创 实习操作 日常

登陆docker: sudo docker exec -it ID bash查看GPU使用: nvidia-smi指定使用GPU: export CUDA_VISIBLE_DEVICES=ID运行shell脚本: source 1.shsh 1.shbash 1.shchmod +x ./1.sh (添加权限) 加 ./1.sh终止进程:kill -...

2019-04-16 18:07:13 317

原创 CNN图像分类网络汇总(one)LeNet,AlexNet,ZFNet

LeNet-5CNN分类网络开端,用于手写字符识别识别率相当高。创建卷积框,设置大小、步长、数量等,对图像进行卷积操作,提取特征的操作,池化降维,全连接分类输出。之后的分类网络都是基于此框架进行的优化。AlexNet作为2012年ImageNet分类冠军,把LeNet发扬光大,运用了Relu,Dropout,LRN等trick,并且使用GPU加速。使用Relu 对梯度衰减进行加速,并...

2019-04-01 12:00:29 1013

原创 opencv视频输入读取

视频输入import cv2#设置视频捕捉cap = cv2.VideoCapture(0) #与id为0的摄像头连接while True: ret,im = cap.read() #ret检测是否读入帧 blur = cv2.GaussianBlur(im,(0,0),5) #高斯平滑 cv2.imshow('camera blur',blur) key =waitKe...

2019-02-26 22:02:34 428

原创 pytorch保存加载模型

保存加载模型参数torch.save(the_model.state_dict().PATH)the_model = TheModelClass(*args,**kwargs)the_model.load_state_dict(torch.load(PATH))保存加载整个模型torch.save(the_model,PATH)the_model =torch.load(PATH...

2019-02-26 15:24:05 158

原创 openCV读取像素值三种基本方法

uchar value =grayim.at<uchar>(i,j);for ( int i = 0 ;i<grayim.rows;++i) for(int j =0;j<grayim.cols;++j) grayim.at<uchar>(i,j) = (i+j)%255;for( int i=0;i<colorim.rows;++i) for

2019-02-23 13:57:03 5377

转载 win10+anconda+tensorflow-gpu 简洁安装版(无需单独安装cuda和cudnn)

anconda官网下载3.6版本,正常安装,完成后打开anaconda prompt先配置清华镜像的环境conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/conda config --add channels https://mirrors.tuna.tsinghua.edu...

2019-02-13 20:20:37 1238 1

原创 TFrecords的生成和读取

import tensorflow as tfimport numpy as npimport osimport cv2import matplotlib.pyplot as pltimport randomdef get_example_nums(tf_records_filenames): nums= 0 for record in tf.python_io.t...

2019-01-23 11:13:38 408 1

转载 批量修改文件名称 and 生成图片+标签的TXT文件

批量修改文件名称import os def rename(file_dir,name): '''将网上爬下来的图片重命名(更好的观看)''' '''第一个参数是目标文件名 第二个参数是图片的名称''' i=0 for file in os.listdir(file_dir): '''获取该路径文件下的所有图片''' ...

2019-01-21 16:20:47 490

原创 剑指offer——链表相关操作 c++

单向链表的节点定义:struct ListNode{ int m_nValue; ListNode*m_pNext;};在链表末尾添加一个节点:void AddToTail(ListNode**pHead,int value){ ListNode*pNew = new ListNode(); pNew->m_nValue = value; ...

2019-01-09 20:58:58 153

原创 剑指offer——替换字符C++

先统计需要替换字符的个数,然后给出相应的空间以供替换。例中采用%20替换空格。常规逐个替换会涉及字符串多次后移以保证所需空间,采用提前提供所需空间,倒序替换可以极大减少字符串替换问题。void ReplaceBlank(char string[],int length){ if(string ==nullptr || length<=0) return ...

2018-12-30 02:17:21 171

原创 剑指offer——有序二维数组中查找数字 C++

根据有序二维数组规律,上小下大,左小右大bool Find(int*matrix,int rows,int columns,int number){ bool found = false; if(matrix != nullptr && rows>0 && column >0) { int row = 0; int column =co...

2018-12-28 15:48:05 140

原创 剑指offer——数组中的重复数字C++

判断是否有重复数字(数字范围0~n-1)寻找数组下标与数值对应,若对应则后移比较,发现相等则返回 turebool dyplicate(int numbers[],int length,int* duplication){ if (numbers ==nullptr || length<=0) { return false; } for (int i=0 ; i <l...

2018-12-27 14:28:30 243

原创 单链表的添加 删除 合并 Python

节点实现:class SingleNode(object): def __init__(self,item): self.val = item self.next = None指定位置添加元素:def insert(self,head, pos,item): node = SingleNode(item) cur = self.head count = 0 whi...

2018-12-14 12:47:53 199

原创 二叉树的遍历 python实现

先序遍历——根节点→左子树→右子树递归形式:def preorder(self,root): if root == None: return print(root.val) preorder(root.left) preorder(root.right)非递归形式:(利用栈的性质)def preorder(self,root): stack = [root] whi...

2018-12-09 14:09:19 207

原创 Tensorflow中相关函数理论

基本概念:使用图(graphs)来表示计算内容,图中的节点称为op(operation),一个op获得0个或者多个Tensor,执行运算使用会话(Session)的上下文(context)中执行图,,图必须在会话里被启动使用tensor表示数据,可以看作一个n维的数组或列表通过变量(Variable)维护状态使用feed 和fetch 可以任意操作赋值或者从中提取数据softmax:...

2018-11-13 21:03:30 196

原创 Tensorflow

安装:安装anaconda3.0以上版本,打开anaconda prompt,输入anaconda search -t conda tensorflow 查看一个操作系统对应的版本号,然后选择对应的linux 或者win的对应的Name。例如win-64是 dhirschfeld/tensorflow。然后输入 anaconda show dhirschfeld/tensorflow 查看安装...

2018-11-07 15:36:37 129

原创 剑指offer——二叉树中序的下一个节点

二叉树的问题一般采用两种方式,一种根据需求一步一步探讨,第二种,将二叉树遍历至数组,对数组操作。第一种,根据中序遍历,指定节点的下一个一般为右节点,子节点的左节点或者父节点:class Solution: def GetNext(self,pNode): if pNode.right: p=pNode.right while p.left: p=p.left r...

2018-11-06 10:30:58 158

原创 Linux基础操作命令

ls 显示当先文件以及文件夹的名字

2018-11-01 18:15:56 127

原创 剑指offer——扑克牌顺子

先统计王的数量,再把牌排序,如果后面一个数比前面一个数大于1以上,那么中间的差值就必须用王来补了。看王的数量够不够,如果够就返回true,否则返回false。class Solution: def IsContinuous(self,numbers): if not numbers: return False numbers.sort() zeroNum=numbers.co...

2018-10-25 17:30:05 68

原创 剑指offer——圆圈中最后剩下的数

本题属于约瑟夫问题。核心是用取余的方式表示所停的位置class Solution: def LastRemaining_Solution(self,n,m): if n<1 or m<1: return -1 con =range(n) f=-1 s=0 while con: k=(s+m-1)%n f=con.pop(k) n-=1 ...

2018-10-22 12:24:13 90

原创 剑指offer——和为s的连续正整数

由于连续正整数的个数不确定,所以用两个角标,来控制个数,最后求和。针对数值操作:class Solution: def FindContinuousSequence(self, tsum): l, r, sum, res = 1, 2, 3, [] while l<r: if sum>tsum: sum ...

2018-10-18 14:37:23 116

原创 剑指offer——数组中只出现一次的数字

第一种:找出成对数值并取出,剩下就为出现一次的。class Solution: def FindNumsAppearOnce(self,array): if not array: return [] res=[] count=0 while len(array)>0: p=array.pop() if p in array: array.rem...

2018-10-17 15:58:52 84

原创 剑指offer——平衡二叉树判定

针对于树的操作,大部分都是用递归操作的,根据递归运算,要确定重复循环的过程以及截止条件,不过针对二叉树,还是比较难思考的。class Solution: res=True def IsBalance_Solution(self,pRoot): self.judge(pRoot) return self.res def judge(self,root): if not root:...

2018-10-17 10:17:42 94

原创 剑指offer——二叉树的深度

二叉树的运算一般用常规的递归方法,代码简洁。class Solution: def TreeDepth(self,pRoot): if not pRoot: return 0 count=max(self.TreeDepth(pRoot.left),self.TreeDepth(pRoot.right))+1 return count非递归方法:class Soluti...

2018-10-16 09:59:21 87

原创 剑指offer——数组在排序数组中出现的次数

记录次数,直接用data.count(k)也通过了。或者常规算法,出现有序用二分查找。class Solution: def GetNumberOfK(self, data, k): # write code here if len(data)==0: return 0 count=0 low=0 ...

2018-10-15 10:18:17 72

原创 剑指offer——两个链表第一个公共结点

这还是基于链表的操作,思路理清是比较关键的。1.基于栈class Solution: def FindFirstCommonNode(self,pHead1,pHead2): if not pHead1 or not pHead2: return None s1=[] s2=[] while pHead1: s1.append(pHead1) pHead1...

2018-10-14 21:52:49 102

转载 skiti-learn GBDT类库

skiti-learn中有两个,GradientBoostingClassifier(分类)和 GradientBoostingRegressor(回归)。两者参数基本相同,并且参数类似Adaboost,分为两类参数,Boosting框架参数和弱学习器参数即CART回归树的参数。GBDT类库boosting框架参数GradientBoostingClassifier和GradientBoo...

2018-10-11 16:16:07 249

原创 剑指offer——数组中的逆序对

本题在牛客上用python编程是无法顺利通过,参考多种方法仍然无效。下面一种方法,感觉还是很优秀的,不过通过率50%class Solution(): def InversePairs(self,data): count=0 datasorted=[] for i in data: datasorted.append(i) datasorted.sort() for ...

2018-10-11 13:30:04 134

原创 剑指offer——第一个只出现一次的字符

这个题在剑指offer里属于常规题,主要看编程语言的运用的如何巧。python 常规操作,用count计数,index输出位置class Solution(): def FirstNotRepeatingChar(self,s): if len(s)<1:return -1 for i in s: if s.count(i)==1: return s.index(...

2018-10-10 13:10:07 121

空空如也

空空如也

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

TA关注的人

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