105
Building IMU-based Gesture Recognition!!! Jennifer Wang jewang.net tJewang.net // Hackaday Supercon ‘18t

Gesture IMU-based Recognition!!! Buildingjewang.net/static/jewang - magic wand for hackaday supercon.pdf · Gesture Recognition!!! Jennifer Wang jewang.net tJewang.net // Hackaday

  • Upload
    others

  • View
    10

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Gesture IMU-based Recognition!!! Buildingjewang.net/static/jewang - magic wand for hackaday supercon.pdf · Gesture Recognition!!! Jennifer Wang jewang.net tJewang.net // Hackaday

Building IMU-based Gesture Recognition!!!Jennifer Wangjewang.net

tJewang.net // Hackaday Supercon ‘18t

Page 2: Gesture IMU-based Recognition!!! Buildingjewang.net/static/jewang - magic wand for hackaday supercon.pdf · Gesture Recognition!!! Jennifer Wang jewang.net tJewang.net // Hackaday

Jennifer WangSoftware Engineer & Hardware PrototyperI <3 sensors

● Phones● Wearables● Robots● Telescopes

jewang.net / [email protected]

Hello world!

tJewang.net // Hackaday Supercon ‘18t

Page 3: Gesture IMU-based Recognition!!! Buildingjewang.net/static/jewang - magic wand for hackaday supercon.pdf · Gesture Recognition!!! Jennifer Wang jewang.net tJewang.net // Hackaday

PreambleThank you to these lovely people:

● Tim ‘mithro’ Ansell● Kat Fang● Cynthia Gan● Samy Kamkar● Sophi Kravitz● Jinna Lei● Jen Tong● Tony Valderrama● Ruth Grace Wong

Please go vote!

tJewang.net // Hackaday Supercon ‘18t

Page 4: Gesture IMU-based Recognition!!! Buildingjewang.net/static/jewang - magic wand for hackaday supercon.pdf · Gesture Recognition!!! Jennifer Wang jewang.net tJewang.net // Hackaday

tJewang.net // Hackaday Supercon ‘18t

Page 5: Gesture IMU-based Recognition!!! Buildingjewang.net/static/jewang - magic wand for hackaday supercon.pdf · Gesture Recognition!!! Jennifer Wang jewang.net tJewang.net // Hackaday

tJewang.net // Hackaday Supercon ‘18t

Page 6: Gesture IMU-based Recognition!!! Buildingjewang.net/static/jewang - magic wand for hackaday supercon.pdf · Gesture Recognition!!! Jennifer Wang jewang.net tJewang.net // Hackaday

tJewang.net // Hackaday Supercon ‘18t

Page 7: Gesture IMU-based Recognition!!! Buildingjewang.net/static/jewang - magic wand for hackaday supercon.pdf · Gesture Recognition!!! Jennifer Wang jewang.net tJewang.net // Hackaday

tJewang.net // Hackaday Supercon ‘18t

Page 8: Gesture IMU-based Recognition!!! Buildingjewang.net/static/jewang - magic wand for hackaday supercon.pdf · Gesture Recognition!!! Jennifer Wang jewang.net tJewang.net // Hackaday

Wingardium (Leviosa)Levitation

FlippendoBread and butter

tJewang.net // Hackaday Supercon ‘18t

Page 9: Gesture IMU-based Recognition!!! Buildingjewang.net/static/jewang - magic wand for hackaday supercon.pdf · Gesture Recognition!!! Jennifer Wang jewang.net tJewang.net // Hackaday

Final Producthttps://github.com/jewang/gesture-demo

tJewang.net // Hackaday Supercon ‘18t

Page 10: Gesture IMU-based Recognition!!! Buildingjewang.net/static/jewang - magic wand for hackaday supercon.pdf · Gesture Recognition!!! Jennifer Wang jewang.net tJewang.net // Hackaday

1. Define & scope the problem

2. Propose machine learning model / algorithm

3. Collect data

4. Train model & iterate

5. Productionize the model

How to Gesture Recognition

tJewang.net // Hackaday Supercon ‘18t

Page 12: Gesture IMU-based Recognition!!! Buildingjewang.net/static/jewang - magic wand for hackaday supercon.pdf · Gesture Recognition!!! Jennifer Wang jewang.net tJewang.net // Hackaday

Sample sensor data

Run data on deep learning model

Post-process result

Output!!!

Generate Features

✨Machine Learning ✨

What will the final product look like?

tJewang.net // Hackaday Supercon ‘18t

Page 13: Gesture IMU-based Recognition!!! Buildingjewang.net/static/jewang - magic wand for hackaday supercon.pdf · Gesture Recognition!!! Jennifer Wang jewang.net tJewang.net // Hackaday

What will the final product look like?

Sample sensor data

Run data on deep learning model

Post-process result

Output!!!

Generate Features

✨Machine Learning ✨

What is a feature?Summary. Captures what is interesting.

tJewang.net // Hackaday Supercon ‘18t

Page 14: Gesture IMU-based Recognition!!! Buildingjewang.net/static/jewang - magic wand for hackaday supercon.pdf · Gesture Recognition!!! Jennifer Wang jewang.net tJewang.net // Hackaday

Sensor Data

tJewang.net // Hackaday Supercon ‘18t

Page 15: Gesture IMU-based Recognition!!! Buildingjewang.net/static/jewang - magic wand for hackaday supercon.pdf · Gesture Recognition!!! Jennifer Wang jewang.net tJewang.net // Hackaday

