3LC Dashboard Version 2.6

2.6.3

Enhancements and Fixes

  • [14844] Fixed URI encoding for URLs requested from object service, which allows for proper handling of all characters, particularly addressing a bug where 3LC data could not be loaded from a path using Chinese characters

  • [14936] Fixed a bug where pressing M would create an ineffective edit when no prediction was selected

  • [14927] Fixed large font size in some cases, such as when FN/FP/TP shown under BB/segmentation in chart

  • Fixed missing repaint when showing/hiding annotations

  • [14937] Made it so the travel distance workflow works with 1D column as embedding

  • [14941] Fixed an issue where making a commit would always log an error response from the object service even though it was successful

  • [14940] Handle case when segmentation layer has no pixels

  • [14947, 14926] Restored SSAO/edge shading to use previous library, which looks better and has better performance in general, and fixed bug that led to the recent change to a different SSAO library

  • [14945] Fixed recently introduced bug where closing an unselected chart would close all selected charts as well

  • [14954] Restored caching rules accidentally deleted in earlier 2.6 versions

  • [14943] When running 3lc-dashboard to serve the dashboard from an enterprise install, disable caching for the root like we do in the hosted version. In particular, this fixes an issue where the user could get a cached version of ‘/’ without the “object_service” cookie because it has expired, which means the dashboard cannot connect to the configured object service.


2.6.2

Enhancements and Fixes

  • [13465] Colorized the scrollbar in the Table panel based on row colors

    ../../_images/ColorizeScrollBar.png
  • [14751] Tweaked paint and erase cursors to clarify their purpose

  • [14877] Made it so the ForgettingEvents and AggregateCharts workflows place charts in separate tabs

  • [14872] Fixed a bug causing the application to sometimes switch away from the current screen to the Projects panel

  • [14870] Added some color tables for F1/Recall/Precision

  • [5531] Made it so the animated hover line within charts is now also populated from aggregated or reduced data

  • [14887] Made it so closing a chart closes all selected charts, not only the one being clicked

  • [14917] Fixed a bug where deleting the last layer in a multi-layer image would cause the the metadata to be deleted but not the actual geometry, unless the image had been unselected scrolled away from it before committing


2.6.1

Features

  • [13679] Added support for user-configurable line stitching. The default behavior is unchanged, but the new “Connect by” setting can be used to stitch together a connected polyline using the selected property.

    ../../_images/ConnectBy.png
  • [14814] Implemented workflows for viewing Precision/Recall/F1 values in Table panel and 2D/3D charts.

    ../../_images/WorkflowsPrecisionRecallF1.png
  • [14851] Show property count/sum/average in filter panels

    ../../_images/PropertyCountSumAverage.png

Enhancements and Fixes

  • [14831] Made it possible to view/select array elements in the Table panel

    ../../_images/ViewSelectArrayElements.png
  • [14794] Replaced old SSAO and edge-shading code with new library that fixes long-standing glitch where the SSAO exhibits defects

  • [14830] Made the colorize-by setting part of the favorite configuration so that when colorizing table rows and/or cell values, the same setup is applied when opening a new Run/Table

  • [14850] Made it so workflows can optionally add new Charts to named ChartsPanel

  • [14813] Virtual columns operating on a pair of (ground truth, prediction) columns (e.g. bounding boxes) now have an optional parameter ‘Label policy’ that allows for one of the following:

    1. Requiring Labels to match (the default behavior)

    2. Ignoring Labels altogether

    3. Limiting the operation to one particular label (e.g. cats or dogs).

  • Fixed performance degradation when updating the shared cursor in 3D


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.