自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(60)
  • 资源 (7)
  • 收藏
  • 关注

原创 理解MMLAB开源代码就从这开始:注册器Registry

MMLAB源码解读系列:理解Registry注册器的实现原理

2022-05-28 19:02:44 499 2

原创 工作两年的算法工程师的小反思(1)

工作两年的算法工程师总结,纯干货~

2022-05-27 09:48:10 504 1

原创 实例分割(SOLOv1|ECCV2020)——end2end的实例分割方案

SOLO:一种新的端到端实例分割方案论文地址、代码地址1.SOLO(v1)简介实例分割是给出每个目标对应的mask,与语义分割的区别是,在语义分割里面只需要区分这个点是“猫”还是“狗”,实例分割里面是要判断这个是猫1还是猫2,即对同一类别的不同目标需要进行细分。所以在实例分割里面常用的两种方法为(1)top-down:先根据检测,然后在每个检测框里面进行分割 (2)bottom-up先分割,然后通过后处理来处理同一类别的不同实例,常采用聚类处理。SOLO中的思路非常清奇,抛除了之前bottom.

2022-05-15 20:10:06 940

原创 最实用的markdown教程

说明:本教程只有markdown的基本用法,但是我可以负责任的说,我markdown用到现在就这两张图里的内容就够用了。对于新手来说,看这两张图就够了!废话不多说,看图即可!基础用法进阶图表不管是学代码还是学一个工具,我感觉都是有个example学起来就轻松很多,输入的知识也更效率。如果忘记了回头查也非常方便。就这两张图里的markdown语法,我用了几年了。希望能够帮助到大家!!!...

2022-05-11 09:37:35 293

原创 VSCODE中编辑中文latex文档出现参考文献标记是问号

原因很多种这个问题弄了一个下午,网上查到的方案很多,我先说下我的解决方案。方案1检查参考文献列表中是否有引用错误,比如标签中不能带空格(我的错误),还有是否出现少了 } 号等等。方案2设定编译的顺序:latex->biblatex->latex->latex。参考文章建议latex写文章使用biblatex非常方便,但是latex里面的格式、符号等等很多,还是直接...

2020-03-16 22:42:18 1890

原创 UnicodeWarning: Unicode equal comparison failed to convert both arguments to Unicode[python中文字符串比较]

UnicodeWarning: Unicode equal comparison failed to convert both arguments to Unicode这个报错是编码问题导致的,json数据中有中文,在python里面对其与中文做比较的时候报错。解决的思路在文件头加上# -*- coding:utf-8 -*-import sysreload(sys)sys.setd...

2019-06-28 15:07:15 10593 1

原创 彻底搞懂python中*和**的用法

*和**的用法看到太多了,总结下其中的一些细节【1】*的用法*是可以接受任意数量的参数,比如如下代码:x=['x','y','z','q']def m(*args): print(args)m(x[0],x[1],x[2],x[3])#args:('x', 'y', 'z', 'q')【2】**的用法而**可以接受任意数量的指定键值的参数,比如如下代码:def m(**...

2019-05-07 19:49:29 909

原创 torchvison源码剖析【1】transform.ToTensor()

PIL转tensor:def pil2tensor(): img=Image.open(img_path) totensor=torchvision.transforms.ToTensor() #torchvision.transforms.ToTensor()函数自动转格式 img=totensor(img) img=img.cpu() prin...

2019-03-28 23:21:04 3907

原创 pytorch中stack和cat的以及to_tensor的坑