Sensor Data

tJewang.net // Hackaday Supercon ‘18t

Page 16: Gesture IMU-based Recognition!!! Buildingjewang.net/static/jewang - magic wand for hackaday supercon.pdf · Gesture Recognition!!! Jennifer Wang jewang.net tJewang.net // Hackaday

Sensor Data

tJewang.net // Hackaday Supercon ‘18t

Page 17: Gesture IMU-based Recognition!!! Buildingjewang.net/static/jewang - magic wand for hackaday supercon.pdf · Gesture Recognition!!! Jennifer Wang jewang.net tJewang.net // Hackaday

Sensor Data

tJewang.net // Hackaday Supercon ‘18t

Page 18: Gesture IMU-based Recognition!!! Buildingjewang.net/static/jewang - magic wand for hackaday supercon.pdf · Gesture Recognition!!! Jennifer Wang jewang.net tJewang.net // Hackaday

Sensor Data

tJewang.net // Hackaday Supercon ‘18t

Page 19: Gesture IMU-based Recognition!!! Buildingjewang.net/static/jewang - magic wand for hackaday supercon.pdf · Gesture Recognition!!! Jennifer Wang jewang.net tJewang.net // Hackaday

Sensor Data

tJewang.net // Hackaday Supercon ‘18t

Page 20: Gesture IMU-based Recognition!!! Buildingjewang.net/static/jewang - magic wand for hackaday supercon.pdf · Gesture Recognition!!! Jennifer Wang jewang.net tJewang.net // Hackaday

Sensor Data

tJewang.net // Hackaday Supercon ‘18t

Page 21: Gesture IMU-based Recognition!!! Buildingjewang.net/static/jewang - magic wand for hackaday supercon.pdf · Gesture Recognition!!! Jennifer Wang jewang.net tJewang.net // Hackaday

Sensor Data

tJewang.net // Hackaday Supercon ‘18t

Page 22: Gesture IMU-based Recognition!!! Buildingjewang.net/static/jewang - magic wand for hackaday supercon.pdf · Gesture Recognition!!! Jennifer Wang jewang.net tJewang.net // Hackaday

Sensor Data

tJewang.net // Hackaday Supercon ‘18t

Page 23: Gesture IMU-based Recognition!!! Buildingjewang.net/static/jewang - magic wand for hackaday supercon.pdf · Gesture Recognition!!! Jennifer Wang jewang.net tJewang.net // Hackaday

Sensor Data

tJewang.net // Hackaday Supercon ‘18t

Page 24: Gesture IMU-based Recognition!!! Buildingjewang.net/static/jewang - magic wand for hackaday supercon.pdf · Gesture Recognition!!! Jennifer Wang jewang.net tJewang.net // Hackaday

Sensor Data

tJewang.net // Hackaday Supercon ‘18t

Page 25: Gesture IMU-based Recognition!!! Buildingjewang.net/static/jewang - magic wand for hackaday supercon.pdf · Gesture Recognition!!! Jennifer Wang jewang.net tJewang.net // Hackaday

1. Define & scope the problem

2. Propose machine learning model / algorithm

3. Collect data

4. Train model & iterate

5. Productionize the model

How to Gesture Recognition

tJewang.net // Hackaday Supercon ‘18t

Page 26: Gesture IMU-based Recognition!!! Buildingjewang.net/static/jewang - magic wand for hackaday supercon.pdf · Gesture Recognition!!! Jennifer Wang jewang.net tJewang.net // Hackaday

1. Define & scope the problem

2. Propose machine learning model / algorithm

3. Collect data

4. Train model & iterate

5. Productionize the model

How to Gesture Recognition

tJewang.net // Hackaday Supercon ‘18t

Page 27: Gesture IMU-based Recognition!!! Buildingjewang.net/static/jewang - magic wand for hackaday supercon.pdf · Gesture Recognition!!! Jennifer Wang jewang.net tJewang.net // Hackaday

Define & scope the Problem

What are your resources? Time? $?

Who/when/where will it be used?

Power, Latency, Memory Req’s?

When is your model good enough?

tJewang.net // Hackaday Supercon ‘18t

Page 28: Gesture IMU-based Recognition!!! Buildingjewang.net/static/jewang - magic wand for hackaday supercon.pdf · Gesture Recognition!!! Jennifer Wang jewang.net tJewang.net // Hackaday

Define & scope the Problem

What are your resources? Time? $? Me. 1 Month! <$200?

Who/when/where will it be used?

Power, Latency, Memory Req’s?

When is your model good enough?

tJewang.net // Hackaday Supercon ‘18t

Page 29: Gesture IMU-based Recognition!!! Buildingjewang.net/static/jewang - magic wand for hackaday supercon.pdf · Gesture Recognition!!! Jennifer Wang jewang.net tJewang.net // Hackaday

Define & scope the Problem

What are your resources? Time? $? Me. 1 Month! <$200?

Who/when/where will it be used? Me. Halloween evening! Outdoors, in my neighborhood.

Power, Latency, Memory Req’s?

When is your model good enough?

tJewang.net // Hackaday Supercon ‘18t

Page 30: Gesture IMU-based Recognition!!! Buildingjewang.net/static/jewang - magic wand for hackaday supercon.pdf · Gesture Recognition!!! Jennifer Wang jewang.net tJewang.net // Hackaday

