Search This Blog

Wednesday, February 26, 2020

Build 321 is released.

1. Speed optimization of Dot Vector Product function (since it was 50% of total FLEXR time).
It is used widely throughout FVX including BiCal.
2. FLEXR :Guassian RBF matrix construction (fully dominates time):  separate the bottleneck into
a single MatrixLineConvolution and minor optimization of it
3.  GRBF deformable field:  optimization matrix calculation (at least 10000x10000 - 30000x30000). Noticed the sparsity of the underlying calculation and devised a variant based on skipping negligible values (1e-16) with x15 memory and speed improvement.
4. GRBF final field calculation:  separable  exponential term exp(-hypot3(x,y,z)) it was possible to pre-calculate the tables once for each axis for x4 speedup.
5. FLEXR-3D: When the Source Mask is supplied, in final Reslicing clip Source using Source Mask with VOIDVOX. This helped to uncover some deficiencies in COPD Lund Registration.
6. FLEXR: re-implemented new logic to handle cases with\without the Source Mask. New approach to ROI padding = {Displacement Padding+MeasurePadding}.
7. FLEXR: Removed "Inflate ROI" parameter from the dialog and internal processing.
8. FLEXR GRBF: Substantially decreased memory requirements for optimization matrices.
9. FLEXR GRBF: fixed the defect when the lower part of the symmetric matrix was not constructed.
10. FLEXR:  Edge Keypoint generation: added Nlimit parameter (~10,000 for neck) to select strongest keypoints. This allows specify grid of any density.  There was no substantail improvement in the Neck MI, perhaps sparse field regularity is critical.
11. FLEXR dialog box:  implemented Combo (dropdown) box for selecting Transform Type.
12.FLEXR: Implemented NW  Sparse-to-Dense interpolation scheme (from EpicFlow) paper. It is very fast and with good (not the top) accuracy.
13. FLEXR dialog:  removed option for the Gradient Norm. Now it is done automatically.
14. FLEXR-MC:  Output volume is now displayed with the same Window Center\Width as the original
15. FLEXR: Implemented option to display  Keypoints after the completion.  This is a new checkbox option in FLEXR dialog box.
16.  FLEXR: MST (minimal span tree) is calculated once for both Forward and Backward (symmetry) run.
17. FLEXR:MST: calculation now take next to 0 memory.
18. FLEXR: Dialog: added option for the Regular Keypoint Grid.
19. FLEXR (incl Dialog):  Added  new Similarity Measure = Signal Difference.
20: FLEXR: Implemented Mutual Info\MI-NORM local similarity measures and corresponding Dialog items.
21. File>Open Image (multiple files): corrected various small defects, including saving the file name instead of path to FVX config file.
22. FLEXR: further optimized speed of NW transform and Local Mutual Info.

Sunday, February 16, 2020

Build 320 is released.

1. FLEXR-MC: dialog\Test defect fix.
2. FLEXR-MC:   GRBF transform progress message defect fix.
3. MainMenu>Measurements>Two Volume RMSD : corrected so in case of 4D volume the Current Timepoints are compared.
4. TPS transofrm: fixed a small defect in optimization matrix construction.
5. GRBF tranfrorm: fixed defect in the final field interpolation.
6. Main Menu>Segmentation>Feature Points : fixed crash defect when called on a selected timepoint of the 4D volume
7. Main Menu>Measurement>RMSD : fixed crash defect when a single layer and present, outputs warning "2 non-roi operands are required".
8. FLEXR-MC (motion correction) dialog box:  Added a "Serial" algorithm option
9. FLEXR-MC dialog box:  added option to Correct Gross Motion only, when user specifies only Gross Motion timepoints and deformation field is re-used for in-between timepoints.
10. FLEXR-MC dialog: Added the the Ensemble 4D dynamic algorithm option (Averages all registered frames to make new target at each step).
11.  FLeXR-MC dialog : Added Use SVD option.
12. Corrected *.TIME\MIDAS load to accept the {PT,PET} as modality (only PT earlier)
13. NIFTI\TIME file load: removed reliance on the Byte Per Voxel tag in the TIME header. This was leading to the confusion, such as float-32.  Additional feature the NIFTI files of different byte type can be loaded as 4D.
14. Main Menu>4D Processing:  added functions to measure Cross Frame Mutual Info over the ROI for 4D volume (both MI and MINORM). This is a helper function for evaluating the quality of Motion Correction
15. Volume>Crop specified dynamic points : corrected so the final cropped redraw is done for all layers.

Monday, February 3, 2020

Build 319 is released.

1. Re-ran the Neck registration example using new Tomasi feature detector.
Comparison of the largest displacement between t1 and t38 shows good registration (red over green).
2

2. Performance optimization in "Voxel Context" similarity measure.
3. Change the Parallel design within the "Voxel Context" similarity measure to reduce the memory bandwidth.
4. Implemented ABT subtest for FLEXR Neck Motion correction.
5. Optimized the VolumeConvolute3D( PDOUBLE ) function for speed. Checked presence of VOID voxels and simplified calculation without them.
6. FLEXRMC dialog box: removed irrelevant Similarity Measure options, leaving only {VoxelContext, Xcorr, URAL}
7. NIFTI Save:  implemented cal_min\cal_max fields save (Window Center\Width), so it can be
properly opened by other software (f.e. Mango).
8. Fixed the defect so the 3D Crosshair Cursor only getting synchronized when the UI is in the "Select Mode". Otherwise it was repositioning when LMB click during {Zoom,WindowLevel,etc}
9. Fixed precision problems with 3D Crosshair cursor.
10. UI Interface: introduced new items  under Main Menu>Registration :
       a) FLEXR-MC (motion correction)
       b) FLEXR-3D (general deformable registration).
11. NainMenu>Workflows: introduced the CT lung workflow item. This only include the FLEXR3D item with the default parameters suitable for COPD registration project.
12. Layer Control dialog is fully resizable now by pulling any of the 4 corners.
13. MainMenu>File>Open RAW Image:  any number of files can be selected for simultaneous load.
14. MainMenu>File>Open  FireVoxel document : any number of files can be selected for simultaneous load.
15. When the last window of the current document is about to close, the Save option is offered.
16. Implemented ROI Multi-Layer averaging operation : under Main Menu>Roi>Average ROI Layers