{"id":13721852,"url":"https://github.com/vita-epfl/monoloco","last_synced_at":"2025-05-07T14:30:58.813Z","repository":{"id":35024144,"uuid":"186388906","full_name":"vita-epfl/monoloco","owner":"vita-epfl","description":"A 3D vision library from 2D keypoints: monocular and stereo 3D detection for humans, social distancing, and body orientation.","archived":false,"fork":false,"pushed_at":"2022-05-24T13:19:05.000Z","size":109030,"stargazers_count":441,"open_issues_count":12,"forks_count":81,"subscribers_count":21,"default_branch":"main","last_synced_at":"2025-04-21T00:30:04.709Z","etag":null,"topics":["3d-deep-learning","3d-detection","3d-object-detection","3d-vision","computer-vision","covid-19","deep-learning","human-pose-estimation","iccv2019","icra2021","kitti-dataset","machine-learning","object-detection","openpifpaf","pifpaf","pose-estimation","pytorch","uncertainty"],"latest_commit_sha":null,"homepage":"https://vita.epfl.ch/monoloco","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vita-epfl.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-05-13T09:31:03.000Z","updated_at":"2025-04-15T08:23:38.000Z","dependencies_parsed_at":"2022-09-26T16:20:22.750Z","dependency_job_id":null,"html_url":"https://github.com/vita-epfl/monoloco","commit_stats":null,"previous_names":[],"tags_count":24,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vita-epfl%2Fmonoloco","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vita-epfl%2Fmonoloco/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vita-epfl%2Fmonoloco/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vita-epfl%2Fmonoloco/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vita-epfl","download_url":"https://codeload.github.com/vita-epfl/monoloco/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252895526,"owners_count":21821176,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["3d-deep-learning","3d-detection","3d-object-detection","3d-vision","computer-vision","covid-19","deep-learning","human-pose-estimation","iccv2019","icra2021","kitti-dataset","machine-learning","object-detection","openpifpaf","pifpaf","pose-estimation","pytorch","uncertainty"],"created_at":"2024-08-03T01:01:22.152Z","updated_at":"2025-05-07T14:30:53.796Z","avatar_url":"https://github.com/vita-epfl.png","language":"Python","funding_links":[],"categories":["Sensor Processing"],"sub_categories":["Image Processing"],"readme":"# Monoloco library  \u0026nbsp;\u0026nbsp;  [![Downloads](https://pepy.tech/badge/monoloco)](https://pepy.tech/project/monoloco)\nContinuously tested on Linux, MacOS and Windows: [![Tests](https://github.com/vita-epfl/monoloco/workflows/Tests/badge.svg)](https://github.com/vita-epfl/monoloco/actions?query=workflow%3ATests)\n\n\n\u003cimg src=\"docs/webcam.gif\" width=\"700\" alt=\"gif\" /\u003e\n\n\u003cbr /\u003e \n\u003cbr /\u003e \n\nThis library is based on three research projects for monocular/stereo 3D human localization (detection), body orientation, and social distancing. Check the __video teaser__ of the library on [__YouTube__](https://www.youtube.com/watch?v=O5zhzi8mwJ4). \n\n\n---\n\n\u003e __MonStereo: When Monocular and Stereo Meet at the Tail of 3D Human Localization__\u003cbr /\u003e \n\u003e _[L. Bertoni](https://scholar.google.com/citations?user=f-4YHeMAAAAJ\u0026hl=en), [S. Kreiss](https://www.svenkreiss.com), \n[T. Mordan](https://people.epfl.ch/taylor.mordan/?lang=en), [A. Alahi](https://scholar.google.com/citations?user=UIhXQ64AAAAJ\u0026hl=en)_, ICRA 2021 \u003cbr /\u003e \n__[Article](https://arxiv.org/abs/2008.10913)__  \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp;   __[Citation](#Citation)__  \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; __[Video](https://www.youtube.com/watch?v=pGssROjckHU)__\n     \n\u003cimg src=\"docs/out_000840_multi.jpg\" width=\"700\"/\u003e\n\n---\n\n\n\u003e __Perceiving Humans: from Monocular 3D Localization to Social Distancing__\u003cbr /\u003e\n\u003e _[L. Bertoni](https://scholar.google.com/citations?user=f-4YHeMAAAAJ\u0026hl=en), [S. Kreiss](https://www.svenkreiss.com), \n[A. Alahi](https://scholar.google.com/citations?user=UIhXQ64AAAAJ\u0026hl=en)_, T-ITS 2021 \u003cbr /\u003e \n__[Article](https://arxiv.org/abs/2009.00984)__ \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; __[Citation](#Citation)__ \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp;  \u0026nbsp; \u0026nbsp; \u0026nbsp; __[Video](https://www.youtube.com/watch?v=r32UxHFAJ2M)__ \n\n\u003cimg src=\"docs/social_distancing.jpg\" width=\"700\"/\u003e\n\n---\n\n\u003e __MonoLoco: Monocular 3D Pedestrian Localization and Uncertainty Estimation__\u003cbr /\u003e\n\u003e _[L. Bertoni](https://scholar.google.com/citations?user=f-4YHeMAAAAJ\u0026hl=en), [S. Kreiss](https://www.svenkreiss.com), [A.Alahi](https://scholar.google.com/citations?user=UIhXQ64AAAAJ\u0026hl=en)_, ICCV 2019 \u003cbr /\u003e \n__[Article](https://arxiv.org/abs/1906.06059)__ \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp;    __[Citation](#Citation)__ \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp;  __[Video](https://www.youtube.com/watch?v=ii0fqerQrec)__\n   \n\u003cimg src=\"docs/surf.jpg\" width=\"700\"/\u003e\n\n## Library Overview\nVisual illustration of the library components:\n\n\u003cimg src=\"docs/monoloco.gif\" width=\"700\" alt=\"gif\" /\u003e\n\n## License\nAll projects are built upon [Openpifpaf](https://github.com/vita-epfl/openpifpaf) for the 2D keypoints and share the AGPL Licence.\n\nThis software is also available for commercial licensing via the EPFL Technology Transfer\nOffice (https://tto.epfl.ch/, info.tto@epfl.ch).\n\n\n## Quick setup\nA GPU is not required, yet highly recommended for real-time performances. \n\nThe installation has been tested on OSX and Linux operating systems, with Python 3.6, 3.7, 3.8. \nPackages have been installed with pip and virtual environments.\n\nFor quick installation, do not clone this repository, make sure there is no folder named monoloco in your current directory, and run:\n\n```\npip3 install monoloco\n```\n\nFor development of the source code itself, you need to clone this repository and then:\n```\npip3 install sdist\ncd monoloco\npython3 setup.py sdist bdist_wheel\npip3 install -e .\n```\n\n### Interfaces\nAll the commands are run through a main file called `run.py` using subparsers.\nTo check all the options:\n\n* `python3 -m monoloco.run --help`\n* `python3 -m monoloco.run predict --help`\n* `python3 -m monoloco.run train --help`\n* `python3 -m monoloco.run eval --help`\n* `python3 -m monoloco.run prep --help`\n\nor check the file `monoloco/run.py`\n\n#  Predictions\n\nThe software receives an image (or an entire folder using glob expressions), \ncalls PifPaf for 2D human pose detection over the image\nand runs Monoloco++ or MonStereo for 3D localization \u0026/or social distancing \u0026/or orientation\n\n**Which Modality** \u003cbr /\u003e \nThe command `--mode` defines which network to run.\n\n- select `--mode mono` (default) to predict the 3D localization of all the humans from monocular image(s)\n- select `--mode stereo` for stereo images\n- select `--mode keypoints` if just interested in 2D keypoints from OpenPifPaf\n\nModels are downloaded automatically. To use a specific model, use the command `--model`. Additional models can be downloaded from [here](https://drive.google.com/drive/folders/1jZToVMBEZQMdLB5BAIq2CdCLP5kzNo9t?usp=sharing)\n\n**Which Visualization** \u003cbr /\u003e \n- select `--output_types multi` if you want to visualize both frontal view or bird's eye view in the same picture\n- select `--output_types bird front` if you want to different pictures for the two views or just one view\n- select `--output_types json` if you'd like the ouput json file\n\nIf you select `--mode keypoints`, use standard OpenPifPaf arguments\n\n**Focal Length and Camera Parameters** \u003cbr /\u003e \nAbsolute distances are affected by the camera intrinsic parameters. \nWhen processing KITTI images, the network uses the provided intrinsic matrix of the dataset. \nIn all the other cases, we use the parameters of nuScenes cameras, with \"1/1.8'' CMOS sensors of size 7.2 x 5.4 mm.\nThe default focal length is 5.7mm and this parameter can be modified using the argument `--focal`.\n\n\n## A) 3D Localization\n\n**Ground-truth comparison** \u003cbr /\u003e \nIf you provide a ground-truth json file to compare the predictions of the network,\n the script will match every detection using Intersection over Union metric. \n The ground truth file can be generated using the subparser `prep`, or directly downloaded from [Google Drive](https://drive.google.com/file/d/1e-wXTO460ip_Je2NdXojxrOrJ-Oirlgh/view?usp=sharing) \n and called it with the command `--path_gt`. \n\n\n**Monocular examples** \u003cbr\u003e\n\nFor an example image, run the following command:\n\n```sh\npython3 -m monoloco.run predict docs/002282.png \\\n--path_gt names-kitti-200615-1022.json \\\n-o \u003coutput directory\u003e \\\n--long-edge \u003crescale the image by providing dimension of long side\u003e \\\n--n_dropout \u003c50 to include epistemic uncertainty, 0 otherwise\u003e\n```\n\n![predict](docs/out_002282.png.multi.jpg)\n\nTo show all the instances estimated by MonoLoco add the argument `--show_all` to the above command.\n\n![predict_all](docs/out_002282.png.multi_all.jpg)\n\nIt is also possible to run [openpifpaf](https://github.com/vita-epfl/openpifpaf) directly\nby using `--mode keypoints`. All the other pifpaf arguments are also supported \nand can be checked with `python3 -m monoloco.run predict --help`.\n\n![predict](docs/out_002282_pifpaf.jpg)\n\n\n**Stereo Examples** \u003cbr /\u003e \nTo run MonStereo on stereo images, make sure the stereo pairs have the following name structure:\n- Left image: \\\u003cname\u003e.\\\u003cextension\u003e\n- Right image: \\\u003cname\u003e**_r**.\\\u003cextension\u003e\n\n(It does not matter the exact suffix as long as the images are ordered)\n\nYou can load one or more image pairs using glob expressions. For example:\n\n```sh\npython3 -m monoloco.run predict --mode stereo \\\n--glob docs/000840*.png \\\n --path_gt \u003cto match results with ground-truths\u003e \\\n -o data/output  --long-edge 2500\n ```\n \n![Crowded scene](docs/out_000840_multi.jpg)\n\n```sh\npython3 -m monoloco.run predict --glob docs/005523*.png \\\n--mode stereo \\\n--path_gt \u003cto match results with ground-truths\u003e \\\n-o data/output  --long-edge 2500 \\\n--instance-threshold 0.05 --seed-threshold 0.05\n ```\n\n![Occluded hard example](docs/out_005523.png.multi.jpg)\n\n## B) Social Distancing (and Talking activity)\nTo visualize social distancing compliance, simply add the argument `social_distance` to `--activities`. This visualization is not supported with a stereo camera.\nThreshold distance and radii (for F-formations) can be set using `--threshold-dist` and `--radii`, respectively.\n\nFor more info, run:\n`python3 -m monoloco.run predict --help`\n\n**Examples** \u003cbr\u003e\nAn example from the Collective Activity Dataset is provided below.\n\n\u003cimg src=\"docs/frame0032.jpg\" width=\"500\"/\u003e\n\nTo visualize social distancing run the below, command:\n\n```sh\npip3 install scipy\n```\n\n```sh\npython3 -m monoloco.run predict docs/frame0032.jpg \\\n--activities social_distance --output_types front bird \n```\n\n\u003cimg src=\"docs/out_frame0032_front_bird.jpg\" width=\"700\"/\u003e\n\n## C) Hand-raising detection\nTo detect raised hand, you can add the argument `--activities raise_hand` to the prediction command.\n\nFor example, the below image is obtained with:\n```sh\npython3 -m monoloco.run predict docs/raising_hand.jpg \\\n--activities raise_hand social_distance --output_types front\n```\n\n\u003cimg src=\"docs/out_raising_hand.jpg.front.jpg\" width=\"500\"/\u003e\n\nFor more info, run:\n`python3 -m monoloco.run predict --help`\n\n## D) Orientation and Bounding Box dimensions \nThe network estimates orientation and box dimensions as well. Results are saved in a json file when using the command \n`--output_types json`. At the moment, the only visualization including orientation is the social distancing one.\n\u003cbr /\u003e \n\n## E) Webcam\nYou can use the webcam as input by using the `--webcam` argument. By default the `--z_max` is set to 10 while using the webcam and the `--long-edge` is set to 144. If multiple webcams are plugged in you can choose between them using `--camera`, for instance to use the second camera you can add `--camera 1`.\nYou also need to install `opencv-python` to use this feature :\n```sh\npip3 install opencv-python\n```\nExample command:\n\n```sh\npython3 -m monoloco.run predict --webcam \\\n--activities raise_hand social_distance\n```\n\n# Training\nWe train on the KITTI dataset (MonoLoco/Monoloco++/MonStereo) or the nuScenes dataset (MonoLoco) specifying the path of the json file containing the input joints. Please download them [here](https://drive.google.com/drive/folders/1j0riwbS9zuEKQ_3oIs_dWlYBnfuN2WVN?usp=sharing) or follow [preprocessing instructions](#Preprocessing).\n\nResults for [MonoLoco++](###Tables) are obtained with: \n\n```sh\npython3 -m monoloco.run train --joints data/arrays/joints-kitti-mono-210422-1600.json\n```\n\nWhile for the [MonStereo](###Tables) results run:\n\n```sh\npython3 -m monoloco.run train --joints data/arrays/joints-kitti-stereo-210422-1601.json \\\n--lr 0.003 --mode stereo \n```\n\nIf you are interested in the original results of the MonoLoco ICCV article (now improved with MonoLoco++), please refer to the tag v0.4.9 in this repository.\n\nFinally, for a more extensive list of available parameters, run:\n\n`python3 -m monstereo.run train --help`\n\n\u003cbr /\u003e \n\n# Preprocessing\nPreprocessing and training step are already fully supported by the code provided, \nbut require first to run a pose detector over\nall the training images and collect the annotations. \nThe code supports this option (by running the predict script and using `--mode keypoints`).\n\n## Data structure\n\n    data         \n    ├── outputs                 \n    ├── arrays\n    ├── kitti\n    \nRun the following inside monoloco repository:\n```\nmkdir data\ncd data\nmkdir outputs arrays kitti\n```\n\n\n## Kitti Dataset\nDownload kitti images (from left and right cameras), ground-truth files (labels), and calibration files from their [website](http://www.cvlibs.net/datasets/kitti/eval_object.php?obj_benchmark=3d) and save them inside the `data` folder as shown below.\n\n    data         \n    ├── kitti\n            ├── gt\n            ├── calib\n            ├── images\n            ├── images_right\n\n\nThe network takes as inputs 2D keypoints annotations. To create them run PifPaf over the saved images:\n\n```sh\npython3 -m openpifpaf.predict \\\n--glob \"data/kitti/images/*.png\" \\\n--json-output \u003cdirectory to contain predictions\u003e \\\n--checkpoint=shufflenetv2k30 \\\n--instance-threshold=0.05 --seed-threshold 0.05 --force-complete-pose \n```\n\n**Horizontal flipping**\n\nTo augment the dataset, we apply horizontal flipping on the detected poses. To include small variations in the pose, we use the poses from the right-camera (the dataset uses a stereo camera). As there are no labels for the right camera, the code automatically correct the ground truth depth by taking into account the camera baseline.\nTo obtain these poses, run pifpaf also on the folder of right images. Make sure to save annotations into a different folder, and call the right folder: `\u003cNameOfTheLeftFolder\u003e_right`\n\n**Recall**\n\nTo maximize the recall (at the cost of the computational time), it's possible to upscale the images with the command `--long_edge 2500` (\\~scale 2). \n\nOnce this step is complete, the below commands transform all the annotations into a single json file that will used for training.\n\n\n\nFor MonoLoco++:\n```sh\npython3 -m monoloco.run prep --dir_ann \u003cdirectory that contains annotations\u003e\n```\n\nFor MonStereo:\n```sh\npython3 -m monoloco.run prep --mode stereo --dir_ann \u003cdirectory that contains left annotations\u003e \n```\n\n## Collective Activity Dataset\nTo evaluate on of the [collective activity dataset](http://vhosts.eecs.umich.edu/vision//activity-dataset.html)\n (without any training) we selected 6 scenes that contain people talking to each other. \n This allows for a balanced dataset, but any other configuration will work. \n\nTHe expected structure for the dataset is the following:\n\n    collective_activity         \n    ├── images                 \n    ├── annotations\n    \nwhere images and annotations inside have the following name convention:\n\nIMAGES: seq\u003csequence_name\u003e_frame\u003cframe_name\u003e.jpg\nANNOTATIONS: seq\u003csequence_name\u003e_annotations.txt\n\nWith respect to the original dataset, the images and annotations are moved to a single folder \nand the sequence is added in their name. One command to do this is:\n\n`rename -v -n 's/frame/seq14_frame/'  f*.jpg`\n\nwhich for example change the name of all the jpg images in that folder adding the sequence number\n (remove `-n` after checking it works)\n\nPifpaf annotations should also be saved in a single folder and can be created with:\n\n```sh\npython3 -m openpifpaf.predict \\\n--glob \"data/collective_activity/images/*.jpg\"  \\\n--checkpoint=shufflenetv2k30 \\\n--instance-threshold=0.05 --seed-threshold 0.05 \\--force-complete-pose \\\n--json-output \u003coutput folder\u003e\n```\n\n\n# Evaluation\n\n## 3D Localization\nWe provide evaluation on KITTI for models trained on nuScenes or KITTI. Download the ground-truths of KITTI dataset and the calibration files from their [website](http://www.cvlibs.net/datasets/kitti/eval_object.php?obj_benchmark=3d). Save the training labels (one .txt file for each image) into the folder `data/kitti/gt` and the camera calibration matrices (one .txt file for each image) into `data/kitti/calib`.  \nTo evaluate a pre-trained model, download the latest models from [here](https://drive.google.com/drive/u/0/folders/1kQpaTcDsiNyY6eh1kUurcpptfAXkBjAJ) and save them into `data/outputs.\n\n__Baselines__\n\nWe compare our results with other monocular \nand stereo baselines, depending whether you are evaluating stereo or monocular settings. For some of the baselines, we have obtained the annotations directly from the authors and we don't have yet the permission to publish them. \n\n[Mono3D](https://www.cs.toronto.edu/~urtasun/publications/chen_etal_cvpr16.pdf), \n[3DOP](https://xiaozhichen.github.io/papers/nips15chen.pdf), \n[MonoDepth](https://arxiv.org/abs/1609.03677) \n[MonoPSR](https://github.com/kujason/monopsr) and our \n[MonoDIS](https://research.mapillary.com/img/publications/MonoDIS.pdf) and our \n[Geometrical Baseline](monoloco/eval/geom_baseline.py).\n\n* **Mono3D**: download validation files from [here](http://3dimage.ee.tsinghua.edu.cn/cxz/mono3d) \nand save them into `data/kitti/m3d`\n* **3DOP**: download validation files from [here](https://xiaozhichen.github.io/) \nand save them into `data/kitti/3dop`\n* **MonoDepth**: compute an average depth for every instance using the following script \n[here](https://github.com/Parrotlife/pedestrianDepth-baseline/tree/master/MonoDepth-PyTorch) \nand save them into `data/kitti/monodepth`\n* **Geometrical Baseline and MonoLoco**:\nTo include also geometric baselines and MonoLoco, download a monoloco model, save it in `data/models`, and add the flag ``--baselines`` to the evaluation command\n\n\nThe evaluation file will run the model over all the annotations and compare the results with KITTI  ground-truth and the downloaded baselines. For this run:\n\n```sh\npython3 -m monoloco.run eval \\\n--dir_ann \u003cannotation directory\u003e \\\n--model data/outputs/monoloco_pp-210422-1601.pkl \\\n--generate \\\n--save \\\n```\n\nFor stereo results add `--mode stereo` and select `--model=monstereo-210422-1620.pkl`.  Below, the resulting table of results and an example of the saved figures.\n\n## Tables\n\n\u003cimg src=\"docs/quantitative.jpg\" width=\"700\"/\u003e\n\n\u003cimg src=\"docs/results_monstereo.jpg\" width=\"700\"/\u003e\n\n\n## Relative Average Precision Localization: RALP-5% (MonStereo)\n\nWe modified the original C++ evaluation of KITTI to make it relative to distance. We use **cmake**.\nTo run the evaluation, first generate the txt file with the standard command for evaluation (above).\nThen follow the instructions of this [repository](https://github.com/cguindel/eval_kitti) \nto prepare the folders accordingly (or follow kitti guidelines) and run evaluation. \nThe modified file is called *evaluate_object.cpp* and runs exactly as the original kitti evaluation.\n\n## Activity Estimation (Talking)\nPlease follow preprocessing steps for Collective activity dataset and run pifpaf over the dataset images.\nEvaluation on this dataset is done with models trained on either KITTI or nuScenes. \nFor optimal performances, we suggest the model trained on nuScenes teaser.\n\n```sh\npython3 -m monstereo.run eval \\\n--activity \\\n--dataset collective \\\n--model \u003cpath to the model\u003e \\\n--dir_ann \u003cannotation directory\u003e\n```\n\n# Citation\nWhen using this library in your research, we will be happy if you cite us! \n\n```\n@InProceedings{bertoni_2021_icra,\n    author = {Bertoni, Lorenzo and Kreiss, Sven and Mordan, Taylor and Alahi, Alexandre},\n    title = {MonStereo: When Monocular and Stereo Meet at the Tail of 3D Human Localization},\n    booktitle = {the International Conference on Robotics and Automation (ICRA)},\n    year = {2021}\n}\n```\n\n```\n@ARTICLE{bertoni_2021_its,\n    author = {Bertoni, Lorenzo and Kreiss, Sven and Alahi, Alexandre},\n    journal={IEEE Transactions on Intelligent Transportation Systems}, \n    title={Perceiving Humans: from Monocular 3D Localization to Social Distancing}, \n    year={2021},\n```\n\n```\n@InProceedings{bertoni_2019_iccv,\n    author = {Bertoni, Lorenzo and Kreiss, Sven and Alahi, Alexandre},\n    title = {MonoLoco: Monocular 3D Pedestrian Localization and Uncertainty Estimation},\n    booktitle = {the IEEE International Conference on Computer Vision (ICCV)},\n    month = {October},\n    year = {2019}\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvita-epfl%2Fmonoloco","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvita-epfl%2Fmonoloco","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvita-epfl%2Fmonoloco/lists"}