自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

玉米味土豆片

学习记录

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

原创 利用逆透视变换获取车载图象的鸟瞰图

近年来在人工智能潮流下,各行各业对无人驾驶技术的发展投来了越来越多的关注。在智能驾驶系统的研究中,车道线检测的研究是非常重要的一环;鉴于绝大多数城市道路交通环境特性和车道线本身特性,当前车道线检测研究使用的绝大部分方法都是基于计算机视觉的方法,近几年深度学习方法的发展非常迅猛,但是由于深度学习依赖巨量的训练数据和其成本高昂的硬件需求,当前市场上使用的大多数智能驾驶产品都没有引入基于深度学习的视觉解...

2018-12-31 19:50:52 19271 23

原创 史上最简单Opencv相机畸变矫正教学

最近因为项目需要研究了一下摄像头的畸变矫正,我打算通过写这篇博客记录一下相关流程。其实关于摄像头畸变矫正的原理,网络上已经有非常多的博客可以参考了,我在博客里也就不再赘述了。利用Opencv库中的接口,可以很方便地对一款固定型号的摄像头进行矫正,一般地我们将这个过程分成两步:生成参数文件和矫正。生成参数文件这里使用的是OpenCV的例程(非常方便非常好用~),例程可以在你的opencv源码...

2018-10-12 11:38:49 23845 5

原创 线性回归原理及实现(一):最小二乘法

线性回归到底要干什么,顾名思义很简单,即在已有数据集上通过构建一个线性的模型来拟合该数据集特征向量的各个分量之间的关系,对于需要预测结果的新数据,我们利用已经拟合好的线性模型来预测其结果。关于线性回归的方法,现在使用得比较广泛的就是梯度下降和最小二乘法;我打算把最小二乘法和梯度下降分两篇博客来写,这篇就来说一说我对线性回归及最小二乘法的理解以及原理实现。线性...

2018-05-18 21:19:16 44434 5

原创 Haar特征提取算法的实现

【自己动手,丰衣食足】系列        Haar特征是一种很早就被提出的图像特征提取算法,后面还经过了几次改进。Haar特征能够很好地运用于人脸识别技术,当然很多目标检测技术中对目标图像的特征提取也可以使用Haar特征。当我们使用opencv自带的cascade分类器时可以选择Haar特征作为训练样本数据的特征描述子,然后将特征描述子作为样本数据送入cascade分类器中,就可以通过Adab...

2018-04-17 16:45:12 9537 17

原创 图像卷积操作的手动实现(基于opencv的C++编译环境)

        opencv环境下有自带的filter2D()函数可以实现图像的卷积,自己写一个卷积函数函数貌似是没事找事。。。。好吧,事实是这是我们计算机视觉课程上的一项作业。我们很多算法过程仅仅只调用别人写好的接口,即使原理我们已经清楚,但是真正编写代码的时候很多细节我们可能还是没有意识到,也许自己再实现一遍是一种深入学习的途径吧。本文对图像卷积操作的原理不作详细讨论,博客https://bl...

2018-03-29 21:12:29 4760 3

原创 目标检测——opencv cascade训练的一般使用流程与常见问题

opencv在2.4.0之后推出了能够支持HAAR、LBP、HOG三种特征的供cascade分类算法训练的程序,可以在opencv的bin文件目录下找到该opencv_traincascade.exe程序以及用来创建样本的opencv_createsamples.exe程序。(当然opencv也保留了之前只支持harr特征训练的opencv_haartraining.exe)训...

2018-03-26 13:31:01 4032 6

原创 MacOS安装Minikube踩坑记录

MacOS安装minikube的踩坑记录

2022-07-26 21:01:18 1347 2

原创 C++11右值引用和移动语义

C++11中加入了很多新特性,其中非常有用的一个就是右值引用和移动语义,移动语义主要体现在移动构造函数和移动赋值函数。

2019-09-30 23:59:40 215

原创 二叉树前中后序遍历非递归实现C++

