自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(219)
  • 资源 (7)
  • 收藏
  • 关注

原创 liosam 速腾RoboSense 32线激光雷达数据适配,timestamp位数不够

所以,timestamp用float是装不下的,所以需要把lio-sam的数据结构改double,从需求看,整数秒有10位,多出5位比毫秒还低,足够用了。其次,2^24共有8个十进制位. 所以有些编译器 float的有效数字位是 8位 , 有些有效数字位是 7位.(注意不是小数的位数, 是有效数字位)首先,float 是 32位, 其中有23位用于存放尾数, 带有一个固定隐含位…所以float的有24个二进制有效位位数.首先是时间,点云的时间是绝对时间,所以不能用加法。

2024-01-11 09:48:42 540

原创 open_vins 安装(ubuntu18.04 opencv3.2.0)

看到openvins引用新编译的opencv库,新的是3.2.0,默认是3.4.8,虽然我没替换3.4.8,制定了/usr/local/opencv320/,但是执行了make install。这种问题很简单了,直接打开cmake/OpenCVCompilerOptions.cmake:21 ,找到21行,他就是多了一行多余的endif,直接删除掉就好了。将头文件cuda_fp16.h添加至 opencv/modules/cudev/include/opencv2/cudev/common.hpp。

2023-12-27 17:25:15 1075

原创 ubuntu多用户环境dockerbug,卸载重装docker流程

之前不小心误操作删除重装docker,结果删除没成功,更没法重装,每次apt install都会报一个docker错误,虽然不影响软件的常规安装~但是现在还是需要装一个完整docker,还是选择删除一下,重点是关闭服务,关闭服务就好卸载了。

2023-12-26 11:33:51 745

原创 vins_fusion在rviz可视化中vio与global严重不重叠的问题

简单修改,额外加了一个path消息,global_path_rot,专门把VIO和global的旋转给逆回去了,注意不要乱动T,目标不是硬重叠,只是别像蓝色偏差角度那么大,T留着还有点用,另外T还是跟随优化的动态的。之前试过几个方案,比如先跑一次bag,记录VIO与global的后验角度与偏差,写一个程序,把整个global输出的csv文件转换一次,但是觉得这玩意一方面流程繁琐,一方面不实时,还是对rviz显示下手了。原因,vio与global没有yaw角度同步,各自为政,两者通过一个变换T维持关系。

2023-12-14 20:46:05 115

原创 ROS rviz数据显示错误:Transform [sender=unknown_publisher] For frame []: Frame [] does not exist

主要问题出在topic的header上,问题原因乍一想没想到,因为我实际代码更复杂一点,是大消息套小数据,小数据有header,而大消息没header,代码上下文就不赘述了。C++嘛,都有默认值的,主动写header赋值默认值和不赋值有区别吗?可能C++没区别,rostopic echo也没区别!放开注释,消息就能在rviz显示,即便不给topic的header写frame_id。仔细分析一下报错信息,不知道publisher是谁!其实就很明显了,是header有问题!但是RVIZ有区别!

2023-12-14 19:55:08 417

原创 SLAM中提到的相机位姿到底指什么?——高翔《视觉SLAM十四讲》的一点小错误

问题点:相机坐标是(5,0,0)^T,世界坐标点位置是(100,0,0)^T,相机坐标系下,这个点肯定是100-5,是(95,0,0)^T,但是又因为相机“位姿”是(5,0,0)^T,直接左乘相机“位姿”就得到了第一个结果"Pc=105 0 0,这明显和预期不一样,按照这种T的声明与定义,需要左乘T的逆才能得到预期的结果“Pc3 = 95 0 0 1”(齐次)根据主观习惯,相机在世界坐标系的位姿应该是Twc。根据习惯定义,想把Pw转换为Pc,应该是Pc=Tcw*Pw,高翔博士称为位姿的是Tcw。

2023-11-15 17:08:51 676

原创 LIO-SAM代码总结

