Skip to content

Commit

Permalink
requirements imgs
Browse files Browse the repository at this point in the history
  • Loading branch information
OmarFaig committed Aug 28, 2024
1 parent b84a84a commit 93ed2fa
Show file tree
Hide file tree
Showing 12 changed files with 216 additions and 54 deletions.
12 changes: 0 additions & 12 deletions .idea/.gitignore

This file was deleted.

8 changes: 0 additions & 8 deletions .idea/Masterarbeit.iml

This file was deleted.

6 changes: 0 additions & 6 deletions .idea/inspectionProfiles/profiles_settings.xml

This file was deleted.

7 changes: 0 additions & 7 deletions .idea/misc.xml

This file was deleted.

8 changes: 0 additions & 8 deletions .idea/modules.xml

This file was deleted.

6 changes: 0 additions & 6 deletions .idea/other.xml

This file was deleted.

7 changes: 0 additions & 7 deletions .idea/vcs.xml

This file was deleted.

42 changes: 42 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,45 @@

This repository contains the code and documentation for my master thesis titled "3D-Object Detection Optimization using Sim-to-Real Adaptation for Point Clouds with Neural Networks." The primary goal of this research was to minimize the domain gap between simulated and real-world 3D LiDAR data to optimize the performance of neural network-based 3D object detectors.
![alt text](imgs/image.png)