初入计算机视觉遇到的一些坑1.pytorch中转tensorx=np.random.randint(10,100,(10,10,10))x=TF.to_tensor(x)print(x)这个函数会对输入数据进行自动归一化,比如有时候我们需要将0-255的图片转为numpy类型的数据,则会自动转为0-1之间2.stack和cat之间的差别stackx=torch.randn((1,...

2019-03-24 22:45:20 2635

原创 python中在发生函数调用时出现的相对路径更改问题

为知笔记的复制粘贴过来不太好用啊。。。。只能截图了

2019-01-05 21:12:00 797

原创 二叉树遍历(递归+非递归+层序)看这个一个就够了

#include<iostream>#include <vector>#include <queue>#include <stack>using namespace std;struct TreeNode { int val; TreeNode *left,*right; TreeNode(int x):val(x)...

2018-12-16 11:25:34 141

原创 ubuntu18.04+CLion配置GLFW

参考文章:https://blog.csdn.net/zangle260/article/details/49002525 第零步:下载glfw: 百度, 下载解压好,暂且成目录名字为 glfw3-3.x.x第一步: 编译glfw: (1): 安装依赖库,sudo apt-get build-dep glfw, sudo apt-get install cmake...

2018-08-18 11:44:58 1954 1

原创 ubuntu18.04LTS下在Clion2018中配置OpenGL运行环境

安装OpenGL 部分转载自简书作者sudo apt-get install build-essential libgl1-mesa-devsudo apt-get install freeglut3-devsudo apt-get install libglew-dev libsdl2-dev libsdl2-image-dev libglm-dev libfreetype6-dev...

2018-08-14 21:40:49 1001

原创 opencv-python API中的findContours、drawContours与hierachy解析

官方文档:官方文档对hierachy的解释 简单的使用(demo1):def draw(): image=np.zeros((300,300,1),dtype=np.uint8) cv2.rectangle(image,(10,10),(100,100),(255,255,255),10) cv2.rectangle(image, (100,10), (200,2...

2018-08-14 16:29:43 2864

原创 opencv-python提取二维码

主要算法: 利用二维码的三个定位点来找到提取二维码 算法的主要思想和C++参考该博主:C++ Opencv提取二维码 该博主的算法是不完整的。 我的算法思想: 1)定位点的轮廓有三层轮廓 2)每个定位点的轮廓中心点一样的 3)三个定位点可以围成一个等腰直角三角形 算法待优化的地方 1)只能识别拍摄的比较清楚的二维码,拍摄位置的角度偏差比较小 2)只能识别出一个二维码# -*...

2018-08-14 15:01:55 7836 8

转载 激活函数比较总结(relu、tanh、sigmoid、softmax)

比较好的解释其他链接: 链接1 https://blog.csdn.net/piaodexin/article/details/77162766 (http://www.datalearner.com/blog/1051508750742453)

2018-08-13 13:52:15 2545

原创 opencv python API:各种画图函数实现以及参数说明

# -*- coding=utf-8 -*-import osimport numpy as npimport cv2# Create a black imageimg = np.zeros((512,512,3), np.uint8)# Draw a diagonal blue line with thickness of 5 px'''参数为:图像,左上角点,右下角点,颜色,...

2018-08-12 21:49:32 252

原创 python使用OS进行简单的文件处理

