- 博客(49)
- 收藏
- 关注
原创 VS2015显示“正在从以下位置加载符号“的解决办法
解决方法:VS—工具----选项—调试—符号。看到‘MicroSoft符号服务器’,去掉方框中的√,确定即可,之后就不会再调试时加载。
2020-11-13 09:50:37 934
原创 Ros下Aruco模块的使用
生成ARUCO_ROS MARKER链接: http://chev.me/arucogen/.首先启动rosroscore打开相机节点,在此提供usb相机与Realsense D435i的启动方法:roslaunch usb_cam usb_cam-test.launch #打开usb相机roslaunch realsense2_camera rs_camera.launch #打开realsense启动Arucoroslaunch aruco_ros single.laun
2020-11-05 19:24:41 2564 1
原创 Ubuntu下编辑权限只读文件的方法
首先要注意的是只读文件一般都是系统文件,或者软件配置文件,修改时要尤其谨慎本文提供两种方法:方法一首先安装一个插件sudo apt install nautilus-admin然后运行以下指令重启文件管理器nautilus -q然后就可以右键相应文件并选择“以管理员方式打开”方法二进入相应文件夹,打开终端,使用sudo命令打开...
2020-11-04 14:20:25 2745 1
原创 Yolo框架简介
YOLO(You Only Look Once) 是一种基于深度神经网络的对象识别和定位算法,其最大的特点是运行速度很快,可以用于实时系统。现在YOLO已经发展到v4版本.论文地址:链接: https://pjreddie.com/media/files/papers/yolo.pdf.Yolo结构的作用:对象识别和定位,可以看成两个任务:找到图片中某个存在对象的区域,然后识别出该区域中具体是哪个对象。对象识别这件事(一张图片仅包含一个对象,且基本占据图片的整个范围),最近几年基于CNN卷积神经网络的
2020-11-03 21:16:21 5295 1
原创 Effective C++阅读笔记②
三、资源管理Resource Management13:以对象管理资源Use objects to manage resources1、像auto_ptr、share_ptr那样管理对象2、auto_ptr被销毁时会自动删除所指对象,所以不要让多个autp_ptr指向同一个对象。如果以copy构造函数或者copy_assignment操作符复制他们,他们会变为null,而复制所得的新的指针或获得资源的唯一拥有权。STL容器容不得auto_ptr。3、share_ptr属于RCSP(referen
2020-11-03 17:53:28 82
原创 Effective C++阅读笔记①
一、让自己习惯C++Accustoming Yourself to C++01:视C++为一个语言联邦View C++ as a federation of languages简单总结可理解为C++包括以下内容:①C语言部分②Object-Oriented C++ 包括封装多态继承等机制③Template C++ 泛型编程部分④STL 即标准模板库,包含容器、算法、迭代器。02:尽量以const,enum,inline替换#definePrefer consts,enums,and
2020-11-02 20:25:20 154
原创 神经网络分割之FCN
链接: https://zhuanlan.zhihu.com/p/31428783.链接: https://blog.csdn.net/qq_36269513/article/details/80420363.暂转载两篇帮助很大的文章
2020-11-02 12:14:23 318
原创 目标检测之Faster R-CNN
论文链接: https://arxiv.org/abs/1506.01497.一、提出Faster R-CNN是为了改进Fast R-CNN而提出来的。因为在Fast R-CNN文章中的测试时间是不包括search selective时间的,而在测试时很大的一部分时间要耗费在候选区域的提取上。Faster R-CNN解决了耗费时间提取候选区域的问题。整体结构整体结构具体如下图Faster R-CNN由下面几部分组成:1)卷积层(conv layers),用于提取图片的特征,输入为整张图片,
2020-11-02 10:59:07 305
原创 目标检测之Fast-RCNN
论文链接: https://www.cv-foundation.org/openaccess/content_iccv_2015/papers/Girshick_Fast_R-CNN_ICCV_2015_paper.pdf.Fast R-CNN是在 R-CNN的基础上进行的改进,大致框架是一致的。总体而言,Fast R-CNN相对于R-CNN而言,主要提出了三个改进:提出了RoIPooling,避免了对提取的region proposals进行缩放到224x224,然后经过pre-trained C
2020-10-28 10:07:52 138
原创 RCNN简介
RCNN(Regions with CNN features)是在2014年提出的一种目标检测算法,RCNN是将CNN方法应用到目标检测问题上的一个里程碑,借助CNN良好的特征提取和分类的性能,通过REgionPropo方法实现目标检测。RCNN的特点与流程总结一:速度经典的目标检测算法使用滑动窗法依次判断所有可能的区域。本文则预先提取一系列较可能是物体的候选区域,之后仅在这些候选区域上提取特征,进行判断。二:训练集经典的目标检测算法在区域中提取人工设定的特征(Haar,HOG)。本文则需要训练深
2020-10-28 09:39:47 3165
原创 DenseNet Pytorch实现
DenseNet网络实现DenseNet和ResNet不同在于ResNet是跨层求和,而DenseNet是跨层将特征在通道维度进行拼接,下图一是ResNet,二是DenseNet。因为实在通道维度进行特征的拼接,所以底层的输出会保留进入后面的曾,这样能更好的保证梯度的传播,同时能够使用低维的特征和高维的特征进行联合训练,能够得到更好的结果。DenseNet主要有Dense block组成,使用pytorch实现如下def conv_block(in_channel, out_channel):
2020-10-11 21:13:20 1458
原创 ResNet Pytorch实现
ResNet Pytorch实现ResNet通过引入跨连接层解决了梯度回传消失的问题如下图所示:这就是普通的网络连接跟跨层残差连接的对比图,使用普通的连接,上层的梯度必须要一层一层的传回来,而使用残差链接,相当于中间有了一条更短的路,梯度能够从这条更短的路传回来,这避免了梯度过小的情况。残差网络的结构就是上面这种残差快的堆叠,residual block实现如下:class residual_block(nn.Module): def __init__(self, in_channel,
2020-10-11 19:39:16 223
原创 Pytorch实现GoogLeNet
Pytorch实现GoogLeNetGoogLeNet也叫InceptionNet,在2014年被提出,如今已到V4版本。GoogleNet比VGGNet具有更深的网络结构,一共有22层,但是参数比AlexNet要少12倍,但是计算量是AlexNet的4倍,原因就是它采用很有效的Inception模块,并且没有全连接层。最重要的创新点就在于使用inception模块,通过使用不同维度的卷积提取不同尺度的特征图。左图是最初的Inception模块,右图是使用的1×1得卷积对左图的改进,降低了输入的特征图维
2020-10-11 15:55:50 129
转载 VGG Pytorch复现
VggNet Pytorch复现一、简介VggNet是第一个真正意义上的深层网络结构,该网络结构简单,就是不断堆叠卷积层和池化层。VggNet相比AlexNet的一个改进是采用连续的几个3x3的卷积核代替AlexNet中的较大卷积核(11x11,7x7,5x5)。对于给定的感受野(与输出有关的输入图片的局部大小),采用堆积的小卷积核是优于采用大的卷积核,因为多层非线性层可以增加网络深度来保证学习更复杂的模式,而且代价还比较小(参数更少)。简单来说,在VGG中,使用了3个3x3卷积核来代替7x7卷积核
2020-10-11 15:44:44 394
原创 AlexNet Pytorch复现
AlexNet Pytorch复现一、简介本文将简要介绍AlexNet的网络结构并使用pytorch进行网络结构的复现AlexNet在2012年提出,以0.85的正确率获得分类比赛的冠军,开启人工智能新篇章。简单讲AlexNet是几个卷积池化堆叠后连接几个全连接层。整体结构如下图:二、结构分析AlexNet每层的超参数如下图所示,其中输入尺寸为227227,第一个卷积使用较大的核尺寸1111,步长为4,有96个卷积核;紧接着一层LRN层;然后是最大池化层,核为33,步长为2。这之后的卷积层的核
2020-10-11 14:47:43 564
原创 LeNet-5 Pytorch复现
LeNet-5 Pytorch复现本文将简要介绍LeNet-5的网络结构并使用pytorch进行网络结构的复现LeNet是1998年用来识别手写数字图像的卷积神经网络,它展示了通过梯度下降训练卷积神经网络可以达到手写数字识别在当时最先进的结果。这个奠基性的工作第一次将卷积神经网络推上舞台,为世人所知。Lenet-5结构如下:各层信息:1.第一层C1是一个卷积层输入图片: 3232卷积核大小: 55卷积核种类: 6输出feature map大小:2828(32-5+1)神经元数量:2828
2020-10-11 14:22:37 468
原创 sudo rosdep init出现错误
出现:ERROR: cannot download default sources list from:https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20-default.listWebsite may be down.解决办法,执行如下命令cd /etcsudo gedit hosts在文件末尾添加151.101.84.133 raw.githubusercontent.com
2020-10-06 15:55:23 120 1
原创 E: Unable to locate package解决办法
问题:E: Unable to locate package解决:sudo apt-get upgrade
2020-10-06 12:57:15 2244 1
原创 卷积层、池化层和全连接层
卷积层(Convolution)什么是卷积,如下图所示,卷积操作是用卷积核,按照一定的步长,在一张图片上规律性的移动。卷积核的每个单元有权重,在卷积核移动的过程中将图片上的像素和卷积核的对应权重相乘,最后将所有乘积相加得到一个输出。作用和意义:①局部感知:在传统神经网络中每个神经元都要与图片上每个像素相连接,这样的话就会造成权重的数量巨大造成网络难以训练。而在含有卷积层的的神经网络中每个神经元的权重个数都是卷积核的大小,这样就相当于没有神经元只与对应图片部分的像素相连接。这样就极大的减少了权重的数量
2020-10-04 20:50:12 2676
原创 卷积神经网络基础
深度学习简介2006年,Hinton提出了深度学习,基本思想是通过构建多层网络,对目标进行多层表示,以期通过多层的高层次特征来表示数据的抽象语义信息,获得更好的特征鲁棒性。深层模型优于浅层模型,这是因为浅层学习模型通常要由人工的方法来获得好的样本特性,在此基础上进行识别和预测,因此方法的有效性在很大程度上受到特征提取的制约。一、什么是卷积神经网络卷积神经网络(convolutional neural network)——CNN卷积神经网络是一种带有卷积结构的深度神经网络,是一种多层的监督学习神经网
2020-10-04 14:41:18 1428
原创 RuntimeError:An attempt has been made to start a new process before the current pr
Pytorch加载数据时的错误:RuntimeError:An attempt has been made to start a new process before the current prThis probably means that you are not using fork to start yourchild processes and you have forgotten to use the proper idiomin the main module: if
2020-09-28 19:23:05 176
原创 什么是Pytorch
转载于Pytorch官网Tutorial。在此翻译并学习链接: https://pytorch.org/tutorials/beginner/blitz/tensor_tutorial.html#sphx-glr-beginner-blitz-tensor-tutorial-py.什么是PytorchPytorch是基于Python的科学相关计算模块,有以下两个特点:①代替Numpy模块,可以使用GPU。②拥有高灵活性和效率的深度学习平台Tensor概念Tensor类似于Numpy的数组,T
2020-09-28 10:29:57 179
原创 LeetCode—455 分发饼干 Cpp&Python
LeetCode—455 分发饼干 Cpp&Python一、方法与思路C++代码Python代码假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。对每个孩子 i ,都有一个胃口值 gi ,这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j ,都有一个尺寸 sj 。如果 sj >= gi ,我们可以将这个饼干 j 分配给孩子 i ,这个孩子会得到满足。你的目标是尽可能满足越多数量的孩子,并输出这个最大数值。输入: [1,2,3], [1,1]输出
2020-09-26 21:06:41 98
原创 ROS:解决rqt工具与Anaconda冲突报错
问题描述输入rosrun rqt_graph rqt_graph出现报错解决:pip install catkin_pkgpip install rosdep rosinstall_generator wstool rosinstall six vcstoolspip install pydot
2020-09-26 10:33:23 178
原创 ROS工作空间与功能包
工作空间工作空间(workspace)是一个存放工程开发相关文件的文件夹,其目录下有:①src:代码空间(Source Space)②build:编译空间(Build Space)③devel:开发空间(Development Space)④install:安装空间(Install Space)相关操作代码如下:①创建工作空间$ mkdir -p ~/catkin_ws/src$ cd ~/catkin_ws/src$ catkin_init_workspace②编译工作空间$ c
2020-09-25 14:59:52 596
原创 LeetCode—70 爬楼梯 Cpp&Python
LeetCode—70 爬楼梯 Cpp&Python一、方法与思路C++代码python代码假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?一、方法与思路假设爬到x级台阶的方法数为f(x),而达到x这一级时前一步可能是跨了1级或2级。由此可得状态方程f(x)= f(x-1) + f (x-2)初始化1级时有1种,2级时有两种,即:dp[1] = 1; dp[2] = 2;C++代码#include <st
2020-09-23 16:08:10 134
原创 ROS基础概念
一、节点与节点管理器节点(Node)——执行单元①执行具体任务的进程、可独立运行的可执行文件。②不同节点可使用不同编程语言,可分布式运行在不同主机。③节点在系统中的名称必须唯一。节点管理器(Ros Master)——控制中心①为节点提供命名和注册。②跟踪和记录Topic/service通信,辅助节点相互查找、建立连接。③提供参数服务器,节点使用此服务器存储和检索运行时的参数。大致关系示意如下图:二、话题通信话题(Topic)——异步通信机制①节点间用来传输数据的重要总线;②使用发
2020-09-23 12:37:02 417
原创 C++ STL——vector使用
一、Vector容器简介vector是将元素置于一个动态数组中加以管理的容器,vector可以随机存取元素。vector在尾部添加或移除元素非常快速,但是在头部和中部进行操作时会比较费时。需要头文件。二、vector对象的默认构造#include<vector>vector<T>name; //默认构造形式 //↑ ↑// 类型 变量名称//例:vector<int> name1;//存放int的vector容器vector<float>
2020-09-22 13:40:55 110
原创 LeetCode—232 用栈实现队列 Cpp&Python
LeetCode—225 用队列实现栈 Cpp&Python一、方法与思路二、C++代码三、Python代码一、方法与思路使用栈实现队列的下列操作:push(x) – 将一个元素放入队列的尾部。pop() – 从队列首部移除元素。peek() – 返回队列首部的元素。empty() – 返回队列是否为空。大体思路与Leetcode225题大致一样,根据栈和队列的性质进行设计链接: https://blog.csdn.net/weixin_45680994/article/deta
2020-09-21 18:23:48 119 1
原创 LeetCode—225 用队列实现栈 Cpp&Python
LeetCode—225 用队列实现栈 Cpp&Python一、方法与思路二、C++代码三、python代码使用队列实现栈的下列操作:push(x) – 元素 x 入栈pop() – 移除栈顶元素top() – 获取栈顶元素empty() – 返回栈是否为空一、方法与思路根据栈(stack)先进后出(First in Last out)和队列(queue)先进先出的特点(First in First out)的特点进行设计。top() – 获取栈顶元素 即 取队列首的头部pop
2020-09-21 18:09:40 138
原创 LeetCode—21 合并有序链表 Cpp&Python
LeetCode—21 合并有序链表 Cpp&Python一、方法与思路二、C++代码三、Python代码将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。过程如下:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4一、方法与思路递归法:终止条件,两个链表都为空时,表示合并完成判断 l1 和 l2 头结点哪个更小,然后较小结点的 next 指针指向其余结点
2020-09-19 18:32:10 120
原创 相机标定相关 Camera Calibration
为什么要标定在图像测量过程以及机器视觉应用中,为确定空间物体表面某点的三维几何位置与其在图像中对应点之间的相互关系,必须建立相机成像的几何模型,这些几何模型参数就是相机参数。需要通过标定来求出相机内参、相机外参及畸变参数。通常认为,相机的内参是出厂之后固定的,不会在使用的过程中发生变化,但有时需要自己标定来确定内参。相机的位姿旋转矩阵R和平移向量t称为相机的外参数。相比于不变的内参,外参会随着相机的运动发生改变,是待估计的目标。什么叫相机标定?在大多数条件下这些参数必须通过实验与计算才能得到,这个
2020-09-19 15:35:33 247
原创 LeetCode—160 相交链表 Cpp&Python
LeetCode—160 相交链表 Cpp&Python一、方法与思路二、C++代码三、Python代码编写一个程序,找到两个单链表相交的起始节点。一、方法与思路双指针法:创建两个指针cur1和cur2分别为headA和headB的头节点,然后让他们进行遍历,当cur1遍历完成后则重定位于headB的头节点,当cur2遍历完成后则重定位于headA的头节点。若在某一时刻相交则为相交节点二、C++代码class Solution {public: ListNode *ge
2020-09-18 19:04:09 121
原创 LeetCode—141 环形链表 Cpp&Python
LeetCode—141 环形链表 Cpp&Python一、方法与思路二、C++代码三、Python代码给定一个链表,判断链表中是否有环。如果链表中存在环,则返回 true 。 否则,返回 false 。一、方法与思路快慢指针法:建两个指针,在遍历时一个一次走一步,另一个一次走两步,若该链表有环,则快慢指针相遇返回True,否则返回False。二、C++代码class Solution {public:bool hasCycle(ListNode* head) { //两个运动
2020-09-18 18:36:13 203
原创 LeetCode—86 分隔链表 Cpp&Python
LeetCode—86 分隔链表 Cpp&Python一、方法与思路二、C++代码三、python代码题目要求:给定一个链表和一个特定值 x,对链表进行分隔,使得所有小于 x 的节点都在大于或等于 x 的节点之前。过程如下:输入: head = 1->4->3->2->5->2, x = 3输出: 1->2->2->4->3->5一、方法与思路通过创建两个虚拟的头节点less_head和more_head,同时创建两个节点
2020-09-18 16:36:34 156
转载 机器人学四元数
转载:链接: https://blog.csdn.net/weixin_38294178/article/details/87872893.待完善
2020-09-15 16:24:09 995
原创 机器人正解和逆解
正解FK给定机器人各关节的角度,计算出机器人末端的空间位置逆解IK已知机器人末端的位置和姿态,计算机器人各关节的角度值挖个坑待完善
2020-09-15 15:45:41 3261
原创 机械臂DH参数总结
DH参数DH参数(Denavit–Hartenberg parameters)是一个用四个参数表达两对关节连杆之间位置角度关系的机械臂数学模型和坐标系确定系统。DH选的四个参数都的含义如下:link length(连杆长度):两个关节的轴(旋转关节的旋转轴,平移关节的平移轴)之间的公共法线长度link twist(连杆扭转):一个关节的轴相对于另一个关节的轴绕它们的公共法线旋转的角度link offset(连杆偏移):一个关节与下一个关节的公共法线和它与上一个关节的公共法线沿这个关节轴的距离j
2020-09-15 15:22:42 16123 1
转载 深度学习笔记 Part3(转载)
转载深度学习笔记来源|Sophia@知乎,https://zhuanlan.zhihu.com/p/152362317本文仅用于学术分享,如有侵权,联系后台作删文处理卷积神经网络–CNN篇13. 卷积神经网络基础计算机视觉任务涉及的数据体量是特别大的,一张图像就有上千个数据点,更别提高分辨率图像和视频了。这时用全连接网络的话,参数数量太大,因而改用卷积神经网络(CNN),参数数量可以极大地减小。CNN 的工作原理就像用检测特定特征的过滤器扫描整张图像,进行特征提取,并逐层组合成越来越复杂的特征。
2020-09-14 18:32:01 85
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人