Data
Acquisition
- Acquisition type: the acquisition type to use, this should be the camera that was used for recording the data, or one of the File Reader options.
- Acquisition plugin: the plugin to use, often only one will be available, but for instance, a MV.C NIR via eBUS may have two plugins (6.1 and 6.3).
- Automatically initialize acquisition: if this is checked, then acquisition will be initialized once the project is loaded.
- Device index: this can be set to the index of the device as shown in the initialize dialog to automatically select it. If it is set to 0, then the dialog will always be shown.
- Automatically load dark reference: attempt to load an existing the dark reference, which can be either of:
- From project: load the dark reference from an image in the project, starting from the last image in the project.
- From system: load the dark reference from the system.
- Camera settings
- From project: use the exposure time and frame rate that are stored in the project.
- Exposure time: sets the exposure time to use for any acquisition or shows the exposure time set by the project.
- Frame rate: sets the frame rate to use for any acquisition or shows the frame rate set by the project.
System references
If it is configured that the dark reference should be loaded from the system, then perClass Mira will look for a dark reference file that matches the current camera and its configuration, if it does not exist, then it will directly be shown as an error. The first system dark reference for a configuration can be taken by clicking on Capture in the dark reference box in the Model setup tab and then clicking Yes in the popup that is shown. To update an existing system dark reference, the same Capture button should be clicked, but this time while holding the Ctrl+Shift keys, afterwards it must still be confirmed by clicking Yes in the popup.
Collection
- Wait for foreground: delay data collection until a minimum amount of foreground pixels on a line were detected.
- At least ... pixels on a line: the minimum amount of pixels required on a line.
- Keep ... lines before: the number of lines to keep before the line where data collection started.
- Segmentation grid: whether to force segmentation of objects in a grid, useful for continuous data streams. Note that within a grid cell, normal segmentation rules are applied.
- Width: width of a grid cell.
- Height: height of a grid cell.
- Capture images: whether to capture the output images, checking this will also change the view from belt mode to waterfall mode.
- Every ... frames: after how many frames an image should be captured.
- Allow annotations: when the user is allowed to make annotations.
- On paused sessions: allow annotations when a session is paused, or when a session is stopped and waiting for save or discard.
- On captured images: allow annotations on captured images while acquisition is running.
Saving

- Output directory: the root directory where output data (images, CSV files, session databases) should be stored.
- Store output in a session specific subdirectory: whether the data should be stored in a separate subdirectory for each session.
- Session info: where to save session data (name, user, type, project, start and end time, processed frames, and custom fields) to.
- Save to database: save it to the tables sessions and fields.
- Save to CSV: save it to a session.csv file.
- Classification results: where to save classification data (for each class: the foreground status, pixel counts, and percentages) to.
- Save to database: save it to the table classes.
- Save to CSV: save it to a decisions.csv file.
- Segmentation results: where to save segmentation data (for each object: the decision, bounding box, and size) to.
- Save to database: save it to the table objects.
- Save to CSV: save it to an objects.csv file.
- Regression results: where to save regression data (for each variable: the name, for each object: the regression value) to.
- Save to database: save it to the tables variables and regression.
- Save to CSV: save it as extra columns to the objects.csv file.
- Save images: Which images to save when the session is saved.
- RGB: save the (fake) RGB image, only when the RGB image is shown.
- Raw / Corrected: save the single band image.
- Decisions: save the per pixel decision image.
- Objects: save the segmentation output image, the object colors depend on the configuration.
- Regression: save the per pixel regression image.
- Annotations: where to save annotation data (the region and text) to.
- Save to database: save it to the tables cubes and annotations.
- Save to CSV: save it to an annotations.csv file.
- Save cubes: save the actual data cubes of the annotations (only available when not capturing images), saved cubes will always be the full width.
- Single cube for all annotations: save a single cube, from the minimum Y until the maximum Y of all the annotations.
- One cube for each annotation: save a single cube for each annotation.
Fields
Extra fields to show below the session name input. Pressing Add will add a new field, which can be directly given a name. The currently selected field can be removed by pressing Remove. The name and (default) value of the field can be modified by double click on it, the checkboxes have the following meaning:
- M (Machine-specific): marks the field as being machine-specific, which also changes the meaning of the required and clear checkboxes.
- L (Locked): makes the field input read-only and sets the field content to the text defined as Value, always enabled for machine-specific fields.
- R (Required): marks the field as required, meaning that a session can not be started or machine-specific fields can not be saved if it is empty, always disabled for locked fields (except when machine-specific).
- C (Clear): clears the field input after the session is finished, or when the machine-specific field popup is shown, if a Value is defined, then it will be reset to that, always disabled for locked fields (except when machine-specific).
- U (Unique): requires that the field value is unique within the database, a session can not be started if it is not, always disabled for locked fields.
In addition to the field-specific unique option, there is also the Require unique combination option. This option checks if there have been no previous session where each field had the same value. This way it is possible to, for instance, have delivery numbers that need to be unique within the same year, but can repeat the next year.
TIP: The field value can be used as part of the session name by referring to it using $(<name>).
Machine-specific fields
In case any fields are marked as machine-specific, then perClass Mira will start keeping track of the project file with a MD5 checksum. When loading a project that either does not have a stored MD5 checksum (like when deploying to a new system), or has a different MD5 checksum (like when updating an existing project), then perClass Mira will show a popup to update the machine-specific fields. This makes it possible to deploy the same project file to different machines and requiring that the user does update the machine-specific fields for that machine.

In the popup, each field need to either be updated or confirmed by clicking on the checkbox next to the input, once all checkboxes are checked, then Save can be clicked, which will save the project with the updated values. After saving, they can not be modified by operators until there is a MD5 mismatch, developers can still update them by setting the Value.
Processing
The processing options will usually be controlled by other options, hovering over an option will show which option(s) control it.

- Correction: whether correction is enabled.
- Classification: whether classification is enabled.
- Segmentation: whether segmentation is enabled.
- Regression: whether regression is enabled.


