自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(178)
  • 收藏
  • 关注

原创 COCO eval 源码详解

COCO数据集的测试过程比较复杂,需要一定的时间才能够掌握。由于目前我有更重要的事情要忙,所以先贴出两个我认为写的非常棒的博客,阅读时注意先后顺序。等我有空了,就自己梳理一遍,写一个符合自己理解方式的源码详解。, 这篇博客讲清楚了COCO eval具体想测什么。这个是别人写的源码详解,感觉不错。

2024-05-22 16:28:40 98

原创 pkl 序列化和反序列化时环境必须一致

在上面的示例中,我们首先创建了一个Python字典对象data,然后使用pickle模块的dump()函数将其保存到名为data.pkl的pkl文件中。pkl文件是Python中pickle模块的产物,pickle模块可以将Python对象结构化并保存到文件中,以便之后可以重新加载和恢复。在Python中,我们可以使用pickle模块的dump()函数将Python对象序列化并保存到pkl文件中,使用load()函数从pkl文件中反序列化并加载Python对象。

2024-05-22 11:32:28 257

原创 pandas SettingWithCopyWarning解决办法

解决办法和说明:https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy按照说明,将想要使用的slice 后的 dataframe进行深拷贝,一般就解决了问题。但最好确定你的目的是什么,比如如果是 slice 后就是要改变具体某个值(在原内存上),那最好用.loc来做。或者目的就是生成新的 dataframe 然后做操作,那最好先 deepcopy 下。

2024-05-20 15:01:15 314

原创 vscode中对 python 快速增加header 描述

之后在 python 开头,输入 header,则自动生成所需的 header 描述。然后再 Code/User/snippets/python.json文件中写入。在首选项→配置用户代码片段→python。

2024-04-25 20:04:57 311

原创 python中的 divmod 函数

divmod()方法采用两个参数值,并返回由它们的商和余数组成的一对数字(元组)。

2024-04-08 23:10:27 237

原创 python 中的 collections 使用详解

可以设置一个默认值作为字典中新key的默认值。该默认值可以是任何对象, 包括函数、列表、元组、集合等。默认值不需要像dict那样事先定义,因为它在需要的时候会自动创建使用defaultdict,可以简化代码并提高代码的可读性,而且可以防止KeyError异常的出现。同时,defaultdict的性能与普通字典相当,因为底层实现并不影响字典的性能。

2024-04-07 22:11:19 825

原创 记录下两个在用的做 lidar odometry 的算法 repo

熟肉:https://blog.csdn.net/qq_29320587/article/details/131534824。

2024-04-02 16:25:15 203

原创 图解PyTorch中的torch.gather函数和 scatter 函数

官方文档对torch.gather()的定义非常简洁定义:从原tensor中获取指定dim和指定index的数据看到这个核心定义,我们很容易想到gather()的基本想法其实就类似从完整数据中按索引取值般简单,比如下面从列表中按索引取值上面的取值例子是取单个值或具有逻辑顺序序列的例子,而对于深度学习常用的批量tensor数据来说,我们的需求可能是选取其中多个且乱序的值,此时gather()就是一个很好的tool,它可以帮助我们从批量tensor中取出指定乱序索引下的数据,因此其用途如下。

2024-04-01 20:03:03 585

原创 monocular depth estimation 网络的 regression loss 选择

其具体实现见:https://github.com/marcelampc/d3net_depth_estimation/blob/master/pytorch/util/loss_bank.py。

2024-04-01 19:49:53 167

原创 contextlib.redirect_stdout 使用

contextlib.redirect_stdout(io.StringIO()) 是 Python 中的一个上下文管理器,用于临时重定向标准输出流(stdout)到指定的文件对象或文件类对象。通常情况下,标准输出流指向终端(console),但有时你可能希望将输出重定向到内存中的字符串缓冲区,以便在代码中捕获和处理输出内容。在这个示例中,我们首先创建了一个字符串缓冲区 output_buffer。

2024-03-29 15:28:56 419

原创 利用lidar生成深度图

深度图像(Depth Images),也被称为距离影像(Range Images),是指将图像采集器到场景中各点的距离(深度)值作为像素值的图像,它直接反映了景物可见表面的几何形状,利用它可以很方便的解决3D目标描述中的许多问题。深度图像经过坐标转换可以计算为点云数据,有规则及必要信息的点云数据也可以反算为深度图像数据。从数学模型上看,深度图像可以看作是标量函数 在集合 上的离散采样,得到 ,其中 为二维网格(矩阵)的索引,

2024-03-28 20:11:16 723

原创 python函数参数中独立星号*的作用

python函数中间有一个()分隔,星号后面为*命名关键字参数,星号本身不是参数**。命名关键字参数,在函数调用时必须带参数名字进行调用。

2024-03-28 17:25:37 165

原创 视觉问答(Visual_Question_Answering, VQA)介绍

VQA任务定义如下:给机器输入一张图片和一个跟这幅图片相关的问题,机器需要根据图片信息对问题进行回答。训练阶段,需要先在一个由图像,问题,答案组成的三元组集上训练一个模型。测试阶段,给该预训练模型输入一张新的图像和一个新的问题,要求模型能够预测正确的答案。设模型参数为,则该任务的目标为求取!对于open-Ended问题,机器的输出是自然语言(算法需要生成一个字符串来回答问题)。对于multi-choice问题,机器挑选出正确答案。

2024-03-18 20:09:45 1460

原创 vscode vim 快捷键汇总

进入 insert mode 后就和之前的模式一样,快捷键有些是和原理的 vscode 一致,有些不一致。shift +a/i 防止 curcor 即可编辑全部目标。CRTL +D选中目标。

2024-01-26 14:49:49 1157

原创 常见几种加密算法的Python实现

全称:MD5消息摘要算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。md5加密算法是不可逆的,所以解密一般都是通过暴力穷举方法,通过网站的接口实现解密。

2023-12-15 17:05:44 2080

原创 Active learning Tiny Review for autonomous driving

阅读某一特定主题的一本书不会使你成为专家,阅读多本包含相似内容的书也不会。真正掌握一项技能或领域的知识需要来自多样化信息源的大量信息。这对于自动驾驶和其他人工智能技术同样适用。负责自动驾驶功能的深度神经网络需要经过详尽的训练,不仅要在日常行程中可能遇到的情况下,还要在希望它们永远不会遇到的异常情况下进行训练。成功的关键在于确保它们受到了正确数据的训练。什么是正确的数据呢?那些新颖或不确定的情境,而不是反复出现相同的场景。

2023-10-26 11:28:51 152

原创 python3 获取 进程id 线程id

【代码】python3 获取 进程id 线程id。

2023-09-28 17:41:16 558

原创 git 误删分支恢复方法

2.使用git branch recover_branch[新分支] commit_id命令用这个commit创建一个分支。在使用git的过程中,因为人为因素造成分支(commit)被删除,可以使用以下步骤进行恢复。3.切换到recover_branch_abc分支,检查文件是否存在。首先用以下步骤创建一个新分支,修改一些文件后删除,以便进行恢复。3.切换到abc分支,随便修改一下东西后 commit。可以见到recover_branch_abc已创建。5.查看分支列表,abc分支已不存在。

2023-09-28 17:37:47 2197

原创 Python 关于整除以及负数取余遇到的问题

这里面就可以发现-13用 “//” 除以10的时候,结果是-2,从结果中我们可以看出,“//”是向下取整,“-1.3”会被取成-2,如果想要得到-1,就需要用“/”,然后将结果强制转换为int型。不过在“a//n”这一步,当a是负数的时候,我们上面说了,会向下取整,也就是说向负无穷方向取整。最近在编码的过程中,在整除以及取余的时候遇到了一些比较迷的问题,这里码一下这些问题,以备日后查看。在Python中,取余的计算公式与别的语言并没有什么区别:r=a-n*[a//n]这里r是余数,a是被除数,n是除数。

2023-09-28 17:35:22 190

原创 EOFError: Ran out of input

使用pickle.load(f)加载pickle文件时,报错:EOFError: Ran out of input.1、加载前判断文件是否为空。解决办法:加载非空文件。可能原因:文件为空。

2023-09-28 17:21:07 2613 1

原创 Python如何优雅地可视化目标检测框

通过cv2.rectangle 函数设置 thickness, 我们可以得到填充后的图像,进而利用opencv中的 cv2.add_weight 函数可以实现透明效果.上述代码中, 首先计算标签文本的大小, 然后据标签文本大小进行矩形填充, 最后使用函数cv2.putText 来画出对应的标签文本.接下来我们来给矩形框添加标签,我们观察上述画图函数,注意最后一个参数thickness,如果此值等于-1,那么将对矩形框执行填充效果.

2023-09-28 17:18:46 1551

原创 Python3中类型注解(typing)详解

学习和编写过C++和Java的工程师应该都熟悉在声明变量或方法时,需要指定变量或方法的返回值的类型,即显式声明变量。而在Python中,声明变量时无需指定其类型、定义方法时需声明其返回值类型。Tips: Python的动态类型、一切即为对象概念的体现。虽然这些操作给Python的编写带来的极大的便利,使得人们可以更加注重与相关逻辑的实现;但同时也会降低代码的可维护性与牺牲一部分代码的可读性。人们常常会为方法增加大量的方法注释和变量注释;

2023-09-28 16:50:52 662

原创 Python中Generators教程

要想创建一个iterator,必须实现一个有__iter__()和__next__()方法的类,类要能够跟踪内部状态并且在没有元素返回的时候引发StopIteration异常.这个过程很繁琐而且违反直觉.Generator能够解决这个问题.python generator是一个简单的创建iterator的途径.前面讲的那些繁琐的步骤都可以被generator自动完成.简单来说,generator是一个能够返回迭代器对象的函数.

2023-09-28 16:40:51 91

原创 Python 日期和时间戳的转换

datetime.date: 表示日期,常用的属性有year、month和daydatetime.time: 表示时间,常用的属性有hour、minute、second和microseconddatetime.datetime: 表示日期时间datetime.timedelta: 表示两个date、time和datetime实例之间的时间间隔,最小单位可达微秒datetime.tzinfo: 时区相关对象的抽象基类,由time和datetime类使用。

2023-09-28 16:30:37 307

原创 Python 类中的 __init__、__new__、__call__ 方法

任何事物都有一个从创建,被使用,再到消亡的过程,在程序语言面向对象编程模型中,对象也有相似的命运:创建、初始化、使用、垃圾回收,不同的阶段由不同的方法(角色)负责执行。定义一个类时,大家用得最多的就是方法,而和使用得比较少,这篇文章试图帮助大家把这3个方法的正确使用方式和应用场景分别解释一下。

2023-09-28 16:00:52 206

原创 static_cast、const_cast用法

用法说明:该运算符把expression转换为type-id类型,但没有运行时类型检查来保证转换的安全性。来源:为什么需要static_cast强制转换?它主要有如下几种用法:•用于类层次结构中基类和子类之间指针或引用的转换。进行上行转换(把子类的指针或引用转换成基类表示)是安全的;进行下行转换(把基类指针或引用转换成子类指针或引用)时,由于没有动态类型检查,所以是不安全的。•用于基本数据类型之间的转换,如把int转换成char,把int转换成enum。这种转换的安全性也要开发人员来保证。

2023-09-28 15:44:12 141

原创 yml文件中&、<<、 * 是什么意思

development: &default 表示设置development的别名为default。重复的节点(对象)首先由锚(&)定义别名,然后用星号(*)引用别名。表示把default节点的所有信息插入到production节点中。*default表示引用名称为default的别名节点信息。*用来引用节点数据,其实就是从节点取数据。

2023-09-28 15:01:38 286

原创 Linux shell 脚本中, $@ 和$# 分别是什么意思

示例:编写如下shell脚本,保存为test.sh。Linux shell 脚本中,$#:表示返回所有脚本参数的个数。$@:表示所有脚本参数的内容。# 分别是什么意思?

2023-09-28 14:58:59 2303

原创 给 shell 自定义快捷键

现在我们知道了本质上我们输入的快捷键会被终端模拟器转换成一系列的字符序列传给 shell。常见的终端模拟器例如 iterm2 和 VSCode 的 xterm 都支持将你的快捷键转换输入一段指定的字符序列。而在 zsh 中我们可以通过 bindkey 命令来定义快捷键,也就是在 zsh 接收到某个字符序列时执行某个操作。

2023-09-28 14:55:43 233

原创 Apollo高精地图(hdmap) 信号灯数据结构

百度的Apollo项目主要是依赖地图,配上各类传感器(加速度传感器,GPS,激光雷达,摄像头等)来实现定位,导航,决策,避障,遵守交规等行为。据我所知,高精地图对perception感知模块的用途是很大,比如说要用CNN分割周围车辆行人物体,hdmap能迅速给出需要关注的区域大小,可以删除不需要关注的绿化带和周围建筑等。另外2.0版本的信号灯识别,就依赖于地图里信号灯的位置和轮廓给定数据,然后投射到图像对应位置,能比所谓的纯图像识别要精确可靠。

2023-09-28 14:40:03 268

原创 在对bbox 进行坐标系转换时heading的处理--使用向量的旋转

