自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Yolov3:win10下训练自己的数据(GPU版)(详细步骤)

前言 最近在做用yolov3进行目标识别,关于前期已经成功检测成功了,大家有兴趣的可以看我之前写的一篇博客:VS2015+opencv3.4.2+yolov3成功检测,这篇博客主要介绍如何训练自己的数据。训练的环境是:win10+GPU 最后,如果有什么写得不对的地方,希望大家不吝赐教,谢谢!第二章 训练自己的数据2.1 制作自己的数据集 2.1.1...

2019-03-15 20:47:15 20897 63

原创 用VS2015编译用GPU训练的Yolov3工程

前言 最近在用yolov3进行目标检测,本人是打算用VS2015打开有GPU训练的版本,但每次打开后都显示无法加载此项目。。。内心真是崩溃,在网上查找了好几个方法都没成功,后来修改了一个文件后,终于成功了,但是后来在编译时又出现了各种奇葩bug,后来查找了很多资料,还有询问一些大佬才得以解决。虽然过程很曲折,但结果还算完美,现将整个环境搭配过程献上,供大家参考。 最后,...

2019-03-14 14:37:55 1841 9

原创 Yolov3+C+++opencv+VS2015成功检测

前言 最近在用yolov3进行目标检测,也有一个多星期了,想把最近做出的一些成果记录下来,供大家参考下。我的运行环境是C+++opencv+VS2015+yolov3,下面将简单介绍下yolo的一些思想,这些也是我在看了很多博主介绍后,自己做的一些总结和笔记,后面也给大家附上了我写的一些关键代码和解释,关于整个工程由于一些私人原因不能整个附上,不过网上也有很多,大家可以自行搜索。...

2019-03-13 20:35:32 22326 283

原创 Recommender Systems(推荐系统)

前言 这一章内容还是紧接着上一章内容,在上一章我给大家介绍了异常检测系统,在这一章将给大家介绍另一个在生活中常会涉及到的推荐系统。例如当你在用淘宝购物时,有没有发现每次首页推荐的商品都是和你前几次搜索过的商品相关,这就是推荐系统根据你每次搜索的爱好,然后相应地推荐你可能喜欢的商品。在这一章,我将详细地给大家介绍这类学习系统是怎样实现的。 最后,如果有理解不对的地方,希望大家...

2018-11-30 14:53:39 3507

原创 c语言实现求一个矩阵特征值和特征向量

前言 求矩阵的特征值,主要是用的QR分解,在我的有一次博客里,我已经详细地给出了计算的过程,大家有兴趣可以去看下,经过几天的钻研,终于完成了整个的eig算法。下面我将把我的整个代码附上,有不懂的可以问我,欢迎一起讨论学习! 这是对上一次的修改版,上一次写的程序是在C++编译环境下编译的,所以放在c里面编译有些会出错。 最后,如果有不对的地方希望大...

2018-11-09 18:22:42 21824 21

原创 【VS环境配置】海康SDK二次开发【亲测有用】

【环境配置】海康SDK二次开发开发环境:VS2019+海康威视SDK(bit64)海康威视SDK下载解压后:配置项目属性包含目录:E:\C++Programmer\KCF\CH-HCNetSDKV6.1.4.42_build20200527_win64\头文件库目录:E:\C++Programmer\KCF\CH-HCNetSDKV6.1.4.42_build20200527_win64\库文件\HCNetSDKComE:\C++Program...

2020-11-13 11:04:01 3588 6

原创 【Go语言】语法介绍:数组、切片、map、结构体、接口

语法介绍:数组、切片、map、结构体、接口数组//数组作为函数参数传入//以值的形式进行传入func Fun1(p [5]int) { for i, data := range p { data++ fmt.Println("i=", i, " data=", data) }}//数组以指针的形式传入func Fun2(p *[5]int) { len := len(p) for i := 0; i < len; i++ { fmt.Println((*p)

2020-10-12 15:44:24 430

原创 【Go语言】语法介绍:变量、输入、if、for、switch、函数

语法介绍package main //一个程序必须有一个main包import "fmt" //func为函数关键字func main() { //程序入口,从main函数进 fmt.Println("hello go") //使用包中函数,格式:包名.函数名()}变量//声明一个int型的变量a var a int //给变量a赋值 a = 10 //初始化int型变量b var b int = 5 //自动推导类型 c := 7

2020-10-11 21:13:18 362

原创 【Go语言】简单介绍

简单介绍优势不依赖其他库,部署简单 支持并发 GC,资源自行回收 静态类语言,但有动态语言感觉 丰富标准库Go=C+Python编写go语言需注意:go语言以包作为管理单位 每个文件必须声明包 程序必须有一个main包 导入包,必须要使用 左括号必须和函数名同行 变量声明了,必须要使用 语句结尾没有分号变量(1)声明变量var 变量名 变量类型(2)声明并定义var 变量名 变量类型=值(3)自动推导类型变量名:=值...

2020-10-11 20:19:58 323

原创 【LeetCode系列】高楼扔鸡蛋

高楼扔鸡蛋题目描述:面前有一栋楼从1到N共N层的楼,然后给你K个鸡蛋(K至少为1)。现在确定这栋楼存在楼层0<=F<=N,在这层楼将鸡蛋扔下去,鸡蛋恰好没摔碎(高于F的楼层都会碎,低于F的楼层都不会碎)。现在问,最坏情况下,你至少要扔几次鸡蛋,才能确定这个楼层F呢?分析1:使用二分查找思路,从中间楼层进行尝试,实际上,如果不限制鸡蛋个数的话,二分思想显然可以得到最少尝试的次数,但问题是,现在给你了鸡蛋个数的限制K,直接使用二分思路就不行了。原因:比如只给你1个鸡蛋,7层楼,你敢

2020-10-05 15:21:57 995

原创 【LeetCode系列】高效率实现LFU

高效率实现LFULFU(Least Frequently Used,最近最少使用算法),一种常见的缓存算法。思想:如果一个数据在最近一段时间很少被访问到,那么可以认为在将来它被访问的可能性也很小。因此,当空间满时,最小频率访问的数据最先被淘汰。LFU算法描述:设计一种缓存结构,该结构在构造时确定大小,假设大小为K,并有两个功能:set(key,value):将记录(key,value)插入该结构,当缓存满时,将访问频率最低的数据置换掉; get(key):返回key对应的valu

2020-10-02 15:09:45 357

原创 大端和小端

大端和小端大端:数据的低位保存在内存的高地址中,数据的高位,保存在内存的低地址中;小端:数据的低位保存在内存的低地址中,数据的高位,保存在内存的高地址中。为什么有大小端:在计算机系统中,是以字节为单位的,每个地址单元都是对应着一个字节,一个字节8bit,对于位数大于8位的处理器,例如16位或者32位的处理器,由于寄存器宽度大于一个字节,那么必然存在着一个如何将多个字节安排的问题。因此就导致了大端存储模式和小端存储模式。例如一个16bit的short型x,在内存中的地址为0x0010,x

2020-09-25 17:27:41 164

原创 【数据结构知识】拓扑排序

拓扑排序#include <iostream>#include <vector>#include <queue>using namespace std;int main() { int m; cin>>m; //表示有m个顶点 标号为:1-m vector<vector<int>> edge(m+1); //表示邻接矩阵 每个顶点所连接边的节点 vector<int> in(m+1);

2020-09-25 10:40:50 224

原创 【linux操作系统知识】虚拟地址中:.data段和.bss段

虚拟地址中:.data段和.bss段.data段:为数据段,用来存放程序中已初始化并且初始化不为0的全局变量和静态局部变量,数据段属于静态内存分布,可读可写。.bss段:称为未初始化段,用来存放未初始化或者初始化为0的全局变量和静态局部变量。bss段不占用物理文件尺寸,但占用内存空间;data段占用物理文件,也占用内存空间。当程序读取data段的数据时,系统会发生缺页中断,从而分配相应的物理内存;当程序读取bss段的数据段时,内核会将其转到一个全零页面,不会发生缺页中断,也不会为.

2020-09-13 14:34:43 1230

原创 【C++知识】智能指针——shared_ptr

智能指针智能指针是一个模板类,封装了普通指针。通过在构造函数中初始化分配内存,在析构函数中释放内存,达到自己管理内存,不需要手动管理内存的效果。shared_ptr:通过引用计数来实现对象是否被释放。当引用计数为0时,表示没有指针指向这块内存,析构函数可以去释放这块内存了。自己实现://引用计数类class Counter{public: int s; //shared_ptr引用计数 int w; //weak_ptr引用计数 Cou..

