cs 7616 pattern recognition - college of computingafb/classes/cs7616-spring2014/... · • cs 7616...

29
Introduction CS7616 Pattern Recognition – A. Bobick Aaron Bobick School of Interactive Computing CS 7616 Pattern Recognition Introduction

Upload: vanthuy

Post on 09-Feb-2018

215 views

Category:

Documents


0 download

TRANSCRIPT

Introduction CS7616 Pattern Recognition – A. Bobick Introduction CS7616 Pattern Recognition – A. Bobick

Aaron Bobick School of Interactive Computing

CS 7616 Pattern Recognition Introduction

Introduction CS7616 Pattern Recognition – A. Bobick Introduction CS7616 Pattern Recognition – A. Bobick

Where are you? • CS 7616 Pattern Recognition • Web site: http://www.cc.gatech.edu/~afb/classes/CS7616-Spring2014/

• Will have posted calendar/syllabus with posted slides, problem sets with data, other administrative stuff.

• T-square: The usual stuff. There is/will be a web page under resources that points to the class web page listed above.

• Slides: PDFs will be posted by linking to the calendar. Hopefully draft by class time, but I wouldn’t count on it.

• Piazza: You will all receive an invitation to Piazza for CS7616. If not, send us email. This was invaluable for discussions for problem sets in CS4495. Not sure if here. • Announcements will likely be done through both T-Square (and email) and Piazza

• Matlab access: if you don’t know how to get Matlab access, first ask a friend. Then come see TAs or me. If you want to use Python/Numpy that’s OK.

Introduction CS7616 Pattern Recognition – A. Bobick Introduction CS7616 Pattern Recognition – A. Bobick

Who are you? • From the web site:

This is a graduate level for those interested in pattern recognition in general and for some elements as applied to computer vision. It is *not* going to be a comprehensive Machine Learning course.

• What do you know?

• A good foundation of probability and linear algebra. This class will have more math in it than most Computer Science classes.

• Any Machine Learning background will help. Though the course won’t technically presume ML as a background it will be much easier to grasp if you’ve seen things like graphical models or other inference structures.

• A good working knowledge of Matlab or Python with Numpy. We will likely be doing things in Matlab in class. I am pretty sure that Octave will be OK though the lack of some plotting make may some figures harder to generate. Because this is my first time offering this class I can only speculate on this.

Introduction CS7616 Pattern Recognition – A. Bobick Introduction CS7616 Pattern Recognition – A. Bobick

Who are we? Professor:

Aaron Bobick [email protected] Office: CCB 316 Office hours:

Tues 1-2pm (email is much better)

TA:

Abhijit Kundu [email protected] Office: CCB 308 Office hours: TBD

Introduction CS7616 Pattern Recognition – A. Bobick Introduction CS7616 Pattern Recognition – A. Bobick

Introduction CS7616 Pattern Recognition – A. Bobick Introduction CS7616 Pattern Recognition – A. Bobick

What will you read?

Hastie, Tibshirani, and Friedman:

The Elements of Statistical Learning

• Kevin Murphy’s book: Machine Learning: a Probabilistic Perspective

(free pdf)

Introduction CS7616 Pattern Recognition – A. Bobick Introduction CS7616 Pattern Recognition – A. Bobick

What you will do? • NB: This is the first time I have taught this class. This is a

plan, maybe not even a plan but a goal, certainly not a commitment !

• Your grade is mostly project based set based. • Communal projects (everyone does mostly the same): 60% • Your unique final project 30% • Class presentation (10% - but class size may revamp this) • Class participation – max of 10% (ie it can only help your grade).

• There will not be a final exam.

Introduction CS7616 Pattern Recognition – A. Bobick Introduction CS7616 Pattern Recognition – A. Bobick

When will you do them? • You will have plenty of time for the projects. But they must be

submitted on time.

• Late submissions will only be accepted at full credit with prior approval. Otherwise 50% (yes half) reduction.

• TA/Prof *not* obligated to get back to you about permission the weekend it is due! At your own risk.

• I will be very adamant about this. Not fair to others or the TA.

Introduction CS7616 Pattern Recognition – A. Bobick Introduction CS7616 Pattern Recognition – A. Bobick

With whom will you do it? • Honesty/Integrity policy (from web site):

Problem sets are to be done individually (or within your group of no more than two) but you may collaborate at the “white board level” helping each other with algorithms and general computation, BUT YOUR CODE MUST BE YOUR OWN.

• Do not hand in other people’s code unless you (1) say you are, and (2) you want no credit for that section. We will be explicit about what previous or provided code you can use.

Introduction CS7616 Pattern Recognition – A. Bobick Introduction CS7616 Pattern Recognition – A. Bobick

How will you do it? • We will mostly support Matlab

• I know how to program Matlab. • I am not going to use R. • I am not going to (deeply) learn Python. • All the algorithms and demos in Murphy’s book are available in Matlab.

• If you want to use some thing else • Fine • Your job to make it work. • TA not obligated to help.

Introduction CS7616 Pattern Recognition – A. Bobick Introduction CS7616 Pattern Recognition – A. Bobick

Any questions so far…

Introduction CS7616 Pattern Recognition – A. Bobick Introduction CS7616 Pattern Recognition – A. Bobick

Who am I… • Background: degrees in Math, CS but PhD in CogSci/AI;

interest in high level perception and cognition

• Faculty at the MIT Media Lab for a while – developed lots of work in machine understanding of action from video

• Came here 14 years ago, and collected hats: • Was GVU director • Founding chair of the School of Interactive Computing • But the most fun is being professor in Computational

Perception and Robotics!