Machine Learning on an Embedded System: Pick 2

Memory-efficient (Model Size)

Real-timeFast Detection

(Latency)

Accuracy

tJewang.net // Hackaday Supercon ‘18t

Page 31: Gesture IMU-based Recognition!!! Buildingjewang.net/static/jewang - magic wand for hackaday supercon.pdf · Gesture Recognition!!! Jennifer Wang jewang.net tJewang.net // Hackaday

Machine Learning on an Embedded System: Pick 2

Memory-efficient (Model Size)

Real-timeFast Detection

(Latency)

Accuracy Ship as fast as possible

tJewang.net // Hackaday Supercon ‘18t

Page 32: Gesture IMU-based Recognition!!! Buildingjewang.net/static/jewang - magic wand for hackaday supercon.pdf · Gesture Recognition!!! Jennifer Wang jewang.net tJewang.net // Hackaday

Define & scope the Problem

What are your resources? Time? $? Me. 1 Month! <$200?

Who/when/where will it be used? Me. Halloween evening! Outdoors, in my neighborhood.

Power, Latency, Memory Req’s?

When is your model good enough?

tJewang.net // Hackaday Supercon ‘18t

Page 33: Gesture IMU-based Recognition!!! Buildingjewang.net/static/jewang - magic wand for hackaday supercon.pdf · Gesture Recognition!!! Jennifer Wang jewang.net tJewang.net // Hackaday

Define & scope the Problem

What are your resources? Time? $? Me. 1 Month! <$200?

Who/when/where will it be used? Me. Halloween evening! Outdoors, in my neighborhood.

Power, Latency, Memory Req’s? Don’t worry about it for now. Ship as fast as possible.

When is your model good enough?

tJewang.net // Hackaday Supercon ‘18t

Page 34: Gesture IMU-based Recognition!!! Buildingjewang.net/static/jewang - magic wand for hackaday supercon.pdf · Gesture Recognition!!! Jennifer Wang jewang.net tJewang.net // Hackaday

Define & scope the Problem

What are your resources? Time? $? Me. 1 Month! <$200?

Who/when/where will it be used? Me. Halloween evening! Outdoors, in my neighborhood.

Power, Latency, Memory Req’s? Don’t worry about it for now. Ship as fast as possible.

When is your model good enough? When Halloween happensWhen kids are happy :)

tJewang.net // Hackaday Supercon ‘18t

Page 35: Gesture IMU-based Recognition!!! Buildingjewang.net/static/jewang - magic wand for hackaday supercon.pdf · Gesture Recognition!!! Jennifer Wang jewang.net tJewang.net // Hackaday

tJewang.net // Hackaday Supercon ‘18t

What sensors?

What is the basic architecture?

Define & scope the hardware

Page 36: Gesture IMU-based Recognition!!! Buildingjewang.net/static/jewang - magic wand for hackaday supercon.pdf · Gesture Recognition!!! Jennifer Wang jewang.net tJewang.net // Hackaday

Common sensors for gesture recognition● Camera?

tJewang.net // Hackaday Supercon ‘18t

Page 37: Gesture IMU-based Recognition!!! Buildingjewang.net/static/jewang - magic wand for hackaday supercon.pdf · Gesture Recognition!!! Jennifer Wang jewang.net tJewang.net // Hackaday

Common sensors for gesture recognition● Camera? → No, it’s dark outside

tJewang.net // Hackaday Supercon ‘18t

Page 38: Gesture IMU-based Recognition!!! Buildingjewang.net/static/jewang - magic wand for hackaday supercon.pdf · Gesture Recognition!!! Jennifer Wang jewang.net tJewang.net // Hackaday

Common sensors for gesture recognition● Camera? → No, it’s dark outside● IR/Wireless Beacons?

tJewang.net // Hackaday Supercon ‘18t

Page 39: Gesture IMU-based Recognition!!! Buildingjewang.net/static/jewang - magic wand for hackaday supercon.pdf · Gesture Recognition!!! Jennifer Wang jewang.net tJewang.net // Hackaday

Common sensors for gesture recognition● Camera? → No, it’s dark outside● IR/Wireless Beacons? → No, I can’t mount these all over my

neighborhood

tJewang.net // Hackaday Supercon ‘18t

Page 40: Gesture IMU-based Recognition!!! Buildingjewang.net/static/jewang - magic wand for hackaday supercon.pdf · Gesture Recognition!!! Jennifer Wang jewang.net tJewang.net // Hackaday

Common sensors for gesture recognition● Camera? → No, it’s dark outside● IR/Wireless Beacons? → No, I can’t mount these all over my

neighborhood● Sonar / Audio?

tJewang.net // Hackaday Supercon ‘18t

Page 41: Gesture IMU-based Recognition!!! Buildingjewang.net/static/jewang - magic wand for hackaday supercon.pdf · Gesture Recognition!!! Jennifer Wang jewang.net tJewang.net // Hackaday

Common sensors for gesture recognition● Camera? → No, it’s dark outside● IR/Wireless Beacons? → No, I can’t mount these all over my

neighborhood● Sonar / Audio? → No, the environment will be noisy because

I’ll be outside! Walking around!

tJewang.net // Hackaday Supercon ‘18t

