5.2.1 15-jul-2024

  • Adding scan name definition by a template. This allows user to define parts of scan names by enumerated string lists that can be easily selected by cursor keys or mouse wheel.
  • Added default byte order to all ENVI files saved from perClass Mira
  • Fixed an issue in dual scanning where a worker instance might not be stopping
  • Fixed a crash when starting regression model search on Linux
  • Fixed an issue where setting regions from object could lead to a crah in certain situation.
  • Fixed a crash that could happen when switrching scanning to memory (scan mode) and scanning to file (belt or watefall mode)

5.2 19-jun-2024

  • New user-rehostable licenses. It is now possible to deactivate the license directly and instantly activate it on a new machine. New rehostable activation keys are needed (starting with a letter, not a digit). The legacy activation functionality is not changed. All users will be contacted to update their keys to benefit from rehostable activation.
  • Improved options for starting and stopping scanning. This includes new support for data acquisition on a high-speed belt or other environments where we wait for an object to arrive
    • Acquisition directly into a memory buffer
    • Recording panel now provides an option to start acquisition when X pixels of a given class are detected and to end the acquisition when an object is detected
    • Scan compression is supported
  • Adding perClass Mira support for Linux 64bit on x86 platform (experimental)
  • Adding Uncrop command allowing to reverse crop operations. Similarly to Crop, the Uncrop supports batch processing of multiple images.
  • Object segmentation can reject objects based on their maximum height. This is useful to discard for example a continuous detection on a reflective side of a conveyor belt.
  • Camera support improvements
    • Adding support for Headwall Nano HP
    • New plugin for Inno-spec BlueEye UV cameras (experimental)
    • Headwall MV.C VNIR camera supports user-controlled queue size via ini file
    • For all camera supporting perClass spectral calibration, the calibration download/upload or clear can be invoked without camera initialization
  • Fix for a crash in regression or visualization happening in some situations on compressed images
  • Fix for the issue with crop of compressed images with manual object-separation labels
  • Fix for the issue in object decision for regression models on rotated images
  • Fix for the issue where, when loading exported reflectance-corrected cubes, an error message was shown about (rightfully) missing references.

5.1 23-apr-2024

  • Scanning stage improvements
    • Added support for Headwall Small scanning kit and Large scanning kit
    • Improved support of Inno-spec Speccer using absolute positioning available throuigh the unified Stage panel
      • The Speccer UI presents up/down movements instead of right/left
    • Selecting scanning stage using a combo box in Stage panel
    • Added support for swiching between slow (<10mm/sec) and fast scanning mode. This provides user with fine-grained speed control in slow-scanning
    • Ability of cancelling stage movement or homing when supported by hardware.
  • Recording improvement
    • Improved square pixel framerate estimation
    • Scan names can use zero-padding for indices (e.g. scan001). This simplifies working with filenames in Excel using position-based sub-string functions avoiding the need for regular expressions
    • Dual scanning: User can change color scheme for worker instances via ini file
  • Camera support improvements
    • Cubert: Speeding-up auto-exposure by separate single cube acquisition
    • Hedawall MV.C NIR and HyperspecIII (SWIR): Adding bad pixel replacement with user-configurable bad pixel list
    • Headwall MV.C VNIR and NIR cameras add sensor temperature information in saved .hdr files
    • Headwall SWIR: Support for camera internal shutter
    • Pohotonfocus: 
      • Added support for camera internal shutter
      • Added support for Mono12Packed
    • Headwall HyperspecIII: Added support for spectral resampling
  • Camera benchmarking improvements
    • Support for setting camera ROIs by spectrally-resampled wavelength range. This allows fair comparison of cameras with different size of illuminated sensor area
  • GUI
    • Fix for a problem where spectral plot bounds could not be changed during acqusition

5.0 25-jan-2024

  • adding support for Mono12Packed pixel format in eBUS acquisition plugins (Headwall MV.C NIR and Inno-spec RedEye)

