- 博客(63)
- 收藏
- 关注
原创 【opencv】 cv::_OutputArray 与 thread 共用导致的 !fixedSize() || ((Mat*)obj)->size.operator()() == Size(_col
创建一个临时拷贝变量,再将该临时变量传递给。指向已经销毁的临时变量。
2023-10-17 11:47:58
266
原创 【ORB-SLAM3】LoopClosing-回环检测与地图融合详述
1. 基础概念共视图 Covisibility Graph:共视图是一个加权无向图,图中每个节点是相机的位姿,如果两个位姿的关键帧拍摄到的相同关键点的数量达到一定值(论文设定为至少15个),则认为两个关键帧具有共视关系。此时两个节点之间便生成了一条边,边的权重与共视点的数量有关。生成树 Spanning Tree:Spanning Tree用最少的边连接了所有的关键帧节点(即共视图中所有的节点)。当一个关键帧被加入到共视图当中后,这个关键帧与共视图中具有最多观测点的关键帧之间建立一个边,完成Spa
2022-06-13 17:16:17
3247
原创 【ORB-SLAM3】sim3求解-论文Closed-form solution of absolute orientation using unit quaternions 的阅读笔记
Sim3表示三维空间的相似变换(Similarity Transformation),sim3=[sRt01]sim3= \begin{bmatrix} sR & t \\ 0 & 1 \\ \end{bmatrix}sim3=[sR0t1],其实际上是计算旋转RRR、平移ttt、尺度因子sss三个参数。
2022-05-29 16:31:40
1022
原创 【ORB-SLAM3】BOW词袋模型
基于视觉的闭环检测可以描述为,给定一张输入图像,在历史图像数据库中高效准确地搜索出与之相似的图像。而通常的穷举搜索法效率低下,类帧差法受制于图像视角变化、光照变化、曝光等因素无法稳定识别相似图像。词袋模型可以解决上述问题,其基于大量图像数据事先训练词袋字典,字典中包含各类图像特征,在实际应用时将输入图像和历史图像转化为几何特征集合进行相似度对比,这一方式更为符合人类的认知方式;通过设计特定的描述子实现特征的稳定提取,利用直接索引和倒排索引实现图像的快速搜索。论文:Gálvez-López D, Ta.
2022-05-16 21:41:24
2274
原创 【python】python -m的简要记录
在使用python的过程中,总会遇到一些不直接运行‘python *.py’,而是运行‘python -m *.py’的情况,对于两者之间的差别总是存在一些朦朦胧胧、似是而非的认知,索性整理以供后续查阅。python -m 初识介绍-m指令前,需要介绍有关python的一些专业术语。python文件由被称为模块(module)的各单元组成。模块又可分成两种类型:代码模块(code module)与包模块(package module),最常见的代码模块是例如*.py的可执行文件,而最常见的包模块是.
2022-03-21 13:53:58
1793
2
原创 【libtorch】c++部署faster-scnn记录
1.利用torchscript文件导出模型pt文件官方文档:https://pytorch.org/tutorials/advanced/cpp_export.html#step-3-loading-your-script-module-in-c注意事项:需要打开model.eval()2.利用torchlib库加载pt文件3.图像前处理transform.totensor() C++代码编写https://blog.csdn.net/aLWX_hust/article/details/8659
2022-02-18 15:42:46
1237
1
原创 【混合编程】c++中调用python脚本
C++调用Pythonpython代码:#!/usr/bin/python#Filename:TestModule.pydef Hello(s): print ("Hello World") print(s)def Add(a, b): print('a=', a) print ('b=', b) return a + bclass Test: def __init__(self): print("Init") def
2022-02-09 16:42:50
870
原创 【ORB-SLAM3】bug汇总
assert 断言错误:Optimizer.cc:4436: assert(mit->second>=3);,但实际运行不满足该条件的情况还是蛮多的。KeyFrame.cc:181 死锁问题,去掉锁实际可以运行,但具体影响未知Optimizer.cc:7305 :空指针问题 if (!pFp->mpcpi) Verbose::PrintMess("pFp->mpcpi does not exist!!!\nPrevious Frame ..
2022-01-19 11:05:47
2036
1
原创 【gdb】使用gdb生成coredump文件并进行分析
打开core文件开关ulimit -c unlimited设置core文件名称及保存路径echo "/corefile/core-%e-%p-%t" > /proc/sys/kernel/core_pattern参数列表:%p - insert pid into filename 添加pid(进程id)%u - insert current uid into filename 添加当前uid(用户id)%g - insert current gid into filename.
2022-01-10 11:12:23
1627
原创 【CMake】备忘录
前言CMake 是“Cross platform MAKE”的缩写是一个开源的跨平台自动化建构系统,用来管理程序构建,不相依于特定编译器需要编写CMakeLists.txt文件来定制整个编译流程可以自动化编译源代码、创建库、生成可执行二进制文件等1. CMake使用注意事项- CMakeLists.txt文件CMake 构建专用定义文件,文件名严格区分大小写工程存在多个目录,可以每个目录都放一个CMakeLists.txt文件工程存在多个目录,也可以只用一个CMakeLists
2021-11-27 20:06:40
1167
原创 【pytorch】踩坑记录
叶子节点和非叶子节点pytorch的tensor类中,有个叫is_leaf的属性,其为True则该变量为叶子节点,false则为非叶子节点。一般地:由用户自己创建的变量为叶子节点,网络层中的各层权重也为叶子节点。由叶子节点得到的中间变量为非叶子节点。反向传播后, 非叶子节点的梯度不会保存在内存中,如需保存非叶子节点的梯度,需调用retain_grad方法import torcha = torch.tensor([1.,2.,3.,4.,5.],requires_grad=True)b..
2021-09-24 10:43:45
912
原创 【pytorch】torch.gather用法
torch.gather(input, dim, index, *, sparse_grad=False, out=None) → Tensor沿着由dim指定的轴,采集输入的数值输出的数学表达式:out[i][j][k] = input[index[i][j][k]][j][k] # if dim == 0out[i][j][k] = input[i][index[i][j][k]][k] # if dim == 1out[i][j][k] = input[i][j][index[i][.
2021-09-16 18:01:22
650
原创 【python】import时,python是如何找到我们需要的包的?
当执行import spam时,编译器首先从内嵌模块(buil-in module)中寻找spam库,如果内嵌模块不含有spam,编译器将依据sys.path所给的一系列文件夹路径寻找名为spam.py的文件。其中:sys.path由以下内容初始化:输入脚本的所在的文件夹PYTHONPATH默认的安装依赖文件夹备注:输入脚本所在的文件夹路径会放在 sys.path的第一个,即位于标准库路径的前面。这意味着,如果脚本目录中存在和标准库同名的库,该库将会覆盖标准库。...
2021-09-14 14:13:38
1080
原创 【实验配置记录神器】yacs使用小结
github仓库地址:https://github.com/rbgirshick/yacs在做各种实验训练时,如何保证实验的可复现性是一个重要的问题,而一个可复现的实验依赖于:代码+相同的参数配置+其他的依赖(库,硬件)。yacs就是一个用于定义和管理实验配置信息的工具。1.安装pip install yacs2. 使用说明2.1 建立默认参数文件建立默认参数文件,通常命名为:config.py或者default.py,该文件包含了所有可配置的参数,并为每个参数设置默认值。默认参数需要建立.
2021-09-09 20:37:44
1260
原创 【单目3D检测】Monoflex论文阅读
1. 引言随着深度学习的浪潮从 2D 图像席卷至更加广泛的数据模态和应用场景,3D 物体检测作为现实应用场景中极其重要的一个任务被越来越多的研究者所关注。在这一波浪潮中,最早取得成功和巨大现实影响力的当属基于 LiDAR 点云的针对室外驾驶场景的检测方案们(最早如 MV3D, VoxelNet, Frustum PointNet 等)。而单目3D检测由于其低成本的感知方案,近年来受到越来越多的学者关注,但纯视觉方案的检测性能远不如基于 LiDAR 的一众方法,这是符合直觉的,因为二维图像终究是二维信息,
2021-08-22 10:21:21
4049
7
原创 【python相对路径】为何使用了相对路径的文件只能作为模块或者库运行?
本文主要是为了对python的“相对路径引用”有一个更细节的理解1.文件结构2.文件代码2.1 package/file1.pydef file1_fun(): passif __name__ == '__main__': print("this is file1") 2.2 package/file2.pyfrom . import file1def file2_fun(): passif __name__ == '__main__': .
2021-08-13 16:02:32
200
原创 【单目测距】结合目标检测与平面假设的单目摄像头测距方法
引言:单目摄像头由于其成本低廉,易于部署等特性,在降低自动驾驶传感器成本上有着天然优势。然而,三维世界坐标系下的物体成像在二维平面后,往往损失了深度信息。要复原三维世界中目标的深度信息,往往需要设定一些限制条件。本文通过平面假设,使得通过二维目标检测得到的目标像素坐标能逆投影得到目标在世界坐标系下的坐标。1. kitti数据集中坐标系的介绍图一.kitti数据集采集车各坐标系图示kitti数据集采集车各传感器坐标如图一所示,所有传感器均采用右手坐标系,我们将用到Cam2摄像头,并将激光..
2021-08-11 17:32:22
2356
4
原创 【相机模型】相机投影关系
最近一直在从事单目相机测距相关工作,相机模型是一个绕不过的知识点,索性趁此总结,以供后续查阅。1.前置知识进行相机模型介绍前,需要对基本的坐标系变换公式有一个了解。1.1 坐标系旋转公式图1.坐标轴旋转图示原直角坐标系 xyzxyzxyz绕原点逆时针旋转 θ\thetaθ 角度,得到新坐标系x′y′z′x'y'z'x′y′z′,则原来的坐标系下R点坐标[x,y,z][x,y,z][x,y,z]与新坐标系下R点坐标关系为:[xyz]\begin{bmatrix}x\\y\\z\\\e.
2021-08-06 11:44:33
1682
原创 【opencv】相机标定矫正相关函数记录
1. cv2.calibrateCamera作用:通过要标定相机拍摄的不同方位的棋盘图,获取相机的内参矩阵,畸变系数,以及每幅图的相应旋转,平移矩阵函数定义:def calibrateCamera(objectPoints, imagePoints, imageSize, cameraMatrix, distCoeffs, rvecs=None, tvecs=None, flags=None, criteria=None)参数说明:>objectPoints:棋盘格角点在棋盘格坐标系的
2021-07-30 13:47:37
2745
转载 【python】列表中两个冒号和三个点的用法
https://blog.csdn.net/weixin_41481113/article/details/88382588#创建一个列表lis=[0,1,2,3,4,5,6,7,8,9]lis=[i for i in range(10)]#取后4个数,下面两个结果是一样的,一个是按照倒叙的索引,一个是正序索引lis_=lis[-4:]lis_=lis[6:]#取3、5、7、9lis_=lis[3::2]上面最后一个切片就用到了两个冒号,其实就是这个lis[start:end :ste.
2021-07-24 22:04:52
1367
原创 【3D目标检测】VoxelNet论文分析
标题:"VoxelNet: End-to-End Learning for Point Cloud Based 3D Object Detection"作者: Yin Zhou, Oncel Tuzel年份:2018期刊:Proceedings of the IEEE conference on computer vision and pattern recognition目录1 前言1 前言在VoexlNet之前,基于深度学习的点云3D目标检测方法主要有:将点云投影至前视图(Fro..
2021-07-14 17:20:34
570
5
原创 kitti数据集介绍及处理
kitii数据集介绍.一、裁剪Kitti点云数据集velodyne的每个激光点以float格式存储为二进制文件,每个点的存储格式为:(x,y,z,r)其中x,y,z,为上图所示的激光雷达坐标系下的坐标值,r为反射率原数据集中激光点云的点是在...
2021-07-03 11:31:37
3393
4
原创 GPU 内存释放
利用nvidia-smi查询内存占用情况利用kill -9 pid杀死相应进程,其中 PID是nvidia-smi语句查询出来的PID号码
2021-03-01 17:13:43
1138
原创 tensorflow-keras 如何继续训练网络
1.仅有网络权重构建相同网络配置compile载入权重model.fit2.用model.save保存得到的权重1.载入模型2.model.fit参考:Does model.compile() initialize all the weights and biases in Keras (tensorflow backend)?
2021-02-28 09:19:12
682
原创 keras 自定义层时重写get_config方法
.save方法会保存模型的权重,结构,当模型中含有自定义层时,往往会报错。此时,需要重写get_config方法
2021-02-27 09:37:31
4937
原创 ubuntu 代理配置
一、软件下载链接:https://pan.baidu.com/s/1cgyW74iyhxWpfousd6BfWg提取码:i5pz1.右击软件,勾选允许作为可执行软件运行2.双击软件,自动下载3.设置代理4.添加订阅地址,按回车键确定PS:若无订阅节点可在心阶上进行订阅5.更新服务器,选择节点二、浏览器代理设置(以chrome)1.0 ubuntu 18.04 chrome会自动配置浏览器代理,无需另外设置;ubuntu16.04可能遇到自身浏览器无法设置代理的情况,此时可通过
2021-02-19 12:29:10
11874
4
原创 【tf-trt环境配置】tensorflow+cuda+cudnn+tensorrt安装记录
本文将介绍如何编译tensorflow+cuda+cudnn+tensorrt环境查看tensorflow版本要求:https://www.tensorflow.org/install/sourceTennsorRT环境要求:https://docs.nvidia.com/deeplearning/tensorrt/archives/index.html选择综合对比确定环境如下:项目Valuecuda10.1 update2cudnn7.6.5baz
2021-01-27 21:35:19
4957
3
原创 【重新编译cv_bridge】解决ros和python3共存的问题
系统:ubuntu18.04 LTS(自带python3.6和python2.7)ros:melodicros和python3的冲突在于ros中的cv_bridge是基于python2编译的,在python3环境中运行会出现错误。注意:若使用了Anaconda环境,退出虚拟环境,在系统的python3中编译。1、首先进入python3的环境并安装相关依赖包sudo apt-get install python-catkin-tools python3-dev python3-catkin-p
2021-01-08 17:10:34
2908
4
原创 ros中利用python 订阅usb_cam图像数据,并利用cv_bridge转换成opencv格式,供后面目标检测使用
写在前面:系统:ubuntu18.04 LSTros 版本:melodic自行安装usb_cam依赖:sensor_msgsopencv2cv_bridgerospystd_msgs代码读取usb_cam摄像头图像,画个圆圈,再发布出去。#!/usr/bin/env pythonfrom __future__ import print_function# import roslib# roslib.load_manifest('my_package')import sys
2020-12-16 16:46:37
1130
2
原创 Ubuntu18.04 ros与conda共存以及使用pycharm作为IDE
预需求:安装好pycharm安装好ros1.在.bashrc 文件夹中加入ros路径source /opt/ros/melodic/setup.bash2.创建pycharm快捷方式sudo gedit /usr/share/applications/pycharm.desktop将如下内容复制到上面打开的文件:[Desktop Entry]Type=ApplicationName=PycharmGenericName=Pycharm3Comment=Pycharm3
2020-12-14 18:18:32
1029
原创 yolov4网络结构
yolov4从理解到代码实现什么是YOLO?主干网络backbone二级目录三级目录网络结构这篇文章中,我将从细节解释yolo原理以及其代码实现。什么是YOLO?YOLO(you only look once)是一种使用卷积神经网络进行目标检测的算法。主干网络backbone参考文档Gamma公式展示 Γ(n)=(n−1)!∀n∈N\Gamma(n) = (n-1)!\quad\foralln\in\mathbb NΓ(n)=(n−1)!∀n∈N 是通过 Euler integralΓ(z
2020-07-31 16:00:04
2442
原创 keras中如何自定义激活函数
问题描述:我正在使用keras,我想添加我自己的激活函数myf到tensorflow backend。如何定义新函数并使其可操作。因此我不使用以下代码:model.add(layers.Conv2D(64, (3, 3), activation='relu')) 而是使用:model.add(layers.Conv2D(64, (3, 3), activation='myf'))解答:首先,您需要使用 backend定义一个函数。 例如,这是我实现swish激活功能的方式from ker
2020-07-30 11:22:37
3809
6
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人