Page 42: Gesture IMU-based Recognition!!! Buildingjewang.net/static/jewang - magic wand for hackaday supercon.pdf · Gesture Recognition!!! Jennifer Wang jewang.net tJewang.net // Hackaday

Common sensors for gesture recognition● Camera? → No, it’s dark outside● IR/Wireless Beacons? → No, I can’t mount these all over my

neighborhood● Sonar / Audio? → No, the environment will be noisy because

I’ll be outside! Walking around!● Magic E/M Sensing?

tJewang.net // Hackaday Supercon ‘18t

Page 43: Gesture IMU-based Recognition!!! Buildingjewang.net/static/jewang - magic wand for hackaday supercon.pdf · Gesture Recognition!!! Jennifer Wang jewang.net tJewang.net // Hackaday

Common sensors for gesture recognition● Camera? → No, it’s dark outside● IR/Wireless Beacons? → No, I can’t mount these all over my

neighborhood● Sonar / Audio? → No, the environment will be noisy because

I’ll be outside! Walking around!● Magic E/M Sensing? → No, I am not an academic :)

tJewang.net // Hackaday Supercon ‘18t

Page 44: Gesture IMU-based Recognition!!! Buildingjewang.net/static/jewang - magic wand for hackaday supercon.pdf · Gesture Recognition!!! Jennifer Wang jewang.net tJewang.net // Hackaday

Common sensors for gesture recognition● Camera? → No, it’s dark outside● IR/Wireless Beacons? → No, I can’t mount these all over my

neighborhood● Sonar / Audio? → No, the environment will be noisy because

I’ll be outside! Walking around!● Magic E/M Sensing? → No, I am not an academic :)● Inertial Measurement Unit (IMU)?

tJewang.net // Hackaday Supercon ‘18t

Page 45: Gesture IMU-based Recognition!!! Buildingjewang.net/static/jewang - magic wand for hackaday supercon.pdf · Gesture Recognition!!! Jennifer Wang jewang.net tJewang.net // Hackaday

Common sensors for gesture recognition● Camera? → No, it’s dark outside● IR/Wireless Beacons? → No, I can’t mount these all over my

neighborhood● Sonar / Audio? → No, the environment will be noisy because

I’ll be outside! Walking around!● Magic E/M Sensing? → No, I am not an academic :)● Inertial Measurement Unit (IMU)? → Yes!

tJewang.net // Hackaday Supercon ‘18t

Page 46: Gesture IMU-based Recognition!!! Buildingjewang.net/static/jewang - magic wand for hackaday supercon.pdf · Gesture Recognition!!! Jennifer Wang jewang.net tJewang.net // Hackaday

What is an inertial measurement unit (IMU)?✨ Orientation! ✨

Accelerometer + Gyroscope + Magnetometer

3 Axis

tJewang.net // Hackaday Supercon ‘18t

Page 47: Gesture IMU-based Recognition!!! Buildingjewang.net/static/jewang - magic wand for hackaday supercon.pdf · Gesture Recognition!!! Jennifer Wang jewang.net tJewang.net // Hackaday

tJewang.net // Hackaday Supercon ‘18t

What sensors?

What is the basic architecture?

Define & scope the hardware

Page 48: Gesture IMU-based Recognition!!! Buildingjewang.net/static/jewang - magic wand for hackaday supercon.pdf · Gesture Recognition!!! Jennifer Wang jewang.net tJewang.net // Hackaday

tJewang.net // Hackaday Supercon ‘18t

What sensors? IMU (Bosch BNO055)

What is the basic architecture?

Define & scope the hardware

Page 49: Gesture IMU-based Recognition!!! Buildingjewang.net/static/jewang - magic wand for hackaday supercon.pdf · Gesture Recognition!!! Jennifer Wang jewang.net tJewang.net // Hackaday

Parts!UART

USB Audio

USB Power

Raspi Zero WBNO055

IMU

Phone battery

SpeakerGlue this to a cosplay wand.tJewang.net // Hackaday Supercon ‘18t

Page 50: Gesture IMU-based Recognition!!! Buildingjewang.net/static/jewang - magic wand for hackaday supercon.pdf · Gesture Recognition!!! Jennifer Wang jewang.net tJewang.net // Hackaday

Wand

Parts

Battery

Raspi Zero WIMU

Speaker goes up your sleeve ;)tJewang.net // Hackaday Supercon ‘18t

Page 51: Gesture IMU-based Recognition!!! Buildingjewang.net/static/jewang - magic wand for hackaday supercon.pdf · Gesture Recognition!!! Jennifer Wang jewang.net tJewang.net // Hackaday

y

x

z

tJewang.net // Hackaday Supercon ‘18t

Page 52: Gesture IMU-based Recognition!!! Buildingjewang.net/static/jewang - magic wand for hackaday supercon.pdf · Gesture Recognition!!! Jennifer Wang jewang.net tJewang.net // Hackaday

tJewang.net // Hackaday Supercon ‘18t

What sensors? IMU (Bosch BNO055)

What is the basic architecture?

Define & scope the hardware

Page 53: Gesture IMU-based Recognition!!! Buildingjewang.net/static/jewang - magic wand for hackaday supercon.pdf · Gesture Recognition!!! Jennifer Wang jewang.net tJewang.net // Hackaday

tJewang.net // Hackaday Supercon ‘18t

What sensors? IMU (Bosch BNO055)

What is the basic architecture? Raspi Zero W glued to a wand. Embedded Linux.