5.0 24-jan-2024

      • User can decide after the scan is made whether to save it or re-take it
      • Lossless scan compression based on a classifier or user-defined mask (.pcz files with .hdr for meta-data)
      • Stopping scan after a number of frames is reached or an object is detected
    • Scan naming improvements
      • User can easily increment counters in a scan filename. Words ending with a number and separated by underscore can be incremented by cursor keys, mouse wheel or perClass Mira Stage buttons
    • Fast scanning work-flows
      • User can fully operate scanning session by perClass Mira Stage buttons (for example: A = scan, B=increment filename counter, C=save)
      • Stage movements and stage button commands also mapped to keyboard shortcuts.
    • Dual sensor scanning allowing the user to perform one scanning session resulting in two data sets (VNIR and NIR) on the same objects
      • Master/worker paradigm: Master instance of perClass Mira can open new "worker" instance
      • Master controls perClass Mira Stage and one sensor; Worker controls the second camera
      • User can set each instance specifically for the camera needs and choose different data storage directory
      • User then interacts with Master instance (to initiate scanning from both instances)
      • Master and worker can run on the same or different computers
    • User can define spectral and spatial ROI for camera acquisition in the frame panel. This needs to be done before adding the first scan to a project which fixes the spectral wavelength definition
  • Operator mode
    • Simplyfied interface to deploy live demonstrators for solution operators
    • Support for classification and regression projects
    • Can enable user-permission system separating developers (who can change models) and operators (who cannot)
    • Operator session supports referencing
    • Can enable logging detections and results into a data base (locally to SQLite or remotely to MariaDB)
    • Project/customer logo can be changed via mira.ini file
  • Image selection improvements
    • User can select images flagged as training/test or via a regular expression on image names (Data / Image flags / Set flags by pattern or via / keystroke) 
  • Regression improvements
    • Support for object classification by regression output (new rules in Object panel)
    • Support for defining region ground-truth from object point annotations (region labels by applying decision rules)
    • Full support for object confusion matrices based on regression and for cross-validation
  • New acquisition plugins
    • (experimental) PhotonFocus SDK supported for
      • Inno-spec RedEye
      • Headwall MV.C NIR
    • (experimental) Resonon
      • New Allied Vision (VimbaX SDK) plugin supporting Resonon NIR systems
      • New Bassler (Pylon SDK) plugin supporting Resonon VNIR systems
      • These new plugins will replace the deprecated Resonon SDK acquisition

4.2.9 4-oct-2023

  • Acquisition improvements
    • Headwall MV.C VNIR camera supporting frame buffering. If computer cannot keep up with live acquisition, the buffered frames will be now saved at the end of scanning session. Frame buffering can be disabled by ini option
    • Headwall MV.C NIR camera new shutter mode supported
    • New VimbaX plugin to support Resonon NIR systems (replacing the deprecated Resonon SDK)
    • Type of data stream included in recorded header files ("Raw calibrated" or "Resampled")
  • perClass Mira Stage
    • Speeding up stage response
    • Fixing the intermittent problem where scans could be extended in length
    • Adding stage cycle number
  • perClass Mira improvements
    • Regression import dialog interprets Excel address references case-insensitive

4.2.8 23-aug-2023

  • perClass Mira Stage
    • Added support for perClass Mira Stage v2.0
    • Added TCP/IP commands to control the stage via Application Server interface
  • Region improvements
    • Added command to add regions from a template
      • Works also in a batch mode for all selected image
    • Removing regions from multiple images does not remove template regions, user is asked to explicitly confirm
  • Regression improvememnts
    • Added RER performance statistics in regression 
    • Fixing the display of output with multiple objects
  • Acquisition plugins
    • fix in filereader plugin - preloading multiple cubes properly handles memory size limits
    • Headwall HyperspecIII plugin adds support for wavelength information from the sensor
    • Headwall MV.X allows using arbitrary IP address for the websocket communication (identical to the eBUS data connection)
    • Pleora eBUS plugin adding eBUS 6.3 version which enables enables full support Windows 11 (eBUS 5.1 and 6.1 are also supported)
    • Resonon acquisition adds a setting for a number of aquired reference frames
    • Unispectral acquisition reports situations where the camera does not return a frame
  • Benchmarking improvements
    • Added automatic optimization of the best band subset (ROI) and classification model for a given project
    • Benchmark visualization of the benchmarked ROIs for speed, for error and for both criteria
    • Best feature set found can be set to the project spectral plot

