Mixture of Gaussians Perceptual and Sensory Augmented Computing • One generative model is a mixture of Gaussians (MoG) Computer Vision WS 08/09 Ø K Gaussian blobs with means µ b covariance matrices V b , dimension d – Blob b defined by: K ∑ Ø Blob b is selected with probability ( ) α b = 1 b = 1 Ø The likelihood of observing x is a weighted mixture of Gaussians , Slide adapted from Steve Seitz

Expectation Maximization (EM) Perceptual and Sensory Augmented Computing • Goal Find blob parameters θ that maximize the likelihood function Ø over all all datapoints Computer Vision WS 08/09 • Approach: E-step: given current guess of blobs, compute probabilistic ownership 1. of each point M-step: given ownership probabilities, update blobs to maximize 2. likelihood function Repeat until convergence 3. Slide adapted from Steve Seitz

EM Details • E-step Ø Compute probability that point x is in blob b , given current Perceptual and Sensory Augmented Computing guess of θ • M-step Ø Compute overall probability that blob b is selected Computer Vision WS 08/09 ( N data points) Ø Mean of blob b Ø Covariance of blob b Slide adapted from Steve Seitz

Segmentation with EM Perceptual and Sensory Augmented Computing Computer Vision WS 08/09 K = 3 Slide credit: B. Leibe Image source: Serge Belongie

Summary: Mixtures of Gaussians, EM • Pros Ø Probabilistic interpretation Perceptual and Sensory Augmented Computing Ø Soft assignments between data points and clusters Ø Generative model, can predict novel data points Ø Relatively compact storage • Cons Ø Initialization Computer Vision WS 08/09 – often a good idea to start from output of k-means Ø Local minima Ø Need to know number of components K – solutions: add a cost for model complexity Ø Need to choose generative model (math form of a cluster ?) Slide adapted from B. Leibe

Topics of This Lecture • Introduction Ø Gestalt principles Perceptual and Sensory Augmented Computing Ø Image segmentation • Segmentation as clustering Ø k-Means Ø Feature spaces Ø Mixture of Gaussians, EM Computer Vision WS 08/09 • Model-free clustering: Mean-Shift • Graph theoretic segmentation: Normalized Cuts • Interactive Segmentation with GraphCuts

Topics of This Lecture • Introduction Ø Gestalt principles Perceptual and Sensory Augmented Computing Ø Image segmentation • Segmentation as clustering Ø k-Means Ø Feature spaces Ø Mixture of Gaussians, EM Computer Vision WS 08/09 • Model-free clustering: Mean-Shift • Graph theoretic segmentation: Normalized Cuts • Interactive Segmentation with path search

Finding Modes in a Histogram Perceptual and Sensory Augmented Computing Computer Vision WS 08/09 • How many modes are there? Ø Mode = local maximum of a given distribution Ø Easy to see, hard to compute Slide adapted from Steve Seitz

Mean-Shift Segmentation • An advanced and versatile technique for clustering- based segmentation Perceptual and Sensory Augmented Computing Computer Vision WS 08/09 http://www.caip.rutgers.edu/~comanici/MSPAMI/msPamiResults.html D. Comaniciu and P. Meer, Mean Shift: A Robust Approach toward Feature Space Analysis, PAMI 2002. Slide credit: Svetlana Lazebnik

Mean-Shift Algorithm Perceptual and Sensory Augmented Computing Computer Vision WS 08/09 • Iterative Mode Search Initialize random seed center and window W 1. Calculate center of gravity (the “ mean ” ) of W: 2. Shift the search window to the mean 3. Repeat steps 2+3 until convergence 4. Slide adapted from Steve Seitz

Mean-Shift Region of interest Center of mass Perceptual and Sensory Augmented Computing Computer Vision WS 08/09 Mean Shift vector Slide by Y . Ukrainitz & B. Sarel

Mean-Shift Region of interest Center of mass Perceptual and Sensory Augmented Computing Computer Vision WS 08/09 Mean Shift vector Slide by Y . Ukrainitz & B. Sarel

Mean-Shift Region of interest Center of mass Perceptual and Sensory Augmented Computing Computer Vision WS 08/09 Mean Shift vector Slide by Y . Ukrainitz & B. Sarel

