This guide describes how the result storage can be configured and the implications for the storage of images and objects in an analysis pipeline.
This guide describes how the result storage can be configured and the implications for the storage of images and objects in an analysis pipeline.
As part of an image analysis pipeline users will often use voxel operations. These operations modify the pixel intensities in some ways. This can be useful for a variety of reasons, both functional (allowing better segmentation) and esthetic (denoising to make the image look better). Since arivis Vision4D has been built to be RAM independent this means that instead of storing the results of such operations in the computer memory until such time as the user chooses to use them, the modified images must be stored on the hard disk and the Result Storage describes how the pipeline should store the images beyond the end of the pipeline, but also how segmented objects are kept relative to those images.
Central to the implementation of voxel processing in Vision4D is the concept of what we call lanes. That is, operations move the input along a lane to be used later and progress further as the pipeline progresses. Each channel has its own lane and those lanes run in parallel in the pipeline, with most operations typically moving one lane along at a time but with the possibility of processing multiple lanes simultaneously. Typically this means that once an image has been modified, it is the modified result that used for later operations that call on that specific channel. As of Vision4D 3.4, it is also possible to use the previous state of a channel rather than just the latest version along that lane and this is described in the Advanced Result Storage options section below. some operations, like channel math, can be used to create new lanes.
Another important point regarding image processing pipelines is that Vision4D will not overwrite the original image data unless the user specifically requests it. Instead, the default behavior is to store channel operation results in temporary documents that are used for the purposes of the pipeline and discarded once the pipeline execution is complete, though the results of the operations can be stored permanently if needed.
As mentioned above the default behavior for this operation is to store the processed images as a temporary document, with the following segment generating operations using these images to generate the objects but storing the resulting objects on the original image. There are two very important aspects to this:
So first, some notes on the temporary documents. The default location for temporary documents can be set in the Analysis preferences.
Note that for optimum performance it best to ensure that the location for temporary documents is on a fast local storage device. Avoid network drives or removable storage. It is also very important that there is ample free space in the selected destination to hold the temporary images. We typically recommend at least 5x as much free space and the size of the file being processed.
With the release of arivis Vision4D 3.4, the way voxel operations store and use the processed results has changed to allow more flexibility in pipeline creation. As mentioned in the introduction, by default, voxel processing operations and segment operations use the last state of the channel being used. This means that, for example, if a pipeline adds a denoising filter followed by a morphology filter, the morphology filter is based on the denoised image and any operation that comes after will use the result of the morphology operation. In 3.4 it is possible to enable advanced pipeline handling operations so that this is not necessarily the case and users can choose to run some operations on previous versions of the channel data, or even on the raw data if required.
The option for advanced channel handling can be found in theAnalysis section of the Preferences. This can be accessed either through the Pipeline Management menu or from the Extras menu.
Once this option has been enabled, added options will be available for channel selection and result storage in the pipeline.
With the extended channel selection enabled, three changes will occur.
First, each voxel operation will get its own output saving option. In the operation menu, users can select the Save Voxel Output... option and choose whether to save the result of this specific operation as a new document if needed. Additionally, by selecting Configure Output Channels, users can choose whether the output will be available as a new channel that can be used independently of the original.
Second, each operation will now have additional options in the channel input selection.
Users can then choose which version of that channel image to use for this operation. This is available for any pipeline operation that uses channel data (voxel operations, segment generation, region growing, etc.).
And finally, the Results Storage operation will also get more options in the manual channel selection.
Using the default options has a few advantages (no unnecessary disk usage, intensity measurements on original data), but has some downsides (no record of the processed images after the analysis is finished unless the user creates screenshots during the pipeline execution). So what options should you use and when?
First, it's important to note that it is best not to store segments in the Result Image Set if you are using the Temporary Document voxel storage option since the objects will be deleted along with the temporary document once the pipeline finishes. Of course, the pipeline can still be used to export some of the segmentation results in one way or another (Excel spreadsheet of segment values, labelled image, or surfaces of the segmented objects), but it makes it very difficult to review the analysis results.
Second, the option to store the segments in the result image set will be unavailable if the voxels are stored as new channels or overwrite the original image.
Finally, storing the segments on the source image set means that any intensity measurement will be unaffected by the image processing unless the voxel storage is a new channel or replaces the original image data. This is important as many voxel operations have a dramatic effect on intensity values.
So the options become: