picking the best daisymatthewalunbrown.com/patchdata/tutorial.pdf · picking the best daisy...

26
Picking the Best DAISY (document version 2.0) Algorithms and Parameters for Trained Image Descriptors Simon Winder ([email protected]) Gang Hua ([email protected]) Matthew Brown ([email protected])

Upload: others

Post on 14-Jun-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Picking the Best DAISYmatthewalunbrown.com/patchdata/tutorial.pdf · Picking the Best DAISY (document version 2.0) Algorithms and Parameters for Trained Image Descriptors Simon Winder

Picking the Best DAISY(document version 2.0)

Algorithms and Parameters for Trained Image Descriptors

Simon Winder ([email protected]) Gang Hua ([email protected])

Matthew Brown ([email protected])

Page 2: Picking the Best DAISYmatthewalunbrown.com/patchdata/tutorial.pdf · Picking the Best DAISY (document version 2.0) Algorithms and Parameters for Trained Image Descriptors Simon Winder

Background

The DAISY descriptor is an algorithm that converts local image regions into low dimensional invariant descriptors which can be used for matching and classification. It can be applied densely or applied to patches extracted around interest points.

Using this algorithm it is possible to get much reduced error rates compared to the SIFT algorithm and also to reduce computational cost and descriptor storage requirements.

A number of variants on the same algorithm have been designed to fulfill various application requirements. The optimal parameters for each algorithm have been learned from training data and are provided in this document.

The following references provide more information:

• Learning Local Image Descriptors. S. Winder and M. Brown, CVPR 2007.• A Fast Local Descriptor for Dense Matching. E. Tola, V. Lepetit, and P. Fua. CVPR 2008.• Picking the Best DAISY. S. Winder, G. Hua, and M. Brown, CVPR 2009.

Parts of the algorithm described here are covered by Microsoft patents. A license may be required for commercial use.

Page 3: Picking the Best DAISYmatthewalunbrown.com/patchdata/tutorial.pdf · Picking the Best DAISY (document version 2.0) Algorithms and Parameters for Trained Image Descriptors Simon Winder

The DAISY Algorithm

The DAISY algorithm consists of the five building blocks shown above. Only the T, S, and N blocks are required for all applications. Typically the input is a square monochrome image patch and the output is a vector of bytes.

For every pixel in the input patch, the T-block computes a vector of k feature detector responses. These responses have positive values and we allow a choice of three different feature algorithms based on gradients or steerable filters, described shortly.

The S-block is used to combine T-block filter responses spatially by pooling them using 2D Gaussian weighting profiles. The Gaussian pooling centers are arranged in a log-polar configuration like flower petals with size increasing away from the center of the patch. For each of these N pooling centers, the k feature responses are independently pooled over space, resulting in a vector of kN numbers. We provide spatial parameters for Gaussian weighting functions appropriate for various values of N.

The normalization, or N-block, involves unit-normalization of the vector coming from the S-block which introduces robustness to lighting changes. This includes a clipping stage which was proposed by David Lowe and is very important to the performance ofthe resulting descriptors.

Page 4: Picking the Best DAISYmatthewalunbrown.com/patchdata/tutorial.pdf · Picking the Best DAISY (document version 2.0) Algorithms and Parameters for Trained Image Descriptors Simon Winder

The DAISY Algorithm

The dimension reduction stage takes the kN dimensions of the descriptor after normalization and reduces its dimensionality to the final size D. This involves multiplying the vector by a matrix of size D by kN. We have computed suitable matrices for some of the descriptor choices and provide them in this document. Not all descriptor choices require this dimensionality reduction and it may be left out where computational speed is important.

The final descriptor with/without dimensionality reduction may optionally be quantized or compressed to fit in a limited number of bytes. Later we describe the scaling and quantization required to obtain good results. All descriptors give good performance with only 4 bits per dimension.

We provide a choice of parameters for algorithms depending on whether speed, descriptor storage, low dimensionality, or matching performance is important to your application. Based on experience we found it is extremely difficult to reach good performance by hand-tuning parameters. Therefore the parameters given here were machine optimized to maximize ROC area on patch datasets based on ground truth DOG interest point matches.

Page 5: Picking the Best DAISYmatthewalunbrown.com/patchdata/tutorial.pdf · Picking the Best DAISY (document version 2.0) Algorithms and Parameters for Trained Image Descriptors Simon Winder

Basic DAISY Algorithm for Image Patches at Interest Points

The DAISY descriptor is computed on a square patch of image pixels, but the algorithm does not define how this patch is obtained. Typically these patches are cut out of images at locations which are centered on interest points. For many applications, to obtain invariance with respect to orientation and scale, it is necessary to estimate a canonical orientation and scale (and, optionally, an affine frame) at the interest point location and use this to set the rotation and scaling of the patch when sampling it from thesource image. In our experiments we detected interest points using a Difference of Gaussians (DoG) detector and determined scale by detecting and interpolating scale space extrema and orientation using gradient angle histogramming in a similar manner to SIFT.

Our patch size was 64 x 64 pixels and these patches were sampled at the correct scale and orientation from the most appropriate level in a Gaussian pyramid so that they were neither too blurry nor aliased. It is necessary to tune the ratio between the patch footprint size in the source image and the scale of the interest point, e.g., as indicated by the optimal wavelength of the DoGimpulse response (diameter of its zero crossing ring). If the patch footprint is too small, poor results are obtained. Typically the patch footprint width should be at least 5 times larger than the associated DoG center diameter when using DoG interest points. Other types of interest point may require a different approach to setting the descriptor patch footprint size.

Although this document gives parameters assuming a 64 x 64 patch size, in practice we use patches as small as 18 x 18 with little reduction in descriptor performance but significant computational saving. However the reduced resolution patches must cover the same total footprint area in the source image as the 64 x 64 patches and be sampled from a coarser Gaussian pyramid level toprevent aliasing. All descriptor size parameters of the DAISY algorithm must then be appropriately scaled down to reflect thereduced descriptor resolution.

Page 6: Picking the Best DAISYmatthewalunbrown.com/patchdata/tutorial.pdf · Picking the Best DAISY (document version 2.0) Algorithms and Parameters for Trained Image Descriptors Simon Winder

T1-4 and T1-8 T-Block Processing

Starting from the 64 x 64 monochrome image patch, we detect gradient features as following:

1. First the patch is smoothed by convolution with a Gaussian kernel having a standard deviation of s_init. With care, this smoothing can be rolled into the patch sampling if desired. It is important to note that the Gaussian smoothing stage is essential and should not be skipped.

2. Gradient vectors should be computed at each pixel. The horizontal and vertical derivative kernels are [-1 0 1], centered on the zero. This gives a 62 x 62 matrix of gradient vectors.

3. The magnitude and orientation of each gradient vector is determined using the math function atan2.

4. A feature vector of length k=4 (T1-4) or k=8 (T1-8) orientation histogram bins is generated for each gradient location.

5. The orientation angle of the gradient is used to select a pair of adjacent orientation bins of the feature vector with wrapping around from the last bin to the first bin.

6. The magnitude of the gradient is apportioned into the two adjacent bins using bilinear weighting depending on the distance between the orientation angle and the fixed center angles of the bins.

7. All remaining feature vector bins are set to zero.

Page 7: Picking the Best DAISYmatthewalunbrown.com/patchdata/tutorial.pdf · Picking the Best DAISY (document version 2.0) Algorithms and Parameters for Trained Image Descriptors Simon Winder

T2-4 and T2-8 T-Block Processing

Starting from the 64 x 64 monochrome image patch, we detect gradient features as following:

1. First the patch is smoothed by convolution with a Gaussian kernel having a standard deviation of s_init. With care, this smoothing can be rolled into the patch sampling if desired. It is important to note that the Gaussian smoothing stage is essential and should not be skipped.

2. Gradient vectors [dx, dy] should be computed at each pixel. The horizontal and vertical derivative kernels are [-1 0 1], centered on the zero. This gives a 62 x 62 matrix of gradient vectors.

3. A feature vector of length k=4 (T2-4) or k=8 (T2-8) orientation histogram bins is generated for each gradient location.

4. For T2-4, the feature vector is set equal to [pos(dx), pos(-dx), pos(dy), pos(-dy)], where pos(x) = (x>0 ? x : 0).

5. For T2-8, the feature vector is set equal to [pos(dx), pos(-dx), pos(dy), pos(-dy), pos(dx-dy)/sqrt(2), pos(dy-dx)/sqrt(2), pos(dx+dy)/sqrt(2), pos(-dx-dy)/sqrt(2)], where pos(x) = (x>0 ? x : 0).

6. For T2-8a, the T2-8 feature vector is subsequently post-processed by subtracting 2.5 times its mean value from each element and then setting any negative elements to zero.

Page 8: Picking the Best DAISYmatthewalunbrown.com/patchdata/tutorial.pdf · Picking the Best DAISY (document version 2.0) Algorithms and Parameters for Trained Image Descriptors Simon Winder

T3-4 and T3-6 T-Block Processing

Starting from the 64 x 64 monochrome image patch, we detect features using steerable filters as follows:

1. Compute 2nd order quadrature steerable filter responses at 4 (T3-4, k=16) or 6 (T3-6, k=24) orientations using the approach described in W. T. Freeman and E. H. Adelson, The design and use of steerable filters, IEEE PAMI, 13:891–906, 1991.

2. The filter kernels must be scaled up by a spatial scale factor s_steerable when compared to the default kernels provided in the reference above. This is achieved by sampling the 1D kernel functions more frequently. Alternatively the source image patch can be downsampled by the scale factor, the default kernels applied, and then their responses up-sampled by the scale factor.