前几天面试过程中面试官让手写一下二叉树后序遍历的非递归写法,当时没有写出来,本想着可能是因为面试太紧张的原因,才这么简单的题都没写出来,后来特地去研究了一下,发现二叉树的后序遍历非递归实现还真的没我想的那么简单,在此写个博客记录一下,顺便把前序和中序的非递归实现也写出来。后序遍历非递归实现#include <iostream>#include <stack>usi...

2019-09-30 23:57:08 838 1

转载 深度分析mmap:是什么 为什么 怎么用 性能总结

目录mmap基础概念mmap内存映射原理mmap和常规文件操作的区别mmap优...

2019-09-12 16:52:36 313

原创 UDP数据包的延迟及丢包检测(C++)

摘要本文记录通过数据报套接字来检测UDP数据包的延迟和丢包的思路和简单的代码实现。思路UDP协议及用户数据报协议在传输层提供了无连接、不可靠的传输服务,端到端的延迟以及丢包率是反应当前网络环境好坏的重要评价标准。Ping检测延迟的方式是:发送端发送一个ICMP包给接收端,接收端接收到ICMP包之后向发送端回应一个包,发送端可以计算出往返时间(RTT),本文通过套接字使用类似于Ping的思路来...

2019-08-31 23:06:54 6827 1

原创 Socket网络编程(二):主要API调用方法

Socket主要API调用方法windows下socket的API和linux下的API大致相同,只是在某些细节上有些细微的差别。包含头文件和初始化Linux socket常用头文件<sys/socket.h> //与套接字相关的函数声明和结构体定义,如socket()、bind()、connect()及struct sockaddr的定义等<s...

2019-08-29 17:16:46 614

原创 Socket网络编程(一):基本概念

什么是套接字?概念socket 的原意是“插座”,在计算机通信领域,socket 被翻译为“套接字”,它是计算机之间进行通信的一种约定或一种方式,也可以理解为操作系统提供的对外通信的接口。通过 socket 这种约定,一台计算机可以接收其他计算机的数据,也可以向其他计算机发送数据。Socket 是一种计算机之间通信的约定方式。在理解socket之前,可以先了解一下文件描述符的概念:UNIX...

2019-08-29 11:01:11 280

转载 Markdown基本语法

