From 3fa41a741958a6a56de82198fbf6d0ef50c9477d Mon Sep 17 00:00:00 2001 From: Stephen Tyree Date: Sat, 27 Jan 2024 22:06:34 -0600 Subject: [PATCH] initial code release --- .gitignore | 12 + LICENSE.txt | 94 ++++ README.md | 121 ++++- config/default_config.sh | 35 ++ example/README.md | 1 + intro.jpeg | Bin 0 -> 435732 bytes requirements.txt | 10 + run.sh | 632 ++++++++++++++++++++++ scripts/apply_canonical_pose_and_scale.py | 92 ++++ scripts/clean_mesh.py | 90 +++ scripts/edit_transforms_file.py | 112 ++++ scripts/export_depth.py | 164 ++++++ scripts/extract_sharpest_frames.py | 126 +++++ scripts/generate_bop_masks.py | 215 ++++++++ scripts/generate_gt_bop.py | 312 +++++++++++ scripts/manual_align.py | 514 ++++++++++++++++++ scripts/manual_scale.py | 106 ++++ scripts/mask_images.py | 92 ++++ scripts/o3d_mesh_pipeline.py | 421 ++++++++++++++ scripts/utils.sh | 77 +++ 20 files changed, 3217 insertions(+), 9 deletions(-) create mode 100644 .gitignore create mode 100644 LICENSE.txt create mode 100644 config/default_config.sh create mode 100644 example/README.md create mode 100644 intro.jpeg create mode 100644 requirements.txt create mode 100644 run.sh create mode 100644 scripts/apply_canonical_pose_and_scale.py create mode 100644 scripts/clean_mesh.py create mode 100644 scripts/edit_transforms_file.py create mode 100644 scripts/export_depth.py create mode 100644 scripts/extract_sharpest_frames.py create mode 100644 scripts/generate_bop_masks.py create mode 100644 scripts/generate_gt_bop.py create mode 100644 scripts/manual_align.py create mode 100644 scripts/manual_scale.py create mode 100644 scripts/mask_images.py create mode 100644 scripts/o3d_mesh_pipeline.py create mode 100644 scripts/utils.sh diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..14b14ad --- /dev/null +++ b/.gitignore @@ -0,0 +1,12 @@ +colmap.db* +colmap_sparse +colmap_text + +data/ +**__pycache__** +imgui.ini + +commands.sh + +*.jpg +*.png \ No newline at end of file diff --git a/LICENSE.txt b/LICENSE.txt new file mode 100644 index 0000000..a318089 --- /dev/null +++ b/LICENSE.txt @@ -0,0 +1,94 @@ +Copyright (c) 2024, NVIDIA Corporation & affiliates. All rights reserved. + + +======================================================================= + +1. Definitions + +"Licensor" means any person or entity that distributes its Work. + +"Software" means the original work of authorship made available under +this License. + +"Work" means the Software and any additions to or derivative works of +the Software that are made available under this License. + +The terms "reproduce," "reproduction," "derivative works," and +"distribution" have the meaning as provided under U.S. copyright law; +provided, however, that for the purposes of this License, derivative +works shall not include works that remain separable from, or merely +link (or bind by name) to the interfaces of, the Work. + +Works, including the Software, are "made available" under this License +by including in or with the Work either (a) a copyright notice +referencing the applicability of this License to the Work, or (b) a +copy of this License. + +2. License Grants + + 2.1 Copyright Grant. Subject to the terms and conditions of this + License, each Licensor grants to you a perpetual, worldwide, + non-exclusive, royalty-free, copyright license to reproduce, + prepare derivative works of, publicly display, publicly perform, + sublicense and distribute its Work and any resulting derivative + works in any form. + +3. Limitations + + 3.1 Redistribution. You may reproduce or distribute the Work only + if (a) you do so under this License, (b) you include a complete + copy of this License with your distribution, and (c) you retain + without modification any copyright, patent, trademark, or + attribution notices that are present in the Work. + + 3.2 Derivative Works. You may specify that additional or different + terms apply to the use, reproduction, and distribution of your + derivative works of the Work ("Your Terms") only if (a) Your Terms + provide that the use limitation in Section 3.3 applies to your + derivative works, and (b) you identify the specific derivative + works that are subject to Your Terms. Notwithstanding Your Terms, + this License (including the redistribution requirements in Section + 3.1) will continue to apply to the Work itself. + + 3.3 Use Limitation. The Work and any derivative works thereof only + may be used or intended for use non-commercially. Notwithstanding + the foregoing, NVIDIA and its affiliates may use the Work and any + derivative works commercially. As used herein, "non-commercially" + means for research or evaluation purposes only. + + 3.4 Patent Claims. If you bring or threaten to bring a patent claim + against any Licensor (including any claim, cross-claim or + counterclaim in a lawsuit) to enforce any patents that you allege + are infringed by any Work, then your rights under this License from + such Licensor (including the grant in Section 2.1) will terminate + immediately. + + 3.5 Trademarks. This License does not grant any rights to use any + Licensor�s or its affiliates� names, logos, or trademarks, except + as necessary to reproduce the notices described in this License. + + 3.6 Termination. If you violate any term of this License, then your + rights under this License (including the grant in Section 2.1) will + terminate immediately. + +4. Disclaimer of Warranty. + +THE WORK IS PROVIDED "AS IS" WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WARRANTIES OR CONDITIONS OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE OR +NON-INFRINGEMENT. YOU BEAR THE RISK OF UNDERTAKING ANY ACTIVITIES UNDER +THIS LICENSE. + +5. Limitation of Liability. + +EXCEPT AS PROHIBITED BY APPLICABLE LAW, IN NO EVENT AND UNDER NO LEGAL +THEORY, WHETHER IN TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE +SHALL ANY LICENSOR BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY DIRECT, +INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF +OR RELATED TO THIS LICENSE, THE USE OR INABILITY TO USE THE WORK +(INCLUDING BUT NOT LIMITED TO LOSS OF GOODWILL, BUSINESS INTERRUPTION, +LOST PROFITS OR DATA, COMPUTER FAILURE OR MALFUNCTION, OR ANY OTHER +COMMERCIAL DAMAGES OR LOSSES), EVEN IF THE LICENSOR HAS BEEN ADVISED OF +THE POSSIBILITY OF SUCH DAMAGES. + +======================================================================= diff --git a/README.md b/README.md index c447a1f..b6bbfa9 100644 --- a/README.md +++ b/README.md @@ -1,19 +1,122 @@ -[![License: CC BY-NC-SA 4.0](https://img.shields.io/badge/License-CC_BY--NC--SA_4.0-lightgrey.svg)](https://creativecommons.org/licenses/by-nc-sa/4.0/) +# HANDAL -# HANDAL Dataset + -Dataset is now available for manual [download](https://drive.google.com/drive/folders/1ANTZAXDbZbszyxa7ZO9_DcFHe8tbdCIN?usp=drive_link). Automated tools are forthcoming... +## HANDAL Dataset + +The HANDAL dataset is category-level dataset for object pose estimation and affordance prediction, with a focus on hardware and kitchen tool objects that are of the proper size and shape for functional robotic grasping (e.g. pliers, utensils, and screwdrivers). The dataset consists of 308k annotated image frames from 2.2k videos of 212 real-world objects in 17 categories. + +Dataset is available for download from [Google Drive](https://drive.google.com/drive/folders/1ANTZAXDbZbszyxa7ZO9_DcFHe8tbdCIN?usp=drive_link). Dataset is released under [CC-BY-NC-SA-4.0 license](https://creativecommons.org/licenses/by-nc-sa/4.0/). Dataset follows the [BOP format](https://github.com/thodan/bop_toolkit/blob/master/docs/bop_datasets_format.md), with some minor modifications: -- Image size is provided in the `scene_camera.json` info file (since multiple camera sensors were used to capture data) -- Depth is from NeRF ([Instant NGP](https://github.com/NVlabs/instant-ngp)) rather than from a depth sensor +- Image size is provided in `scene_camera.json` for each scene, since multiple camera sensors were used to capture data +- Depth is rendered from NeRF reconstructions of the scene ([Instant NGP](https://github.com/NVlabs/instant-ngp)) rather than from a depth sensor - RGB images are compressed using JPEG rather than PNG -*(Note: Not all categories are available yet. Some are uploading, others are still processing. Stay tuned over the next several days...)* +For more details, see the [project page](https://nvlabs.github.io/HANDAL) and our 2023 [IROS paper](https://arxiv.org/abs/2308.01477). + + +## HANDAL Toolkit + +Our annotation process is streamlined, requiring only a single off-the-shelf camera and semi-automated processing, allowing us to produce high-quality 3D annotations without crowd-sourcing. This section covers how to install the HANDAL toolkit and use it to annotate static scenes. + + +### Setup + +Our toolkit requires an NVIDIA GPU capable of running [Instant-NGP](https://github.com/NVlabs/instant-ngp/blob/master/README.md#requirements). We have only tested the toolkit on Ubuntu. + +#### Installing the HANDAL toolkit +We recommend installing the HANDAL pipeline in a separate Python environment, using Python 3.10 or greater. +``` +conda create -n handal-toolkit python=3.10 +git clone https://https://github.com/NVlabs/HANDAL.git +cd HANDAL +pip install -r requirements.txt +``` + +#### Installing Instant-NGP +Our pipeline leverages the [Instant-NGP](https://github.com/NVlabs/instant-ngp) Python bindings for scene reconstruction, depth estimation, and mesh construction. +Follow the instructions to build [Instant-NGP](https://github.com/NVlabs/instant-ngp#building-instant-ngp-windows--linux) and its [Python bindings](https://github.com/NVlabs/instant-ngp#python-bindings). +Some potential headaches may be avoided by building the Python bindings in the same Python environment as the one used to install the HANDAL toolkit. +Finally, set the `CONFIG_NGP_PATH` variable in `configs/default_config.sh` to the root directory of the Instant-NGP repository. + +The following commands worked for our local build of Instant-NGP. We share them in case they are helpful, but we recommend following the official instructions if any problems are encountered: +``` +conda activate handal-toolkit +cd HANDAL +git clone --recursive https://github.com/nvlabs/instant-ngp submodules/instant-ngp +cd submodules/instant-ngp +conda install -c conda-forge libgcc-ng libstdcxx-ng cmake # fix the missing GLIBCXX 3.4.30 error +pip install -r requirements.txt +cmake . -B build -DCMAKE_BUILD_TYPE=RelWithDebInfo +cmake --build build --config RelWithDebInfo -j +python ./scripts/run.py --help +``` + +#### Installing a video segmentation tool +To initialize the pipeline, we require rough segmentation masks of the object to be annotated. We recommend considering the video segmentation tool [Cutie](https://github.com/hkchengrex/Cutie), a follow-up work to [XMem](https://github.com/hkchengrex/XMem). To avoid conflicting with the other requirements, we recommend installing it in a separate Python environment. + + +### Running the example + +To test the installation, download the example scenes from [Google Drive](https://drive.google.com/drive/folders/1znqQgfNfe5yoDd3SVy7JJfkAy4CXRTpy?usp=sharing) and extract them to `example/`. Object segmentation masks are already provided for these examples in the `input_masks/` directory. + +#### Process reference scene +To generate the initial reconstruction and annotation of the reference scan, run the following command: +``` +bash run.sh example/drill_reference +``` +If the command runs successfully, you will find initial annotations and results in `example/drill_reference/`, including raw BOP annotations `bop_raw/scene_*_initial.json`, a mesh with vertex colors `meshes/colored.ply`, and rendered depth maps `depth_scene/`. The initial annotations lack ground truth scale because we use RGB-only inputs. The next steps will interactively place the reference object in a canonical pose and estimate the correct scale. + +First, ensure that `example/drill_reference/config.sh` contains the following line to indicate that this is a reference scene: +``` +CONFIG_IS_REFERENCE=1 +``` +Then, run the following command: +``` +bash run.sh example/drill_reference --interactive +``` +First, an interactive tool will place the object in a canonical pose. The canonical pose is automatically initialized using an oriented bounding cuboid fit to the object mesh. +Use the keys `r`, `g`, and `b` to rotate the object in 1 degree increments around the `x`, `y`, and `z` axes, respectively. +(The `shift` key can be used to rotate in the opposite direction, the `ctrl` key can be used to make 90 degree rotations, and the `alt` key can be used to make 0.1 degree rotations.) + +Use the `v` key to cycle through canonical viewing directions (corresponding to the [BOP](https://github.com/thodan/bop_toolkit/blob/master/docs/bop_datasets_format.md#coordinate-systems) documentation): front view (red x-axis pointing out of screen), side view (green y-axis pointing out of screen), and top view (blue z-axis pointing out of screen). + +For this example, in the front view, we recommend rotating such that the top of the drill is aligned with the positive `z` axis (blue arrow) and the front of the drill is pointing in the negative `y` direction (green arrow). + +Once the object is in the desired pose, press `q` to quit the interactive tool and write the pose to `example/drill_reference/canonical_pose.json`. + +Next, you will be prompted to enter the measured dimensions of the object in millimeters. For the drill example, the dimensions are 230mm x 130mm x 75mm corresponding to the height, width, and depth of the object in BOP canonical pose. (Or, equivalently, the size of bounding cuboid along the z-, y-, and x-axes, respectively.) +The estimated scale will be written to `example/drill_reference/canonical_scale.json`. + +Finally, the pipeline will apply the canonical pose and scale and finalize the BOP annotations in `example/drill_reference/bop/`. + +#### Process and align additional scene + +To process an additional scene (e.g. `example/drill_scene1`) and align it to the reference scene, first ensure that `example/drill_scene1/config.sh` contains the following line to indicate the reference scene (relative to the scene's directory): +``` +CONFIG_REFERENCE_SCENE=../drill_reference +``` +Then run the following command: +``` +bash run.sh example/drill_scene1 --interactive +``` +After the initial reconstruction, the interactive GUI will first prompt for the canonical pose, followed by a prompt for scale. (Be careful when scaling as some dimensions may not be accurate if the object was occluded.) Then the interative GUI will guide the alignment of the object to the reference scan. In addition to the rotation keys used to set the canonical pose, the `x`, `y`, and `z` keys may be used to translate the object in 1mm increments along the `x`, `y`, and `z` axes. (As before, the `shift`, `ctrl`, and `alt` keys may be used to translate in the opposite direction, make 50mm adjustments, and make 0.2mm adjustments, respectively.) + +Finally, the pipeline will use this transformation and the mesh copied from the reference scene to generate final annotation files in `example/drill_scene1/bop/`. + -For more details (including the IROS '23 paper describing the work), see the [project page](https://nvlabs.github.io/HANDAL) +## Citation and License -Code for re-creating the dataset will be coming in a few weeks... +```bibtex +@InProceedings{handaliros23, + title={{HANDAL}: A Dataset of Real-World Manipulable Object Categories with Pose Annotations, Affordances, and Reconstructions}, + author={Andrew Guo and Bowen Wen and Jianhe Yuan and Jonathan Tremblay and Stephen Tyree and Jeffrey Smith and Stan Birchfield}, + booktitle={IROS}, + year={2023} +} +``` -Dataset is released under [CC-BY-NC-SA-4.0 license](https://creativecommons.org/licenses/by-nc-sa/4.0/) +The dataset is released under [CC-BY-NC-SA-4.0 license](https://creativecommons.org/licenses/by-nc-sa/4.0/). The code is released under the [NVIDIA Source Code License](LICENSE.txt). +Copyright © 2023-2024, NVIDIA Corporation. All rights reserved. \ No newline at end of file diff --git a/config/default_config.sh b/config/default_config.sh new file mode 100644 index 0000000..485c218 --- /dev/null +++ b/config/default_config.sh @@ -0,0 +1,35 @@ +# Scene scale foe NGP reconstruction +CONFIG_AABB_SCALE=4 + +# Target number of frames to extract from video +CONFIG_FRAME_COUNT=125 + +# Path to directory containing object masks (relative to scene path) +CONFIG_MASK_DIR=input_masks + +# Number of NGP optimization steps +CONFIG_N_STEPS=5000 + +# Path to NGP repository (use $SOURCE_PATH to refer to toolkit repository root dir) +CONFIG_NGP_PATH=$SOURCE_PATH/submodules/instant-ngp + +# Filename of scene video (relative to scene path) +CONFIG_VIDEO_NAME=input.mp4 + +# Depth tolerance (in ~mm) for generating visibility masks +CONFIG_VISIBILITY_TOLERANCE=25 + +# Flag to indicate whether this is a reference mesh +CONFIG_IS_REFERENCE=0 + +# Scale factor for the scene +CONFIG_SCALE_FACTOR=0 + +# Reference mesh for aligning/scaling across scenes +CONFIG_REFERENCE_SCENE= + +# BOP object/mesh ID +CONFIG_BOP_ID=0 + +# Use Poisson mesh reconstruction from NGP depth maps +CONFIG_USE_POISSON_MESH=0 diff --git a/example/README.md b/example/README.md new file mode 100644 index 0000000..9f65f10 --- /dev/null +++ b/example/README.md @@ -0,0 +1 @@ +Three example scenes (a reference scan of a drill, plus two scans of the same drill in different scenes) may be downloaded from [Google Drive](https://drive.google.com/drive/folders/1znqQgfNfe5yoDd3SVy7JJfkAy4CXRTpy?usp=sharing) and extracted here. Object segmentation masks are already provided for these examples in the `input_masks/` directory. \ No newline at end of file diff --git a/intro.jpeg b/intro.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..d7ffdb575a8abce96c7d7f1b629dd5f7269ed465 GIT binary patch literal 435732 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�Cc9pEeuy} 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 R=TeHibZq*%Yrg+2{vW-+heZGY literal 0 HcmV?d00001 diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..bfef3c6 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,10 @@ +git+https://github.com/thodan/bop_toolkit.git +decord +flask>=2.2.5 +numpy +open3d>=0.18.0 +opencv-python +rich +scipy +tqdm +trimesh[easy] diff --git a/run.sh b/run.sh new file mode 100644 index 0000000..54d3f9a --- /dev/null +++ b/run.sh @@ -0,0 +1,632 @@ +#!/bin/bash + +# Copyright (c) 2024, NVIDIA CORPORATION. All rights reserved. +# +# NVIDIA CORPORATION and its licensors retain all intellectual property +# and proprietary rights in and to this software, related documentation +# and any modifications thereto. Any use, reproduction, disclosure or +# distribution of this software and related documentation without an express +# license agreement from NVIDIA CORPORATION is strictly prohibited. + + +################################################## +# Load helper functions +################################################## +SOURCE_PATH=$(dirname "$BASH_SOURCE") +source $SOURCE_PATH/scripts/utils.sh + + +################################################## +# Loop over arguments and parse flags +################################################## +SCENE_PATH="" +for arg in "$@"; do + case $arg in + -h|--help) + echo "Usage: bash run.sh [SCENE_PATH] [OPTIONS]" + echo " SCENE_PATH: Path to scene directory (default: current directory)" + echo " OPTIONS:" + echo " --interactive: Run interactive tool to align canonical pose" + echo " --help: Print this help message" + exit 0 + ;; + --interactive) + IS_INTERACTIVE=1 + ;; + *) + # if SCENE_PATH is empty and arg is not an option, set SCENE_PATH + if [[ -z $SCENE_PATH ]] && [[ ! $arg == -* ]]; then + SCENE_PATH=$arg + # otherwise, print error + else + error "Unknown argument $arg. Use flag --help for usage." + fi + ;; + esac +done + +# If not scene is given, use the current directory +if [ -z $SCENE_PATH ]; then + SCENE_PATH="." +fi +if [ ! -d $SCENE_PATH ]; then + error "Unable to find scene directory `path $SCENE_PATH`. Exiting." +else + info "Processing scene `path $SCENE_PATH` ..." +fi + + +################################################## +# Redirect stdout and stderr to log file +################################################## +mkdir -p $SCENE_PATH/logs +LOG_FILE=$SCENE_PATH/logs/$(date +%Y-%m-%d_%H-%M-%S).log +info "Logging to `path $LOG_FILE` ..." +# exec > >(tee -i $LOG_FILE) +# exec > >(tee -i /dev/tty | sed -r 's/\x1b\[[0-9;]*m?//g' > $LOG_FILE) +exec > >(tee -i /dev/tty | stdbuf -oL sed -r 's/\x1b\[[0-9;]*m?//g' > $LOG_FILE) + # uses sed to remove ansi escape sequences before writing to log file + # and uses stdbuf to flush stdout/stderr when writing to log file + + +################################################## +# Load and print config variables +################################################## +header "Loading config variables" +source $SOURCE_PATH/config/default_config.sh +if [ ! -e $SCENE_PATH/config.sh ]; then + info "Unable to find scene config file `path $SCENE_PATH/config.sh`. Using defaults." +else + info "Loading config file `path $SCENE_PATH/config.sh` ..." + source $SCENE_PATH/config.sh +fi + +config_vars=$(compgen -A variable | grep CONFIG_) # list all variables with CONFIG_ prefix +for var in $config_vars; do + cmd "$var=`eval echo \\$$var`" +done +echo + +################################################## +# Extract frames from video as images +################################################## +header "Extracting frames from video" +image_files=($SCENE_PATH/images_scene/*.jpg) +if [ -e $image_files ]; then + info "Found existing frames in `path "$SCENE_PATH/images_scene/*.jpg"`. Skipping frame extraction." +elif [ ! -e $SCENE_PATH/$CONFIG_VIDEO_NAME ]; then + error "Unable to find video `path $SCENE_PATH/$CONFIG_VIDEO_NAME`. Exiting." +else + python $SOURCE_PATH/scripts/extract_sharpest_frames.py \ + $SCENE_PATH/$CONFIG_VIDEO_NAME \ + $SCENE_PATH/images_scene \ + --min_sharpness_window_size -1 \ + --max_frame_count $CONFIG_FRAME_COUNT \ + --image_ext jpg || + exit_with_error +fi + + +################################################## +# Generate COLMAP camera poses +################################################## +header "Generating camera poses via COLMAP" +image_files=($SCENE_PATH/images_scene/*.jpg) +for COLMAP_MATCHER in sequential exhaustive; do + if [ -e $SCENE_PATH/transforms_scene.json ]; then + info "Found existing `path $SCENE_PATH/transforms_scene.json`. Skipping COLMAP." + break + elif [ -e $SCENE_PATH/transforms_scene_$COLMAP_MATCHER.json ]; then + info "Found existing `path $SCENE_PATH/transforms_scene_$COLMAP_MATCHER.json`. Skipping $COLMAP_MATCHER matcher." + elif [ ! -e $CONFIG_NGP_PATH/scripts/colmap2nerf.py ]; then + error "Unable to find NGP script `path $CONFIG_NGP_PATH/scripts/colmap2nerf.py`. Exiting." + elif [ ! -e $image_files ]; then + error "Unable to find images in `path $SCENE_PATH/images_scene/*.jpg`. Exiting." + else + info "Running COLMAP with `path $COLMAP_MATCHER` matcher..." + if [ ! -d $SCENE_PATH/colmap_$COLMAP_MATCHER ]; then + mkdir $SCENE_PATH/colmap_$COLMAP_MATCHER + fi + ( + cd $SCENE_PATH && + python $CONFIG_NGP_PATH/scripts/colmap2nerf.py \ + --run_colmap \ + --images images_scene \ + --out transforms_scene.json \ + --overwrite \ + --aabb_scale $CONFIG_AABB_SCALE \ + --colmap_matcher $COLMAP_MATCHER \ + --colmap_db colmap_$COLMAP_MATCHER/colmap.db \ + --text colmap_$COLMAP_MATCHER/colmap_text + ) && + python $SOURCE_PATH/scripts/edit_transforms_file.py \ + $SCENE_PATH/transforms_scene.json \ + --sort_frames || + exit_with_error + fi + + # ensure that COLMAP succeeded by verifying that the number + # of occurences of "transform_matrix" in the transforms file + # is at least 90% of the number of images in images_scene/ + num_transform_matrices=$(grep -c "transform_matrix" $SCENE_PATH/transforms_scene.json) + num_images=$(ls $SCENE_PATH/images_scene/ | wc -l) + if [ $num_transform_matrices -lt $((num_images * 9 / 10)) ]; then + # if matcher is sequential, try exhaustive + if [ $COLMAP_MATCHER == "sequential" ]; then + mv $SCENE_PATH/transforms_scene.json $SCENE_PATH/transforms_scene_sequential.json + export $COLMAP_MATCHER=exhaustive + info "COLMAP computed poses for only $num_transform_matrices/$num_images images with `path sequential` matcher." + info "Retrying with COLMAP matcher `path exhaustive`..." + # otherwise, exit + else + mv $SCENE_PATH/transforms_scene.json $SCENE_PATH/transforms_scene_exhaustive.json + error "COLMAP computed poses for only $num_transform_matrices/$num_images images with `path exhaustive` matcher. Exiting." + fi + else + info "COLMAP succeeded with matcher `path $CONFIG_COLMAP_MATCHER`." + python $SOURCE_PATH/scripts/edit_transforms_file.py \ + $SCENE_PATH/transforms_scene.json \ + --remove_omitted_frames_from_dir $SCENE_PATH/images_scene || + exit_with_error + break + fi +done + + +################################################## +# Train NGP reconstruction of full scene +################################################## +header "Training NGP reconstruction of full scene" +if [[ -e $SCENE_PATH/nerf_scene.ingp ]] +then + info "Found existing `path $SCENE_PATH/nerf_scene.ingp`. Skipping scene NeRF." +else + python $CONFIG_NGP_PATH/scripts/run.py \ + --scene $SCENE_PATH/transforms_scene.json \ + --save_snapshot $SCENE_PATH/nerf_scene.ingp \ + --n_steps $CONFIG_N_STEPS || + exit_with_error + # TODO add flags for training latents and extrinsics (and export optimized poses) + # TODO fix video rendering and render a debug video +fi + + +################################################## +# Create masked training images and transforms file +################################################## +header "Creating masked images and transforms file" +raw_mask_files=($SCENE_PATH/$CONFIG_MASK_DIR/*.png) +masked_image_files=($SCENE_PATH/images_object/*.png) +if [ -e $masked_image_files ] && [ -e $SCENE_PATH/transforms_object.json ]; then + info "Found existing `path $SCENE_PATH/images_object/*.png` and" \ + "`path $SCENE_PATH/transforms_object.json`. Skipping image masking." +elif [ ! -e $raw_mask_files ]; then + error "Unable to find masks in `path $SCENE_PATH/$CONFIG_MASK_DIR`. Exiting." +else + python $SOURCE_PATH/scripts/mask_images.py \ + $SCENE_PATH/images_scene \ + $SCENE_PATH/$CONFIG_MASK_DIR \ + $SCENE_PATH/images_object \ + --standardized_masks_dir $SCENE_PATH/masks_object && + python $SOURCE_PATH/scripts/edit_transforms_file.py \ + $SCENE_PATH/transforms_scene.json \ + --output_file $SCENE_PATH/transforms_object.json \ + --set_aabb_scale 1 \ + --edit_frame_file_path "images_scene/" "images_object/" \ + --edit_frame_file_path ".jpg" ".png" || + exit_with_error +fi + + +################################################## +# Train NGP reconstruction of masked object +################################################## +header "Training NGP reconstruction of masked object" +if [[ -e $SCENE_PATH/nerf_object.ingp ]] +then + info "Found existing `path $SCENE_PATH/nerf_object.ingp`. Skipping object NeRF." +else + python $CONFIG_NGP_PATH/scripts/run.py \ + --scene $SCENE_PATH/transforms_object.json \ + --save_snapshot $SCENE_PATH/nerf_object.ingp \ + --n_steps $CONFIG_N_STEPS || + exit_with_error + # TODO add flags for training extrinsics & latents + # TODO fix video rendering and render a debug video + # TODO what is "andrewg_hack"? +fi + + +################################################## +# Export mesh from NGP object reconstruction +################################################## +header "Exporting rough, untextured mesh from NGP via marching cubes" +if [[ -e $SCENE_PATH/meshes/raw.ply ]] +then + info "Found existing `path $SCENE_PATH/meshes/raw.ply`. Skipping mesh export." +elif + [[ ! -e $SCENE_PATH/nerf_object.ingp ]] +then + error "Unable to find NGP snapshot `path $SCENE_PATH/nerf_object.ingp`. Exiting." +else + info "Exporting marching cubes mesh from NGP snapshot `path $SCENE_PATH/nerf_object.ingp` ..." + mkdir -p $SCENE_PATH/meshes && + python $CONFIG_NGP_PATH/scripts/run.py \ + --load_snapshot $SCENE_PATH/nerf_object.ingp \ + --marching_cubes_res 256 \ + --marching_cubes_density_thresh 1.0 \ + --save_mesh $SCENE_PATH/meshes/raw.ply || + exit_with_error +fi + + +################################################## +# Clean mesh +################################################## +header "Cleaning marching cubes mesh" +if [[ -e $SCENE_PATH/meshes/base.ply ]] +then + info "Found existing `path $SCENE_PATH/meshes/base.ply`. Skipping mesh cleaning." +elif + [[ ! -e $SCENE_PATH/meshes/raw.ply ]] +then + error "Unable to find marching cubes mesh `path $SCENE_PATH/meshes/raw.ply`. Exiting." +else + info "Cleaning mesh `path $SCENE_PATH/meshes/raw.ply` ..." + python $SOURCE_PATH/scripts/clean_mesh.py \ + $SCENE_PATH/meshes/raw.ply \ + $SCENE_PATH/meshes/base.ply || + exit_with_error +fi + + +################################################## +# Generate raw BOP annotations (unscaled and not in canonical pose) +################################################## +header "Generating initial BOP annotations" +if [[ -e $SCENE_PATH/bop_raw/scene_gt_initial.json ]] && \ + [[ -e $SCENE_PATH/bop_raw/scene_camera_initial.json ]] +then + info "Found existing initial BOP files in `path $SCENE_PATH/bop_raw`. Skipping." +elif + [[ ! -e $SCENE_PATH/transforms_scene.json ]] +then + error "Unable to find camera poses `path $SCENE_PATH/transforms_scene.json`. Exiting." +else + info "Generating initial BOP files in `path $SCENE_PATH/bop_raw` ..." + python $SOURCE_PATH/scripts/generate_gt_bop.py \ + $SCENE_PATH/bop_raw \ + --camera_poses_fn $SCENE_PATH/transforms_scene.json \ + --bop_object_id $CONFIG_BOP_ID \ + --output_fn_tag "_initial" || + exit_with_error +fi + + +################################################## +# Export depth images from NGP scene reconstruction +################################################## +header "Exporting depth images from NGP scene reconstruction" +depth_files=($SCENE_PATH/depth_scene/*.png) +if [[ -e $depth_files ]] +then + info "Found existing depth images in `path "$SCENE_PATH/depth_scene/*.png"`. Skipping depth export." +elif + [[ ! -e $SCENE_PATH/nerf_scene.ingp ]] +then + error "Unable to find NGP snapshot `path $SCENE_PATH/nerf_scene.ingp`. Exiting." +else + info "Exporting depth images from NGP snapshot `path $SCENE_PATH/nerf_scene.ingp` to `path $SCENE_PATH/depth_scene` ..." + mkdir -p $SCENE_PATH/depth_scene && + python $SOURCE_PATH/scripts/export_depth.py \ + $SCENE_PATH/nerf_scene.ingp \ + $SCENE_PATH/depth_scene \ + --ngp_root $CONFIG_NGP_PATH \ + --colorized_depth_dir $SCENE_PATH/depth_scene_color \ + --clip_distance 10.0 || + exit_with_error +fi + + +################################################## +# Apply texture to mesh using Open3D pipeline +################################################## +header "Generating textured mesh" +if [[ -e $SCENE_PATH/meshes/textured.ply ]] && \ + [[ -e $SCENE_PATH/meshes/colored.ply ]] +then + info "Found existing `path $SCENE_PATH/meshes/textured.ply`. Skipping textured mesh." +elif [[ ! -e $SCENE_PATH/bop_raw/scene_gt_initial.json ]] || \ + [[ ! -e $SCENE_PATH/bop_raw/scene_camera_initial.json ]] || \ + [[ ! -e $SCENE_PATH/images_scene/ ]] || \ + [[ ! -e $SCENE_PATH/depth_scene/ ]] || \ + [[ ! -e $SCENE_PATH/masks_object ]] +then + error "Unable to find required input files. Exiting." +else + # generate Poisson mesh and apply texture + if [[ $CONFIG_GENERATE_POISSON_MESH == 1 ]] + then + info "Found config flag `path '$CONFIG_USE_POISSON_MESH == 1'`." + info "Generating textured poisson mesh and saving to `path $SCENE_PATH/meshes/textured.ply` ..." + python $SOURCE_PATH/scripts/o3d_mesh_pipeline.py \ + $SCENE_PATH/meshes/textured.ply \ + --colored_mesh_output_fn $SCENE_PATH/meshes/colored.ply \ + --bop_pose_fn $SCENE_PATH/bop_raw/scene_gt_initial.json \ + --bop_camera_fn $SCENE_PATH/bop_raw/scene_camera_initial.json \ + --rgb_dir $SCENE_PATH/images_scene \ + --depth_dir $SCENE_PATH/depth_scene \ + --mask_dir $SCENE_PATH/masks_object \ + --max_views 50 || + exit_with_error + else + info "Found config flag `path '$CONFIG_USE_POISSON_MESH == 0'`." + info "Applying texture to existing mesh and saving to `path $SCENE_PATH/meshes/textured.ply` ..." + python $SOURCE_PATH/scripts/o3d_mesh_pipeline.py \ + $SCENE_PATH/meshes/textured.ply \ + --colored_mesh_output_fn $SCENE_PATH/meshes/colored.ply \ + --subdivision_iterations 2 \ + --texture_existing_mesh $SCENE_PATH/meshes/base.ply \ + --bop_pose_fn $SCENE_PATH/bop_raw/scene_gt_initial.json \ + --bop_camera_fn $SCENE_PATH/bop_raw/scene_camera_initial.json \ + --rgb_dir $SCENE_PATH/images_scene \ + --depth_dir $SCENE_PATH/depth_scene \ + --mask_dir $SCENE_PATH/masks_object \ + --max_views 50 || + exit_with_error + # TODO can we downsample to the original vertices while keeping the same texture coordinates? + fi +fi + +################################################## +# Prompt for canonical pose +################################################## +header "Setting canonical pose" +if [[ -e $SCENE_PATH/canonical_pose.json ]] && \ + [[ -e $SCENE_PATH/meshes/canonical.ply ]] +then + info "Found existing `path $SCENE_PATH/canonical_pose.json` and `path $SCENE_PATH/meshes/canonical.ply`. Skipping." +elif [[ $IS_INTERACTIVE != 1 ]] +then + info "Unable to find existing canonical pose `path $SCENE_PATH/canonical_pose.json`." + error "Setting canonical pose requires interactive GUI tool. Use flag `path --interactive` to run. Exiting." +elif [[ ! -e $SCENE_PATH/meshes/textured.ply ]] +then + error "Unable to find textured mesh `path $SCENE_PATH/meshes/textured.ply`. Exiting." +else + info "Running interactive tool to set canonical pose ..." + python $SOURCE_PATH/scripts/manual_align.py \ + $SCENE_PATH/meshes/colored.ply \ + --output_mesh_fn $SCENE_PATH/meshes/canonical.ply \ + --output_transform_fn $SCENE_PATH/canonical_pose.json || + exit_with_error +fi + + +################################################## +# Prompt for GT scale +################################################## +header "Setting scale" +if [[ -e $SCENE_PATH/canonical_scale.json ]] && \ + [[ -e $SCENE_PATH/meshes/scaled.ply ]] +then + info "Found existing `path $SCENE_PATH/canonical_scale.json` and `path $SCENE_PATH/meshes/scaled.ply`. Skipping." +elif [[ $CONFIG_SCALE_FACTOR != 0 ]] +then + info "Found config setting `path $CONFIG_SCALE_FACTOR`. Setting scale to $CONFIG_SCALE_FACTOR." + python $SOURCE_PATH/scripts/manual_scale.py \ + $SCENE_PATH/meshes/canonical.ply \ + $SCENE_PATH/meshes/scaled.ply \ + $SCENE_PATH/canonical_scale.json \ + --scale_factor $CONFIG_SCALE_FACTOR || + exit_with_error +elif [[ $IS_INTERACTIVE != 1 ]] +then + info "Unable to find existing canonical scale `path $SCENE_PATH/canonical_scale.json`." + error "To set scale interactively, use flag `path --interactive` to run. Exiting." +elif [[ ! -e $SCENE_PATH/meshes/canonical.ply ]] +then + error "Unable to find textured mesh `path $SCENE_PATH/meshes/canonical.ply`. Exiting." +else + info "Running interactive tool to set canonical scale ..." + python $SOURCE_PATH/scripts/manual_scale.py \ + $SCENE_PATH/meshes/canonical.ply \ + $SCENE_PATH/meshes/scaled.ply \ + $SCENE_PATH/canonical_scale.json || + exit_with_error +fi + +################################################## +# Apply scale and canonical pose to BOP annotations +################################################## +header "Applying canonical pose and scale" +if [[ -e $SCENE_PATH/bop_raw/scene_gt_canonical.json ]] && \ + [[ -e $SCENE_PATH/bop_raw/scene_camera_canonical.json ]] +then + info "Found existing output files in `path $SCENE_PATH/bop_raw`. Skipping." +elif [[ ! -e $SCENE_PATH/bop_raw/scene_gt_initial.json ]] || \ + [[ ! -e $SCENE_PATH/bop_raw/scene_camera_initial.json ]] +then + error "Unable to find required input files in `path $SCENE_PATH/bop_raw`. Exiting." +elif [[ ! -e $SCENE_PATH/canonical_pose.json ]] +then + error "Unable to find canonical pose `path $SCENE_PATH/canonical_pose.json`. Exiting." +elif [[ ! -e $SCENE_PATH/canonical_scale.json ]] +then + error "Unable to find canonical scale `path $SCENE_PATH/canonical_scale.json`. Exiting." +else + info "Applying canonical pose and scale to BOP annotations..." + python $SOURCE_PATH/scripts/apply_canonical_pose_and_scale.py \ + --canonical_pose_fn $SCENE_PATH/canonical_pose.json \ + --canonical_scale_fn $SCENE_PATH/canonical_scale.json \ + --input_bop_gt_fn $SCENE_PATH/bop_raw/scene_gt_initial.json \ + --input_bop_camera_fn $SCENE_PATH/bop_raw/scene_camera_initial.json \ + --output_bop_gt_fn $SCENE_PATH/bop_raw/scene_gt_canonical.json \ + --output_bop_camera_fn $SCENE_PATH/bop_raw/scene_camera_canonical.json || + exit_with_error +fi + + +################################################## +# Prompt for alignment to reference +################################################## +if [[ $CONFIG_IS_REFERENCE == 1 ]] +then + header "Finalizing reference scene" + info "Found config flag `path '$CONFIG_IS_REFERENCE == 1'`." + if [[ -e $SCENE_PATH/bop_raw/scene_gt.json ]] && + [[ -e $SCENE_PATH/bop_raw/scene_camera.json ]] && + [[ -e $SCENE_PATH/meshes/reference.ply ]] + then + info "Found existing reference annotations and mesh. Skipping." + elif [[ ! -e $SCENE_PATH/bop_raw/scene_gt_canonical.json ]] || \ + [[ ! -e $SCENE_PATH/bop_raw/scene_camera_canonical.json ]] + then + error "Unable to find required input files in `path $SCENE_PATH/bop_raw`. Exiting." + elif [[ ! -e $SCENE_PATH/meshes/scaled.ply ]] + then + error "Unable to find scaled mesh `path $SCENE_PATH/meshes/scaled.ply`. Exiting." + else + info "Copying canonical annotations to final annotations and scaled mesh to reference mesh ..." + cp $SCENE_PATH/bop_raw/scene_gt_canonical.json $SCENE_PATH/bop_raw/scene_gt.json && + cp $SCENE_PATH/bop_raw/scene_camera_canonical.json $SCENE_PATH/bop_raw/scene_camera.json && + cp $SCENE_PATH/meshes/scaled.ply $SCENE_PATH/meshes/reference.ply || + exit_with_error + fi +else + header "Aligning to reference mesh" + info "Found config flag `path '$CONFIG_IS_REFERENCE != 1'`." + if [[ -e $SCENE_PATH/reference_alignment_pose.json ]] && \ + [[ -e $SCENE_PATH/reference_alignment_scale.json ]] && \ + [[ -e $SCENE_PATH/meshes/aligned_to_reference.ply ]] + then + info "Found existing `path $SCENE_PATH/reference_alignment_*.json`. Skipping." + elif [[ $IS_INTERACTIVE != 1 ]] + then + info "Unable to find existing `path $SCENE_PATH/reference_alignment_*.json`." + error "Aligning to reference requires interactive GUI tool. Use flag `path --interactive` to run. Exiting." + elif [[ ! -e $SCENE_PATH/meshes/scaled.ply ]] + then + error "Unable to find canonical scaled mesh `path $SCENE_PATH/meshes/scaled.ply`. Exiting." + elif [[ $CONFIG_REFERENCE_SCENE == "" ]] + then + error "CONFIG_REFERENCE_SCENE is not set. Exiting." + elif [[ ! -e $SCENE_PATH/$CONFIG_REFERENCE_SCENE/meshes/reference.ply ]] + then + error "Unable to find reference mesh `path $SCENE_PATH/$CONFIG_REFERENCE_SCENE/meshes/reference.ply`. Exiting." + else + info "Running interactive tool to align to reference mesh ..." + python $SOURCE_PATH/scripts/manual_align.py \ + $SCENE_PATH/meshes/scaled.ply \ + --already_in_canonical_pose \ + --output_transform_fn $SCENE_PATH/reference_alignment_pose.json \ + --output_scale_fn $SCENE_PATH/reference_alignment_scale.json \ + --output_mesh_fn $SCENE_PATH/meshes/aligned_to_reference.ply \ + --reference_mesh $SCENE_PATH/$CONFIG_REFERENCE_SCENE/meshes/reference.ply \ + --allow_translation \ + --allow_scaling && + cp $SCENE_PATH/$CONFIG_REFERENCE_SCENE/meshes/reference.ply $SCENE_PATH/meshes/reference.ply || + exit_with_error + fi + + header "Applying reference pose alignment" + if [[ -e $SCENE_PATH/bop_raw/scene_gt.json ]] && \ + [[ -e $SCENE_PATH/bop_raw/scene_camera.json ]] + then + info "Found existing output files in `path $SCENE_PATH/bop_raw`. Skipping." + elif [[ ! -e $SCENE_PATH/bop_raw/scene_gt_canonical.json ]] || \ + [[ ! -e $SCENE_PATH/bop_raw/scene_camera_canonical.json ]] + then + error "Unable to find required input files in `path $SCENE_PATH/bop_raw`. Exiting." + elif [[ ! -e $SCENE_PATH/canonical_pose.json ]] + then + error "Unable to find canonical pose `path $SCENE_PATH/canonical_pose.json`. Exiting." + elif [[ ! -e $SCENE_PATH/canonical_scale.json ]] + then + error "Unable to find canonical scale `path $SCENE_PATH/canonical_scale.json`. Exiting." + else + info "Applying canonical pose and scale to BOP annotations..." + python $SOURCE_PATH/scripts/apply_canonical_pose_and_scale.py \ + --canonical_pose_fn $SCENE_PATH/reference_alignment_pose.json \ + --canonical_scale_fn $SCENE_PATH/reference_alignment_scale.json \ + --input_bop_gt_fn $SCENE_PATH/bop_raw/scene_gt_canonical.json \ + --input_bop_camera_fn $SCENE_PATH/bop_raw/scene_camera_canonical.json \ + --output_bop_gt_fn $SCENE_PATH/bop_raw/scene_gt.json \ + --output_bop_camera_fn $SCENE_PATH/bop_raw/scene_camera.json|| + exit_with_error + fi +fi + + +################################################## +# Generate BOP masks +################################################## +header "Generating BOP masks" +mask_files=($SCENE_PATH/bop_raw/mask/*.png) +mask_visib_files=($SCENE_PATH/bop_raw/mask_visib/*.png) +if [[ -e $mask_files ]] && [[ -e $mask_visib_files ]] +then + info "Found existing BOP masks in `path $SCENE_PATH/bop_raw/mask` and `path $SCENE_PATH/bop_raw/mask_visib`. Skipping." +elif + [[ ! -e $SCENE_PATH/meshes/reference.ply ]] || \ + [[ ! -e $SCENE_PATH/bop_raw/scene_gt.json ]] || \ + [[ ! -e $SCENE_PATH/bop_raw/scene_camera.json ]] || \ + [[ ! -e $SCENE_PATH/depth_scene/ ]] +then + error "Unable to find required input files for mask generation. Exiting." +else + info "Generating BOP masks in `path $SCENE_PATH/bop_raw` ..." + python $SOURCE_PATH/scripts/generate_bop_masks.py \ + $SCENE_PATH/bop_raw \ + --mask_types visible full \ + --scene_depth_dir $SCENE_PATH/depth_scene \ + --scene_gt_fn $SCENE_PATH/bop_raw/scene_gt_canonical.json \ + --scene_camera_fn $SCENE_PATH/bop_raw/scene_camera_canonical.json \ + --scene_mesh_fn $SCENE_PATH/meshes/scaled.ply \ + --visible_tolerance $CONFIG_VISIBILITY_TOLERANCE || + exit_with_error +fi + + +################################################## +# Assemble BOP annotations +################################################## +header "Assembling final BOP annotations" +info "Copying final BOP annotations to `path $SCENE_PATH/bop` ..." +if [[ -e $SCENE_PATH/bop/rgb ]] && \ + [[ -e $SCENE_PATH/bop/depth_nerf ]] && \ + [[ -e $SCENE_PATH/bop/mask ]] && \ + [[ -e $SCENE_PATH/bop/mask_visib ]] && \ + [[ -e $SCENE_PATH/bop/scene_gt.json ]] && \ + [[ -e $SCENE_PATH/bop/scene_camera.json ]] && \ + [[ -e $SCENE_PATH/bop/obj_$(printf "%06d" $CONFIG_BOP_ID).ply ]] +then + info "Found existing BOP annotations in `path $SCENE_PATH/bop`. Skipping." +elif [[ ! -e $SCENE_PATH/images_scene/ ]] || \ + [[ ! -e $SCENE_PATH/depth_scene/ ]] || \ + [[ ! -e $SCENE_PATH/bop_raw/mask/ ]] || \ + [[ ! -e $SCENE_PATH/bop_raw/mask_visib/ ]] || \ + [[ ! -e $SCENE_PATH/bop_raw/scene_gt.json ]] || \ + [[ ! -e $SCENE_PATH/bop_raw/scene_camera.json ]] || \ + [[ ! -e $SCENE_PATH/meshes/reference.ply ]] +then + error "Unable to find required input files for final BOP annotations. Exiting." +else + mkdir -p $SCENE_PATH/bop && + cp -r $SCENE_PATH/images_scene $SCENE_PATH/bop/rgb && + cp -r $SCENE_PATH/depth_scene $SCENE_PATH/bop/depth_nerf && + cp -r $SCENE_PATH/bop_raw/mask $SCENE_PATH/bop/mask && + cp -r $SCENE_PATH/bop_raw/mask_visib $SCENE_PATH/bop/mask_visib && + cp $SCENE_PATH/bop_raw/scene_gt.json $SCENE_PATH/bop/scene_gt.json && + cp $SCENE_PATH/bop_raw/scene_camera.json $SCENE_PATH/bop/scene_camera.json && + cp $SCENE_PATH/meshes/reference.ply $SCENE_PATH/bop/obj_$(printf "%06d" $CONFIG_BOP_ID).ply || + exit_with_error +fi + + +################################################## +# Done! +################################################## +header "Done!" +info "Final annotations are written to `path $SCENE_PATH/bop`." +exit 0 diff --git a/scripts/apply_canonical_pose_and_scale.py b/scripts/apply_canonical_pose_and_scale.py new file mode 100644 index 0000000..8efc542 --- /dev/null +++ b/scripts/apply_canonical_pose_and_scale.py @@ -0,0 +1,92 @@ +# Copyright (c) 2024, NVIDIA CORPORATION. All rights reserved. +# +# NVIDIA CORPORATION and its licensors retain all intellectual property +# and proprietary rights in and to this software, related documentation +# and any modifications thereto. Any use, reproduction, disclosure or +# distribution of this software and related documentation without an express +# license agreement from NVIDIA CORPORATION is strictly prohibited. + +import argparse +import json +from pathlib import Path + +import numpy as np + +# parse arguments +parser = argparse.ArgumentParser(description="Apply canonical pose and scale.") +parser.add_argument( + "--canonical_pose_fn", + type=Path, + required=True, + help="Path to canonical pose file.", +) +parser.add_argument( + "--canonical_scale_fn", + type=Path, + required=True, + help="Path to canonical scale file.", +) +parser.add_argument( + "--input_bop_gt_fn", + type=Path, + required=True, + help="Path to input scene GT file.", +) +parser.add_argument( + "--input_bop_camera_fn", + type=Path, + required=True, + help="Path to input scene camera file.", +) +parser.add_argument( + "--output_bop_gt_fn", + type=Path, + required=True, + help="Path to output scene GT file.", +) +parser.add_argument( + "--output_bop_camera_fn", + type=Path, + required=True, + help="Path to output scene camera file.", +) +args = parser.parse_args() + +# load canonical pose and scale +with open(args.canonical_pose_fn.as_posix(), "r") as f: + canonical_pose_transform = np.array(json.load(f)) +assert canonical_pose_transform.shape == (4, 4) +with open(args.canonical_scale_fn.as_posix(), "r") as f: + canonical_scale = float(json.load(f)["scale_factor"]) + +# load scene GT and apply canonical pose to object poses and +# apply canonical scale to object translation +with open(args.input_bop_gt_fn, "r") as f: + scene_gt = json.load(f) +for view_idx, view in scene_gt.items(): + assert len(view) <= 1, f"Multiple objects in scene GT view {view_idx}. Error." + for obj in view: + # construct object pose transform + obj_transform = np.eye(4) + obj_transform[:3, :3] = np.array(obj["cam_R_m2c"]).reshape(3, 3) + obj_transform[:3, 3] = np.array(obj["cam_t_m2c"]).reshape(3) + + # apply canonical pose transform + obj_transform = obj_transform @ np.linalg.inv(canonical_pose_transform) + + # apply canonical scale to translation + obj_transform[:3, 3] *= canonical_scale + + # save object pose transform + obj["cam_R_m2c"] = obj_transform[:3, :3].reshape(-1).tolist() + obj["cam_t_m2c"] = obj_transform[:3, 3].reshape(-1).tolist() +with open(args.output_bop_gt_fn, "w") as f: + json.dump(scene_gt, f, indent=2) + +# load scene camera and apply canonical scale to +with open(args.input_bop_camera_fn, "r") as f: + scene_camera = json.load(f) +for camera in scene_camera.values(): + camera["depth_scale"] *= canonical_scale / 1000.0 +with open(args.output_bop_camera_fn, "w") as f: + json.dump(scene_camera, f, indent=2) diff --git a/scripts/clean_mesh.py b/scripts/clean_mesh.py new file mode 100644 index 0000000..3d3816d --- /dev/null +++ b/scripts/clean_mesh.py @@ -0,0 +1,90 @@ +# Copyright (c) 2024, NVIDIA CORPORATION. All rights reserved. +# +# NVIDIA CORPORATION and its licensors retain all intellectual property +# and proprietary rights in and to this software, related documentation +# and any modifications thereto. Any use, reproduction, disclosure or +# distribution of this software and related documentation without an express +# license agreement from NVIDIA CORPORATION is strictly prohibited. + +import argparse +from pathlib import Path + +import numpy as np +import open3d as o3d + + +def open3d_filter_triangle_clusters( + mesh: o3d.geometry.TriangleMesh, + small_component_threshold: float = 0.20, +): + n_triangles, _ = np.asarray(mesh.triangles).shape + ( + triangle_clusters, + cluster_n_triangles, + cluster_area, + ) = map(np.asarray, mesh.cluster_connected_triangles()) + triangles_to_remove = cluster_n_triangles[triangle_clusters] < ( + small_component_threshold * n_triangles + ) + mesh.remove_triangles_by_mask(triangles_to_remove) + mesh.remove_unreferenced_vertices() + + +def open3d_cleanup( + mesh_fn: Path, + output_fn: Path, + small_component_threshold: float = 0.20, +) -> None: + # read mesh + mesh = o3d.io.read_triangle_mesh(mesh_fn.as_posix()) + + # remove small connected components + open3d_filter_triangle_clusters( + mesh, small_component_threshold=small_component_threshold + ) + + # convert to point cloud + pcd = mesh.sample_points_uniformly(number_of_points=10000) + pcd, _ = pcd.remove_statistical_outlier(nb_neighbors=100, std_ratio=1.5) + pcd.estimate_normals() + + # re-mesh + mesh, _ = o3d.geometry.TriangleMesh.create_from_point_cloud_poisson(pcd, depth=6) + open3d_filter_triangle_clusters( + mesh, small_component_threshold=small_component_threshold + ) + + # save mesh + o3d.io.write_triangle_mesh(output_fn.as_posix(), mesh) + + +if __name__ == "__main__": + # parse arguments + parser = argparse.ArgumentParser() + parser.add_argument( + "input_fn", + type=Path, + help="mesh file to clean", + ) + parser.add_argument( + "output_fn", + type=Path, + help="Output mesh file (default='cleaned.ply')", + default=None, + ) + parser.add_argument( + "--num_iters", + type=int, + default=2, + help="Number of cleaning iterations", + ) + args = parser.parse_args() + + # set default output filename + if args.output_fn is None: + args.output_fn = args.input_fn.parent / "cleaned.ply" + + # apply Open3D mesh cleanup + print("Applying Open3D mesh cleanup...") + open3d_cleanup(mesh_fn=args.input_fn, output_fn=args.output_fn) + print(f"Saved cleaned mesh to '{args.output_fn}'") diff --git a/scripts/edit_transforms_file.py b/scripts/edit_transforms_file.py new file mode 100644 index 0000000..e9aaedc --- /dev/null +++ b/scripts/edit_transforms_file.py @@ -0,0 +1,112 @@ +# Copyright (c) 2023, NVIDIA CORPORATION. All rights reserved. +# +# NVIDIA CORPORATION and its licensors retain all intellectual property +# and proprietary rights in and to this software, related documentation +# and any modifications thereto. Any use, reproduction, disclosure or +# distribution of this software and related documentation without an express +# license agreement from NVIDIA CORPORATION is strictly prohibited. + +import argparse +import json +from pathlib import Path + +# parse args +parser = argparse.ArgumentParser(description="Edit transforms file") +parser.add_argument("file", type=Path, help="Input file") +parser.add_argument( + "--sort_frames", + action="store_true", + help="Sort frames by file_path", +) +parser.add_argument( + "--set_aabb_scale", + type=int, + choices=[1, 2, 4, 8, 16, 32, 64, 128], + default=None, + help="Set aabb_scale", +) +parser.add_argument( + "--edit_frame_file_path", + type=str, + nargs=2, + action="append", + default=[], + help="Replace ARG_1 by ARG_2 in frame file paths", +) +parser.add_argument( + "--output_file", + type=Path, + default=None, + help="Output file", +) +parser.add_argument( + "--remove_omitted_frames_from_dir", + type=Path, + default=None, + help="Remove frames that have no transforms matrix", +) +args = parser.parse_args() + +# ensure files/paths exist +assert args.file.exists(), f"Transforms file {args.file} does not exist." +args.output_file = args.output_file or args.file + +# read file +print(f"Reading transforms from '{args.file}' ...") +with open(args.file, "r") as f: + transforms = json.load(f) + +# edit transforms file, if requested +if args.sort_frames or args.set_aabb_scale is not None or args.edit_frame_file_path: + # sorting frames by filename + if args.sort_frames: + print(f" Sorting frames ...") + transforms["frames"] = sorted( + transforms["frames"], key=lambda x: x["file_path"] + ) + + # edit aabb_scale + if args.set_aabb_scale is not None: + print(f" Setting aabb_scale to {args.set_aabb_scale} ...") + transforms["aabb_scale"] = args.set_aabb_scale + + # edit image file path + for before, after in args.edit_frame_file_path: + print(f" Replacing '{before}' with '{after}' in frame file paths ...") + for frame in transforms["frames"]: + frame["file_path"] = frame["file_path"].replace(before, after) + + # write file + with open(args.output_file, "w") as f: + json.dump(transforms, f, indent=2) + print(f"Wrote edited transforms file to '{args.output_file}'") + +# remove frames with missing transforms +if args.remove_omitted_frames_from_dir is not None: + image_dir = args.remove_omitted_frames_from_dir + print(f"Removing frames from '{image_dir}' with missing transforms ...") + + # get list of image files from transforms + image_files = set([Path(frame["file_path"]).name for frame in transforms["frames"]]) + image_file_exts = set([Path(image_file).suffix for image_file in image_files]) + + # ensure all image files exist + assert all( + [(image_dir / image_file).exists() for image_file in image_files] + ), f"Unable to find all image files required by {args.output_file} in {image_dir}. Cannot proceed with removal of omitted frames." + + # iterate over image files in directory and find those that are not in transforms + image_files_to_remove = [] + for fn in image_dir.iterdir(): + if fn.suffix not in image_file_exts: + continue + if fn.name not in image_files: + image_files_to_remove.append(fn) + + # remove files + if len(image_files_to_remove) > 0: + for fn in image_files_to_remove: + fn.unlink() + print(f"Removed {len(image_files_to_remove)} file(s).") + else: + print("No files to remove.") diff --git a/scripts/export_depth.py b/scripts/export_depth.py new file mode 100644 index 0000000..78f55b4 --- /dev/null +++ b/scripts/export_depth.py @@ -0,0 +1,164 @@ +# Copyright (c) 2024, NVIDIA CORPORATION. All rights reserved. +# +# NVIDIA CORPORATION and its licensors retain all intellectual property +# and proprietary rights in and to this software, related documentation +# and any modifications thereto. Any use, reproduction, disclosure or +# distribution of this software and related documentation without an express +# license agreement from NVIDIA CORPORATION is strictly prohibited. + +import argparse +import sys +from pathlib import Path + +import cv2 +import numpy as np +from bop_toolkit_lib import inout +from tqdm import tqdm + + +# function to handle writing depth images as NPZ +def write_depth_npz( + filename: Path, depth: np.ndarray, alpha: np.ndarray, use_fp16: bool = True +) -> None: + """Saves a depth image to an NPZ file. + :param filename: Path to the output depth image file. + :param im: ndarray with the depth image to save. + :param alpha: ndarray with the alpha channel of the depth image to save. + :param use_fp16: Whether to use FP16 for depth and alpha channels. + """ + if filename.suffix.lower() != ".npz": + raise ValueError("Only NPZ format is currently supported.") + if use_fp16: + depth = depth.astype(np.float16) + alpha = alpha.astype(np.float16) + np.savez_compressed(filename, depth=depth, alpha=alpha) + + +# parse arguments +parser = argparse.ArgumentParser(description="Render depth images from an NGP scene") +parser.add_argument( + "snapshot_fn", + type=Path, + help="path to a saved scene snapshot", +) +parser.add_argument( + "output_dir", + type=Path, + help="path to a directory to save the depth images", +) +parser.add_argument( + "--ngp_root", + type=Path, + required=True, + help="path to the NGP root directory", +) +parser.add_argument( + "--save_as_npz", + action="store_true", + help="save depth images as .npz files instead of .png files", +) +parser.add_argument( + "--colorized_depth_dir", + type=Path, + default=None, + help="path to a directory to save colorized depth images, if desired", +) +parser.add_argument( + "--depth_scale", + type=float, + default=-1, + help="depth scale (default: -1, i.e. unknown scale)", +) +parser.add_argument( + "--clip_distance", + type=float, + default=-1, + help="clip distance (default: -1, i.e. no clipping)", +) +parser.add_argument( + "--median_filter", + type=int, + default=5, + choices=[False, 3, 5], + help="median filter kernel size when saving as PNG (default: 5)", +) +args = parser.parse_args() + +# check args +assert args.snapshot_fn.is_file(), f"Snapshot file not found: {args.snapshot_fn}" +args.output_dir.mkdir(exist_ok=True, parents=True) +assert ( + args.output_dir.is_dir() +), f"Unable to find or create output directory: {args.output_dir}" +assert args.ngp_root.is_dir(), f"NGP root directory not found: {args.ngp_root}" +if args.colorized_depth_dir is not None: + args.colorized_depth_dir.mkdir(exist_ok=True, parents=True) + assert ( + args.colorized_depth_dir.is_dir() + ), f"Unable to find or create colorized depth directory: {args.colorized_depth_dir}" + +# import pyngp +sys.path.append(str(args.ngp_root / "build")) +import pyngp as ngp # noqa + +# initialize NGP and load snapshot +testbed = ngp.Testbed() +testbed.load_snapshot(str(args.snapshot_fn)) + +# set up rendering parameters +testbed.background_color = [0.0, 0.0, 0.0, 0.0] +testbed.render_mode = ngp.RenderMode.Depth +testbed.nerf.render_gbuffer_hard_edges = True + +# render a depth image for each input camera pose stored in the snapshot +for idx in tqdm(range(testbed.nerf.training.dataset.n_images)): + # render the depth image + testbed.set_camera_to_training_view(idx) + resolution = testbed.nerf.training.dataset.metadata[idx].resolution + output = testbed.render(*resolution, 1, True) + alpha = output[:, :, -1:] + depth_image = output[:, :, :1] + + # scale and clip depth image + if args.depth_scale > 0: + depth_image *= args.depth_scale # scale to mm, if available + if args.clip_distance > 0: + depth_image = np.clip(depth_image, 0.0, args.clip_distance) + depth_image[depth_image == args.clip_distance] = 0.0 + depth_image = depth_image[:, :, 0] + alpha = alpha[:, :, 0] + + # apply median filter + if args.median_filter > 0: + depth_image = cv2.medianBlur(depth_image, args.median_filter) + # note that `cv2.medianBlur` only supports kernel sizes of 3 or 5 + # for images that are not `uint8` + + # write depth image + fn_stem = Path(testbed.nerf.training.dataset.paths[idx]).stem + depth_output_fn = args.output_dir / fn_stem + if args.save_as_npz: + depth_output_fn = depth_output_fn.with_suffix(".npz") + write_depth_npz( + depth_output_fn, + depth_image, + alpha, + ) + else: + depth_output_fn = depth_output_fn.with_suffix(".png") + inout.save_depth( + str(depth_output_fn), + depth_image * 1000, # convert from m to mm + ) + + # write colorized depth image + if args.colorized_depth_dir: + colorized_depth_image = np.uint8(depth_image / args.clip_distance * 256) + colorized_depth_image = cv2.applyColorMap( + colorized_depth_image, cv2.COLORMAP_TURBO + ) + colorized_depth_image[depth_image == 0] = 0 + cv2.imwrite( + str(args.colorized_depth_dir / (fn_stem + ".jpg")), + colorized_depth_image, + ) diff --git a/scripts/extract_sharpest_frames.py b/scripts/extract_sharpest_frames.py new file mode 100644 index 0000000..2c63f07 --- /dev/null +++ b/scripts/extract_sharpest_frames.py @@ -0,0 +1,126 @@ +# Copyright (c) 2024, NVIDIA CORPORATION. All rights reserved. +# +# NVIDIA CORPORATION and its licensors retain all intellectual property +# and proprietary rights in and to this software, related documentation +# and any modifications thereto. Any use, reproduction, disclosure or +# distribution of this software and related documentation without an express +# license agreement from NVIDIA CORPORATION is strictly prohibited. + +import argparse +from math import ceil +from pathlib import Path + +import cv2 +import tqdm +from decord import VideoReader + + +# helper functions +def variance_of_laplacian(image): + return cv2.Laplacian(image, cv2.CV_64F).var() + + +def image_sharpness(image): + image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) + largest_dim = max(image.shape[:2]) + scale_factor = 640 / largest_dim + image = cv2.resize(image, dsize=(0, 0), fx=scale_factor, fy=scale_factor) + sharpness = variance_of_laplacian(image) + return sharpness + + +# args +parser = argparse.ArgumentParser( + description="Extract the sharpest frames from a video." +) +parser.add_argument( + "video_fn", + type=Path, + help="the video to load", +) +parser.add_argument( + "images_dir", + type=Path, + help="directory for extracted video frames", +) +parser.add_argument( + "--min_sharpness_window_size", + default=10, + type=int, + help="minimum window size for sharpness filter (default=10)", +) +parser.add_argument( + "--max_frame_count", + default=125, + type=int, + help="maximum number of frames to extract (default=125)", +) +parser.add_argument( + "--sharpness_threshold", + default=-1, + type=float, + help="threshold to filter out blurry images (default=-1)", +) +parser.add_argument( + "--image_ext", + default="jpg", + choices=["jpg", "png"], + type=str, + help="frame image extension (default=jpg)", +) +args = parser.parse_args() + +# ensure files/paths exist +assert args.video_fn.exists(), f"Video file {args.video_fn} does not exist." +args.images_dir.mkdir(exist_ok=True) + +# create video reader +with open(args.video_fn, "rb") as fp: + video_reader = VideoReader(fp) +assert len(video_reader) > 0, f"Video file {args.video_fn} is empty." + +# compute sharpness filter window size +if ( + args.min_sharpness_window_size <= 0 + or len(video_reader) / args.min_sharpness_window_size > args.max_frame_count +): + sharpness_window_size = ceil(len(video_reader) / args.max_frame_count) +else: + sharpness_window_size = args.min_sharpness_window_size + +print( + f"Extracting frames from {args.video_fn} with sharpness window {sharpness_window_size} ..." +) +frame_queue, n_frames_written = [], 0 +for idx, image in enumerate(tqdm.tqdm(video_reader)): + # package frame + image = image.asnumpy() + frame = { + "idx": idx, + "image": image, + "sharpness": image_sharpness(image), + } + frame_queue.append(frame) + + # keep sharpest image in window + if len(frame_queue) >= sharpness_window_size: + # get sharpest frame + frames_by_sharpness = [(frame["sharpness"], frame) for frame in frame_queue] + sharpeness_val, sharpest = max(frames_by_sharpness) + frame_queue = [] + + # save frame + if sharpeness_val > args.sharpness_threshold: + idx, image, sharpness = sharpest.values() + image = cv2.cvtColor(image, cv2.COLOR_RGB2BGR) + image_fn = args.images_dir / f"{idx:06d}.{args.image_ext}" + n_frames_written += 1 + + if args.image_ext == "jpg": + cv2.imwrite(str(image_fn), image, [cv2.IMWRITE_JPEG_QUALITY, 80]) + elif args.image_ext == "png": + cv2.imwrite(str(image_fn), image, [cv2.IMWRITE_PNG_COMPRESSION, 9]) + else: + raise ValueError(f"Unsupported image extension {args.image_ext}.") + +print(f"{n_frames_written} frames written to {args.images_dir}") diff --git a/scripts/generate_bop_masks.py b/scripts/generate_bop_masks.py new file mode 100644 index 0000000..2580b5f --- /dev/null +++ b/scripts/generate_bop_masks.py @@ -0,0 +1,215 @@ +# This script was adapted from the following script in the BOP toolkit: +# https://github.com/thodan/bop_toolkit/blob/master/scripts/calc_gt_masks.py +# MIT License; Copyright (c) 2019 Tomas Hodan (hodantom@cmp.felk.cvut.cz) + +import argparse +from pathlib import Path + +import numpy as np +from bop_toolkit_lib import inout, misc, renderer, visibility +from tqdm import tqdm + +__print = print +from rich import print + + +# recursively get all instances of a key from a dict +def get_all_from_dict(d: dict, key) -> list: + def search_dict(d: dict, key) -> list: + for k, v in d.items(): + if k == key: + yield v + elif isinstance(v, dict): + yield from search_dict(v, key) + elif isinstance(v, list): + for x in v: + if isinstance(x, dict): + yield from search_dict(x, key) + + return list(search_dict(d, key)) + + +# parse arguments +parser = argparse.ArgumentParser() +parser.add_argument( + "bop_scene_dir", + type=Path, + help="Path to BOP scene directory", +) +parser.add_argument( + "--scene_depth_dir", + type=Path, + default=None, + help="Path to BOP scene depth directory (default: 'BOP_SCENE_DIR/depth')", +) +parser.add_argument( + "--scene_gt_fn", + type=Path, + default=None, + help="Path to BOP scene GT file (default: 'BOP_SCENE_DIR/scene_gt.json')", +) +parser.add_argument( + "--scene_camera_fn", + type=Path, + default=None, + help="Path to BOP scene camera file (default: 'BOP_SCENE_DIR/scene_camera.json')", +) +parser.add_argument( + "--scene_mesh_fn_fmt", + type=str, + default=None, + help="Format string for path to BOP scene mesh files (default: 'BOP_SCENE_DIR/obj_{:06d}.ply')", +) +parser.add_argument( + "--mask_types", + type=str, + default=["full"], + choices=["full", "visible"], + nargs="+", + help="Type of mask to generate (default: full)", +) +parser.add_argument( + "--visible_tolerance", + type=float, + default=25, + help="Visible tolerance in mm (default: 25)", +) +parser.add_argument( + "--write_object_depth", + action="store_true", + help="Write object depth images to BOP scene directory", +) +parser.add_argument( + "--read_object_depth", + action="store_true", + help="Read object depth images from BOP scene directory", +) +parser.add_argument( + "--full_mask_output_dir", + type=Path, + default=None, + help="Path to full mask output directory (default: 'BOP_SCENE_DIR/mask')", +) +parser.add_argument( + "--visible_mask_output_dir", + type=Path, + default=None, + help="Path to visible mask output directory (default: 'BOP_SCENE_DIR/mask_visib')", +) +args = parser.parse_args() + +# load scene GT and camera +if args.scene_gt_fn is None: + scene_gt_fn = args.bop_scene_dir / "scene_gt.json" +else: + scene_gt_fn = args.scene_gt_fn +scene_gt = inout.load_scene_gt(scene_gt_fn) +print(f"Loaded scene annotations from {scene_gt_fn}") + +if args.scene_camera_fn is None: + scene_camera_fn = args.bop_scene_dir / "scene_camera.json" +else: + scene_camera_fn = args.scene_camera_fn +scene_camera: dict = inout.load_scene_camera(scene_camera_fn) +print(f"Loaded scene camera parameters from {scene_camera_fn}") + +# create mask directory +if args.full_mask_output_dir is None: + args.full_mask_output_dir = args.bop_scene_dir / "mask" +if args.visible_mask_output_dir is None: + args.visible_mask_output_dir = args.bop_scene_dir / "mask_visib" +mask_output_dirs = [ + args.full_mask_output_dir if mask_type == "full" else args.visible_mask_output_dir + for mask_type in args.mask_types +] +for mask_output_dir in mask_output_dirs: + mask_output_dir.mkdir(exist_ok=True) + +# get scene/object depth directories +if args.scene_depth_dir is None: + scene_depth_dir = args.bop_scene_dir / "depth" +else: + scene_depth_dir = args.scene_depth_dir +object_depth_dir = args.bop_scene_dir / "rendered_depth_object" +if args.write_object_depth: + object_depth_dir.mkdir(exist_ok=True) + +# get image size from scene_camera +image_sizes = get_all_from_dict(scene_camera, "resolution") +image_widths, image_heights = zip(*image_sizes) +assert len(set(image_widths)) == 1 and len(set(image_heights)) == 1, ( + f"This script requires all images to have the same size, " + f"but the following sizes were found in {scene_camera_fn}: " + f"{set(image_widths)=}, {set(image_heights)=}" +) +width, height = map(int, [image_widths[0], image_heights[0]]) + +# initialize renderer +print(f"Initializing renderer") +__print("\033[38;5;240m", end="") # change color of renderer terminal output +bop_renderer = renderer.create_renderer( + width, height, renderer_type="vispy", mode="depth" +) +__print("\033[0m", end="") # reset terminal color + +# add object models +object_ids = get_all_from_dict(scene_gt, "obj_id") +for obj_id in list(set(object_ids)): + if args.scene_mesh_fn_fmt is not None: + mesh_fn = Path(args.scene_mesh_fn_fmt.format(obj_id)) + else: + mesh_fn = args.bop_scene_dir / f"obj_{obj_id:06d}.ply" + print(f"Adding {mesh_fn}") + bop_renderer.add_object(obj_id, str(mesh_fn)) + +# iterate over images +print(f"Rendering {' & '.join(args.mask_types)} masks") +for im_id in tqdm(sorted(scene_gt.keys())): + # get camera intrinsics + K = scene_camera[im_id]["cam_K"] + fx, fy, cx, cy = K[0, 0], K[1, 1], K[0, 2], K[1, 2] + + # load scene depth image, if computing visible mask + if "visible" in args.mask_types: + scene_depth_fn = scene_depth_dir / f"{im_id:06d}.png" + scene_depth_im = inout.load_depth(scene_depth_fn) + scene_depth_im *= scene_camera[im_id]["depth_scale"] # to [mm] + scene_dist_im = misc.depth_im_to_dist_im_fast(scene_depth_im, K) + + # iterate over objects + for gt_id, gt in enumerate(scene_gt[im_id]): + # render the object depth image + object_depth_fn = object_depth_dir / f"{im_id:06d}_{gt_id:06d}.png" + if args.read_object_depth and object_depth_fn.exists(): + object_depth_im = inout.load_depth(str(object_depth_fn)) + else: + object_depth_im = bop_renderer.render_object( + gt["obj_id"], gt["cam_R_m2c"], gt["cam_t_m2c"], fx, fy, cx, cy + )["depth"] + if args.write_object_depth: + inout.save_depth(str(object_depth_fn), object_depth_im) + object_dist_im = misc.depth_im_to_dist_im_fast(object_depth_im, K) + + # compute masks + for mask_type, mask_output_dir in zip(args.mask_types, mask_output_dirs): + if mask_type == "full": + # mask of the full object silhouette + mask = object_dist_im > 0 + mask_output_fn = mask_output_dir / f"{im_id:06d}_{gt_id:06d}.png" + inout.save_im(str(mask_output_fn), 255 * mask.astype(np.uint8)) + + elif mask_type == "visible": + # mask of the visible part of the object silhouette. + mask = visibility.estimate_visib_mask_gt( + scene_dist_im, + object_dist_im, + args.visible_tolerance, + visib_mode="bop19", + ) + mask_output_fn = mask_output_dir / f"{im_id:06d}_{gt_id:06d}.png" + inout.save_im(str(mask_output_fn), 255 * mask.astype(np.uint8)) + +print("Masks written to:") +for p in mask_output_dirs: + print(f" {p}") +print(f"Done!") diff --git a/scripts/generate_gt_bop.py b/scripts/generate_gt_bop.py new file mode 100644 index 0000000..f9f9a01 --- /dev/null +++ b/scripts/generate_gt_bop.py @@ -0,0 +1,312 @@ +# Copyright (c) 2024, NVIDIA CORPORATION. All rights reserved. +# +# NVIDIA CORPORATION and its licensors retain all intellectual property +# and proprietary rights in and to this software, related documentation +# and any modifications thereto. Any use, reproduction, disclosure or +# distribution of this software and related documentation without an express +# license agreement from NVIDIA CORPORATION is strictly prohibited. + +import argparse +import json +import shutil +from pathlib import Path + +import numpy as np +import trimesh +from rich import print +from tqdm import tqdm + +rotation_180 = np.array([[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]]) +rotate_neg_90_y = np.array([[0, 0, 1, 0], [0, 1, 0, 0], [-1, 0, 0, 0], [0, 0, 0, 1]]) +rotate_90_z = np.array([[0, -1, 0, 0], [1, 0, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]) + + +def mark_path(path) -> str: + return f"[steel_blue not bold]{path}[/steel_blue not bold]" + + +def copy_reference_mesh( + canonical_mesh_path: Path, + bop_models_dir: Path, + obj_id: int, + force_rewrite: bool = False, +) -> Path: + # check for missing paths + if not canonical_mesh_path.exists(): + raise FileNotFoundError( + f"Could not find reference mesh at {canonical_mesh_path}" + ) + if not bop_models_dir.exists(): + raise FileNotFoundError( + f"Could not find BOP models directory at {bop_models_dir}" + ) + + # copy mesh + mesh_export_path = bop_models_dir / f"obj_{obj_id:06d}.ply" + if canonical_mesh_path.suffix == ".ply" and not force_rewrite: + shutil.copy2(canonical_mesh_path, mesh_export_path) + else: + mesh: trimesh.Trimesh = trimesh.load_mesh(str(canonical_mesh_path)) + mesh.export(str(mesh_export_path)) + + return mesh_export_path + + +# generate scene_gt.json +def get_scene_gt( + colmap_transforms: dict, + world_to_model: np.array, + obj_id: int, +) -> dict: + # get transform from canonical model to colmap model + model_to_world = np.linalg.inv(world_to_model) + canonical_model_to_colmap_model = model_to_world + + # remove scale from model to camera transform + s = np.linalg.norm(canonical_model_to_colmap_model[:3, 0]) + canonical_model_to_colmap_model_rescaled = canonical_model_to_colmap_model.copy() + canonical_model_to_colmap_model_rescaled[:3, :3] /= s + + # construct GT pose for each frame + scene_gt = {} + for frame in colmap_transforms["frames"]: + # get frame index + frame_idx = int(Path(frame["file_path"]).stem) + + # get world to camera transform + camera_to_world = np.array(frame["transform_matrix"]) + world_to_camera = np.linalg.inv(camera_to_world) + + # get model to camera transform + model_to_camera = rotation_180 @ world_to_camera @ rotate_neg_90_y @ rotate_90_z + m2c = model_to_camera @ canonical_model_to_colmap_model_rescaled + + # construct GT pose dict + gt = {} + gt["cam_R_m2c"] = m2c[:3, :3].flatten().tolist() + gt["cam_t_m2c"] = (m2c[:3, -1] / s).tolist() + gt["obj_id"] = obj_id + scene_gt[str(int(frame_idx))] = [gt] + + return scene_gt + + +def get_scene_camera(transforms): + scene_camera = {} + + cam_K = [transforms["fl_x"], 0.0, transforms["cx"]] + cam_K += [0.0, transforms["fl_y"], transforms["cy"]] + cam_K += [0.0, 0.0, 1.0] + + depth_scale = 1.0 + + for i, frame in enumerate(transforms["frames"]): + index = Path(frame["file_path"]).stem + + scene_camera[str(int(index))] = { + "cam_K": cam_K, + "depth_scale": depth_scale, + "resolution": [transforms["w"], transforms["h"]], + "height": transforms["h"], + "width": transforms["w"], + } + + return scene_camera + + +def remove_bad_frames(scene_gt: dict, scene_base_dir: Path) -> dict: + removed_frames_fn = scene_base_dir / "removed_frames.json" + if removed_frames_fn.exists(): + # TODO document this! + removed_frames = json.load(removed_frames_fn) + removed_frames = set(removed_frames["removed_frames"]) + + for frame in scene_gt: + if frame in removed_frames: + scene_gt.pop(frame) + + return scene_gt + + +def remove_frames_not_in_scene_gt(scene_gt: dict, bop_folder: Path) -> list: + scene_gt_frames = set([int(frame) for frame in scene_gt.keys()]) + images = sorted((bop_folder / "rgb").iterdir()) + + removed_frames = [] + for img in images: + if not int(img.stem) in scene_gt_frames: + img.unlink() + removed_frames.append(img) + + return removed_frames + + +def copy_images(scene_image_dir: Path, bop_image_dir: Path, scene_gt: dict) -> None: + # get source and destination directories + if not scene_image_dir.exists(): + raise FileNotFoundError( + f"Could not find scene image directory at {scene_image_dir}" + ) + bop_image_dir.mkdir(exist_ok=True) + + # load removed frames + removed_frames_fn = bop_scene_dir / "removed_frames.json" + if removed_frames_fn.exists(): + removed_frames = json.load(removed_frames_fn) + removed_frames = set(removed_frames["removed_frames"]) + else: + removed_frames = set() + + # copy images + print( + f"Copying images from {mark_path(scene_image_dir)} to {mark_path(bop_image_dir)}" + ) + for img_fn in tqdm(sorted(scene_image_dir.iterdir())): + if img_fn.suffix in [".png", ".jpg"] and int(img_fn.stem) not in removed_frames: + shutil.copy2(img_fn, bop_image_dir) + + if len(removed_frames): + print( + f"Did not copy frames listed in {mark_path(removed_frames_fn)}: {removed_frames}" + ) + + print( + f"Copied {len(list(bop_image_dir.iterdir()))} files from " + f"{mark_path(scene_image_dir)} to {mark_path(bop_image_dir)}" + ) + + # Remove frames not in scene_gt.json + removed_frames = remove_frames_not_in_scene_gt(scene_gt, bop_scene_dir) + print( + f"Removed {len(removed_frames)} frames from {mark_path(bop_image_dir)} " + f"that were missing from {mark_path(bop_scene_dir/'scene_gt.json')}" + ) + + +if __name__ == "__main__": + # parse arguments + parser = argparse.ArgumentParser() + parser.add_argument( + "bop_base_dir", + type=Path, + help="Path to base BOP directory", + ) + parser.add_argument( + "--camera_poses_fn", + type=Path, + required=True, + help="Path to camera poses", + ) + # parser.add_argument( + # "--reference_mesh_fn", + # type=Path, + # # required=True, + # default=None, + # help="Path to reference mesh", + # ) + parser.add_argument( + "--scene_image_dir", + type=Path, + # required=True, + default=None, + help="Path to scene image directory", + ) + parser.add_argument( + "--scene_depth_dir", + type=Path, + # required=True, + default=None, + help="Path to scene depth image directory", + ) + # parser.add_argument( + # "--alignment_transform_fn", + # type=Path, + # default=None, + # help="Path to alignment transform", + # ) + parser.add_argument( + "--bop_object_id", + type=int, + default=1, + help="BOP object id", + ) + parser.add_argument( + "--output_fn_tag", + type=str, + default="", + help="Tag to append to output filenames", + ) + args = parser.parse_args() + + # # copy canonical mesh to BOP models directory + # # bop_models_dir = args.bop_base_dir / "models" + # # bop_models_dir.mkdir(exist_ok=True) + # args.bop_base_dir.mkdir(exist_ok=True) + # bop_models_dir = args.bop_base_dir + # # reference_mesh_fn = args.reference_dir / "mesh" / "reference.ply" + # reference_mesh_fn = args.reference_mesh_fn + # bop_reference_mesh_fn = copy_reference_mesh( + # reference_mesh_fn, bop_models_dir, args.bop_object_id, force_rewrite=True + # ) + # print( + # f"Copied reference mesh {mark_path(reference_mesh_fn)} to " + # f"{mark_path(bop_reference_mesh_fn)}" + # ) + + # # load alignment transform + # if not args.alignment_transform_fn: + # alignment_transform_mtx = np.eye(4) + # print(f"Using identity matrix for alignment transform.") + # else: + # if not args.alignment_transform_fn.exists(): + # raise FileNotFoundError( + # f"'{args.alignment_transform_fn}' does not exist. Generate this file with 'manual_align.py'." + # ) + # with open(args.alignment_transform_fn, "r") as fp: + # alignment_transform = json.load(fp) + # alignment_transform_mtx = np.array(alignment_transform["transform"]) + # print( + # f"Loaded alignment transform from {mark_path(args.alignment_transform_fn)}" + # ) + + # load colmap camera poses + if not args.camera_poses_fn.exists(): + raise FileNotFoundError(f"'{args.camera_poses_fn}' does not exist.") + with open(args.camera_poses_fn, "r") as fp: + colmap_transforms = json.load(fp) + print(f"Loaded colmap camera poses from {mark_path(args.camera_poses_fn)}") + + # create BOP scene directory + # bop_scene_dir = args.bop_base_dir / "scenes" / args.bop_id + # bop_scene_dir.mkdir(exist_ok=True, parents=True) + bop_scene_dir = args.bop_base_dir + bop_scene_dir.mkdir(exist_ok=True, parents=True) + print(f"Writing BOP scene files to {mark_path(bop_scene_dir)}") + + # generate scene_camera.json + scene_camera = get_scene_camera(colmap_transforms) + scene_camera_fn = bop_scene_dir / "scene_camera.json" + scene_camera_fn = scene_camera_fn.with_stem( + scene_camera_fn.stem + args.output_fn_tag + ) + with open(scene_camera_fn, "w") as fp: + json.dump(scene_camera, fp, indent=2) + print(f"Wrote camera info to {mark_path(scene_camera_fn)}") + + # generate scene_gt.json + alignment_transform_mtx = np.eye(4) + scene_gt = get_scene_gt( + colmap_transforms, alignment_transform_mtx, args.bop_object_id + ) + scene_gt = remove_bad_frames(scene_gt, bop_scene_dir) + scene_gt_fn = bop_scene_dir / "scene_gt.json" + scene_gt_fn = scene_gt_fn.with_stem(scene_gt_fn.stem + args.output_fn_tag) + with open(scene_gt_fn, "w") as fp: + json.dump(scene_gt, fp, indent=2) + print(f"Wrote object poses to {mark_path(scene_gt_fn)}") + + # copy RGB and depth images + if args.scene_image_dir is not None: + copy_images(args.scene_image_dir, bop_scene_dir / "rgb", scene_gt) + if args.scene_depth_dir is not None: + copy_images(args.scene_depth_dir, bop_scene_dir / "depth_nerf", scene_gt) diff --git a/scripts/manual_align.py b/scripts/manual_align.py new file mode 100644 index 0000000..a60e30c --- /dev/null +++ b/scripts/manual_align.py @@ -0,0 +1,514 @@ +# Copyright (c) 2024, NVIDIA CORPORATION. All rights reserved. +# +# NVIDIA CORPORATION and its licensors retain all intellectual property +# and proprietary rights in and to this software, related documentation +# and any modifications thereto. Any use, reproduction, disclosure or +# distribution of this software and related documentation without an express +# license agreement from NVIDIA CORPORATION is strictly prohibited. + +import argparse +import json +from functools import partial +from itertools import cycle +from pathlib import Path + +import numpy as np +from scipy.spatial.transform import Rotation + +# parse args +parser = argparse.ArgumentParser(description="Fix and simplify a mesh.") +parser.add_argument("mesh_fn", help="path to mesh file", type=Path) +parser.add_argument( + "--output_mesh_fn", + type=Path, + required=True, + help="path to output file", +) +parser.add_argument( + "--output_transform_fn", + type=Path, + required=True, + help="path to output file for transformations", +) +parser.add_argument( + "--output_scale_fn", + type=Path, + default=None, + help="path to output file for scale factor", +) +parser.add_argument( + "--reference_mesh", + type=Path, + default=None, + help="Path to canonical mesh. If provided, will rescale mesh to match size of canonical mesh", +) +parser.add_argument( + "--allow_translation", + action="store_true", + help="Allow translation of mesh", +) +parser.add_argument( + "--allow_scaling", + action="store_true", + help="Allow scaling of mesh", +) +parser.add_argument( + "--already_in_canonical_pose", + action="store_true", + help="If alignable mesh is already in canonical pose, do not apply initial transform", +) +args = parser.parse_args() + +if args.allow_scaling: + assert ( + args.reference_mesh is not None + ), "Must provide reference mesh if scaling is allowed" + assert ( + args.output_scale_fn is not None + ), "Must provide output scale file if scaling is allowed" + +# perform slow imports after parsing args +import open3d as o3d + + +# class to handle view changes +class ViewHandler: + __views__ = cycle( + [ + { # canonical front view + "front": [1.0, 0.0, 0.0], + "up": [0.0, 0.0, 1.0], + "name": "front", + }, + { # canonical side view + "front": [0.0, 1.0, 0.0], + "up": [0.0, 0.0, 1.0], + "name": "side", + }, + { # canonical top view + "front": [0.0, 0.0, 1.0], + "up": [-1.0, 0.0, 0.0], + "name": "top", + }, + ] + ) + + def next_view(self, vis: o3d.visualization.Visualizer) -> bool: + # apply next canonical view + view_status_json = json.loads(vis.get_view_status()) + view = view_status_json["trajectory"][0] + + next_view = next(self.__views__) + view["front"] = next_view["front"] + view["up"] = next_view["up"] + view["lookat"] = [0.0, 0.0, 0.0] + view["field_of_view"] = 5.0 + + vis.set_view_status(json.dumps(view_status_json)) + print(f"[View] Showing canonical {next_view['name']} view.", flush=True) + + return False + + +# class to handle mesh visibility +class VisibilityHandler: + def __init__( + self, mesh1: o3d.geometry.TriangleMesh, mesh2: o3d.geometry.TriangleMesh + ): + self.mesh1 = mesh1 + self.visible1 = True + self.mesh2 = mesh2 + self.visible2 = True + + def __show_mesh1__(self, vis: o3d.visualization.Visualizer) -> bool: + if self.visible1: + return False + vis.add_geometry(self.mesh1, reset_bounding_box=False) + self.visible1 = True + return True + + def __show_mesh2__(self, vis: o3d.visualization.Visualizer) -> bool: + if self.visible2: + return False + vis.add_geometry(self.mesh2, reset_bounding_box=False) + self.visible2 = True + return True + + def __hide_mesh1__(self, vis: o3d.visualization.Visualizer) -> bool: + if not self.visible1: + return False + vis.remove_geometry(self.mesh1, reset_bounding_box=False) + self.visible1 = False + return True + + def __hide_mesh2__(self, vis: o3d.visualization.Visualizer) -> bool: + if not self.visible2: + return False + vis.remove_geometry(self.mesh2, reset_bounding_box=False) + self.visible2 = False + return True + + def show_all(self, vis: o3d.visualization.Visualizer) -> bool: + return any([self.__show_mesh1__(vis), self.__show_mesh2__(vis)]) + + def alternate_visibility(self, vis: o3d.visualization.Visualizer) -> bool: + if self.visible1 and self.visible2: + return self.__hide_mesh1__(vis) + elif self.visible1: + return any([self.__hide_mesh1__(vis), self.__show_mesh2__(vis)]) + elif self.visible2: + return any([self.__hide_mesh2__(vis), self.__show_mesh1__(vis)]) + else: + return self.__show_mesh2__(vis) + + +# class to handle alignment transform +class TransformHandler: + def __init__( + self, + mesh: o3d.geometry.TriangleMesh, + bbox: o3d.geometry.AxisAlignedBoundingBox, + ): + self.transform = np.eye(4) + self.scale = 1.0 + self.mesh = mesh + self.bbox = bbox + + def __apply_transform__( + self, + vis: o3d.visualization.Visualizer, + transform: np.ndarray, + ) -> bool: + # transform mesh + self.mesh.transform(transform) + self.transform = transform @ self.transform + + # recompute bounding box + bbox = self.mesh.get_axis_aligned_bounding_box() + bbox.color = self.bbox.color + vis.remove_geometry(self.bbox, reset_bounding_box=False) + vis.add_geometry(bbox, reset_bounding_box=False) + self.bbox = bbox + return True + + def __rotate_around_vector__( + self, + vis: o3d.visualization.Visualizer, + vector: np.ndarray, + step_size: float, + ) -> bool: + rotation = Rotation.from_rotvec(step_size * vector, degrees=True).as_matrix() + rotation_4x4 = np.eye(4) + rotation_4x4[:3, :3] = rotation + return self.__apply_transform__(vis, rotation_4x4) + + def rotate_in_screen_space( + self, + vis: o3d.visualization.Visualizer, + step_size: float, + ) -> bool: + # get front vector + view_status_json = json.loads(vis.get_view_status()) + view = view_status_json["trajectory"][0] + front = np.array(view["front"]) + + # snap to nearest axis + front = np.round(front) + if np.all(front == 0.0): + return False + front = front / np.linalg.norm(front) + if np.sum(np.abs(front)) != 1.0: + return False + + # apply rotation + return self.__rotate_around_vector__(vis, front, step_size) + + def handle_rotation_key( + self, + vis: o3d.visualization.Visualizer, + key: int, + action: int, + vector: np.ndarray, + ) -> bool: + # ensure key is pressed or held + if key not in [1, 2]: + return False + + # get modifier keys + shift_pressed = action in [1, 3, 5] + ctrl_pressed = action in [2, 3, 6] + alt_pressed = action in [4, 5, 6] + + # set initial step size + step_size = -1.0 + + # rotate by 90 degs if ctrl is pressed + if ctrl_pressed: + step_size = np.sign(step_size) * 90.0 + + # reverse direction if shift is pressed + if shift_pressed: + step_size *= -1.0 + + # scale step size if alt is pressed + if alt_pressed: + step_size /= 10.0 + + # apply rotation + return self.__rotate_around_vector__(vis, vector, step_size) + + def handle_translation_key( + self, + vis: o3d.visualization.Visualizer, + key: int, + action: int, + vector: np.ndarray, + ) -> bool: + # ensure key is pressed or held + if key not in [1, 2]: + return False + + # get modifier keys + shift_pressed = action in [1, 3, 5] + ctrl_pressed = action in [2, 3, 6] + alt_pressed = action in [4, 5, 6] + + # set initial step size + step_size = 1.0 + + # translate by 50mm if ctrl is pressed + if ctrl_pressed: + step_size = np.sign(step_size) * 50.0 + + # reverse direction if shift is pressed + if shift_pressed: + step_size *= -1.0 + + # scale step size if alt is pressed + if alt_pressed: + step_size /= 5.0 + + # apply translation + translation_4x4 = np.eye(4) + translation_4x4[:3, 3] = step_size * vector + return self.__apply_transform__(vis, translation_4x4) + + +# display mesh +def display_and_align( + alignable_mesh: o3d.geometry.TriangleMesh, + origin_size: float, + reference_mesh: o3d.geometry.TriangleMesh = None, + allow_translation: bool = False, + allow_scaling: bool = False, +) -> np.ndarray: + # initialize viewer + vis = o3d.visualization.VisualizerWithKeyCallback() + vis.create_window() + + # add origin + origin = o3d.geometry.TriangleMesh.create_coordinate_frame( + size=origin_size, origin=[0, 0, 0] + ) + vis.add_geometry(origin) + + # add meshes and bounding boxes + def add_mesh_to_viz(mesh: o3d.geometry.TriangleMesh): + # compute normals for better shading + mesh.compute_vertex_normals() + + # add mesh + vis.add_geometry(mesh) + + # add bounding box + mesh_bbox = mesh.get_axis_aligned_bounding_box() + mesh_bbox.color = [0.0, 0.5, 1.0] + vis.add_geometry(mesh_bbox) + + return mesh_bbox + + alignable_mesh_bbox = add_mesh_to_viz(alignable_mesh) + if reference_mesh is not None: + reference_mesh_bbox = add_mesh_to_viz(reference_mesh) + else: + reference_mesh_bbox = None + + # color alignable mesh + alignable_mesh_bbox.color = [1.0, 0.0, 0.0] + + # add key callback for view handler + view_handler = ViewHandler() + vis.register_key_callback(ord("V"), view_handler.next_view) + view_handler.next_view(vis) # apply canonical front view + + # add key callback for visibility handler + if reference_mesh is not None: + visibility_handler = VisibilityHandler(reference_mesh, alignable_mesh) + vis.register_key_callback(ord("A"), visibility_handler.alternate_visibility) + vis.register_key_callback(ord("S"), visibility_handler.show_all) + + # add key callbacks for rotation handler + transform_handler = TransformHandler(alignable_mesh, alignable_mesh_bbox) + vis.register_key_action_callback( + ord("R"), + partial( + transform_handler.handle_rotation_key, + vector=np.array([1, 0, 0]), + ), + ) + vis.register_key_action_callback( + ord("G"), + partial( + transform_handler.handle_rotation_key, + vector=np.array([0, 1, 0]), + ), + ) + vis.register_key_action_callback( + ord("B"), + partial( + transform_handler.handle_rotation_key, + vector=np.array([0, 0, 1]), + ), + ) + + # add key callback for translation handler + if allow_translation: + vis.register_key_action_callback( + ord("X"), + partial( + transform_handler.handle_translation_key, + vector=np.array([1, 0, 0]), + ), + ) + vis.register_key_action_callback( + ord("Y"), + partial( + transform_handler.handle_translation_key, + vector=np.array([0, 1, 0]), + ), + ) + vis.register_key_action_callback( + ord("Z"), + partial( + transform_handler.handle_translation_key, + vector=np.array([0, 0, 1]), + ), + ) + + # add key callback for scaling handler + if allow_scaling: + pass + + # visualize geometries with custom visualizer + print("Displaying alignment tool.", flush=True) + print( + "> Press 'v' to cycle through views, starting with canonical front view", + flush=True, + ) + + print( + "> Press 'r', 'g', or 'b' to rotate by 1 degree around the x, y, or z axis", + flush=True, + ) + print( + " Holding 'shift' will reverse the direction of rotation", + flush=True, + ) + print(" Holding 'ctrl' will rotate by 90 degrees", flush=True) + print(" Holding 'alt' will rotate by 0.1 degrees", flush=True) + + if args.allow_translation: + print( + "> Press 'x', 'y', or 'z' to translate by 1mm along the x, y, or z axis", + flush=True, + ) + print( + " Holding 'shift' will reverse the direction of translation", + flush=True, + ) + print(" Holding 'ctrl' will translate by 5cm", flush=True) + print(" Holding 'alt' will translate by 0.2mm", flush=True) + + if args.reference_mesh is not None: + print("> Press 'a' to alternate visibility between meshes", flush=True) + print("> Press 's' to show both meshes", flush=True) + + print("> Press 'q' to quit.", flush=True) + vis.run() + + # return total rotation + return transform_handler.transform, transform_handler.scale + + +# TODO: handle manual scale adjustments when aligning to canonical mesh + +# load alignable mesh +print(f"Reading alignable mesh from {args.mesh_fn}", flush=True) +alignable_mesh = o3d.io.read_triangle_mesh( + args.mesh_fn.as_posix(), enable_post_processing=True +) +alignable_mesh_obb = alignable_mesh.get_oriented_bounding_box() + +# load existing alignment transform +if args.output_transform_fn.exists(): + with open(args.output_transform_fn, "r") as f: + initial_transform = np.array(json.load(f)) +# or initialize to identity, if alignable mesh is already in canonical pose +elif args.already_in_canonical_pose: + initial_transform = np.eye(4) +# or initialize by centering and aligning to oriented bounding box +else: + # align oriented bounding box to origin + obb_transform = np.eye(4) + obb_transform[:3, :3] = alignable_mesh_obb.R + obb_transform[:3, 3] = alignable_mesh_obb.center + initial_transform = np.linalg.inv(obb_transform) + +# apply initial transform +alignable_mesh.transform(initial_transform) + +# load reference mesh, if applicable +if args.reference_mesh: + print(f"Reading reference mesh from {args.reference_mesh}", flush=True) + reference_mesh = o3d.io.read_triangle_mesh( + args.reference_mesh.as_posix(), enable_post_processing=False + ) + + # lighten the reference mesh + vertex_colors = np.asarray(reference_mesh.vertex_colors) + vertex_colors = vertex_colors * 0.5 + 0.5 + reference_mesh.vertex_colors = o3d.utility.Vector3dVector(vertex_colors) + +else: + reference_mesh = None + +# display and align +alignment_transform, alignment_scale = display_and_align( + alignable_mesh, + origin_size=alignable_mesh_obb.extent[1] * 1.25, + reference_mesh=reference_mesh, + allow_translation=args.allow_translation, + allow_scaling=args.allow_scaling, +) + +# save transformation +final_transform = alignment_transform @ initial_transform +with open(args.output_transform_fn, "w") as f: + json.dump(final_transform.tolist(), f, indent=2) +print(f"Alignment transform saved to {args.output_transform_fn}", flush=True) + +# save scale factor +if args.allow_scaling: + with open(args.output_scale_fn, "w") as f: + json.dump({"scale_factor": alignment_scale}, f, indent=2) + print(f"Scale factor saved to {args.output_scale_fn}", flush=True) + +# save transformed mesh +alignable_mesh = o3d.io.read_triangle_mesh( + args.mesh_fn.as_posix(), enable_post_processing=True +) +alignable_mesh.transform(final_transform) +if args.output_mesh_fn is not None: + o3d.io.write_triangle_mesh(args.output_mesh_fn.as_posix(), alignable_mesh) + print(f"Aligned mesh written to {args.output_mesh_fn}", flush=True) +print("Done.", flush=True) diff --git a/scripts/manual_scale.py b/scripts/manual_scale.py new file mode 100644 index 0000000..a9199c7 --- /dev/null +++ b/scripts/manual_scale.py @@ -0,0 +1,106 @@ +# Copyright (c) 2024, NVIDIA CORPORATION. All rights reserved. +# +# NVIDIA CORPORATION and its licensors retain all intellectual property +# and proprietary rights in and to this software, related documentation +# and any modifications thereto. Any use, reproduction, disclosure or +# distribution of this software and related documentation without an express +# license agreement from NVIDIA CORPORATION is strictly prohibited. + +import argparse +import json +from pathlib import Path + +import numpy as np +import trimesh + +# parse arguments +parser = argparse.ArgumentParser( + description="Get scale factor by comparing mesh bbox vs. known value." +) +parser.add_argument( + "input_mesh_fn", + type=Path, + help="Path to input mesh file.", +) +parser.add_argument( + "output_scaled_mesh_fn", + type=Path, + help="Path to output scaled mesh file.", +) +parser.add_argument( + "output_fn", + type=Path, + help="Path to output file.", +) +parser.add_argument( + "--scale_factor", + type=float, + default=False, + help="Record and apply a known scale factor.", +) +args = parser.parse_args() + +# load mesh and get bounding box dimensions +print(f"Loading mesh from {args.input_mesh_fn}...") +mesh = trimesh.load_mesh(args.input_mesh_fn.as_posix()) +bbox = mesh.bounding_box.bounds +bbox_dims = bbox[1] - bbox[0] +depth, width, height = bbox_dims + +# check if scale factor is given +if not args.scale_factor: + # print dimensions + print(f"Current dimensions of mesh bounding box (in BOP axes):") + print(f" height: {height:.1f}") + print(f" width: {width:.1f}") + print(f" depth: {depth:.1f}") + print() + + # prompt user for GT dimensions + print("Please enter the dimensions of the bounding box in mm.") + print("(To skip a dimension, leave it blank.)") + blank_as_nan = lambda x: np.nan if x == "" else float(x) + height_gt = blank_as_nan(input(" height: ").strip()) + width_gt = blank_as_nan(input(" width: ").strip()) + depth_gt = blank_as_nan(input(" depth: ").strip()) + + # print given dimensions + print("Given dimensions:") + print(f" height: {height_gt if not np.isnan(height_gt) else ''}") + print(f" width: {width_gt if not np.isnan(width_gt) else ''}") + print(f" depth: {depth_gt if not np.isnan(depth_gt) else ''}") + + # compute scale factor + scale_factor_estimates = [ + x + for x in ( + height_gt / height, + width_gt / width, + depth_gt / depth, + ) + if not np.isnan(x) + ] + if len(scale_factor_estimates) == 0: + raise ValueError("No valid dimensions were given.") + print(f"Scale factor estimates: {scale_factor_estimates}") + + rel_std = np.std(scale_factor_estimates) / np.mean(scale_factor_estimates) + if rel_std > 0.1: + print( + f"Warning: relative standard deviation of scale factor estimates " + + "differs by {rel_std*100:.1f}%!" + ) + scale_factor = np.mean(scale_factor_estimates) +else: + scale_factor = args.scale_factor + +# write scale factor to file +print(f"Scale factor: {scale_factor:.3f}") +with open(args.output_fn.as_posix(), "w") as f: + json.dump({"scale_factor": scale_factor}, f) +print(f"Scale factor written to {args.output_fn.as_posix()}.") + +# apply scale factor to mesh and write to file +mesh.apply_scale(scale_factor) +mesh.export(args.output_scaled_mesh_fn.as_posix()) +print(f"Scaled mesh written to {args.output_scaled_mesh_fn.as_posix()}.") diff --git a/scripts/mask_images.py b/scripts/mask_images.py new file mode 100644 index 0000000..2f982ce --- /dev/null +++ b/scripts/mask_images.py @@ -0,0 +1,92 @@ +# Copyright (c) 2024, NVIDIA CORPORATION. All rights reserved. +# +# NVIDIA CORPORATION and its licensors retain all intellectual property +# and proprietary rights in and to this software, related documentation +# and any modifications thereto. Any use, reproduction, disclosure or +# distribution of this software and related documentation without an express +# license agreement from NVIDIA CORPORATION is strictly prohibited. + +import argparse +from pathlib import Path + +import cv2 +import tqdm + + +def alpha_mask(img_fn, mask_fn): + img = cv2.imread(str(img_fn)) + msk = cv2.imread(str(mask_fn)) + if img.shape != msk.shape: + msk = cv2.resize(msk, (img.shape[1], img.shape[0])) + + msk = cv2.cvtColor(msk, cv2.COLOR_RGB2GRAY) + + THRESH = 1 # anything above 0 should work + _, thresh1 = cv2.threshold(msk, THRESH, 255, cv2.THRESH_BINARY) + + result = img.copy() + result = cv2.cvtColor(result, cv2.COLOR_RGB2RGBA) + result[thresh1 == 0] = (0, 0, 0, 0) + + return result, msk + + +if __name__ == "__main__": + parser = argparse.ArgumentParser(description="Apply masks to corresponding images") + parser.add_argument( + "image_dir", + type=Path, + help="Path to image directory", + ) + parser.add_argument( + "mask_dir", + type=Path, + help="Path to mask directory", + ) + parser.add_argument( + "masked_image_dir", + type=Path, + help="Path to masked image directory", + ) + parser.add_argument( + "--mask_fn_format", + type=str, + default="%07d.png", + help="Mask filename format", + ) + parser.add_argument( + "--standardized_masks_dir", + type=Path, + default=None, + help="Output standardized masks to this directory", + ) + args = parser.parse_args() + + # create output directories + args.masked_image_dir.mkdir(parents=True, exist_ok=True) + if args.standardized_masks_dir is not None: + args.standardized_masks_dir.mkdir(parents=True, exist_ok=True) + + # iterate over images + for img_fn in tqdm.tqdm(sorted(args.image_dir.iterdir())): + # find corresponding mask + mask_fn = args.mask_dir / (args.mask_fn_format % int(img_fn.stem)) + assert ( + mask_fn.exists() + ), f"Mask file {mask_fn} for image {img_fn} does not exist" + + # apply mask + masked_img, standardized_mask = alpha_mask(img_fn, mask_fn) + + # write masked image + out_fn = args.masked_image_dir / img_fn.with_suffix(".png").name + cv2.imwrite(str(out_fn), masked_img) + + # write standardized mask + if args.standardized_masks_dir is not None: + standardized_mask_fn = args.standardized_masks_dir / (out_fn.name) + cv2.imwrite(str(standardized_mask_fn), standardized_mask) + + print(f"Wrote masked images to {args.masked_image_dir}") + if args.standardized_masks_dir is not None: + print(f"Wrote standardized masks to {args.standardized_masks_dir}") diff --git a/scripts/o3d_mesh_pipeline.py b/scripts/o3d_mesh_pipeline.py new file mode 100644 index 0000000..2b64f44 --- /dev/null +++ b/scripts/o3d_mesh_pipeline.py @@ -0,0 +1,421 @@ +# Copyright (c) 2024, NVIDIA CORPORATION. All rights reserved. +# +# NVIDIA CORPORATION and its licensors retain all intellectual property +# and proprietary rights in and to this software, related documentation +# and any modifications thereto. Any use, reproduction, disclosure or +# distribution of this software and related documentation without an express +# license agreement from NVIDIA CORPORATION is strictly prohibited. + +import argparse +import json +from pathlib import Path + +import cv2 +import numpy as np +from bop_toolkit_lib import inout +from tqdm import tqdm + +# parse arguments +parser = argparse.ArgumentParser() +parser.add_argument( + "output_mesh_fn", + type=Path, + help="output filename for textured mesh", +) +parser.add_argument( + "--colored_mesh_output_fn", + type=Path, + default=None, + help="output filename for mesh with vertex colors", +) +parser.add_argument( + "--bop_pose_fn", + type=Path, + required=True, + help="path to BOP pose file", +) +parser.add_argument( + "--bop_camera_fn", + type=Path, + required=True, + help="path to BOP camera file", +) +parser.add_argument( + "--rgb_dir", + type=Path, + required=True, + help="path to RGB image directory", +) +parser.add_argument( + "--depth_dir", + type=Path, + required=True, + help="path to depth directory", +) +parser.add_argument( + "--mask_dir", + type=Path, + required=True, + help="path to directory with visible instance masks", +) +parser.add_argument( + "--debug", + action="store_true", + help="enable debug mode", +) +parser.add_argument( + "--tsdf_integrate", + action="store_true", + help="enable TSDF volume integration", +) +parser.add_argument( + "--max_views", + type=int, + default=None, + help="maximum number of views to use", +) +parser.add_argument( + "--export_obj", + action="store_true", + help="export OBJ mesh", +) +parser.add_argument( + "--texture_existing_mesh", + type=Path, + default=None, + help="apply texturing to existing mesh", +) +parser.add_argument( + "--subdivision_iterations", + type=int, + default=1, + help="number of mesh subdivision iterations during texturing", +) +args = parser.parse_args() + +# perform slow imports after parsing arguments +import open3d as o3d + +if args.debug: + o3d.utility.set_verbosity_level(o3d.utility.VerbosityLevel.Debug) +else: + o3d.utility.set_verbosity_level(o3d.utility.VerbosityLevel.Error) + +# load camera trajectory +print( + f"Loading camera trajectory from \n\t{args.bop_pose_fn} and \n\t{args.bop_camera_fn} ..." +) +with open(args.bop_pose_fn, "r") as f: + bop_poses = json.load(f) +with open(args.bop_camera_fn, "r") as f: + bop_cameras = json.load(f) + +camera_trajectory_list = [] +if args.debug: + camera_marker_geometries = [] +for pose, camera in zip(bop_poses.values(), bop_cameras.values()): + assert len(pose) == 1, "Expected only one object pose per image" + pose = pose[0] + + camera_params = o3d.camera.PinholeCameraParameters() + extrinsics = np.eye(4) + extrinsics[:3, :3] = np.array(pose["cam_R_m2c"]).reshape(3, 3) + extrinsics[:3, 3] = np.array(pose["cam_t_m2c"]) + camera_params.extrinsic = extrinsics + + K = np.array(camera["cam_K"]).reshape(3, 3) + camera_params.intrinsic = o3d.camera.PinholeCameraIntrinsic( + width=int(camera["width"]), + height=int(camera["height"]), + fx=K[0, 0], + fy=K[1, 1], + cx=K[0, 2], + cy=K[1, 2], + ) + camera_trajectory_list.append(camera_params) + + if args.debug: + camera_marker = o3d.geometry.TriangleMesh.create_coordinate_frame(size=1) + camera_marker.transform(np.linalg.inv(extrinsics)) + camera_marker_geometries.append(camera_marker) +camera_trajectory = o3d.camera.PinholeCameraTrajectory() +camera_trajectory.parameters = camera_trajectory_list + +# load RGB-D images +print(f"Loading RGB-D images from \n\t{args.rgb_dir} and \n\t{args.depth_dir} ...") +rgbd_images = [] +rgb_fns = sorted(args.rgb_dir.glob("*.*")) + +# subsample views for speed +# TODO replace this with clustering by viewing direction +if args.max_views and len(rgb_fns) > args.max_views: + debug_views = np.random.permutation(np.arange(len(rgb_fns)))[: args.max_views] + rgb_fns = [rgb_fns[idx] for idx in debug_views] + camera_trajectory.parameters = [ + camera_trajectory.parameters[idx] for idx in debug_views + ] + if args.debug: + camera_marker_geometries = [ + camera_marker_geometries[idx] for idx in debug_views + ] + + +# function to apply mask to RGB-D images +def apply_mask( + image: o3d.geometry.Image, mask: o3d.geometry.Image +) -> o3d.geometry.Image: + image = np.asarray(image) + mask = np.asarray(mask) + image[mask == 0] = 0 + image = o3d.geometry.Image(image) + return image + + +# load and mask RGB-D images +for rgb_fn in tqdm(rgb_fns): + # get filenames + depth_fn = (args.depth_dir / rgb_fn.name).with_suffix(".png") + mask_fn = args.mask_dir / (rgb_fn.stem + ".png") + assert depth_fn.is_file(), f"Unable to find depth image: {depth_fn}" + assert mask_fn.is_file(), f"Unable to find mask image: {mask_fn}" + + # load RGB-D image + rgb_image = o3d.io.read_image(str(rgb_fn)) + depth_image = o3d.io.read_image(str(depth_fn)) + mask_image = o3d.io.read_image(str(mask_fn)) + + # apply mask + rgb_image = apply_mask(rgb_image, mask_image) + depth_image = apply_mask(depth_image, mask_image) + + # create RGB-D image + rgbd_image = o3d.geometry.RGBDImage.create_from_color_and_depth( + rgb_image, + depth_image, + depth_scale=1000.0, # depth is saved in mm + depth_trunc=1e6, + convert_rgb_to_intensity=False, + ) + rgbd_images.append(rgbd_image) + +# create mesh from RGB-D images +if not args.texture_existing_mesh: + # integrate RGB-D images into a single point cloud + if args.tsdf_integrate: + # combine point clouds using TSDF volume integration + print("Combining point clouds using TSDF volume integration ...") + volume = o3d.pipelines.integration.ScalableTSDFVolume( + voxel_length=4.0 / 512, + sdf_trunc=0.04, + color_type=o3d.pipelines.integration.TSDFVolumeColorType.RGB8, + ) + for rgbd_image, camera_params in tqdm( + zip(rgbd_images, camera_trajectory.parameters), + total=len(rgbd_images), + ): + volume.integrate( + rgbd_image, + camera_params.intrinsic, + camera_params.extrinsic, + ) + pcd = volume.extract_point_cloud() + if args.debug: + print("Visualizing integrated point cloud [quit viewer to continue] ...") + o3d.visualization.draw_geometries([pcd]) + + else: + # convert RGB-D images to point clouds and visualize + print("Converting RGB-D images to point clouds ...") + pcds = [] + for rgbd_image, camera_params in tqdm( + zip(rgbd_images, camera_trajectory.parameters) + ): + pcd = o3d.geometry.PointCloud.create_from_rgbd_image( + rgbd_image, + camera_params.intrinsic, + camera_params.extrinsic, + ) + pcd = pcd.voxel_down_sample(voxel_size=0.04) + pcd.estimate_normals( + search_param=o3d.geometry.KDTreeSearchParamHybrid( + radius=0.05, max_nn=30 + ) + ) + pcd.orient_normals_towards_camera_location( + np.array(camera_params.extrinsic)[:3, 3] + ) + pcds.append(pcd) + + # combine point clouds naively + print("Combining point clouds ...") + pcd = o3d.geometry.PointCloud() + for _pcd in tqdm(pcds): + pcd += _pcd + del pcds + if args.debug: + print("Visualizing combined point cloud [quit viewer to continue] ...") + o3d.visualization.draw_geometries([pcd]) + + # remove point cloud outliers + pcd, _ = pcd.remove_radius_outlier(nb_points=500, radius=0.05 * 5) + pcd, _ = pcd.remove_statistical_outlier(nb_neighbors=500, std_ratio=1.0) + pcd.orient_normals_consistent_tangent_plane(50) + if args.debug: + print("Visualizing simplified point cloud [quit viewer to continue] ...") + o3d.visualization.draw_geometries([pcd], point_show_normal=True) + + # create mesh by Poisson surface reconstruction + print("Running Poisson surface reconstruction ...") + mesh, densities = o3d.geometry.TriangleMesh.create_from_point_cloud_poisson( + pcd, depth=7 + ) + if args.debug: + print( + "Visualizing Poisson surface reconstruction [quit viewer to continue] ..." + ) + o3d.visualization.draw_geometries([mesh]) + + # remove low density vertices from mesh + print("Remove low density vertices ...") + vertices_to_remove = densities < np.quantile(densities, 0.01) + mesh.remove_vertices_by_mask(vertices_to_remove) + if args.debug: + print( + "Visualizing mesh after removing low density vertices [quit viewer to continue] ..." + ) + o3d.visualization.draw_geometries([mesh]) + + # lightly smooth mesh + mesh = mesh.filter_smooth_taubin( + number_of_iterations=10, lambda_filter=0.2, mu=-0.21 + ) + +# otherwise, load existing mesh +else: + print(f"Loading existing mesh from {args.texture_existing_mesh} ...") + mesh = o3d.io.read_triangle_mesh(str(args.texture_existing_mesh)) + +# remove duplicated triangles and vertices +print("Removing duplicated triangles and vertices ...") +mesh = mesh.remove_duplicated_triangles() +mesh = mesh.remove_duplicated_vertices() + +# remove non-manifold edges +print("Removing non-manifold edges ...") +max_repair_attempts = 3 +for _ in range(max_repair_attempts): + # check if mesh is manifold + if mesh.is_edge_manifold() and mesh.is_vertex_manifold(): + break + else: + print("\tMesh is not manifold, attempting to repair ...") + + # remove clusters disconnected from the primary mesh + cluster_idx_per_triangle, num_triangles_per_cluster, _ = map( + np.asarray, mesh.cluster_connected_triangles() + ) + triangles_to_remove = ( + num_triangles_per_cluster[cluster_idx_per_triangle] + < num_triangles_per_cluster.max() + ) + mesh.remove_triangles_by_mask(triangles_to_remove) + + # apply various mesh repair operations + mesh = mesh.remove_unreferenced_vertices() + mesh = mesh.remove_degenerate_triangles() + + # remove non-manifold edges + mesh = mesh.remove_non_manifold_edges() + +else: + if not (mesh.is_edge_manifold() and mesh.is_vertex_manifold()): + print("Unable to remove all non-manifold edges ...") + +# subdivide mesh to increase resolution before color mapping +print("Subdividing mesh ...") +mesh = mesh.subdivide_loop(number_of_iterations=args.subdivision_iterations) +print(mesh) + +# run color map pipeline +print("Running color map pipeline ...") +mesh, camera_trajectory = o3d.pipelines.color_map.run_non_rigid_optimizer( + mesh, + rgbd_images, + camera_trajectory, + o3d.pipelines.color_map.NonRigidOptimizerOption( + maximum_iteration=50, + maximum_allowable_depth=10.0, + ), +) +if args.debug: + print("Visualizing camera trajectory [quit viewer to continue] ...") + o3d.visualization.draw_geometries([mesh]) + +# output mesh with vertex colors, if requested +if args.colored_mesh_output_fn: + print(f"Saving mesh with vertex colors to {args.colored_mesh_output_fn} ...") + o3d.io.write_triangle_mesh( + str(args.colored_mesh_output_fn), + mesh, + ) + +# create texture map +print("Creating texture map ...") +mesh = o3d.t.geometry.TriangleMesh.from_legacy(mesh) +mesh.compute_vertex_normals() +mesh.compute_uvatlas() +mesh.vertex["diffuse"] = mesh.vertex.colors +mesh.material.set_default_properties() +texture_tensors = mesh.bake_vertex_attr_textures(1024, {"diffuse"}) +if args.debug: + print("Visualizing texture map [quit viewer to continue] ...") + o3d.visualization.draw([mesh]) + +# export texture map +print("Exporting texture map ...") +output_fn_texture = args.output_mesh_fn.with_suffix(".png") +texture_diffuse = texture_tensors["diffuse"].numpy() +texture_diffuse = (texture_diffuse * 255).astype(np.uint8) +texture_diffuse = cv2.cvtColor(texture_diffuse, cv2.COLOR_RGB2BGR) +cv2.imwrite( + str(output_fn_texture), + texture_diffuse, +) + +# export OBJ mesh +if args.export_obj: + print("Exporting OBJ mesh ...") + del mesh.triangle.normals # OBJ doesn't support triangle normals + del mesh.vertex.colors # only use texture map for color + output_fn_obj = args.output_mesh_fn.with_suffix(".obj") + o3d.t.io.write_triangle_mesh( + str(output_fn_obj), + mesh, + write_triangle_uvs=True, + ) + print(f"Exported mesh to {output_fn_obj}") + + # add reference to texture image within .mtl file + output_fn_mtl = output_fn_obj.with_suffix(".mtl") + with open(output_fn_mtl, "a") as f: + f.write(f"map_Kd {output_fn_texture.name}\n") + print(f"Appended texture map to {output_fn_mtl}") + +# export mesh in PLY format +print("Exporting mesh in PLY format ...") +output_fn_ply = args.output_mesh_fn.with_suffix(".ply") +inout.save_ply2( + output_fn_ply, + mesh.vertex.positions.numpy(), + pts_colors=None, + pts_normals=mesh.vertex.normals.numpy(), + faces=mesh.triangle.indices.numpy(), + texture_uv=None, + texture_uv_face=mesh.triangle.texture_uvs.numpy().reshape(-1, 6), + texture_file=output_fn_texture.name, + extra_header_comments=None, +) +print(f"Exported mesh to {output_fn_ply}") + +# done +print("Done.") diff --git a/scripts/utils.sh b/scripts/utils.sh new file mode 100644 index 0000000..68382cb --- /dev/null +++ b/scripts/utils.sh @@ -0,0 +1,77 @@ +# Copyright (c) 2024, NVIDIA CORPORATION. All rights reserved. +# +# NVIDIA CORPORATION and its licensors retain all intellectual property +# and proprietary rights in and to this software, related documentation +# and any modifications thereto. Any use, reproduction, disclosure or +# distribution of this software and related documentation without an express +# license agreement from NVIDIA CORPORATION is strictly prohibited. + + +# Get stacktrace (from https://gist.github.com/akostadinov/33bb2606afe1b334169dfbf202991d36) +function stack_trace() { + local -a stack=("Bash Traceback:") + local stack_size=${#FUNCNAME[@]} + local -i i + # we start with 2 to skip the stack trace function and the error handler function + SKIP=2 + for (( i = $SKIP; i < stack_size; i++ )); do + local func="${FUNCNAME[$i]:-(top level)}" + local -i line="${BASH_LINENO[$(( i - 1 ))]}" + local src="${BASH_SOURCE[$i]:-(no file)}" + stack+=(" ($(( i - $SKIP ))) $func $src:$line") + done + (IFS=$'\n'; echo "${stack[*]}") +} + +# Function to exit with generic error message +function exit_with_error { + # call error function with predefined message + error "Error in previous command. Exiting." +} + +# Function to exit with error message and stack trace +function error { + # print input with ansi codes for bold and red color + echo -e "\033[1m\033[38;5;160m$*\033[0m" + echo -e "\033[1m\033[38;5;160m`stack_trace`\033[0m" + exit 1 +} + +# Function to print headers +function header { + # print input with ansi codes for green color and horizontal rule + terminal_width=$(tput cols) + input_width=$((${#1} + 2)) # compute input width mod terminal width + input_width=$((input_width % terminal_width)) + padding=$(( (terminal_width - input_width) / 2 )) + padding=$(($padding < 0 ? $terminal_width : $padding)) + rule_char="─" + rule=`printf "%${padding}s" | sed "s/ /$rule_char/g"` + echo + echo -e "\033[32m$rule $1 $rule\033[0m" + echo +} + +# Function to print info +function info { + # print timestamp and input + echo "`timestamp` $*" && echo +} + +# Function to format paths for printing +function path { + # print input with ansi codes for steel blue color + echo -e "\033[94m$1\033[0m" +} + +# Function to print commands +function cmd { + # print input with ansi codes for steel blue color and padding on the left + echo -e "\033[94m $*\033[0m" +} + +# Function to generate formatted timestamp for printing +function timestamp { + # print timestamp with ansi codes for italics and bright black color + echo -e "\033[3m\033[90m[`date +'%Y-%m-%d %H:%M:%S'`]\033[0m" +}

`zL(~!SKpJ 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 UjawVc?TVi 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 >V_9I-QP-k>PSu-A)OVhU zo1-fv^y2fs6!O?@iZiqw&h_u#qF5kNUO3;0K-w9WVPY>sv9ji7@R5T2>|8jO_7uaQ zaiK)K)r}21ap8v75R>runq<$?u8T}+MG5*hN-I9X$M1FUC`PrE(L;oh0{$2?aV&Xw z&X)@&x>@sg8jGH!99KgW?7K%9`gF8KNACQI?Hcwst?_BF=WJ-#n}HEi;w*cz-7lT3 za&J!bPpv=Ht61N!Or+9!5v3Ga1?#6v6Q^T48x3T6$<{x5p#M5{JafZWOl8Wyv0>2OTkqYY6986LQCLr?r_6fC z?!jpU;8DH#U@P9jiEG9X0*QlBGAG>sDMTK56~HZytf4`Ks$fv8;-&} z{hega>JTMHH|;Ilx8-NmV3|KZO+P50)tYsr#-WJT09vDvA4VHBXLs-;tw@#GsuUOM z6TbgYius4zRaLsynIeE9?520 zw-5>|z08fZ@#Zt=W5?@-&W^B5W*_F@&mK;6-{2S9R1qxa%!%2*YD$snFuw;MCfIhc zq_*`Q=cX5Cy1Im7hcZJV#~(F^ktg^5ca#*E2je4IdA74&-G^8SD}&PH2y18nf!<>A zT%!}6GLIu5=Nql&uHwN_N-@L8lM%8^v+Do#=Ed~;Q5H*wB!sS6Bvo4Rg8i}p&V)_F zJh!!+a2@Srudyc0e3?S}iVc*?Ew1jd7hgmdmU|monCqgmz%q9Z=70XQT}ML6V4M~_ z|KUs6G_-3b-CZK9W{)~n0+b!>WXmMDqMe;DylAwsMM+9(+meTQnY=4Xjlax>OU+`X zq(>RBXGZcPa^@VQ*7RSm0Y$;XpGp`fUgWt(Y=zPF9?(}|6YhvN$lxK0yGYqNbOFc_e3*wkq zm@SN2PovjJYft6kvr=K=`4GR#nc^zb-%WNl{`cu5jYC&N(2m)_kaY}~04oXmVFgrb zpQKnJ@49D4!yrkl`FY0NxH`{9mLY;j;Lo}IW(ymGyC%Te?M#X~x}Vl#K@H9ykrJ&j zjEA&c`mB2x&}BojbE9Z*qjG5I!cddVQs{}UjWi>-Nt=4mm>q;?O^(H5M?)lhLuG>) zlhn~h^*E|H;@2?9CDa4k{%U9Yi?OcvjfkF@W%M+Ugb3atT53RZc1cPA0XBSJFUZc0 zHT~b6k)sZSA~Qz3d+}n@dr6BfFy>{fG>No5WRpM!rjcKaw1CHvJ={g!$PkYdu4$AP zL(G&ejd}7fdDegCTJ5Uk77?Q!dt@DQ329H7EjYL2Y& z!eb2UkFERiJaPE2USZE`6In@tUHC2mwn4U&3g=%>JBysKACP;6Wp!9zQ{gNACs`Rz zlAJ2nte(M5ue;${do2Tdfn(u02iUR8bszIvKxH8a*$AR7k36j!tg! zmHH+vR(Sk&e5Zc1&B*C(9z)*ImxQSo&2VgD0T-|21I>ICT{NZdS_$YPTcg*SfN_DK zX_I_F9LPE7q4kkgex57T^l+Bn;8!IX99-M%%>%5q>30N7E(!*F@3YYS}G+7(tT4Rf@ZCSXMp#3}uS=xNMyzu2I zY3R8;$4v8DOACt`nZZWN!;bπb18@i7<8R*~=0B^D3tVne&B>hE<|EIqpmaT6jG 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