3. A feature vector is computed for every patch location using the steerable filter responses. This vector is [pos(odd_i), pos(-odd_i), pos(even_i), pos(-even_i), …] for i=0 to i=3 for the 4 odd and even orientation channels of T3-4 or for i=0 to i=5 for the 6 odd and even orientation channels of T3-6, where pos(x) = (x>0 ? x : 0).

Page 9: Picking the Best DAISYmatthewalunbrown.com/patchdata/tutorial.pdf · Picking the Best DAISY (document version 2.0) Algorithms and Parameters for Trained Image Descriptors Simon Winder

S-Block Processing

The S-block takes the feature vectors from the T-block and applies a Gaussian weighted spatial pooling process which acts as a form of weighted histogram into N spatial bins where each bin has k dimensions corresponding to the T-block feature vector elements.

The descriptor output d_ij = Sum_xy [ G(x - xc_j, y - yc_j, s_j) T_i(x, y) ], where j=0 to N-1, G(x, y, s) is the 2D Gaussian kernel of size s and [xc_j, yc_j] is the location of the center of the Gaussian, and T_i(x, y) is the T-block feature map output with i=0 to k-1.

This summation process can be efficiently implemented using 1D Gaussians and lookup tables. The Gaussian region weights are projected onto the x-axis and y-axis to generate look-up tables on x and y and the product is used as the weight at each pixel. Other improvements in efficiency are possible when small weights are truncated to zero.

It is important that the weighting functions are all correctly normalized, especially since some of the Gaussian mass will be slightly clipped by the edge of the image patch. To achieve this, we calculate the sum of the non-zero weights for the j-th Gaussian and divide all i elements in d_ij by this factor.

Four weighting arrangements are used: 1 ring of 6 segments (1r6s), 1 ring of 8 segments (1r8s), 2 rings of 6 segments (2r6s) and 2 rings of 8 segments (2r8s). The optimal position and scale parameters are given later. Note that for the two ring case, we offset the angle of the inner ring by half the angle between the segments to give the configurations shown in the diagram above.

Page 10: Picking the Best DAISYmatthewalunbrown.com/patchdata/tutorial.pdf · Picking the Best DAISY (document version 2.0) Algorithms and Parameters for Trained Image Descriptors Simon Winder

N-Block Processing

Two different normalization procedures were used.

Non-Iterative NormalizationIn the normalization block, the length D = kN descriptor vector is normalized as follows:

1. The geometric length L of the vector is computed where L = sqrt(sum_i [ d_i * d_i]).

2. The vector is normalized by dividing each element by L.

3. All elements that are above a threshold T = n_thresh / sqrt(D) are set to T. The parameter n_thresh is different for every descriptor and is given later.

4. All elements are multiplied by 255 / T and are optionally converted into bytes with rounding to nearest.

5. The resulting descriptor can be used directly or optionally dimension and dynamic range reduction can be applied.

Iterative Normalization1. The geometric length L of the vector is computed where L = sqrt(sum_i [ d_i * d_i]).

2. The vector is normalized by dividing each element by L.

3. All elements that are above a threshold T = n_thresh / sqrt(D) are set to T. The parameter n_thresh is different for every descriptor and is given later, however typically n_thresh has a value of around 1.6.

4. The procedure is repeated from steps 1 through 3 for 10 iterations of renormalization.

5. All elements are multiplied by 255 / T and are optionally converted into bytes with rounding to nearest.

Non-iterative normalization was found to work slightly better but most of our trained parameters sets are for iterative normalization. We found iterative normalization to produce more consistent values for n_thresh between descriptors.

Page 11: Picking the Best DAISYmatthewalunbrown.com/patchdata/tutorial.pdf · Picking the Best DAISY (document version 2.0) Algorithms and Parameters for Trained Image Descriptors Simon Winder

Dimension Reduction

Dimension reduction is achieved by multiplying the descriptor vector by a pre-computed matrix that projects it into a space having smaller dimensionality. Example matrices are given later.

The dimensionality reduction is applied to the normalized descriptor coming from the N-block. After multiplying by the PCA matrix, the new shorter descriptor is re-normalized to a unit length vector having signed values.

Page 12: Picking the Best DAISYmatthewalunbrown.com/patchdata/tutorial.pdf · Picking the Best DAISY (document version 2.0) Algorithms and Parameters for Trained Image Descriptors Simon Winder

Quantization

Quantization reduces the dynamic range of the descriptor. It allows for an improved compression of descriptor elements which is important when billions of descriptors need to be stored. As a rule of thumb, descriptors which have been dimension reduced using a PCA matrix can have their dynamic range reduced to 4 bits, while non-PCA-reduced descriptors can be stored using 2 bits per dimension. We found that some higher dimensionality descriptors can be stored with 1 bit per dimension with minimal loss in matching accuracy which is useful since bit operations can be used for comparing descriptors.

Descriptor elements d_i are quantized into L levels. Typically L is a power of 2, but it need not be.

• When there is no PCA reduction stage then the descriptor has only positive values and the following procedure is used: q_i = floor(q_beta * L * d_i) where q_beta is a scale parameter given later. The final value q_i is clipped so that q_i ∈ {0, . . . , L − 1}.

• When PCA is used and descriptor elements are signed the following procedure is used: If L is odd then the quantized descriptor q_i = floor(q_beta * L * d_i + 0.5) where q_beta is a scale parameter given later. Here the quantized elements must be clipped to the range q_i ∈ {−(L − 1)/2, . . . , (L − 1)/2} . If L is even, then q_i = floor(q_beta * L * d_i) with q_i ∈ {−L/2, . . . , L/2 − 1}. The asymmetry in quantized values does not affect descriptor distance calculations. These ranges can be arbitrarily mapped to more convenient ranges. We quantize all PCA-reduced dimensions to the same number of levels despite their differences in variance.

Page 13: Picking the Best DAISYmatthewalunbrown.com/patchdata/tutorial.pdf · Picking the Best DAISY (document version 2.0) Algorithms and Parameters for Trained Image Descriptors Simon Winder

DAISY Algorithm for Dense Descriptors

The dense descriptor algorithm is used whenever descriptors are needed for every location in an image, or for sufficiently largenumbers of locations that an interest point patch-based descriptor is computationally inefficient. The DAISY descriptor can easily be computed densely, but with the limitation that it can only be efficiently computed at discrete scales and orientations. However with some approximations, the orientation limitation can be overcome.

The dense DAISY algorithm takes as its input a complete image and allows a descriptor to be computed at any point on demand. Essentially, T-block and then S-block feature responses are pre-computed for the whole image, and then the descriptor elements are gathered by bilinear sampling in ring patterns from these response maps. The N-block and other blocks are then applied to the sampled descriptor as needed. The general form of this algorithm is described in A Fast Local Descriptor for Dense Matching, E. Tola, V. Lepetit, and P. Fua, CVPR 2008.

Approximating Scale Invariance

To allow descriptors to be computed at discrete scales, a Gaussian pyramid can be used, e.g., with fractional scales as in SIFT, and descriptor spatial parameters can be adjusted as necessary to give for example one third octave spacing in scales. Since, for the dense algorithm, the DAISY rings are point sampled on the fly, their diameter can be dynamically adjusted to better approximate continuous scaling of the whole descriptor footprint if desired.

Approximating Orientation Invariance

T-block filter responses are pre-computed at fixed orientations in the source image. To rotate the descriptor, it is necessary to rotate the sample location for the DAISY petals around the ring and to also select the ordering of feature orientation channels when building the descriptor so that they are nearest to the correct orientation. E.g., if the descriptor is rotated 45 degrees then all zero degree orientation channel elements of the descriptor now come from the 45 degree filter. Since gradient filters have awide orientation selectivity, picking the Gaussian blurred filter response nearest to the correct orientation for each element is a reasonable strategy to obtain an approximation to continuous orientation invariance.

Page 14: Picking the Best DAISYmatthewalunbrown.com/patchdata/tutorial.pdf · Picking the Best DAISY (document version 2.0) Algorithms and Parameters for Trained Image Descriptors Simon Winder

Dense Descriptors Overview

Source Image

GaussianBlur s_init

T-block Filter

T blockMap 1

T blockMap 2

T blockMap n

GaussianBlurs

GaussianBlurs

GaussianBlurs

T blockMap 1

T blockMap 1

S blockMaps

T blockMap 1

T blockMap 1

S blockMaps

T blockMap 1

T blockMap 1

S blockMaps

Bilinear samplingof S-block maps atDAISY weighting

centers

N-block

Descriptor

Page 15: Picking the Best DAISYmatthewalunbrown.com/patchdata/tutorial.pdf · Picking the Best DAISY (document version 2.0) Algorithms and Parameters for Trained Image Descriptors Simon Winder

Dense Descriptors with T1-Blocks

Starting from a source image or from a level in a pyramid the dense descriptor algorithm progresses as follows:

1. Blur the source image with a Gaussian of sigma = s_init. This operation can be rolled into the Gaussian pyramid computation if desired.

2. Compute gradient vectors [dx dy] at every location by convolution with derivative kernels [-1 0 1].

3. Compute the magnitude and argument of these gradients using atan2.

4. A feature vector of length k=4 (T1-4) or k=8 (T1-8) orientation histogram bins is generated for each gradient location.

5. The orientation angle of the gradient is used to select a pair of adjacent orientation bins of the feature vector with wrapping around from the last bin to the first bin.

6. The magnitude of the gradient is apportioned into the two adjacent bins using bilinear weighting depending on the distance between the orientation angle and the fixed center angles of the bins.

