Skip to content

AhmedMansoour/OpenMobileContextEnvSense

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🌍📱 OpenMobileContextEnvSense

OpenMobileContextEnvSense is an open-source Android sensing framework and dataset ecosystem for multimodal mobile environmental context understanding. It targets realistic deployments where indoor–outdoor inference, transition-zone ambiguity, and device and usage heterogeneity can degrade brittle rules and overfitted models.

Paper (under review): Understanding Unseen Environments with Multimodal Mobile Sensing: A Review of Computational Methods and Zero-Shot Generalization Challenges
Authors: Ahmed Mansour, Wu Chen, Jingxian Wang, Mahmoud Adham, Mohamed Elrifaee, Mostafa Mahmoud


✨ What is included in this repository

  • Public sample dataset (one labeled session) under data/datasets/
  • 🧾 Dataset description and schema notes under data/datasets/README.md
  • 📈 Example plots and 🖥️ app UI screenshots under assets/
  • 📓 Analysis notebook under notebooks/
  • 🛠️ Minimal scripts for validation and session summarization under scripts/

🖥️ App UI preview (logging and labeling)

Logging UI Label menu UI


🏷️ Ground-truth label categories

The logger supports four synchronized label channels: place or environment, transportation mode, motion state, and device pose. The label state is shared across streams for consistent temporal alignment.

🌍 Place or environment (examples)

Place or Environment
├─ Core: unlabeled, indoor_deep, indoor_near_window, semi_outdoor, outdoor
├─ Indoor places: indoor_office, indoor_home, shopping_mall, atrium, airport_terminal
├─ Transition and structures: glass_entrance, covered_walkway, footbridge, balcony, tunnel
├─ Vertical and mobility nodes: elevator, indoor_elevator, outdoor_elevator, indoor_stairwell, outdoor_stairwell
└─ Underground and parking: underground_floor, underground_parking_garage, metro_station

🚆 Transportation mode (examples)

Transportation mode
├─ unknown
├─ on_foot
├─ bicycle, scooter
├─ car, bus
├─ train, metro
└─ airplane

🚶 Motion state (examples)

Motion state
├─ unknown
├─ standing, walking, walking_with_stops
├─ jogging, running
└─ sitting, in_vehicle

📲 Device pose (examples)

Device pose
├─ unknown, on_table
├─ hand_texting, hand_holding_horizontal, hand_calling_ear
├─ pocket_front, pocket_back
├─ bag, armband, mounted_dashboard
└─ mixed

🧪 Sensor taxonomy and logged fields

LoggerService (Android)
├─ SensorLogger
│  ├─ Accelerometer (ax, ay, az)
│  ├─ Gyroscope (gx, gy, gz)
│  ├─ Magnetometer (mx, my, mz)
│  ├─ Rotation vector (rvx, rvy, rvz, rvw)
│  ├─ Light (lux), Pressure (hPa), Proximity (cm)
│  └─ Timestamps (ts_ms, t_ns)
├─ WifiLogger
│  ├─ Scan summary (AP count)
│  ├─ Per-AP records (BSSID, SSID, frequency, RSSI)
│  └─ Timestamp (ts_ms)
├─ CellLogger
│  ├─ Snapshot (RAT, MCC/MNC, CI, PCI, TAC/LAC, registered)
│  ├─ Signal (dBm, RSRP, RSRQ, RSSNR, CQI, TA)
│  └─ Timestamp (ts_ms)
├─ GnssLogger
│  ├─ Fix (lat, lon, alt, speed, bearing, accuracy)
│  ├─ SV status (const, svid, cn0, elevation, azimuth, used)
│  └─ Timestamp (ts_ms)
└─ AudioLogger (features only)
   ├─ RMS, dBFS, peak
   ├─ Periodic sampling, no audio stored
   └─ Timestamp (ts_ms)

Timestamping

  • ts_ms is the primary time base used for cross-stream alignment.
  • t_ns is provided when high-resolution sensor timestamps are available.

📦 Datasets

✅ Public sample (available now)

  • data/datasets/IOD_Record_1761144837784_public.zip
  • Details, schema notes, and file listing are provided in data/datasets/README.md.

Privacy safeguards in the public sample

  • Latitude and longitude are removed from GNSS fix outputs where applicable.
  • Raw GNSS NMEA is excluded when it may embed location information.
  • Audio is stored as features only.

🕒 Additional datasets (coming soon)

Multiple datasets have already been collected under diverse environment labels and transportation modes, including bus, train, metro, and car, with corresponding motion states, device poses, and ground-truth labeling. The remaining sessions and their ground-truth labels will be released soon.


📈 Example plots from the sample analysis

HDOP and C/N0 with ground-truth labels, example 1

HDOP and C/N0 with ground-truth labels, example 2

HDOP and C/N0 with ground-truth labels, example 3


🚀 Quickstart (local)

python -m venv .venv
# Windows: .venv\Scripts\activate
pip install -r requirements.txt

python scripts/summarize_session.py --zip data/datasets/IOD_Record_1761144837784_public.zip

🗂️ Repository structure

OpenMobileContextEnvSense/
├─ assets/
├─ data/
├─ docs/
├─ notebooks/
├─ paper/
├─ scripts/
├─ .gitignore
├─ CITATION.cff
├─ LICENSE
├─ README.md
└─ requirements.txt

🧾 Citation

Please cite the accompanying paper, see CITATION.cff and paper/citation.bib.


⚖️ License

  • Code is released under the MIT License, see LICENSE.
  • Data is released under CC BY 4.0, see data/LICENSE.

About

Multimodal mobile sensing framework and public sample dataset for environmental context understanding, including transportation mode, pose mode, motion mode, indoor–outdoor inference, and transition-zone ambiguity.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors