293 lines
53 KiB
Text
293 lines
53 KiB
Text
|
{
|
||
|
"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
|
||
|
}
|