自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(186)
  • 资源 (11)
  • 收藏
  • 关注

原创 设计模式

工厂模式适合于同种类型的产品。class Tank {public: virtual string type() = 0;};class Tank59 :public Tank {public: string type() override { cout << "tank59::" << endl; return "Tank59"; } };c...

2019-09-09 21:50:54 135

原创 typedef和using

typedef :后面用变量定义的方式,指定变量名为类型的别名。typedef定义的是类型别名,所有使用别名的地方都等价于使用类型,也会进行语法检查。函数指针: typedef void (*f) (int, const std::string&); f func = 函数地址;数组的引用: typedef int(&Arr)[10]; int a[10]; Ar...

2019-09-09 08:55:41 338

原创 c++对象内存布局

基础知识内存分为:全局静态存储区,代码区,常量存储区,堆,栈。其中全局静态存储区存放全局变量和所有静态变量(类成员和外部定义的静态变量)。一切函数实现存放在代码区,栈存放函数体内部的局部变量,函数参数,返回值。成员变量:静态成员变量存在全局静态存储区,不占用对象内存。非静态成员变量存储于对象内存,还要加上对齐的字节。成员函数:非静态成员函数:函数参数列表中有默认的指向对象指针的参...

2019-09-08 11:37:29 200

原创 STL中vector的简单实现

new实现了分配内存和初始化的整合,但是在分配大块内存时,对所有位置都调用构造函数是低效的,应该在使用时才初始化该位置。所以必须单独进行内存分配和初始化。依赖于allocator的T* allocate(size_t); //分配内存construct(T*, args);//构造函数destroy(T*);//析构deallocate(T*, size_t);//释放内存cla...

2019-09-05 00:18:48 173

原创 hash表原理

#include <iostream>#include <string>#include <stack>#include <queue>#include <vector>#include <unordered_map>#define NULL 0using namespace std; //new包括分配内存...

2019-09-04 02:38:40 171

原创 优先队列,二叉堆以及topK问题

1.优先队列是按照优先级排序的队列,优先级大(默认)的先出。2.二叉堆是一颗完全二叉树。树的任意节点值大于等于其子节点:最大堆。树的任意节点值小于等于其子节点:最小堆完全二叉树通常使用数组存储,节点之间对应的下标关系是:某一结点下标i,则父节点下标[i / 2], 左节点2 * i ,右节点2 * i + 1.可以认为优先队列就是实现大顶堆或小顶堆的数组。这是一个大顶堆,所以说优先队...

2019-09-03 20:35:05 302

原创 罗马数与十进制整数相互转换

