Vision January 10, 2007. Today's Agenda ● Some general notes on vision ● Colorspaces ● Numbers and Java ● Feature detection ● Rigid body motion.

Slides:



Advertisements
Similar presentations
ARTIFICIAL PASSENGER.
Advertisements

QR Code Recognition Based On Image Processing
1 RTL Example: Video Compression – Sum of Absolute Differences Video is a series of frames (e.g., 30 per second) Most frames similar to previous frame.
Inpainting Assigment – Tips and Hints Outline how to design a good test plan selection of dimensions to test along selection of values for each dimension.
Photoshop Lab colorspace A quick and easy 26 step process for enhancing your photos.
The Binary Numbering Systems
Fitting: The Hough transform. Voting schemes Let each feature vote for all the models that are compatible with it Hopefully the noise features will not.
Computer vision: models, learning and inference
Autonomous Vehicle Pursuit of Target Through Optical Recognition Vision & Image Science Laboratory, Department of Electrical Engineering,Technion Daniel.
Colour Theory and Application B.Sc. (Hons) Multimedia ComputingMedia Technologies.
1 5. Video Object Tracking and Processing To achieve augmented reality, computer generated graphics should be shown together with the live video In addition,
Lecture 3a: Feature detection and matching CS6670: Computer Vision Noah Snavely.
Image Representation.
March 2006Taner Erig - EMU2-1 Metamorphosis of Information How is information represented and how do computers store information?
CS 376 Introduction to Computer Graphics 01 / 26 / 2007 Instructor: Michael Eckmann.
Digital Images The digital representation of visual information.
Version 1.0, 30 June 2004 APPLICATIONS OF METEOSAT SECOND GENERATION (MSG) RGB IMAGES: PART 02 INTRODUCTION TO RGB COLOURS Author:Jochen Kerkmann (EUMETSAT)
Color. -Visual light -An integral part of the sculpture -Creates desired effect -Distinguish items -Strengthen interest.
Colours and Computer Jimmy Lam The Hong Kong Polytechnic University.
1 Perception, Illusion and VR HNRS 299, Spring 2008 Lecture 14 Introduction to Computer Graphics.
CS1315: Introduction to Media Computation Picture encoding and manipulation.
Higher Computing Computer Systems S. McCrossan 1 Higher Grade Computing Studies 1. Data Representation Data Representation – Why do we use binary? simplicity,
CS 325 Introduction to Computer Graphics 02 / 01 / 2010 Instructor: Michael Eckmann.
What are the five colors in the legend? Enter the information below (5 points) 0000FF = = FFFFFF = 00FF00 = FF0000 = Color Theory Legend: income.
Chapter 2 Creating Text and Gradients. Objectives Create and format text Flow text into an object Position text on a path Create colors and gradients.
25.2 The human eye The eye is the sensory organ used for vision.
December 4, 2014Computer Vision Lecture 22: Depth 1 Stereo Vision Comparing the similar triangles PMC l and p l LC l, we get: Similarly, for PNC r and.
Lab 8 Bit-Mapped Graphics Moving from text-based graphics to bit- mapped graphics. Easy to draw graphic points and lines using INT 10h, Function 0Ch (write.
Elements of Art Line, Shape, Form, Texture, Color, Value, & Space.
Pictures Looping through pixels.. Lab Review (1) Objects  Instantiated from Class  Turtle myTut = new Turtle(myWorld);  new operator creates an instance.
September 17, 2013Computer Vision Lecture 5: Image Filtering 1ColorRGB HSI.
© 2011 Delmar, Cengage Learning Chapter 2 Creating Text and Gradients.
CS654: Digital Image Analysis Lecture 25: Hough Transform Slide credits: Guillermo Sapiro, Mubarak Shah, Derek Hoiem.
1 COMS 161 Introduction to Computing Title: The Digital Domain Date: September 6, 2004 Lecture Number: 6.
W2D1. HSV colour model Source: Primary colours Red Green Blue Secondary Cyan Magenta.
Vision Geza Kovacs Maslab Colorspaces RGB: red, green, and blue components HSV: hue, saturation, and value Your color-detection code will be more.
# Red Green Blue Digital Color RGB to HEX.
Copyright Howie Choset, Renata Melamud, Al Costa, Vincent Lee-Shue, Sean Piper, Ryan de Jonckheere. All Rights Reserved Computer Vision.
A color model is a specification of a 3D color co-ordinate system and a visible subset in the co-ordinate System within all colors in a particular color.
Ch 6 Color Image processing CS446 Instructor: Nada ALZaben.
COLOUR THEORY PROJECT.
Introduction to Computer Graphics
Color Web Design Professor Frank. Color Displays Based on cathode ray tubes (CRTs) or back- lighted flat-screen Monitors transmit light - displays use.
Elements of Design 1.02 Investigate Design Principles and Elements.
Intelligent Robotics Today: Vision & Time & Space Complexity.
COLOR THEORY. COLOR THEORY PRE-TEST 0 Most people take color for granted. Unless you are disabled in the perception of color, such as in the case of color.
RED, YELLOW, and BLUE These colors cannot be made Used to make all other colors.
CompSci From bits to bytes to ints  At some level everything is stored as either a zero or a one  A bit is a binary digit a byte is a binary.
CS 418 : EXAM 2 REVIEW TA: Ryan Freedman Sushma Kini Chi Zhou.
Another Example: Circle Detection
From bits to bytes to ints
The Color Wheel.
Vision-Guided Humanoid Footstep Planning for Dynamic Environments
Images Data Representation.
Image Processing Objectives To understand pixel based image processing
Images and 2D Graphics COMP
Data Representation.
Pixels, Colors and Shapes
25.2 The human eye The eye is the sensory organ used for vision.
A forced march through Color theory Anatomy of the retina
Digital 2D Image Basic Masaki Hayashi
Chapter Lessons Create and format text Flow text into an object
Common Classification Tasks
Computer Vision Lecture 4: Color
Features Readings All is Vanity, by C. Allan Gilbert,
Ch2: Data Representation
Looping through pixels.
Light Light has wave-like properties
CSE 185 Introduction to Computer Vision
METEOSAT SECOND GENERATION (MSG) INTRODUCTION TO RGB COLOURS
Presentation transcript:

Vision January 10, 2007

Today's Agenda ● Some general notes on vision ● Colorspaces ● Numbers and Java ● Feature detection ● Rigid body motion

Some general notes on vision

Vision is difficult ● Animal vision is very complex ● Right: Circuitry of macaque visual cortex (Felleman and Van Essen, 1991)

Object recognition is difficult A theory of object recognition has to specify: ● The nature of stored visual representations in long- term memory ● The nature of the intermediate representations ● A computational account of how each intermediate representation can be derived from the previous one ● A determination of whether the answers to the above points are different for different kinds of objects

What makes it difficult? ● A single image can be cast by many different objects ● A single object can cast many different images ● Two main challenges: 1. Invariance/Tolerance: Generalizing across changes in size, orientation, lighting, etc. to realize that these images are all of the same thing 2. Specificity: Appreciating the distinction between different categories

Theories on solving this problem ● Inverse optics: ● Try to solve the problem of determining what shape may have cast the image ● This is an ill-posed problem ● Association: ● Store each possible version of an object ● Brute force ● Other intermediate descriptors (e.g. Parts, image fragments)

But... Luckily, in MASLab, your problem is greatly simplified!

Colorspaces

Representing Colors ● RGB used to represent colors of light ● CMYK used to represent colors of pigment ●...but both mix color, tint, brightness

HSV Colorspace ● Hue (color): 360 degrees mapped 0 to 255. Note that red is both 0 and 255. ● Saturation (amount of color) ● Value (amount of light and dark) ● We provide the code to convert to HSV ● Note: White is low saturation but can have any hue ● Note: Black is low value but can have any hue

Tips for differentiating colors ● Calibrate for different lighting conditions ( is darker than the lab) ● Globally define thresholds ● Use the gimp/bot client on real images ● Use a large sample set You don't HAVE to use HSV. Past teams have used other models such as RGB.

Numbers and Java

How values are stored Uses Hexadecimal (base 16) ● 0x12 = 18 A color is 4 bytes = 8 hex numbers For HSV, these bytes are: ● Alpha ● Hue ● Saturation ● Value

Manipulating HSV values Use masks to pick out parts. ● 0x & 0x0000FF00 = 0x Shift to move parts. ● 0x >> 8 = 0x Example: Hue = (X >> 16) & 0xFF

Notes on Java... All Java types are signed! ● A byte ranges from -128 to 127 ● Coded in two's complement: to change sign, flip every bit and add 1 Don't forget higher-order bits! ● (int) 0x0000FF00 = (int) 0xFF00 ● (int) ((byte) 0xFF) = (int) 0xFFFFFFFF Watch out for shifts! ● 0xFD >> 8 = 0xFFFD0000

Performance Getting an image performs a copy ● Int[] = bufferedImage.getRGB(…) Getting a pixel performs a multiplication ● int v = bufferedImage.RGB(x,y) ● offset = y*width + x Go across rows, down columns (memory in rows, not columns)

Feature Detection

MASLab Features ● Red balls ● Yellow goals ● Blue lines ● Blue ticks ● Green-and-black bar codes

Ideas for dealing with blue lines ● Search for N blue pixels in a column ● Make sure there's wall-white below ● Candidate voting: ● In each column, list places where you think line might be ● Find shortest left-to-right path through candidates

Ideas for dealing with bar codes ● Look for green and black ● Look for not-white under blue line ● Check along a column to determine colors ● RANdom SAmple Consensus (RANSAC): ● Pick random pixels within bar code ● Are they black or green?

Looking for an object ● Look for a red patch ● Set center to current coordinates ● Loop: – Find new center based on pixels within d of old – Enlarge d and recompute – Stop if increasing d doesn't add enough red pixels

Distance Remember: ● Closer objects are bigger ● Closer objects are lower

Other considerations Find ways to deal with: ● Noise ● Occlusion ● Different viewing angles ● Overly large thresholds

Rigid Body Motion

● Going from data association to motion ● Given – Starting x1, y1, θ1 – Set of objects visible in both images ● What are x2, y2, θ2?

More rigid body motion ● If we know angles but not distances, the problem is hard ● Assume distances are known

But if angles and distances are known......we can construct triangles

Rigid body motion math ● Apply the math for a rotation: x1i = cos(θ) * x2i + sin(θ) * y2i + x0 y1i = cos(θ) * y2i - sin(θ) * x2i + y0 ● Solve for x0, y0, θ with least squares: Σ (x1i - cos(θ) * x2i - sin(θ) * y2i – x0)^2 + (y1i - cos(θ) * y2i + sin(θ) * x2i – y0)^2 ● Need at least two objects to solve

Advantages and Disadvantages Advantages: ● Relies on the world, not odometry ● Can use many or few associations Disadvantages: ● Can take time to compute