def test_mean_smooth(pts): #factor = 640 / 368.0 C0, C1, d0, d1 = load_camera_from_calibr('../calibr-1211/camchain-homeyihuaDesktopCPM3D_kalibrfinal3.yaml') pts3d = [] for k in range(14): p0 = pts[k,:2] p1 = pts[k,2:] p0, p1 = p1, p0 p3d = triangulate(C0, C1, p0, p1) pts3d.append(p3d) pts3d = np.array(pts3d) return pts3d
import sys, os from tensorpack.utils.fs import mkdir_p from runner import get_runner, get_parallel_runner from model import colorize from calibr import load_camera_from_calibr if __name__ == '__main__': dir = sys.argv[1] undistdir = sys.argv[2] outdir = sys.argv[3] mkdir_p(undistdir) mkdir_p(outdir) runner, _ = get_runner('../data/cpm.npy') C0, C1, d0, d1 = load_camera_from_calibr( '../calibr-1211/camchain-homeyihuaDesktopCPM3D_kalibrfinal3.yaml') for f in sorted(glob.glob(os.path.join(dir, '*.jpg'))): im = cv2.imread(f, cv2.IMREAD_COLOR) im = cv2.undistort(im, C0.K, d0) cv2.imwrite(os.path.join(undistdir, os.path.basename(f)), im) im = cv2.resize(im, (368, 368)) out = runner(im) np.save(os.path.join(outdir, os.path.basename(f)), out) #viz = colorize(im, out[:,:,:-1].sum(axis=2)) #cv2.imshow("", viz/255.0) #cv2.waitKey() print f
def final(): camera = libcpm.Camera() camera.setup() # cpp matcher: pmatcher = libcpm.PatchMatch() pmatcher.init(camera, 20) # python matcher: #bgs0, bgs1 = [], [] #for k in range(20): #m1 = camera.get_for_py(0) #m1 = np.array(m1, copy=True) #m2 = camera.get_for_py(1) #m2 = np.array(m2, copy=True) #bgs0.append(m1) #bgs1.append(m2) #matcher = Matcher(BackgroundSegmentor(bgs0), BackgroundSegmentor(bgs1)) runner = get_parallel_runner('../data/cpm.npy') viewer = libcpm.StereoCameraViewer(camera) viewer.start() C1, C0, d1, d0 = load_camera_from_calibr( '../calibr-1211/camchain-homeyihuaDesktopCPM3D_kalibrfinal3.yaml') queue = deque(maxlen=2) ctx = zmq.Context() sok = ctx.socket(zmq.PUSH) global args sok.connect('tcp://{}:8888'.format(args.host)) def cpp_matcher(m1, m2, o1, o2): o1 = libcpm.Mat(o1) o2 = libcpm.Mat(o2) out = pmatcher.match_with_hm(m1, m2, o1, o2) return np.asarray(out).reshape(14, 4) #14 x 2image x (x,y) pts3ds = [] cnt = 0 while True: cnt += 1 print 'begin---', time.time() m1 = camera.get_for_py(0) m1r = np.array(m1, copy=False) m2 = camera.get_for_py(1) m2r = np.array(m2, copy=False) m1s = cv2.resize(m1r, (368, 368)) m2s = cv2.resize(m2r, (368, 368)) print 'after resize---', time.time() o1, o2 = runner(m1s, m2s) print 'after cpm---', time.time() #pts14x4 = matcher.match(m1r, m2r, o1, o2) pts14x4 = cpp_matcher(m1, m2, o1, o2) #to_save = (m1s, m2s, o1, o2, pts14x4) #fout = open('full-recording/{:04d}.dat'.format(cnt), 'wb') #fout.write(dumps(to_save)) #fout.close() print 'after match---', time.time() queue.append(pts14x4) p2d = np.mean(queue, axis=0) p3ds = np.zeros((14, 3)) for c in range(14): p3d = triangulate(C0, C1, p2d[c, :2], p2d[c, 2:]) p3ds[c, :] = p3d sok.send(dumps(p3ds)) print p3ds print 'after send---', time.time() print '-----------------'