Define & scope the hardware

Page 54: Gesture IMU-based Recognition!!! Buildingjewang.net/static/jewang - magic wand for hackaday supercon.pdf · Gesture Recognition!!! Jennifer Wang jewang.net tJewang.net // Hackaday

1. Define & scope the problem

2. Propose machine learning model / algorithm

3. Collect data

4. Train model & iterate

5. Productionize the model

How to Gesture Recognition

tJewang.net // Hackaday Supercon ‘18t

Page 55: Gesture IMU-based Recognition!!! Buildingjewang.net/static/jewang - magic wand for hackaday supercon.pdf · Gesture Recognition!!! Jennifer Wang jewang.net tJewang.net // Hackaday

1. Define & scope the problem

2. Propose machine learning model / algorithm

3. Collect data

4. Train model & iterate

5. Productionize the model

How to Gesture Recognition

tJewang.net // Hackaday Supercon ‘18t

Page 56: Gesture IMU-based Recognition!!! Buildingjewang.net/static/jewang - magic wand for hackaday supercon.pdf · Gesture Recognition!!! Jennifer Wang jewang.net tJewang.net // Hackaday

What algorithm should I use?

Deep learning! Signal processingTraditional Machine Learning

Domain knowledge Not much Lots! Medium

Amount of data Lots! Not as much Medium

Easy to debug Harder Easier Medium

tJewang.net // Hackaday Supercon ‘18t

Page 57: Gesture IMU-based Recognition!!! Buildingjewang.net/static/jewang - magic wand for hackaday supercon.pdf · Gesture Recognition!!! Jennifer Wang jewang.net tJewang.net // Hackaday

What algorithm should I use?

Deep learning! Signal processingTraditional

Machine Learning

Domain knowledge Not much Lots! Medium

Amount of data Lots! Not as much Medium

Easy to debug Harder Easier Medium

tJewang.net // Hackaday Supercon ‘18t

Page 58: Gesture IMU-based Recognition!!! Buildingjewang.net/static/jewang - magic wand for hackaday supercon.pdf · Gesture Recognition!!! Jennifer Wang jewang.net tJewang.net // Hackaday

What algorithm should I use?

Deep learning! Signal processingTraditional

Machine Learning

Domain knowledge Not much Lots! Medium

Amount of data Lots! Not as much Medium

Easy to debug Harder Easier Medium

1. Ship your MVP2. Get more users3. More users = more data4. Switch to deep learning

tJewang.net // Hackaday Supercon ‘18t

Page 59: Gesture IMU-based Recognition!!! Buildingjewang.net/static/jewang - magic wand for hackaday supercon.pdf · Gesture Recognition!!! Jennifer Wang jewang.net tJewang.net // Hackaday

Software Used● Language: Python3● Numerical Libraries: Pandas, Numpy● Data Notebook: Jupyter Notebook● Data Visualization: Plot.ly● Machine learning library: scikit-learn

tJewang.net // Hackaday Supercon ‘18t

Page 60: Gesture IMU-based Recognition!!! Buildingjewang.net/static/jewang - magic wand for hackaday supercon.pdf · Gesture Recognition!!! Jennifer Wang jewang.net tJewang.net // Hackaday

tJewang.net // Hackaday Supercon ‘18t

Page 61: Gesture IMU-based Recognition!!! Buildingjewang.net/static/jewang - magic wand for hackaday supercon.pdf · Gesture Recognition!!! Jennifer Wang jewang.net tJewang.net // Hackaday

tJewang.net // Hackaday Supercon ‘18t

Page 62: Gesture IMU-based Recognition!!! Buildingjewang.net/static/jewang - magic wand for hackaday supercon.pdf · Gesture Recognition!!! Jennifer Wang jewang.net tJewang.net // Hackaday

tJewang.net // Hackaday Supercon ‘18t

Page 63: Gesture IMU-based Recognition!!! Buildingjewang.net/static/jewang - magic wand for hackaday supercon.pdf · Gesture Recognition!!! Jennifer Wang jewang.net tJewang.net // Hackaday

tJewang.net // Hackaday Supercon ‘18t

Page 64: Gesture IMU-based Recognition!!! Buildingjewang.net/static/jewang - magic wand for hackaday supercon.pdf · Gesture Recognition!!! Jennifer Wang jewang.net tJewang.net // Hackaday

tJewang.net // Hackaday Supercon ‘18t

Page 65: Gesture IMU-based Recognition!!! Buildingjewang.net/static/jewang - magic wand for hackaday supercon.pdf · Gesture Recognition!!! Jennifer Wang jewang.net tJewang.net // Hackaday

tJewang.net // Hackaday Supercon ‘18t

Page 66: Gesture IMU-based Recognition!!! Buildingjewang.net/static/jewang - magic wand for hackaday supercon.pdf · Gesture Recognition!!! Jennifer Wang jewang.net tJewang.net // Hackaday

tJewang.net // Hackaday Supercon ‘18t

Page 67: Gesture IMU-based Recognition!!! Buildingjewang.net/static/jewang - magic wand for hackaday supercon.pdf · Gesture Recognition!!! Jennifer Wang jewang.net tJewang.net // Hackaday

LinearSVC

tJewang.net // Hackaday Supercon ‘18t

Page 68: Gesture IMU-based Recognition!!! Buildingjewang.net/static/jewang - magic wand for hackaday supercon.pdf · Gesture Recognition!!! Jennifer Wang jewang.net tJewang.net // Hackaday

