+ All Categories
Home > Documents > Nonlinear unmixing of hyperspectral images using radial ... · Nonlinear unmixing of hyperspectral...

Nonlinear unmixing of hyperspectral images using radial ... · Nonlinear unmixing of hyperspectral...

Date post: 13-Jun-2020
Category:
Upload: others
View: 5 times
Download: 0 times
Share this document with a friend
38
Nonlinear unmixing of hyperspectral images using radial basis functions and orthogonal least squares Nonlinear unmixing of hyperspectral images using radial basis functions and orthogonal least squares Yoann Altmann 1 , Nicolas Dobigeon 1 , Steve McLaughlin 2 and Jean-Yves Tourneret 1 1 University of Toulouse - IRIT/INP-ENSEEIHT Toulouse, FRANCE 2 School of Engineering and Electronics - University of Edinburgh, U.K. IEEE IGARSS 2011, Vancouver, Canada 1 / 34
Transcript
Page 1: Nonlinear unmixing of hyperspectral images using radial ... · Nonlinear unmixing of hyperspectral images using radial basis functions and orthogonal least squares Outline Radial

Nonlinear unmixing of hyperspectral images using radial basis functions and orthogonal least squares

Nonlinear unmixing of hyperspectral imagesusing radial basis functionsand orthogonal least squares

Yoann Altmann1, Nicolas Dobigeon1,Steve McLaughlin2 and Jean-Yves Tourneret1

1University of Toulouse - IRIT/INP-ENSEEIHT Toulouse, FRANCE2School of Engineering and Electronics - University of Edinburgh, U.K.

IEEE IGARSS 2011, Vancouver, Canada

1 / 34

Page 2: Nonlinear unmixing of hyperspectral images using radial ... · Nonlinear unmixing of hyperspectral images using radial basis functions and orthogonal least squares Outline Radial

Nonlinear unmixing of hyperspectral images using radial basis functions and orthogonal least squares

Hyperspectral Imagery

Hyperspectral Images

I same scene observed at different wavelengths

I pixel represented by a vector of hundreds of measurements

Hyperspectral Cube

2 / 34

Page 3: Nonlinear unmixing of hyperspectral images using radial ... · Nonlinear unmixing of hyperspectral images using radial basis functions and orthogonal least squares Outline Radial

Nonlinear unmixing of hyperspectral images using radial basis functions and orthogonal least squares

Hyperspectral Imagery

Hyperspectral Images

I same scene observed at different wavelengths

I pixel represented by a vector of hundreds of measurements

Hyperspectral Cube

2 / 34

Page 4: Nonlinear unmixing of hyperspectral images using radial ... · Nonlinear unmixing of hyperspectral images using radial basis functions and orthogonal least squares Outline Radial

Nonlinear unmixing of hyperspectral images using radial basis functions and orthogonal least squares

Hyperspectral Imagery

Hyperspectral Images

I same scene observed at different wavelengths

I pixel represented by a vector of hundreds of measurements

Hyperspectral Cube

3 / 34

Page 5: Nonlinear unmixing of hyperspectral images using radial ... · Nonlinear unmixing of hyperspectral images using radial basis functions and orthogonal least squares Outline Radial

Nonlinear unmixing of hyperspectral images using radial basis functions and orthogonal least squares

Hyperspectral Imagery

Hyperspectral Images

I same scene observed at different wavelengths

I pixel represented by a vector of hundreds of measurements

Hyperspectral Cube

3 / 34

Page 6: Nonlinear unmixing of hyperspectral images using radial ... · Nonlinear unmixing of hyperspectral images using radial basis functions and orthogonal least squares Outline Radial

Nonlinear unmixing of hyperspectral images using radial basis functions and orthogonal least squares

Unmixing problem

Unmixing: decomposing a measured pixel into a mixture of pure componentsPresence of mixed pixels in hyperspectral data...

...even at high spatial resolution!

Unmixing steps

1. Endmember extraction: estimating the spectral signatures, orendmembers, (PPI1, N-FINDR2, VCA3, MVES4...)

2. Inversion: estimating the abundances (FCLS5, Bayesian algo.6...)

(1+2). Joint estimation of endmembers and abundances (DECA7, BLU8...)