Mean-Shift Region of interest Center of mass Perceptual and Sensory Augmented Computing Computer Vision WS 08/09 Slide by Y . Ukrainitz & B. Sarel

Real Modality Analysis Perceptual and Sensory Augmented Computing Computer Vision WS 08/09 Tessellate the space Run the procedure in parallel with windows Slide by Y . Ukrainitz & B. Sarel

Real Modality Analysis Perceptual and Sensory Augmented Computing Computer Vision WS 08/09 The blue data points were traversed by the windows towards the mode. Slide by Y . Ukrainitz & B. Sarel

Mean-Shift Clustering • Cluster: all data points in the attraction basin of a mode • Attraction basin: the region for which all trajectories Perceptual and Sensory Augmented Computing lead to the same mode Computer Vision WS 08/09 Slide by Y . Ukrainitz & B. Sarel

Mean-Shift Clustering/Segmentation • Choose features (color, gradients, texture, etc) • Initialize windows at individual pixel locations Perceptual and Sensory Augmented Computing • Start mean-shift from each window until convergence • Merge windows that end up near the same “ peak ” or mode Computer Vision WS 08/09 Slide adapted from Svetlana Lazebnik

Mean-Shift Segmentation Results Perceptual and Sensory Augmented Computing Computer Vision WS 08/09 http://www.caip.rutgers.edu/~comanici/MSPAMI/msPamiResults.html Slide credit: Svetlana Lazebnik

Summary Mean-Shift • Pros Ø General, application-independent tool Perceptual and Sensory Augmented Computing Ø Model-free, does not assume any prior shape (spherical, elliptical, etc.) on data clusters Ø Just a single parameter (window size h) – h has a physical meaning (unlike k-means) == scale of clustering Ø Finds variable number of modes given the same h Ø Robust to outliers Computer Vision WS 08/09 • Cons Ø Output depends on window size h Ø Window size (bandwidth) selection is not trivial Ø Computationally rather expensive Ø Does not scale well with dimension of feature space (sparsity problems in high-dimensional spaces…) Slide adapted from Svetlana Lazebnik

Topics of This Lecture • Introduction Ø Gestalt principles Perceptual and Sensory Augmented Computing Ø Image segmentation • Segmentation as clustering Ø k-Means Ø Feature spaces Ø Mixture of Gaussians, EM Computer Vision WS 08/09 • Model-free clustering: Mean-Shift • Graph theoretic segmentation: Normalized Cuts • Interactive Segmentation with path search

Images as Graphs q Perceptual and Sensory Augmented Computing w pq w p Computer Vision WS 08/09 • Fully-connected graph Ø Node (vertex) for every pixel Ø Edge between every pair of pixels (p,q) Ø Affinity weight w pq for each edge – w pq measures similarity – Similarity is inversely proportional to difference (in color, texture, position, …) Slide adapted from Steve Seitz

Measuring Affinity { } 2 • Distance = − − aff x y ( , ) exp x y 1 2 σ 2 d Perceptual and Sensory Augmented Computing { } 2 • Intensity = − − aff x y ( , ) exp 1 I x ( ) I y ( ) 2 σ 2 d { } ( ) 2 • Color = − aff x y ( , ) exp dist c x c y ( ), ( ) 1 Computer Vision WS 08/09 2 σ 2 d (some suitable color space distance) { } 2 • Texture = − − aff x y ( , ) exp f x ( ) f y ( ) 1 2 σ 2 d (vectors of filter outputs) Source: Forsyth & Ponce

Segmentation by Graph Cuts Perceptual and Sensory Augmented Computing w A B C Computer Vision WS 08/09 • Break Graph into Segments Ø Delete edges crossing between segments Ø Easiest to break edges with low similarity (low weight) – Similar pixels should be in the same segments – Dissimilar pixels should be in different segments Slide adapted from Steve Seitz

Graph Cut (GC) Perceptual and Sensory Augmented Computing B A • GC = edges whose removal partitions a graph in two Computer Vision WS 08/09 • Cost of a cut ∑ = cut ( A , B ) w Ø Sum of weights of cut edges: p , q ∈ ∈ p A , q B • A graph cut gives us a segmentation Ø What is a “ good ” graph cut and how do we find one? Slide adapted from Steve Seitz

Minimum Cut • We can do segmentation by finding the minimum cut in a graph Perceptual and Sensory Augmented Computing Efficient algorithms exist for doing this Ø • Drawback: Weight of cut proportional to number of edges in the cut Ø Minimum cut tends to cut off very small, isolated components Ø Computer Vision WS 08/09 Cuts with lesser weight than the ideal cut Ideal Cut Slide credit: Khurram Hassan-Shafique

Normalized Cut (NCut) • Min-cut has bias toward partitioning out small segments • This can be fixed by normalizing for size of segments Perceptual and Sensory Augmented Computing • The normalized cut cost is: cut ( A , B ) cut ( A , B ) assoc ( A , V ) + assoc ( B , V ) assoc ( A , V ) = sum of weights from A to all nodes in the graph Computer Vision WS 08/09 • The exact solution is NP-hard but an approximation can be computed by solving a generalized eigenvalue problem. J. Shi and J. Malik. Normalized cuts and image segmentation. PAMI 2000 Slide adapted from Svetlana Lazebnik

Interpretation as a Dynamical System Perceptual and Sensory Augmented Computing Computer Vision WS 08/09 • Treat the edges as springs and ‘ shake ’ the system Ø Elasticity proportional to cost Ø Vibration “ modes ” correspond to segments – Can compute these by solving a generalized eigenvector problem Slide adapted from Steve Seitz

NCuts Example Perceptual and Sensory Augmented Computing Computer Vision WS 08/09 NCuts segments Slide credit: B. Leibe Image source: Shi & Malik

Color Image Segmentation with NCuts Perceptual and Sensory Augmented Computing Computer Vision WS 08/09 Slide credit: Steve Seitz Image Source: Shi & Malik

Perceptual and Sensory Augmented Computing Computer Vision WS 08/09 Results with Color & Texture

Summary: Normalized Cuts • Pros: Ø Generic framework, flexible to choice of function that computes Perceptual and Sensory Augmented Computing weights ( “ affinities ” ) between nodes Ø Does not require any model of the data distribution • Cons: Ø Time and memory complexity can be high Computer Vision WS 08/09 ⇒ – Dense, highly connected graphs many affinity computations – Solving eigenvalue problem Ø Preference for balanced partitions – If a region is uniform, NCuts will find the modes of vibration of the image dimensions Slide credit: Kristen Grauman

Markov Random Fields • Allow rich probabilistic models for images • But built in a local, modular way Perceptual and Sensory Augmented Computing Ø Learn local effects, get global effects out Observed evidence Computer Vision WS 08/09 Hidden “ true states ” Neighborhood relations Slide credit: William Freeman

MRF Nodes as Pixels (or Patches) Image pixels Perceptual and Sensory Augmented Computing Φ ( , x y ) Image Computer Vision WS 08/09 i i states (e.g. foreground/background) Ψ ( , x x ) i j Slide adapted from William Freeman

Network Joint Probability Perceptual and Sensory Augmented Computing ∏ ∏ = Φ Ψ P x y ( , ) ( , x y ) ( , x x ) i i i j i i j , states Image-state state-state Computer Vision WS 08/09 compatibility compatibility Image function function Neighboring Local nodes observations Slide adapted from William Freeman

Energy Formulation • Joint probability ∏ ∏ = Φ Ψ P x y ( , ) ( , x y ) ( , x x ) i i i j Perceptual and Sensory Augmented Computing i i j , • Maximizing the joint probability is the same as minimizing the -log ∑ ∑ − log P ( x , y ) = − log Φ ( x i , y i ) − Ψ ( x i , x j ) log i i , j Computer Vision WS 08/09 ∑ ∑ E ( x , y ) = ϕ ( x i , y i ) + ψ ( x i , x j ) i i , j • This is similar to free-energy problems in statistical mechanics (spin glass theory). We therefore draw the analogy and call E an energy function . ϕ ψ • and are called potentials . Slide credit: B. Leibe

Energy Formulation • Energy function ϕ ( , x y ) i i ∑ ∑ = ϕ + ψ E x y ( , ) ( , x y ) ( , x x ) i i i j ψ ( , x x ) Perceptual and Sensory Augmented Computing i j i i j , Unary Pairwise potentials potentials ϕ • Unary potentials Ø Encode local information about the given pixel/patch Computer Vision WS 08/09 Ø How likely is a pixel/patch to be in a certain state ? (e.g. foreground/background)? ψ • Pairwise potentials Ø Encode neighborhood information Ø How different is a pixel/patch ’ s label from that of its neighbor? (e.g. here independent of image data, but later based on intensity/color/texture difference) Slide adapted from B. Leibe