7. All remaining feature vector bins are set to zero.

8. Save the k feature vector elements generated from the gradient vector in the corresponding pixel of the k T-block maps.

9. Compute the S-block maps by Gaussian blurring all of the T-block maps. There is one set of k S-block maps for the center of the DAISY configuration and one additional set for every ring.

10. At each desired descriptor location, sample the S-block maps using bilinear interpolation, once for the center of the DAISY and once for the center of every weighting blob around each ring using the size constants given later. For each of the N blob positions, there are k samples required.

11. Apply N-block normalization to the concatenated descriptor as described previously.

12. Apply any additional dimension reduction or quantization.

Note that to avoid large Gaussian convolutions, the maps can be safely down-sampled during blurring by a factor equal to the Gaussian size constant, e.g., a Gaussian with sigma>=2 allows for down-sampling by 2.

Page 16: Picking the Best DAISYmatthewalunbrown.com/patchdata/tutorial.pdf · Picking the Best DAISY (document version 2.0) Algorithms and Parameters for Trained Image Descriptors Simon Winder

Dense Descriptors with T2-Blocks

Starting from a source image or from a level in a pyramid the dense descriptor algorithm progresses as follows:

1. Blur the source image with a Gaussian of sigma = s_init. This operation can be rolled into the Gaussian pyramid computation if desired.

2. Compute gradient vectors [dx dy] at every location by convolution with derivative kernels [-1 0 1].

3. A feature vector of length k=4 (T2-4) or k=8 (T2-8) orientation histogram bins is generated for each gradient location.

4. For T2-4, the feature vector is set equal to [pos(dx), pos(-dx), pos(dy), pos(-dy)], where pos(x) = (x>0 ? x : 0).

5. For T2-8, the feature vector is set equal to [pos(dx), pos(-dx), pos(dy), pos(-dy), pos(dx-dy)/sqrt(2), pos(dy-dx)/sqrt(2), pos(dx+dy)/sqrt(2), pos(-dx-dy)/sqrt(2)], where pos(x) = (x>0 ? x : 0).

6. For T2-8a, the T2-8 feature vector is subsequently post-processed by subtracting 2.5 times its mean value from each element and then setting any negative elements to zero.

7. Save the k feature vector elements generated from the gradient vector in the corresponding pixel of the k T-block maps.

8. Compute the S-block maps by Gaussian blurring all of the T-block maps. There is one set of k S-block maps for the center of the DAISY configuration and one additional set for every ring.

9. At each desired descriptor location, sample the S-block maps using bilinear interpolation, once for the center of the DAISY and once for the center of every weighting blob around each ring using the size constants given later. For each of the N blob positions, there are k samples required.

10. Apply N-block normalization to the concatenated descriptor as described previously.

11. Apply any additional dimension reduction or quantization.

Note that to avoid large Gaussian convolutions, the maps can be safely down-sampled during blurring by a factor equal to the Gaussian size constant, e.g., a Gaussian with sigma>=2 allows for down-sampling by 2.

Page 17: Picking the Best DAISYmatthewalunbrown.com/patchdata/tutorial.pdf · Picking the Best DAISY (document version 2.0) Algorithms and Parameters for Trained Image Descriptors Simon Winder

Dense Descriptors with T3-Blocks

Starting from a source image or from a level in a pyramid the dense descriptor algorithm progresses as follows:

1. Compute 2nd order quadrature steerable filter responses at 4 (T3-4, k=16) or 6 (T3-6, k=24) orientations using the approach described in W. T. Freeman and E. H. Adelson, The design and use of steerable filters, IEEE PAMI, 13:891–906, 1991.

2. The filter kernels must be scaled up by a spatial scale factor s_steerable when compared to the default kernels provided in the reference above. This is achieved by sampling the 1D kernel functions more frequently. Alternatively the source image can be downsampled by the scale factor, the default kernels applied, and then all later spatial parameters of the S-block reduced by the scale factor.

3. A feature vector is computed for every patch location using the steerable filter responses. This vector is [pos(odd_i), pos(-odd_i), pos(even_i), pos(-even_i), …] for i=0 to i=3 for the 4 odd and even orientation channels of T3-4 or for i=0 to i=5 for the 6 odd and even orientation channels of T3-6, where pos(x) = (x>0 ? x : 0). If desired, even responses can be eliminated for improved computational efficiency without causing very large increases in error rate.

4. Save the k feature vector elements generated from the gradient vector in the corresponding pixel of the k T-block maps.

5. Compute the S-block maps by Gaussian blurring all of the T-block maps. There is one set of k S-block maps for the center of the DAISY configuration and one additional set for every ring.

6. At each desired descriptor location, sample the S-block maps using bilinear interpolation, once for the center of the DAISY and once for the center of every weighting blob around each ring using the size constants given later. For each of the N blob positions, there are k samples required.

7. Apply N-block normalization to the concatenated descriptor as described previously.

8. Apply any additional dimension reduction or quantization.

Note that to avoid large Gaussian convolutions, the maps can be safely down-sampled during blurring by a factor equal to the Gaussian size constant, e.g., a Gaussian with sigma>=2 allows for down-sampling by 2.

Page 18: Picking the Best DAISYmatthewalunbrown.com/patchdata/tutorial.pdf · Picking the Best DAISY (document version 2.0) Algorithms and Parameters for Trained Image Descriptors Simon Winder

Descriptor Error Rates and Complexity

T1-4-1r6sT1-4-1r8sT1-4-2r6s

T1-4-2r8sT1-8-1r6sT1-8-1r8s

T1-8-2r6s

T1-8-2r8s

T2-4-1r6sT2-4-1r8s

T2-4-2r6sT2-4-2r8s

T2-8a-1r6sT2-8a-1r8s

T2-8a-2r6sT2-8a-2r8s

T3-6-1r6s

T3-4-1r8s

T3-6-1r12s

T3-6-2r6s

T3-4-2r8s

T3-6-2r12s

0

500

1000

1500

2000

2500

3000

10 15 20 25 30

Error Rate without PCA (%)

Ru

n T

ime

(us

for

64

x64

pat

ch)

R/S – Rings/SegmentsError rates for two different test sets are shown

Page 19: Picking the Best DAISYmatthewalunbrown.com/patchdata/tutorial.pdf · Picking the Best DAISY (document version 2.0) Algorithms and Parameters for Trained Image Descriptors Simon Winder

Recommended Descriptors

There tends to be a trade-off between error rate, dimensionality and complexity:

• Lowest complexity– T2-4-1r6s has the lowest complexity, low dimensionality (28)

and an error rate similar to SIFT. The error rate is significantly improved with PCA.

– T2-4-2r6s has low complexity and much better error rate than SIFT. It is improved even further with PCA, where it approaches the error rate of the best descriptors and uses <32 dimensions.

• Best performance– The best descriptors are T3-6-2r6s with or without PCA.

However they are only slightly better than the T2-8a-2r6s which has much lower complexity and dimensionality.

Page 20: Picking the Best DAISYmatthewalunbrown.com/patchdata/tutorial.pdf · Picking the Best DAISY (document version 2.0) Algorithms and Parameters for Trained Image Descriptors Simon Winder

T1 Gradient Parameters (64 x 64 patch)

Dim Error S_init S_c S_r1 S_r2 r1 r2 N_thresh

T1-4-1r6s 28 26.1 1.76 2.88 6.68 - 15.8 - 1.53

T1-4-1r8s 36 25.7 1.85 2.91 6.24 - 16.3 - 1.53

T1-4-2r6s 52 20.9 1.83 3.02 4.02 8.17 8.1 21.0 1.58

T1-4-2r8s 68 20.8 1.88 2.85 3.93 7.86 8.2 22.0 1.54

T1-8-1r6s 56 21.1 1.47 2.66 8.16 - 20.6 - 1.58

T1-8-1r8s 72 20.3 1.61 2.75 5.85 - 16.2 - 1.57

T1-8-2r6s 104 16.9 1.43 1.33 3.96 8.48 8.6 23.3 1.56

T1-8-2r8s 136 15.6 1.40 0.23 3.58 8.66 8.1 25.7 1.58

S_init – initial smooth Gaussian sigma prior to gradient computation, S_c – center S-block sigma, S_r1 – first ring S-block sigma, S_r2 – second ring S-block sigma, r1 – first ring radius, r2 – second ring radius, N_thresh – threshold ratio. All sizes are in pixels for a 64 x 64 patch with a footprint having 6 times the optimal DoG detector blob diameter. Iterative normalization was used.

Page 21: Picking the Best DAISYmatthewalunbrown.com/patchdata/tutorial.pdf · Picking the Best DAISY (document version 2.0) Algorithms and Parameters for Trained Image Descriptors Simon Winder

T2 Gradient Parameters (64 x 64 patch)

Dim Error S_init S_c S_r1 S_r2 r1 r2 N_thresh

T2-4-1r6s 28 27.5 1.87 3.17 6.82 - 15.1 - 1.52

T2-4-1r7s 32 27.2 1.81 3.07 6.17 - 15.5 - 1.53

T2-4-1r8s 36 27.1 2.00 2.69 5.77 - 15.2 - 1.59

T2-4-2r6s 52 21.6 1.96 2.68 4.15 8.51 8.0 21.9 1.59

T2-4-2r8s 68 21.4 1.96 2.11 3.83 7.66 7.9 21.4 1.59

T2-8a-1r6s 56 21.2 1.50 2.69 6.65 - 16.9 - 1.60

T2-8a-1r7s 64 20.6 1.51 2.63 6.13 - 16.9 - 1.58

T2-8a-1r8s 72 20.8 1.55 2.60 5.73 - 16.5 - 1.58