2020-09-09 10:18:08 347

原创 【数据库知识】事务

事务某个时间内一些连续且不可分割的操作集合事务的基本要素原子性:事务里的所有操作都是不可分割的,要么都成功,要么都失败; 一致性:事务开始前后,数据库的完整性约束没有破坏; 持久性:事务完成后,事务对数据库的所有更新都将被保存到数据库,不能回滚; 隔离性 :同一时间内,只允许一个事务请求同一数据,不同事务时间彼此没有干扰。事务的隔离级别读未提交:脏读,A修改没有提交,B读取到了,然后A进行回滚,那么A读到的数据就是脏数据; 读已提交:不可重复读,A修改提交,B在A提交前

2020-09-04 09:46:39 123

原创 【操作系统知识】进程、线程、协程

进程、线程、协程进程:操作系统分配资源的最小单位; 有自己的独立地址空间; 有独立的内存资源,代码段、数据段、堆栈段; 进程间互不干扰,所以通信复杂(管道、消息队列、mmap、socket、信号); 进程间切换消耗大(需要切换页目录,为了提高虚拟地址映射到物理地址的效率,有一个缓存用于缓存常用的映射关系,在切换页目录后,这个缓存就失效了,所以映射命中率就会降低,表现出来就是程序运行慢);线程:操作系统调度的最小单位; 一个进程可以包含多个线程,多个线程共享这一个进程的资源;

2020-09-04 09:16:10 143

原创 【数据库知识】MVCC机制——MySql底层原理版【详细版】

MVCC机制——MySql底层原理版undo回滚日志+记录版本链(增加了两个字段:事务id和回滚指针(指向历史记录))readview:活跃事务id组+最大事务id匹配原则:分段:已提交、已提交/未提交、未提交 由版本链从上到下进行匹配(1)当前事务id<min_id,则表示当前记录在第一段,表示已提交,直接读出;(2)min_id<=当前事务id<=max_id,则表示当前记录在第二段,表示可能提交,也可能未提交,那么根据readviw,看当前事务id是否在活跃..

2020-08-24 17:39:20 289

原创 【深度学习】一些面试问题小结

一些面试问题小结一个神经网络有哪些层:卷积层——池化层——FC(单神经网络层)卷积层意义:提取图像的特征(像过滤器一样)使用0扩充边界:没有缩小高度和宽度;帮助图像在边界保留更多的信息池化层:缩减模型的大小,提高计算速度,同时提高所提取特征的鲁棒性Max Pooling:取最大值Average Pooling:取平均值超参数:隐藏层的大小;学习率;迭代次数;神经网络中的层数典型网络模型:ResNet残差网络:有残差块,跳远连接,指a[L]跳过一层或好..

2020-08-24 11:27:27 219

原创 【Java知识】第十章 继承

第十章 继承面向对象三大特征:封装、继承、多态继承:共性抽取用法:public class Teacher extends Employee{ }直接通过子类对象访问成员变量:等号左边是谁,就优先用谁,没有则向上找;间接通过成员访问成员变量:该方法属于谁,就优先用谁,没有则向上找。子类访问成员方法规则:创建的对象是谁,就优先用谁,没有则向上找。重写:方法名称一样,参数列表也一样重载:方法名称一样,参数列表不一样@override:帮助检测抽象...

2020-08-06 16:03:58 127

原创 【Java知识】第九章 Arrays类和Math类

第九章 Arrays类和Math类Arrays类是一个与数组相关的类,里面提供大量静态方法,用来实现数组常见的操作1)toString方法;2)sort方法public static void main(String[] args) { int[] array={1,4,2,6,5}; //toString()方法 String s = Arrays.toString(array); System.out.println(s

2020-08-06 15:19:20 164

原创 【Java知识】第八章 static静态

第八章 static静态静态成员方法:不能直接访问非静态,不能调用this对象,因此this代表对象原因:因为在内存中是先有静态,后有非静态内容。静态变量或者静态方法是属于本类的。对于静态成员方法调用:类名.静态方法();静态代码块:当第一次用到本类时,静态代码块执行唯一一次static{ //用来一次性地对静态成员变量进行赋值}...

2020-08-06 15:04:04 114

原创 【Java知识】第七章 String类

第七章 String类字符串常量池:程序当中直接写上的双引号字符串,就在字符串常量池中。内存分析:String str1="abc";String str2="abc";char[] charArray={'a','b','c'};String str3=new String(charArray);System.out.println(str1==str2);System.out.println(str1==str3);System.out.println(str2==str3

2020-08-06 14:48:43 178

原创 【Java知识】第六章 ArrayList类

第六章 ArrayList类ArrayList类是一个泛型类,类似于数组的功能,ArrayList<E>,泛型也就是装在集合当中的所有元素,全部统一的什么类型泛型只能是引用类型,不能是基本类型。所以想存储整型(int)时,可以使用其包装类(Integer)。常用方法:add()、get(index)、remove(index)、size()ArrayList<String> list=new ArrayList<>();//添加元素list.a

2020-08-06 11:47:09 136

原创 【Java知识】第五章 Random类

第五章 Random类Random类用于产生随机数,使用步骤:1)导包import java.util.Random;2)定义Random r=new Random();3)使用int number = r.nextInt(10); //[0,10)