接下来我们对这个结论进行一下简单的推广,对于任意两个不同的点A和B(对于求点绕另一个点旋转后的坐标时,A B重合显然没有太大意义),求A点绕B点旋转θ角度后的坐标,我们都可以将B点看做原点,对A和B进行平移变换,计算出的点坐标后,在其横纵坐标上分别加上原B点的横纵坐标,这个坐标就是A’ 的坐标。结论的进一步推广:对于任意非零向量AB(零向量研究意义不大),对于点C进行旋转,我们只需求出点A和B对于点C旋转一定角度的坐标即可求出旋转后的向量A’ B’ ,因为向量旋转后仍然是一条有向线段。

2023-09-22 18:06:14 128

原创 pytorch 使用DataParallel 单机多卡和单卡保存和加载模型的正确方法

这里我为了把三个模块save到同一个文件里,我选择对所有的模型先封装成一个checkpoint字典,然后保存到同一个文件里,这样就可以在加载时只需要加载一个参数文件。

2023-09-22 18:03:50 696

原创 MonoDETR: Depth-guided Transformer for Monocular 3D Object Detection 论文解读

单目目标检测在自动驾驶领域,一直是一个具有挑战的任务。现在大部分的方式都是沿用基于卷积的2D 检测器,首先检测物体中心,后通过中心附近的特征去预测3D属性。但是仅仅通过局部的特征去预测3D特征是不高效的,且并没有考虑一些长距离的物体之间的深度关系,丢失了很多的有意义的信息。在本作中,作者介绍了一种基于DETR框架的用于单目检测的网络。作者通过对原始的transformer网络进行改造,加入了以深度为引导的transformer结构。作者将此网络结构命名为MonoDETR。

2023-08-31 20:14:10 1387

原创 cell-var-from-loop问题和解决方案

【代码】cell-var-from-loop问题和解决方案。

2023-07-10 20:54:31 295

原创 python 找出序列里符合要求的元素

上面这个 list 只是个例子,其实不止 list,本文适用的对象是所有 iterables ,比如 list、 tuple、set 等 sequence 类型,也可以是字符串、甚至是自定义的对象。简单来说,iterables 是可以使用 for 的对象。

2023-07-10 20:52:24 713

原创 在Linux下将PNG和JPG批量互转的四种方法

计算机术语中,批处理指的是用一个非交互式的程序来执行一序列的任务的方法。这篇教程里,我们会使用 Linux 命令行工具,并提供 4 种简单的处理方式来把一些 .PNG 格式的图像批量转换成 .JPG 格式的,以及转换回来。计算机术语中,批处理指的是用一个非交互式的程序来执行一序列的任务的方法。这篇教程里,我们会使用 Linux 命令行工具,并提供 4 种简单的处理方式来把一些 .PNG 格式的图像批量转换成 .JPG 格式的,以及转换回来。

2023-07-10 20:49:40 463

原创 Linux Grep 正则表达式

grep是Linux中用于文本处理的最有用和功能最强大的命令之一。grep在一个或多个输入文件中搜索与正则表达式匹配的行,并将每条匹配的行写入到标准输出正则表达式是与一组字符串匹配的模式。模式由运算符,文字字符和元字符组成,它们具有特殊的含义。GNU grep支持三种正则表达式语法Basic,Extended和Perl-compatible。当没有给出正则表达式类型时,grep以Basic的形式调用,grep将搜索模式解释为基本Basic正则表达式。

2023-05-12 10:34:13 1332 1

原创 Port XXXX is in use by another program. Either identify and stop that program, or start the server w

简单总结下:当运行程序显示某个端口被占用时,可以使用lsof 命令 -i:xxxx产看占用端口的程序,之后使用kill ,关闭程序即可。

2023-05-11 20:00:30 1402

原创 linux unrar 解压到指定文件夹

其中,-e 表示解压、-r 表示递归处理,[rar文件] 是要解压的 RAR 文件,[解压到的文件夹] 是指定的文件夹。注意:如果你没有安装unrar你需要先安装unrar。

2023-05-11 18:00:01 2826

原创 tensorboard命令打开空白页面的解决办法

使用tensorboard --logdir runs命令后,命令行显示正常:然而打开所提供的http://localhost:6006/页面却却只有空白页面。

2023-05-11 17:56:51 582

sql 快速上手....

sql 快速上手....

2022-08-25

sql笔记,,,,,,,

sql笔记,,,,,,,

2022-08-25

空空如也

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

TA关注的人

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