用os来读取文件时候对路径的分割path='/home/kellen/PycharmProjects/learnJson/py_aiplat_demo/t.txt'分割出最后一个文件last_file=os.path.split(path)[-1]分割文件basename的前缀和后缀name,ext=os.path.splitext(basename[0],os.pat...

2018-08-12 14:37:36 224

原创 Opencv与Pillow图像格式转换以及转为numpy数组

首先PIL.Image模块有函数Image.fromarray()函数 cv2有cv2.cvtColor()函数 numpy有numpy.asarray()函数值得注意的是cv2用的是BGR,PIL用的是RGB# -*- coding=utf-8 -*-import osimport cv2from PIL import Image'''opencv中图片格式为BGR...

2018-08-11 21:03:52 7581

原创 python装饰器decorator

装饰器的作用总结起来就是不对原有代码进行更改的情况下可以动态地添加业务。好比天气冷了,我只要再穿一点就可以了,而不用把原来穿的东西换掉。 首先要理解在python中一切都是对象的概念,函数名只是一个标签而已,函数名可以用来彼此之间赋值。 对Python中函数理解深刻点就看这篇文章>>> def now():... print('2015-3-25')...&...

2018-08-11 20:11:28 121

原创 python中的lambda、map和reduce

map和reduce可以当成是一种语法糖,简化我们的代码lambda匿名函数有个限制,就是只能有一个表达式,不用写return,返回值就是该表达式的结果。 用匿名函数有个好处,因为函数没有名字,不必担心函数名冲突。此外,匿名函数也是一个函数对象,也可以把匿名函数赋值给一个变量,再利用变量来调用该函数:>>> f = lambda x: x * x>&gt...

2018-08-11 16:14:28 406

原创 python生成器

相当于一种动态加载的形式,比如我们求一个斐波那契数列,这个是一个无限长度的序列,使用列表肯定放不下,所以可以使用生成器来解决。def fib(max): a, b = 0, 1 for _ in range(max): yield b a, b = b, a + b return 'done'这个fib函数就变成了一个genera...

2018-08-11 15:07:03 779

原创 python中for循环面面观

基础用法a=[1,2,3]for i in a: print(i)#输出1 2 3如果需要同时获取下标和元素a=[a,b,c]for i,value in enumerate(a): print(i,value)#输出0 a# 1 b# 2 cfor循环可以对所有可迭代对象使用(str,list,dict,tupple等等都可用for循环...

2018-08-11 10:39:13 206

原创 python中赋值引用、浅拷贝、深拷贝

python中一切赋值都是引用比如说在list中:t=[1,2,2]def main(n): n[0]=3 return nmain(t)print(t)'输出是t[3,2,2]'同样,使用return的返回值也是一样的结果,因为无论怎么说,在python中的赋值都是引用,变量本身就是一个标签,只是我们可以通过变量取访问内存中的数据而已。 在实际的使用...

2018-08-10 17:08:16 172

原创 使用tensorflow object_detection API完成目标检测

硬件环境操作系统:ubuntu16.04LTS 显卡:GTX1080Ti 10G显存 内存32G 代码托管在码云,因为github实在是太慢了,老是timeout,翻墙也不行,搞了半天搞不定,突然看到中国有码云这个神器,以后就用码云来放代码了。环境配置:基于miniconda创建的python2.7环境 自己写一些脚本是用python3.6,训练环境是用python2.7,不过...

2018-08-08 15:49:22 2600 1

原创 Unity中类的实例化注意事项

官方API: 如果要将该物体实例化并设置它的父物体,要调用第二个API; 如果先直接实例化再设置父物体会直接报错;既然设置父物体:一定要用transform.localposition 在需要查找父物体的时候,千万不能放在update中,Find方法不要放在update或FiexedUpdate中...

2018-04-04 19:57:28 2177

转载 Unity中button事件监听的四种方式

UGUI 可视化创建以及关联事件很方便, 动态创建可以利用创建好的 Prefab 进行实例化, 只是在关联事件上有些复杂, 本文总结了几种给按钮绑定事件的关联方式.1. 可视化创建及事件绑定 # Step 1 : 通过 Hierarchy 面板创建 UI > Button.Step 2 : 创建一个脚本 TestClick.cs, 定义了一个 Click 的 public 方法...

2018-04-01 16:37:35 25284 1

原创 大数相乘的问题——大数阶乘(整数)

使用数组进行模拟,记录进位,最后得到的进位再压入到数组内。#include<iostream>#include<vector>using namespace std;int main() { vector<int>ans; int x; while(cin>>x) { ans.clear();...

2018-02-11 20:38:17 194

原创 机器人的运动范围——剑指offer大结局。。

题目 地上有一个m行和n列的方格。一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和大于k的格子。 例如,当k为18时,机器人能够进入方格(35,37),因为3+5+3+7 = 18。但是,它不能进入方格(35,38),因为3+5+3+8 = 19。请问该机器人能够达到多少个格子? 本质就是一个dfs问题 直接上代码

2018-01-31 15:39:47 305

原创 在矩阵中找到字符串——牛客网,剑指offer(矩阵中的路径)

题目描述: 请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子。如果一条路径经过了矩阵中的某一个格子,则该路径不能再进入该格子。 例如 a b c e s f c s a d e e 矩阵中包含一条字符串”bcced”的路径,但是矩阵中不包含”abcb”路径,因为字符串的第一个字符b

2018-01-29 13:50:23 587

原创 求二叉排序树的第k个节点

记录下自己愚蠢的一天 首先题目一看都能想到要用中序遍历打方法int index=0;TreeNode* KthNode(TreeNode* root, int k){ if(root != NULL) { //中序遍历寻找第k个 KthNode(root->left,k); index++; if(index == k)

2018-01-26 16:49:35 380

转载 C++面向对象中的坑和细节

必须使用初始化列表的情况,访问父类private变量时也需要 初始化列表中初始化顺序和成员变量声明顺序一致,而不是和初始化列表中顺序一致C++中struct和class区别 1.成员类型上:class中默认是private,struct中默认是public; 2.继承时:class是默认private,struct默认public 3.其他:class可以表示模板类型,struc

2018-01-24 19:36:07 174

原创 C++字符串问题

补充一个基础问题char acX[]="abc";char acY[]={'a','b','c'};char *szX="abc";char *szY="abc";这四个字符串有区别 acx,acy内存分配在堆上,是两个不同的字符串,前者最后一位是’\0’,后者最后没有’\0’ szx,szy都是指针,指向同一块内存,这块内存就是文字常量“abc”(这个最后也有’0’,该内存

2018-01-23 22:44:02 436

转载 unity中awak,start,update之间的关系

转载地址 正式开始学习Unity了。当然,第一个遇到的问题就是Awake和Start的问题,之前在网上查过一下这两者的区别,简单记忆了一下,认为自己知道了两者的区别。不过实际用起来,发现对于这两者到底是什么区别,心里还是没底,而且最关键的是木有Unityt的源代码,所以我们只能是通过文档或者是别人的blog来了解,当然,还有一个办法就是自己做一下实验,实践是检验真理的唯一标准。一.官方解释

2018-01-22 13:06:24 12103

原创 删除链表的重复节点

1-2-2-3-4-4-4-5要变成1-3-5 没有头节点 方法一:非递归ListNode* deleteDuplication(ListNode* pHead) { if(pHead==NULL||pHead->next==NULL) return pHead; ListNode *pre=NULL;

2018-01-22 11:59:42 193

原创 有父节点二叉树找中序遍历后继节点

数据结构精妙至极! 求后继节点: 1)为NULL,返回NULL; 2)节点有右子树,则返回右子树的最左节点; 3)没有右子树则向父节点求 **这时候有两个情况,如果该节点是父节点的左节点,则返回父节点。 否则判断该父节点,若该父节点是其父节点的左节点则返回该父节点,否则再判断它的父节点……这样一直到根节点,如果还没有得到结果,则返回为NULL**/*struct Tree

2018-01-20 22:42:11 494 1

原创 C++中的指针和引用(非扫盲博文)

考研过后又重新捡起C++的书本开始学习,很多以往学到的现在却又有所忽略,尤其是C++中指针,引用的问题,这是C++的精妙之处,也是C++难以掌握的一个非常关键的点。 总结得不是很全,这个要是所有的都写上,那花的时间就多了去了,比较适合已经对指针和引用有了一定了解的人看 总结下C++中关于指针和引用的那些事。 指针概念:int *c;int a=2;c=&a;//指针就是地址,就是指

2018-01-18 22:30:55 206

原创 约瑟夫环问题

数组模拟队列:class Solution {public: int LastRemaining_Solution(int n, int m) { if(m1||n1)return -1; vectorint> vect(n,1); int i=-1,step=0, count=n; while(count

2018-01-18 10:04:05 179

转载 位运算实现整数加减乘除(计算机组成原理内容)

位运算的题目很多,这个就厉害了,转载博客以学习编程之法。 听同学百度二面中,不准用四则运算操作符来实现四则运算。一想就想到了计算机组成原理上学过的。位运算的思想可以应用到很多地方,这里简单的总结一下用位运算来实现整数的四则运算。 大佬带你看位运算怎么实现四则运算! 加法运算: int AddWithoutArithmetic(int num1,int num2) { if(nu

2018-01-16 21:32:25 1448

原创 整数中1出现的次数

题目:求出1~13的整数中1出现的次数,并算出100~1300的整数中1出现的次数?为此他特别数了一下1~13中包含1的数字有1、10、11、12、13因此共出现6次,但是对于后面问题他就没辙了。ACMer希望你们帮帮他,并把问题更加普遍化,可以很快的求出任意非负整数区间中1出现的次数。第一次做粗略地看了下解答,感觉很烦就跳过了,现在又回头去看,终于搞懂了,数学好真的很重要!!!! 整数中1

2018-01-15 15:39:54 132

python+numpy实现自适应阈值分割函数OSTU

python+numpy实现自适应阈值分割函数OSTU,巩固编程基础以及图像处理基础

2018-12-21

python+numpy实现均值滤波

算法复习实践,使用python和numpy实现均值滤波算法,巩固编程基础

2018-12-21

python+opencv3.4.3提取二维码区域

python+opencv3.4提取图片中的二维码区域,有简单的算法思路介绍。链接 https://blog.csdn.net/kellen_f/article/details/81667315

2018-11-21

导向滤波算法论文

导向滤波算法论文,完整版本,有利于学习其中的技术细节。

2018-11-21

ctpn文字检测算法论文

ctpn是2017年cvpr的场景文本检测算法,我贡献一篇论文

2018-07-30

H5粒子图片浏览器源码(仅在火狐下测试过)

暑期短学期之作,在火狐浏览器下可以完美运行,谷歌浏览器下也试过,但是布局还是有点偏差。但是仅供学习之用。

2017-09-13

H5纯canvas逻辑模拟植物大战僵尸源代码

代码中有详细注释和说明,原创,对于新手来说值得学习,不仅提高对canvas熟悉程度,还可以锻炼逻辑思考能力

2016-12-25

空空如也

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

TA关注的人

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