2020-08-06 11:31:23 192

原创 【Java知识】第四章 Scanner类

第四章 Scanner类用于从键盘输入,使用步骤:1)导包:import java.util.Scanner;2)定义:Scanner sc=new Scanner(System.in);3)使用String str = sc.next(); //next()即返回字符串int num = sc.nextInt(); //nextInt()即把字符串转换为int...

2020-08-06 11:22:24 143

原创 【Java知识】第三章 IDEA常用快捷键

第三章 IDEA常用快捷键psvm:public static void main(){ }sout:System.out.println();Alt+Enter:修复代码Alt+Insert:自动生成代码数组.fori:for(int i=0;i<数组.length;i++){ }函数().var:返回类型 变量=函数();...

2020-08-06 11:13:28 95

原创 【Java知识】第二章 数据类型

第二章 数据类型java数据类型分为:基本数据类型和引用类型基本数据类型:整数(int、short、long)、浮点(float、double)、字符(char)、布尔(boolean)引用类型:类(String等)、数组(int[ ]等)、接口基本数据类型与对应的包装类int——Integerchar——Character其他都是直接把首字母大写即可...

2020-08-06 11:06:04 97

原创 【Java知识】第一章 JDK、JRE、JVM

第一章 JDK、JRE、JVMJVM:java虚拟机,本身不具有跨平台特性,每个操作系统下都有不同版本的虚拟机,java程序才是通用的JRE:java程序的运行环境,包含JVM和运行期间的一些核心类库JDK:java程序开发工具包,包含JDK和开发人员使用的工具JDK>JRE>JVM 图1 JDK、JRE、JVM之间的关...

2020-08-06 10:49:45 101

原创 Muduo库中的Buffer设计

Muduo库中的Buffer类设计非阻塞网络编程中应用层buffer是必须的原因:非阻塞IO的核心思想是避免阻塞在read()或write()或其他IO系统调用上,这样可以最大限度复用thread-of-control,让一个线程能服务于多个socket连接。IO线程只能阻塞在IO-multiplexing函数上,如select()/poll()/epoll_wait()。这样一来,应用层的缓冲是必须的,每个TCP socket都要有input buffer和output buffer。TcpCon

2020-05-18 13:13:23 683

原创 C++11的chrono总结

C++11的chrono总结chrono是C++11中的时间库,提供计时,时钟等功能。chrono库主要包含了三种类型:时间间隔Duration、时钟Clocks和时间点Time point。Dourationdurqtion表示一段时间间隔,用来记录时间长度,可以表示几秒钟、几分钟或者几个小时的时间间隔,duration的原型是: template<class Rep,class Period=std::ratio<1>> class duartion; 第一个

2020-05-16 11:32:29 1751

原创 【C++后台开发面经】面试总结第九波:笔试算法经典模板

经典模板1、求n以内的所有素数//获取n以内的质数,保存到primes中void get_primes(vector<int> &primes,int n) { vector<bool> st(n+1); //注意这里是n+1 for (int i = 2; i<= n; i++) { if (!st[i]) { primes.pus...

2020-04-25 20:49:08 321

原创 【C++后台开发面经】面试总结第八波:整个知识的查漏补缺

