Indoor Positioning System
Introduction
- GPS is unreliable indoors (7.8m accuracy worst-case).
- Existing solutions (WiFi/RSSI: 5-15m accuracy; BLE beacons) require user devices and infrastructure.
- This system uses computer vision to achieve:
- Sub-meter positioning accuracy
- user identification
- Applications: Indoor navigation (malls/airports), consumer analytics, human-robot interaction.
System Overview
Hardware:
- Two Axis M1054 network cameras
- 1280×800 resolution, 84° FOV, 25 FPS
- Mounted 6ft apart on ceiling at 21° downward tilt
Software:
- Ubuntu OS, Python/C++
- OpenCV (core processing)
- NumPy (matrix operations)
- MATLAB (data filtering/visualization)
Workflow:
- Video stream capture →
- Image processing →
- Parallel identification & location calculation →
- Data synthesis →
- Server publishing
Image Processing
- Background Subtraction
Isolates moving objects (people) from static background - Noise Reduction
Erosion/dilation filters remove artifacts - Contour Detection
Creates bounding polygons around subjects
Output: Bounding rectangles for identification/location
User Identification
- Feature Extraction
SURF algorithm detects edges/textures (e.g., clothing patterns) - Input Standardization
K-means clustering converts variable features → fixed-size neural net input - Classification
OpenCV’s neural network matches features to identities
Accuracy: >95% (paper-reported)
Calculating Location
Method: Stereoscopic triangulation
- Horizontal angle calculation:
angle = (pixel_offset_from_center) × (0.0656°/pixel)
(Derived from 84° FOV / 1280 pixels) - ASA Triangle Solving:
- Uses camera spacing (6ft) and dual-camera angles
- Projects calculations onto floor plane (accounts for 21° tilt)
- Coordinate System:
- Origin (0,0) = midpoint between cameras projected on floor
- Output format: (x_feet_right, y_feet_forward)
Accuracy: ≤1 ft near frame center (decreases toward edges due to lens distortion)
References
- NASA GPS history documentation
- OpenCV technical docs (Background Subtraction, K-means, Neural Nets)
- SURF algorithm licensing notes
- Axis M1054 camera specifications
- Stereoscopy fundamentals
Outcome
This paper and poster was accepted for review and presentation at the MIT IEEE Undergraduate Research Conference. At the conference, I received the Second Best Paper award.
This award-winning paper was published in the IEEE Xplore Library, linked below: Paper