Git Product home page Git Product logo

adarf's Introduction

AdaRF

Datasets and code used in AdaRF. The paper can be found in https://dl.acm.org/citation.cfm?doid=3361560.3351271.

Dataset

There are 5 datasets and each one contains a training data and test data. The detailed description are:

Dataset Experiment
Times
Tag
Number
Tag
Separation
Frequency
Number
Sample
Number
D1 Train 250 5 20cm 1 1250
Test 24 3 20cm 8 72
D2 Train 40 6 8cm 1 240
Test 16 8 8cm 8 108
D3 Train 96 8 4-1cm 1 768
Test 16 8 4-10cm 8 108
D4 Train 40 8 8cm 1 320
Test 9 10 8cm 8 90
D5 Train 20 11 4cm 1 220
Test 4 200 4cm 8 80

Extract signal profile

In the training data or test data, each folder represent an experiment. There are 50 CSV files in an experiment and each file represent the signal profile collected at an aperture point. In the each CSV file, it consists of the following information:

  • EPC: the unique ID of an RFID tag. 24 digits.
  • antennaindex: the index of antenna. DEFAULT: 1.
  • frequency: the frequency of each item. Range from 920.625 MHz to 924.125 MHz with a step of 0.5 MHz.
  • time: INVALID.
  • RSSI: a negative real number.
  • phase: a real number ranging from 0 to 2pi.
  • dopplershift: the dopplershift reported by Impinj reader, which might be inaccurate indicator and is not used in our system.
  • velocity: INVALID.
  • x: the x-coordinate of the aperture point with the unit of m.
  • y: the y-coordinate of the aperture point with the unit of m. DEFAULT: 0. "1.63" is INVALID.
  • z: the z-coordinate of the aperture point with the unit of m. DEFAULT: 0.
  • angle: INVALID.

At each aperture point, reader can read one RFID tag for many times. Therefore, one tag usually has many phase measurements at a CSV file. To improve the robustness, we use the average of these measurements to represent the phase of the RFID tag collected at the corresponding aperture point.

The corresponding function is available in the file named 'input.py'.

Reconstruct tag location

The detailed experimental settings are described in 'config.txt', where each line represents the config of an experiment. And each line is a string formatted of "A I:X Y P F S".

  • A: date. e.g. "1118" indicates 18 November 2018 while "0114" indicates 14 January 2019.
  • I: start index and end index (included). e.g. "1-5" represents 5 experiments from "01" to "05".
  • X: the center x-coordinate of the tag sequence with the unit of cm.
  • Y: the y-coordinate of the tag sequence with the unit of cm.
  • P: the number of aperture points (measurement points). DEFAULT: 50.
  • F: the number of frequency (channel). DEFAULT: 8 or 1.
  • S: the separation between adjacent tags with the unit of cm. It is an optional item.

In each experiment, antenna scans several RFID tags. All tags have the same y-coordinate and the separation between adjacent tags are same. Therefore, we can reconstruct their locations according to X, Y, S and the number of tags. For instance, if X=50 Y=45 S=20 and the number of tags is 3, the coordinates of these tags are (30, 45), (50, 45) and (70, 45). Note that we only consider locate RFID tag in 2D plane since we only adopt one antenna.

The corresponding function is available in the file named 'config.py'.

Mapping

A, I, P and S comprose a mapping between the config and folder. For instance, config "1218 1-5:50 45 50 8" maps to the folders from "181218-01-50-8" to "181218-05-50-8".

Code

The critical functions in AdaRF, which are implemented by Python 3.6 and tensorflow-gpu 1.9.0. The detailed documents of all functions can be found in the corresponding python files and here are breif discriptions of all files:

  • config.py: Provide setups of all datasets including EPC, frequencies and other settings.
  • extract_signal_profile.py: Extract signal profiles (RSSI and phase) from CSV files for an experiment.
  • preprocess.py: Unwrap phase profiles of one tag and remove the profiles of aperture points which do not receive any its signals.
  • hologram.py: Create holograms inlcuding L1 and L2 in AdaRF, Tagoram and MobiTagbot.
  • reconstruct_tag_location.py: Read config items from 'config.txt' for all experiments and reconstruct actual locations of tags in an experiment.
  • position_estimation.py: The implementation of the convolutional nerual network in AdaRF.
  • other_scheme.py: The implementation of STPP and RF-Scanner.

Contact

It is my first time to write public documents for my codes. So please contact me through email [email protected] if you have any problems or questions. I would be very glad to receive your emails.

adarf's People

Contributors

dapowan avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.