roman和int都是高位在左低位在右。roman不是进位运算,roman表示的数是每个字母组合所表示数值之和。 所以罗马转整数:把每个字母组合表示的值加起来就是整数;整数转罗马数:计算出整数“千百十个”位上的数分别用罗马字母表示就是罗马数。roman->int class Solution { //但要注意小的罗马数出现在大罗马数左边是大罗马减小罗马,由于之前遍历时已经把...

2019-08-30 15:44:09 182

原创 atoi实现

请你来实现一个 atoi 函数,使其能将字符串转换成整数。首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。当我们寻找到的第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字组合起来,作为该整数的正负号;假如第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成整数。该字符串除了有效的整数部分之后也可能会存在多余的字符,这些字符可以被忽...

2019-08-30 11:15:59 306

原创 滑动窗口法 求解最优子序列

通常动态规划解决的最优只能是数值最优,如满足条件的子序列的最小长度,最大和等等。但要求满足条件的最小长度子序列,最大和的子序列就没法做了,可以用滑动窗口法。和大于目标值的最小子序列209.Minimum Size Subarray Sum找到和大于等于target的最小尺寸子数组,返回尺寸大小。如果按照dp做,复杂度为O(n^2),有O(n)的算法,定义左右指针类似于“毛毛虫”移动,先右指...

2019-08-30 09:57:59 616

原创 python基础

值传递与引用传递根据参数是可变对象或不可变对象来判断。可变对象包括list, dict, numpy数组,不可变对象:值,字符串,元组。对于不可变对象会建立对象的副本,是值传递,可变对象直接在原地操作,是引用传递。深拷贝与浅拷贝:切片操作:浅拷贝 a[1:]copy.copy():浅拷贝对象的直接赋值:浅拷贝 如numpy数组的直接赋值。深拷贝:copy.deepcopy(...

2019-08-29 22:49:32 104

原创 网络

OSI七层协议和五层协议各层常见协议:物理层:IEEE802协议数据链路层:MAC协议网络层:IP, arp地址解析协议运输层:Tcp,udp会话层:SQL表示层:JPEG,MPEG应用层:SMTP邮件地址解析, http, ftp Tcp与Udp区别tcp是面向连接的,可靠的数据流传输,udp是非连接的,不可靠的数据报传输。tcp连接是点到点的,而udp...

2019-08-25 00:39:00 149

原创 生产者消费者模型以及死锁问题

消费者与生产者由于存在于不同的线程,却要访问同一资源,所以容易访问冲突。三种关系实现安全访问:消费者与消费者之间 互斥关系生产者与生产者之间 互斥关系生产者与消费者之间 互斥同步关系其中互斥量(mutex)实现互斥关系。互斥量是一个标志量,一个线程对互斥量加锁,其他线程在对其加锁时就会阻塞从而实现互斥。条件变量实现同步,但要借助互斥量。当阻塞条件满足时,条件变量阻塞当前线程,并解...

2019-08-24 16:46:50 3147

原创 进程与线程

线程与进程的区别线程是进程的一部分,线程又被称为轻量级进程。系统为进程分配内存资源,却不会为线程分配资源,多个线程共享所在进程的资源。 协程协程是一种用户态的轻量级线程,协程的调度完全由用户控制。协程拥有自己的寄存器上下文和栈。协程调度切换时,基本没有内核切换的开销,所以上下文的切换非常快。 进程间的通信方式及其优缺点(1)管道(pipe)(2)信号(signal)...

2019-08-24 11:45:46 155

原创 C++基础知识总结

堆与栈的区别c++中内存分为栈,堆,全局/静态存储区,常量存储区, 代码区。栈:(1)由编译器负责分配释放,用于存储静态变量,函数参数等。 (2)内存连续,先入后出,不会产生内存碎片。堆: (1)由程序员负责分配释放,如new, malloc生成堆内存。如果忘记回收会造成内存泄漏,直到程序结束才会被释放掉。(2)内存不连续,频繁的new/delete会产生大量碎片,降低程序效率。指...

2019-08-15 18:16:58 521

原创 大端与小端模式

大端模式:低地址存储高字节,高地址存储低字节;小端模式:低地址存储低字节,高地址存储高字节。如:0x1234,注意计算机是以字节为基本存储单位的。大端: 0x12 0x34小端:0x34 0x12所以判断大小端的方法:int main(){ unsigned short a = 0x1234; unsigned char* ch = (unsigned char*)&a;...

2019-08-15 11:43:22 1126

原创 类,结构体,联合体内存大小分析

结构体内存的数据经过对齐后,那么CPU可以整块地将内存数据读取进来,提高效率。结构体内存分析满足两点:(1)计算变量偏移量:该变量的偏移量必须是min(默认对齐参数,其类型所占字节数)的整数倍。(2)计算结尾偏移量:最终所占字节数必须是成员所占最大字节数的整数倍。所以说,结构体或者类中成员变量按照所占字节递增或递减顺序排放是最省内存的。默认对齐参数:在window VS中为8; 在l...

2019-08-15 10:15:08 406

原创 疲劳驾驶检测

疲劳驾驶检测结合眼睛的闭合状态和嘴巴闭合状态,综合判断驾驶人员的疲劳状况。Qt编写界面,tensorflow,opencv和dlib实现人脸的检测和特征点提取。github地址:https://github.com/chunhui204/fatigue-detection运行流程:主线程:打开摄像设备,将图片加入处理队列。线程1:从图片队列中获得图片进行人脸的检测和追踪,并将检测结果加入...

2019-08-11 22:39:35 4590 9

原创 记录tensorflow c++接口编译

tensorflow版本:r1.9cuda: 9.0cudnn: 7.3.0bazel: 0.15protobuf: 3.5.0 (版本要与tf对应)eigen:使用tensorflow脚本生成。nccl: 2.4.8步骤:(基本参考:https://blog.csdn.net/qq_37541097/article/details/86232687)安装protobufsu...

2019-07-28 02:11:54 470 1

原创 【arXiv2016】Accurate Text Localization in Natural Image with Cascaded Convolutional Text Network

Introduction 自底向上方法(bottom-up)的流程:  - 通过MSER或SWT检测器检测字符或笔画特征。低级特征(像素级)不稳定,易受光照等影响。- 使用字符级分类器滤除非文本的假阳性检测。 由于上一步会产生几十倍文本区域数量的非文本区,所以会给分类器带来巨大挑战(可能是由于不平衡问题)。- 将剩余字符区域聚合成文本行。需要引入启发式规则和几何特征,以及手工设计的聚合...

2019-07-24 15:35:57 359

原创 Scene Text Detection via Holistic, Multi-Channel Prediction

这是将文本检测看做语义分割问题的第三篇(前两篇是text detection with FCN和cascade CNN),模型运行在整张图上产生全局的像素及预测。本文提取了文本的三种特征:文本块特征、字符区域和两者关系,和text detection with FCN相似,只是改进了字符区域聚合的方法。本文思路:使用一个网络产生文本块,字符区域和连接方向的显著图,将字符区域手工聚合成文本行,并结...

2019-07-24 15:30:20 825

原创 CVPR2016】Multi-Oriented Text Detection with Fully Convolutional Networks

Introduction通过手工设计的字符特征训练字符分类器,以及通过文本行的对称性、自相似性来区分text/non-text,可以看出局部信息(字符区域)和全局信息(文本块)都对文本检测有帮助作者认为在文本检测中使用字符分类器的思路(或者应该说是bottom-to-up思路)已经行不通,原因有:字符特征易受到不均匀光照、低分辨率和不连续笔画的影响;相似于字符的背景,树叶,砖块等;字符本...

2019-07-24 15:27:16 460

原创 RefineDet

1 introduce目标检测中类别不平衡是很常见的问题,无论在one-stage还是two-stage一二阶段negative bbox数量都远高于positive。这无法直接计算类别loss, 很常见的是使用negative hard mining挑选出一部分negative框进行计算。在RPN中我们使用随机挑选的方式,保证参与计算loss的正负样本比1:1,在SSD中(忘了再看一看),本文...

2019-07-24 15:22:13 431

原创 Spatial-Transform-Network

Introduce传统pooling层:把feature map分割成网状cell并从每个网格中简化信息。它会丢弃75%(2x2)的激活特征,在位置信息不重要的前提下会增加空间的鲁棒性,不管目标出现在什么位置都能获得相似的特征。但是对于某些任务位置信息是相当重要的,比如在猫分类器中,就无法知道胡子相对于鼻子的位置(在同一cell被池化)。池化kernel 是局部的,固定的,空间不变性要在...

2019-07-24 14:38:55 475

原创 Arbitrary-Oriented Scene Text Detection via Rotation Proposals

bounding box表示使用(x,y,w,h,θ)(x,y,w,h,\theta)(x,y,w,h,θ) 四点坐标方式表示bbox,其中(x,y)(x,y)(x,y) 为bbox中心坐标,不是左上角坐标,因此不用考虑文本方向降低了标注难度;w,hw,hw,h 分别为长边,短边;(旋转bbox这样定义,对水平bbox水平方向为w垂直方向h)角度范围只要覆盖180度即可,关键在于如何取角...

2019-07-24 14:34:50 443

原创 STN-RPN

STN层能对扭曲输入做放射变换,据说能很大程度上提高检测精度,做了一些STN和RPN结合的调研。Region Based CNN for Foreign Object Debris Detection on Airfield Pavement应用性论文,创新不大主要应用价值高。算法上没什么创新理论部分就得把各个模块的内容在复述一遍。[外链图片转存失败(img-uKieCbSQ-1563938...

2019-07-24 11:23:38 204

原创 tensorflow笔记

维度第一个括号里面的每一项是第一维的元素,再进一层括号中的项是第二维的元素,最后一维的元素是最后一层括号中单个的数字。后面的维度作为前面维度的项, 当前面维度的元素修改或复制后,后面维度的元素也是跟着变得。a = np.arange(2*4*4)b = a.reshape(1,4,4,2) #应该这样按反序来理解:最后一个2是一个只有2个元素的向量,最后的4,2代表4...

2019-07-24 11:21:36 111

原创 STN text detection

文本检测和一般目标检测的不同文本线是一个sequence(字符、字符的一部分、多字符组成的一个sequence),而不是一般目标检测中只有一个独立的目标。 这既是优势,也是难点。优势体现在同一文本线上不同字符可以互相利用上下文,可以用sequence的方法比如RNN来表示。难点体现在要检测出一个完整的文本线, 同一文本线上不同字符可能差异大,距离远,要作为一个整体检测出来难度比单个目标更大。(字符...

2019-07-24 11:10:57 213

原创 R-FCN

IntroductionRCNN系列存在两个问题:1. 分类任务要求平移不变性而检测任务必须对位置敏感,因为目标位置改变的话预测坐标必须随之变化。用resnet做检测任务时将ROI pooling置于卷积层之间,因为ROI POOLING后是region级训练,每一个region跑一遍后面的网络,当region改变时预测坐标自然跟着改变。 2. ROI POOLING层前是计算共享的,即整张...

2019-07-24 11:08:09 115

原创 (DES)Single-Shot Object Detection with Enriched Semantics

Introductiondes网络是SSD的另一个改版,它也考虑到高分辨率的特征语义低, 对于SSD直接使用这些特征分类效果差的问题提出了对低层特征图训练语义分割网络,并与网络得到的显著图进行元素相乘以提升地层语义等级的方法,可以说是FPN的另一角度了。还有一点创新是对高层特征进行通道学习(没看懂),进一步提升高层特征语义。网络结构语义分割网络对低层conv4_3训...

2019-07-24 11:06:08 207

原创 MASK_RCNN

network外链图片转存中…(img-YdWLPRya-1563937279256)]mask rcnn与faster rcnn的第一点不同是:使用了更强大的骨架网络resnet101+fpn,上图左边是resnet50为骨架网络的结构,右边是resnet101+fpn为骨架网络的结构。第二点是:ROI AlignROI Pool做的事是将原图上的ROI映射到最后一层的特征图上,由于...

2019-07-24 11:03:20 266

原创 Trick系列-OHEM方法

[外链图片转存失败(img-qIs6ZwYb-1563937170568)(https://github.com/chunhui204/chunhui204.github.io/blob/master/images/ohem2.PNG)]注意ohem是基于fast rcnn的,如果使用RPN性能应该会更高。骨架网络使用的是VGG16和VGG_M,这是基于alexnet的辩题。OHEM VS 经...

2019-07-24 10:59:58 206

原创 lightbgm理解

直方图方式处理特征。在xgboost中构建叶子节点时,对一个数值特征(xgb不能直接处理类别特征)要先对该特征的所有样本排序,然后寻找一个切分点使二分之后信息增益最大,也就是预排序操作。预排序耗时,在lgbm中使用直方图 对数值特征(不管连续还是离散)进行处理,根据特征范围将其放入一个一个bin里,间接实现了排序操作,寻找最优切分点时只需要在bins之间找就可以了。这样处理既实现了特征离散化...

2019-07-24 10:58:05 511

原创 最小栈

构造一个栈,使最小值操作复杂度为O(1)。//mins中最小值位置以上元素全部为最小值。class Solution { public: void push(int value) { st.push(value); if (mins.empty() || value < mins.top()) mins.push(value); else mins.push(mi...

2019-07-24 10:37:10 118

原创 树-基本知识

建立树树的创建使用先序遍历创建,从上到下,每次只给根节点分配内存,并调用递归函数为其左右子树赋值。 根据先序或后续遍历和中序遍历确定树。105. Construct Binary Tree from Preorder and Inorder Traversal先在先序数组找到根节点,然后在中序数组确定根节点位置。给根节点分配内存,根据中序数组中根节点位置切分数组,构建左右子树。c...

2019-07-22 22:39:00 164

原创 链表 -->总结

1.插入排序 /*破坏掉原来链表构建新的链表,因为插入元素有可能比第一个节点元素大,所以要用辅助节点*/ class Solution { public: ListNode* insertionSortList(ListNode* head) { ListNode* dummy = new ListNode(0); while (head) { ListNode...

2019-07-22 15:02:24 319 1

原创 数组

1.要求数组原地改变,用快慢指针。快指针是当前遍历的位置,慢指针是处理之后数组位置,数组长度有慢指针决定。推算一遍example,确定逻辑。26. Remove Duplicates from Sorted ArrayExample 1:Given nums = [1,1,2],Your function should return length = 2, with the first ...

2019-07-21 16:41:20 160

原创 LRU: least recently usage

LRU缓存 : 最近最少使用的缓存机制。规则:从容器get(key):如果存在key,拿出之后这个键值对表示最常用;如果没有返回-1.put(key,value):如果容器未满,插入值后这对键值对是最常用;如果之前存在key则覆盖掉原来的值。如果容器已满,去掉最不常用的键值对再添加。这里使用一个链表(list)和哈希表(unordered_map)实现,链表表示常用的顺序。因为我们首先要根据k...

2019-07-17 19:49:42 342 1

原创 树的先序,中序,后序的非递归写法

//先序遍历:根-左-右;所以入站要先右节点在左节点class Solution {public: vector<int> preorderTraversal(TreeNode* root) { vector<int> res; if (!root) return res; stack<TreeNode*> st; st.push(root);...

2019-07-17 00:51:58 225 1

原创 赛码网

题目描述头条的2017校招开始了!为了这次校招,我们组织了一个规模宏大的出题团队。每个出题人都出了一些有趣的题目,而我们现在想把这些题目组合成若干场考试出来。在选题之前,我们对题目进行了盲审,并定出了每道题的难度系数。一场考试包含3道开放性题目,假设他们的难度从小到大分别为a, b, c,我们希望这3道题能满足下列条件:a<= b<= cb - a<= 10c - b<= 10所有出...

2019-06-29 20:25:14 1388

原创 pytorch 模型加载部分权重与部分模型加载权重

模型加载部分权重model = ...model_dict = model.state_dict()pretrained_dict = torch.load(load_name)# 1. filter out unnecessary keyspretrained_dict = {k: v for k, v in model_dict.items() if k in pretraine...

2019-06-20 21:20:38 5835 7

xmapp+phpwind+agileone.zip

xmapp+phpwind+agileone搭建后台web服务。如果这三个版本不匹配,如php版本过高,会出现phpwind在注册时空白页面的出现。如xmapp版本过高,agileone无法兼容的情况,这是试过版本可以的。

2019-12-05

nccl-2.4.8-1-x86_64.pkg.tar.xz

nccl-2.4.8-1-x86_64.pkg.tar.xz是从linux org下下载下来的。要与tensorflow版本对应,不是下载deb格式。

2019-07-28

QT实现wav音频文件读写

使用QT实现pcm和wav文件相互转换,读取wav音频格式等。其中有些数据类型属于qt特有如qint32, QString等完全可以转成int,std::string,移植的话转成相应类型即可。

2018-09-11

c++版神经网络实现

c++版神经网络的实现,内部实现了矩阵运算,前向传播,反向传播的基本逻辑,使用的是交叉熵损失函数,二分类问题,数据集是64*64*3的猫的图片,已被展成12288向量存于txt文件中,由于数据量大训练时间可能较长

2018-06-19

Deep Learning with TensorFlow

Deep Learning with TensorFlow Giancarlo Zaccone, Md. Rezaul Karim, Ahmed Menshawy

2018-04-11

香港中文大学tensorflow课件

香港中文大学tensorflow课件,适合初学者入门,内容讲解的还算详细

2017-11-06

飞思卡尔K60野火底层库,拉普兰德底层库及其使用教程

飞思卡尔K60野火底层库,拉普兰德底层库及其使用教程,以前做智能车时积累的资源

2016-11-17

stc15w4k58s4控制的直立车(带角度闭环、速度闭环,蓝牙调试、OLED显示等)

stc15w4k58s4控制的直立车程序 带角度闭环、速度闭环,底层兼容性好,个别参数需要实际调试,如PID参数 蓝牙调试、OLED显示方便参数显示及调试 本程序为上传者之前参加比赛的程序,与大家分享 不同思路欢迎讨论

2016-09-11

完整android API文档

当前从网上找到的最完整api,基本包含所有内容,对于无法在网上查看api的朋友,很适合哟!

2015-03-15

JAVA对象研究.ppt

深入剖析java对象,带你走进你不知道到的java世界

2014-11-01

空空如也

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

TA关注的人

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