Updates 2017/09/01

Been working on an image processing project again, so more work done in related modules. Added some common statistics to the Weka module.

Fixes

  • fixed Variables.extractNames(expr) (used by the CheckVariableUsage actor processor and the green tick in the Flow editor's toolbar): no longer ends up in endless loop if invalid variable names are used in a string expression

  • The filter field of the BaseFileChooser now only works on files, not directories

  • The image overlays, left-click-listeners and selection listeners in the ImageViewer sink now get cleared whenever a token arrives (otherwise get multiplied in case of Inspect control actor)

  • The PromptUser boolean flow condition now expands variables in the message string as well.

  • Removed the cleanUp call in the doExecute method of the AbstractFilter transformer, to avoid problems with trainable filters.

  • Improved unique name generation in Flow editor: when copying Actor (2) it will now generate Actor (3) instead of Actor (2) (2).

  • adams-ml: The ConfusionMatrix transformer now always generates a square matrix, taking all the labels (actual/predicted) into account.

  • adams-weka: The Weka package manager is working again, after backporting some changes to the modified Weka 3.9.0 version that is currently in use.

  • adams-imaging: MergeObjectLocations now correctly performs a merge if there aren't any objects in the current report.

Changes

  • Updated jclasslocator to make ADAMS work with Java 9 (for automatic class discovery).

  • Updated jeneric-cmdline.

  • adams-weka:

    • The Predictions table for classification and the Cluster assignments table for clustering in the Weka Investigator are now searchable.

    • The Preprocess tab in the Weka Investigator now automatically selects the last opened/filtered dataset.

    • The WekaFilter transformer now stores the input data in the WekaFilterContainer (when outputting containers) as well.

    • WekaCrossValidationEvaluator, WekaTrainTestSetEvaluator and WekaTestSetEvaluator now store the test data in the container as well (if possible).

    • WekaPredictionsToInstances and WekaPredictionsToSpreadSheet can output the test data along side the measures now (if possible).

  • adams-cntk: now uses CNTK 2.1

  • adams-dl4j: upgraded deeplearning4j to 0.9.1

  • adams-imaging: The ImageReader transformer now can load the meta-data directly (optional).

Additions

  • Added support to the adams.flow.FlowRunner class for installing custom JVM shutdown hooks, like executing a remote command.

  • adams-imaging: added channels splitters for HSV, YUV and YIQ color models, acting as BufferedImageTransformer plugins: SplitChannelsHSV, SplitChannelsYUV, SplitChannelsYIQ.

  • adams-weka:

    • Added actor for nearest neighbor search: WekaNearestNeighborSearch.

    • Added SDR (Standard Deviation of Residuals) statistic to evaluation output.

    • Added RPD (Ratio of Performance to Deviation) statistic to evaluation output.

    • Added RowSum filter for replacing all attributes (except class) with sum of numeric attributes in a row.

  • adams-spectral-2dim-core:

    • reader for Nicolet SPA spectral data files: SPASpectrumReader.

    • trainable batch spectrum filter for multiplicative scatter correction (MSC): MultiplicativeScatterCorrection

    • The ApplyMultiplicativeScatterCorrection amplitude transform scheme allows the application of MSC using slopes and intercepts stored in the report.

    • added SegmentedDownSample Weka filter in conjunction with its SegmentedDownSampleNthPoints Hermione handler.

    • added spectrum writer outputting spectra as images, using the amplitude to determine color of pixels in image: IntensityImageSpectrumWriter

  • adams-cntk: added CNTKModelGenerator source for outputting CNTK model blocks using the specified model generator.

  • adams-basic-app: stripped down version sporting CSV spreadsheet support and Groovy scripting.

  • adams-imaging:

    • added CountObjectsInRegion transformer for counting objects in report that fall within the defined region, e.g., when processing annotated objects in images.

    • added ObjectLocationsFromReport preview to the Preview browser, which displays an image with an object locations overlay, using locations obtained from a report (simple format) with the same name as the image.

    • added ImageObjectFilter which utilizes the new object finder class hierarchy for filtering objects in the report attached to an image.

    • added conversions for handling rectangles: StringToRectangle, RectangleToString, RectangleCenter

    • added feature generator that uses a image transformer as filter before applying the base generator: FilteredBufferedImageFeatureGenerator

    • added convenience actors for handling image objects: GetImageObjectIndices, ImageObjectInfo, RemoveImageObject.

    • added image overlay for displaying object locations as circle/ellipse: ObjectCentersOverlayFromReport.

    • added preview to Preview browser using ObjectCentersOverlayFromReport: ObjectCentersFromReport.

  • adams-imaging-boofcv:

    • added feature generator that uses a image transformer as filter before applying the base generator: FilteredBufferedImageFeatureGenerator

  • adams-imaging-imagej:

    • added feature generator that uses a image transformer as filter before applying the base generator: FilteredBufferedImageFeatureGenerator