4.2.7 26-jun-2023

  • Fixed issue with dropped frames on Headwall MV.C VNIR
  • Benchmark frame count limit increased to 100k frames

4.2.6 14-jun-2023

  • New command to copy class mean (min/max) spectra to clipboard as text in Spectral plot
    • Copy wavelengths and band selection to clipboard information as text
  • The export into Matlab command is batched applying the action to selected images
  • The Add regions from objects command is batched applying the action to selected images
  • New Set source command in Camera menu allows to switch the project to a different acquisition target (from the favorities)
  • New dropped frame counter in the Camera panel
  • Panels in the Windows menu are now in alphabetic order
  • Fixed crash when changing acquisition source
  • Cubert acquisition improvements
    • Distance can be changed via mira.ini file
    • Fixed auto-exposure

4.2.4 20-apr-2023

  • added support for Avaldata camera uing TransFlyer SDK
  • added export of regions as cubes
  • Help menu now opens on-line documentation in a browser
  • Application server: added object detection channel for filereader plugin
  • fix for crash in visualization when using image rotation
  • fix in sync panel to download only selected directories
  • fix in buffer queueing in Pleora eBUS acquisition
  • Headwall MV.X license and runtime installation and switching from sync panel
  • Headwall MV.C cameras 
    • adding reference frame count in header files, default 100
    • fixed ROI offset and wavelength flip

4.2 13-mar-2023

  • new Camera and Images modes allow easy transition between live acquisition and working with saved scans
  • support for perClass Stage
    • includes user-defined commands for stage hardware buttons
    • support for a quick setup of a camera
      • auto-exposure leveraging available dynamic range for current illumination
      • finding optimal focus using easy user feedback
      • adjustment of scanning speed or frame rate to reach square pixels for line-scan cameras
  • new Cross-validation tool
    • Easily perform leave-one-out, rotation and randomization cross-validation for classification or regression
    • Supports cross-validation over images or over replicas (multiple scans of one physical sample that need to be all either in training or in the test set)
  • new tool to add manual object separation to existing object segmentation
    • This allows one to pack more objects in one scan even if touching. Manual object separation does not extend to deployment. 
    • Object separation enables also fine control on areas used for regression analysis
  • new sensor support
    • full support for Headwall MV.C VNIR and NIR cameras
    • partial support for legacy Headwall HyperspecIII cameras (currently VNIR and NIR supported, not SWIR)
    • support for snapshot filereader
    • experimental support for Agrowing sensors
  • new perClass Camera API
    • provides a unified interface for embedding data acquisition into custom applications

4.1 22-sep-2022

  • new docking system allowing better panel positioning
    • user may name and save "perspective" of all open panels over multiple screens
  • data acquisition
    • new frame widget showing live raw frames with spatial and spectral profiles
      • saturation detection for selected cameras
      • frame widget is automatically active also on loaded scans (off-line)
    • new "belt' visualization of the live data stream
      • visualizaing live object classification results also for line-scans
      • possible to switch between waterfall and belt views
  • new filereader plugin for line scans

            allows setting of frame rate to measure algorithm speed

  • user-defined visualization color maps
    • multiple color points and colormap reversal
    • colormaps can be stored in mira.ini file for re-use beyween projects and copy/pasted as text
  • improved alpha layer handling
    • two sliders provided, one for all classes and one for the currently selected class
    • alpha layer can be adjusted during the live acquisition to highlight only the decisions of interest
  • new application server functionality
    • perClass Mira acquisition can be controlled via text commands sent over TCP/IP connection
    • this allows quick construction of live demonstrators including custom actuator without low-level programming
    • separate object detection channel allowing one to react on detections
  • new sensor support
    • HAIP BlackIndustry
    • Headwall MV.X using Pleora eBUS
    • Silios CMS using Silios SDK
  • fixes
    • Excel export of full spectral uses .xlsx file format by default allowing up to 16k columns
    • regression auto-scale via context menu
    • add regions from current objects works correctly in cases when segmentation was not applied to the image
    • adjustments of the confusion matrix to avoid unreadable text due to close foreground/background colors
    • fixed auto-detection of ENVI cubes without extension