Energy Minimization • Goal: ϕ ( , x y ) i i Ø Infer the optimal labeling of the MRF. ψ ( , x x ) Perceptual and Sensory Augmented Computing i j • Many inference algorithms are available, e.g. Ø Gibbs sampling, simulated annealing Ø Iterated conditional modes (ICM) Ø Variational methods Ø Belief propagation Computer Vision WS 08/09 Ø Graph cuts • Recently, Graph Cuts have become a popular tool Ø Only suitable for a certain class of energy functions Ø But the solution can be obtained very fast for typical vision problems (~1MPixel/sec). Slide credit: B. Leibe

Graph Cuts for Optimal Boundary Detection • Idea: convert MRF into source-sink graph t n-links a cut hard Perceptual and Sensory Augmented Computing constraint hard constraint Computer Vision WS 08/09 s Minimum cost cut can be computed in polynomial time (max-flow/min-cut algorithms) [Boykov & Jolly, ICCV ’ 01] Slide adapted from Yuri Boykov

Adding Regional Properties t n-links a cut D p ( t ) Perceptual and Sensory Augmented Computing t-link w t-link pq D p ( s ) s Computer Vision WS 08/09 Regional bias example s t I and I ( ) Suppose are given 2 2 ∝ − − σ s 2 D ( s ) exp || I I || / “ expected ” intensities p p ( ) 2 2 ∝ − − σ t 2 of object and background D ( t ) exp || I I || / p p [Boykov & Jolly, ICCV ’ 01] Slide credit: Yuri Boykov

Adding Regional Properties • More generally, regional bias can be based on any intensity models of object and background Perceptual and Sensory Augmented Computing t = − D L ( ) logPr( I | L ) a cut p p p p D p ( s ) Pr( I p | t ) Computer Vision WS 08/09 Pr( I p | s ) D p ( t ) I I s p given object and background intensity histograms [Boykov & Jolly, ICCV ’ 01] Slide credit: Yuri Boykov

How Does it Work? The s-t-Mincut Problem Perceptual and Sensory Augmented Computing Source 2 9 Graph (V, E, C) Vertices V = {v 1 , v 2 ... v n } 1 Edges E = {(v 1 , v 2 ) ....} v 1 v 2 Computer Vision WS 08/09 2 Costs C = {c (1, 2) ....} 5 4 Sink Slide credit: Pushmeet Kohli

The s-t-Mincut Problem What is an st-cut? An st-cut (S,T) divides the nodes Perceptual and Sensory Augmented Computing between source and sink. Source 2 9 What is the cost of a st-cut? 1 Sum of cost of all edges v 1 v 2 Computer Vision WS 08/09 going from S to T 2 5 4 Sink 5 + 2 + 9 = 16 Slide credit: Pushmeet Kohli

The s-t-Mincut Problem What is an st-cut? An st-cut (S,T) divides the nodes Perceptual and Sensory Augmented Computing between source and sink. Source 2 9 What is the cost of a st-cut? 1 Sum of cost of all edges v 1 v 2 Computer Vision WS 08/09 going from S to T 2 5 4 What is the st-mincut? Sink st-cut with the minimum cost 2 + 1 + 4 = 7 Slide credit: Pushmeet Kohli

How to Compute the s-t-Mincut? Solve the dual maximum flow problem Compute the maximum flow Perceptual and Sensory Augmented Computing Source between Source and Sink 2 9 Constraints 1 Edges: Flow < Capacity v 1 v 2 Nodes: Flow in = Flow out Computer Vision WS 08/09 2 5 4 Min-cut/Max-flow Theorem Sink In every network, the maximum flow equals the cost of the st-mincut Slide credit: Pushmeet Kohli

Maxflow Algorithms Flow = 0 Augmenting Path Based Algorithms Perceptual and Sensory Augmented Computing Source 2 9 1. Find path from source to sink with positive capacity 1 v 1 v 2 Computer Vision WS 08/09 2. Push maximum possible flow 2 through this path 5 4 3. Repeat until no path can be Sink found Algorithms assume non-negative capacity Slide credit: Pushmeet Kohli

