https://github.com/conect2ai/etfa2025-autoencoders
This repository contains the code implementation of the embedded autoencoder in Freematics One+ proposed at the IEEE ETFA 2025 conference.
Science Score: 36.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
✓Academic publication links
Links to: scholar.google -
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (12.7%) to scientific vocabulary
Repository
This repository contains the code implementation of the embedded autoencoder in Freematics One+ proposed at the IEEE ETFA 2025 conference.
Basic Info
Statistics
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
- Releases: 0
Metadata Files
README.md
Autoencoders for Embedded Sensor Data Compression: A Case Study on Vehicular IoT Systems
✍🏾 Authors: Matheus Andrade, Miguel Amaral, Morsinaldo Medeiros, Marianne Diniz, Ivanovitch Silva, Massimiliano Gaffurini, Dennis Brandão, Paolo Ferrari
📖 Abstract
The growing integration of sensors and embedded devices into distributed Internet of Things (IoT) systems has increased the demand for real-time data collection and processing solutions. However, the high volume and frequency of sensor data create challenges related to storage, transmission, and response latency, especially in resource-constrained environments. In this context, locally executed compression techniques, aligned with the Tiny Machine Learning (TinyML) paradigm, become differentiators for enabling embedded applications. Thus, this work proposes an autoencoder-based approach for efficiently compressing sensor data on edge devices. Three autoencoder variants (feedforward, sparse, and contractive) are evaluated, combined with symmetric and asymmetric architectures, considering criteria such as compression ratio, information preservation, and embedded execution feasibility. For practical validation, a case study was conducted using vehicular data collected via the OBD-II interface, where the selected models were deployed on the OBD-II Edge Freematics One+ device. The results show that the models could reduce data dimensionality with minimal information loss, maintain competitive performance on discriminative tasks, and exhibit inference times compatible with real-time applications. Autoencoders represent a viable neural compression solution for IoT environments, potentially applicable to various embedded sensing scenarios.
Repository Structure 📂
./notebooks/— Source code to produce the dataset, traint the models and choose the models to Freematics../Freematics/— Source code from the Freematics project used for the embedded experiments (ESP32, OBD-II communication, etc.)../figures/— Figures generated for analysis and publication..git/— Version control metadata (Git).
🚀 About the Code
1️⃣ Cloning the Repository
bash
git clone https://github.com/conect2ai/ETFA2025-Autoencoders.git
cd ETFA2025-Autoencoders
2️⃣ Installing Dependencies
It is recommended to use Python 3.11+ with a virtual environment (venv or conda):
bash
pip install -r requirements.txt
3️⃣ Running the Notebooks
Open the .ipynb files using Jupyter Notebook or JupyterLab and execute the cells according to the instructions provided in each section.
Executing on Freematics One+
4️⃣ Opening the Project
Open the project folder ./Freematics/firmware_v5/telelogger on PlatformIO, as illustrated in the figure below.
5️⃣ Connecting the Device
Connect the Freematics One+ to your computer and turn it on using the Freematics Emulator or inside the vehicle.
6️⃣ Compiling, Uploading, and Monitoring
Compile, upload, and monitor the serial (steps 1, 2, and 3, respectively, in the figure below).
:pagefacingup: License
This project is licensed under the MIT License - see the LICENSE file for details.
🌎 About Conect2AI
The research group Conect2AI is composed of undergraduate and graduate students from the Federal University of Rio Grande do Norte (UFRN). Our mission is to apply Artificial Intelligence (AI) and Machine Learning (ML) to emerging areas.
🎯 Our areas of expertise include:
- Embedded Intelligence & IoT: Optimizing resource management and energy efficiency in connected environments.
- Energy Transition & Mobility: Leveraging AI to optimize the energy consumption of connected vehicles and foster more efficient, sustainable mobility.
Owner
- Name: conect2ai
- Login: conect2ai
- Kind: organization
- Repositories: 1
- Profile: https://github.com/conect2ai
GitHub Events
Total
- Public event: 1
- Push event: 2
Last Year
- Public event: 1
- Push event: 2
Dependencies
- Markdown ==3.7
- MarkupSafe ==3.0.2
- Pygments ==2.18.0
- RapidFuzz ==3.10.1
- Werkzeug ==3.1.3
- absl-py ==2.1.0
- anyio ==4.7.0
- arrow ==1.3.0
- asttokens ==2.4.1
- astunparse ==1.6.3
- certifi ==2024.8.30
- cffi ==1.17.1
- charset-normalizer ==3.4.0
- click ==8.1.7
- codecarbon ==2.8.1
- colorama ==0.4.6
- comm ==0.2.2
- contourpy ==1.3.1
- cryptography ==44.0.0
- cycler ==0.12.1
- debugpy ==1.8.8
- decorator ==5.1.1
- exceptiongroup ==1.2.2
- executing ==2.1.0
- fief-client ==0.20.0
- flatbuffers ==24.3.25
- fonttools ==4.55.0
- gast ==0.6.0
- google-pasta ==0.2.0
- grpcio ==1.67.1
- h11 ==0.14.0
- h5py ==3.12.1
- httpcore ==1.0.7
- httpx ==0.27.2
- idna ==3.10
- ipykernel ==6.29.5
- ipython ==8.29.0
- jedi ==0.19.2
- joblib ==1.4.2
- jupyter_client ==8.6.3
- jupyter_core ==5.7.2
- jwcrypto ==1.5.6
- keras ==3.6.0
- kiwisolver ==1.4.7
- libclang ==18.1.1
- markdown-it-py ==3.0.0
- matplotlib ==3.9.2
- matplotlib-inline ==0.1.7
- mdurl ==0.1.2
- ml-dtypes ==0.4.1
- namex ==0.0.8
- nest-asyncio ==1.6.0
- numpy ==2.0.2
- nvidia-ml-py ==12.560.30
- opt_einsum ==3.4.0
- optree ==0.13.1
- packaging ==24.2
- pandas ==2.2.3
- parso ==0.8.4
- pexpect ==4.9.0
- pillow ==11.0.0
- platformdirs ==4.3.6
- prometheus_client ==0.21.1
- prompt-toolkit ==3.0.41
- protobuf ==5.28.3
- psutil ==6.1.0
- ptyprocess ==0.7.0
- pure_eval ==0.2.3
- py-cpuinfo ==9.0.0
- pycparser ==2.22
- pynvml ==12.0.0
- pyparsing ==3.2.0
- python-dateutil ==2.9.0.post0
- pytz ==2024.2
- pyzmq ==26.2.0
- questionary ==2.1.0
- requests ==2.32.3
- rich ==13.9.4
- scikit-learn ==1.5.2
- scipy ==1.14.1
- seaborn ==0.13.2
- setuptools ==75.8.0
- shellingham ==1.5.4
- six ==1.16.0
- sniffio ==1.3.1
- stack-data ==0.6.3
- tensorboard ==2.18.0
- tensorboard-data-server ==0.7.2
- tensorflow ==2.18.0
- termcolor ==2.3.0
- threadpoolctl ==3.5.0
- tornado ==6.4.1
- traitlets ==5.14.3
- typer ==0.15.1
- types-python-dateutil ==2.9.0.20241206
- typing_extensions ==4.12.2
- tzdata ==2024.2
- urllib3 ==2.2.3
- wcwidth ==0.2.13
- wheel ==0.45.1
- wrapt ==1.16.0
- yaspin ==3.1.0