文章转自[https://www.jianshu.com/p/191d1e21f7ed](https://www.jianshu.com/p/191d1e21f7ed) Markdown是一种纯文本格式的标记语言。通过简单的标记语法,它可以使普通文本内容具有一定的格式。相比WYSIWYG编辑器优点:1、因为是纯文本,所以只要支持Markdown的地方都能获得一...

2019-08-12 12:05:48 118

转载 Makefile经典教程

该篇文章为转载,是对原作者系列文章的总汇加上标注。支持原创,请移步陈浩大神博客:http://blog.csdn.net/haoel/article/details/2886makefile很重要      什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和p...

2019-06-10 15:35:57 215

转载 相机参数标定(camera calibration)及标定结果如何使用

一直都想写一写这个主题,但是,一直都感觉有点虚,也没有去整理。在网上搜了一下,发现大多数都是转来转去,看着也是似懂非懂的,让人很老火。所以,我就按照自己的理解,尽量简单易懂一点,也便于以后的应用。如有不足或者错误之处请指出,还请指出。1、相机标定的意义在机器视觉领域,相机的标定是一个关键的环节,它决定了机器视觉系统能否有效的定位,能否有效的计算目标物。相机的标定基本上...

2019-05-27 17:00:50 4579 4

原创 leetcode相交链表:O(n)时间复杂度,O(1)空间复杂度解法

编写一个程序,找到两个单链表相交的起始节点。如下面的两个链表:在节点 c1 开始相交。示例 1:输入:intersectVal = 8, listA = [4,1,8,4,5], listB = [5,0,1,8,4,5], skipA = 2, skipB = 3输出:Reference of the node with value = 8输入解释:相交节点的值为 8 ...

2019-05-27 11:26:52 1018

原创 NVIDIA TX2刷机流程记录

刷机准备:一块新的TX2(自带ubuntu系统)、一台ubuntu系统的主机(后面称为本机)、开发板、microUSB线(用microUSB连接必需,用网线连接的话就不需要,手机充电线即可,用于连接本机和TX2)、网线(用网线连接必需,用microUSB线的话则不需要)、电源线等。1、用本机联网去nvidia官网下载TX2的刷机工具JetPack,网址链接https://developer.n...

2019-05-10 15:23:08 1955 2

原创 linux客户端远程获取服务器图形化软件界面的方法

很多时候我们只能通过命令ssh在终端命令行中登录到服务器,并且只能通过终端命令行来操作服务器,即使服务器上安装了一些软件也无法获取它们的图形化界面;这里给出一个能够在客户端获取服务器软件图形化界面的方法。整个过程分为以下4步:1.客户端安装openssh-client:在客户端终端输入命令:sudo apt-get install openssh-client等待安装完成;...

2019-04-30 10:14:35 1580

原创 神经网络:线性模型与非线性模型(Mnist手写体图像分类)

神经网络中提到的线性模型与非线性模型之间的区别就体现在字面意思上:线性模型即仅通过对输入进行线性变换得到输出的网络模型,我们知道在线性代数中矩阵的相乘就是一种线性变换,根据矩阵乘法的结合律可知:一个矩阵依次与多个矩阵相乘等价于这个矩阵乘上这多个矩阵的乘积;类似的,任意线性模型的组合还是线性模型,也就是说,只通过线性变换,任意层的全连接神经网络和单层神经网络的表达能力没有区别。由于线性模...

2019-04-29 15:53:04 5329

转载 ubuntu 16.04下安裝和配置ROS

https://blog.csdn.net/jinking01/article/details/79387639

2019-04-29 10:40:19 152

原创 ROS入门总结(二):Python定义发布器Publisher与订阅器Subscriber

节点ROS通信系统中就是一个可执行的程序,这边博客主要记录如何在Python代码节点中定义发布器和订阅器。发布器:import rospyfrom std_msgs.msg import String#载入String的msg类型def talker(): #定义一个发布器,话题为'chatter' pub = rospy.Publisher('chatter...

2019-04-23 11:52:20 2123

原创 ROS入门总结(一):重要概念与常用命令

ROS中,节点之间通过发布话题和订阅话题来通信,在程序中是通过消息发布器和订阅器来实现,数据流通过话题的发布和订阅在节点之间传播,而数据流的数据类型则称为消息msg。重要概念:Nodes节点:一个节点其实只不过是ROS程序包中的一个可执行文件。ROS节点可以使用ROS客户库与其他节点通信。节点可以发布或接收一个话题。节点也可以提供或使用某种服务。节点之间使用不用的编程语言一样也可以...

2019-04-23 11:03:42 272

转载 如果看了这篇文章你还不懂傅里叶变换,那就过来掐死我吧

如果看了这篇文章你还不懂傅里叶变换,那就过来掐死我吧这篇文章转自[https://zhuanlan.zhihu.com/p/19759362](https://zhuanlan.zhihu.com/p/19759362),核心思想就是:要让读者在不看任何数学公式的情况下理解傅里叶分析。傅里叶分析不仅仅是...

2019-04-01 09:33:28 261

原创 tensorflow重要概念与常用函数总结

计算图: tensorflow中所有的计算都会被转化为计算图上的节点,节点之间的边描述了运算之间的依赖关系。tensorflow程序一般都分为定义计算图和执行计算两个阶段。不同计算图上的张量和运算都不会共享。tf.get_default_graph()#获取当前默认的计算图tf.Graph()#生成新的计算图g1=tf.Graph() 张量: tensorfl...

2019-03-27 22:44:37 247

原创 【存个过程】Ubuntu16.04安装CUDA9.0+cuDNN7.5GPU版+TensorFlow

ubuntu16.04推荐博客:Ubuntu16.04安装CUDA9.0+cuDNN7.3GPU版TensorFlow过程记录https://blog.csdn.net/wgllovemother/article/details/82997320显卡驱动推荐看这篇:ubuntu16.04安装Nvidia显卡驱动https://blog.csdn.net/dcrmg/article/detai...

2019-03-20 14:38:31 500

转载 TCP的三次握手与四次挥手(详解+动图)

本文转载https://blog.csdn.net/qzcsu/article/details/72861891背景描述 通过上一篇中网络模型中的IP层的介绍,我们知道网络层,可以实现两个主机之间的通信。但是这并不具体,因为,真正进行通信的实体是在主机中的进程,是一个主机中的一个进程与另外一个主机中的一个进程在交换数据。IP协议虽然能把数据报文送到目的主机,但是并没有交付给主机的具体应用进...

2019-02-28 21:53:24 225

原创 leetcode岛屿的个数:广度优先搜索(BFS)

题目: 岛屿的个数给定一个由 '1'(陆地)和 '0'(水)组成的的二维网格,计算岛屿的数量。一个岛被水包围,并且它是通过水平方向或垂直方向上相邻的陆地连接而成的。你可以假设网格的四个边均被水包围。解体思路:这是一道标准的广度优先搜索题,可以尝试用递归的方法或者非递归的方法。比较重要的一点就是要进行边界检查:因为网格是给定的,所以在BFS过程中要保证每个节点都是有效没有越界的。...

2018-12-31 23:01:07 2595

原创 Opencv图像形态学运算总结——腐蚀、膨胀、开运算、闭运算、顶帽、黑帽、形态学梯度

Opencv中提供了图像形态学运算的接口,像基本的腐蚀膨胀都有自己单独的函数接口,但实际上调用morphologyEx()一个函数接口使用不同的参数就可以完成所有常见的形态学运算,包括腐蚀、膨胀、开运算、闭运算、顶帽、黑帽、形态学梯度。示例:Mat element = getStructuringElement(MORPH_RECT, Size(3, 3));morphologyEx(...

2018-12-31 02:06:46 579

原创 leetcode验证二叉搜索树

题目:给定一个二叉树,判断其是否是一个有效的二叉搜索树。假设一个二叉搜索树具有如下特征:节点的左子树只包含小于当前节点的数。 节点的右子树只包含大于当前节点的数。 所有左子树和右子树自身必须也是二叉搜索树。这是leetcode里面我遇到的一道比较有意思的题目,题目的意思非常清楚:输入一棵树,判断它是不是二叉搜索树。大家对二叉搜索树的概念应该非常熟悉,题目中也非常清楚地给出了判...

2018-12-15 00:07:31 1104 1

转载 C/C++ 位运算技巧和总结

本篇博客转载于https://blog.csdn.net/IOT_SONG/article/details/51477071https://blog.csdn.net/qq_33775402/article/details/79561005基本位运算常用技巧按位与 &amp;快速清零int a=0x0001;a&amp;=0;     //a : 0x0000保留指定...

2018-11-18 11:15:51 462

原创 筛法快速求素数——leetcode计数质数

在算法竞赛中经常会遇到求质数的问题,这种题目一般都是要求出一定范围内[0,n]所有的质数或者质数的个数。最直接的思路就是根据质数的定义来判定一个数是不是质数(即一个数不能被除1和它本身外的任何数整除),如果我们需要对所有的数都这样进行判断,那么当n非常非常大的时候,这种算法的时间开销就会非常大,大概为O(n^2)。这个时候就可以使用筛法来快速地求出素数,筛法求素数的基本思路就是:除了0、1之外,所...

2018-11-17 20:04:16 947 1

转载 模式串匹配:KMP算法和AC自动机(二)

博客《模式串匹配:KMP算法和AC自动机(二)》中讲了KMP原理和实现,KMP算法针对的是单模式串的匹配问题,而AC自动机是能够解决多模式穿匹配问题的算法,曾尝试自己实现一个AC自动机,但是发现还是挺有难度的,于是在网上看了一些大神的模板,在这里转发学习一下~下面的博客转自:KMP 大多 是用来解决 单串单串匹配 的 问题的~AC自动机 则是在 KMP 的 基础上 用来解决一大串里面的...

2018-11-05 21:14:53 376

转载 ADAS:可行驶区域检测

该博客转自https://blog.csdn.net/liaojiacai/article/details/77211692 车辆的可行驶区域包括了结构化的路面、半结构化的路面、非结构化的路面。结构化的路面一般是有道路边缘线,路面结构单一,比如城市主干道,高速、国道、省道等,这个路面的结构层执行一定的标准,面层的颜色和材质统一。半结构化的路面是指一般的非标准化的路面,路面面层是颜色和材质差异较...

2018-11-05 21:04:42 4936

原创 leetcode打家劫舍:动态规划(三)

博客《leetcode——动态规划(一):最大子序和》已经结合题目把动态规划的思想原理大概讲了一下,那么这篇博客主要针对更多典型的动态规划的题目,来对动态规划思想的应用进行更进一步的探讨。《leetcode——动态规划(二):爬楼梯》讨论了一道非常简单的题,这篇博客又要讲leetcode上另一道非常简单的题目:打家劫舍。打家劫舍你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现...

2018-11-05 20:57:21 238

原创 leetcode爬楼梯:动态规划(二)

博客《leetcode——动态规划(一):最大子序和》已经结合题目把动态规划的思想原理大概讲了一下,那么这篇博客主要针对更多典型的动态规划的题目,来对动态规划思想的应用进行更进一步的探讨。这篇博客主要讲leetcode上一道非常简单的题目:爬楼梯。爬楼梯假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n...

2018-11-05 20:46:10 120

原创 leetcode最大子序和:动态规划(一)

动态规划是一种非常重要的算法思想,毕竟是一种思想,所以在逻辑层面的体现并没有一个固定的形式,但是处理问题的方式却都是本着一个原则:将一个问题递归分解为它的子问题进行求解,也许有人会问:这不是分治的思想嘛?因为问题分解的过程中往往会产生很多重复的子问题,这个时候动态规划和分支的区别就会体现出来,动态规划会将需要重复解决的子问题的结果在第一次计算之后就保存起来,之后碰到重复的子问题都可以直接得到结果,...

2018-11-05 20:20:19 160

转载 linux系统进程的内存布局

文章转自:https://www.cnblogs.com/diegodu/p/4552490.html内存管理模块是操作系统的心脏;它对应用程序和系统管理非常重要。今后的几篇文章中,我将着眼于实际的内存问题,但也不避讳其中的技术内幕。由于不少概念是通用的,所以文中大部分例子取自32位x86平台的Linux和Windows系统。本系列第一篇文章讲述应用程序的内存布局。    在多任务操作系统中...

2018-10-10 22:12:44 148

原创 mem系列函数使用总结

mem系列函数是我们在平时写C++的过程中经常会用到的函数,现在写一篇博客来总结一下它们的用法。mem系列函数主要是用来操作内存,使用这些函数需要在源文件中包含头文件cstring。 memset 函数原型:void *memset(void*s ,int ch,size_t n);函数描述:将内存地址s处的n个字节的每个字节都替换为ch,并返回s。memset函数经常用来...

2018-10-10 16:52:02 2798

原创 模式串匹配:KMP算法和AC自动机(一)

模式串匹配也称字符串匹配,是在计算机中用得非常多的一种操作。这篇博客主要记录两种常见的字符串匹配算法的学习历程,它们分别是KMP算法和AC自动机。其中KMP是迄今为止用得最为广泛并且算法效率极高的一种单模式串匹配的算法,相比朴素字符串匹配算法O(n*m)的时间复杂度(其中n为主串的长度,m为模式串的长度),KMP的时间复杂度只有O(n+m),在主串长度远大于模式串的长度时,KMP的效率是相当优秀的...

2018-10-05 23:17:45 699

空空如也

空空如也

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

TA关注的人

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