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.
To simplify pipeline creation, Result Storage is automatically added in the Collapsed view. In most cases, no change is needed and the modified images are used for segmentation but discarded when the pipeline completes. If the user preferes to keep the modified images permanently, the parameters can be changed by expanding the operation by clicking the Expand operation arrow in the title bar.
You can then change both the Voxel storage target and the Segments storage target.
To change the voxels storage, click the Edit... button. This opens a new window where users can select from any of the available options.
To change the Segments storage, select from the available options in the droplist box directly in the Results Storage operation. The options are:
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: