- 博客(35)
- 收藏
- 关注
原创 论文解读《Gen6D: Generalizable Model-Free 6-DoF Object Pose Estimation from RGB Images》 小样本6D位姿估计
相比之下,以前的姿态细化器[29,74]仅依赖于2D图像特征来回归3D相对姿态,这不太准确,尤其是对于看不见的物体。然后,视点选择器将查询图像与参考图像相匹配,选择最相似的参考图像并估计平面内旋转来找到初始旋转,以产生粗略的初始姿态;姿态细化器的主要挑战是对象模型的不可用性。现有的姿态细化器[29,74]基于渲染和比较,在输入姿态上渲染图像,然后用查询图像匹配渲染的图像以细化输入姿势。在这种情况下,将有多个看似合理的参考图像,选择器必须选择视点最近的一个作为查询图像,这通常非常模糊,如下图所示。
2023-12-25 14:05:18
2569
1
原创 论文解读《Zero-Shot Category-Level Object Pose Estimation》类别级6D位姿估计
在这个过程之后,可以使用基本的几何图元来理解对象之间的空间关系。=> **零样本(也就是预测未见过的物体(没有该实例的数据标记和CAD模型),类别级)**预测来自对象类别的两个实例之间的姿势偏移,而不需要任何姿势注释。现有的类别级方法通过训练每个类别的单独模型,或通过为每个类别使用不同的模板(例如CAD模型),来预测图像中对象相对于所提供的CAD模型的类别和姿势。效果:在设计的CO3D基准(更加现实)上进行严格的实验,证明了当前的一些基准方法经常完全失效时,而本文的方法有助于零样本姿势对齐。
2023-12-24 14:52:07
1402
原创 论文解读《EPro-PnP: Generalized End-to-End Probabilistic Perspective-n-Points for Monocular Object Pose 》
以前的解决方法:lmmplicit differentiation(隐式微分),但是有一个问题argmin函数并不是真正完全可导的,在某些点是不连续的,所以会导致反向传播不稳定,就必须要依赖整个代理损失来做一个正则化,来保证整个PnP它优化的目标函数如果它是一个凸优化问题的话,然后用隐式微分就可以解决,但是如果没有前面这些东西,光靠端到端的一个损失函数,没有办法稳定的通过反向传播来学习所有的这些2D、3D点。输入Correspondence X是一个可导的东西,通过经典的贝叶斯公式推导得到一个概率密度。
2023-12-24 14:51:11
1613
原创 论文解读《Deep Hough Voting for 3D Object Detection in Point Clouds》
2NH个通道分别输出的是该物体的朝向是预置的 2NH 个朝向的概率值(即预置了 NH 条直线,每条直线又有 2 个朝向,该物体的朝向为这 2NH 个朝向中每一个的概率值);同 2NH 一样,4NS个通道分别输出的是该物体的尺度是预置的 4NS 个尺度的概率值(其中乘以 4 是因为NS个尺度中的每一个尺度都预置了 3种长宽高缩放比率+原尺度),NC个通道输出的是该局部区域是 NC 个类别的概率。同时在这一层,为了使得移动之后的点更接近物体的质心,采用了L1 loss去监督移动后的点和质心之间的距离。
2023-12-24 14:47:06
899
原创 论文解读《PCRNet: Point Cloud Registration Network using PointNet Encoding》
第一部分基本等同于PointNet全局特征提取结构,分别由几个MLP组成,数据维度分别变换为(64,64,64,128,1024),之后做最大池化,每一维取最大值,那么就从一个n×3的点云变成1×1024的特征向量。基于一个大的样本库,并且包含各种各样的姿态,利用深度学习获得一个全局最优的结果,听上去是一个可行的方案。之前的工作还是使用传统的优化方法,如牛顿法,ICP,梯度下降,LK算法等,针对编码后的特征向量实现姿态对齐。,有效的学习了大规模样本的配准规律,且对噪声的鲁棒性具备一定优势。
2023-12-24 14:45:26
937
原创 论文解读《Pix2Pose: Pixel-Wise Coordinate Regression of Objects for 6D Pose Estimation》
最近,使用生成对抗性网络(GAN)[5]提高了生成的图像的质量,这些图像不那么模糊,更逼真,用于图像到图像的翻译[13]、画中画和去噪[11,23]任务。式中,n 是像素个数,M 表示图像中物体对应的Mask,注意,这里的mask包含了物体被遮挡部分,这样就使得训练出来的网络对遮挡有一定的鲁棒性;式中,R_p是一个3 × 3 的旋转向量,它取自于集合sym中,该集合包含了若干个旋转向量,每一个旋转向量的旋转轴为物体对称轴、旋转角度为物体对称角度或其整数倍,当然该集合中还包括了单位向量,表示物体不旋转。
2023-12-24 14:43:51
1102
原创 论文解读《Learning Deep Network for Detecting 3D Object Keypoints and 6D Poses》 无需位姿标注的model-free 6D位姿估计
在推理阶段,我们的网络将RGB图像作为输入,并检测输入图像中目标对象的类别、2D位置和3D关键点,通过该图像,可以从每个不同对象的参考图像中的相应关键点几何推断6D对象姿态。与以前的6D姿态检测方法不同,我们的方法从图像对之间的相对变换中学习3D关键点,而不是从明确的3D标记信息或3D CAD模型中学习。给出了一个物体的图像对(I,I′),其视点之间具有已知的相对变换矩阵T。在这种损失函数和具有广泛变换的训练对的帮助下,学习到的3D关键点将稳定地落在对象的一致位置上,即使该位置在图像中是不可见的。
2023-12-24 14:15:56
1203
原创 论文解读《DSC-PoseNet: Learning 6DoF Object Pose Estimation via Dual-scale Consistency》 自监督6D位姿估计
在对合成数据初始化网络或对伪标记的真实数据进行微调后,为所有真实图像生成(或更新)伪分割标签,并附加增强,即多尺度输入和左右翻转。但是这里有个问题,就是预测的分割结果是只有可见部分的,而渲染的物体掩膜是整个物体的轮廓,所以不能直接对齐。设计了一种新的自监督双尺度一致性姿态估计网络(DSC PoseNet)来预测关键点的位置,然后使用估计的关键点来预测真实图像中的物体姿态。目标是从真实图像的粗略2D BBox注释中获得像素级的对象分割结果(分割可以提供详细的对象轮廓,从中可以粗略地确定对象姿态)。
2023-11-01 15:04:24
418
1
原创 论文解读《FFB6D: A Full Flow Bidirectional Fusion Network for 6D Pose Estimation》
然后将提取的逐点特征馈送到实例语义分割和3D关键点投票检测模块中,以获得场景中的每个对象的3D关键点。具体而言:通过添加实例语义分割模块来区分不同的对象实例,并添加关键点投票模块来恢复三维关键点,从而获得每个对象的三维关键点。实例语义分割模块由语义分割模块和中心点投票模块组成,前者预测每点语义标签,后者学习每点到对象中心的偏移量,以区分不同的实例。这些点很难检测,估计姿态的精度降低。基于PVN3D的逐对象3D关键点检测,首先在场景中检测每个对象选择的3D关键点,然后利用最小二乘拟合算法恢复姿势参数。
2023-10-30 10:50:46
975
原创 论文解读《ES6D: A Computation Efficient and Symmetry-Aware 6D Pose Regression Framework》
最后,对不同的模态特征进行聚合。对于RGB和点云特征融合来说,论文《Pointvoxel cnn for efficient 3d deep learning》证明,一个有效的网络应该避免随机存储器访问(索引操作是低效的),这是PVN3D和DenseFusion中密集融合网络的计算瓶颈。然后,我们将对称对象分为五类,并给出相应的距离度量,称为平均(最大)分组基元距离 A(M)GPD。当使用L1损失来训练对称物体时(该物体有多个真实姿态),它会收敛到预测这多个姿态的平均值状态,而这个状态时没有任何意义的。
2023-10-30 10:49:49
227
原创 论文解读《DenseFusion:6D Object Pose Estimation by Iterative Dense Fusion》
DenseFusion 的特征提取网络是一种并行异构的架构,其使用一个 CNN 网络从 RGB 图像中提取颜色相关的特征,使用一个 PointNet 从点云中提取形状几何相关的特征。值得注意的是,这里 CNN 卷积输出的特征图是与原图宽高一致的,PointNet 输出的特征也是逐点特征(point-wise feature),即每个点都有相对应的特征。这样就可以根据每个点的索引,在 CNN 输出的特征图上找到唯一的对应,从而将来自点云的几何特征与来及图像的颜色特征进行串联,获得逐点的多模态特征向量。
2023-10-30 10:44:03
1348
原创 Redis核心技术及实战(十.String类型开销大?如何替代?)
十:String类型内存开销大?如何替代?原文:《11丨“万金油”的String,为什么不好用了?》例子:存储一个10位数的图片ID和其对应的10位数的图片存储ID,一共存储1亿个这样一个单键值对,我们选用String类型存储时,发现居然用了6.4GB的内存,也就是说平均一个键值对就用了64字节内存,但是,10位数可以用一个8字节的Long型表示,那么一个键值对也就16字节,多出来的48字节去哪了呢? => **除了记录实际数据,String还需要额外的内存空间记录数据长度、空间使用
2022-05-25 10:23:12
276
原创 Redis核心技术及实战(九.解决大数据量问题)
九:cluster集群——解决大数据量问题原文:《09丨切片集群:数据增多了,是该加内存还是加实例?》Redis要保存大量数据怎么办?纵向扩展:升级单个Redis实例的资源配置,如增加内存容量、高配置CPU等。但是,当数据量特别大时,硬盘会很难支撑,而且,一个实例中的数据太多,在fork子进程保存快照时就会严重阻塞主线程。横向扩展:切片集群,使用多个Redis实例存储数据。这时,会有两个问题:数据切片后,怎么在多个实例间分布?客户端怎么确定想要访问的数据在哪个实例上?1. 数据切片和实例的对应
2022-05-25 10:21:25
2950
原创 Redis核心技术及实战(七、八 . 哨兵)
七:哨兵机制——实现不间断服务原文:《07丨哨兵机制:主库挂了,如何不间断服务?》当主库挂了之后,写服务会中断、从库无法进行数据同步。我们需要运行一个新的主库,比如说把一个从库切换为主库,这就涉及到三个问题:主库真的挂了吗?该选择哪个从库作为主库?怎么把新主库的相关信息通知给从库和客户端?要解决这三个问题,就需要用到哨兵机制。哨兵其实就是一个运行在特殊状态下的Redis进程,只不过不执行读写请求操作。哨兵机制的流程:**监控:**哨兵会在运行过程中,周期性地向所有主从库发送PING命令
2022-05-25 10:20:20
711
原创 Redis核心技术及实战(六.实现数据一致性)
六:主从同步——实现数据一致性原文:《06丨数据同步:主从库如何实现数据一致?》Redis是读写分离的,每个节点都可以进行读操作,但是写操作只能在主节点上,当主节点写完后才会同步给从节点。那么主从同步是怎么完成的呢?一次性全部传给从库还是分批同步?主从库之间的网络连接中断了还能保持数据一致吗?1. 主从库间的第一次同步三个阶段:**第一阶段:建立连接、协商同步。**从库执行slaveof命令(Redis5.0以后为replicaof命令)告诉主库即将进行同步,主库同意后便可以开始同步。具体来说
2022-05-25 10:19:14
823
原创 Redis核心技术及实战(四、五 . AOF日志、RDB日志)
四:AOF日志原文:《04丨AOF日志:宕机了,Redis如何避免数据丢失?》AOF日志记录了什么? => 操作的具体逻辑,具体格式见下图。不同于redo log的WAL(写前日志),AOF日志是写后日志,先把数据写到内存中去,再写日志。为什么呢?因为为了避免额外的开销,Redis在向AOF里面记录日志的时候并不会对其进行语法检查,如果先记录日志再执行命令的话,如果语句有错,日志中就记录了错误的命令。除此之外,写后日志不会阻塞当前的写进程。但是AOF也存在两个风险:如果记录完日
2022-05-25 10:18:17
335
原创 Redis核心技术及实战(三.为什么单线程的Redis那么快)
三:为什么单线程的Redis那么快?原文:《03丨高性能IO模型:为什么单线程Redis能那么快?》注:Redis的单线程是指网络IO和键值对读写是单线程的,而其它功能如持久化、异步删除、集群数据同步等其实是额外线程完成的。Redis为什么不用多线程?系统中会存在很多被多线程同时访问的共享资源,比如共享的一个数据结构,如果是多线程的话,对于这个共享资源还要制定同步机制,不仅不会提供吞吐率,反而会增大开销、提高系统的复杂度。为什么单线程还这么快?除了上节讲的两个原因外,还有一个原因,Redis采用了
2022-05-25 10:15:34
160
原创 Redis核心技术及实战(二.数据结构)
二:Redis为什么这么快?=> 数据结构原文:《02丨数据结构:快速的Redis有哪些慢操作?》为什么这么快?一是因为内存存储,二是因为其数据结构,三是多路复用机制(下一节讲)。Redis使用Hash表来保存所有的键值对,Key为String类型,Value为五种数据形式,每一种数据形式都有其对应的底层结构,除String类型外的4种数据类型又称为集合数据。Note:Redis还有三种扩展数据类型,BitMap、HyperLogLog、GEO,这三种在后面十一、十二节介绍。1. 全局哈希
2022-05-25 10:14:04
2076
原创 Redis核心技术及实战(一.如何设计一个键值数据库)
一:一个键值数据库包含了什么/如何设计一个键值数据库?原文:《01丨基本架构:一个键值数据库包含什么?》设计一个键值型数据库时要考虑:存哪些数据? => 数据类型。key大多为String,value可以多种多样,如Redis的string、set、hash…可以对数据做哪些操作? => 操作模块。如put、get、scan、delete、set…键值对保存在内存还是外存? => 存储模块。内存快但可能丢失(作缓存),外存慢但安全(作
2022-05-25 10:12:56
313
原创 B站千锋教育Kafka视频
知识来源:B站视频零. 基础知识类似于RabbitMQ应用解耦异步提速削峰填谷一. 消息中间件的流派什么是MQ?有Broker的MQ:以一台服务器作为消息中转站Broker,生产者把消息发给Broker就完成任务了,Broker负责消息的分发。重Topic:整个Broker依据topic来进行消息的中转,一定需要topic;如Kafka(性能最快)、ActiveMQ、RocketMQ(性能与kafka比肩,功能更多)**轻Topic:**topic只是一种中转模式,可有可没有;
2022-05-25 10:08:20
405
原创 常见排序算法Java实现
排序方法分类**比较类排序:**通过比较来决定元素间的相对次序 时间复杂度不能突破O(nlogn),因此又被称为非线性时间比较类排序;交换排序冒泡排序快速排序插入排序(简单)插入排序希尔排序选择排序(简单)选择排序堆排序归并排序**非比较类排序:**不通过比较来决定元素的相对次序,时间复杂度可以突破到线性,又被称为线性时间非比较类排序。计数排序桶排序冒泡排序 O(n^2)不断比较相邻的两个元素,并交换位置,一次遍历确定一个最值放在最后。
2022-05-06 13:16:14
197
原创 若依项目分离版 后端部分讲解
RuoYi-Vue版:后端部分 若依分离版官方文档 写在前面:下面每一个功能后面写的(如/captchaImage、/login)都是实现该功能的核心方法或者映射路径,使用 Ctrl + Shift +F 全局查找,找到这些核心代码然后去debug。1. 登录逻辑(含验证码) /captchaImage、/login// 进行登录校验的核心方法:AuthenticationManager.authenticate()// 调用链AuthenticationManager.authe
2022-04-18 23:36:41
2664
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人