4.0 6-apr-2022

  • adding comprehensive data acquisition and recording functionality
    • Supported camera types
      • Cubert - Ultris series
      • Imec - all Mosaic systems (including PhotonFocus and Ximea cameras)
      • Inno-spec - RedEye 1.7 NIR and Speccer moving stage
      • Resonon - both VNIR systens and NIR Pika systems
      • Specim - FX series (via SpecSensor SDK)
      • Unispectral - Monarch
    • redisigned new project dialog - the user can select to either to
      • load existing scans recorded in camera vendor-specific software
      • or to do live data acquisition from supported camera
    • live acquisitions support raw (uncorrected) data from spectral camers and user-defined reflectance correction work-flows
      • point correction (based on user-localized white reference in the scene)
      • non-uniformity correction to account for inhomgeneous illumination
      • user-defined white level to support gray references
      • setting references from existing scans
    • data in the live acquisition is saved in the new perClass Mira data format (ENVI-based, .pcf extension)
      • In this way perClass Mira supports multiple correction work-flows for any supported camera type
      • scan-specific and directory-specific correction references
    • live data processing includes object segmentation and classification for snapshots
  • new Cubert project type supporting .cu3 files for all cameras
  • specific features for Unispectral
    • Supporting band selection in the camera to speed up acquisition
    • Fix supporting 'default bands' field with only a single entry
  • for VNIR systems, R,G and B lines in the preview mode are se to meaningful defaults. User can change preferred defaults in mira.ini
  • Export of spectral cube to Matlab now includes also the wavelength vector
  • Regression improvements
    • Significantly faster operation, avoiding processing of images on project load


3.1.2 2-dec-2021

  • copy current image view to clipboard as image using Ctrl+C
  • adding display autoStretch option with a slider control in the spectral plot context menu
  • regression improvements
    • adding dark/light background option to regression plots
    • adding copy to clipboard to regression plots
    • adding copy as text (direct copy to Excel) for regression performance values
  • object confusion matrix considers only true regions from classes flagged as foreground
  • enabling regression output in acquisition mode
  • fix of regression issue that could lead to non-reproducible model when bands in the end of the range were selected 
  • enhancing support for spectral cubes larger than 4GB
  • fixing crop on Silios images
  • fixing the issue where object segmentation sometimes flipped to object IDs even if object labels were set
  • fixing the issue with auto scaling of regression plot in situations with a lot of outliers

3.1.1 25-oct-2021

  • fixing the bug in display auto stretch where the stretch was on by not enabled
  • fixing the problem when training classifiers on large cubes (>4GB)
  • fixing the crash in object confusion matrix

3.1 3-sep-2021

  • new project types
    • Inno-spec project including reflectance correction on scan load (correction can be specified per-image and per-directory)
    • Resonon project type supporting reflectance correction on scan load
  • new installers
    • adding support for CUDA11.2
    • separate full installer including NVIDIA CUDA support
    • separate smaller installer for CPU + OpenCL backends convenient also for virtual machiens
  • significant speedup of classification at runtime
    • holds for both CPU and GPU backends including also older projects
  • new acquisition functionality
    • acquisition plugins allow use of different vendor SDKs
    • adding support for Resonon Pika cameras
    • SpecSensor plugins for 2019 and 2020 SDKs
    • Pleora eBUS support for eBUS 5.1 and 6.1 adds support for GenICam-compliant sensors such as Inno-Spec RedEye2
  • improvements in regression
    • outlier score plot and error plots help to clean training/test set of outliers
    • performance measures panel with user-defined acceptance criteria
  • GUI improvements
    • object-level confusion matrix with interactive visualization of ground-truth and detections allows full introspection of object-level decisions
    • added support for object shape features (Feret diameter, Hu moments, cirtularity)
    • added support for multiple directory selection for projects where each scan is a directory
    • images with labels show image names in italics
    • new auto-stretch of image brightness with slider-based adjustment in spectral plot menu