1、C++unique_ptr的用途特性总结:1)默认情况下,占用内存大小和raw指针一样(除非指定了用户自定义deleter);2)运行过程中unique_ptr消耗资源和raw指针一样;3)unique指针只可以进行转移操作,不能拷贝、赋值。所以unique指针作为函数入参数类型的时候,函数的调用方必须使用转移语义;4)允许在定义unique指针的时候,指定用户自定义的指针销毁函数(...

2020-04-25 20:46:06 982

原创 【C++后台开发面经】面试总结第七波:面试智力题

面试智力题1、25皮马,5个赛道,求经过几场比赛,可以得到跑得最快的5皮马1)先把25皮马分成5组,分别每组进行比赛:(5场)A1 A2 A3 A4 A5、B1 B2 B3 B4 B5、C1 C2 C3 C4 C5、D1 D2 D3 D4 D5、E1 E2 E3 E4 E5。假设每组比赛后,结果如上所示。2)把每组最快的马拿出来进行比赛:(1场)A1 B1...

2020-04-25 20:38:53 465

原创 【C++后台开发面经】面试总结第六波:LeetCode相关的面试常考题

面试常考题目录面试常考题LeetCode 440 字典序的第k小数字LeetCode 135 分发糖果LeetCode 146 LRU缓存机制LeetCode 386 字典序排数LeetCode 93 复原IP地址LeetCode 470 用Rand7()实现Rand10()LeetCode 199 二叉树的右视图LeetCode 143 重排链表Lee...

2020-04-25 20:37:15 572

原创 【C++后台开发面经】面试总结第五波:操作系统面试题合集

操作系统面试题合集1、进程和线程的区别:系统分配调度/CPU分配调度;独立内存单元/共享进程内存2、进程通信:无名管道/有名管道、信号、消息队列、共享内存、套接字、信号量3、线程同步的方式:互斥量、条件变量、信号量4、死锁:多个进程或线程为争夺某种资源而又互相等待其他进程或线程释放它的状态。互斥条件、请求和保持条件、不可剥夺条件、环路等待条件资源一次性分配...

2020-04-25 20:34:30 775

原创 【C++后台开发面经】面试总结第四波:笔试面试算法题总结

C++面试笔试算法题合集1、之字形打印二叉树vector<vector<int>> print(TreeNode *node){ vector<vector<int>> res; if(!node) return res; queue<TreeNode*> q; q.push(node); ...

2020-04-25 20:32:25 284

原创 【C++后台开发面经】面试总结第三波:针对后台开发相关基础知识分类总结

后端面试总结1、数据结构链表和数组的区别内存分布:链表是无连续的内存空间,通过指针来实现链式存储;数组是一段连续的内存空间,一般大小需提前知道。增:链表:无序链表:O(1),有序链表:O(n);数组:无序数组:内存充足O(1),内存不充足O(O(n)+1)=O(n),有序数组:O(n) 查找+移动删:链表:O(O(n)+1)=O(n) 找到+删除;数组:末尾 O(1),非末尾...

2020-04-25 20:28:34 3100

原创 【C++后台开发面经】面试总结第二波:C++面试题合集

C++面试题合集目录C++面试题合集1、C和C++的区别?2、C++多态3、引用和指针的区别?4、函数中值传递、引用传递、指针传递有什么区别?5、static关键字的作用6、const关键字的作用7、memset、memcpy、strcpy有什么区别?8、析构函数有哪些特点?9、虚函数的作用?10、分别给出bool、int、float、指针变量和0比...

2020-04-25 20:22:43 2271

原创 【C++后台开发面经】总结第一波

腾讯一面C++的多态如何实现Linux进程和线程的区别、Linux进程间通信的方式、Linux的文件系统、Linux进程的创建以及创建后父进程和子进程之间分别会发生什么。TCP的三次握手和四次挥手画出图示并讲解,说出Http的包头里的四个属性,说出http有哪些方法,post和get有什么区别算阶乘的程序MySQL存储引擎后1 select,poll,epoll的区别...

2020-04-25 20:15:51 1236

设计模式_详细代码案例.pdf

本文档为个人所写,为介绍17中设计模式写的详细实例代码,供大家学习,希望大家可以有所收获,例子仅供参考。

2020-02-24

RedBlackTree.rar

此工程主要包含红黑树的插入和删除,采用C++编写,有单独的.h和.cpp文件,方便移植

2019-07-27

用VS2015+opencv3.4.2+C++编写Yolov3目标检测算法

由于工程项目太大,所以里面是一个百度网盘分享,大家可以自行下载

2019-07-18

空空如也

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

TA关注的人

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