1. Define & scope the problem

2. Propose machine learning model / algorithm

3. Collect data

4. Train model & iterate

5. Productionize the model

How to Gesture Recognition

tJewang.net // Hackaday Supercon ‘18t

Page 69: Gesture IMU-based Recognition!!! Buildingjewang.net/static/jewang - magic wand for hackaday supercon.pdf · Gesture Recognition!!! Jennifer Wang jewang.net tJewang.net // Hackaday

1. Define & scope the problem

2. Propose machine learning model / algorithm

3. Collect data

4. Train model & iterate

5. Productionize the model

How to Gesture Recognition

tJewang.net // Hackaday Supercon ‘18t

Page 70: Gesture IMU-based Recognition!!! Buildingjewang.net/static/jewang - magic wand for hackaday supercon.pdf · Gesture Recognition!!! Jennifer Wang jewang.net tJewang.net // Hackaday

Planning data collection● How much data do you need?

● Look for pre-existing data

● More data = More💰 / 🕒Design collection procedure, manage data collectors, QA...

tJewang.net // Hackaday Supercon ‘18t

Page 71: Gesture IMU-based Recognition!!! Buildingjewang.net/static/jewang - magic wand for hackaday supercon.pdf · Gesture Recognition!!! Jennifer Wang jewang.net tJewang.net // Hackaday

Doing data collectionTime to code!

Lock mechanical design!

Match & record data for all expected use cases!

Who × Posture × When × Where

tJewang.net // Hackaday Supercon ‘18t

Page 72: Gesture IMU-based Recognition!!! Buildingjewang.net/static/jewang - magic wand for hackaday supercon.pdf · Gesture Recognition!!! Jennifer Wang jewang.net tJewang.net // Hackaday

Record data for all expected use cases!Wingardium Flippendo Negative

Sitting Couch ✓ ✓ ✓

Sitting Chair ✓ ✓ ✓

Sitting Floor ✓ ✓ ✓

Standing ✓ ✓ ✓

Walking ✓ ✓ ✓

tJewang.net // Hackaday Supercon ‘18t

Page 73: Gesture IMU-based Recognition!!! Buildingjewang.net/static/jewang - magic wand for hackaday supercon.pdf · Gesture Recognition!!! Jennifer Wang jewang.net tJewang.net // Hackaday

Record data for all expected use cases!Wingardium Flippendo Negative*

Sitting Couch ✓ ✓ ✓

Sitting Chair ✓ ✓ ✓

Sitting Floor ✓ ✓ ✓

Standing ✓ ✓ ✓

Walking ✓ ✓ ✓

tJewang.net // Hackaday Supercon ‘18t

Page 74: Gesture IMU-based Recognition!!! Buildingjewang.net/static/jewang - magic wand for hackaday supercon.pdf · Gesture Recognition!!! Jennifer Wang jewang.net tJewang.net // Hackaday

Data collection is an exercise in diligence

tJewang.net // Hackaday Supercon ‘18t

Page 75: Gesture IMU-based Recognition!!! Buildingjewang.net/static/jewang - magic wand for hackaday supercon.pdf · Gesture Recognition!!! Jennifer Wang jewang.net tJewang.net // Hackaday

Final data collected for magic wandcollect_data.py → CSV

286 1.5s traces98 Wingardium99 Flippendo89 Negative

~7 minutes of data257,000+ data points

tJewang.net // Hackaday Supercon ‘18t

Page 76: Gesture IMU-based Recognition!!! Buildingjewang.net/static/jewang - magic wand for hackaday supercon.pdf · Gesture Recognition!!! Jennifer Wang jewang.net tJewang.net // Hackaday

1. Define & scope the problem

2. Propose machine learning model / algorithm

3. Collect data

4. Train model & iterate

5. Productionize the model

How to Gesture Recognition

tJewang.net // Hackaday Supercon ‘18t

Page 77: Gesture IMU-based Recognition!!! Buildingjewang.net/static/jewang - magic wand for hackaday supercon.pdf · Gesture Recognition!!! Jennifer Wang jewang.net tJewang.net // Hackaday

1. Define & scope the problem

2. Propose machine learning model / algorithm

3. Collect data

4. Train model & iterate

5. Productionize the model

How to Gesture Recognition

tJewang.net // Hackaday Supercon ‘18t

Page 78: Gesture IMU-based Recognition!!! Buildingjewang.net/static/jewang - magic wand for hackaday supercon.pdf · Gesture Recognition!!! Jennifer Wang jewang.net tJewang.net // Hackaday

Train model & iterate● Explorations.ipynb● Mostly data cleaning :P

tJewang.net // Hackaday Supercon ‘18t

Page 79: Gesture IMU-based Recognition!!! Buildingjewang.net/static/jewang - magic wand for hackaday supercon.pdf · Gesture Recognition!!! Jennifer Wang jewang.net tJewang.net // Hackaday

WingardiumAc

cel

Gyro

Flippendo

tJewang.net // Hackaday Supercon ‘18t

Page 80: Gesture IMU-based Recognition!!! Buildingjewang.net/static/jewang - magic wand for hackaday supercon.pdf · Gesture Recognition!!! Jennifer Wang jewang.net tJewang.net // Hackaday

Features● max_accel● min_accel● Range_accel● mean_accel● std_accel

