TPAMI 提供了室内和室外数据集,室内的真值由动捕提供,室外的真值由sfm提供(COLMAP) 几何信息 平面的参数化 如何表示 Text Patch 呢,换言之如何参数化呢? 类似光线投射,平面表示为 $\theta$,归一化平面上的点如果在平面上,使用$\rho = \theta ^T \tilde{m}$ 求得该点的深度,从而获得该点的 3D 坐标 这个 $\theta$ 如何求得呢?考虑空间上的平面方程,使用某一帧相机的相机坐标系:...
[Paper Reading] TextSLAM: Visual SLAM With Semantic Planar Text Features
ssh a nx orin and make its docker pull work
问题场景:使用个人PC通过 ssh 连接到 orin nx,但由于网络问题,orin的 docker pull 命令无法正常使用。而个人pc已开启代理,端口为127.0.0.1:8889(具体地址端口可在 v2ray 的首选项里查看)。 解决思路则是将 ssh 的 orin 的本地端口8889 关联到个人pc的 127.0.0.1:8889 上,之后在docker的代理配置文件里配置代理地址端口为 127.0.0.1:8889。 使用...
[VINS-Fusion] Feature Manager
double FeatureManager::compensatedParallax2(const FeaturePerId &it_per_id, int frame_count)
{
//check the second last frame is keyframe or not
//parallax betwwen seconde last frame and third last frame
const FeaturePerFrame &frame_i = it_per_id.feature_per_frame[frame_count - 2 - it_per_id.start_frame];
const FeaturePerFrame &frame_j = it_per_id.feature_per_frame[frame_count - 1 - it_per_id.start_frame];
double ans = 0;
Vector3d p_j = frame_j.point;
double u_j = p_j(0);
double v_j = p_j(1);
Vector3d p_i = frame_i.point;
Vector3d p_i_comp;
//int r_i = frame_count - 2;
//int r_j = frame_count - 1;
//p_i_comp = ric[camera_id_j].transpose() * Rs[r_j].transpose() * Rs[r_i] * ric[camera_id_i] * p_i;
p_i_comp = p_i;
double dep_i = p_i(2);
double u_i = p_i(0) / dep_i;
double v_i = p_i(1) / dep_i;
double du = u_i - u_j, dv = v_i - v_j;
double dep_i_comp = p_i_comp(2);
double u_i_comp = p_i_comp(0) / dep_i_comp;
double v_i_comp = p_i_comp(1) / dep_i_comp;
double du_comp = u_i_comp - u_j, dv_comp = v_i_comp - v_j;
ans = max(ans, sqrt(min(du * du + dv * dv, du_comp * du_comp + dv_comp * dv_comp)));
return ans;
}
feature manager 的主要数据结构为: class FeatureManager class FeaturePerId class FeaturePerFrame FeaturePerFrame 包括某帧内某个路标被观测的信息,如归一化平面坐标及速度、像素坐标、是否是双目、时间偏移。 FeaturePerId 则主要包括 vector<FeaturePerFrame> feature_per_frame,以及 frame_id、start_frame 等路标点个体级别的信息。值得注意的是,vins假设特征点是被连续观测到的,因此只记录开始的帧,即可推断出 vector 内其他观测所属的帧。 传入...
double FeatureManager::compensatedParallax2(const FeaturePerId &it_per_id, int frame_count)
{
//check the second last frame is keyframe or not
//parallax betwwen seconde last frame and third last frame
const FeaturePerFrame &frame_i = it_per_id.feature_per_frame[frame_count - 2 - it_per_id.start_frame];
const FeaturePerFrame &frame_j = it_per_id.feature_per_frame[frame_count - 1 - it_per_id.start_frame];
double ans = 0;
Vector3d p_j = frame_j.point;
double u_j = p_j(0);
double v_j = p_j(1);
Vector3d p_i = frame_i.point;
Vector3d p_i_comp;
//int r_i = frame_count - 2;
//int r_j = frame_count - 1;
//p_i_comp = ric[camera_id_j].transpose() * Rs[r_j].transpose() * Rs[r_i] * ric[camera_id_i] * p_i;
p_i_comp = p_i;
double dep_i = p_i(2);
double u_i = p_i(0) / dep_i;
double v_i = p_i(1) / dep_i;
double du = u_i - u_j, dv = v_i - v_j;
double dep_i_comp = p_i_comp(2);
double u_i_comp = p_i_comp(0) / dep_i_comp;
double v_i_comp = p_i_comp(1) / dep_i_comp;
double du_comp = u_i_comp - u_j, dv_comp = v_i_comp - v_j;
ans = max(ans, sqrt(min(du * du + dv * dv, du_comp * du_comp + dv_comp * dv_comp)));
return ans;
}
Total views. cowboys. Hits