T2-8a-2r6s 104 16.6 1.40 1.23 4.14 9.95 9.5 28.9 1.57

T2-8a-2r8s 136 16.6 1.30 1.00 3.61 8.03 8.4 23.3 1.57

S_init – initial smooth Gaussian sigma prior to gradient computation, S_c – center S-block sigma, S_r1 – first ring S-block sigma, S_r2 – second ring S-block sigma, r1 – first ring radius, r2 – second ring radius, N_thresh – threshold ratio. All sizes are in pixels for a 64 x 64 patch with a footprint having 6 times the optimal DoG detector blob diameter. Iterative normalization was used.

Page 22: Picking the Best DAISYmatthewalunbrown.com/patchdata/tutorial.pdf · Picking the Best DAISY (document version 2.0) Algorithms and Parameters for Trained Image Descriptors Simon Winder

T2 Gradient Parameters (18 x 18 patch)

Dim Error S_init S_c S_r1 S_r2 r1 r2 N_thresh

T2-4-1r6s 28 26.5 0.57 0.77 1.77 - 4.2 - 1.14

T2-4-1r7s 32 25.1 0.45 0.73 1.61 - 4.2 - 1.24

T2-4-2r6s 52 21.5 0.53 0.68 1.29 2.26 2.8 6.5 0.83

T2-8a-1r6s 56 19.9 0.57 1.00 2.02 - 5.3 - 0.61

T2-8a-1r7s 64 20.0 0.56 1.12 1.94 - 5.0 - 0.66

T2-8a-2r6s 104 16.4 0.33 0.79 1.20 2.13 3.4 6.4 0.42

S_init – initial smooth Gaussian sigma prior to gradient computation, S_c – center S-block sigma, S_r1 – first ring S-block sigma, S_r2 – second ring S-block sigma, r1 – first ring radius, r2 – second ring radius, N_thresh – threshold ratio. All sizes are in pixels for a 18 x 18 patch with a footprint having 6 times the optimal DoG detector blob diameter. Non-iterative normalization was used.

Page 23: Picking the Best DAISYmatthewalunbrown.com/patchdata/tutorial.pdf · Picking the Best DAISY (document version 2.0) Algorithms and Parameters for Trained Image Descriptors Simon Winder

T3 Steerable Filter Parameters(64 x 64 patch)

Dim Error S_steer S_c S_r1 S_r2 r1 r2 N_thresh

T3-6-1r6s 168 18.1 3.20 2.80 6.53 - 15.9 - 1.33

T3-4-1r8s 144 18.5 3.25 2.50 6.39 - 15.4 - 1.34

T3-6-1r12s 312 18.5 3.49 1.96 6.41 - 15.7 - 1.33

T3-6-2r6s 208 14.4 2.75 2.53 4.27 9.28 9.3 23.3 1.11

T3-4-2r8s 272 14.2 2.75 2.32 4.14 7.80 8.7 22.4 1.38

T3-6-2r12s 600 14.6 2.75 1.97 4.09 7.49 8.5 21.4 1.36

S_steer – initial steerable filter scale multiplier, S_c – center S-block sigma, S_r1 – first ring S-block sigma, S_r2 – second ring S-block sigma, r1 – first ring radius, r2 – second ring radius, N_thresh –threshold ratio. All sizes are in pixels for a 64 x 64 patch with a footprint having 6 times the optimal DoG detector blob diameter. Iterative normalization was used.

Page 24: Picking the Best DAISYmatthewalunbrown.com/patchdata/tutorial.pdf · Picking the Best DAISY (document version 2.0) Algorithms and Parameters for Trained Image Descriptors Simon Winder

Quantization Scale q_beta

4 bits/dim 3 bits/dim 2 bits/dim 1 bit/dim

T2-4-1r8s 1/255 1/255 1/255 1/255

T2-4-1r8s PCA 0.6 0.8 - -

T2-4-2r8s 1/255 1/255 1/255 1/255

T2-4-2r8s PCA 0.8 1.0 - -

T2-8a-2r8s 1/255 1/255 1/255 1/255

T2-8a-2r8s PCA 0.6 1.0 - -

T3-4-2r8s 1/255 1/255 1/255 1/255

T3-4-2r8s PCA 0.8 0.8 - -

Page 25: Picking the Best DAISYmatthewalunbrown.com/patchdata/tutorial.pdf · Picking the Best DAISY (document version 2.0) Algorithms and Parameters for Trained Image Descriptors Simon Winder