1Boardman et al., in Sum. JPL Airborne Earth Science Workshop, 1995.2Winter, in Proc. SPIE, 1999.3Nascimento et al., IEEE Trans. Geosci. and Remote Sensing, 2005.4Chan et al., IEEE Trans. Signal Process., 2009.5Heinz et al., IEEE Trans. Geosci. and Remote Sensing, 2001.6Dobigeon et al., IEEE Trans. Signal Process., 2008.7Nascimento et al., in Proc IGARSS., 2007.8Dobigeon et al., IEEE Trans. Signal Process., 2009.

4 / 34

Page 7: Nonlinear unmixing of hyperspectral images using radial ... · Nonlinear unmixing of hyperspectral images using radial basis functions and orthogonal least squares Outline Radial

Nonlinear unmixing of hyperspectral images using radial basis functions and orthogonal least squares

Unmixing problem

Two strategies: linear vs non-linear unmixing

I Linear model→ pure materials sitting side-by-side in the scene→ 1st-order approximation→ most of the research works over the last 2 decades∼ 1000 entries in IEEEXplore

I Nonlinear model→ to describe intimate mixtures (e.g., sands)→ to handle multiple scattering effects

Contribution of this paperNonlinear unmixing using radial basis functions to solve the inversion step.

5 / 34

Page 8: Nonlinear unmixing of hyperspectral images using radial ... · Nonlinear unmixing of hyperspectral images using radial basis functions and orthogonal least squares Outline Radial

Nonlinear unmixing of hyperspectral images using radial basis functions and orthogonal least squares

Unmixing problem

Two strategies: linear vs non-linear unmixing

I Linear model→ pure materials sitting side-by-side in the scene→ 1st-order approximation→ most of the research works over the last 2 decades∼ 1000 entries in IEEEXplore

I Nonlinear model→ to describe intimate mixtures (e.g., sands)→ to handle multiple scattering effects

Contribution of this paperNonlinear unmixing using radial basis functions to solve the inversion step.

5 / 34

Page 9: Nonlinear unmixing of hyperspectral images using radial ... · Nonlinear unmixing of hyperspectral images using radial basis functions and orthogonal least squares Outline Radial

Nonlinear unmixing of hyperspectral images using radial basis functions and orthogonal least squares

Outline

Radial basis function networkMixing modelsNetwork structure

Training: selecting RBF centers using OLS

Inversion: constrained abundance estimation

Simulation resultsSynthetic dataReal Image data

Conclusions

6 / 34

Page 10: Nonlinear unmixing of hyperspectral images using radial ... · Nonlinear unmixing of hyperspectral images using radial basis functions and orthogonal least squares Outline Radial

Nonlinear unmixing of hyperspectral images using radial basis functions and orthogonal least squares

Radial basis function network

Outline

Radial basis function networkMixing modelsNetwork structure

Training: selecting RBF centers using OLS

Inversion: constrained abundance estimation

Simulation resultsSynthetic dataReal Image data

Conclusions

7 / 34

Page 11: Nonlinear unmixing of hyperspectral images using radial ... · Nonlinear unmixing of hyperspectral images using radial basis functions and orthogonal least squares Outline Radial

Nonlinear unmixing of hyperspectral images using radial basis functions and orthogonal least squares

Radial basis function network

Mixing models

Linear mixing model

Reference: IEEE Signal Proc. Magazine, Jan. 2002.

I Single-path of the detected photons

I Linear combinations of the contributions of the endmembers

8 / 34

Page 12: Nonlinear unmixing of hyperspectral images using radial ... · Nonlinear unmixing of hyperspectral images using radial basis functions and orthogonal least squares Outline Radial

Nonlinear unmixing of hyperspectral images using radial basis functions and orthogonal least squares

Radial basis function network

Mixing models

Nonlinear mixing model

Reference: IEEE Signal Proc. Magazine, Jan. 2002.

I Possible interactions between the components of the scene

I Nonlinear terms included in the mixing model

9 / 34

Page 13: Nonlinear unmixing of hyperspectral images using radial ... · Nonlinear unmixing of hyperspectral images using radial basis functions and orthogonal least squares Outline Radial

Nonlinear unmixing of hyperspectral images using radial basis functions and orthogonal least squares

Radial basis function network

Mixing models

General (linear/nonlinear) mixing model

Definitiony = fM (a)

I a = [a1, . . . , aR]T abundance vector

I R number of endmembers