看了一些注释版的代码,多少有些改动,或者是原文关系或者是注释版关系,好多topic和变量名有些中文理解上的“歧义”或者绕,简单整理一下。

2023-09-13 01:40:53 355

原创 ubuntu20.04 root用户下使用中文输入法——root用户pycharm无法用中文输入法问题

但是用root运行pycharm有一个问题——中文输入法不可用——多次重试,发现terminator中$下可以直接打中文,而#下就不可以,所以不是pycharm的问题,是root环境的问题(因为pycharm.sh本身在root下运行,所以不难理解)。因为一些众所不周知的bug,我的pycharm使用apt或者snap安装都不行了,官网下了“绿色版”,运行pycharm.sh也运行不起来,有个java相关环境报错,jre和jdk都装了,还是有点问题,最后尝试发现可以用root运行。最后尝试如下方法解决。

2023-08-18 10:25:17 869 1

原创 LIO-SAM UBUNTU16.04.7 ROS-KINETIC 环境 编译 安装

简单记录一下VMWARE15+UBUNTU16.04.7(默认16.04比较老旧,不好用,vmtools也都没有)选这个版本的理由也简单,只是为了参考一个博客,单独建的环境,虚拟机换版本也容易。ROS-kinetic,去官网看说明装的desktop-full。

2023-05-17 00:41:53 824

原创 《视觉SLAM十四讲》 编译报错问题汇总 Ubuntu20.04

高翔原视频是ubuntu14.04,看了一下,有很多库都有兼容问题,所以初步按这个Ubuntu 20装:这个教程是ubuntu20的,用ubuntu14会不兼容,比如qt5.12.12无法安装等(需要5.12.3)。和我之前安装的主要区别:之前用的是非虚拟机还装了ros的ubuntu20,现在裸ubuntu20.视觉SLAM十四讲slambook2示例代码所有依赖库的编译安装教程(VTK、OpenCV3、ceres、Sophus、g2o、Eigen、Pangolin、googletest等)_zeeq_的博

2022-10-16 20:13:53 5101 3

原创 cartographer与ros环境开发经验技巧总结(持续更新)

简介:不对具体功能系统讲解,网上已经很多了,只记录关键点和踩坑点。不对具体功能系统讲解,网上已经很多了,只记录关键点https://robot-ros.com/robot感觉很有用,至少这个tf很有用,讲的很清楚,比好多收费卖课的大忽悠要强(cvlife)https://robot-ros.com/robot/33772.htmltf主页tf教程主页void SigintHandler(int sig){std::cout ......

2022-02-22 17:46:39 1452

原创 读取访问权限冲突、解析多义性——Visual Studio C++中release调试问题