For this thesis the [Sim-to-Real Distribution-Aligned Dataset (S2R-DAD)](https://github.com/TUMFTM/Sim2RealDistributionAlignedDataset) is used. The real dataset was obtained during the Indy Autonomous Challenge in Las Vegas in 2022. The simulation dataset is distribution-aligned and mirrors the real dataset in terms of scenarios. It was generated using Unity along with a custom LiDAR sensor model. The simulated environment replicates the same racetrack found in the real-world data. Scenarios from the real dataset were recreated in this simulated setting, and point clouds were collected using the custom LiDAR sensor. Labels for the data were automatically generated within Unity.For more information please see the [repository](https://github.com/TUMFTM/Sim2RealDistributionAlignedDataset)

After extensive research the choice of network for this task was [SeedFormer](https://arxiv.org/abs/2207.10315).The network archtiecture was adjusted for the dataset and the goal of the thesis. Different kinds of PointNet architecturs are implemented and tested for best performance.
![alt text](imgs/SeedFormer.png)

The results and reductions of domain gap is evaluated with 3D object detectors. For this [OpenPcDet](https://github.com/open-mmlab/OpenPCDet) is utilized. [PointPillars](https://arxiv.org/abs/1812.05784) and [PointRCNN](https://github.com/sshaoshuai/PointRCNN) networks from this repository are implemented with minor adjustments.

The quantitative results are listed below. PointRCNN detection results are superior to the results of PointsPillars network. This can be explained with the high sparsity of the point clouds in the dataset. These networks are trained with real,sim and adapted datasets but evaluated only with the validation set from real data. Nevertheless, with both networks it can be seen that the domain gap between real and simulated data is reduced in the best case by 1%. For more information on the implementation and evaluation, please see the masther thesis.
![alt text](imgs/PointRCNN.png)
![alt text](imgs/PointPillars.png)

Running the Code Locally
To run this project locally, follow these steps:

Clone the repository:

bash
Code kopieren
git clone https://github.com/yourusername/thesis-repo.git
cd thesis-repo
Create a virtual environment (optional but recommended):

bash
Code kopieren
python3 -m venv env
Activate the virtual environment:

On Windows:
bash
Code kopieren
.\env\Scripts\activate
On macOS/Linux:
bash
Code kopieren
source env/bin/activate
Install the required libraries:

bash
Code kopieren
pip install -r requirements.txt
Run the code: Now you can run the scripts provided in this repository as described in the Usage section.
Binary file added imgs/PointPillars_res.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added imgs/PointRCNN_res.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added imgs/SeedFormer.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
174 changes: 174 additions & 0 deletions requirements.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,174 @@
addict==2.4.0
aiohttp==3.8.6
aiosignal==1.3.1
ansi2html==1.8.0
anyio==4.0.0
argon2-cffi==23.1.0
argon2-cffi-bindings==21.2.0
arrow==1.3.0
asttokens==2.4.1
async-lru==2.0.4
async-timeout==4.0.3
attrs==23.1.0
Babel==2.13.1
beautifulsoup4==4.12.2
bleach==6.1.0
blinker==1.7.0
certifi==2023.7.22
cffi==1.16.0
charset-normalizer==3.3.2
click==8.1.7
comm==0.2.0
ConfigArgParse==1.7
contourpy==1.2.0
cycler==0.12.1
dash==2.14.1
dash-core-components==2.0.0
dash-html-components==2.0.0
dash-table==5.0.0
debugpy==1.8.0
decorator==5.1.1
defusedxml==0.7.1
exceptiongroup==1.1.3
executing==2.0.1
fastjsonschema==2.18.1
filelock==3.13.1
Flask==3.0.0
fonttools==4.44.1
fqdn==1.5.1
frozenlist==1.4.0
fsspec==2023.10.0
fvcore==0.1.5.post20221221
idna==3.4
importlib-metadata==6.8.0
iopath==0.1.10
ipykernel==6.26.0
ipython==8.17.2
ipywidgets==8.1.1
isoduration==20.11.0
itsdangerous==2.1.2
jedi==0.19.1
Jinja2==3.1.2
joblib==1.3.2
json5==0.9.14
jsonpointer==2.4
jsonschema==4.19.2
jsonschema-specifications==2023.7.1
jupyter==1.0.0
jupyter-console==6.6.3
jupyter-events==0.9.0
jupyter-lsp==2.2.0
jupyter_client==8.6.0
jupyter_core==5.5.0
jupyter_server==2.10.0
jupyter_server_terminals==0.4.4
jupyterlab==4.0.8
jupyterlab-pygments==0.2.2
jupyterlab-widgets==3.0.9
jupyterlab_server==2.25.1
kiwisolver==1.4.5
laspy==2.5.1
lightning-utilities==0.9.0
llvmlite==0.42.0
MarkupSafe==2.1.3
matplotlib==3.8.1
matplotlib-inline==0.1.6
mistune==3.0.2
mpld3==0.5.10
mpmath==1.3.0
multidict==6.0.4
nbclient==0.9.0
nbconvert==7.11.0
nbformat==5.5.0
nest-asyncio==1.5.8
networkx==3.2.1
ninja==1.11.1.1
notebook==7.0.6
notebook_shim==0.2.3
numba==0.59.0
numpy==1.26.1
nvidia-cublas-cu12==12.1.3.1
nvidia-cuda-cupti-cu12==12.1.105
nvidia-cuda-nvrtc-cu12==12.1.105
nvidia-cuda-runtime-cu12==12.1.105
nvidia-cudnn-cu12==8.9.2.26
nvidia-cufft-cu12==11.0.2.54
nvidia-curand-cu12==10.3.2.106
nvidia-cusolver-cu12==11.4.5.107
nvidia-cusparse-cu12==12.1.0.106
nvidia-nccl-cu12==2.18.1
nvidia-nvjitlink-cu12==12.3.52
nvidia-nvtx-cu12==12.1.105
open3d==0.16.0
overrides==7.4.0
packaging==23.2
pandas==2.1.3
pandocfilters==1.5.0
parso==0.8.3
pexpect==4.8.0
Pillow==10.1.0
platformdirs==4.0.0
plotly==5.18.0
portalocker==2.8.2
prometheus-client==0.18.0
prompt-toolkit==3.0.40
psutil==5.9.6
ptyprocess==0.7.0
pure-eval==0.2.2
pycparser==2.21
Pygments==2.16.1
pyparsing==3.1.1
pyquaternion==0.9.9
python-dateutil==2.8.2
python-json-logger==2.0.7
pytorch-lightning==2.1.1
pytorch3d @ file:///home/omar/TUM/Masterarbeit/pytorch3d
pytz==2023.3.post1
PyYAML==6.0.1
pyzmq==25.1.1
qtconsole==5.5.0
QtPy==2.4.1
referencing==0.30.2
requests==2.31.0
retrying==1.3.4
rfc3339-validator==0.1.4
rfc3986-validator==0.1.1
rpds-py==0.12.0
scikit-learn==1.3.2
scipy==1.11.3
Send2Trash==1.8.2
six==1.16.0
sniffio==1.3.0
soupsieve==2.5
stack-data==0.6.3
sympy==1.12
tabulate==0.9.0
tenacity==8.2.3
termcolor==2.4.0
terminado==0.18.0
threadpoolctl==3.2.0
tinycss2==1.2.1
tomli==2.0.1
torch==2.1.0
torchmetrics==1.2.0
torchvision==0.16.0
tornado==6.3.3
tqdm==4.66.1
traitlets==5.13.0
triton==2.1.0
types-python-dateutil==2.8.19.14
typing==3.7.4.3
typing_extensions==4.8.0
tzdata==2023.3
uri-template==1.3.0
urllib3==2.0.7
utils==1.0.1
wcwidth==0.2.9
webcolors==1.13
webencodings==0.5.1
websocket-client==1.6.4
Werkzeug==3.0.1
widgetsnbextension==4.0.9
yacs==0.1.8
yarl==1.9.2
zipp==3.17.0

0 comments on commit 93ed2fa

Please sign in to comment.