Aifi Store is autonomus store for cashierless shopping experience this is achieved by multi modal sensing (Vision modality, weight modality and location modality).
This repository helps you plot and vizualize the weight sensor data and moving average from csv files from the AiFi store.
For complete dataset click on the DOI batch at the top to download from Zenodo open source dataset repository.
Image Credits AIM3S paper
The store is organised in the gondola's and each gondola has shelfs that holds the products and each shelf has weight sensor plates. These weight sensor plates data is used to find the event trigger (pick up, put down or no event) from which we can find the weight of the product picked.
Gondola is similar to vertical fixture consisting of horizontal shelfs in any normal store and in this case there are 5 to 6 shelfs in a Gondola. Every shelf again is composed of weight sensing plates, weight sensing modalities, there are around 12 plates on each shelf.
Every plate has a sampling rate of **60Hz**, so there are 60 samples collected every second from each plate
The pick up event on the plate can be observed and marked when the weight sensor reading decreases with time and increases with time when the put down event happens.
The event is said to be detected if the moving varience calculated from the raw weight sensor reading exceeds a set threshold of (10000gm^2 or 0.01kg^2) over the siliding window length of 0.5 seconds, which is half of the sampling rate of sensors, i.e 1 second
Pick Up Event = Object being taken from the particular gondola and shelf from the customer
Put Down Event = Object being placed back from the customer on that particular gondola and shelf
.
Example Put Down Event Graph
NO Event = No object being picked up from that shelf
1.The python script must be in the same folder as of the weight.csv files and .csv files should not be placed in other subdirectories.
2.The videos for the corresponding weight sensor data can be found in the "Videos folder" in the repository and are named similar to their corresponding ".csv" files.
3.Each video files consists of video data from 13 different camera angles.
These weight.csv (Baseline cases) files are from the AIFI CPS IoT 2020 week.There are over 50 cases in total and each file has 5 columns (timestamp,reading(in grams),gondola,shelf,plate number)
Each of these files have data of around 2 minutes or 120 seconds in the form of timestamp. In order to unpack date and time from timestamp use datetime module from python.
To start analysing the weigh.csv files using the python script and plot the timeseries plot for corresponding files.
- Clone the repository
$ git clone https://github.com/Rahul664/Analysis_plots.git
- Change the directory to cloned repository
$ cd Analysis_plots
- Install the requirements
$ pip3 install -r requirements.txt
- Run the python script Plot.py
$ python3 Plot.py
After the script has run successfully you will find the corresponding folders of weight.csv files which contain the figures (weight vs timestamp) in the format
Run the Plot.ipynb file using Jupyter Notebook by placing .csv files in the same directory as the Plot.ipynb script.
--------------------------------- --------------------------------- --------------------------------- ------
gondola_number,shelf_number.png
Ex: 1,1.png
--------------------------------- --------------------------------- --------------------------------- ------