There is light at the end of the tunnel! We are getting real nice weather and long daylight here in Sweden. Also the vaccinations have started and we can start to meet people again.
Still we are not able to do the crowd sourcing we had planned in our project since nobody is going anywhere, but just stays at home. Not very many buildings get crowd sourced that way… So we have decided to focus our efforts on only a few buildings we have access to: Our great office at 14th floor, Mattehuset at Lund University (5 floors), and 2 shopping centers: Nova Lund (1 floor) and Emporia in Malmö (3 floors).
The areas we focused on this phase was:
1 Improved tracks by using IMU data:
A good route extraction requires as we experienced before very accurate tracks. In office we had about 2m median error thanks to many beacons (>1 beacon per 10m2). But when testing in new buildings, we only achieved a little less than 10m median error initially. Thus, we needed to improve the accuracy of the tracks.
The first improvement we found was that we could better use the inertial sensors in the Android app we had developed earlier. After a lot of work we now have a much better distance and heading estimate based on multisensor data between the sampled points, see pictures below. In first picture red track is ground truth, green is estimated without any IMU data. On second picture is the IMU data for the same track in blue. There is as expected a drift, so the start and end point that actually are the same are about 30m apart after 11.5 minutes.
Still you have to be careful when doing a survey to make this work. Do NOT use a wallet style phone cover with a magnet flip – it destroys the magnetometer sensor! We found this out the hard way 🙂
Adding the IMU data and improving our machine learning optimization, we achieved much better tracks and a median error around 5m.
2 Multi Floor Route extraction:
We also continued the work on the route extractor to be able to extract routes for different floors and connect them together with a stair or elevator and it worked very well.
Below is a picture on the Emporia shopping center with 3 levels. We did not use all stairs in the tracks, but the stairs we used were accurately modeled. As you can see in the middle picture, our autogenerated route corresponds well with the Google indoor map. Our autogenerated routes are even better than the manually created routes in OSM as you can see on the right!
We have also added an automatic identifier if the floor change is a stair or an escalator/elevator by using the elevation speed. Do not run in stairs!
3. Artificial Neural Network for accurate indoor positioning:
We did not see a huge improvement in our office using k-nearest neighbor (kNN) fingerprinting. But in the other buildings with a less dense beacon network, the fingerprinting algorithm seemed to perform better than our traditional lookup based on trilateration. The drawback with fingerprinting is that the data collection requires a lot of manual input and that you stand still for some time to collect enough data in every “fingerprint” location. Too slow and too much manual work. But maybe we could speed this up a lot and just use one scan in every manually recorded location. Since we during this project anyway do these manual recording of location to have a ground truth to compare against, we decided to use this manually collected data and see if we use some deep learning to do some magic.
We tested to use just the tracks and interpolate between the manually recorded locations. Thereby creating training data sets of essentially just one scan at each location. We then artificially created more training data by augmentation. We added gaussian noise to the RSSI measurements, randomly removed RSSI measurements, added an offset to the measurements. The idea was that this should represent close to a lot manually created data regarding noise due to fading, missed measurements due to timing alignment for scans, and different devices with different antenna gains. This helps a lot in training a neural network against overfitting and robustness. The neural network structure we used was a straight forward 5 level deep neural network as published in articles.
The result was very promising, we achieved about half(!) the median error compared to other methods. Our student working on this also attended a Microsoft sponsored Kaggle competition and using this structure he and his team reached a median error of 2.19m and a 2nd place out of 1170 teams!
We will continue to research and develop ANN networks for accurate indoor positioning. Even if the data requires to be manually collected, it could be a very good method to use for enterprises, shopping malls, airports, etc. where it is ok to take the effort to make a manual survey. A few hours of survey in huge shopping mall with no extra infrastructure, achieving a positioning accuracy for any device between 2-4m is probably unique today. Correct?
Stay safe and stay tuned!