- 博客(38)
- 收藏
- 关注
原创 神经网络量化笔记
目录1.量化原理和参数量2.参数量计算举例3.CBN计算过程4.为什么权重是-128到128但是激活是0-255?5.这样的不对称量化范围有几个优点:6.BN(BatchNormalization)层有两个主要参数:7.Calibration8.混合精度量化9.量化感知训练的基本思路:10.量化实战量化: 将浮点数值映射到一个固定的整数范围内,通常是 [0, 255] 或 [-128, 127]。这需要确定一个量化因子和零点偏移。量化因子 = (最大值 - 最小值) / (最大整数值 - 最小整数值)零点偏
2024-06-27 14:26:06
1205
原创 YOLOV10阅读总结
one-to-many head 和one-to-one head,大概逻辑是,以前的yolo大多都是anchor-based,需要后处理NMS,这必然需要计算资源和时间,这里他在训练的时候把one-to-many head 和one-to-one head同时一起训练,而再推理的时候只使用one-to-one head做推理,那么可以避免NMS。结果显示,更深的阶段和更大的模型更容易存在更多的冗余。为解决这个问题,作者提出了一种基于秩的块设计方案,使用更紧凑的架构设计来降低冗余的阶段的复杂度。
2024-05-28 11:00:45
1079
原创 3D检测:从pointnet,voxelnet,pointpillar到centerpoint
为了处理点云的无序性,PointNet引入了对称函数,也称为集合函数。该操作将无序的点集表示为固定长度的向量。在PointNet中,集合函数的实现形式是基于最大池化(max)。
2024-03-31 11:27:00
1639
原创 相机标定学习记录
相机标定是计算机视觉和机器视觉领域中的一项基本技术,它的主要目的是通过获取相机的内部参数(内参)和外部参数(外参),以及镜头畸变参数,建立起现实世界中的点与相机成像平面上对应像素点之间准确的位置关系。本质上:已经知道多组2D-3D对应点的关系,然后随机初始化相机内参,通过最小化重投影误差来获取相机最佳内参。当最后迭代出一个内参K后,不同的2D-3D对应点的重投影误差是不一样的,去掉大的,保留小的,然后继续拍照,重复循环。
2024-03-30 18:42:05
2500
原创 记录何凯明在MIT的第一堂课:神经网络发展史
归一化通过调整数据的数值范围,使得数据具有统一的尺度,从而加速学习过程,减少梯度消失或梯度爆炸的问题,并提高模型的泛化能力。LeNet的设计简单而有效,对后续的卷积神经网络发展产生了深远的影响。VGG Net的设计理念和架构对后续的深度学习发展产生了深远的影响,它证明了通过重复使用简单的基础块可以构建出强大的深度卷积神经网络。池化层(Pooling Layer)是卷积神经网络(CNN)中的一个重要组成部分,其主要作用是在保持重要特征的同时减少数据的维度,从而减少模型的复杂度和提高计算效率。
2024-03-29 18:38:42
846
原创 代码&&手推相机内参K
世界3D-->相机3D-->图像2D-->像素2D世界坐标系(物体在实际世界中的坐标系)3D,一般以现实中的某个物体为参照中心点相机坐标系:在光心O处,3D图像坐标系:在物理成像平面, 2D ,by 相似三角形,中心点在O'像素坐标系:在像素平面,对相机坐标系进行了缩放和平移,2D, by 透视投影,中心点在左上角小孔成像:本质上就是物体在相机坐标系的点3D到图像坐标系的2D转化过程。
2024-03-29 14:11:25
347
原创 奥比中光Astra SDK相机SDK openni&&相机成像原理
结构光,英文叫做 Structured light,通常采用特定波长的不可见的红外激光作为光源,它发射出来的光经过一定的编码投影在物体上,通过一定算法来计算返回的编码图案的畸变来得到物体的位置和深度信息。根据编码图案不同一般有条纹结构光---enshape ,编码结构光---Mantis Vision, Realsense(F200), 散斑结构光---apple(primesense), 奥比中光。
2024-03-29 12:22:24
1381
原创 ros2相关代码记录
ROS2(Robot Operating System 2)是一个用于机器人应用程序的开源软件框架。它是ROS(Robot Operating System)的下一代版本,旨在改进和扩展原始ROS的特性,以适应更广泛的机器人应用场景和需求。ROS2的发展重点包括提高系统的实时性能、可靠性、可伸缩性和跨平台可移植性。
2024-03-29 11:56:26
781
原创 tensorrt加速原理
具体来说,TensorRT 可以根据 GPU 的计算能力和内存带宽来动态调整模型的输入和输出形状,以最大化计算效率和性能。通过以上方式,CUDA 可以利用 GPU 的并行计算能力来加速卷积算子的计算速度,从而提高卷积神经网络的计算效率和性能。在实际应用中,可以根据具体的计算任务和硬件环境来选择合适的优化方式,以进一步提高计算效率和性能。具体来说,TensorRT 可以将卷积核中的小于某个阈值的元素设置为零,从而减少计算量和内存访问次数。CUDA是一种并行计算框架,可以在GPU上进行高效的并行计算。
2024-03-29 11:16:52
954
原创 anygrap复现结果
spm_id_from=333.337.search-card.all.click&vd_source=3aec03706e264c240796359c1c4d7ddc 作者视频b站。还得先做个目标检测才行,应该是去背景检测,或者提前限定要物体在图里面的范围,因为他们的相机是在手上的,我们是胸口。他有一个mask,把结果限定在桌面内部。
2024-03-29 10:45:48
1098
1
原创 Blenderproc渲染6D位姿估计数据集
需要修改函数,传入obj和干扰物获取obj的xyz,同时限定干扰物的xyz和obj的xyz高度接近,xy接近,z不接近,避免碰撞检测不过关。
2024-03-29 10:20:48
1187
原创 3D目标检测综述笔记
点云特征学习中的集合抽象(Set Abstraction)是一种常用的方法,用于从原始点云数据中提取更高级别的特征表示。它通过将点云分解为一组更紧凑的点集,每个点集代表一个更大范围的区域或物体,以捕捉全局和语义信息。集合抽象的基本思想是通过层次化的方式对点云进行分割和聚合。通常,这个过程包括以下步骤:区域分割:使用一种分割算法(如基于体素、基于聚类或基于几何特征等)将原始点云分割成多个局部区域或子集。每个子集中的点代表一个局部区域。局部特征提取:对每个局部区域内的点进行特征提取。
2024-03-28 11:56:26
1337
原创 RGB,深度图,点云和体素的相互转换记录
可选:对点云数据进行滤波和重采样:为了减少噪声和数据量,可以对点云数据进行滤波和重采样。例如,可以使用高斯滤波或中值滤波来平滑点云数据,或使用体素格化和统计滤波来降低点云数据的密度。将RGB图像转换为点云颜色:对于每个点云坐标,可以使用相机内参和外参将其对应到RGB图像上的像素坐标。例如,可以使用高斯滤波或中值滤波来平滑点云,或使用体素格化和统计滤波来降低点云的密度。将点云数据转换为图像坐标:对于每个点云坐标,可以根据图像大小和分辨率将其对应到图像坐标系下的坐标。
2024-03-28 10:19:22
1145
原创 ubuntu常用记录
共享文件夹:在VirtualBox中,为Ubuntu虚拟机设置共享文件夹。然后在Ubuntu中安装VirtualBox增强功能,并将共享文件夹挂载到Ubuntu中。在 Linux 中,软连接(Symbolic Link,也称为符号链接或软链接)是一种特殊类型的文件,它指向另一个文件或目录。请注意,软连接是透明的,它们只是指向目标文件或目录的路径,并不包含实际的数据。当保持共享文件夹挂载时,如果您需要在本地Windows机器上进行更改,这些更改也会立即反映在Ubuntu虚拟机中。
2024-03-27 18:47:37
644
原创 记录gitlab管理代码的原理和实现
GitLab 是一个基于 Git 的代码托管和协作平台,它提供了一系列工具和功能,使得团队可以更加高效地管理和协作开发项目。下面是 GitLab 管理代码的原理和实现:Git 版本控制系统GitLab 使用 Git 作为其版本控制系统,Git 是一个分布式版本控制系统,它可以跟踪文件的历史记录和变化,并允许多个开发者在同一个代码库上协作开发。Git 使用分支和合并的方式来管理代码,每个开发者可以在自己的分支上进行开发,然后将代码合并到主分支上。GitLab 服务器。
2024-03-27 17:04:17
355
原创 mamba的学习记录
最近新出了一种很火的架构mamba,听说吊打transformer,特此学习一下,总结一下学习的内容。3个月8Kstar,确实有点受欢迎。
2024-03-27 12:30:06
1189
原创 langchain调用语言模型chatglm4从智谱AI
参考了一些官方和他人帖子:主要就是LLM类的继承和重写# 函数继承和重写@property我们这里的本地模型是chatglm6B,结果:显存:速度:10个字需要0.12s。
2024-03-26 14:20:10
3269
原创 huggingface的transformers训练bert
相比于BERT,RoBERTa采用了一系列的训练技巧和策略,如动态掩码、更长的训练序列、更大的批量大小等,以提升模型的性能。在微调阶段,模型会在特定任务的标注数据上进行进一步的训练,以适应具体任务的要求。在传统的语言模型中,只使用了单向的上下文信息,而BERT利用了双向Transformer编码器来同时考虑上下文的信息,使得模型能够更好地理解句子中的语义和关系。在微调阶段,模型会使用有标签的数据进行进一步的训练,以适应特定任务的要求,并通过微调来提升模型在特定任务上的性能。BERT的主要特点是。
2024-03-22 17:32:14
936
原创 点云配准的综述和代码记录
思路:为了减少标注量,做一些3D的配准,这样只需要标注一帧图像,然后通过配准找到两帧图像之间的相机的位姿变换矩阵,然后原始标注数据*位姿变换矩阵 = new 一帧的标注数据。
2024-03-21 15:42:25
876
1
原创 从相机空间到像素空间的投影和反投影原理和代码
记录一下从相机空间到像素空间的投影(3D-->2D)和像素空间到相机空间的反投影(2D-->3D)。
2024-03-21 15:16:06
425
1
原创 transformer的学习:Attention is all you need
encoder-decoder attention:q来自decoder,k和v来自encoder。
2024-03-21 10:29:43
996
1
原创 huggingface的transformers训练gpt
GPT2ModellossGPT2BlockGPT2MLPGPT2Attention = Conv1D+ 计算q*k-->scale-->atten_weight[atten_mask]-->softmax-->*value + Conv1DGPT2MLP = conv1d * 2+ 激活函数 + dropoutGPT2Block等价于transformer的decoder,12层GPT2Block就是12层decoder。
2024-03-20 11:09:48
1296
1
原创 从文本到语音生成:text2speech的moleTTS使用
之前做了一个AI agent可以和使用工具和和用户对话,但是这些形式都是文本的,现在尝试把文本转化为语音的方式。从huggingface找了一下现场的可用的中文的语音合成,找到一个还可以用的,关键速度很快。看了一下他们的官方,介绍里面一开始就argue 这种喜欢闭源的模型生态系统不好,特别指出openAI,哈哈,然后强调他们的愿景就是开源模型。感觉和年轻的openAI有点像哈,不知道最后他们融资几轮之后这个愿景还会不会存在,哈哈。他们开源的这个模型,支持中文。
2024-03-19 11:43:32
1253
1
原创 记录langchain agent 搭建人形智能机器人的对话和动作执行系统
上一篇我写了langchain agent可以根据你的请求调用接口,比如拿水接口,带路接口,但这样太麻烦了,意味着我还要定义很多任务,如拿苹果,拿香蕉,等等。这一次我想尝试让agent根据用户的输入自己的调用对应的接口,我只需要定义基础函数即可,如目标检测,位姿估计,机器人抓取等等,因为拿水和拿苹果,香蕉本质上都是调用这几个基础函数:1.首先确认是否执行动作任务,和用户交互2.当确认执行动作任务后,从本地知识库中获取任务的拆解3.把任务拆解后的字符串,分割后,eval成一个个函数,然后依次执行。
2024-03-15 16:14:18
349
1
原创 huggingface的diffusers训练stable diffusion记录
代码:https://github.com/huggingface/diffusers/tree/main/examples/text_to_image论文。
2024-03-14 18:24:16
1298
1
原创 openAI课程--自监督学习
自监督学习(self-supervised learning)是一种机器学习方法,旨在利用无需人工标注的数据进行模型训练。与传统的监督学习不同,自监督学习从输入数据中自动生成标签或任务,然后使用这些生成的标签或任务来训练模型。在自监督学习中,模型的训练数据通常是未标记的原始数据。例如,在计算机视觉领域,可以使用图像作为训练数据。而传统的监督学习需要对每个图像进行人工标注,例如指定每个图像中的物体类别或位置。相反,自监督学习利用图像本身的信息来生成标签或任务。比如MAE算法。
2024-03-13 11:11:16
675
原创 点云处理工具open3d使用
对于点云的处理,传统的工具可能是PCL,9.3k的github stars,纯c++的接口。但是随着open3d的问世,大家可以使用python直接对点云进行处理,操作简单,深受大家的喜欢,目前已经10.3k stars,已经超越了PCL,成为了最受欢迎的工具。主要内容:点云的读取和保存,rgb+depth的读取和转点云,点云的下采样,法向量估计,numpy和点云的转换,点云裁剪,可视化,分割平面算法,关键点提取,icp配准,聚类算法,边缘点提取,基于法向量的下采样,ppf配准等。
2024-03-12 10:26:10
442
1
原创 chatglm3-6B的lora微调
chatglm是清华KEG实验室和智谱AI联合发布的大语言对话模型。主要有两篇论文:chatglm-6b可以看作是chatglm-130b的一个迷你版,参数量少,可以本地运行。
2024-03-11 15:34:23
2345
1
原创 基于3D渲染的检测,分割,位姿估计标签生成,从而实现全自动化0标注
主要使用上面这个工具,输入1个CAD模型,然后run 一个脚本就可以渲染出多种数据格式的深度学习的渲染数据和标签,如coco,bop_toolkit要求的等。基本上不需要人工标注就可以直接训练模型,并且我们测试有一个比较不错的效果。json里面存在检测,分割和位姿估计的gt标签信息。
2024-01-09 19:00:26
399
原创 基于marker的半自动化6D位姿标注流程
2.使用realsense D435采集数据,生成点云,导入CVAT标注第1拍摄位置的的点云,获取物体相对第1拍摄位置的相对位姿,同时已经知道不同拍摄位置之间的相对位姿,从而直接计算出物体相对其他119个拍摄位置的相对位姿,再把生成的标注导入CVAT,然后人工微调,因为marker估计的位姿也存在error。1.使用机械臂控制相机的120个拍摄位置,在卓上放一个apriltag,然后拍摄120次,不同的位置计算出marker相对不同位置的pose,从而可以知道不同拍摄位置之间的相对位姿。
2024-01-09 18:51:48
412
原创 DETR-Like的FastInst的实时实例分割
因为yolov8-seg继承了yolact的方法,所以在计算loss的时候使用的是MIOU的方式,并且是mask下采样到原图的1/4(存在整型精度损失),所以后续我们使用FastInst进行分割,它使用的是PointRend的方法计算loss,更加注重mask的边缘,所以分割的效果更好。
2024-01-09 18:39:55
459
原创 物体点云配准Maximal Cliques
对比传统的ppf等算法,从点对的角度,这篇文章是从图论的角度来做的点云配准,鲁棒性更强。2023 CVPR best student paper,中国人做的很棒。
2024-01-09 18:05:56
470
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人