Winning solution of the Indoor Location & Navigation Kaggle competition

Overview

This repository contains the code to generate the winning solution of the Kaggle competition on indoor location and navigation organized by Microsoft Research.

Our team name: "Track me if you can".

Authors:

  • Are Haartveit
  • Dmitry Gordeev
  • Tom Van de Wiele

Ranking

References

Steps to obtain the approximate winning submission

  1. Clone the repository, it doesn't matter where you clone it to since the source code and data are disentangled.
  2. Create a project folder on a disk with at least 150GB of free space. Create a "Data" subfolder in your project folder. This will be referred to as "your data folder" in what follows.
  3. Download the raw text data from here and extract it into your data folder.
  4. Download the cleaned raw data from here and extract it into the "reference_preprocessed" subfolder of your data folder.
  5. Add your data folder to line 19 in src/utils.py.
  6. Run main.py.

If all goes well, the pipeline should create a "final_submissions" subfolder in your data folder with two final submissions. Note that these are likely slightly different from our actual submissions due to inherent training stochasticity. When you make a late submit of these submissions to the leaderboard, you should obtain a private score around 1.5, which can be further reduced to about 1.3 after fixing the private test floor predictions (not part of this repository).

Main script parameters

  • Mode ("-m" or "--mode"). Default: 'test'. Select from ('valid', 'test').
  • Suppress multipricessing ("-s"). Default: no suppression of multiprocessing.
  • Fast (and bad) sensor models ("-f"). Default: no fast sensor models. Mostly useful for verifying that all dependencies are in place. Ignored when copying sensor models (next parameter).
  • Copy sensor predictions ("-c"). Default: no copying of pretrained sensor predictions. Useful if you want to speed up the pipeline since training sensor models is the slowest part.

Hardware requirements

Due to the size of the data set, you need at least 32 GB RAM to be able to run the pipeline successfully.

Known issues

  • If you run out of memory, try running the pipeline again. It should continue where it left it in the previous run.
You might also like...
Kaggle | 9th place single model solution for TGS Salt Identification Challenge

UNet for segmenting salt deposits from seismic images with PyTorch. General We, tugstugi and xuyuan, have participated in the Kaggle competition TGS S

10th place solution for Google Smartphone Decimeter Challenge at kaggle.
10th place solution for Google Smartphone Decimeter Challenge at kaggle.

Under refactoring 10th place solution for Google Smartphone Decimeter Challenge at kaggle. Google Smartphone Decimeter Challenge Global Navigation Sat

Kaggle G2Net Gravitational Wave Detection : 2nd place solution

Kaggle G2Net Gravitational Wave Detection : 2nd place solution

Kaggle Feedback Prize - Evaluating Student Writing 15th solution

Kaggle Feedback Prize - Evaluating Student Writing 15th solution First of all, I would like to thank the excellent notebooks and discussions from http

The 3rd place solution for competition
The 3rd place solution for competition

The 3rd place solution for competition "Lyft Motion Prediction for Autonomous Vehicles" at Kaggle Team behind this solution: Artsiom Sanakoyeu [Homepa

2nd solution of ICDAR 2021 Competition on Scientific Literature Parsing, Task B.
2nd solution of ICDAR 2021 Competition on Scientific Literature Parsing, Task B.

TableMASTER-mmocr Contents About The Project Method Description Dependency Getting Started Prerequisites Installation Usage Data preprocess Train Infe

1st Solution For ICDAR 2021 Competition on Mathematical Formula Detection
1st Solution For ICDAR 2021 Competition on Mathematical Formula Detection

This project releases our 1st place solution on ICDAR 2021 Competition on Mathematical Formula Detection. We implement our solution based on MMDetection, which is an open source object detection toolbox based on PyTorch.

Codebase for the solution that won first place and was awarded the most human-like agent in the 2021 NeurIPS Competition MineRL BASALT Challenge.

KAIROS MineRL BASALT Codebase for the solution that won first place and was awarded the most human-like agent in the 2021 NeurIPS Competition MineRL B

1st Solution For NeurIPS 2021 Competition on ML4CO Dual Task

KIDA: Knowledge Inheritance in Data Aggregation This project releases our 1st place solution on NeurIPS2021 ML4CO Dual Task. Slide and model weights a

Comments
  • How to get the text file in Indoor-Location-Navigation-Public/data/ including leaderboard_type.csv?

    How to get the text file in Indoor-Location-Navigation-Public/data/ including leaderboard_type.csv?

    Congrats 1st place in this competition! This is an amazing solution and thanks for sharing!

    I'm wondering about how to get the text file in Indoor-Location-Navigation-Public/data/ including leaderboard_type.csv, non_parametric_wifi - valid - 2021-03-30 091444.csv, submission_cost_minimization.csv, test - 2021-05-15 051944.csv.

    At the beginning of the whole program, I found that you copy the text file mentioned above and I dont know how to get these files and is there any code to build these files?

    I am a beginner in indoor localization and looking forward to your reply!

    Thanks!

    opened by YoonaYaa 4
  • Issue while running the script

    Issue while running the script

    Thank you for your brilliant work in the indoor location navigation, I am so impressed of your achievement and congratulation on your champion! I am new in this field and I am trying to understand your code, attempting to run it at first. However I met an error as follows:

    Traceback (most recent call last): File "main.py", line 61, in main(args.mode, args.s) File "main.py", line 36, in main sensor_errors_over_time_device.run() File "./src/sensor_errors_over_time_device.py", line 63, in run preds = pd.read_csv(absolute_fold_folder / f'preds_bag_fold_{i}.csv') File "/home/yangxj/anaconda3/lib/python3.8/site-packages/pandas/io/parsers.py", line 605, in read_csv return _read(filepath_or_buffer, kwds) File "/home/yangxj/anaconda3/lib/python3.8/site-packages/pandas/io/parsers.py", line 457, in _read parser = TextFileReader(filepath_or_buffer, **kwds) File "/home/yangxj/anaconda3/lib/python3.8/site-packages/pandas/io/parsers.py", line 814, in init self._engine = self._make_engine(self.engine) File "/home/yangxj/anaconda3/lib/python3.8/site-packages/pandas/io/parsers.py", line 1045, in _make_engine return mapping[engine](self.f, **self.options) # type: ignore[call-arg] File "/home/yangxj/anaconda3/lib/python3.8/site-packages/pandas/io/parsers.py", line 1862, in init self._open_handles(src, kwds) File "/home/yangxj/anaconda3/lib/python3.8/site-packages/pandas/io/parsers.py", line 1357, in _open_handles self.handles = get_handle( File "/home/yangxj/anaconda3/lib/python3.8/site-packages/pandas/io/common.py", line 642, in get_handle handle = open( FileNotFoundError: [Errno 2] No such file or directory: '../Indoor-Location-Navigation-Public/Models/sensor_absolute_movement/errors cv/preds_bag_fold_0.csv'

    I am not sure if I got all the necessary files, could you kindly help me with it?

    opened by YangXiaojie1998 1
  • all_train.pickle not found in main procedural

    all_train.pickle not found in main procedural

    I try to follow the sequence 'Steps to obtain the approximate winning submission' , but it's get stop at function extract_floor_start_end in infer_start_end_time_leak.py and error message is as show below: https://i.imgur.com/6DTPrBn.png Exception has occurred: FileNotFoundError [Errno 2] No such file or directory: '/mnt/d/Project/LocationAI/IndoolLocationAI/Github-Indoor-Location-Navigation-Public/MyData/train/5a0546857ecc773753327266/B1/all_train.pickle' File "/mnt/d/Project/LocationAI/IndoolLocationAI/Github-Indoor-Location-Navigation-Public/src/infer_start_end_time_leak.py", line 57, in extract_floor_start_end with open(floor_wifi_path, 'rb') as f: File "/mnt/d/Project/LocationAI/IndoolLocationAI/Github-Indoor-Location-Navigation-Public/src/infer_start_end_time_leak.py", line 442, in run extract_floor_start_end( File "/mnt/d/Project/LocationAI/IndoolLocationAI/Github-Indoor-Location-Navigation-Public/main.py", line 66, in main infer_start_end_time_leak.run(mode) File "/mnt/d/Project/LocationAI/IndoolLocationAI/Github-Indoor-Location-Navigation-Public/main.py", line 93, in main(args.mode, args.s, args.f, args.c)

    It's seems that it doesn't find the file all_train.pickle. What is this file for?And how to create it?

    opened by reinforce314 0
Owner
Tom Van de Wiele
Chief Data Scientist at Intelecy with a background in Computer Science and Statistics
Tom Van de Wiele
This is the solution for 2nd rank in Kaggle competition: Feedback Prize - Evaluating Student Writing.

Feedback Prize - Evaluating Student Writing This is the solution for 2nd rank in Kaggle competition: Feedback Prize - Evaluating Student Writing. The

Udbhav Bamba 41 Dec 14, 2022
Pathdreamer: A World Model for Indoor Navigation

Pathdreamer: A World Model for Indoor Navigation This repository hosts the open source code for Pathdreamer, to be presented at ICCV 2021. Paper | Pro

Google Research 122 Jan 4, 2023
This is the winning solution of the Endocv-2021 grand challange.

Endocv2021-winner [Paper] This is the winning solution of the Endocv-2021 grand challange. Dependencies pytorch # tested with 1.7 and 1.8 torchvision

Vajira Thambawita 14 Dec 3, 2022
The sixth place winning solution (6/220) in 2021 Gaofen Challenge.

SwinTransformer + OBBDet The sixth place winning solution (6/220) in the track of Fine-grained Object Recognition in High-Resolution Optical Images, 2

ming71 46 Dec 2, 2022
My published benchmark for a Kaggle Simulations Competition

Lux AI Working Title Bot Please refer to the Kaggle notebook for the comment section. The comment section contains my explanation on my code structure

Tong Hui Kang 29 Aug 22, 2022
Data visualization app for H&M competition in kaggle

handm_data_visualize_app Data visualization app by streamlit for H&M competition in kaggle. competition page: https://www.kaggle.com/competitions/h-an

Kyohei Uto 12 Apr 30, 2022
Kaggle Lyft Motion Prediction for Autonomous Vehicles 4th place solution

Lyft Motion Prediction for Autonomous Vehicles Code for the 4th place solution of Lyft Motion Prediction for Autonomous Vehicles on Kaggle. Discussion

null 44 Jun 27, 2022
7th place solution of Human Protein Atlas - Single Cell Classification on Kaggle

kaggle-hpa-2021-7th-place-solution Code for 7th place solution of Human Protein Atlas - Single Cell Classification on Kaggle. A description of the met

null 8 Jul 9, 2021
Kaggle | 9th place (part of) solution for the Bristol-Myers Squibb – Molecular Translation challenge

Part of the 9th place solution for the Bristol-Myers Squibb – Molecular Translation challenge translating images containing chemical structures into I

Erdene-Ochir Tuguldur 22 Nov 30, 2022
My 1st place solution at Kaggle Hotel-ID 2021

1st place solution at Kaggle Hotel-ID My 1st place solution at Kaggle Hotel-ID to Combat Human Trafficking 2021. https://www.kaggle.com/c/hotel-id-202

Kohei Ozaki 18 Aug 19, 2022