Skip to content

Commit 7eef6d1

Browse files
authored
Add files via upload
1 parent 61bec07 commit 7eef6d1

File tree

5 files changed

+114
-8
lines changed

5 files changed

+114
-8
lines changed

script/demo_proj.py

Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
import pykitti
2+
import numpy as np
3+
import argparse
4+
import os
5+
# import matplotlib
6+
# matplotlib.use('agg')
7+
from matplotlib import pyplot as plt
8+
from cv_tools import *
9+
10+
11+
os.chdir(os.path.dirname(__file__))
12+
13+
def str2bool(s:str) -> bool:
14+
if s.isdigit():
15+
if float(s) > 0:
16+
return True
17+
else:
18+
return False
19+
if s.lower() == "false":
20+
return False
21+
else:
22+
return True
23+
def options():
24+
parser = argparse.ArgumentParser()
25+
kitti_parser = parser.add_argument_group()
26+
kitti_parser.add_argument("--base_dir",type=str,default="/data/DATA/data_odometry/dataset/")
27+
kitti_parser.add_argument("--seq",type=int,default=4,choices=[i for i in range(11)])
28+
kitti_parser.add_argument("--index_i",type=int,default=0)
29+
30+
io_parser = parser.add_argument_group()
31+
io_parser.add_argument("--skip_pts",type=int,default=1)
32+
io_parser.add_argument("--gt_TCL_file",type=str,default="../KITTI-{:02d}/calib_res/gt_calib_{:02d}.txt")
33+
io_parser.add_argument("--pred_TCL_file",type=str,default="../KITTI-{:02d}/calib_res/iba_global_pl_{:02d}.txt")
34+
io_parser.add_argument("--dpi",type=int,default=100)
35+
36+
arg_parser = parser.add_argument_group()
37+
arg_parser.add_argument("--view",type=str2bool,default=False)
38+
arg_parser.add_argument("--save_path",type=str,default="../fig/04/proj_04_combine.png")
39+
args = parser.parse_args()
40+
args.seq_id = "%02d"%args.seq
41+
if args.skip_pts <= 0:
42+
args.skip_pts = 1
43+
args.gt_TCL_file = args.gt_TCL_file.format(args.seq, args.seq)
44+
args.pred_TCL_file = args.pred_TCL_file.format(args.seq, args.seq)
45+
return args
46+
47+
if __name__ == "__main__":
48+
args = options()
49+
dataStruct = pykitti.odometry(args.base_dir, args.seq_id)
50+
calibStruct = dataStruct.calib
51+
# extran = calibStruct.T_cam0_velo
52+
extran_raw = np.loadtxt(args.pred_TCL_file)
53+
extran = np.eye(4)
54+
extran[:3,:] = extran_raw[:12].reshape(3,4)
55+
gt_extran_raw = np.loadtxt(args.gt_TCL_file)
56+
gt_extran = np.eye(4)
57+
gt_extran[:3,:] = gt_extran_raw[:12].reshape(3,4)
58+
src_pcd_arr = dataStruct.get_velo(args.index_i)[::args.skip_pts,:3] # [N, 3]
59+
src_img = np.array(dataStruct.get_cam0(args.index_i)) # [H, W, 3]
60+
img_shape = src_img.shape[:2]
61+
intran = calibStruct.K_cam0
62+
plt.figure(figsize=(12,7.6),dpi=args.dpi,tight_layout=True)
63+
plt.subplot(2,1,1)
64+
proj_src, src_rev_idx = npproj(src_pcd_arr, extran, intran, img_shape)
65+
range_src = src_pcd_arr[:,-1][src_rev_idx]
66+
plt.imshow(src_img,cmap="Greys_r")
67+
plt.scatter(proj_src[:,0],proj_src[:,1],marker='.',s=2.25,c=range_src,cmap='rainbow_r',alpha=0.8)
68+
plt.axis([0,img_shape[1],img_shape[0],0])
69+
plt.axis('off')
70+
plt.tight_layout(pad=0)
71+
plt.subplot(2,1,2)
72+
proj_src, src_rev_idx = npproj(src_pcd_arr, gt_extran, intran, img_shape)
73+
range_src = src_pcd_arr[:,-1][src_rev_idx]
74+
plt.imshow(src_img,cmap="Greys_r")
75+
plt.scatter(proj_src[:,0],proj_src[:,1],marker='.',s=2.25,c=range_src,cmap='rainbow_r',alpha=0.8)
76+
plt.axis([0,img_shape[1],img_shape[0],0])
77+
plt.axis('off')
78+
plt.tight_layout(pad=0)
79+
if args.view:
80+
plt.show()
81+
plt.savefig(args.save_path)
82+
83+
84+

