(self, show_pw_cams=False, show_pw_pts3d=False, cam_size=None, **kw)
| 295 | return res |
| 296 | |
| 297 | def show(self, show_pw_cams=False, show_pw_pts3d=False, cam_size=None, **kw): |
| 298 | viz = SceneViz() |
| 299 | if self.imgs is None: |
| 300 | colors = np.random.randint(0, 256, size=(self.n_imgs, 3)) |
| 301 | colors = list(map(tuple, colors.tolist())) |
| 302 | for n in range(self.n_imgs): |
| 303 | viz.add_pointcloud(self.get_pts3d()[n], colors[n], self.get_masks()[n]) |
| 304 | else: |
| 305 | viz.add_pointcloud(self.get_pts3d(), self.imgs, self.get_masks()) |
| 306 | colors = np.random.randint(256, size=(self.n_imgs, 3)) |
| 307 | |
| 308 | # camera poses |
| 309 | im_poses = to_numpy(self.get_im_poses()) |
| 310 | if cam_size is None: |
| 311 | cam_size = auto_cam_size(im_poses) |
| 312 | viz.add_cameras(im_poses, self.get_focals(), colors=colors, |
| 313 | images=self.imgs, imsizes=self.imsizes, cam_size=cam_size) |
| 314 | if show_pw_cams: |
| 315 | pw_poses = self.get_pw_poses() |
| 316 | viz.add_cameras(pw_poses, color=(192, 0, 192), cam_size=cam_size) |
| 317 | |
| 318 | if show_pw_pts3d: |
| 319 | pts = [geotrf(pw_poses[e], self.pred_i[edge_str(i, j)]) for e, (i, j) in enumerate(self.edges)] |
| 320 | viz.add_pointcloud(pts, (128, 0, 128)) |
| 321 | |
| 322 | viz.show(**kw) |
| 323 | return viz |
| 324 | |
| 325 | |
| 326 | def global_alignment_loop(net, lr=0.01, niter=300, schedule='cosine', lr_min=1e-6): |
no test coverage detected