I M endmember matrix

I fM (linear/nonlinear) function from RR to RL parameterized by MRemark : linear mixing defined by fM : a 7→Ma

Constraints

positivity : ar ≥ 0, ∀r ∈ 1, ..., R, sum-to-one :R∑

r=1

ar = 1 (1)

Supervised unmixingThe inversion problem can be formulated as

a = f−1M (y)

→ knowledge of f−1M (·) required!

10 / 34

Page 14: Nonlinear unmixing of hyperspectral images using radial ... · Nonlinear unmixing of hyperspectral images using radial basis functions and orthogonal least squares Outline Radial

Nonlinear unmixing of hyperspectral images using radial basis functions and orthogonal least squares

Radial basis function network

Network structure

Radial basis function network (RBFN)9

Proposed inversion procedureGiven y, approximating a by the following linear expansion

a = f−1M (y) ≈

N∑n=1

φn(y)wn = W

φ1(y)...

φN (y)

I a estimated abundance vector

I wn = [wn,1, . . . , wn,R]T weight vector

I φn(y) projection of the data vector y onto the nth basis function

I Gaussian kernels

φn(y) = exp

(−‖y − cn‖2

2σ2

)I cn nth center of the networkI unique fixed dispersion parameter σ2

I N number of basis functions

9Guilfoyle et al., IEEE Trans. Geosci. and Remote Sensing, 2001.11 / 34

Page 15: Nonlinear unmixing of hyperspectral images using radial ... · Nonlinear unmixing of hyperspectral images using radial basis functions and orthogonal least squares Outline Radial

Nonlinear unmixing of hyperspectral images using radial basis functions and orthogonal least squares

Radial basis function network

Network structure

Radial basis function network (RBFN)

Radial basis function network for nonlinear unmixing.

I Estimation of the nonlinear relation relating a to y: training step

I Estimation of abundance vectors: inversion step

12 / 34

Page 16: Nonlinear unmixing of hyperspectral images using radial ... · Nonlinear unmixing of hyperspectral images using radial basis functions and orthogonal least squares Outline Radial

Nonlinear unmixing of hyperspectral images using radial basis functions and orthogonal least squares

Radial basis function network

Network structure

Radial basis function network (RBFN)

Radial basis function network for nonlinear unmixing.

I Estimation of the nonlinear relation relating a to y: training step

I Estimation of abundance vectors: inversion step

12 / 34

Page 17: Nonlinear unmixing of hyperspectral images using radial ... · Nonlinear unmixing of hyperspectral images using radial basis functions and orthogonal least squares Outline Radial

Nonlinear unmixing of hyperspectral images using radial basis functions and orthogonal least squares

Training: selecting RBF centers using OLS

Outline

Radial basis function networkMixing modelsNetwork structure

Training: selecting RBF centers using OLS

Inversion: constrained abundance estimation

Simulation resultsSynthetic dataReal Image data

Conclusions

13 / 34

Page 18: Nonlinear unmixing of hyperspectral images using radial ... · Nonlinear unmixing of hyperspectral images using radial basis functions and orthogonal least squares Outline Radial

Nonlinear unmixing of hyperspectral images using radial basis functions and orthogonal least squares

Training: selecting RBF centers using OLS

Training step

Inputs:

I training pixels y1, . . . ,yN

I associated abundance vectors a1, . . . ,aN

Output:

I weights w1, . . . ,wN

14 / 34

Page 19: Nonlinear unmixing of hyperspectral images using radial ... · Nonlinear unmixing of hyperspectral images using radial basis functions and orthogonal least squares Outline Radial

Nonlinear unmixing of hyperspectral images using radial basis functions and orthogonal least squares

Training: selecting RBF centers using OLS

Training step

Inputs:

I training pixels y1, . . . ,yN

I associated abundance vectors a1, . . . ,aN

Outputs:

I weights w1, . . . ,wN

15 / 34

Page 20: Nonlinear unmixing of hyperspectral images using radial ... · Nonlinear unmixing of hyperspectral images using radial basis functions and orthogonal least squares Outline Radial

Nonlinear unmixing of hyperspectral images using radial basis functions and orthogonal least squares

Training: selecting RBF centers using OLS

Training step

Learning procedureGiven N training pixels y1, . . . ,yN and associated training abundancevectors a1, . . . ,aN , estimating w1, . . . ,wN such that

