You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

157 lines
2.2 MiB

{
"metadata": {
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.8.8-final"
},
"orig_nbformat": 2,
"kernelspec": {
"name": "python388jvsc74a57bd0e2d1507a0fcefcbd70c2e8d5c2edae879585b2c8df0be6cdbe280bf251175c7f",
"display_name": "Python 3.8.8 64-bit ('loftr': conda)"
}
},
"nbformat": 4,
"nbformat_minor": 2,
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"%load_ext autoreload\n",
"%autoreload 2\n",
"%matplotlib inline\n",
"import os\n",
"os.chdir(\"..\")\n",
"\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"import cv2\n",
"from pathlib import Path\n",
"from src.utils.plotting import make_matching_figure, error_colormap"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"def make_prediction_and_evaluation_plot(root_dir, pe, path=None, source='ScanNet'):\n",
" img0 = cv2.imread(str(root_dir / pe['pair_names'][0]), cv2.IMREAD_GRAYSCALE)\n",
" img1 = cv2.imread(str(root_dir / pe['pair_names'][1]), cv2.IMREAD_GRAYSCALE)\n",
" if source == 'ScanNet':\n",
" img0 = cv2.resize(img0, (640, 480))\n",
" img1 = cv2.resize(img1, (640, 480))\n",
"\n",
" thr = 5e-4\n",
" mkpts0 = pe['mkpts0_f']\n",
" mkpts1 = pe['mkpts1_f']\n",
" color = error_colormap(pe['epi_errs'], thr, alpha=0.3)\n",
"\n",
" text = [\n",
" f\"LoFTR\",\n",
" f\"#Matches: {len(mkpts0)}\",\n",
" f\"$\\\\Delta$R:{pe['R_errs']:.2f}°, $\\\\Delta$t:{pe['t_errs']:.2f}°\",\n",
" ]\n",
"\n",
" if path:\n",
" make_matching_figure(img0, img1, mkpts0, mkpts1, color, text, path)\n",
" else:\n",
" return make_matching_figure(img0, img1, mkpts0, mkpts1, color, text)"
]
},
{
"source": [
"## Visualization on ScanNet\n",
"- Prediction and Evaluation"
],
"cell_type": "markdown",
"metadata": {}
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"root_dir = Path(\"/data/scannet/scannet_test_1500\") # Scannet\n",
"npy_path = \"dump/loftr_ds_indoor/LoFTR_pred_eval.npy\"\n",
"dumps = np.load(npy_path, allow_pickle=True)"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": "<Figure size 750x450 with 2 Axes>",
"image/svg+xml": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\n<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n<svg height=\"273.15pt\" version=\"1.1\" viewBox=\"0 0 714.4 273.15\" width=\"714.4pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n <metadata>\n <rdf:RDF xmlns:cc=\"http://creativecommons.org/ns#\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\">\n <cc:Work>\n <dc:type rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\"/>\n <dc:date>2021-04-06T13:59:32.371950</dc:date>\n <dc:format>image/svg+xml</dc:format>\n <dc:creator>\n <cc:Agent>\n <dc:title>Matplotlib v3.4.1, https://matplotlib.org/</dc:title>\n </cc:Agent>\n </dc:creator>\n </cc:Work>\n </rdf:RDF>\n </metadata>\n <defs>\n <style type=\"text/css\">*{stroke-linecap:butt;stroke-linejoin:round;}</style>\n </defs>\n <g id=\"figure_1\">\n <g id=\"patch_1\">\n <path d=\"M 0 273.15 \nL 714.4 273.15 \nL 714.4 0 \nL 0 0 \nz\n\" style=\"fill:none;\"/>\n </g>\n <g id=\"axes_1\">\n <g id=\"patch_2\">\n <path d=\"M 7.2 265.95 \nL 352.2 265.95 \nL 352.2 7.2 \nL 7.2 7.2 \nz\n\" style=\"fill:#ffffff;\"/>\n </g>\n <g clip-path=\"url(#p303283995a)\">\n <image height=\"259.2\" id=\"image6bdcd4a73f\" transform=\"scale(1 -1)translate(0 -259.2)\" width=\"345.6\" x=\"7.2\" xlink:href=\"data:image/png;base64,\n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
"image/png": "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
},
"metadata": {}
}
],
"source": [
"fig = make_prediction_and_evaluation_plot(root_dir, dumps[2], source='ScanNet')"
]
},
{
"source": [
"## Visualization on MegaDepth\n",
"- Prediction and Evaluation"
],
"cell_type": "markdown",
"metadata": {}
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"root_dir = Path(\"/data/MegaDepth\") # MegaDepth\n",
"npy_path = \"dump/loftr_ds_outdoor/LoFTR_pred_eval.npy\"\n",
"dumps = np.load(npy_path, allow_pickle=True)"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": "<Figure size 750x450 with 2 Axes>",
"image/svg+xml": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\n<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n<svg height=\"273.082565pt\" version=\"1.1\" viewBox=\"0 0 714.4 273.082565\" width=\"714.4pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n <metadata>\n <rdf:RDF xmlns:cc=\"http://creativecommons.org/ns#\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\">\n <cc:Work>\n <dc:type rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\"/>\n <dc:date>2021-04-06T13:59:34.093609</dc:date>\n <dc:format>image/svg+xml</dc:format>\n <dc:creator>\n <cc:Agent>\n <dc:title>Matplotlib v3.4.1, https://matplotlib.org/</dc:title>\n </cc:Agent>\n </dc:creator>\n </cc:Work>\n </rdf:RDF>\n </metadata>\n <defs>\n <style type=\"text/css\">*{stroke-linecap:butt;stroke-linejoin:round;}</style>\n </defs>\n <g id=\"figure_1\">\n <g id=\"patch_1\">\n <path d=\"M 0 273.082565 \nL 714.4 273.082565 \nL 714.4 0 \nL 0 0 \nz\n\" style=\"fill:none;\"/>\n </g>\n <g id=\"axes_1\">\n <g id=\"patch_2\">\n <path d=\"M 7.2 265.882565 \nL 352.2 265.882565 \nL 352.2 7.2 \nL 7.2 7.2 \nz\n\" style=\"fill:#ffffff;\"/>\n </g>\n <g clip-path=\"url(#p65ce5403eb)\">\n <image height=\"259.2\" id=\"image798fc3351a\" transform=\"scale(1 -1)translate(0 -259.2)\" width=\"345.6\" x=\"7.2\" xlink:href=\"data:image/png;base64,\n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
"image/png": "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
},
"metadata": {}
}
],
"source": [
"fig = make_prediction_and_evaluation_plot(root_dir, dumps[51], source='MegaDepth')"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
]
}