You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardexpand all lines: docs/changelog.rst
+91-15
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,65 @@
1
1
CHANGELOG
2
2
=========
3
3
4
+
Raster Vision 0.21
5
+
------------------
6
+
7
+
This release brings some exciting new functionality to Raster Vision.
8
+
9
+
Highlights:
10
+
11
+
- Raster Vision can now consume imagery from STAC APIs via the newly-added :class:`.XarraySource` (see tutorial: :doc:`usage/tutorials/stac_plus_osm`).
12
+
- Raster Vision can now consume temporal data i.e. time series of images via :class:`.TemporalMultiRasterSource` and :class:`.XarraySource` (see tutorial: :doc:`usage/tutorials/temporal`).
13
+
- The model-bundles produced by now additionally include the model exported in the ONNX format and Raster Vision will use an ONNX runtime to make predictions if ``RASTERVISION_USE_ONNX=1`` is set.
14
+
15
+
API changes:
16
+
17
+
- To crop the extent of a :class:`.RasterSource` (or :class:`.LabelSource`), you now have to specify ``bbox`` instead of ``extent``. The term "extent", as used in the codebase, has also been redefined to always be the box ``Box(0, 0, height, width)``, where ``height`` and ``width`` are the height and width of the ``bbox``.
18
+
- :class:`.GeoJSONVectorSource` can now take a list of URIs, allowing geometries to be read from multiple files.
19
+
- :class:`.VectorOutputConfig` (and subclasses) no longer require ``uri`` to be specified.
20
+
21
+
Features
22
+
~~~~~~~~
23
+
24
+
- Add ``XarraySource`` to make it easier to consume imagery fetched from a STAC API (`#1764 <https://github.com/azavea/raster-vision/pull/1764>`__)
25
+
- Add experimental ONNX support (`#1792 <https://github.com/azavea/raster-vision/pull/1792>`__)
26
+
- Add support for temporal data (`#1803 <https://github.com/azavea/raster-vision/pull/1803>`__, `#1815 <https://github.com/azavea/raster-vision/pull/1815>`__)
27
+
28
+
29
+
Fixes/minor improvements/refactoring
30
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
31
+
32
+
- Improve efficiency of positive-window sampling in ``ObjectDetectionRandomWindowGeoDataset`` by filtering labels by AOI (`#1705 <https://github.com/azavea/raster-vision/pull/1705>`__)
33
+
- Misc object detection fixes and improvements (`#1711 <https://github.com/azavea/raster-vision/pull/1711>`__)
34
+
- Allow ``GeoJSONVectorSource`` to accept multiple URIs (`#1712 <https://github.com/azavea/raster-vision/pull/1712>`__)
35
+
- Allow specifying extra args for default model in ``ModelConfig`` (`#1713 <https://github.com/azavea/raster-vision/pull/1713>`__)
36
+
- Ensure ``RasterSource`` and ``LabelSource`` extents match up in ``Scene`` (`#1740 <https://github.com/azavea/raster-vision/pull/1740>`__)
37
+
- Allow all constituent object detection losses to be logged (`#1716 <https://github.com/azavea/raster-vision/pull/1716>`__)
38
+
- Remove the ``uri`` field from ``VectorOutputConfig`` (`#1762 <https://github.com/azavea/raster-vision/pull/1762>`__)
39
+
- Fix bugs related to extent-cropping (`#1774 <https://github.com/azavea/raster-vision/pull/1774>`__, `#1786 <https://github.com/azavea/raster-vision/pull/1786>`__, `#1793 <https://github.com/azavea/raster-vision/pull/1793>`__)
40
+
- Fix legend placement in ``SemanticSegmentationVisualizer`` plots (`#1783 <https://github.com/azavea/raster-vision/pull/1783>`__)
41
+
- Misc. refactoring and fixes (`#1838 <https://github.com/azavea/raster-vision/pull/1838>`__)
42
+
- Update tutorial notebooks + misc. minor changes (`#1839 <https://github.com/azavea/raster-vision/pull/1839>`__)
43
+
- Improve geometry-related validation in ``Scene`` and ``GeoJSONVectorSource`` and fix a bug in ``AoiSampler`` (`#1856 <https://github.com/azavea/raster-vision/pull/1856>`__)
44
+
45
+
Development/maintenance
46
+
~~~~~~~~~~~~~~~~~~~~~~~
47
+
48
+
- Disable PDF build of docs (`#1714 <https://github.com/azavea/raster-vision/pull/1714>`__)
49
+
- Improve Codecov exclusion settings, add some more unit tests, and add a unit test README (`#1717 <https://github.com/azavea/raster-vision/pull/1717>`__)
50
+
- Fix CI errors (`#1763 <https://github.com/azavea/raster-vision/pull/1763>`__)
51
+
- Factor out numpy-like array indexing implementation and add unit tests (`#1765 <https://github.com/azavea/raster-vision/pull/1765>`__)
- Pre-release fixes and improvements (`#1857 <https://github.com/azavea/raster-vision/pull/1857>`__)
60
+
61
+
----
62
+
4
63
Raster Vision 0.20.2
5
64
--------------------
6
65
@@ -10,6 +69,8 @@ Raster Vision 0.20.2
10
69
* Only set default stride if stride value is missing in ``GeoDataWindowConfig`` (`#1674 <https://github.com/azavea/raster-vision/pull/1674>`__)
11
70
* Minor doc and type-hint fixes and refactoring for OD (`#1675 <https://github.com/azavea/raster-vision/pull/1675>`__, `#1676 <https://github.com/azavea/raster-vision/pull/1676>`__)
* make CV-tasks image slightly smaller (`#1624 <https://github.com/azavea/raster-vision/pull/1624>`__)
32
93
94
+
----
95
+
33
96
34
97
Raster Vision 0.20
35
98
------------------
@@ -113,6 +176,8 @@ Development/maintenance
113
176
- Make ``docker/run`` automatically find a free port for Jupyter server if the default port is already taken (`#1558 <https://github.com/azavea/raster-vision/pull/1558>`__)
114
177
- Set tutorial-notebooks path as the default jupyter path in ``docker/run`` (`#1595 <https://github.com/azavea/raster-vision/pull/1595>`__)
* Use ``--ipc=host`` by default when running the docker container `#1077 <https://github.com/azavea/raster-vision/pull/1077>`__
213
278
279
+
----
280
+
214
281
Raster Vision 0.12
215
-
-------------------
282
+
------------------
216
283
217
284
This release presents a major refactoring of Raster Vision intended to simplify the codebase, and make it more flexible and customizable.
218
285
@@ -221,32 +288,32 @@ To learn about how to upgrade existing experiment configurations, perhaps the be
221
288
Since the changes in this release are sweeping, it is difficult to enumerate a list of all changes and associated PRs. Therefore, this change log describes the changes at a high level, along with some justifications and pointers to further documentation.
222
289
223
290
Simplified Configuration Schema
224
-
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
291
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
225
292
226
293
We are still using a modular, programmatic approach to configuration, but have switched to using a ``Config`` base class which uses the `Pydantic <https://pydantic-docs.helpmanual.io/>`__ library. This allows us to define configuration schemas in a declarative fashion, and let the underlying library handle serialization, deserialization, and validation. In addition, this has allowed us to `DRY <https://en.wikipedia.org/wiki/Don%27t_repeat_yourself>`__ up the configuration code, eliminate the use of Protobufs, and represent configuration from plugins in the same fashion as built-in functionality. To see the difference, compare the configuration code for ``ChipClassificationLabelSource`` in 0.11 (`label_source.proto <https://github.com/azavea/raster-vision/blob/0.11/rastervision/protos/label_source.proto>`__ and `chip_classification_label_source_config.py <https://github.com/azavea/raster-vision/blob/0.11/rastervision/data/label_source/chip_classification_label_source_config.py>`__), and in 0.12 (`chip_classification_label_source_config.py <https://github.com/azavea/raster-vision/blob/0.12/rastervision_core/rastervision/core/data/label_source/chip_classification_label_source_config.py>`__).
227
294
228
295
Abstracted out Pipelines
229
-
~~~~~~~~~~~~~~~~~~~~~~~~~
296
+
~~~~~~~~~~~~~~~~~~~~~~~~
230
297
231
298
Raster Vision includes functionality for running computational pipelines in local and remote environments, but previously, this functionality was tightly coupled with the "domain logic" of machine learning on geospatial data in the ``Experiment`` abstraction. This made it more difficult to add and modify commands, as well as use this functionality in other projects. In this release, we factored out the experiment running code into a separate :ref:`rastervision.pipeline <pipelines plugins>` package, which can be used for defining, configuring, customizing, and running arbitrary computational pipelines.
232
299
233
300
Reorganization into Plugins
234
-
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
301
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~
235
302
236
303
The rest of Raster Vision is now written as a set of optional plugins that have ``Pipelines`` which implement the "domain logic" of machine learning on geospatial data. Implementing everything as optional (``pip`` installable) plugins makes it easier to install subsets of Raster Vision functionality, eliminates separate code paths for built-in and plugin functionality, and provides (de facto) examples of how to write plugins. See :ref:`codebase overview` for more details.
237
304
238
305
More Flexible PyTorch Backends
239
-
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
306
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
240
307
241
308
The 0.10 release added PyTorch backends for chip classification, semantic segmentation, and object detection. In this release, we abstracted out the common code for training models into a flexible ``Learner`` base class with subclasses for each of the computer vision tasks. This code is in the ``rastervision.pytorch_learner`` plugin, and is used by the ``Backends`` in ``rastervision.pytorch_backend``. By decoupling ``Backends`` and ``Learners``, it is now easier to write arbitrary ``Pipelines`` and new ``Backends`` that reuse the core model training code, which can be customized by overriding methods such as ``build_model``. See :ref:`customizing rv`.
242
309
243
310
Removed Tensorflow Backends
244
-
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
311
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~
245
312
246
313
The Tensorflow backends and associated Docker images have been removed. It is too difficult to maintain backends for multiple deep learning frameworks, and PyTorch has worked well for us. Of course, it's still possible to write ``Backend`` plugins using any framework.
247
314
248
315
Other Changes
249
-
~~~~~~~~~~~~~~
316
+
~~~~~~~~~~~~~
250
317
251
318
* For simplicity, we moved the contents of the `raster-vision-examples <https://github.com/azavea/raster-vision-examples>`__ and `raster-vision-aws <https://github.com/azavea/raster-vision-aws>`__ repos into the main repo. See :ref:`rv examples` and :ref:`cloudformation setup`.
252
319
* To help people bootstrap new projects using RV, we added :ref:`bootstrap`.
@@ -260,41 +327,47 @@ Other Changes
260
327
* The ``aws_batch`` runner was renamed ``batch`` due to a naming conflict, and the names of the configuration variables for Batch changed. See :ref:`aws batch setup`.
261
328
262
329
Future Work
263
-
~~~~~~~~~~~~
330
+
~~~~~~~~~~~
264
331
265
332
The next big features we plan on developing are:
266
333
267
334
* the ability to read and write data in `STAC <https://stacspec.org/>`__ format using the `label extension <https://github.com/radiantearth/stac-spec/tree/master/extensions/label>`__. This will facilitate integration with other tools such as `GroundWork <https://groundwork.azavea.com/>`__.
268
335
336
+
----
337
+
269
338
Raster Vision 0.11
270
-
-------------------
339
+
------------------
271
340
272
341
Features
273
-
~~~~~~~~~~
342
+
~~~~~~~~
274
343
275
344
- Added the possibility for chip classification to use data augmentors from the albumentations libary to enhance the training data. `#859 <https://github.com/azavea/raster-vision/pull/859>`__
276
345
- Updated the Quickstart doc with pytorch docker image and model `#863 <https://github.com/azavea/raster-vision/pull/863>`__
277
346
- Added the possibility to deal with class imbalances through oversampling. `#868 <https://github.com/azavea/raster-vision/pull/868>`__
278
347
348
+
----
349
+
279
350
Raster Vision 0.11.0
280
-
~~~~~~~~~~~~~~~~~~~~~
351
+
~~~~~~~~~~~~~~~~~~~~
281
352
282
353
Bug Fixes
283
-
^^^^^^^^^^
354
+
^^^^^^^^^
284
355
285
356
- Ensure randint args are ints `#849 <https://github.com/azavea/raster-vision/pull/849>`__
286
357
- The augmentors were not serialized properly for the chip command `#857 <https://github.com/azavea/raster-vision/pull/857>`__
287
358
- Fix problems with pretrained flag `#860 <https://github.com/azavea/raster-vision/pull/860>`__
288
359
- Correctly get_local_path for some zxy tile URIS `#865 <https://github.com/azavea/raster-vision/pull/865>`__
289
360
361
+
----
362
+
290
363
Raster Vision 0.10
291
364
------------------
292
365
293
366
Raster Vision 0.10.0
294
-
~~~~~~~~~~~~~~~~~~~~~~
367
+
~~~~~~~~~~~~~~~~~~~~
295
368
296
369
Notes on switching to PyTorch-based backends
297
-
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
370
+
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
298
371
299
372
The current backends based on Tensorflow have several problems:
300
373
@@ -311,7 +384,7 @@ Therefore, we are in the process of sunsetting the Tensorflow backends (which wi
311
384
* The way to use the ``ConfigBuilders`` for the new backends can be seen in the `examples repo <https://github.com/azavea/raster-vision-examples>`__ and the :ref:`backend` reference
312
385
313
386
Features
314
-
^^^^^^^^^^^^
387
+
^^^^^^^^
315
388
316
389
- Add confusion matrix as metric for semantic segmentation `#788 <https://github.com/azavea/raster-vision/pull/788>`__
317
390
- Add predict_chip_size as option for semantic segmentation `#786 <https://github.com/azavea/raster-vision/pull/786>`__
@@ -328,6 +401,8 @@ Bug Fixes
328
401
- Fixed issue with configuration not being able to read lists `#784 <https://github.com/azavea/raster-vision/pull/784>`__
329
402
- Fixed ConfigBuilders not supporting type annotations in __init__ `#800 <https://github.com/azavea/raster-vision/pull/800>`__
330
403
404
+
----
405
+
331
406
Raster Vision 0.9
332
407
-----------------
333
408
@@ -379,6 +454,7 @@ Bug Fixes
379
454
- Fixed issue with experiment configs not setting key names correctly `#576 <https://github.com/azavea/raster-vision/pull/576>`__
380
455
- Fixed issue with Raster Sources that have channel order `#576 <https://github.com/azavea/raster-vision/pull/576>`__
0 commit comments