{"cells":[{"metadata":{},"cell_type":"markdown","source":"This notebook shows some of the visulisation utility of Lyft l5 toolkit.\n\nThe core packages for visualisation are:\n\n* 1.rasterization\n* 2.visualization\n\nAlong with the information regarding Maps that Lyft uses for Motion planning\n","execution_count":null},{"metadata":{"_uuid":"d629ff2d2480ee46fbb7e2d37f6b5fab8052498a","_cell_guid":"79c7e3d0-c299-4dcb-8224-4455121ee9b0","trusted":true},"cell_type":"code","source":"!pip install --upgrade pip\n!pip install pymap3d==2.1.0\n!pip install -U l5kit\n","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"Rasterisation is the task of taking an image described in a vector graphics format and converting it into a raster image.\n\n* BoxRasterizer: this object renders agents (e.g. vehicles or pedestrians) as oriented 2D boxes\n* SatelliteRasterizer: this object renders an oriented crop from a satellite map","execution_count":null},{"metadata":{},"cell_type":"markdown","source":"# These HD maps need to represent the world at an unprecedented centimeter resolution, which is one to two orders of magnitude greater than the roughly meter level resolution that web map services offer today.","execution_count":null},{"metadata":{},"cell_type":"markdown","source":"# HD MAP Principles:\n1.**Mapping as pre-computation** :  Perception and localization of static objects in the world such as roads, intersections, street signs, etc. can be solved offline and in a highly accurate manner .This are some of the things that could be precomputed before the AV starts driving.\n\n2.**Mapping to improve safety**: Level 5 HD maps are designed not only to contain speed limit information for each lane segment, but also speed profiles derived from actual human drivers on the Lyft network that meet our high bar for safety.\n\n3.**Map as a unique sensor**: Viewing the map as yet another sensor allows us to design efficient map access patterns and integrate map data more naturally into the autonomy stack (e.g. sensor-fusion components).\n\n4.**Map as global shared state:** The map then becomes a shared data structure that lives both in the cloud and also docked in each of the AVs. AVs use the map to both read and write to this social memory.\n","execution_count":null},{"metadata":{},"cell_type":"markdown","source":"# # Layering In HD Maps:\n","execution_count":null},{"metadata":{},"cell_type":"markdown","source":"![1_novXPga1nTb5aI1g9_-ReQ.png](attachment:1_novXPga1nTb5aI1g9_-ReQ.png)","attachments":{"1_novXPga1nTb5aI1g9_-ReQ.png":{"image/png":"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"}},"execution_count":null},{"metadata":{},"cell_type":"markdown","source":"# Four noteworthy HD layers are: \n1. The geometric map : The geometric map layer contains 3D information of the world. This information is organized in very high detail to support precise calculations. The ground map is key for aligning the subsequent layers of the map, such as the semantic map.\n\n2. The semantic map : Semantic objects include various traffic 2D and 3D objects such as lane boundaries, intersections, crosswalks, parking spots, stop signs, traffic lights, etc. that are used for driving safely. These objects contain rich metadata associated with them such as speed limits and turn restrictions for lanes. \n\n3. Map priors :The map priors layer contains derived information about dynamic elements and also human driving behavior. Information here can pertain to both semantic and geometric parts of the map\n\n4. Real-time knowledge:The real-time layer is the top most layer in the map and is designed to be read/write capable. This is the only layer in the map designed to be updated while the map is in use by the AV serving a ride\n\nSource  : https://medium.com/lyftlevel5/https-medium-com-lyftlevel5-rethinking-maps-for-self-driving-a147c24758d6\n\n\n","execution_count":null},{"metadata":{"trusted":true},"cell_type":"code","source":"import l5kit, os\nimport matplotlib.pyplot as plt\nimport numpy as np\nfrom l5kit.data import ChunkedDataset, LocalDataManager\nfrom l5kit.dataset import EgoDataset, AgentDataset\nfrom l5kit.rasterization import build_rasterizer\nfrom l5kit.configs import load_config_data\nfrom l5kit.visualization import draw_trajectory, TARGET_POINTS_COLOR\nfrom l5kit.geometry import transform_points\nfrom tqdm import tqdm\nfrom collections import Counter\nfrom l5kit.data import PERCEPTION_LABELS\nfrom prettytable import PrettyTable\nfrom matplotlib import animation, rc\nfrom IPython.display import HTML\n","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"# Setup Environment Variable and Configs:\n\nIn this yaml file we have the necessary configs\n1. Model Params\n2. Input Image Raster Params\n3. The DataLoader params\n","execution_count":null},{"metadata":{"trusted":true},"cell_type":"code","source":"os.environ[\"L5KIT_DATA_FOLDER\"] = \"../input/lyft-motion-prediction-autonomous-vehicles\"\ncfg = load_config_data(\"../input/lyft-config-files/visualisation_config.yaml\")","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"# DATA LOADING :\n\nLocalDataManager object resolves**** relative paths from the config using the L5KIT_DATA_FOLDER env variable we have just set.","execution_count":null},{"metadata":{"trusted":true},"cell_type":"code","source":"dm = LocalDataManager()\ndataset_path = dm.require(cfg[\"val_data_loader\"][\"key\"])\nzarr_dataset = ChunkedDataset(dataset_path)\nzarr_dataset.open()\nprint(zarr_dataset)","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"# The Exploration of individual Images would help us to gain more insights into the data\n1. Trajectory Of AV\n2. Satellite View\n3. Semantic Veiw\n\n","execution_count":null},{"metadata":{"trusted":true},"cell_type":"code","source":"data = dataset[50]\n\nim = data[\"image\"].transpose(1, 2, 0)\nim = dataset.rasterizer.to_rgb(im)\ntarget_positions_pixels = transform_points(data[\"target_positions\"] + data[\"centroid\"][:2], data[\"world_to_image\"])\ndraw_trajectory(im, target_positions_pixels, data[\"target_yaws\"], TARGET_POINTS_COLOR)\n\nplt.imshow(im[::-1])\nplt.show()","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"This shows the way to visualize a sample from our dataset\n\nWe use Rasterizer to get an rgb format and then plot .\n\nThe target positions can be changed with the pixel co-ordinates necssary for knowing the ground truth.\n","execution_count":null},{"metadata":{"trusted":true},"cell_type":"code","source":"cfg[\"raster_params\"][\"map_type\"] = \"py_semantic\"\nrast = build_rasterizer(cfg, dm)\ndataset = EgoDataset(cfg, zarr_dataset, rast)\ndata = dataset[50]\n\nim = data[\"image\"].transpose(1, 2, 0)\nim = dataset.rasterizer.to_rgb(im)\ntarget_positions_pixels = transform_points(data[\"target_positions\"] + data[\"centroid\"][:2], data[\"world_to_image\"])\ndraw_trajectory(im, target_positions_pixels, data[\"target_yaws\"], TARGET_POINTS_COLOR)\n\nplt.imshow(im[::-1])\nplt.show()","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"The green blob represents the AV's motion, and we would require to predict the movement of the AV in these traffic conditions as a sample.","execution_count":null},{"metadata":{"trusted":true},"cell_type":"code","source":"cfg[\"raster_params\"][\"map_type\"] = \"py_satellite\"\nrast = build_rasterizer(cfg, dm)\ndataset = EgoDataset(cfg, zarr_dataset, rast)\ndata = dataset[50]\n\nim = data[\"image\"].transpose(1, 2, 0)\nim = dataset.rasterizer.to_rgb(im)\ntarget_positions_pixels = transform_points(data[\"target_positions\"] + data[\"centroid\"][:2], data[\"world_to_image\"])\ndraw_trajectory(im, target_positions_pixels, data[\"target_yaws\"], TARGET_POINTS_COLOR)\n\nplt.imshow(im[::-1])\nplt.show()","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"# Satellite View\nThis is the Satellite View of the Scene .  Where the Pink Trajectory seems to be the line of motion ie the expected trajectory of the AV","execution_count":null},{"metadata":{"trusted":true},"cell_type":"code","source":"from IPython.display import display, clear_output\nimport PIL\n \ncfg[\"raster_params\"][\"map_type\"] = \"py_satellite\"\nrast = build_rasterizer(cfg, dm)\ndataset = EgoDataset(cfg, zarr_dataset, rast)\nscene_idx = 2\nindexes = dataset.get_scene_indices(scene_idx)\nimages = []\n\nfor idx in indexes:\n    \n    data = dataset[idx]\n    im = data[\"image\"].transpose(1, 2, 0)\n    im = dataset.rasterizer.to_rgb(im)\n    target_positions_pixels = transform_points(data[\"target_positions\"] + data[\"centroid\"][:2], data[\"world_to_image\"])\n    center_in_pixels = np.asarray(cfg[\"raster_params\"][\"ego_center\"]) * cfg[\"raster_params\"][\"raster_size\"]\n    draw_trajectory(im, target_positions_pixels, data[\"target_yaws\"], TARGET_POINTS_COLOR)\n    clear_output(wait=True)\n    display(PIL.Image.fromarray(im[::-1]))","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"Analysis:\nThe Green Blob is our Autonomous vechicle\nI think that the Blue Blobs are the Path to be taken by our vehicle . As we are able to generate the path for our movement this will help to tackle obstacle in a better way","execution_count":null},{"metadata":{},"cell_type":"markdown","source":"# Semantic View\nTHis is the Semantic view of the scene","execution_count":null},{"metadata":{"trusted":true},"cell_type":"code","source":"import numpy as np\nfrom IPython.display import display, clear_output\nimport PIL\n \ncfg[\"raster_params\"][\"map_type\"] = \"py_semantic\"\nrast = build_rasterizer(cfg, dm)\ndataset = EgoDataset(cfg, zarr_dataset, rast)\nscene_idx = 2\nindexes = dataset.get_scene_indices(scene_idx)\nimages = []\n\nfor idx in indexes:\n    \n    data = dataset[idx]\n    im = data[\"image\"].transpose(1, 2, 0)\n    im = dataset.rasterizer.to_rgb(im)\n    target_positions_pixels = transform_points(data[\"target_positions\"] + data[\"centroid\"][:2], data[\"world_to_image\"])\n    center_in_pixels = np.asarray(cfg[\"raster_params\"][\"ego_center\"]) * cfg[\"raster_params\"][\"raster_size\"]\n    draw_trajectory(im, target_positions_pixels, data[\"target_yaws\"], TARGET_POINTS_COLOR)\n    clear_output(wait=True)\n    display(PIL.Image.fromarray(im[::-1]))","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"Analysis:\nIntersection of 4 road would be seen . \nThe yellow Lines are the various Lanes possible .\nMaybe the red Path indicates the various Trajectories possible for our AV to take.\n","execution_count":null},{"metadata":{},"cell_type":"markdown","source":"# Entire Motion \nEntire Motion of the Av wrt other vehicles and its trajectory planning would be seen from this.","execution_count":null},{"metadata":{"trusted":true},"cell_type":"code","source":"from IPython.display import display, clear_output\nfrom IPython.display import HTML\n\nimport PIL\nimport matplotlib.pyplot as plt\nfrom matplotlib import animation, rc\ndef animate_solution(images):\n\n    def animate(i):\n        im.set_data(images[i])\n \n    fig, ax = plt.subplots()\n    im = ax.imshow(images[0])\n    \n    return animation.FuncAnimation(fig, animate, frames=len(images), interval=60)\ncfg[\"raster_params\"][\"map_type\"] = \"py_satellite\"\nrast = build_rasterizer(cfg, dm)\ndataset = EgoDataset(cfg, zarr_dataset, rast)\nscene_idx = 34\nindexes = dataset.get_scene_indices(scene_idx)\nimages = []\n\nfor idx in indexes:\n    \n    data = dataset[idx]\n    im = data[\"image\"].transpose(1, 2, 0)\n    im = dataset.rasterizer.to_rgb(im)\n    target_positions_pixels = transform_points(data[\"target_positions\"] + data[\"centroid\"][:2], data[\"world_to_image\"])\n    center_in_pixels = np.asarray(cfg[\"raster_params\"][\"ego_center\"]) * cfg[\"raster_params\"][\"raster_size\"]\n    draw_trajectory(im, target_positions_pixels, data[\"target_yaws\"], TARGET_POINTS_COLOR)\n    clear_output(wait=True)\n    images.append(PIL.Image.fromarray(im[::-1]))\nanim = animate_solution(images)\nHTML(anim.to_jshtml())","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"Analysis:\nThis Shows the real time ( actual path planning done by Autonomous vehicle ) . With Blue being the possible Paths to take.","execution_count":null},{"metadata":{},"cell_type":"markdown","source":"Additional Sources and Info :\nhttps://medium.com/lyftlevel5/continued-momentum-through-simulation-8b9a8df79f3b\n\nhttps://github.com/lyft/l5kit/\n\nhttps://medium.com/lyftlevel5/lyfts-approach-to-autonomous-vehicle-safety-fc771ed25786\n\nhttps://github.com/lyft/l5kit/tree/master/examples/visualisation\n\nhttps://arxiv.org/pdf/1912.11676.pdf\n\nThankyou For reading !!","execution_count":null}],"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"pygments_lexer":"ipython3","nbconvert_exporter":"python","version":"3.6.4","file_extension":".py","codemirror_mode":{"name":"ipython","version":3},"name":"python","mimetype":"text/x-python"}},"nbformat":4,"nbformat_minor":4}