3.0 22-mar-2021

  • improvements in regression
    • support for multiple regression variables
    • significant speed-up when updating regression data sets
    • separate commands for model search, retraining model and applying model both to data and on a new scan
    • import regression meta-data from Excel also at region level (via named regions, see below)
    • easy inspection of outliers: jump to a scan containing specific object/annotation point
    • runtime API for per-object and per-pixel regression output for each variable
      • support for background pixel masking
  • introducing user-defined regions
    • regions have unique names within each image and are assigned to a specific class
    • regions can define object ground-truth labels
    • by matching regions to object found it is possible to estimate of confusion matrix at object level and assess sorting performance
    • Excel export and import of region definitions
    • user-defined text annotation such as expert remarks can be added
  • introducing feature extraction
    • extract and export user-defined features from objects or user-defined regions
      • mean spectra
      • spectral index mean or histogram per object
      • fraction of decisions per object
      • regression output per object
      • object count
    • information can be extracted from computed objects or from user-defined regions
      • for regions, presence/absence of data is reported (e.g. no plant in a germination well)
    • export to Excel and XML formats
  • introducing batch feature extraction accessible from scripts without GUI via perClass_Mira_Batch.exe
    • export to XML format
    • define a template image specifying regions for extraction (e.g. grid of germination wells)
    • validating scans via a user-defined model rejecting data unseen in training
  • improvements to image flagging
    • set selected images for testing or training
    • set a percentage of selected images as test (to perform user-defined cross-validation studies)
  • batch crop applied to selected images
  • spectral index definitions are saved in the .mira project file
  • improves when processing large number of scans
    • ability to cancel long running operations (like result exports or regression meta-data imports)
  • commands to switch between band subset used for a classifier and for a regressor
  • possible to define band subset manually by band indices (e.g. 20:40 will enable bands 20 to 40)
    • adding and removing bands to/from existing band subset (useful to disabla certain ranges)
    • possible to set or toggle each Nth band
  • new project type for Silios CMS cameras


2.4 28-sep-2020

  • added reflectance correction for Headwall project type (correction by whiteReference and darkReference ENVI cubes in the same directory)
    • allows loading of externally corrected cubes in the same project
    • enables multiple scans per directory sharing the same correction
    • default cube extension is .bin, arbitrary extensions are supported
    • to apply correction at runtime, pass directory containing whiteReference and darkReference scans to mira_LoadCorrection (example: mira_LoadCorrection(pmr,"path_to_dir_with_correction_files",NULL) )
  • added general ENVI project type supporting arbitrary cube file extension
  • added Corning project type
    • added perClass Mira Runtime support for native BIP data stream corrected with dark reference inside the camera
  • improved selection of multiple images (click and drag supported, no image reload in multiple selection)
  • improved drag&drop of directories (adding all files within each dropped dir)
  • added support for NVIDIA CUDA11 (Ampere)
  • when using floating licenses, specific licensing product can be requested based on floatingLicenseProduct setting in mira.ini (mira for perClass Mira Dev and mira.gui for perClass Mira)
  • when importing regression annotation from Excel, existing points are removed to avoid duplicates
  • fixed a problem when adding regression annotation to all objects in each scan
  • fixed problem when label painting with large brushes
  • fixed memory leak in loading large number of specim FX scans
  • fix for dropped frames at the start of live acquisition session
  • at runtime, all projects (including line-scans) must explicitly enable object segmentation with mira_SetSegmentation(pmr,1)

2.3 26-jun-2020

  • support for foreign object detection with trully unknown objects
    • label materials you know. Enable Show unknown to highlight all materials unseen in training.
    • user-adjustable sensitivity on per-class basis provides extra control (slider via the right-click in the class-list)
    • objects unseen in training can be segmented out (flag Unknown decision as foreground)
    • the new foreign object optimizer is on by default, can be disabled in Classification menu. 
  • color wells display transparency (change alpha for a specific class in the color dialog or by via alpha toolbar button by holding Ctrl)
  • crop improvements
    • crop rectangle line thickness auto-adjusted for very large cubes
    • adjust crop rectangle by dragging lines
  • segmentation improvements
    • support for up to 20 foreground classes including access to their content information
    • per-object results can be batch-exported to Excel including per-class content in each object
    • fix for a crash due to changing object size in live acquisition mode
  • confusion matrix improvements
    • added light mode (to allow copy/paste directly to documents)
    • added option to copy as text for direct copy/paste to Excel
  • fixed live acquisition issue when Specim calibration file (.scp) was not found
  • fix for min/max visualization setting in presence of NaNs and infinite values
  • support for case insensitive fields ENVI in header files (for Python integration)
  • runtime improvements
    • support for region of interest (ROI) for snapshots. Applying classifier only to specific ROI.
    • support for object segmentation for snapshot use-cases (Imec project type, float data type, BIP layout)

2.2 29-apr-2020

  • new Visualization mode showing computed indices using different common equations
    • define using individual wavelengths or wavelength ranges
    • auto-scaling and manual scaling
    • indication of below, above and invalid values
    • define wavelength ranges interactively in spectral plot
    • render using different colormaps
  • improved regression 
    • visualize per-pixel regression output (e.g. distribution of moisture)
    • import point annotations from Excel (matching scan names exactly or with regular expressions)
    • move and edit point annotations
    • use only specific subset of spectral bands
    • show cross-validated regression error (RMSECV) which has the same units as the regressed value
    • when hovering over the results in the regression plot, display specific annotation points with their true and estimated values 
    • visual indication that some point annotations are not linked to objects (e.g. point not on foreground class)
    • export regression results in Excel together with per-object size, bounding boxes, true and estimated regression outputs
  • perClass Mira Runtime improvements
    • added model export for perClass Mira Runtime (new "Mira Pipeline" .mpl format using base64 encoding)
    • added API to query expected data type, data layout and geometry of data from spectral camera
    • added support for all object segmentation configurations created in the GUI including per-object content retrieval and object classification by rules
    • added snapshot processing mode (mira_ProcessCube). Currently only pixel decisions are provided, not yet the object segmentation or content.
  • added support for OceanInsight Spectrocam and Pixelcam data formats
  • added support for ENVI cubes with uint32 data type and little-endian float
  • added classifier preprocessing (smoothing, 1st and 2md derivative)
  • export and import labels as PNG images
  • export per-image results to Excel allowing quick summary of fraction of decisions within foreground (e.g. disease within plant leaves)
  • update of live acquisition using Specim SpecSensor SDK
    • Applying regression both per-object and per-pixel in live acquisition
    • Calibration pack information stored in settings, reused for further sessions
  • fixes in object pannel: When retraining the classifier, object classification rules are preserved
  • adding default class color map
  • repeatable object label colors (can be change using random seed dialog)
  • added per-class transparency (alpha setting in the color dialog and using the toolbar transparency slider - hold Ctrl to change only the current class alpha)

2.1 18-feb-2020

  • Specim FX project type allows scan directories with different name than raw cube in capture sub-folder
  • Unicode support in image file names for ENVI-based formats
  • providing informative error messages when image cannot be loaded
  • adding Cubert Tiff project type with native support for Cubert Ultris camera
  • adding Headwall project type
  • license file can be drag & dropped from Explorer to the license dialog
  • RGB bands are set based on ENVI header file
  • mira.log file is now written to AppData/Roaming, not to the installation directory (now by default in Program Files (x86))
  • fix of calibration pack loading in SpecSensor
  • labels can be exported into .png files
  • ENVI import supports int16 data type
  • when the number of sampes is too low, the output window shows a red message that can provide details on click
  • when alpha is too low (high label transparency), the toolbar alpha button blinks to remind the user that labes may be badly visible

2.0 18-oct-2019

  • new Cubert ENVI project enabling data from Cubert Ultris and upsampled UH185 images
  • perClass Mira Runtime binaries adding dongle support