● max_gyro● min_gyro● range_gyro● mean_gyro● std_gyro

tJewang.net // Hackaday Supercon ‘18t

Page 81: Gesture IMU-based Recognition!!! Buildingjewang.net/static/jewang - magic wand for hackaday supercon.pdf · Gesture Recognition!!! Jennifer Wang jewang.net tJewang.net // Hackaday

Train model & iterate● Iteration #1 → Didn’t work well. 102 traces.

tJewang.net // Hackaday Supercon ‘18t

Page 82: Gesture IMU-based Recognition!!! Buildingjewang.net/static/jewang - magic wand for hackaday supercon.pdf · Gesture Recognition!!! Jennifer Wang jewang.net tJewang.net // Hackaday

Train model & iterate● Iteration #1 → Didn’t work well. 102 traces.

○ Clean Data! Collect new data!

tJewang.net // Hackaday Supercon ‘18t

Page 83: Gesture IMU-based Recognition!!! Buildingjewang.net/static/jewang - magic wand for hackaday supercon.pdf · Gesture Recognition!!! Jennifer Wang jewang.net tJewang.net // Hackaday

Train model & iterate● Iteration #1 → Didn’t work well. 102 traces.

○ Clean Data! Collect new data!● Iteration #2 → Didn’t work well. 167 traces.

tJewang.net // Hackaday Supercon ‘18t

Page 84: Gesture IMU-based Recognition!!! Buildingjewang.net/static/jewang - magic wand for hackaday supercon.pdf · Gesture Recognition!!! Jennifer Wang jewang.net tJewang.net // Hackaday

Train model & iterate● Iteration #1 → Didn’t work well. 102 traces.

○ Clean Data! Collect new data!● Iteration #2 → Didn’t work well. 167 traces.

○ Clean Data! Collect new data!

tJewang.net // Hackaday Supercon ‘18t

Page 85: Gesture IMU-based Recognition!!! Buildingjewang.net/static/jewang - magic wand for hackaday supercon.pdf · Gesture Recognition!!! Jennifer Wang jewang.net tJewang.net // Hackaday

Train model & iterate● Iteration #1 → Didn’t work well. 102 traces.

○ Clean Data! Collect new data!● Iteration #2 → Didn’t work well. 167 traces.

○ Clean Data! Collect new data! ● Iteration #3: → Worked OK, distinguish gestures. 286 traces.

tJewang.net // Hackaday Supercon ‘18t

Page 86: Gesture IMU-based Recognition!!! Buildingjewang.net/static/jewang - magic wand for hackaday supercon.pdf · Gesture Recognition!!! Jennifer Wang jewang.net tJewang.net // Hackaday

Train model & iterate● Iteration #1 → Didn’t work well. 102 traces.

○ Clean Data! Collect new data!● Iteration #2 → Didn’t work well. 167 traces.

○ Clean Data! Collect new data!● Iteration #3: → Worked OK, distinguish gestures. 286 traces.

○ Feature Design

tJewang.net // Hackaday Supercon ‘18t

Page 87: Gesture IMU-based Recognition!!! Buildingjewang.net/static/jewang - magic wand for hackaday supercon.pdf · Gesture Recognition!!! Jennifer Wang jewang.net tJewang.net // Hackaday

WingardiumAc

cel

Gyro

Flippendo

tJewang.net // Hackaday Supercon ‘18t

Page 88: Gesture IMU-based Recognition!!! Buildingjewang.net/static/jewang - magic wand for hackaday supercon.pdf · Gesture Recognition!!! Jennifer Wang jewang.net tJewang.net // Hackaday

WingardiumAc

cel

Gyro

Flippendo

tJewang.net // Hackaday Supercon ‘18t

Page 89: Gesture IMU-based Recognition!!! Buildingjewang.net/static/jewang - magic wand for hackaday supercon.pdf · Gesture Recognition!!! Jennifer Wang jewang.net tJewang.net // Hackaday

WingardiumAc

cel

Gyro

FlippendoWingardium has 2 accel z-axis peaks while flippendo has 3!

tJewang.net // Hackaday Supercon ‘18t

Page 90: Gesture IMU-based Recognition!!! Buildingjewang.net/static/jewang - magic wand for hackaday supercon.pdf · Gesture Recognition!!! Jennifer Wang jewang.net tJewang.net // Hackaday

WingardiumAc

cel

Gyro

FlippendoWingardium has 2 accel z-axis peaks while flippendo has 3!

Hack a75% Accurate Peak Counter

tJewang.net // Hackaday Supercon ‘18t

Page 91: Gesture IMU-based Recognition!!! Buildingjewang.net/static/jewang - magic wand for hackaday supercon.pdf · Gesture Recognition!!! Jennifer Wang jewang.net tJewang.net // Hackaday

Features● max_accel● min_accel● Range_accel● mean_accel● std_accel

● max_gyro● min_gyro● range_gyro● mean_gyro● std_gyro

tJewang.net // Hackaday Supercon ‘18t

Page 92: Gesture IMU-based Recognition!!! Buildingjewang.net/static/jewang - magic wand for hackaday supercon.pdf · Gesture Recognition!!! Jennifer Wang jewang.net tJewang.net // Hackaday

Features● max_accel● min_accel● Range_accel● mean_accel● std_accel● accel_z_peaks

● max_gyro● min_gyro● range_gyro● mean_gyro● std_gyro