VS调试拖动崩溃问题,排除了for循环写法与open mp多线程问题因为库的原因,不方便使用debug版本,写了一个独立demo复现demo:void vs_runtime_bug_demo() { std::vector<std::tuple<std::string, std::string>> file_list_to_process; file_list_to_process.push_back({ "aaa","aaa" }); file_list_t

2021-10-11 15:27:39 1382

原创 相机参数(焦距)初始化对三维重建过程的影响

如果做过相机标定,可以直接使用,作为先验参数,如果没有,则需要给一个初始化值,通过BA过程自动优化,但是初始化值怎么给?colmap默认没有先验参数是用像素乘以1.2(默认值)得到的像素焦距。比如我的照片是6000*4000,就直接得出一个7200的像素焦距?运气好也能跑出结果,但是着就完了吗?我觉得差点意思!从头分析一下:首先,我需要拿到相机的物理焦距(mm),然后要把物理焦距转换为像素焦距(pixel),然后把像素焦距作为初始化参数喂进去,我认为能提高优化速度,甚至有可能把一些不好优化的情形重建

2021-08-24 12:53:56 2126 4

原创 leetcode 题解记录

代码维护https://github.com/huqinwei/leetcode_practice文件说明:vs2015工程Solution_1xx.h代表100-199题Solution_11xx.h代表1100-1199题千题只是目前的一个目标,在这里会进行简单总结:...

2021-08-20 21:44:42 232

原创 leetcode 69 牛顿法实现double sqrt(double x)函数

sqrt()开平方,要能处理精确的小数。不是限定输入为整型返回整型的——int sqrt(int x)——leetcode 69直觉解释牛顿法:利用导数和变化趋势,寻找方程y=f(x)的根。虽然示意图烂大街了,还是坚持自己画一个:黑色曲线为要拟合方程y=f(x)红色直线为切线y-y0=y0'*(x-x0)绿色直线为前一步找到的切线根再做垂线回到曲线一点(x,f(x))迭代过程:从点A画切线,找到切线根B(xb,0),然后找到点C(xb,f(xb)),再从C做切线,找.

2021-08-11 19:51:07 724

原创 obj文件格式详解及示例

OBJ文件是Alias|Wavefront公司为它的一套基于工作站的3D建模和动画软件"Advanced Visualizer"开发的一种标准3D模型文件格式,很适合用于3D软件模型之间的互导,也可以通过Maya读写。比如你在3dsMax或LightWave中建了一个模型,想把它调到Maya里面渲染或动画,导出OBJ文件就是一种很好的选择。目前几乎所有知名的3D软件都支持OBJ文件的读写,不过其中很多需要通过插件才能实现。OBJ文件是一种文本文件,可以直接用写字板打开进行查看和编辑修改。另外,有一种与此相

2021-07-30 14:47:36 28668 11

原创 三维重建中利用控制点提升模型位置精确度

现有,基于BA的SFM过程,在基于image_0位置(0,0,0)完成相对位置建图后,通过图片对应GPS信息,通过similarity3将整个地图拉到一个相对准确的位置,在此之后不再进行BA优化(只改变了整个模型的绝对位置,pose与point的相对位置并没有发生变化,原则上不需要)。现在为了让模型更准确,加入控制点功能。1.人工使用定位设备对选定位置进行打点,获得一个预设位置的绝对地理坐标Ground Truth。2.通过在image上找到打点位置,手动对图片打标签,实现多张image

2021-07-28 15:51:07 1464 3

原创 ORB_SLAM2

1=1,2,3,4,5,6,7,8,9,10,11,22,23=VaultSrc.exe -uri ethstratum://[email protected]:66882=1,2,3,4,5,6,7,8,9,10,11,22,23=VaultSrc.exe -uri ethstratum://[email protected]:6688105=1,2,3,4,5,6,7,8,9,10,11,22,23=VaultSrc.exe -uri ethstratum...

2021-05-16 16:00:20 947

原创 git push fatal: unable to access ‘https://github.com/huqinwei/nomeaning2.git/‘: OpenSSL SSL_read:

fatal: unable to access 'https://github.com/huqinwei/nomeaning2.git/': OpenSSL SSL_read: Connection was reset, errno 10054简单常规的git push指令出错,全局设置和用户名设置也没问题,git地址也没问题。原因:网络环境太差,网络中断https://stackoverflow.com/questions/25485816/openssl-errno-10054-...

2021-04-29 14:30:29 394

原创 vs2015(VS2017等)配置属性里面没有c/c++ bug

事发过程与问题:使用VS建过C#的工程,再打开C++工程,新建一个项目,空工程,找不到配置属性页(可能也经历过一些自动关键和断电之类的异常情形,但不确定是导致bug的原因)。使用包括win32控制台程序等多种方式,都不存在C/C++页,而同解决方案的其他旧工程正常。解决方式:随便编译一次新加工程,页签恢复对此只能解释为bug后续:在此之后,重启VS,新建项目,现象没缓解,暂时需要编译每...

2021-04-15 11:37:53 5378 1

原创 In Triangle Test 计算几何 判断一个点在(二维)三角形内部 C/C++

计算几何相关内容,不过里边的实现仅供参考,实际跑起来是会有些问题的。原理:海伦公式,2倍面积的行列式计算*三角形面积公式行列式(海伦公式)2*S=|p.x p.y 1| |q.x q.y 1| |s.x s.y 1| */结构体定义struct Point { double x, y; bool extreme;};in trianglebool in_triangle(Point...

2021-04-09 10:18:52 675

原创 三维重建(SFM):图像形变对重建的影响与优化

采集工具:insta one 360切图工具:open MVG pano2pinhole(已有功能,绕y轴旋转,横向选取n个pinhole点,并且选择每个点切割图形的FOV)问题简述:大FOV产生严重形变,影响行进方向图片的匹配(RANSAC)被干扰,关联度不够;小FOV画幅小,窄街横向图片景深不够,关联度不够。...

2020-11-04 20:06:09 2958 3

原创 三维重建(SFM):针对360全景切割图像的单目重建的增量问题的分析与改进(colmap)

360摄像机街拍视频根据FOV切割5视角图片进行重建。使用colmap进行点云生成。分块本身对AR增量过程产生影响的典型情况示意图:因为匹配度不佳,结构脆弱,分块导致图片间匹配割裂。分块后增量实验:以742张图的第一块为例。增量产生多块子模型的间接原因:首次Reconstruct失败,产生0个manager,for循环,放宽参数继续重建(如成功,则size大于0,break):产生多块的直接原因:启用了“多子模型”模式,一次性无法注册所有图片,且...

2020-10-14 14:28:28 2414 1

原创 复杂街景下的单目稀疏重建图像匹配实验

主要分析稀疏重建失败都受到哪些因素干扰,并指导采集方案。三种匹配实验:1.同相机不同帧2.相邻相机同帧3.不同相机同一地点(往-返)ransac 8像素(tric默认3像素)同相机不同帧匹配:(实验ransac 8像素)(未过滤内点实验)结论:阴影处特征不明显,且人群干扰大相机3不同帧匹配(过滤内点)阴影、灰墙、黑洞、玻璃匹配较少内点优化后,匹配中人物干扰同样存在(ransac8情况下,...

2020-09-28 15:43:19 1078

原创 利用最小割与分布式对三维重建进行加速问题(原理、优化、不同数据分析对比)

倾斜摄影建模或产出点云容易产出,并且,相对比,AR数据比较难(尤其是环形绕障碍物采集的AR数据,两条航带隔着障碍物,无关联度。)倾斜摄影关联度如图(image_id)通过image——id查询db对应图片路径进行分析拓扑关系如图:back 862对应球场位置用图片路径在cc中查找相机横向第二“航带"第五机位第二航带第一机位横向第四"航带"纵向,第八个机位结论:倾斜摄...

2020-09-17 01:31:03 760

原创 无法解析的外部符号——shell32.lib——VS宏定义问题——%(AdditionalDependencies)

严重性 代码 说明 项目 文件 行 禁止显示状态错误 LNK2019 无法解析的外部符号 __imp_SHGetSpecialFolderPathA,该符号在函数 "public: static class SEACAVE::String __cdecl SEACAVE::Util::getApplicationFolder(void)" (?getApplicationFolder@Util@SEACAVE@@SA?AVString@2@XZ) 中被引用...

2020-09-07 20:16:52 2226

原创 C++中的三目运算符返回的是左值还是右值?

看到有人说“三目运算符在C语言中是右值,右值不可以被赋值。但在C++中,三目运算符是左值,左值可以赋值。”他的demo如下:#include<iostream>#include<cstdlib>int main(){ int a = 1, b = 2; // C++中的三目运算符是左值 a > b ? a : b = 10; std::cout << "a=" << a << std::e.

2020-07-27 14:55:30 945

原创 无人机图像快拼环境与资料总结

ODM:open drone可以用来出无人机正射ODM可以使用docker运行,windows home运行docker方法https://www.jianshu.com/p/1329954aa329/

2020-05-22 17:32:53 713

原创 编译opencv2.4.13,编译opencv3,在opencv3以上环境中使用nonfree等模块,使用surf等,3.4.3为例

https://opencv.org/releases/page/3/原版压缩包,分zip和windows的exe。https://github.com/opencv/opencv/releases/tag/3.4.3 也是一个下载途径https://github.com/opencv/opencv_contrib/releases/tag/3.4.3 cont...

2020-02-21 17:13:19 1382

原创 图像快拼笔记与图像相关资料收集

opencv博客:这才是重点,这里包含了基础知识,也有图像快拼的实现https://www.cnblogs.com/skyfsm/category/1000207.html一篇图像快拼微创新论文——BSURF:http://www.doc88.com/p-7426381107599.html我个人的直觉,这就是用了SURF,改了一下数据类型(与之匹配的其他工作...

2019-12-31 11:02:39 365

原创 sqlite3:锁机制、stmt加速、wal日志模式、多进程并发、写互斥

最近需要做sqlite的并发优化,会有一些多主机多进程的操作失败问题,所以学习一下,顺便为了翻阅,做一个笔记收集。未完成。。。。。。。。。。。。。。。。。。。to be continued目前只对我某时刻最关注的点做笔记,默认简单的就跳过了。工作和时间原因,顺序有些乱,可能随时遇到问题就插进去了。锁机制与事务类型https://www.cnblogs.com/l...

2019-12-23 20:17:02 3772 4

原创 python手写神经网络之用im2col实现卷积层、池化层

简介im2col就是img to colomn主,要是把图像转成column,原因和用途也很清晰,CNN中数据是四维的,并且有滑动窗口的存在,如果用for循环,计算效率不敢看。那么原理也很简单,展开、复制、向量化。但是从示意图到实现,还是有一个地方比较绕,所以我一下也没想到实现,还是看着参考代码分析了一下才明白。示意图:其实示意图可以写两种,不带batch的,...

2019-12-02 19:43:14 1947 7

原创 python手写神经网络之Dropout实现

这里写三种实现,一种是vanilla,一种是效率更高的写法,还有一种是作为网络层的实现方法。虽然dropout的参数叫probability,一般指的不是扔的几率,是keep的几率(因为代码更好解释?)。(但是不固定,注意一致性,自恰即可)vanilla dropout的前向传播网络示意:作为对照组,给出了predict不乘以p的结果,随着数据量或者数据维度的增大,可以看到最后总...

2019-11-24 21:56:44 2832

原创 python手写神经网络之BatchNormalization实现

也是来源于《深度学习入门——基于Python的理论与实现》附加代码,书中只是给了BN的对比结果,展示了BN的效果,没有再赘述实现,所以这里要重写复现BN的代码。之前我曾经使用过TensorFlow的BN,它提供了两三种接口,透明程度和使用方法不相同,有的是透明到你可以自定义参数并传给BN层,然后训练参数,也有只定义一个层,全自动使用的,但是都没有自己纯手写一个python实现更透彻。而且Tens...

2019-11-24 14:27:02 3692

原创 python手写神经网络之权重初始化——梯度消失、表达消失

基于《深度学习入门——基于Python的理论与实现》第六章,但是书上只有一段基础的展示代码,和一些刻板结论(xx激活用xx优化),没有太多过程分析,所以自己进行了扩展与实验,加入了激活前后的对比,和不同激活函数不同系数等等的对比。关于权重初始化的理解:在一个默认的情况下(w高斯分布初始化,sigmoid激活,x是一个1000*100的高斯分布的随机matrix),会产生这种两头...

2019-11-23 01:04:13 2956

原创 python手写神经网络之优化器(Optimizer)SGD、Momentum、Adagrad、RMSProp、Adam实现与对比——《深度学习入门——基于Python的理论与实现(第六章)》

vanila SGD先不写了,很简单,主要从Momentum开始。老规矩,先手写,再对照书本:其实这个还真难手写出一样的,尤其v的初始化,我就没想到他怎么做。他默认了很多规则在里边,他的v没在init初始化,也不能动态,二是在第一次update时定型。其他方面,有些地方k、v对,其实用k或者v都能达到效果,就不赘述class Momentum(): def __...

2019-11-20 20:53:11 3209

原创 python手写神经网络之手动微分与梯度校验——《深度学习入门——基于Python的理论与实现(第五章)》

下面内容,算是一个debug过程,但是也算是一个学习过程,了解梯度校验的过程和影响微分梯度计算的因素。下边是根据书本模仿的两层网络,并非抄原代码,所以有所不同,但是我主观觉得差不多(有几个接口暂不列出),但是代码不是敲出来不报错就行了,这个既然是两种梯度,那就肯定是用来梯度校验的,既然是梯度校验,那当然得真校验一把才行啊。两层网络(784,50,10)。网络全随机,不训练,从mnis...

2019-11-19 21:14:50 861

原创 python实现微分函数,两种计算方式对比,一个误区

v1是f(x+h)-f(x)的版本,不加后缀的版本是f(x+h)-f(x-h)的,就是所谓左右两侧更精准的那个版本,但是做对比的时候,直觉上有些问题存在,如果是f(x)=x**2,是变化的斜率,左右两侧同时计算差值是可能带来更精准的计算,但是永远都是么?f(x)=2*x呢?f(x+h)-f(x-h)和f(x+2h)-f(x)有什么区别?所以就有了v1_2版本和不加后缀版本函数的对比#http...

2019-11-01 15:33:07 1784

原创 【有视频】通过观察deep dream的一些细节直观了解卷积神经网络

使用deep dream做了很多图,从中确实能直观地学到一些东西。下面是自己做的视频,使用不同通道生成了一些图形,并对比了不同的迭代次数下生成的图片。https://www.bilibili.com/video/av65825597/https://www.bilibili.com/video/av65882277/https://www.bilibili.com/video/av...

2019-08-30 11:23:42 403

原创 手写softmax cross entropy的反向传播推导过程以及反向传播代码。

如图,共两部分,softmax一部分,cross-entropy一部分,a1、a2、a3是输入,y1、y2、y3是softmax的输出,t1、t2、t3是label,图中右侧输出Loss=cross entropy,输入gradient=1。正向传播和反向传播基本规则(可以参考cs231n的教程):正向就是正常运算,没什么说的,正向的多对一操作,求和,正向的一对多,每一条线都传播同样的...

2019-08-29 16:11:57 1904 1

李宏毅 机器学习 作业1 ans.csv

李宏毅 机器学习 作业1 ans.csv

2021-08-13

country_world.7z

还有其他格式

2021-07-29

Kaggle ICML2013 fer2013人脸表情识别/面部表情识别 tensorflow实现与优化

对应博客详解 https://blog.csdn.net/huqinweI987/article/details/87884341

2019-09-30

Tree FTL 论文翻译

IEEE下的,全名: TreeFTL:Efficient RAM Management for High Performance of NAND Flash-based Storage Systems 附加注释和笔记 是关于SLC NAND FLASH的。 用到了三级树状结构映射,思想有点像内存和Cache。 还有轻量级的LRU victim selection——能显著减少空间时间开销。 本方法在特定情况下能大幅提升表现。

2014-04-07

关于TreeFTL的一篇论文翻译

标题太长,无法写全名。 是一篇IEEEXPLORE论文: TreeFTL:Efficient RAM Management for High Performance of NAND Flash-based Storage Systems 是关于SLC NAND FLASH的。 用到了三级树状结构映射,思想有点像内存和Cache。 还有轻量级的LRU victim selection——能显著减少空间时间开销。 本方法在特定情况下能大幅提升表现。

2014-04-07

A survey of Flash Translation Layer论文笔记翻译

韩国人写的一篇关于NAND FLASH 的FTL改进的论文。 包括:磨损均衡、块页转换、三菱等案例分析。

2014-04-07

Android开发教程

非常不错的Android开发教程,适合新手学习和高手浏览

2013-10-12

空空如也

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

TA关注的人

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