trap/test_trajectron_maps.ipynb

293 lines
53 KiB
Text
Raw Normal View History

{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Trajectron seems to support providing a map for a scene. This might be a way to get better predictions, that actually stay on the pathways instead of go through buildings. However, by default it supports maps from NuScenes, but not images (even though some traces of that remain in the code.) More info about support in trajectron is in [issue #14](https://github.com/StanfordASL/Trajectron-plus-plus/issues/14) on their Github.\n",
"\n",
"This notebook is used to test my implementation to add map support to Trajectron."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"CHANGELOG:\n",
"\n",
"* 2024-12-27 : Created\n",
" * Draw the map image\n",
" * Training _sometimes_ (randomly?) gives NaN matrixes since using map encoding.\n",
" * Call Image map and test if converted points of all tracks fall within realistic image bounds (e.g. no negative points)\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"from pathlib import Path\n",
"from trap.frame_emitter import Camera\n",
"from trap.utils import ImageMap\n",
"import cv2\n",
"import matplotlib.pyplot as plt\n",
"import numpy as np\n",
"\n",
"calibration_path = Path(\"../DATASETS/hof3/calibration.json\")\n",
"homography_path = Path(\"../DATASETS/hof3/homography.json\")\n",
"\n",
"camera = Camera.from_paths(calibration_path, homography_path, 12)\n"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.image.AxesImage at 0x7f1e2b3c6050>"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"image_path = Path(\"../DATASETS/hof3/map-undistorted-H.png\")\n",
"\n",
"imgmap = ImageMap(image_path, None, \"hof3-undistorted-H\")\n",
"\n",
"plt.imshow(cv2.imread(image_path))\n"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [],
"source": [
"\n",
"path = Path(\"EXPERIMENTS/raw/hof3/\")\n",
"calibration_path = Path(\"../DATASETS/hof3/calibration.json\")\n",
"homography_path = Path(\"../DATASETS/hof3/homography.json\")\n",
"\n",
"camera = Camera.from_paths(calibration_path, homography_path, 12)\n",
"\n",
"imgmap = ImageMap(image_path, None, \"hof3-undistorted\")\n"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"\n",
"img = imgmap.as_image()"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.image.AxesImage at 0x7f1e30811b70>"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"\n",
"img = np.flipud(img)\n",
"plt.imshow(img)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"from trap.tracker import TrackReader\n",
"\n",
"\n",
"reader = TrackReader(path, camera.fps, exclude_whitelisted = False, include_blacklisted=False)"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [],
"source": [
"\n",
"from typing import List\n",
"from trap.frame_emitter import Track\n",
"from trap.tracker import FinalDisplacementFilter\n",
"\n",
"\n",
"tracks: List[Track] = [t for t in reader]\n",
"filter = FinalDisplacementFilter(2)\n",
"tracks = filter.apply(tracks, camera)"
]
},
{
"cell_type": "code",
"execution_count": 37,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[[ 12.247 6.8275]\n",
" [ 12.416 6.5942]\n",
" [ 12.528 6.5035]\n",
" [ 12.594 6.4782]\n",
" [ 12.631 6.477]\n",
" [ 12.66 6.424]\n",
" [ 12.706 6.369]\n",
" [ 12.785 6.2094]\n",
" [ 12.849 6.0079]\n",
" [ 12.919 5.7624]\n",
" [ 12.954 5.6717]\n",
" [ 12.979 5.6476]\n",
" [ 12.985 5.613]\n",
" [ 13.027 5.4535]\n",
" [ 13.072 5.2315]\n",
" [ 13.129 4.995]\n",
" [ 13.159 4.894]\n",
" [ 13.167 4.8371]\n",
" [ 13.163 4.8151]\n",
" [ 13.174 4.7545]\n",
" [ 13.2 4.5546]\n",
" [ 13.237 4.2617]\n",
" [ 13.241 4.165]\n",
" [ 13.242 4.1164]\n",
" [ 13.233 4.1089]\n",
" [ 13.238 4.0344]\n",
" [ 13.24 3.967]\n",
" [ 13.318 3.5567]\n",
" [ 13.329 3.4015]\n",
" [ 13.344 3.3385]\n",
" [ 13.357 3.3064]\n",
" [ 13.331 3.3068]\n",
" [ 13.298 3.0786]\n",
" [ 13.35 2.8114]\n",
" [ 13.364 2.6867]\n",
" [ 13.346 2.6791]\n",
" [ 13.326 2.6335]] [[1224 682]\n",
" [1241 659]\n",
" [1252 650]\n",
" [1259 647]\n",
" [1263 647]\n",
" [1266 642]\n",
" [1270 636]\n",
" [1278 620]\n",
" [1284 600]\n",
" [1291 576]\n",
" [1295 567]\n",
" [1297 564]\n",
" [1298 561]\n",
" [1302 545]\n",
" [1307 523]\n",
" [1312 499]\n",
" [1315 489]\n",
" [1316 483]\n",
" [1316 481]\n",
" [1317 475]\n",
" [1319 455]\n",
" [1323 426]\n",
" [1324 416]\n",
" [1324 411]\n",
" [1323 410]\n",
" [1323 403]\n",
" [1324 396]\n",
" [1331 355]\n",
" [1332 340]\n",
" [1334 333]\n",
" [1335 330]\n",
" [1333 330]\n",
" [1329 307]\n",
" [1334 281]\n",
" [1336 268]\n",
" [1334 267]\n",
" [1332 263]]\n"
]
}
],
"source": [
"# track = tracks[0]\n",
"for track in tracks:\n",
" history = track.get_projected_history(None, camera)\n",
" points = imgmap.to_map_points(history)\n",
" print(history, points)\n",
" if not ((points[:,0] > 0 ) & (points[:,0] < 2440) & (points[:,1] > 0) & (points[:,1] < 1440)).all():\n",
" print(\"not all points between limits\")\n",
" print(points)\n",
" break\n",
"\n",
"# track.to_trajectron_node(camera, env)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": ".venv",
"language": "python",
"name": "python3"
},
"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.10.4"
}
},
"nbformat": 4,
"nbformat_minor": 2
}