A =

aT1

...aT

N

=

φT (y1)

...φT (yN )

w

T1

...wT

N

+E = ΦW +E

I φ(y) = [φ1(y), . . . , φN (y)]T projections of y on the N RBFs

I Φ N ×N matrix of projections

I W N ×R matrix of weight vectors related to the N centers

I E projection error matrix

16 / 34

Page 21: Nonlinear unmixing of hyperspectral images using radial ... · Nonlinear unmixing of hyperspectral images using radial basis functions and orthogonal least squares Outline Radial

Nonlinear unmixing of hyperspectral images using radial basis functions and orthogonal least squares

Training: selecting RBF centers using OLS

Training step

Learning procedure

I Estimating W of size N ×R using least-squares method

minW‖A−ΦW ‖2F

where Φ is of size N ×N .

Problem

I Numerical issues for large values of N (Φ ill-conditioned)

Solution

I Selecting a reduced number of centers out of the N training pixels.

17 / 34

Page 22: Nonlinear unmixing of hyperspectral images using radial ... · Nonlinear unmixing of hyperspectral images using radial basis functions and orthogonal least squares Outline Radial

Nonlinear unmixing of hyperspectral images using radial basis functions and orthogonal least squares

Training: selecting RBF centers using OLS

Network complexity reduction

Proposed approach for complexity reduction

I Selection of the M << N most relevant network centers

→ How to determine the relevant subspace of span{φ1, . . . ,φN}?

18 / 34

Page 23: Nonlinear unmixing of hyperspectral images using radial ... · Nonlinear unmixing of hyperspectral images using radial basis functions and orthogonal least squares Outline Radial

Nonlinear unmixing of hyperspectral images using radial basis functions and orthogonal least squares

Training: selecting RBF centers using OLS

Network complexity reduction

Proposed approach for complexity reduction

I Selection of the M << N most relevant network centers

→ How to determine the relevant subspace of span{φ1, . . . ,φN}?

19 / 34

Page 24: Nonlinear unmixing of hyperspectral images using radial ... · Nonlinear unmixing of hyperspectral images using radial basis functions and orthogonal least squares Outline Radial

Nonlinear unmixing of hyperspectral images using radial basis functions and orthogonal least squares

Training: selecting RBF centers using OLS

Orthogonal least squares10

Orthogonalization

A = [φ1, . . . ,φN ] W + E= [q1, . . . , qN ] Θ + E

I Q = [q1, . . . , qN ] N ×N orthogonal matrix such that

span{φ1, . . . ,φN} = span{q1, . . . , qN}

I Θ = [θ1, . . . ,θN ]T new regression coefficients.

Decomposition into relevant/unrelevant subspace

I Sub-matrix decomposition Q =[Q1:M QM+1:N

]I Relevant decomposition obtained when the output energy matrixATA is approximated by

ATA =

N∑m=1

θTmq

Tmqmθm ≈

M∑m=1

θTmq

Tmqmθm

⇒ Quantification of the contribution of the M first orthogonal regressors!10Chen et al. IEEE Trans. Neural Network, 1991.

20 / 34

Page 25: Nonlinear unmixing of hyperspectral images using radial ... · Nonlinear unmixing of hyperspectral images using radial basis functions and orthogonal least squares Outline Radial

Nonlinear unmixing of hyperspectral images using radial basis functions and orthogonal least squares

Training: selecting RBF centers using OLS

Orthogonal least squares

Choosing the orthogonal basis

I Q depends on the orthogonalization of {φ1, . . . ,φN}I testing all the orthogonal basis derived from {φ1, . . . ,φN} using

permutations and Gram-Schmidt processes⇒ prohibitive computational cost

Proposed alternative

I sequential and iterative construction of the orthogonal basis in aforward regression manner (i.e., try M = 1, then M = 2, etc...).

(approach similar to the orthogonal matching pursuit)

I stopping rule based on the error reduction ratio

εM =

∥∥∥∑Mm=1 θ

Tmq

Tmqmθm

∥∥∥F

‖ATA‖F

21 / 34

Page 26: Nonlinear unmixing of hyperspectral images using radial ... · Nonlinear unmixing of hyperspectral images using radial basis functions and orthogonal least squares Outline Radial

Nonlinear unmixing of hyperspectral images using radial basis functions and orthogonal least squares

Inversion: constrained abundance estimation

Outline

Radial basis function networkMixing modelsNetwork structure

Training: selecting RBF centers using OLS

Inversion: constrained abundance estimation

Simulation resultsSynthetic dataReal Image data

Conclusions

22 / 34

Page 27: Nonlinear unmixing of hyperspectral images using radial ... · Nonlinear unmixing of hyperspectral images using radial basis functions and orthogonal least squares Outline Radial

Nonlinear unmixing of hyperspectral images using radial basis functions and orthogonal least squares

Inversion: constrained abundance estimation

Constrained abundance estimation

Network output

a = W TMφ(y)

I Network fixed after the training step

I WM estimated using M relevant regressors

ProblemConstraints not ensured when unmixing a new pixel!

Solution: constrained least-squares method

a = arg mina

∥∥∥φ(y)−W T†M a

∥∥∥2

2

subject to the positivity and sum-to-one constraints for a

I W T†M pseudo-inverse of W T

M

I problem solved using the FCLS algorithm11

11Heinz et al., IEEE Trans. Geosci. and Remote Sensing, 2001.23 / 34

Page 28: Nonlinear unmixing of hyperspectral images using radial ... · Nonlinear unmixing of hyperspectral images using radial basis functions and orthogonal least squares Outline Radial

Nonlinear unmixing of hyperspectral images using radial basis functions and orthogonal least squares

Simulation results

Outline

Radial basis function networkMixing modelsNetwork structure

Training: selecting RBF centers using OLS

Inversion: constrained abundance estimation

Simulation resultsSynthetic dataReal Image data

Conclusions

24 / 34

Page 29: Nonlinear unmixing of hyperspectral images using radial ... · Nonlinear unmixing of hyperspectral images using radial basis functions and orthogonal least squares Outline Radial

Nonlinear unmixing of hyperspectral images using radial basis functions and orthogonal least squares

Simulation results

Synthetic data

Synthetic data

Simulation parameters

I 3 synthetic images (10× 10 pixels) composed of R = 3 endmembers(green grass, olive green paint, galvanized steel metal) corrupted by anadditive Gaussian noise with SNR ' 15dB

I 3 mixing modelsI1 = Linear Mixing Model (LMM)I2 = Fan’s model (FM)12

I3 = Nascimento’s model (NM)13

I Abundances uniformly drawn over the simplex defined by theconstraints.

Training data

I 3 training images (50× 50 = 2500 pixels) composed of the same R = 3endmembers (SNR ' 15dB)

I 3 mixing modelsT1 = LMMT2 = FMT3 = NM

12Fan and al., Remote Sensing of Environment, 2009.13Nascimento et al., Proc. SPIE, 2009.

25 / 34

Page 30: Nonlinear unmixing of hyperspectral images using radial ... · Nonlinear unmixing of hyperspectral images using radial basis functions and orthogonal least squares Outline Radial

Nonlinear unmixing of hyperspectral images using radial basis functions and orthogonal least squares

Simulation results

Synthetic data

Synthetic data

Training step: center selection

Initial 2500 centers (left) and selected centers for the images T1 (middle) and T2

(right) with the OLS procedure.

I M = 11 centers selected for T1 (LMM)

I M = 13 centers selected for T2 (FM)

I M = 17 centers selected for T3 (NM) (not displayed here)

26 / 34

Page 31: Nonlinear unmixing of hyperspectral images using radial ... · Nonlinear unmixing of hyperspectral images using radial basis functions and orthogonal least squares Outline Radial

Nonlinear unmixing of hyperspectral images using radial basis functions and orthogonal least squares

Simulation results

Synthetic data

Synthetic data

Quality of unmixing

I Root mean square error

RMSE =

√√√√ 1

NR

N∑n=1

‖an − an‖2

an estimate of the nth abundance vector an

RMSE (×10−1)

without OLS with OLSModel-based algo.

RBFN CRBFN RBFN CRBFN

I1 (LMM) 0.409 0.407 0.411 0.403 0.395 (FCLS)

I2 (FM) 0.391 0.378 0.376 0.393 0.42014

I3 (NM) 0.541 0.532 0.547 0.544 0.689 (FCLS)

14Fan and al., Remote Sensing of Environment, 2009.27 / 34

Page 32: Nonlinear unmixing of hyperspectral images using radial ... · Nonlinear unmixing of hyperspectral images using radial basis functions and orthogonal least squares Outline Radial

Nonlinear unmixing of hyperspectral images using radial basis functions and orthogonal least squares

Simulation results

Real Image data

Real data

Simulation parameters

I Real hyperspectral image of 50× 50 pixels extracted from a largerimage acquired in 1997 by AVIRIS (Moffett Field, CA, USA) data setreduced from 224 to 189 bands (water absorption bands removed)

I VCA used to extract the R = 3 approximated endmembers associatedto water, soil and vegetation.

Real hyperspectral data: Moffett field acquired by AVIRIS in 1997 (left) and theregion of interest shown in true colors (right).

28 / 34

Page 33: Nonlinear unmixing of hyperspectral images using radial ... · Nonlinear unmixing of hyperspectral images using radial basis functions and orthogonal least squares Outline Radial

Nonlinear unmixing of hyperspectral images using radial basis functions and orthogonal least squares

Simulation results

Real Image data

Real data

Estimated endmembers

Training step

I Estimated spectra used to generate training data sets of 2500 pixelsaccording to the LMM and FM (SNR ≈ 15 dB)

I OLS procedure performed to reduce the number of centers (LMM: 21centers, FM: 23 centers)

29 / 34

Page 34: Nonlinear unmixing of hyperspectral images using radial ... · Nonlinear unmixing of hyperspectral images using radial basis functions and orthogonal least squares Outline Radial

Nonlinear unmixing of hyperspectral images using radial basis functions and orthogonal least squares

Simulation results

Real Image data

Real data

Estimated abundance maps (LMM)

Top: Constrained RBFN. Bottom: FCLS.

I Maps similar to maps obtained using dedicated algorithms

30 / 34

Page 35: Nonlinear unmixing of hyperspectral images using radial ... · Nonlinear unmixing of hyperspectral images using radial basis functions and orthogonal least squares Outline Radial

Nonlinear unmixing of hyperspectral images using radial basis functions and orthogonal least squares

Simulation results

Real Image data

Real data

Estimated abundance maps (FM)

Top: Constrained RBFN. Bottom: Fan-LS.

I Maps similar to maps obtained using dedicated algorithms

31 / 34

Page 36: Nonlinear unmixing of hyperspectral images using radial ... · Nonlinear unmixing of hyperspectral images using radial basis functions and orthogonal least squares Outline Radial

Nonlinear unmixing of hyperspectral images using radial basis functions and orthogonal least squares

Conclusions

Outline

Radial basis function networkMixing modelsNetwork structure

Training: selecting RBF centers using OLS

Inversion: constrained abundance estimation

Simulation resultsSynthetic dataReal Image data

Conclusions

32 / 34

Page 37: Nonlinear unmixing of hyperspectral images using radial ... · Nonlinear unmixing of hyperspectral images using radial basis functions and orthogonal least squares Outline Radial

Nonlinear unmixing of hyperspectral images using radial basis functions and orthogonal least squares

Conclusions

Conclusions

Nonlinear unmixing of hyperspectral images using radial basis functions andorthogonal least squares

I Radial basis functions introduced to invert the nonlinear relationshipbetween the observation vector and the associated abundance vector.

I Selection of a reduced number of RBFs centers from training data toreduce the network complexity using an OLS procedure.

I Modification of the algorithm to satisfy positivity and sum-to-oneconstraints.

Perspectives

I Adaptive update of the weights and centers for unsupervised unmixing.

33 / 34

Page 38: Nonlinear unmixing of hyperspectral images using radial ... · Nonlinear unmixing of hyperspectral images using radial basis functions and orthogonal least squares Outline Radial

Nonlinear unmixing of hyperspectral images using radial basis functions and orthogonal least squares

Conclusions

Nonlinear unmixing of hyperspectral imagesusing radial basis functionsand orthogonal least squares

Yoann Altmann1, Nicolas Dobigeon1,Steve McLaughlin2 and Jean-Yves Tourneret1

1University of Toulouse - IRIT/INP-ENSEEIHT Toulouse, FRANCE2School of Engineering and Electronics - University of Edinburgh, U.K.

IEEE IGARSS 2011, Vancouver, Canada

34 / 34


Recommended