T2-4-1r6s PCA Matrixstatic float rgfPCA_T2_4_1r6s[] = { 28, 26, // 28 dims in and 26 dims out, row by row (copy and paste me!)

-0.00466734f, -0.0108461f, 0.0640607f, 0.0484568f, -0.0393363f, -0.0200718f, -0.217095f, 0.260731f, -0.173765f, 0.354072f, 0.0217463f, 0.226227f, -0.186843f, 0.360031f, 0.210335f, 0.0227323f, -0.0456244f, 0.00790635f, 0.248337f, -0.199057f, 0.103581f, -0.371014f, -0.00223422f, -0.152975f, 0.0945684f, -0.374889f, -0.186778f, 0.0157642f, 0.030825f, 0.101628f, -0.139978f, -0.172629f, 0.0476861f, 0.165053f, -0.202376f, 0.0364534f, -0.271265f, 0.178727f, -0.289607f, -0.213915f, -0.269382f, 0.153394f, -0.261017f, -0.273414f, 0.0521307f, 0.128775f, -0.0144232f, -0.193059f, 0.264576f, 0.274599f, 0.144749f, 0.0533329f, 0.268963f, 0.26534f, 0.0465753f, 0.149958f, -0.0634684f, 0.0141899f, 0.158385f, 0.189716f, 0.0191605f, -0.198928f, 0.0431425f, 0.0975536f, -0.110705f, -0.381439f, -0.0666479f, -0.122001f, -0.113739f, -0.371347f, -0.101868f, -0.0704125f, 0.0200157f, -0.193353f, 0.118877f, 0.0441792f, 0.329708f, -0.279704f, 0.204454f, 0.139066f, 0.325481f, -0.268779f, 0.147521f, 0.195534f, 0.0714379f, 0.0506933f, -0.282897f, -0.119886f, 0.301024f, -0.0745886f, -0.0737783f, -0.136305f, 0.350419f, -0.00282915f, -0.0427846f, -0.136963f, 0.329762f, 0.014153f, -0.13153f, -0.0436901f, 0.337403f, -0.160245f, -0.0514254f, -0.187958f, 0.234402f, -0.158016f, -0.094725f, -0.337948f, 0.213531f, -0.102667f, -0.187916f, -0.184782f, 0.0293172f, -0.034048f, 0.378606f, -0.455663f, 0.0757415f, -0.0731072f, -0.31343f, 0.269909f, 0.0298282f, 0.0242257f, -0.152281f, 0.16102f, 0.145621f, -0.107288f, -0.168036f, 0.120149f, 0.0441337f, -0.0113495f, -0.293821f, 0.269951f, -0.025435f, 0.0516087f, -0.180664f, 0.170366f, 0.0910581f, -0.100717f, -0.26857f, 0.148447f, -0.0271531f, 0.0254785f, 0.0484144f, -0.00786034f, -0.292737f, 0.38698f, 0.0352638f, 0.116266f, -0.0649664f, 0.0547656f, -0.227279f, 0.335536f, 0.0348636f, -0.0740348f, -0.282514f, 0.275066f, 0.191605f, -0.364292f, -0.0658854f, -0.0181685f, -0.0139183f, -0.0870728f, 0.187751f, -0.272338f, -0.0289636f, 0.0827224f, 0.298884f, -0.155136f, -0.00248074f, -0.034101f, -0.0444533f, 0.0562611f, -0.0178753f, -0.0473503f, -0.252093f, 0.243696f, 0.173303f, -0.245847f, -0.205027f, 0.259729f, 0.164278f, -0.241258f, 0.246815f, -0.217766f, -0.028567f, -0.0298994f, 0.275204f, -0.277321f, -0.138791f, 0.204392f, 0.231557f, -0.191494f, -0.15082f, 0.20727f, -0.204228f, 0.248172f, 0.217846f, -0.86338f, -0.175627f, -0.167998f, 0.0772113f, -0.113082f, 0.0580801f, 0.0217048f, -0.0703142f, 0.0169194f, -0.085944f, 0.0889417f, -0.0715099f, 0.0232334f, 0.0856609f, -0.0686515f, 0.0972744f, -0.148584f, 0.0685628f, 0.02306f, 0.0340719f, 0.021535f, -0.030596f, 0.11971f, 0.0179064f, 0.0253445f, 0.16646f, -0.0699262f, -0.0565066f, -0.0160054f, -0.0336428f, -0.087134f, 0.264987f, 0.210539f, 0.338671f, 0.320278f, 0.146349f, 0.139003f, 0.288702f, 0.0835077f, -0.120981f, -0.148649f, -0.0708057f, -0.231608f, -0.289779f, -0.190482f, -0.286329f, -0.2835f, -0.0960139f, -0.142607f, -0.168722f, -0.0549736f, 0.0917294f, 0.0928935f, 0.0743534f, 0.251647f, -0.134438f, 0.121325f, -0.331497f, -0.346276f, -0.200323f, 0.272627f, 0.0173003f, 0.0036574f, 0.136875f, -0.137298f, -0.165242f, 0.219421f, 0.168151f, -0.0989898f, 0.239178f, -0.132727f, -0.181194f, 0.317758f, 0.0726814f, 0.0269042f, 0.146166f, -0.145428f, -0.147059f, 0.245744f, 0.149782f, -0.170617f, 0.246132f, -0.14229f, -0.337582f, 0.0218164f, -0.448055f, -0.362301f, -0.027684f, -0.174435f, 0.0186361f, 0.0399393f, -0.0539334f, 0.038072f, 0.306465f, -0.0353549f, 0.00144647f, 0.0532815f, -0.0269599f, 0.372099f, 0.0254817f, -0.105432f, 0.0728878f, 0.109796f, -0.012655f, 0.043267f, 0.365903f, 0.0130195f, -0.0330827f, -0.0171964f, -0.0434284f, 0.332207f, 0.00159241f, -0.0126109f, -0.501518f, 0.530598f, 0.0171968f, 0.0182652f, -0.245168f, 0.234177f, 0.0445885f, 0.165766f, 0.00617052f, 0.17257f, -0.0635849f, -0.177028f, -0.148746f, -0.0247799f, -0.0142874f, -0.00876314f, -0.247872f, 0.258651f, 0.045422f, 0.149864f, -0.0547697f, 0.179194f, -0.0140268f, -0.145891f, -0.134553f, -0.0772164f, 0.0171143f, 0.0145476f, -0.0335043f, 0.0465044f, 0.0285752f, 0.0161884f, 0.292423f, -0.247668f, -0.251428f, 0.192151f, -0.13326f, 0.169012f, 0.172258f, -0.253176f, -0.152334f, 0.223972f, -0.0142671f, -0.0383213f, 0.263502f, -0.323674f, -0.163951f, 0.295206f, -0.209965f, 0.181972f, 0.218218f, -0.248743f, -0.21995f, 0.0985583f, 0.0477571f, 0.0286422f, -0.106199f, -0.078145f, 0.13335f, 0.133379f, -0.0129941f, 0.249964f, -0.315262f, -0.315129f, 0.202403f, -0.0254486f, -0.26896f, -0.220229f, 0.111908f, 0.275531f, 0.0810106f, 0.135549f, 0.185332f, 0.0989882f, 0.0622819f, 0.0454716f, -0.349453f, -0.285228f, 0.130007f, 0.233585f, -0.159353f, -0.237361f, -0.019f, -0.053832f, -0.0678282f, -0.0357102f, 0.199005f, 0.271272f, 0.299744f, 0.204846f, -0.0362389f, 0.0142479f, -0.242605f, -0.212694f, 0.00767773f, -0.0267714f, -0.22865f, -0.191853f, 0.225804f, 0.268964f, 0.237489f, 0.295264f, -0.269882f, -0.180363f, 0.115336f, -0.0961294f, -0.261146f, -0.236536f, -0.131894f, 0.118429f, 0.0533351f, 0.0253667f, -0.185839f, 0.195633f, 0.0501907f, -0.0615928f, -0.0633202f, 0.030165f, -0.224443f, -0.0745127f, -0.3524f, -0.172214f, 0.286821f, 0.207677f, 0.190746f, 0.202053f, -0.0906472f, -0.0576112f, -0.149162f, 0.0816682f, -0.266016f, -0.256545f, -0.255069f, -0.0864672f, 0.198255f, 0.19382f, 0.180056f, 0.37581f, -0.191124f, -0.144554f, 0.102144f, 0.0453973f, 0.241616f, 0.134185f, -0.196057f, -0.193002f, -0.030226f, 0.405884f, -0.0395545f, -0.0889002f, 0.173182f, -0.369354f, -0.00435863f, 0.112873f, -0.312959f, 0.0575816f, 0.197647f, 0.126376f, 0.158425f, -0.307383f, 0.129694f, 0.0217831f, -0.0527807f, 0.336727f, -0.0631189f, -0.10191f, 0.127133f, 0.140456f, -0.0691159f, -0.0917622f, 0.0696541f, -0.101782f, 0.295337f, -0.343973f, -0.186888f, 0.070644f, -0.178083f, 0.366704f, -0.189174f, -0.0897348f, 0.292134f, -0.207883f, -0.000205985f, -0.0767977f, -0.253052f, 0.330027f, 0.114389f, -0.048857f, 0.162357f, -0.236367f, 0.0561476f, 0.055388f, -0.250145f, 0.0794682f, 0.507049f, 0.392751f, -0.16625f, -0.2149f, 0.156932f, -0.256855f, -0.0949983f, 0.0863276f, -0.0872962f, 0.130019f, -0.023716f, 0.00221096f, -0.0800577f, -0.153491f, -0.0345829f, -0.0352754f, -0.00606625f, -0.253418f, 0.209848f, -0.0183628f, -0.143058f, -0.14998f, -0.0259196f, 0.234694f, -0.27614f, 0.0445968f, 0.22204f, -0.123925f, 0.0519556f, 0.019572f, -0.00409492f, -0.0273634f, 0.169638f, 0.453592f, -0.160337f, -0.164684f, 0.236023f, -0.147571f, -0.0797119f, -0.183604f, -0.261457f, 0.128184f, 0.218796f, 0.0922478f, -0.156452f, -0.431752f, 0.111161f, 0.130812f, -0.237012f, 0.0915555f, 0.118429f, 0.186134f, 0.204385f, -0.128746f, -0.185725f, -0.0604413f, -0.630673f, 0.109844f, 0.0684947f, 0.0221084f, 0.214945f, -0.234f, 0.0783103f, 0.0996453f, 0.0226353f, 0.104193f, -0.185141f, 0.112647f, -0.0917448f, 0.106613f, 0.10201f, -0.190366f, 0.237159f, -0.265892f, 0.184417f, 0.125116f, -0.0716761f, 0.115436f, -0.246068f, 0.118305f, 0.0142229f, 0.133365f, 0.15078f, -0.181341f, 0.0653837f, -0.0264376f, -0.00419249f, -0.00557668f, -0.251433f, -0.0685767f, -0.2034f, -0.251921f, 0.301201f, 0.150365f, 0.191655f, 0.124034f, -0.2529f, -0.140028f, -0.196757f, -0.142662f, 0.156624f, 0.116822f, 0.255268f, 0.20376f, -0.293503f, -0.102774f, -0.206598f, -0.172311f, 0.314953f, 0.0876717f, 0.143754f, 0.269545f, 0.142339f, 0.0206455f, -0.0154103f, -0.0228172f, -0.360028f, -0.159431f, 0.30675f, 0.292125f, 0.192648f, 0.14088f, -0.103741f, -0.193617f, 0.146071f, 0.116758f, -0.0835471f, -0.0392944f, -0.373696f, -0.198238f, 0.268657f, 0.287392f, 0.199153f, 0.170296f, -0.0716042f, -0.140972f, 0.155069f, 0.10353f, -0.164124f, -0.0793633f, 0.0116351f, -0.00367487f, -0.0592619f, 0.0623509f, 0.0578447f, -0.027573f, 0.0653713f, -0.0551249f, -0.0683366f, -0.324061f, 0.106247f, 0.35095f, 0.102688f, 0.349754f, -0.402343f, -0.0963336f, -0.0946301f, 0.0183039f, 0.120592f, -0.00434847f, -0.0949712f, -0.295753f, 0.0960433f, 0.289896f, 0.125452f, 0.32487f, -0.287019f, -0.124886f, -0.0137318f, -0.000963002f, -0.0266262f, -0.00728894f, -0.448774f, 0.141189f, 0.0715753f, 0.0716734f, -0.102137f, 0.139209f, 0.125915f, -0.237465f, 0.0784237f, -0.161537f, 0.243567f, -0.15263f, 0.4352f, -0.165757f, -0.0918022f, -0.0966345f, -0.0196673f, -0.23743f, -0.050097f, 0.315776f, 0.00223425f, 0.21912f, -0.329588f, 0.0162286f, -0.00212824f, 0.00618135f, 0.041565f, -0.0494028f, 0.0248691f, -0.0110148f, -0.119734f, 0.0923623f, -0.352684f, 0.0628994f, 0.292931f, -0.0582153f, 0.359608f, -0.0537967f, 0.0644264f, -0.324514f, -0.0461464f, -0.0320339f, -0.0459079f, 0.120189f, -0.359951f, 0.133006f, 0.277361f, -0.145894f, 0.356601f, -0.128231f, 0.131959f, -0.29457f,

};

Page 26: Picking the Best DAISYmatthewalunbrown.com/patchdata/tutorial.pdf · Picking the Best DAISY (document version 2.0) Algorithms and Parameters for Trained Image Descriptors Simon Winder