Introduction CS7616 Pattern Recognition – A. Bobick Introduction CS7616 Pattern Recognition – A. Bobick

Research I used to do…

Action recognition from video

•Lots of domains/levels of complexity:

•Body motions •Gesture recognition, •Football plays •Aware Home •Surveillance

Introduction CS7616 Pattern Recognition – A. Bobick Introduction CS7616 Pattern Recognition – A. Bobick

What I am doing now…

Outdoor

Robots that “see”… not (just) a question of geometry but understanding.

Indoor

Human Robot Interaction

Introduction CS7616 Pattern Recognition – A. Bobick Introduction CS7616 Pattern Recognition – A. Bobick

Two specific projects: (Vision for) Human-robot

collaboration in manufacturing (with BMW!)

Affordance-based perception:

Robot learning the “affordances” of objects and how to use in planning and

acting.

Introduction CS7616 Pattern Recognition – A. Bobick Introduction CS7616 Pattern Recognition – A. Bobick

Why am I teaching this class? • Because I have to teach another class (besides Computer

Vision) …

• Because I used to teach PR from Duda and Hart (and Stork) which was written somewhere between the Stone Age and the invention of the Prius…

• Because I keep running into PR problems and I really should understand them better…

Introduction CS7616 Pattern Recognition – A. Bobick Introduction CS7616 Pattern Recognition – A. Bobick

A few inspirations…

Introduction CS7616 Pattern Recognition – A. Bobick Introduction CS7616 Pattern Recognition – A. Bobick

• Adaboost classification

• Weak classifiers: Haar-basis like functions (45,396 in total)

Boosting Simple Features [Viola and Jones CVPR 01]

18

Weak classifier

Strong classifier

𝑓 𝑥 = �𝛼𝑡ℎ𝑡 𝑥𝑇

𝑡=1

ℎ𝑡 𝑥 = � 1 if 𝑓𝑡(𝑥) > 0 −1 otherwise

Introduction CS7616 Pattern Recognition – A. Bobick Introduction CS7616 Pattern Recognition – A. Bobick

Boosting Simple Features [Viola and Jones CVPR 01]

• Integral image • A value at (x,y) is the sum of the

pixel values above and to the left of (x,y).

• The sum of original image values within the rectangle can be computed: Sum = A-B-C+D

19 ICCV09 Tutorial Tae-

Introduction CS7616 Pattern Recognition – A. Bobick Introduction CS7616 Pattern Recognition – A. Bobick

Body tracking in Microsoft Kinect for XBox 360

left hand

right shoulder neck

right foot

Input depth image Training labelled data Visual features

Objective function

Node training

Labels are categorical

Input data point

Predictor model

Classification forest

Visual features

Node parameters

Weak learner

Feature response

Introduction CS7616 Pattern Recognition – A. Bobick Introduction CS7616 Pattern Recognition – A. Bobick

Input depth image (bg removed) Inferred body parts posterior

Body tracking in Microsoft Kinect for XBox 360

(2 videos here)

Introduction CS7616 Pattern Recognition – A. Bobick Introduction CS7616 Pattern Recognition – A. Bobick

But what did I really want to do?

Introduction CS7616 Pattern Recognition – A. Bobick Introduction CS7616 Pattern Recognition – A. Bobick

A “simple” detection problem

Is it a real person?

Introduction CS7616 Pattern Recognition – A. Bobick Introduction CS7616 Pattern Recognition – A. Bobick

Anyone in the tunnel?

Introduction CS7616 Pattern Recognition – A. Bobick Introduction CS7616 Pattern Recognition – A. Bobick

Questions we asked? • Are we doing detection via decision (Viola Jones) or detection

then recognition? Or hybrid? • What are the features we’re going to use? • What’s our data source? Negatives are easy to get; how do we

get positives? • Is there something about appearance that is invariant across

scenes/cameras? Or is every camera a new system? And then… • What methods are we going to use to make the decision? • I wasn’t sure. Had some ideas but not grounded well enough.

• This is why I am teaching this class…

Introduction CS7616 Pattern Recognition – A. Bobick Introduction CS7616 Pattern Recognition – A. Bobick

What we’re going to do? • Focusing on categorical labels - “Pattern Recognition” is really

decision theory applied to data • Review the basics of probability, density estimation and

generative methods for decision making. • Consider loss functions? • Explore application of generative methods to some fixed data sets that

have “modest” numbers of features and variable numbers of training examples.

• Then investigate discriminative models and methods • “Small” vs “large” numbers of features • “Small” vs “large” numbers training examples; unbalanced

• Most things in the two texts that is focused on making a decision

• Lots of forests, trees, boosting, bagging

Introduction CS7616 Pattern Recognition – A. Bobick Introduction CS7616 Pattern Recognition – A. Bobick

What we’re not going to do? • As little as possible on regression – the prediction of

continuous valued variables. • Not so much on large pattern (many little variables) problems:

• Maybe no neural nets – or at least as little as possible. A little about deep learning from the perspective of features.

Introduction CS7616 Pattern Recognition – A. Bobick Introduction CS7616 Pattern Recognition – A. Bobick

Your first assignment! • Due next Tuesday, Jan 14.

• Find an available data set that corresponds to “modest”

number of features and “small” number of classes • Modest – plausible to try all or many possible subsets of features • Small - maybe less than 5. 2 is ideal. 30 would be too many.

• Submit a one page description of the data, how we would get it within a week. (Are you making it? That’s OK)

Introduction CS7616 Pattern Recognition – A. Bobick Introduction CS7616 Pattern Recognition – A. Bobick

Going forward • For coming lectures:

• HTF: read ch 1&2

• Get yourself Matlab (and/or Python)

• Make sure you’re invited to Piazza