自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(82)
  • 资源 (1)
  • 问答 (1)
  • 收藏
  • 关注

原创 轻量级实时语义分割:ICNet & BiSeNet

ICNet for Real-Time Semantic Segmentation on High-Resolution ImagesICNet贡献Image Cascade NetworkSpeed AnalysisNetwork ArchirtectureCascade Feature FusionCascade Label GuidanceStructure Comparision and Analysis结果BiSeNetIntroductionRelate WorkBilateral Segmen

2020-09-22 23:50:27 3144

原创 轻量级实时语义分割:Guided Upsampling Network for Real-Time Semantic Segmentation

Guided Upsampling Network for Real-Time Semantic Segmentation

2020-09-08 16:15:59 1314

原创 轻量级实时语义分割:ENet & ERFNet

ENet: A Deep Neural Network Architecture for Real-Time Semantic SegmentationENet问题网络架构设计原因ERFNet网络架构本篇博客目的在于分析5年内的实时性语义分割论文。ENet: A Deep Neural Network Architecture for Real-Time Semantic Segmentation是CVPR2016提出的一篇实时性语义分割的论文。ENet问题目前已有的几种语义分割网络如SegNet

2020-09-06 19:34:37 2535 3

原创 语义分割经典网络:全卷积神经网络(FCN)&U-net

语义分割经典网络:全卷积神经网络(FCN)&U-netFCN解决问题将全连接层替换为卷积层:上采样output使其恢复到原图分辨率使用FCNs网络来进行像素级别的图像分类U-net背景U-Net架构overlap-tile 策略图像分类和检测任务,一般包含图像分类、目标检测、语义分割。其中语义分割相对较难,因为要预测的是每一个像素的类别。FCN全卷积神经网络(Fully Convolutional Network)是目前很多语义分割方法的基础。从图中可看出,神经网络结构只有卷积模块,在网络

2020-07-24 09:24:57 2630 1

原创 使用PCA拟合平面

背景本文参考以下两篇平面解析的论文。《Fast Plane Extraction in Organized Point Clouds Using Agglomerative Hierarchical Clustering》2014 ICRA《Fast Cylinder and Plane Extraction from Depth Cameras for Visual Odometry》2018 IROS这两篇论文在为数不多的平面解析中都取得了较好的效果,并且均开源。本文不详细解析论文本身的方法,而

2020-07-18 17:28:54 5797 3

原创 懒人论文自动下载器

背景笔者是VSLAM领域,虽然VSLAM领域也属于CV领域的,但却远没有CV三大顶会那么火热。虽然咱也有论文的list,但却没有批量下载的方法?(没人整理)。作为一个懒人,自然而然就希望有一个方法,可以下载顶会/顶刊的所有论文,或者是下载某一次会议/期刊中含有感兴趣的关键词的论文。于是趁着找论文的空隙,做了一个简单的自动论文下载器,该方法不仅可用于机器人领域,任何领域都能用。模块DBLP:是计算机领域内对研究的成果以作者为核心的一个计算机类英文文献的集成数据库系统。BeautifulSoup:是一种

2020-07-18 01:15:41 1002 1

原创 Resnet原理&源码简单分析

嗨,小伙伴们,今天让我们来了解一下Resnet的原理以及Resnet18网络在Pytorch的实现。Resnet想必大家都很熟悉了,它的中文名为残差网络,是由何恺明大佬提出的一种网络结构。在论文的开篇,提出了一个问题,神经网络越深,性能就越好吗?答案是否定的,如越深的神经网络可能造成著名的梯度消失、爆炸问题,但这个问题已经通过Batch normalization解决。但更深的网络呢?会出现网络层数增加但loss不降反升的情况(如下图),而且这种下降并不是通过过拟合引起的。为了能够实现更深的网络

2020-07-03 11:01:37 1493 1

原创 leetcode:1309. 解码字母到整数映射(c++)