Maxflow Algorithms Flow = 0 Augmenting Path Based Algorithms Perceptual and Sensory Augmented Computing Source 2 9 1. Find path from source to sink with positive capacity 1 v 1 v 2 Computer Vision WS 08/09 2. Push maximum possible flow 2 through this path 5 4 3. Repeat until no path can be Sink found Algorithms assume non-negative capacity Slide credit: Pushmeet Kohli

Maxflow Algorithms Flow = 0 + 2 Augmenting Path Based Algorithms Perceptual and Sensory Augmented Computing Source 9 1. Find path from source to sink 2-2 with positive capacity 1 v 1 v 2 Computer Vision WS 08/09 2. Push maximum possible flow 2 through this path 4 5-2 3. Repeat until no path can be Sink found Algorithms assume non-negative capacity Slide credit: Pushmeet Kohli

Maxflow Algorithms Flow = 2 Augmenting Path Based Algorithms Perceptual and Sensory Augmented Computing Source 0 9 1. Find path from source to sink with positive capacity 1 v 1 v 2 Computer Vision WS 08/09 2. Push maximum possible flow 2 through this path 3 4 3. Repeat until no path can be Sink found Algorithms assume non-negative capacity Slide credit: Pushmeet Kohli

Maxflow Algorithms Flow = 2 Augmenting Path Based Algorithms Perceptual and Sensory Augmented Computing Source 0 9 1. Find path from source to sink with positive capacity 1 v 1 v 2 Computer Vision WS 08/09 2. Push maximum possible flow 2 through this path 3 4 3. Repeat until no path can be Sink found Algorithms assume non-negative capacity Slide credit: Pushmeet Kohli

Maxflow Algorithms Flow = 2 Augmenting Path Based Algorithms Perceptual and Sensory Augmented Computing Source 0 1. Find path from source to sink 9 with positive capacity 1 v 1 v 2 Computer Vision WS 08/09 2. Push maximum possible flow 2 through this path 3 4 3. Repeat until no path can be Sink found Algorithms assume non-negative capacity Slide credit: Pushmeet Kohli

Maxflow Algorithms Flow = 2 + 4 Augmenting Path Based Algorithms Perceptual and Sensory Augmented Computing Source 0 1. Find path from source to sink 5 with positive capacity 1 v 1 v 2 Computer Vision WS 08/09 2. Push maximum possible flow 2 through this path 3 0 3. Repeat until no path can be Sink found Algorithms assume non-negative capacity Slide credit: Pushmeet Kohli

Maxflow Algorithms Flow = 6 Augmenting Path Based Algorithms Perceptual and Sensory Augmented Computing Source 0 5 1. Find path from source to sink with positive capacity 1 v 1 v 2 Computer Vision WS 08/09 2. Push maximum possible flow 2 through this path 3 0 3. Repeat until no path can be Sink found Algorithms assume non-negative capacity Slide credit: Pushmeet Kohli

Maxflow Algorithms Flow = 6 Augmenting Path Based Algorithms Perceptual and Sensory Augmented Computing Source 0 1. Find path from source to sink 5 with positive capacity 1 v 1 v 2 Computer Vision WS 08/09 2. Push maximum possible flow 2 through this path 3 0 3. Repeat until no path can be Sink found Algorithms assume non-negative capacity Slide credit: Pushmeet Kohli

Maxflow Algorithms Flow = 6 + 1 Augmenting Path Based Algorithms Perceptual and Sensory Augmented Computing Source 0 1. Find path from source to sink 4 with positive capacity 1-1 v 1 v 2 Computer Vision WS 08/09 2. Push maximum possible flow 2 through this path 0 2 3. Repeat until no path can be Sink found Algorithms assume non-negative capacity Slide credit: Pushmeet Kohli

Maxflow Algorithms Flow = 7 Augmenting Path Based Algorithms Perceptual and Sensory Augmented Computing Source 5 1. Find path from source to sink 0 with positive capacity 0 v 1 v 2 Computer Vision WS 08/09 2. Push maximum possible flow 2 through this path 3 0 3. Repeat until no path can be Sink found Algorithms assume non-negative capacity Slide credit: Pushmeet Kohli

