Closed JokerShao closed 4 years ago
多谢回答!但我认为还是LINEMOD数据集变换出现的问题 我实际是仿照LINEMOD_ORIG的数据格式和坐标定义进行的数据生成,中间经过了fuse和render的几步转换,感觉像是这里出现了问题。
我这边搞了三个demo
小猫的,从LINEMOD/cat中读取除位姿外的所有数据,从LINEMOD_ORIG中读取rot,tra信息,并做转换
# Transform pose from orig to blender
pose_transformer = PoseTransformer(class_type=model_type)
pose = pose_transformer.orig_pose_to_blender_pose(pose).astype(np.float32)
我自己录制的数据集,从LINEMOD/rubikscube中读取除位姿外的所有数据,从LINEMOD_ORIG中读取rot,tra信息,不做转换
使用我录制的数据集+pvnet-rendering渲染融合结果(因为用2验证的效果并不好,所以想试试训练集里的图像会不会好些),从LINEMOD/fuse中读取rgb, mask,其他数据LINEMOD/rubikscube中读取,位姿信息从LINEMOD/fuse中的pkl文件获得,结果如下图,所以现在怀疑train_linemod.py做数据预处理时是否也进行了测试1中的转换,导致label直接就是错误的?
你自己的数据不用经过linemod的坐标变换。linemod是因为3d object model和它给的gt 6d pose不一样,所以才需要变换。 用blender生成的6d pose和你用于渲染的3d model是一致的。
@JokerShao,您好,我想请教您制作自己数据集的问题,“OpenCV+ArUco创建真实数据集,包括Rt,mask以及rgb图像”,我查资料OpenCV+ArUco制作了标记ID,打印出来,摄像头可检测标记ID和三维轴。想问您: 1.您使用的摄像头是任意摄像头,还是kinect? 2.物体放在打印的有标记ID的标定板中,是怎么获取到物体的RT的? 3.作者说的“mask是用opengl渲染得来的”这是什么意思?觉得不是使用labelme分割标定的 期待您的回复,谢谢!
因为有物体的RT,所以将物体3d模型渲染投影到2d图像上,就可以得到物体的mask,不需要再另外标定mask。
@emojiLee
@pengsida @JokerShao 谢谢你们~
@JokerShao 你好,我在研究你的案例时有些疑问: 1.使用ArUco时我们可以获得标定板上二维码的R值(旋转向量)和T值(平移向量),我能够理解T值不相同,按照我的理解同一平面上的二维码的R值应该是相同,但是实际上并不相同(会有些细微的差别),这样让我无法直接确定标定的R值。我们是否可以将有效二维码的R值平均后作为标定板的R值?
2.物体与标定板的RT是如何确定的?是默认物体坐标系和标定板坐标系重合,如果我假定物体与标定板的自身坐标系是重合的那是否可以认为标定板的RT就是物体的的RT?同理我们可以假定物体坐标系的旋转与标定板的是相同的,那么标定板的R值则是物体的R值,再根据物体坐标中心与标定板坐标中心的位置关系确定物体的T值?
3.“物体放在标定板上,乘一下偏移量和旋转矩阵就行了",这句话中偏移量和旋转矩阵是指物体相对于标定板坐标系的坐标值和旋转矩阵吗?还是其他什么的偏移和旋转矩阵?
@pengsida 彭总求助啊 上面的问题
@JokerShao @pengsida
感谢二位的回复,根据二位的回复我继续进行了研究有如下的疑问:
@pengsida 感谢回复,我有如下疑问:
彭总你好,之前经过你的指导,已经训练出一套参数,在我的魔方识别问题上效果不错,这里先多谢了!但我这个应用场景还有如下几个问题: 我训练出来的魔方在普通光照下效果较为不错,但还是存在反光和暗光条件下识别不好的问题,于是我采用以下新的配置重新进行训练:
train epoch 118 step 235518 seg 0.00307280 ver 0.02018229 precision 0.98016721 recall 0.97410148
train epoch 118 step 235598 seg 0.00317967 ver 0.02033208 precision 0.97812814 recall 0.97420579
train epoch 118 step 235678 seg 0.00280651 ver 0.01981678 precision 0.98049003 recall 0.97660553
val epoch 118 step 118 seg 0.00327823 ver 0.02080548 precision 0.98000807 recall 0.97438341
问题:
好的,我试试看resize,多谢了。
@pengsida 彭总求助啊 上面的问题
@JokerShao 你好,我在研究你的案例时有些疑问: 1.使用ArUco时我们可以获得标定板上二维码的R值(旋转向量)和T值(平移向量),我能够理解T值不相同,按照我的理解同一平面上的二维码的R值应该是相同,但是实际上并不相同(会有些细微的差别),这样让我无法直接确定标定的R值。我们是否可以将有效二维码的R值平均后作为标定板的R值?
2.物体与标定板的RT是如何确定的?是默认物体坐标系和标定板坐标系重合,如果我假定物体与标定板的自身坐标系是重合的那是否可以认为标定板的RT就是物体的的RT?同理我们可以假定物体坐标系的旋转与标定板的是相同的,那么标定板的R值则是物体的R值,再根据物体坐标中心与标定板坐标中心的位置关系确定物体的T值?
3.“物体放在标定板上,乘一下偏移量和旋转矩阵就行了",这句话中偏移量和旋转矩阵是指物体相对于标定板坐标系的坐标值和旋转矩阵吗?还是其他什么的偏移和旋转矩阵?
这个 物体和ArUco标定板之间的R和T到底怎么确定的呀?有人讲解下嘛?
R、t的确定取决于你物体本体坐标系的选取吧。得先确定物体的坐标系,才能确定物体和标定板的相对位姿。
R、t的确定取决于你物体本体坐标系的选取吧。得先确定物体的坐标系,才能确定物体和标定板的相对位姿。
首先谢谢你的回答,物体坐标系的定义要参看你的ply文件,因为后续还需要blender渲染图像,要保证真实图像和渲染图像的轴系定义相同,这个步骤你就解答过,但是具体能告诉下我嘛,因为才开始做,我的目标就是确定ArUco标定板和物体的pose
emmm,这还怎么具体?
用blender打开ply模型,那里面有轴系和原点,你的实际物体定义要与blender里面相同啊。
好的谢谢了
------------------ 原始邮件 ------------------ 发件人: "zju3dv/pvnet" @.>; 发送时间: 2021年9月7日(星期二) 中午11:21 @.>; @.**@.>; 主题: Re: [zju3dv/pvnet] 新物体的训练 (#103)
用blender打开ply模型,那里面有轴系和原点,你的实际物体定义要与blender里面相同啊。
— You are receiving this because you commented. Reply to this email directly, view it on GitHub, or unsubscribe. Triage notifications on the go with GitHub Mobile for iOS or Android.
不客气。
大佬能不能出一期教程来说明如何制作数据集的?绝对火。
参考#89,新物体训练我遵循以下步骤
但实际可视化结果如图
问题如下:
http://far.in.tum.de/Main/StefanHinterstoisser
中有说,但是说的比较笼统,没有看太懂多谢解答!