Update README.md
Browse files
README.md
CHANGED
@@ -2,17 +2,19 @@
|
|
2 |
license: mit
|
3 |
---
|
4 |
|
5 |
-
#
|
6 |
|
7 |
[Guillaume Astruc](https://gastruc.github.io/), [Nicolas Gonthier](https://ngonthier.github.io/), [Clement Mallet](https://www.umr-lastig.fr/clement-mallet/), [Loic Landrieu](https://loiclandrieu.com/)
|
8 |
|
9 |
|
10 |
-
Official models for [
|
11 |
|
12 |
## Abstract
|
13 |
|
14 |
-
We introduce
|
15 |
-
|
|
|
|
|
16 |
|
17 |
<p align="center">
|
18 |
<img src="https://github.com/gastruc/OmniSat/assets/1902679/9fc20951-1cac-4891-b67f-53ed5e0675ad" width="800" height="400">
|
@@ -48,23 +50,32 @@ To get features from an observation of a batch of observations, you need to prov
|
|
48 |
- "aerial-flair": Single date tensor (Bx5xHxW) with 5 channels (RGB NiR Elevation), 0.2m resolution
|
49 |
- "spot": Single date tensor (Bx3xHxW) with 3 channels (RGB), 1m resolution
|
50 |
- "naip": Single date tensor (Bx4xHxW) with 3 channels (RGB), 1.25m resolution
|
51 |
-
- "s2": Time series tensor (BxTx10xHxW) with 10 channels (
|
52 |
- "s1-asc": Time series tensor (BxTx2xHxW) with 2 channels (VV VH), 10m resolution
|
53 |
-
- "s1": Time series tensor (BxTx3xHxW) with 3 channels, 10m resolution
|
54 |
-
- "alos": Time series tensor (BxTx3xHxW) with 3 channels, 30m resolution
|
55 |
-
- "l7": Time series tensor (BxTx6xHxW) with 6 channels, 30m resolution
|
56 |
-
- "l8": Time series tensor (BxTx11xHxW) with 11 channels, rescaled to 10m resolution
|
57 |
-
- "modis": Time series tensor (BxTx7xHxW) with 7 channels, 250m resolution
|
58 |
-
|
59 |
-
|
60 |
|
61 |
Time series keys require a "{key}_dates" (for example "s2_dates") tensor of size BxT that value an integer that represent the day of the year.
|
|
|
|
|
62 |
Then, you can run:
|
63 |
|
64 |
```python
|
65 |
-
features = AnySat(data)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
66 |
```
|
67 |
-
|
|
|
68 |
|
69 |
To reproduce results, add new modalities, or do more experiments see the full code on [github]('https://github.com/gastruc/AnySat').
|
70 |
|
|
|
2 |
license: mit
|
3 |
---
|
4 |
|
5 |
+
# AnySat: An Earth Observation Model for Any Resolutions, Scales, and Modalities (ArXiv 2024)
|
6 |
|
7 |
[Guillaume Astruc](https://gastruc.github.io/), [Nicolas Gonthier](https://ngonthier.github.io/), [Clement Mallet](https://www.umr-lastig.fr/clement-mallet/), [Loic Landrieu](https://loiclandrieu.com/)
|
8 |
|
9 |
|
10 |
+
Official models for [_AnySat: An Earth Observation Model for Any Resolutions, Scales, and Modalities_](https://arxiv.org/pdf/2404.08351.pdf)
|
11 |
|
12 |
## Abstract
|
13 |
|
14 |
+
We introduce AnySat: a JEPA-based multimodal Earth Observation model that train simultaneously on diverse datasets with different scales, resolutions (spatial, spectral, temporal), and modality combinations.
|
15 |
+
|
16 |
+
|
17 |
+
For more details and results, please check out our [github](https://github.com/gastruc/AnySat) and [project page](https://gastruc.github.io/projects/omnisat.html).
|
18 |
|
19 |
<p align="center">
|
20 |
<img src="https://github.com/gastruc/OmniSat/assets/1902679/9fc20951-1cac-4891-b67f-53ed5e0675ad" width="800" height="400">
|
|
|
50 |
- "aerial-flair": Single date tensor (Bx5xHxW) with 5 channels (RGB NiR Elevation), 0.2m resolution
|
51 |
- "spot": Single date tensor (Bx3xHxW) with 3 channels (RGB), 1m resolution
|
52 |
- "naip": Single date tensor (Bx4xHxW) with 3 channels (RGB), 1.25m resolution
|
53 |
+
- "s2": Time series tensor (BxTx10xHxW) with 10 channels (B2 B3 B4 B5 B6 B7 B8 B8a B11 B12), 10m resolution
|
54 |
- "s1-asc": Time series tensor (BxTx2xHxW) with 2 channels (VV VH), 10m resolution
|
55 |
+
- "s1": Time series tensor (BxTx3xHxW) with 3 channels (VV VH Ratio), 10m resolution
|
56 |
+
- "alos": Time series tensor (BxTx3xHxW) with 3 channels (HH HV Ratio), 30m resolution
|
57 |
+
- "l7": Time series tensor (BxTx6xHxW) with 6 channels (B1 B2 B3 B4 B5 B7), 30m resolution
|
58 |
+
- "l8": Time series tensor (BxTx11xHxW) with 11 channels (B8 B1 B2 B3 B4 B5 B6 B7 B9 B10 B11), rescaled to 10m resolution
|
59 |
+
- "modis": Time series tensor (BxTx7xHxW) with 7 channels (B1 B2 B3 B4 B5 B6 B7), 250m resolution
|
|
|
|
|
60 |
|
61 |
Time series keys require a "{key}_dates" (for example "s2_dates") tensor of size BxT that value an integer that represent the day of the year.
|
62 |
+
Then you have to choose at which scale you want te produce features. Scale argument is in meters and represent the size of the desired patch size.
|
63 |
+
Outputs will be composed of the concatenation of a class token and a flattened feature map where each feature encodes a scale x scale zone
|
64 |
Then, you can run:
|
65 |
|
66 |
```python
|
67 |
+
features = AnySat(data, scale=scale) #
|
68 |
+
```
|
69 |
+
|
70 |
+
And then you can apply those features to the desired downstream task!
|
71 |
+
|
72 |
+
If you want to get a feature map at the density of a specific modality you can specify:
|
73 |
+
|
74 |
+
```python
|
75 |
+
features = AnySat(data, scale=scale, keep_subpatch=True, modality_keep=modality) #where modality is the name of the desired modality
|
76 |
```
|
77 |
+
|
78 |
+
Note that the features will be of size 2*D. If you have several modalities of the same desired resolution, you should pick the most informative one (or modify the code to concatenante also the other modalities)
|
79 |
|
80 |
To reproduce results, add new modalities, or do more experiments see the full code on [github]('https://github.com/gastruc/AnySat').
|
81 |
|