3LC Dashboard Version 2.6

2.6.0

Features

  • [13950] Require login to 3LC account now that the 3LC Beta is over

  • [14254] Added support for instance segmentation

    • Support rendering from multi-layer images, both in tables and in charts:

      ../../_images/AddInstanceSegmentation01.png
    • Dashed lines are used to render predicted masks (just like for bounding box outlines):

      ../../_images/DashedPredictedMasks.png
    • Filtered-out layers are by default hidden (but can optionally be shown by toggling 1, just like for bounding boxes)

    • Editing of multi-layer images is basically a superset of single-layer editing (including undo/redo/commit)

    • Removed keyboard shortcut J to pick active paint value

    • Instead, implemented the following modifiers to left-mouse-button down operations:

      • LeftButton “PAINT”

        • Single-layer: Paint with current Label

        • Multi-layer: Paint into selected layer

      • Shift+LeftButton “ERASE”

        • Single-layer: -

        • Multi-layer: Erase from all selected layers

      • Ctrl+LeftButton “PICK”

        • Single-layer: Pick active paint value from texel under mouse pointer

        • Multi-layer: Select layer from texel under mouse pointer

      • Shift+Ctrl+LeftButton “PICK MORE”

        • Single-layer: -

        • Multi-layer: Add layer to selection (from texel under mouse pointer)

      • Ctrl+DoubleLeftClick

        • Single layer: Zoom to contents of connected area (effectively doing a flood fill)

        • Multi-layer: Select layer and zoom to contents

    • In multi-layer mode, there’s a flag which indicates whether to erase from all non-selected layers when painting (but not when erasing). Default is ON:

      ../../_images/AddInstanceSegmentation02.png
    • There’s a global Settings flag Enhance edges which is used when rendering multi-level images:

      ../../_images/AddInstanceSegmentation03.png
    • Selection of layers is represented like other array elements (e.g. bounding boxes) and shown on the window title:

      ../../_images/AddInstanceSegmentation04.png
    • Next/prev works just like for bounding boxes, and the same goes for auto-zoom-to-selected

    • Min/max X/Y, pixel-count, circumference and island-count of each layer is updated when editing and can be filtered on, visualized, etc.

    • Added buttons “Add layer” and “Delete selected layer(s)”, with shortcut for the latter being the ordinary Del key

  • Allow usage of Selected and Edited column in charts, just like any other columns:

    ../../_images/SelectedAndEditedColumnsInCharts.png
  • Standardized display of popup-messages and logging behavior by adding Settings attributes that determine what happens when specific actions are performed:

    ../../_images/NotificationSettings.png
  • Enabled operations between multi-entry columns and single-entry columns, and per-element operations on arrays when ArraySignatures match:

    ../../_images/ElementWiseOps.png
  • Made it so that hovering over a Table in the Run Details dialog shows the Table’s description:

    ../../_images/HoverTableDesc.png
  • Added ‘sum’ column to ReducedTable (for relevant columns)

  • Added OperationParseString virtual column where the input string is parsed as a number

  • [14684] Allowed for reducing on array columns (e.g. BbList Label), and include “Count” per reduce group

  • [14253] Added handling for non-finite values (NaN, negative infinity, positive infinity)

    ../../_images/HandleNaN.png
  • Added global flag “Live filters”, available in the Settings dialog or with the keyboard shortcuts S or Shift+Ctrl+S and also exposed in the Filters panel as the lightning icon on the toolbar:

    ../../_images/FiltersPanelLiveFilters.png
    • The flag is automatically set to True at application startup or whenever any change is made to the filter values

    • When setting the flag to False, edits of e.g. bounding boxes or segmentation layers will NOT cause the FilteredTable to be recomputed automatically. This means that those elements (or entire table rows) will still be visible even though they would otherwise have been filtered out.

    • Enabling the flag will cause the FilteredTable to be recomputed immediately

  • [14672] Optionally link virtual column parameters via global variables

    • As an example, TP calculations have an IoU threshold, and one would typically want to use the same value in a different FP calculation

    • Currently only available for operations on two BB or segmentation columns, e.g. “Matched predictions”

    • By default, all operations with an IoU threshold will now share the same global value, meaning a change to one will change them all:

    ../../_images/LinkedColumnsGlobalVars.png
    • If one sets “Linked value” to “(None)” then the slider will again control only that particular column value.

  • Made it so legends can be colored from continuous ranges (similar to from value maps)

    ../../_images/ColorLegendFromContinuousRange.png
  • [14316] Chart how computed values (F1, recall,…) change across IoU and/or Confidence sweeps

    • Some operations (e.g. F1 between predicted and a ground truth elements) can be tweaked using the context menu. The values are by default connected to global variables (e.g. “Global IoU threshold”). Within the Table, these values are a single number per table row:

      ../../_images/IterateOver0.jpg
    • However, one might want to visualize how this value would change if one of the global variables swept across their possible value range. This can be configured using the Tweak-selected-chart dialog (invoked by the ‘wrench’ icon on the main toolbar when a chart is selected). Notice the new “Iterate-over” column highlighted here:

      ../../_images/IterateOver1.jpg
    • Checking the highlighted box essentially says “unroll all dependent data for each possible value of this” (currently, the IoU thresholds steps by 0.05 increments, resulting in 21 values). Initially, this “exploded” each F1 value into 21 different points. While this could be interesting in it’s own right, a typical use case would be to BOTH plot the sweep value along one dimension, AND reduce on the sweep value (so as to get a single aggregated value). Using this setup…

      ../../_images/IterateOver2.jpg
    • … we get a sweep chart like this:

      ../../_images/IterateOver3.jpg
  • Made it so that the shared cursor includes intersection with triangular shape geometry (when any present)

    ../../_images/SharedCursorIntersectTriangles.png

Enhancements and Fixes

  • Colored Commit and Discard buttons green and red, respectively, to make their meaning more obvious

  • Implemented minor optimization of rendering of images in 2D charts

  • Fixed regression where the Log window was not sorted correctly by default

  • [14485] Fixed a potential crash on mouse down

  • [14494] Fixed a glitch where the Table lineage display was wiggled when zoom 110%

  • [10099] Fixed a bug where the favorite button was not visible in context menus when the property name was too long

  • [14614] In ‘Accept predictions’ dialog: when showing approximate numbers, show next “round” number (e.g. 4584 -> ~4600)

  • [14455] Fixed a rendering bug when hovering over a BB with opacity < 1

  • [14669] Made it so there is more descriptive undo/redo text when accepting predictions

  • [14681] Handle cases where mode is set to “Paint new bounding box” but there are no bounding box columns

  • [14685] Fixed a glitch where the label display was not updated immediately when changed in context menu

  • [12658] Made it possible to show columns for nested Run parameters

  • [14740] Fixed a glitch where lines between partially-filtered-out joined points were not always visible

  • [14742] Removed obsolete, order dependent implementation of OperationIoU

  • [14763] Fixed a bug causing “inverse” operations not to work

  • [13771] Fixed an issue that could cause vertical offset/wrap around to the bottom of the screen

  • [14796] Made some improvements so that newer GPUs are detected with high tier for render settings

  • [14802] Fixed an issue where class count was not available in the value map dialog in some cases and classes could not be deleted

Known Issues

  • When renaming a Run in the Dashboard, the old name is sometimes still shown alongside the new name in the Table panel for a short time.