def b(s): return bytes(s, 'utf-8') cwd = '/home/krematas/code/scanner/examples/apps/image_sets' db = Database() encoded_image = db.sources.Files() frame = db.ops.ImageDecoder(img=encoded_image) encoded_mask = db.sources.Files() frame2 = db.ops.ImageDecoder(img=encoded_mask) db.register_op('ProcessImage', [('image', ColumnType.Video), ('mask', ColumnType.Video)], [('resized', ColumnType.Video)]) db.register_python_kernel('ProcessImage', DeviceType.CPU, cwd + '/dummy_kernel.py') resized = db.ops.ProcessImage(image=frame, mask=frame2, w=60, h=60) output_op = db.sinks.FrameColumn(columns={'frame': resized}) job = Job( op_args={ encoded_image: {'paths': ['/home/krematas/Mountpoints/grail/data/barcelona/players/images/00114_00010.jpg', '/home/krematas/Mountpoints/grail/data/barcelona/players/images/00114_00008.jpg']}, encoded_mask: {'paths': ['/home/krematas/Mountpoints/grail/data/barcelona/players/masks/00114_00010.png', '/home/krematas/Mountpoints/grail/data/barcelona/players/masks/00114_00008.png']}, output_op: 'example_resized', }) [out_table] = db.run(output_op, [job], force=True)
mask_path = '/home/krematas/Mountpoints/grail/data/barcelona/mask.mp4' db = Database() print('Ingesting video into Scanner ...') input_tables, failed = db.ingest_videos([(movie_name, movie_path), ('mask', mask_path)], force=True) print(db.summarize()) print('Failures:', failed) cam_data = np.load( '/home/krematas/Mountpoints/grail/data/barcelona/calib/00114.npy').item() db.register_op('Calibrate', [('frame', ColumnType.Video), ('mask', ColumnType.Video)], [('resized', ColumnType.Video)]) # Custom Python kernels for ops reside in a separate file, here calibrate_kernel.py. cwd = '/home/krematas/code/scanner/examples/apps/soccer_calibration' db.register_python_kernel('Calibrate', DeviceType.CPU, cwd + '/calibrate_kernel.py') frame = db.sources.FrameColumn() mask = db.sources.FrameColumn() # Then we use our op just like in the other examples. resized = db.ops.Calibrate(frame=frame, mask=mask, w=3840, h=2160,