71
SALT Software Architecture David Y. Kay Nov 2, 2015

SALT Software Architecture (at Butterfly)

Embed Size (px)

Citation preview

Page 1: SALT Software Architecture (at Butterfly)

SALT Software Architecture

David Y. Kay

Nov 2, 2015

Page 2: SALT Software Architecture (at Butterfly)

Before we begin…

Page 3: SALT Software Architecture (at Butterfly)

“Presentation on a project that is representative of your abilities”

Page 4: SALT Software Architecture (at Butterfly)
Page 5: SALT Software Architecture (at Butterfly)
Page 6: SALT Software Architecture (at Butterfly)

Bio

Lived in China Mobile since 2008

Hated It Entrepreneurship

Page 7: SALT Software Architecture (at Butterfly)

Big Names

Page 8: SALT Software Architecture (at Butterfly)

Interesting Projects

Kenya

Shark Tank Defense

Page 9: SALT Software Architecture (at Butterfly)

Startups

Page 10: SALT Software Architecture (at Butterfly)

Other Works

Page 11: SALT Software Architecture (at Butterfly)

Community

Page 12: SALT Software Architecture (at Butterfly)

Healthcare Hackathons

• MIT Hacking Medicine 2015 - 2x first place

• Yale CBIT-Core 2015 - Best Design

• NASA Space Apps - Global Finalist, 2012 & 2015

• GHG Healthcare Outcomes 2014 - 3rd Place

Page 13: SALT Software Architecture (at Butterfly)

Present Day

Page 14: SALT Software Architecture (at Butterfly)
Page 15: SALT Software Architecture (at Butterfly)

S.A.L.T.

Page 16: SALT Software Architecture (at Butterfly)
Page 17: SALT Software Architecture (at Butterfly)

Hardware Device

Page 18: SALT Software Architecture (at Butterfly)

High-tech Sensor?

Page 19: SALT Software Architecture (at Butterfly)
Page 20: SALT Software Architecture (at Butterfly)
Page 21: SALT Software Architecture (at Butterfly)
Page 22: SALT Software Architecture (at Butterfly)

How to read it?

Page 23: SALT Software Architecture (at Butterfly)
Page 24: SALT Software Architecture (at Butterfly)

In other words…

Page 25: SALT Software Architecture (at Butterfly)
Page 26: SALT Software Architecture (at Butterfly)

System Overview

Page 27: SALT Software Architecture (at Butterfly)

Polyglot

Page 28: SALT Software Architecture (at Butterfly)

Recognition API

Page 29: SALT Software Architecture (at Butterfly)
Page 30: SALT Software Architecture (at Butterfly)
Page 31: SALT Software Architecture (at Butterfly)

Why Python?

• OpenCV Bindings

• Highly productive

• Easy debugging

• Small system

Page 32: SALT Software Architecture (at Butterfly)

Computer Vision

Page 33: SALT Software Architecture (at Butterfly)
Page 34: SALT Software Architecture (at Butterfly)

Device

• Rotate to a standard orientation

• Remove perspective from the image

Page 35: SALT Software Architecture (at Butterfly)
Page 36: SALT Software Architecture (at Butterfly)
Page 37: SALT Software Architecture (at Butterfly)

Creatinine

• Segment the color key

• Find the square with the most similar average color

Page 38: SALT Software Architecture (at Butterfly)
Page 39: SALT Software Architecture (at Butterfly)

Chloride

• Thermometer-like gauge

• Find the red part

• Find the yellow part

• Count the lines

Page 40: SALT Software Architecture (at Butterfly)
Page 41: SALT Software Architecture (at Butterfly)

Finding The Red

• Use green channel

• Threshold

• Erode

• Dilate

Page 42: SALT Software Architecture (at Butterfly)
Page 43: SALT Software Architecture (at Butterfly)

The Filtering Problem

• Too sensitive? Over-counting

• Too strict? Under-counting

Page 44: SALT Software Architecture (at Butterfly)
Page 45: SALT Software Architecture (at Butterfly)

Computer Vision - Notes

• Show line counting issue

• Show the calibration issue

• Show experimenting with color spaces

• Show filtering challenges

Page 46: SALT Software Architecture (at Butterfly)

Server Deployment

Page 47: SALT Software Architecture (at Butterfly)

Server Deployment

Incredible Free Tier

Helpful for wrangling OpenCV

Page 48: SALT Software Architecture (at Butterfly)

Android App

• Founders on Android

• Android is the harder platform of the two

• Keep the app small

Page 49: SALT Software Architecture (at Butterfly)

Code Sharing

Page 50: SALT Software Architecture (at Butterfly)

• Cross-platform app development

• Open-core

• Use Case

• Primarily an Android app, secondarily an iPhone app

Page 51: SALT Software Architecture (at Butterfly)

• Functional, safe, and expressive

• Minimal overhead compared to Java

• EXCELLENT tooling, via IDEA plugin

Page 52: SALT Software Architecture (at Butterfly)
Page 53: SALT Software Architecture (at Butterfly)
Page 54: SALT Software Architecture (at Butterfly)

Medical Calculations

Page 55: SALT Software Architecture (at Butterfly)
Page 56: SALT Software Architecture (at Butterfly)

(& future formulas)

Page 57: SALT Software Architecture (at Butterfly)
Page 58: SALT Software Architecture (at Butterfly)
Page 59: SALT Software Architecture (at Butterfly)

Why Rust?

• Very strict, strongly-typed, safety-oriented language

• Easy C-compatible FFI

• Cross-platform, server/client

• Modern tools

Page 60: SALT Software Architecture (at Butterfly)
Page 61: SALT Software Architecture (at Butterfly)

Admin Dashboard

• Review Results & Troubleshoot

• In future:

• Mark results valid/invalid

• Build a corpus over time

Page 62: SALT Software Architecture (at Butterfly)
Page 63: SALT Software Architecture (at Butterfly)

Why Clojure(script)?

• Incredible agility (REPL & Figwheel)

• Functional Language

• Not mission critical - dynamic types

Page 64: SALT Software Architecture (at Butterfly)
Page 65: SALT Software Architecture (at Butterfly)
Page 66: SALT Software Architecture (at Butterfly)
Page 67: SALT Software Architecture (at Butterfly)

Demo

Page 68: SALT Software Architecture (at Butterfly)
Page 69: SALT Software Architecture (at Butterfly)

Recap

Page 70: SALT Software Architecture (at Butterfly)

Wrap

• Very lighting-dependent

• Would love to build a corpus and use ML

• Would love to spend more time with a computer vision expert

Page 71: SALT Software Architecture (at Butterfly)

Fin

[email protected]

DavidYKay.com

404-624-6385