script/demo_scatter.py

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
import matplotlib.pyplot as plt
2+
import numpy as np
3+
4+
# Fixing random state for reproducibility
5+
np.random.seed(19680801)
6+
7+
8+
N = 100
9+
r0 = 0.6
10+
x = 0.9 * np.random.rand(N)
11+
y = 0.9 * np.random.rand(N)
12+
area = (20 * np.random.rand(N))**2 # 0 to 10 point radii
13+
c = np.sqrt(area)
14+
r = np.sqrt(x ** 2 + y ** 2)
15+
area1 = np.ma.masked_where(r < r0, area)
16+
area2 = np.ma.masked_where(r >= r0, area)
17+
plt.scatter(x, y, s=area1, marker='^', c=c)
18+
plt.scatter(x, y, s=area2, marker='o', c=c)
19+
# Show the boundary between the regions:
20+
theta = np.arange(0, np.pi / 2, 0.01)
21+
plt.plot(r0 * np.cos(theta), r0 * np.sin(theta))
22+
plt.savefig("demo.pdf")

script/draw_iba_func.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,12 @@ def options():
1414
parser.add_argument("--rot_step",type=float,default=1)
1515
parser.add_argument("--rot_range",type=float,default=10)
1616
parser.add_argument("--tsl_step",type=float,default=0.01)
17-
parser.add_argument("--tsl_range",type=float,default=0.1)
17+
parser.add_argument("--tsl_range",type=float,default=0.3)
1818
parser.add_argument("--scale_step",type=float,default=0.1)
1919
parser.add_argument("--scale_range",type=float,default=1)
2020
parser.add_argument("--he_threshold",type=float,default=0.03)
2121
parser.add_argument("--res_sim3",type=str,default="../demo/sim3_res_04.txt")
22-
parser.add_argument("--res_dir",type=str,default="../fig/")
22+
parser.add_argument("--res_dir",type=str,default="../fig/04/")
2323
parser.add_argument("--fig_size",type=float,nargs=2,default=[8,3])
2424
return parser.parse_args()
2525

script/gen_perturb.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,15 @@
77

88
def options():
99
parser = argparse.ArgumentParser()
10-
parser.add_argument("--base_sim3",type=str,default="../KITTI-04/calib_res/gt_calib_04.txt")
10+
parser.add_argument("--base_sim3",type=str,default="../KITTI-07/calib_res/gt_calib_07.txt")
1111
parser.add_argument("--rot_step",type=float,default=1)
1212
parser.add_argument("--rot_range",type=float,default=10)
1313
parser.add_argument("--tsl_step",type=float,default=0.01)
14-
parser.add_argument("--tsl_range",type=float,default=0.1)
14+
parser.add_argument("--tsl_range",type=float,default=0.3)
1515
parser.add_argument("--scale_step",type=float,default=0.1)
1616
parser.add_argument("--scale_range",type=float,default=1)
17-
parser.add_argument("--save_sim3",type=str,default="../demo/sim3_test_04.txt")
18-
parser.add_argument("--log_sim3",type=str,default="../demo/sim3_log_04.txt")
17+
parser.add_argument("--save_sim3",type=str,default="../demo/sim3_test_07.txt")
18+
parser.add_argument("--log_sim3",type=str,default="../demo/sim3_log_07.txt")
1919
return parser.parse_args()
2020

2121
if __name__ == "__main__":

script/metric.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55

66
def options():
77
parser = argparse.ArgumentParser()
8-
parser.add_argument("--gt",type=str,default="../KITTI-00/calib_res/gt_calib_00.txt")
9-
parser.add_argument("--pred",type=str,default="../KITTI-00/calib_res/iba_global_pl_00.txt")
8+
parser.add_argument("--gt",type=str,default="../KITTI-07/calib_res/gt_calib_07.txt")
9+
parser.add_argument("--pred",type=str,default="../KITTI-07/calib_res/iba_global_pt3_07.txt")
1010
return parser.parse_args()
1111

1212
def inv_pose(pose:np.ndarray):

0 commit comments

Comments
 (0)