tJewang.net // Hackaday Supercon ‘18t

Page 93: Gesture IMU-based Recognition!!! Buildingjewang.net/static/jewang - magic wand for hackaday supercon.pdf · Gesture Recognition!!! Jennifer Wang jewang.net tJewang.net // Hackaday

Train model & iterate● Iteration #1 → Didn’t work well. 102 traces.

○ Clean Data! Collect new data!● Iteration #2 → Didn’t work well. 167 traces.

○ Clean Data! Collect new data!● Iteration #3: → Worked OK, distinguish gestures. 286 traces.

○ Feature Design

tJewang.net // Hackaday Supercon ‘18t

Page 94: Gesture IMU-based Recognition!!! Buildingjewang.net/static/jewang - magic wand for hackaday supercon.pdf · Gesture Recognition!!! Jennifer Wang jewang.net tJewang.net // Hackaday

Train model & iterate● Iteration #1 → Didn’t work well. 102 traces.

○ Clean Data! Collect new data!● Iteration #2 → Didn’t work well. 167 traces.

○ Clean Data! Collect new data!● Iteration #3: → Worked OK, distinguish gestures. 286 traces.

○ Feature Design● Iteration #4 → Good enough. It’s Halloween! Ship it!

tJewang.net // Hackaday Supercon ‘18t

Page 95: Gesture IMU-based Recognition!!! Buildingjewang.net/static/jewang - magic wand for hackaday supercon.pdf · Gesture Recognition!!! Jennifer Wang jewang.net tJewang.net // Hackaday

1. Define & scope the problem

2. Propose machine learning model / algorithm

3. Collect data

4. Train model & iterate

5. Productionize the model

How to Gesture Recognition

tJewang.net // Hackaday Supercon ‘18t

Page 96: Gesture IMU-based Recognition!!! Buildingjewang.net/static/jewang - magic wand for hackaday supercon.pdf · Gesture Recognition!!! Jennifer Wang jewang.net tJewang.net // Hackaday

1. Define & scope the problem

2. Propose machine learning model / algorithm

3. Collect data

4. Train model & iterate

5. Productionize the model

How to Gesture Recognition

tJewang.net // Hackaday Supercon ‘18t

Page 97: Gesture IMU-based Recognition!!! Buildingjewang.net/static/jewang - magic wand for hackaday supercon.pdf · Gesture Recognition!!! Jennifer Wang jewang.net tJewang.net // Hackaday

tJewang.net // Hackaday Supercon ‘18t

Page 98: Gesture IMU-based Recognition!!! Buildingjewang.net/static/jewang - magic wand for hackaday supercon.pdf · Gesture Recognition!!! Jennifer Wang jewang.net tJewang.net // Hackaday

Productionize the model● gesture_detector.py● <100 lines of code● Might need a little / lot of tuning ;)

tJewang.net // Hackaday Supercon ‘18t

Page 99: Gesture IMU-based Recognition!!! Buildingjewang.net/static/jewang - magic wand for hackaday supercon.pdf · Gesture Recognition!!! Jennifer Wang jewang.net tJewang.net // Hackaday

1. Define & scope the problem

2. Propose machine learning model / algorithm

3. Collect data

4. Train model & iterate

5. Productionize the model

How to Gesture Recognition

tJewang.net // Hackaday Supercon ‘18t

Page 100: Gesture IMU-based Recognition!!! Buildingjewang.net/static/jewang - magic wand for hackaday supercon.pdf · Gesture Recognition!!! Jennifer Wang jewang.net tJewang.net // Hackaday

1. Define & scope the problem

2. Propose machine learning model / algorithm

3. Collect data

4. Train model & iterate

5. Productionize the model

How to Gesture Recognition

jewang.net / [email protected] tJewang.net // Hackaday Supercon ‘18t

Build more cool stuff!

Page 101: Gesture IMU-based Recognition!!! Buildingjewang.net/static/jewang - magic wand for hackaday supercon.pdf · Gesture Recognition!!! Jennifer Wang jewang.net tJewang.net // Hackaday

IMUs + Machine Learning on a large scale...I <3 sensors

● City walkability● Better health phenotypes● Depression treatments● Census data● Earthquake detection

tJewang.net // Hackaday Supercon ‘18t

Page 103: Gesture IMU-based Recognition!!! Buildingjewang.net/static/jewang - magic wand for hackaday supercon.pdf · Gesture Recognition!!! Jennifer Wang jewang.net tJewang.net // Hackaday

1. Define & scope the problem

2. Propose machine learning model / algorithm

3. Collect data

4. Train model & iterate

5. Productionize the model

How to Gesture Recognition

Build more cool stuff!

jewang.net / [email protected] tJewang.net // Hackaday Supercon ‘18t

Page 104: Gesture IMU-based Recognition!!! Buildingjewang.net/static/jewang - magic wand for hackaday supercon.pdf · Gesture Recognition!!! Jennifer Wang jewang.net tJewang.net // Hackaday

AppendixtJewang.net // Hackaday Supercon ‘18t

Page 105: Gesture IMU-based Recognition!!! Buildingjewang.net/static/jewang - magic wand for hackaday supercon.pdf · Gesture Recognition!!! Jennifer Wang jewang.net tJewang.net // Hackaday

How does a Linear SVC model work?

tJewang.net // Hackaday Supercon ‘18t