Maxflow Algorithms Flow = 7 Augmenting Path Based Algorithms Perceptual and Sensory Augmented Computing Source 5 1. Find path from source to sink 0 with positive capacity 0 v 1 v 2 Computer Vision WS 08/09 2. Push maximum possible flow 2 through this path 3 0 3. Repeat until no path can be Sink found Algorithms assume non-negative capacity Slide credit: Pushmeet Kohli

Dealing with Non-Binary Cases • For image segmentation, the limitation to binary energies is a nuisance. Perceptual and Sensory Augmented Computing Binary segmentation only • We would like to solve also multi-label problems. Ø NP-hard problem with 3 or more labels • There exist some approximation algorithms which extend graph cuts to the multi-label case Computer Vision WS 08/09 α Ø E.g. -Expansion • They are no longer guaranteed to return the globally optimal result. α Ø But -Expansion has a guaranteed approximation quality and converges in a few iterations. Slide credit: B. Leibe

Summary: Graph Cuts Segmentation • Pros Ø Powerful technique, based on probabilistic model (MRF). Perceptual and Sensory Augmented Computing Ø Applicable for a wide range of problems. Ø Very efficient algorithms available for vision problems. Ø Becoming a de-facto standard for many segmentation tasks. • Cons/Issues Ø Graph cuts can only solve a limited class of models Computer Vision WS 08/09 – Submodular energy functions – Can capture only part of the expressiveness of MRFs Ø Only approximate algorithms available for multi-label case Slide credit: B. Leibe

Segmentation: Caveats • We ’ ve looked at bottom-up ways to segment an image into regions, yet finding meaningful segments is Perceptual and Sensory Augmented Computing intertwined with the recognition problem. • Often want to avoid making hard decisions too soon • Difficult to evaluate; when is a segmentation successful? Computer Vision WS 08/09 Slide credit: Kristen Grauman

Speeding up 1: start from `superpixels’ • Start from an over-segmentation, similar-looking pixels have been grouped together quickly; requires object Perceptual and Sensory Augmented Computing boundaries to be preserved as part of superpixel edges ! Computer Vision WS 08/09 “ superpixels ” X. Ren and J. Malik. Learning a classification model for segmentation. ICCV 2003. Slide credit: Svetlana Lazebnik

Speeding up 2: objectness Trying to draw bounding boxes around • Focus on regions that an `objectness’ score indicates as objects, probably containing an object without knowing what they are Perceptual and Sensory Augmented Computing Computer Vision WS 08/09 Figure 7: yellow: bb by computer / blue: by human

Topics of This Lecture • Introduction Ø Gestalt principles Perceptual and Sensory Augmented Computing Ø Image segmentation • Segmentation as clustering Ø k-Means Ø Feature spaces Ø Mixture of Gaussians, EM Computer Vision WS 08/09 • Model-free clustering: Mean-Shift • Graph theoretic segmentation: Normalized Cuts • Interactive Segmentation with path search

Dynamic path search: principle Guided by a user-supplied cost function, Perceptual and Sensory Augmented Computing expressing expectations like good edges to contain pixels with high gradients, edges to be smooth, etc. Computer Vision WS 08/09 find optimal path through the image: 1. having lowest cost 2. satisfying constraints (e.g. given endpoints) Useful in interactive applications (e.g. medical), or when environment constrained

Dynamic path search : nomenclature A graph consists of nodes (pixels) connected by arcs (steps) Perceptual and Sensory Augmented Computing Nodes connected by steps are parents and successors Identifying a node ’ s successors is expansion Computer Vision WS 08/09 of that node A tree is a graph with 1 parent for the nodes (our arcs are undirected )

Dynamic path search : nomenclature cont ’ d Often the arcs are assigned a cost Perceptual and Sensory Augmented Computing A sequence of nodes n 1 ,n 2 ,…,n k ( n i = sucessor of n i-1 ) is a path of length k Computer Vision WS 08/09 Usually path cost = Σ arc costs

Dynamic path search : cost functions Cost function incorporates problem-specific information Perceptual and Sensory Augmented Computing e.g. penalize changes in edge direction e.g. penalize the inclusion of pixels with low intensity gradient Computer Vision WS 08/09 problem is one of optimization : l 1. gradient descent l 2. path array methods l 3. best-first search

Gradient descent Always choose the next pixel that adds the smallest cost Perceptual and Sensory Augmented Computing Example : Computer Vision WS 08/09

Recommend

More recommend