GithubHelp home page GithubHelp logo

uehwan / i-keyboard Goto Github PK

View Code? Open in Web Editor NEW
6.0 4.0 0.0 851 KB

Python 100.00%
softkeyboard virtual-keyboard user-interface user-experience human-computer-interaction text-entry eyes-free decoding deep-learning

i-keyboard's Introduction

I-Keyboard: Fully Imaginary Keyboard on Touch Devices Empowered by Deep Neural Decoder

We propose a fully imaginary keyboard (I-Keyboard) with a deep neural decoder (DND). Below are a few features of I-Keyboard.

  • The eyes-free ten-finger typing scenario of I-Keyboard does not necessitate both a calibration step and a pre-defined region for typing (first explored in this study!).
  • The invisibility of I-Keyboard maximizes the usability of mobile devices.
  • DND empowered by a deep neural architecture allows users to start typing from any position on the touch screens at any angle.
  • We collected the largest user data in the process of developing I-Keyboard and make the data public!
  • I-Keyboard showed 18.95% and 4.06% increases in typing speed (45.57 WPM) and accuracy (95.84%), respectively over the baseline.

Getting Started

These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.

Requirements for Data Collection

  • MS Visual Studio >= 2015

Requirements for DND

  • CUDA >= 9.0
  • Python 3.6+
  • Tensorflow >= 1.14

Data Collection

Data Format

  1. File Name: We have two types of file names.
  • D_A_S_I_T_P
    • D: date (YYYYMMDD).
    • A: age.
    • S: sex (male or female).
    • I: initial for discrimination.
    • T: typing speed on physical keyboard.
    • P: palm attached or detached while typing.
    • e.g. 20190117_24_male_lhk_200_x
  • D_A_S_M_T
    • M: major for discrimination.
    • e.g. 20180831_26_male_enginerring_140
  1. Data Format
  • One or two line(s) of phrases.
    • When an enter is involved, two lines appear.
    • The two phrases are separated by the enter key.
  • The sequence of x touch positions.
  • The sequence of y touch positions.

Data Visualization

To visualize the user behavior and analyze the statistics of user behavior, run the below. Running below will create two directories ('list_data' and 'figs') and save both the preprocessed results and the figures.

cd user_behavior_analysis

# preprocess the raw_data and save the result in the 'list_data' directory
python3 preprocessing.py

# visualize each experiment participant's typing behavior
# and extracts the statistics over the whole participants
python3 user_analysis.py

Training and Testing

For training, you need to set up a conda environment (recommended), or you can use pip instead

conda cread --name ikeyboard python=3.6
conda activate ikeyboard
conda install -c conda-forge tensorflow-gpu=1.14 editdistance

Then, you need to prepare data records using the "data.py" script as follows

python data.py

Executing the above script will generate a set of .tfrecords and .pkl objects required for training and testing.

Finally, you can train and test the propose DND model as follows

python train.py --name experiment_name
python test_experiment.py

For training options and test options, refer to "train_script.py" and "test_script.py".

Notification

  • The paper has been accepted! (IEEE Trans. on Cybernetics)
  • Any comments are welcome
  • Thank you for your attention

Citations

Please consider citing this project in your publications if you find this helpful. The following is the BibTeX.

@article{kim2019keyboard,
  title={I-Keyboard: Fully Imaginary Keyboard on Touch Devices Empowered by Deep Neural Decoder},
  author={Kim, Ue-Hwan and Yoo, Sahng-Min and Kim, Jong-Hwan},
  journal={IEEE Transactions on Cybernetics},
  year={2019}
}

Acknowledgement

This work was supported by the National Research Foundation of Korea (NRF) grant funded by the Korea government (MSIT) (No. NRF-2017R1A2A1A17069837).

i-keyboard's People

Contributors

uehwan avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  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.