T2-4-2r6s PCA Matrixstatic float rgfPCA_T2_4_2r6s[] = { 52, 31, // 52 dims in and 31 dims out, row by row (copy and paste me!)

-0.0249494f, 0.0109889f, 0.0880517f, 0.116401f, -0.102796f, -0.0367445f, -0.0565463f, 0.10333f, -0.0245079f, 0.0863798f, 0.0753608f, 0.16319f, -0.0368784f, 0.0967207f, 0.151891f, 0.0789618f, -0.104787f, -0.0166686f, 0.105706f, -0.0485512f, -0.0920515f, -0.195885f, -0.042692f, -0.0824369f, -0.101125f, -0.194366f, -0.10006f, -0.033181f, -0.103339f, 0.11795f, -0.132558f, 0.340909f, -0.177137f, 0.247183f, 0.133562f, 0.160251f, -0.0956416f, 0.125266f, 0.326806f, -0.122157f, -0.0103407f, -0.102638f, 0.244215f, -0.187825f, 0.0650826f, -0.246208f, -0.0254389f, -0.00158047f, -0.0151015f, -0.11332f, -0.20637f, 0.254434f, 0.0354794f, 0.117196f, -0.142212f, -0.131776f, 0.0844476f, 0.127054f, -0.168124f, 0.0486623f, -0.153848f, 0.16817f, -0.153571f, -0.136661f, -0.151652f, 0.158398f, -0.176432f, -0.139226f, 0.0972773f, 0.0915463f, 0.0257834f, -0.177618f, 0.222481f, 0.118253f, 0.065272f, -0.0336388f, 0.224467f, 0.12215f, -0.026605f, 0.0637634f, -0.0656371f, 0.191163f, -0.198277f, -0.0749918f, -0.228401f, 0.259192f, -0.202203f, -0.166876f, -0.0621032f, 0.169237f, -0.108929f, -0.19192f, 0.159835f, 0.0337725f, 0.0150136f, -0.131283f, 0.257924f, 0.0459445f, 0.00413071f, -0.0211871f, 0.158135f, 0.0512343f, -0.12222f, 0.0283124f, -0.115f, 0.0978626f, 0.177556f, 0.163165f, -0.209933f, 0.0317907f, 0.0436916f, 0.0701356f, -0.262917f, -0.0803149f, 0.015145f, -0.0543595f, -0.258299f, -0.0833145f, -0.0425081f, 0.0040103f, -0.209865f, 0.0387921f, 0.0678879f, 0.0426079f, 0.053591f, -0.0279177f, 0.123853f, 0.180814f, 0.0580991f, -0.0376182f, 0.168547f, 0.125385f, -0.250892f, 0.106537f, 0.177641f, -0.0606814f, -0.291257f, 0.0403975f, 0.0312182f, 0.0139758f, -0.246527f, 0.106905f, -0.0458659f, 0.169371f, -0.0870783f, 0.0617575f, 0.0590743f, 0.272757f, 0.00964797f, 0.0294692f, 0.212822f, 0.204646f, -0.0862139f, 0.0529837f, 0.264838f, 0.0485708f, -0.0274104f, 0.044779f, -0.0573452f, 0.0287778f, -0.173294f, 0.182933f, 0.034183f, -0.0198435f, 0.0665198f, -0.0141736f, -0.0213444f, 0.0915349f, 0.00570934f, 0.0866574f, -0.0589852f, 0.133424f, 0.143775f, -0.135165f, 0.00352761f, -0.0183195f, -0.0767559f, -0.000843509f, 0.0319397f, -0.13495f, 0.0140268f, -0.0267571f, 0.108437f, -0.108592f, -0.206478f, 0.232799f, -0.0331522f, 0.0760334f, 0.0101943f, 0.0583376f, -0.32045f, 0.378233f, 0.15881f, -0.10823f, -0.144077f, 0.151122f, 0.14537f, -0.172263f, 0.0315396f, -0.111636f, -0.0313379f, -0.0117381f, 0.272836f, -0.336219f, -0.188707f, 0.186758f, 0.145378f, -0.137569f, -0.0569224f, 0.138608f, -0.0454404f, -0.0184679f, -0.129544f, 0.161645f, 0.013334f, -0.015561f, 0.0322645f, 0.00157126f, -0.0301152f, 0.0660089f, 0.02471f, -0.00687667f, 0.049137f, -0.0423795f, -0.141237f, 0.148224f, -0.0408289f, 0.00262329f, -0.179051f, 0.293806f, 0.128822f, -0.00860238f, -0.173906f, 0.289517f, -0.0220002f, 0.143624f, -0.0142145f, 0.012891f, -0.15409f, 0.14193f, 0.0286127f, -0.0193279f, -0.0111972f, 0.0187261f, -0.00899095f, 0.0109454f, 0.123273f, -0.157251f, -0.193289f, 0.280279f, 0.107273f, -0.137707f, -0.263048f, 0.376179f, 0.0197241f, 0.031848f, -0.207905f, 0.296086f, -0.132606f, 0.11746f, -0.00132482f, 0.0641361f, -0.0300384f, -0.121097f, -0.0206847f, 0.120727f, 0.02981f, -0.0532321f, 0.0300064f, 0.302565f, 0.209165f, 0.00789788f, 0.0388221f, 0.283785f, 0.0578415f, 0.163377f, -0.0908735f, 0.198682f, -0.0595257f, 0.0356271f, -0.147552f, 0.0252532f, -0.162922f, -0.0122278f, -0.161974f, 0.0142362f, -0.0704775f, -0.13271f, -0.00806559f, 0.202433f, 0.172259f, -0.137047f, -0.015055f, 0.339373f, 0.162978f, -0.00341012f, -0.0737699f, 0.275861f, -0.0919096f, 0.128427f, -0.087453f, 0.0573067f, -0.276912f, 0.0999009f, -0.156157f, 0.000127464f, -0.190389f, -0.082959f, -0.00518266f, -0.0335422f, 0.0510497f, -0.236155f, 0.0750006f, -0.186138f, 0.420432f, -0.461686f, -0.0684823f, 0.0305251f, -0.21768f, 0.242511f, -0.0630456f, 0.0690591f, -0.158289f, 0.229672f, -0.0769438f, 0.0552528f, -0.101729f, 0.100814f, -0.014088f, 0.0123912f, -0.13582f, 0.172216f, -0.00612206f, 0.0479507f, -0.0765373f, 0.185934f, -0.0126278f, -0.0189014f, -0.131053f, 0.13648f, -0.0650653f, 0.0580478f, -0.149408f, 0.171236f, 0.00121201f, -0.0166742f, 0.0218541f, -0.0507993f, 0.1185f, -0.200529f, -0.091168f, 0.0409596f, -0.0584585f, 0.0268513f, -0.138468f, 0.134349f, -0.0478006f, 0.014345f, 0.119256f, -0.0905463f, 0.0769315f, -0.104431f, -0.0310885f, 0.059374f, 0.154734f, -0.485126f, -0.224327f, 0.0620869f, -0.0990926f, 0.0892776f, 0.0966289f, 0.0163814f, -0.192011f, 0.190013f, 0.0296127f, 0.0847518f, -0.19481f, 0.211204f, 0.20537f, -0.0584583f, -0.0956427f, 0.0914244f, 0.190165f, -0.0603235f, -0.0684329f, 0.157243f, 0.107414f, 0.0874363f, -0.0644511f, 0.158513f, 0.203816f, 0.0149751f, 0.0413293f, -0.207941f, -0.118602f, 0.0484809f, -0.0825291f, -0.0465339f, -0.0811637f, 0.017132f, 0.012909f, -0.15322f, 0.128685f, -0.158583f, 0.074091f, -0.20036f, -0.0782781f, 0.0737247f, -0.0526236f, -0.043283f, -0.0141907f, 0.0210838f, 0.00802012f, -0.138398f, 0.145426f, -0.166078f, 0.281076f, -0.101225f, 0.196659f, 0.165151f, -0.0471224f, -0.0354418f, 0.0355392f, -0.24912f, -0.124199f, -0.169098f, -0.118969f, -0.256581f, -0.121083f, -0.157217f, -0.24289f, -0.10119f, -0.019798f, -0.0454672f, -0.21978f, 0.0243346f, -0.239495f, 0.144021f, -0.191688f, -0.0525449f, -0.233514f, 0.142193f, -0.0420955f, -0.205451f, 0.11348f, 0.0792074f, -0.0367547f, 0.157902f, -0.0343998f, 0.213867f, 0.0394193f, 0.0545035f, 0.136992f, 0.0705224f, 0.163667f, 0.00118219f, 0.189733f, -0.00832794f, 0.0160343f, 0.118219f, 0.0963756f, 0.0849521f, 0.0243221f, 0.000839431f, 0.178799f, 0.000671292f, 0.104456f, 0.000321872f, -0.107864f, -0.0600203f, -0.112862f, -0.132303f, 0.0268272f, 0.0432458f, 0.20883f, -0.0635665f, 0.181223f, -0.20725f, 0.143093f, -0.0292316f, 0.210644f, -0.222595f, -0.0885072f, 0.215892f, 0.0362083f, 0.0434091f, -0.146817f, 0.307489f, -0.0150915f, 0.260619f, -0.0132415f, 0.275844f, -0.00887454f, 0.243726f, 0.223856f, 0.0426818f, -0.159798f, 0.0439971f, -0.07228f, 0.000683445f, -0.234502f, 0.0658912f, -0.00106938f, -0.0340299f, -0.166587f, 0.033848f, -0.0112537f, -0.0707141f, -0.00150071f, -0.158965f, 0.00384885f, -0.119442f, 0.11328f, -0.2391f, -0.05428f, -0.0652719f, 0.00873495f, -0.154902f, -0.122651f, 0.023987f, 0.0228521f, -0.0714682f, 0.0284285f, -0.0556603f, 0.0686525f, 0.313692f, 0.262899f, 0.207675f, 0.0890373f, 0.0804753f, 0.0727281f, 0.161728f, -0.0374599f, -0.163802f, -0.169239f, -0.0646249f, -0.079413f, -0.32189f, -0.170189f, -0.254821f, -0.0446427f, -0.178772f, -0.00800908f, -0.237761f, 0.0490133f, 0.121027f, 0.212161f, 0.0348757f, 0.105398f, 0.115533f, 0.144136f, 0.171333f, -0.0171797f, 0.0445991f, 0.107344f, -0.0919485f, -0.112726f, -0.0827123f, -0.121459f, -0.161168f, -0.120332f, -0.0784822f, -0.18016f, -0.102174f, -0.0250227f, 0.0142926f, -0.104888f, 0.11355f, 0.111509f, 0.071157f, 0.166719f, 0.140995f, 0.0860124f, -0.078605f, 0.197239f, -0.349638f, -0.0890581f, 0.0266517f, 0.1948f, -0.267262f, 0.157205f, -0.3021f, 0.0297219f, -0.137427f, 0.115071f, -0.0605693f, 0.220627f, -0.127642f, -0.0336689f, 0.116003f, 0.308409f, -0.22299f, 0.174674f, -0.172792f, 0.112433f, -0.0952805f, 0.0797004f, -0.0403255f, 0.182483f, -0.113336f, -0.0993255f, 0.109311f, -0.24186f, 0.130587f, 0.00664962f, 0.0816029f, -0.0036287f, -0.000641974f, 0.0277238f, 0.0943005f, 0.0395936f, 0.00447024f, -0.0545029f, 0.121383f, -0.164817f, 0.161629f, -0.043365f, 0.0307903f, -0.0112323f, -0.00817452f, 0.0106332f, -0.0037004f, -0.0415425f, -0.052834f, -0.146745f, 0.145064f, 0.298697f, -0.14069f, 0.103164f, -0.0819262f, 0.277596f, -0.230807f, -0.139507f, 0.169021f, 0.161073f, -0.193147f, -0.221718f, 0.312065f, 0.0103843f, 0.0186166f, 0.0854104f, -0.0888604f, 0.0745401f, -0.0610675f, -0.10027f, 0.0709852f, 0.0756601f, -0.0776458f, -0.141512f, 0.198118f, 0.111822f, -0.0329396f, -0.0105239f, -0.0689207f, 0.0762486f, -0.0666407f, 0.0107072f, -0.0911025f, -0.049195f, 0.00912249f, 0.105587f, -0.203915f, -0.177925f, 0.16598f, -0.0613073f, -0.0306487f, 0.150352f, -0.116602f, 0.0250458f, -0.0905252f, -0.00111401f, 0.0536603f, 0.0529013f, -0.123093f, -0.195422f, 0.267475f, 0.0229696f, -0.0260387f, 0.0076534f, -0.064763f, 0.0303812f, 0.00978139f, 0.062017f, -0.0434063f, -0.0680855f, -0.0127044f, -0.0354414f, -0.0330515f, 0.0460211f, 0.00549253f, -0.0408143f, 0.0831512f, -0.0208075f, 0.0218118f, -0.0457526f, 0.0551477f, 0.0168817f, -0.0735522f, -0.0811227f, 0.0728902f, 0.0978393f, -0.0861468f, -0.027965f, 0.0483905f, -0.168238f, 0.222985f, 0.110131f, -0.145976f, -0.00383819f, 0.026424f, -0.315585f, 0.301409f, 0.192242f, -0.222699f, 0.202183f, -0.196054f, -0.210225f, 0.24878f, 0.135428f, -0.15101f, -0.032094f, 0.0357078f, -0.318562f, 0.315733f, 0.16366f, -0.169849f, 0.170432f, -0.149329f, 0.0485622f, -0.077139f, -0.110881f, -0.0181626f, -0.0135706f, 0.0466323f, 0.239449f, -0.193617f, -0.0998391f, 0.170062f, 0.112694f, -0.151992f, -0.119746f, 0.133493f, -0.209153f, 0.124319f, 0.0233217f, 0.00398982f, -0.258865f, 0.309166f, 0.208682f, -0.278542f, -0.0501197f, 0.136138f, 0.199248f, -0.295919f, 0.150215f, -0.0862709f, 0.145061f, -0.141435f, -0.177619f, 0.116367f, 0.00994111f, 0.0865411f, 0.0270187f, -0.0990159f, 0.052222f, -0.0242815f, 0.074719f, -0.112925f, -0.0699429f, 0.0884179f, 0.0451764f, 0.00347528f, -0.127069f, 0.0901379f, 0.107556f, -0.0270519f, -0.181648f, 0.190837f, -0.0633017f, 0.0505845f, 0.0788399f, -0.330333f, -0.0183528f, -0.0131406f, 0.133555f, -0.195299f, -0.0665477f, 0.0421425f, 0.00372215f, -0.066367f, 0.185416f, -0.171881f, 0.0577144f, -0.0634444f, -0.154675f, 0.258212f, 0.204338f, -0.206999f, 0.111196f, -0.0235462f, 0.0318011f, 0.0131817f, 0.325217f, -0.228228f, -0.00235522f, -0.00266128f, -0.217624f, 0.245477f, -0.0162152f, -0.0359074f, 0.0436981f, -0.0452538f, -0.241893f, 0.255218f, 0.0497125f, 0.0384248f, -0.0130541f, 0.0102064f, -0.0115883f, 0.0998009f, -0.0141227f, -0.0392532f, 0.0414382f, 0.000991014f, -0.28248f, 0.240958f, 0.00739841f, 0.026967f, -0.0337114f, -0.0525905f, -0.0429399f, -0.0129405f, -0.007256f, 0.0652706f, 0.0141503f, 0.0214225f, -0.315483f, 0.18199f, -0.112748f, -0.0765187f, -0.174674f, 0.0754184f, -0.306055f, 0.206587f, 0.133938f, -0.0107789f, -0.138053f, 0.275948f, 0.273407f, -0.160376f, 0.0835073f, 0.106698f, 0.0657808f, -0.0668959f, 0.187777f, -0.192845f, -0.0988411f, 0.122985f, 0.218623f, -0.228868f, 0.00916703f, -0.109414f, -0.128436f, -0.0715022f, 0.0292315f, -0.0497788f, 0.139134f, -0.136572f, -0.0263753f, 0.0995402f, 0.0605579f, 0.138568f, -0.0476744f, 0.120577f, 0.129259f, 0.0376947f, 0.0323427f, -0.025529f, -0.176959f, 0.148263f, 0.0475825f, -0.113654f, -0.0492905f, -0.129713f, -0.0886514f, 0.0399182f, -0.0324724f, -0.0183051f, -0.0141179f, -0.0294961f, -0.0568375f, 0.0355217f, -0.156687f, -0.0380566f, -0.196447f, -0.114599f, -0.157251f, -0.113615f, -0.159138f, -0.202607f, -0.0168591f, -0.0302926f, 0.0288548f, -0.0521859f, 0.131712f, 0.107653f, 0.179565f, 0.166714f, 0.128925f, 0.073258f, 0.151648f, 0.17587f, 0.161211f, 0.111012f, 0.107281f, 0.0621439f, 0.356645f, 0.226806f, 0.168105f, 0.191001f, 0.145197f, 0.103311f, 0.0925168f, 0.092792f, -0.13685f, -0.122363f, -0.0376992f, -0.0826313f, -0.268112f, -0.295111f, -0.132818f, -0.126232f, -0.15742f, -0.111005f, -0.102708f, -0.0638442f, -0.0247843f, -0.011377f, -0.11818f, -0.108919f, 0.14012f, 0.193f, 0.217149f, 0.247822f, -0.247389f, -0.189184f, -0.11191f, -0.021818f, -0.190058f, -0.179815f, 0.0104591f, -0.0457071f, 0.21361f, 0.276525f, 0.338478f, 0.278052f, -0.0932347f, -0.0820084f, -0.0706529f, -0.064329f, -0.136176f, -0.136059f, -0.0806186f, -0.117493f, 0.0995935f, 0.049244f, 0.169297f, 0.0804626f, -0.148821f, -0.0806628f, -0.0620446f, -0.0856817f, 0.0242713f, 0.00385056f, -0.0394051f, 0.0836648f, 0.0485941f, 0.0388256f, 0.0136768f, -0.101324f, -0.123322f, 0.0257834f, -0.193942f, -0.197381f, 0.0828093f, 0.0984452f, -0.00612334f, 0.107746f, 0.0373561f, 0.0614796f, -0.0597118f, -0.081577f, 0.13698f, 0.0164624f, -0.0276634f, 0.158304f, -0.198608f, -0.1652f, -0.0569718f, -0.113793f, -0.0388345f, 0.0827246f, 0.202907f, 0.127624f, -0.159769f, -0.0808684f, -0.149044f, 0.0858387f, -0.142807f, -0.312385f, -0.2407f, -0.218585f, 0.209949f, 0.335318f, 0.160718f, 0.261031f, -0.0989778f, -0.129572f, -0.111611f, -0.187331f, -0.0235515f, -0.0470794f, 0.0481303f, 0.10072f, 0.0743585f, 0.0973012f, 0.254382f, 0.176319f, 0.0350901f, -0.0226141f, -0.05361f, 0.0429256f, 0.0378336f, 0.0555563f, -0.0168061f, -0.143231f, 0.0410799f, 0.0696524f, -0.122363f, -0.0415609f, -0.0611572f, -0.143096f, 0.13674f, 0.141096f, 0.153091f, 0.205495f, -0.0129579f, 0.179208f, 0.248281f, 0.0784111f, -0.181898f, -0.176828f, 0.254343f, 0.107393f, -0.0934872f, -0.166016f, 0.0293281f, 0.115904f, 0.0366881f, 0.0466803f, -0.207482f, -0.18982f, -0.0245368f, 0.00451902f, -0.137597f, 0.0147131f, 0.114447f, 0.0751645f, 0.0299449f, 0.0346308f, -0.115387f, -0.183167f, 0.0202311f, 0.118389f, -0.287497f, -0.242406f, 0.101157f, 0.111066f, 0.0178543f, 0.025544f, -0.0536376f, -0.0667232f, 0.200671f, 0.157578f, -0.21675f, -0.196053f, 0.156858f, 0.143853f, -0.107823f, -0.0688782f, 0.0369867f, 0.0995763f, -0.0679669f, -0.105975f, 0.193165f, 0.146326f, 0.253692f, 0.289619f, 0.0529755f, -0.00236621f, 0.147038f, 0.222598f, 0.140395f, 0.10538f, -0.179626f, -0.230314f, -0.116986f, -0.151674f, -0.0585474f, -0.00306984f, -0.00978457f, -0.0272004f, 0.195699f, 0.0656187f, -0.00616182f, -0.0486449f, 0.109302f, 0.101547f, -0.164869f, -0.196101f, -0.105688f, 0.0171938f, -0.0747777f, -0.0930274f, -0.110633f, -0.135281f, 0.0168538f, 0.123721f, -0.0717486f, -0.102461f, 0.213362f, 0.154332f, 0.0160379f, 0.07907f, 0.137902f, 0.234557f, -0.01561f, -0.0062664f, -0.0981845f, -0.136716f, -0.0902634f, -0.0234115f, -0.29364f, -0.2287f, -0.132686f, -0.204761f, 0.269809f, 0.268549f, 0.0364834f, 0.0872481f, -0.124677f, -0.140869f, -0.0482902f, -0.0455088f, -0.199516f, -0.197109f, 0.185222f, 0.235146f, 0.0656228f, 0.0536583f, 0.163427f, 0.210416f, -0.0523741f, 0.0424004f, 0.173948f, 0.0940066f, -0.125924f, -0.152302f, 0.267263f, 0.144805f, -0.108208f, -0.0555891f, -0.059762f, 0.0102958f, 0.0934934f, 0.178469f, -0.0744842f, -0.144092f, 0.107743f, 0.0364907f, -0.195519f, -0.0723339f, 0.00805955f, -0.0481918f, -0.191278f, -0.116781f, -0.161538f, -0.142616f, -0.0761624f, -0.0708954f, -0.0992395f, -0.0648313f, -0.0328592f, 0.126644f, 0.17586f, 0.107488f, 0.0378903f, -0.0172615f, 0.0122731f, 0.056896f, -0.140949f, -0.0701844f, -0.182903f, 0.271339f, 0.303876f, -0.254582f, 0.237529f, -0.0318183f, -0.293454f, 0.244676f, -0.00624222f, -0.258797f, 0.14758f, 0.122815f, -0.252393f, 0.174926f, 0.20067f, -0.0992457f, 0.0870479f, -0.144846f, -0.13363f, 0.12895f, 0.166989f, -0.0830583f, -0.071817f, -0.0908186f, 0.0466382f, 0.12177f, -0.0355629f, -0.0151177f, 0.0135407f, 0.0325646f, 0.0528031f, 0.0658194f, -0.0953793f, 0.0153346f, 0.0557046f, 0.164498f, 0.055302f, -0.107206f, -0.00676138f, 0.0250924f, -0.129653f, 0.034655f, -0.0531419f, -0.171866f, 0.0625367f, -0.0839392f, -0.0187599f, 0.0162057f, -0.118508f, -0.0748664f, 0.0953449f, 0.0338551f, -0.328429f, -0.0585846f, 0.0596314f, -0.0191896f, -0.0204236f, -0.165863f, -0.0745342f, 0.00578288f, 0.162305f, 0.0636405f, -0.164239f, -0.118397f, 0.0437138f, 0.265415f, 0.148949f, -0.225858f, 0.247083f, 0.0538149f, -0.252928f, 0.193203f, -0.00270003f, -0.227554f, 0.174604f, 0.292653f, 0.0904064f, -0.0661705f, 0.0455241f, 0.0252862f, -0.0275128f, 0.0502773f, -0.137051f, -0.255777f, 0.0564491f, -0.125548f, -0.108302f, -0.190429f, -0.041607f, 0.124731f, 0.0317683f, -0.00855127f, 0.0779647f, 0.0476034f, 0.135909f, 0.213387f, -0.0867941f, 0.052023f, 0.0224922f, 0.0362525f, -0.0161194f, 0.012999f, 0.0422122f, 0.221711f, -0.0399298f, 0.0240707f, 0.200381f, -0.254141f, -0.0102288f, -0.121783f, -0.231917f, 0.210421f, 0.117583f, 0.0791193f, -0.04935f, -0.235006f, 0.0733507f, 0.00723392f, -0.236555f, 0.203445f, -0.0308656f, 0.137005f, 0.214711f, -0.208002f, -0.0783009f, 0.0196089f, 0.119055f, 0.0869552f, -0.264713f, 0.047613f, 0.0203344f, 0.029037f, 0.152919f, -0.168521f, -0.074818f, -0.103156f, -0.0701312f, 0.241309f, -0.0930632f, -0.0980881f, 0.216877f, -0.0914317f, 0.0159993f, -0.0100557f, -0.165542f, 0.147325f, 0.0851946f, 0.130747f, 0.0724079f, -0.226994f, 0.111561f, -0.105019f, 0.111862f, 0.130154f, -0.159674f, 0.107405f, -0.175037f, 0.0175916f, 0.0417281f, -0.0732449f, -0.0359482f, 0.0655568f, 0.104588f, -0.0906667f, 0.0870626f, 0.0307285f, -0.183208f, 0.0985027f, 0.044978f, -0.174333f, 0.0998774f, -0.054734f, -0.17969f, 0.223677f, 0.097534f, -0.0148557f, 0.224855f, -0.174706f, 0.175644f, -0.158503f, 0.173638f, -0.220283f, -0.229933f, 0.243956f, 0.0418944f, 0.0563565f, 0.154472f, -0.17235f, -0.204234f, 0.133742f, 0.0114619f, -0.02422f, 0.0796534f, -0.258279f, -0.0945128f, 0.219244f, -0.0109771f, -0.0412088f, 0.0507943f, -0.00760221f, -0.251264f, 0.115904f, -0.0150569f, 0.0784548f, -0.00454198f, -0.0266109f, 0.0569243f, -0.0514613f, -0.196054f, 0.332001f, -0.0317826f, -0.00322642f, 0.23571f, -0.295515f, 0.0632436f, 0.0086748f, -0.264737f, 0.262863f, 0.0443416f, -0.0266205f, 0.263826f, -0.271744f, -0.0214441f, 0.0750078f, -0.160407f, 0.127167f, -0.0841972f, 0.0638469f, 0.145614f, -0.175176f, 0.0359734f, -0.1586f, -0.0398767f, 0.12178f, -0.0213511f, -0.0320437f, 0.00261727f, 0.0209111f, 0.0922303f, -0.120157f, 0.133648f, -0.0711823f, -0.134088f, 0.213586f, -0.095133f, 0.0902491f, 0.154275f, -0.175934f, -0.022477f, -0.0409011f, -0.166548f, 0.176165f, 0.0748255f, -0.0352045f, -0.429969f, -0.367043f, -0.341408f, -0.354464f, 0.00444171f, 0.0321824f, -0.108962f, -0.0903386f, 0.0265153f, -0.00224062f, -0.0808046f, -0.0207836f, -0.0327004f, -0.0157393f, -0.0674826f, -0.121791f, 0.0452598f, 0.0511842f, -0.0576045f, -0.101971f, -0.071668f, 0.00612029f, -0.211547f, -0.064284f, 0.0330364f, 0.0303815f, -0.0427583f, -0.164367f, -0.0495003f, -0.0142153f, 0.10579f, 0.0329374f, 0.0272661f, 0.0238082f, 0.206427f, 0.156527f, 0.0130218f, 0.0462846f, 0.0115108f, 0.170415f, 0.0134904f, 0.0754805f, 0.188501f, 0.0203222f, 0.0965161f, 0.0397098f, 0.197485f, 0.249833f, -0.0438154f, 0.0191254f, 0.0385716f, 0.112661f, 0.0536116f, 0.0491107f, 0.0337154f, 0.0169188f, -0.088849f, -0.258017f, -0.198149f, -0.2055f, 0.124428f, 0.263854f, 0.197479f, 0.132642f, -0.12847f, -0.288294f, -0.11117f, -0.0914166f, 0.0826354f, 0.188043f, 0.300689f, 0.204406f, -0.166153f, -0.168552f, -0.21259f, -0.119852f, 0.210108f, 0.240358f, 0.101622f, 0.147249f, 0.069708f, 0.0751964f, -0.139014f, 0.0873926f, 0.0181252f, 0.0700154f, -0.0104338f, -0.0816649f, -0.0149988f, -0.102492f, -0.113744f, 0.067126f, -0.0886299f, -0.080969f, 0.0849611f, -0.0913821f, -0.00205675f, -0.0205698f, -0.0352496f, 0.0718054f, -0.00188844f, 0.086618f, 0.151199f, -0.0811555f, -0.0235781f, -0.00531214f, 0.023938f, 0.00919795f, 0.00582036f, -0.00696257f, 0.0216641f, 0.0163297f, -0.195433f, -0.246645f, 0.166266f, 0.224098f, -0.16135f, -0.103717f, 0.246769f, 0.207232f, 0.0113896f, -0.0417411f, -0.0937371f, -0.0345229f, 0.18108f, 0.163975f, -0.178322f, -0.187591f, 0.127589f, 0.173701f, -0.202752f, -0.198887f, 0.202941f, 0.0313167f, -0.0393639f, -0.0903674f, 0.0787702f, 0.17551f, -0.239422f, -0.178721f, 0.116308f, 0.0869787f, -0.0983064f, -0.139818f, -0.102692f, 0.0241674f, 0.0928013f, 0.108797f, -0.141292f, -0.232905f, 0.137226f, 0.131566f, -0.192457f, -0.0408016f, 0.048763f, 0.057567f,

};