这种映射题目的一种想法是找到它和初值的差距,然后与初值加和即可。class Solution {public: string freqAlphabets(string s) { int map = 96; // a前面一个数的ascii码 string res; // 结果字符串 for(int i = 0; i < s.size(); i ++) //遍历s字符串 { //分两种情况,没遇到

2020-06-26 11:24:51 301

原创 一个简单三层神经网络BP算法的公式推导

一个简单的三层神经网络BP算法的公式推导神经网络表示梯度下降法前向误差传播反向误差传播神经网络表示让我们来看一个最简单的神经网络,该神经网络只有三层,分别是输入层,隐藏层和输出层。为了表示方便,我们把线性函数和非线性函数分开,神经网络可以画成如下:其中φ(x)表示激活函数,我们知道神经网络算法就是为了拟合一个函数从而实现分类或回归等任务。由于前面只使用了线性函数,只能拟合线性函数,但在实际上很多任务的函数形态都是非线性的,所以激活函数的作用就是为了增加函数的非线性,这样就可以拟合任意函数了。言

2020-06-06 18:42:59 3477 1

原创 leetcode50:Pow(x,n)(c++)

本题有两个地方需要考虑。1.正负号题目的n取值范围为−231-2^{31}−231到2312^{31}231。如果n取−231-2^{31}−231,直接取该值负号,会出现内存溢出现象。所以我们可以定义一个long类型再取负号,或使用abs函数。2.暴力法超时问题很多小伙伴会先想到逐个逐个乘,但这样在数值大的时候会超时。、针对这个问题,我们可能尽可能增大基底x,减小幂次n。比如2的10次方,可以写成4的5次方,还可以写成416^2,最后写成4256。n为偶数:xn=(x2)n/2x^n

2020-05-29 14:07:10 250

原创 Realsense D435i单目跑ORB_SLAM2(无ROS版)

主要参考mono_euroc这个文件修改,把数据源改成realsense的就可以了。如何获取realsense数据,在之前的博客也阐述过。Realsense D435i +Opencv 获取彩色、深度、IMU数据并对齐首先先修改配置,在Example/Monocular下面创建一个D435i.yaml,把相机自身的内参写进去,格式可以参考Monocular文件夹里其他的yaml文件。%YAML:1.0#-----------------------------------------------

2020-05-23 11:45:22 1326 2

原创 leetcode:c++实现用队列实现栈,用栈实现队列

实际上,我们只要把握住栈和队列的特点,就不难做这道题。栈的特点是先进后出队列的特点是先进先出用队列实现栈首先我们先看队列实现栈,要求实现栈的以下函数:push(x) -- 元素 x 入栈pop() -- 移除栈顶元素top() -- 获取栈顶元素empty() -- 返回栈是否为空首先,push()和empty()两个函数是直接调用队列的push()和empty()函数即可,不需要其他操作。然后是pop()和top()函数,假设在栈中存储了1,2,3,4,5,6 。那么此时栈顶是6,p

2020-05-22 19:19:34 290

原创 Linux&C++以时间批量重命名图片数据集

我们知道,SLAM与SFM不同,SLAM是按时间序列来处理图像。所以,当我们有一个数据集且要把它用到我们的SLAM系统中,有时候数据集的命名方式可能不太友好,比如TUM的RGBD数据集中的RGB数据,是以时间命名的,为了能够把该数据集用到我们的系统上,而且又想比较方便地读取图片,我们可以批量重命名这些图像数据。实际上如果是只想简单地将图片赋值为0.png、1.png…是不需要靠编程就可以实现的,...

2020-04-27 23:30:16 606

原创 leetcode371:两整数之和

理所当然会想到c++的位运算。1.在不考虑进位的情况下,直接对a、b取异或操作即可。 a^b2.然后再考虑进位的情况,两个数在相同的位置下,都为1才会进位,那么我们就可以用与运算,再左移一位,得到要进位的数。(a&b) << 13.然后让这两个数做异或运算,得到下一轮的不考虑进位情况的数。因为可能还有进位,所以又从步骤2开始,循环直到(a&b) <&l...

2020-04-18 00:12:37 238

原创 leetcode263:丑数

思路:让num分别除以2,3,5,如果有能整除的数就往下走,令num=num/能整除的数,直到num为1时,那么说明这个数是丑数。如果当前num无法整除2,3,5,说明就是false。 bool isUgly(int num){ int a[3] = {2,3,5}; if(num == 0) { return false;} w...

2020-04-17 22:55:32 165

原创 leetcode884:两句话中不常见的词

使用map存储每个词的次数,遍历两句话,次数为1的即为不常见的词。其中判断是否等于空格的十进制数32,若等于,则说明一个词结束了。 vector<string> uncommonFromSentences(string A, string B) { map<string,int> mymap; int pos = 0 ; ...

2020-04-17 21:30:54 274

原创 leetcode面试题13:机器人的运动范围

此题依旧采用暴力法&BFS两种方法。首先要看懂题目,例如如 let m = 20, n = 15, k = 9,下图绿色的代表能走的,红色的代表超过个位数的sum。图源于此。但题目是有限制的,“每次可以向左、右、上、下移动一格(不能移动到方格外)”,意思是右下角那一块绿色没办法走到(机器人不可能穿墙)。我们首先使用暴力求解,思路:从左到右,从上到下遍历,判断当前位置的左边和上边机...

2020-04-11 00:15:27 244

原创 Paper阅读:Dynamic-SLAM

Paper阅读:Dynamic-SLAMMissed detection compensation algorithm(漏检补偿算法)在动态环境中工作时,由于动态对象的干扰,传统的SLAM框架的性能很差。 通过在对象检测中利用深度学习的优势,提出了一种语义动态的动态地图定位和映射框架Dynamic-SLAM,以解决动态环境中的SLAM问题。本文的主要三大贡献:针对SLAM系统提出了一种基...

2020-04-10 10:03:22 948 2

原创 leetcode面试题01.07:旋转矩阵

本题可以先找规律。遍历蓝色框数字,找到对应的其余三个数字,交换即可。假设当前为matrix[i][j],其余三个数分别为:[j][m_size-i-1][m_size-i-1][m_size-j-1][m_size-j-1][i]代码: void rotate(vector<vector<int>>& matrix) { int...

2020-04-07 10:34:22 196

原创 leetcode448:找到所有数组中消失的数字

打卡简单题,思路就是先排序,定义两个计数变量,一个是当前要对比的数字,一个是计算有多少个重复的数字。遍历所有数字,先判断是否和上一个数字相等,相等的话就continue,同时重复数字+1,若不相等,判断是否和当前要对比的数字不等,不等则存入result数组,且重复数-1(重复数是为了判断 数组最大数后面是否还有缺失数,有的话后面补全)。遍历完成之后,若重复数大于0,则把后面缺失的数都补进resu...

2020-04-06 23:27:55 211

原创 音视频系列6:ffmpeg多线程拉流

ffmpeg多线程拉流前言源码前言本篇博客是音视频系列的续集与改进,有兴趣的可以看我之前的博客。音视频系列博客本节主要是对以下两篇博客进行改造升级,使得当前可以同时拉多个流,并且修改了一些之前的bug比如说段错误Segmentation fault。音视频系列1:ffmpeg+rtmp拉流音视频系列2:ffmpeg将H.264解码为RGB环境是Ubuntu18.04,ffmpeg4...

2020-04-04 11:08:30 1678

原创 leetcode8:字符串转换整数

四月份的leetcode都好难,都是中等的啊。今天要实现的实际上是atoi函数。解题关键点在于:1.要区分空格,正负号符号,数字符号,和其他符号2.数字符号或者是正负号符号一旦开始了,下一个数就不能是正负号符号或其他符号3.要考虑溢出情况要知道符号代表的整型,可以去查看ascii表。整体思路为:遍历所有数字,先把数字前空格去掉,遇到非空字符时,先判断是不是其他符号,如果不是的话,对号...

2020-04-03 22:08:26 196

原创 leetcode912:排序数组

题目没什么好说的,就是用排序算法得到从大到小的数组。目前只会冒泡排序- -毫无意外的超出时间限制了。 vector<int> sortArray(vector<int>& nums) { for(int i = 0; i < nums.size(); i ++) { for(int j = 0;...

2020-04-01 09:59:22 208

原创 leetcode914:卡牌分组

今日打卡,仍然是暴力解,效率很低。思路就是先把每个数存进map里,key是deck的数,value是这个数的个数,然后从遍历2到10000(题目限制了10000),看是否所有次数都能除尽,若所有值的个数都能除尽,说明这个数是他们的最大公约数,即返回正确,如果找不到这个数,那么当然就返回false啦。另一种思路:其实就是计算所有数个数的最大公约数,也可以这么做。源码:bool hasGroup...

2020-03-27 11:40:00 134

原创 leetcode999:车的可用捕获量

今日打卡,暴力破解!先找到R的位置,然后固定横轴扫描R的左侧和右侧;再固定纵轴扫描R的上侧和下侧,碰到卒就增加1并且break,碰到墙壁或象就退出。因为已经告诉你是在8*8矩阵里操作,所以下面直接用。源码: int numRookCaptures(vector<vector<char>>& board) { int heng ,zong ...

2020-03-26 19:19:12 180

原创 leetcode892:三维形体的表面积

此题题目都看不懂,描述信息太少了。关于题目的理解,可以参考此处:https://leetcode-cn.com/problems/surface-area-of-3d-shapes/solution/shi-li-you-tu-you-zhen-xiang-jiang-jie-yi-kan-jiu-/当你看懂之后,就可以开始做题了。一开始想着使用三视图×2的方式来做,发现中间空部分始终想不...

2020-03-26 09:47:16 233

原创 ROS多用户并发demo

ROS多用户并发demo前言程序测试结果结论前言嗨,各位小伙子,这节我们来写一个简单的多用户demo,并且每个用户都可以使用ROS库。你可以把SLAM程序想成一台车,每个用户都有一把钥匙,他可以选择开或者不开。构想的框图如下:那么问题来了,本地只有一套SLAM代码,SLAM代码又由很多ROS node组成,咋办?要知道ros node可是要用命令行打开的。说实话,对ROS不熟悉的我,也...

2020-03-24 23:32:05 462

原创 leetcode面试题17.16按摩师

解题思路:这实际上是一个动态规划问题。思路是遍历一次,当前索引对应的值 变为 当前值和之前值和的最大值,因为必须至少相隔1个位置,所以要么选i-2索引,要么选i-3索引作为之前的和,到最后返回nums.size()-1索引的值或是nums.size()-2索引的值,可能有点绕口,其实核心就是当前值 变为 是对之前值的求和,看代码应该是好懂的。时间复杂度均为O(n),空间复杂度为O(1)int ...

2020-03-24 22:27:55 133

原创 从贝叶斯推断到SLAM的数学模型

SLAM问题与概率模型贝叶斯推断SLAM数学问题描述SLAM的全称是Simultaneous Location And Mapping,即同时定位与建图。机器人要在未知的环境中实时的估算自己的运动、定位并建图。 想象一个移动机器人在未知环境中移动,使用位于机器人上的传感器对一些未知的地标进行观察,就如下图所示。贝叶斯推断贝叶斯定理,实际上是从条件概率衍生而来的。所以我们先从条件概率公式说起...

2020-03-21 21:10:41 1497 1

原创 leetcode414:第三大的数

思路:先把所有数字排序,然后定义一个map来存取,key为nums的值,value为nums出现的次数。这样就可以滤掉多余的数,当然你不采用map的方法,而删除掉多余的数也可以。然后再定义一个map迭代器,返回相应的数即可。使用map方法来做:int thirdMax(vector<int>& nums) { map<int,int> sortnums;...

2020-03-20 12:44:47 206

原创 leetcode面试题40:最小的k个数

今日打卡,排序+返回前k个数即可。主要就是考察排序。本来尝试自己写了一个冒泡排序法,可是超出时间限制,于是直接用了内置的排序。冒泡排序: for(int i = 0 ; i < arr.size() - 1; i++) { for(int j = i + 1; j < arr.size() ; j++) { i...

2020-03-20 09:14:09 152

原创 音视频系列5:ffmpeg拉流并引入ROS库

音视频系列5:ffmpeg拉流并引入ROS系统前言封装引入ROS库前言音视频系列博客:音视频系列1:ffmpeg+rtmp拉流音视频系列2:ffmpeg将H.264解码为RGB音视频系列3:使用ffmpeg + nginx搭建本地转发服务器音视频系列4:新手如何入门ffmpeg(以FLV解码H.264为例)有兴趣的小伙伴们可以看看。上节我们更新了ffmpeg拉流中过时的API,本...

2020-03-19 16:19:09 1194 1

原创 leetcode409:最长回文数

本题要求:找到可构成回文数的最大个数res本题实可以这么做:找出字符串中字母的个数1.如果该字母能被2整除,那么说明可以构成回文,加到res去;2.如果该字母不能被2整除,但大于1,比如3,那么可以减1,然后剩下的个数可以构成回文数,加到res去。3.遍历完再判断一下,如果res小于字符串的个数,说明可以随便拿一个数放中间,这样回文字符串就是奇数了,那么把这个数加到res去。int lo...

2020-03-19 08:33:16 525

原创 leetcode836:矩形重叠

因为重叠的情况有很多种,所以我们考虑不重叠的情况。要使矩形1与矩形2不重叠,那么矩形1必然在矩形2的四周。分成四部分。如下图:bool isRectangleOverlap(vector<int>& rec1, vector<int>& rec2){ if(rec1[0] >= rec2[2] || rec1[1] >= rec...

2020-03-18 21:51:14 161

原创 leetcode1160:拼写单词

题目的意思很简单,就是要看字母表字符串能否拼出单词,能拼出就把单词的字母大小加上。比较坑的是,每次拼写,字母表中的每个字符只能用一次,不然的话可以用find函数,循环遍历的时候find一下看该字符串在不在字母表里就行了。每个字符只能用一次,这意味着要么你记录这个字符用没用过,要么你先记录单词的数量,然后用一次减一次。这里使用了哈希法,把字母表字符串的个数记录下来。然后循环遍历,每次遇到个数为...

2020-03-17 22:18:56 164

原创 音视频系列4:新手如何入门ffmpeg(以FLV解码H.264为例)

音视频系列4:新手如何入门ffmpeg(以FLV解码H.264为例)安装上手直接跑demoffmpeg库的Tutorial专业知识的学习看ffmpeg的源码举例发现问题查找API文档ffmpeg源码走起修改后的源码安装首先是安装,可以选择包管理器(在ubuntu即apt-get)安装,也可以使用源码编译的方式,两者的区别就是源码编译可以看到源码,而包管理器则不能,对于新手来说,我个人倾向于使用...

2020-03-17 14:04:30 1106

原创 leetcode面试题:字符串压缩

字符串压缩。利用字符重复出现的次数,编写一种方法,实现基本的字符串压缩功能。比如,字符串aabcccccaaa会变为a2b1c5a3。若“压缩”后的字符串没有变短,则返回原先的字符串。你可以假设字符串中只包含大小写英文字母(a至z)。划重点:1.重复字符串提取个数2.最后返回的字符串是 字符+字符出现个数3.如果压缩完字符串size大于等于原字符串size,则返回原先字符串。比较要注意的...

2020-03-16 20:23:58 314 1

原创 leetcode1071:字符串的最大公因子

理解题目的意思,给定的两个字符串str1和str2,要求除尽字符串X。除尽的意思就是可以由多个X来表示str1和str2。把X当成一份字符串,一份字符串的大小大于等于1.str1 = AXstr2 = BX目的是求X。由上面式子,可以先判断是否能被除尽,能被除尽时,要满足:str1 + str2 = str2 + str1然后满足能被除尽之后,用gcd算法,即辗转相除法。辗转相除...

2020-03-16 19:41:03 160

原创 音视频系列3:使用ffmpeg + nginx搭建本地转发服务器

音视频系列3:使用nginx搭建本地推流服务前言实际操作nginx+nginx-rtmp-module安装配置nginx的rtmp应用启动ffmpeg推流拉流测试前言音视频系列:音视频系列1:ffmpeg+rtmp拉流音视频系列2:ffmpeg将H.264解码为RGB有兴趣的朋友可以看看。上一节我们采用ffmpeg拉取芒果台视频,并处理成rgb,奈何芒果台不给力,拉流卡卡的,这样就不...

2020-03-16 16:31:25 738

原创 音视频系列2:ffmpeg将H.264解码为RGB

ffmpeg+rtmp+opencv 将h.264处理解码为rgb前言源码前言喜大普奔,终于更新啦,上期说到,如何使用ffmpeg+rtmp进行拉流,不熟悉的小伙伴们,可以先看上一期。今天我们要实现的是使用ffmpeg+rtmp拉流,拉完的FLV流,提取出H.264视频,再提取出YUV,再提取出rgb图,最后用opencv处理图像。我的任务是得到rgb图像,从而可以对图像进行处理。整体流程:...

2020-03-16 00:20:18 1880

SEGGER RTT文件和 NRF_LOG 相关文件

里面包含了:nrf_log.c和nrf_log.h; 以及SEGGER_RTT.C、SEGGER_RTT_printf.c、RTT_Syscalls_KEIL.C以及 SEGGER_RTT.h、SEGGER_RTT_Conf.h

2018-11-29

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

TA关注的人

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