2.0 10-oct-2019

  • adding support for double-precision ENVI data cubes
  • supporting model deployment for execution on live data from Cubert Ultris light-field hyperspectral camera
  • enabling Cubert plugin export for ENVI-based projects. 
  • fixes in live acquisition using Specim FX cameras when device loading fails or opening FileReader gets cancelled
  • fixing a crash due to very large training set
  • fixing a bug in error visualization mode where switching to images without labels did not show proper image

2.0 20-sep-2019

  • Fix: Installation directories with non-ASCI characters are now supported
  • Live acquisition executables for Specim cameras included (perClass_Mira_live.exe and perClass_Mira_gpu_live.exe)
  • Senop project: Images are automatically processed with per-band gain

2.0 6-sep-2019

  • Estimate object quality using regression (examples: sugar content estimation per tomato)
    • annotate quality per object
    • automatic model selection reporting performance (R^2 and Q^2 statistics)
    • user-defined pre-processing (smoothing and derivatives)
    • apply regression to new images (show a bounding box + regression output per object)
    • allow localized information extraction by a radius around annotation points
  • Images can be flagged for testing only (not used for building the model)
    • Test confusion matrix provides a detailed view of the performance on test images
  • Error visualization mode brings insight in model performance. 
    • visualize where the current model fails
    • this helps to identify incorrect labels or (together with test image flagging) whether the data is well represented in the training set
    • Image confusion matrix shows only labeled examples on the current image
    • interactive error visualization by moving mouse over the image confusion matrix
  • Object segmentation mode with multiple options
    • one object / one class mode for object detection (e.g. detect plastic pieces in a food product stream for automatic removal)
    • one object / multiple classes for object classification (e.g. detect potato pieces, classify entire piece as defective if it contains more than 5% of greening or rot inside)
    • visualizing object labels or object decisions
    • object decisions by majority vote or rules (size of or fraction of a specific class)
  • Usability improvements
    • assign label stroke to the current class. This allows one to exclude a specific label stroke from training and see the impact on model performance (define an additional class and exclude it, assign strokes to it and retrain)
    • the data validation mechanism excluding invalid spectra is now off by default. It can be enabled using context menu in the spectral plot.
    • all modes (labels, decisions, errors, objects) accessible by direct keystrokes
    • confusion matrix size can be decreases/increased (useful for large number of classes)
    • auto-check for software updates + direct link to download latest version from the GUI (Help / Check for updates)
  • experimental Live data acquisition from Specim FX cameras using Specsensor SDK (needs to be installed separately)
    • apply a classifier and object segmentation to a live data stream
    • live visualization of processing speed and drop frame indication to assess production performance
    • user-control of exposure and camera frame-rate
    • supports practical situations where production light conditions are diffrerent from the training situation
      • the white and dark references used for live data processing can be specified without model retraining
    • automatic handling of spectral and spatial binning based on specific scan meta-data
    • support for outdoor operation: Define white reference by specifying an image region where a reference tile was placed
    • recording data from a live acquisition in the standard LUMO format


1.4 22-may-2019

  • perClass Mira Runtime is now included in the distribution
    • high throughput (1.5ms/frame on NVIDIA GPU in an example foreign object detection project, Specim FX17, 640 spatial pixels, 224 bands, 6 materials)
    • the runtime directly reports object positions, sizes and classes
    • support for NVIDIA Jetson platform (both ARM CPU and NVIDIA GPU backend)
    • support for line-scan use-case on Specim projects (specific white/dark correction format)
  • Linux build for both perClass Mira GUI and perClass Mira Runtime
    • accelerated CPU and GPU support on Linux
  • new high-throughput segmentation engine
    • automatically discarding objects smaller than user-defined minimal size
    • supporting multiple foreground classes
    • high-speed line-scan segmentation with constant per-frame speed
  • export visualization as PNG images (band or RGB, with labels, pixel decisions or segmented objects)\
  • for Cubert projects, proper wavelength ranges are shown

1.3 8-feb-2019

  • zoom using mouse wheel now follows cursor
  • image rotation using toolbar buttons (and > < keyboard shortcuts)
  • adding images using drag and drop from Windows explorer
  • support for ENVI files with high-endian byte order uint16 (byte order=1)
  • saved projects now preserve settings of the current band, R,G,B lines and allow direct execution of the trained model when project is loaded
  • exported decision images (PNGs) contain meta-data such as class count and class names accessible by standard tools such as tweakpng or Matlab imfinfo command
  • multiple directory selection for Specim FX and Tiff stack project types can be enabled in mira.ini file (using useNativeDirSelection=false). It is not enabled by default because it uses a non-native file dialog.
  • new project type for Senop cameras (formerly Rikola)

1.2 5-dec-2018

  • Added band-selection widget. It is now possible to manually select the wavelengths used for building models
    • Band brushing allows quick selection or clearing of wavelength ranges
    • Exported models start from the full set of wavelengths but use only the selected subset for the model. This allows quick deployment of different models to custom applications assuming full spectrum (single binding with perClass Runtime is needed)
  • Added export of labeled data to perClass Toolbox sddata format
  • Added export of entire data cube in Matlab format as 3D matrix
  • Models results are now repeatable with a new random seed dialog controlling the internal data partitioning process.
  • Separate CPU-only and CPU+GPU builds are available. The CPU-only build is always available by default to avoid issue related to GPU drivers or CUDA versions installed. The CPU+GPU executable is called perClass_Mira_gpu.exe
  • Band index and the wavelength number are now updated on the status bar when dragging the band line in spectral plot
  • Added support for logging of status messages when starting up the application. This is useful to understand some issues with GPU installations and CUDA versions. Logging is off by default, can be switched on in the mira.ini file.
  • Licensing improvements:
    • For activated licenses, there is now an auto-update mechanism that pulls updated license from the activation server when the application starts. The application may be used without on-line connection - it is needed only once in two weeks.
    • Adding support for floating licenses obtained over network from a license server. Floating licenses are now checked out one per session.
  • Fixed wrong file name of previous project used for saving new project with File/Save command
  • Fixed a crash when preview image could not be loaded


1.1 10-sep-2018

  • confusion matrix view showing detailed error information
    • interactive performance optimization in a confusion matrix (slider in right-click context menu or a mouse wheel on confmat entries)
    • confusion matrix shows normalized errors and precisions, absolute sample counts available as well
    • quickly switch to confmat with 'c' key and to spectral plot with 's' key
    • define performance constraints via double click on a confusion matrix field (create/remove constrain)
    • constraints may be adjusted live by Ctrl+mouse wheel
    • constraints may be enabled/disabled to understand available performance options
    • move between available solutions fulfilling all constraints with [ and ] shortcuts
  • preview image from user-adjustable R,G and B bands when spectral cube is loaded
    • this view improves labeling experience for many material types that look similar in a single band but their differences may be highlighted in R,G,B view
  • undo/redo for label painting speeds up labeling
  • image crop providing significant memory use reduction and processing speedups
    • when a project with a cropped image is loaded, the original cube is loaded and cropped
    • original cube may be loaded as a new image and multiple crops from the same cube are supported
  • including perClass Runtime DLL and example of spectral cube processing in C
    • support for both single precision and double precision pipelines (with a new perClass 5.4 Runtime)
    • significant speedup of exported classifiers
    • legacy export option supporting older deployed runtimes <= 5.2
  • a preview rotation command allows one to fix the rotation between preview and spectral cube (e.g. on Specim IQ projects)
  • adding an option to exclude a class from training (right-click in class list or press 'x')
    • this allows one to quickly check the impact of specific classes on the overall solution
  • option to purchase a license online and directly turn the demo into a commercial product
  • dialog to request Skype/Teamviewer session on start up
  • fix for a wrong class index after removing a class
  • fix for clear labels of an image

1.0 13-jul-2018

  • fix for a dock shift bug (when resizing a docked window and clicking on the image, the docked pannel resized back)
  • adding band line dragging by mouse
  • adding max valid line which is automatically set on image load
  • when user is on preview and tries painting, a dialog is shown to load the entire cube (allows quick image changing without load)

1.0 29-may-2018

  • first public release