【opencv】 cv::_OutputArray 与 thread 共用导致的 !fixedSize() || ((Mat*)obj)->size.operator()() == Size(_col 创建一个临时拷贝变量,再将该临时变量传递给。指向已经销毁的临时变量。
【ORB-SLAM3】LoopClosing-回环检测与地图融合详述 1. 基础概念共视图 Covisibility Graph:共视图是一个加权无向图,图中每个节点是相机的位姿,如果两个位姿的关键帧拍摄到的相同关键点的数量达到一定值(论文设定为至少15个),则认为两个关键帧具有共视关系。此时两个节点之间便生成了一条边,边的权重与共视点的数量有关。生成树 Spanning Tree:Spanning Tree用最少的边连接了所有的关键帧节点(即共视图中所有的节点)。当一个关键帧被加入到共视图当中后,这个关键帧与共视图中具有最多观测点的关键帧之间建立一个边,完成Spa
【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三个参数。
【ORB-SLAM3】BOW词袋模型 基于视觉的闭环检测可以描述为,给定一张输入图像,在历史图像数据库中高效准确地搜索出与之相似的图像。而通常的穷举搜索法效率低下,类帧差法受制于图像视角变化、光照变化、曝光等因素无法稳定识别相似图像。词袋模型可以解决上述问题,其基于大量图像数据事先训练词袋字典,字典中包含各类图像特征,在实际应用时将输入图像和历史图像转化为几何特征集合进行相似度对比,这一方式更为符合人类的认知方式;通过设计特定的描述子实现特征的稳定提取,利用直接索引和倒排索引实现图像的快速搜索。论文:Gálvez-López D, Ta.
【python】python -m的简要记录 在使用python的过程中,总会遇到一些不直接运行‘python *.py’,而是运行‘python -m *.py’的情况,对于两者之间的差别总是存在一些朦朦胧胧、似是而非的认知,索性整理以供后续查阅。python -m 初识介绍-m指令前,需要介绍有关python的一些专业术语。python文件由被称为模块(module)的各单元组成。模块又可分成两种类型:代码模块(code module)与包模块(package module),最常见的代码模块是例如*.py的可执行文件,而最常见的包模块是.
【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
【混合编程】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
【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!!!Previous Frame ..
【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.
【CMake】备忘录 前言CMake 是“Cross platform MAKE”的缩写是一个开源的跨平台自动化建构系统,用来管理程序构建,不相依于特定编译器需要编写CMakeLists.txt文件来定制整个编译流程可以自动化编译源代码、创建库、生成可执行二进制文件等1. CMake使用注意事项- CMakeLists.txt文件CMake 构建专用定义文件,文件名严格区分大小写工程存在多个目录,可以每个目录都放一个CMakeLists.txt文件工程存在多个目录,也可以只用一个CMakeLists
【pytorch】踩坑记录 叶子节点和非叶子节点pytorch的tensor类中,有个叫is_leaf的属性,其为True则该变量为叶子节点,false则为非叶子节点。一般地:由用户自己创建的变量为叶子节点,网络层中的各层权重也为叶子节点。由叶子节点得到的中间变量为非叶子节点。反向传播后, 非叶子节点的梯度不会保存在内存中,如需保存非叶子节点的梯度,需调用retain_grad方法import torcha = torch.tensor([1.,2.,3.,4.,5.],requires_grad=True)b..
【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][.
【python】import时,python是如何找到我们需要的包的? 当执行import spam时,编译器首先从内嵌模块(buil-in module)中寻找spam库,如果内嵌模块不含有spam,编译器将依据sys.path所给的一系列文件夹路径寻找名为spam.py的文件。其中:sys.path由以下内容初始化:输入脚本的所在的文件夹PYTHONPATH默认的安装依赖文件夹备注:输入脚本所在的文件夹路径会放在 sys.path的第一个,即位于标准库路径的前面。这意味着,如果脚本目录中存在和标准库同名的库,该库将会覆盖标准库。...
【实验配置记录神器】yacs使用小结 github仓库地址:https://github.com/rbgirshick/yacs在做各种实验训练时,如何保证实验的可复现性是一个重要的问题,而一个可复现的实验依赖于:代码+相同的参数配置+其他的依赖(库,硬件)。yacs就是一个用于定义和管理实验配置信息的工具。1.安装pip install yacs2. 使用说明2.1 建立默认参数文件建立默认参数文件,通常命名为:config.py或者default.py,该文件包含了所有可配置的参数,并为每个参数设置默认值。默认参数需要建立.