User Tools

Site Tools


other:dsx:x4d:object_tracking

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
other:dsx:x4d:object_tracking [2025/06/02 18:59] – Cleaned up and added section headers. wikisysopother:dsx:x4d:object_tracking [2025/06/02 19:03] (current) – [Object Tracking Widget] wikisysop
Line 7: Line 7:
 {{:X4DObjectTrackingWidget.png}} {{:X4DObjectTrackingWidget.png}}
  
-  * **Optimize / Move (Keyboard)** These check boxes let you specify which objects are allowed to move during the tracking optimization and moved with keyboard commands. DRRs for all of the objects selected in the //Object Configuration// widget will be generated, but only the objects selected here will be allowed to move. This allows you to perform hierarchical tracking, which can be useful when bones overlap in the X-ray images. For example, you can track the femur, then fix it in its optimized pose while tracking the patella.+  * **Optimize / Move (Keyboard)** These check boxes let you specify which objects are allowed to move during the tracking optimization and moved with keyboard commands. [[other:dsx:dsx_definitions#digitally_reconstructed_radiograph_drr|Digitally reconstructed radiographs]] (DRRsfor all of the objects selected in the //Object Configuration// widget will be generated, but only the objects selected here will be allowed to move. This allows you to perform hierarchical tracking, which can be useful when bones overlap in the X-ray images. For example, you can track the femur, then fix it in its optimized pose while tracking the patella.
   * **Max Iterations** The maximum number of iterations for one pass of the optimization algorithm. For single-frame optimization, this is the number of iterations for one frame (reporting time). For 4D optimization, this is the number of iterations for the first pass. For the second pass of 4D, half of this number is used as the maximum.   * **Max Iterations** The maximum number of iterations for one pass of the optimization algorithm. For single-frame optimization, this is the number of iterations for one frame (reporting time). For 4D optimization, this is the number of iterations for the first pass. For the second pass of 4D, half of this number is used as the maximum.
   * **Translation Ranges** There is a slider for each of the X, Y, and Z translation ranges. Each one controls the amount that the DOF is allowed to change from its initial value during optimization. X, Y, and Z are the axes of the X-ray lab reference frame (defined by the calibration object).   * **Translation Ranges** There is a slider for each of the X, Y, and Z translation ranges. Each one controls the amount that the DOF is allowed to change from its initial value during optimization. X, Y, and Z are the axes of the X-ray lab reference frame (defined by the calibration object).
Line 13: Line 13:
   * **Tracking** The range of reporting times which will be optimized when using the //Solve Range//, //Solve Poses in Range//, or //Solve Range 4D// commands.   * **Tracking** The range of reporting times which will be optimized when using the //Solve Range//, //Solve Poses in Range//, or //Solve Range 4D// commands.
   * **Algorithm** The type of optimization algorithm to use. ASA (adaptive simulated annealing) is currently the only recommended algorithm. SPAN is another type of simulated annealing. LBFGSB is a bounded, least-squares algorithm (local optimizer).   * **Algorithm** The type of optimization algorithm to use. ASA (adaptive simulated annealing) is currently the only recommended algorithm. SPAN is another type of simulated annealing. LBFGSB is a bounded, least-squares algorithm (local optimizer).
-  * **Image Metric** The type of image metric [[#Optimization_Metrics|algorithm]] to use when comparing the processed X-ray images to the processed DRR images. Changing the image metric will automatically update the image metric parameters widget. Currently there are two algorithms implemented: //Pixel Difference// and //Conditional Entropy.//+  * **Image Metric** The type of image metric [[#Optimization_Metrics|algorithm]] to use when comparing the processed X-ray images to the processed DRR images. Changing the image metric will automatically update the image metric parameters widget. Two algorithms are implemented: [[other:dsx:x4d:pixel_difference|Pixel Difference]] and [[other:dsx:x4d:conditional_entropy|Conditional Entropy]].
   * **Solve Range** Starts the frame-by-frame optimization process. The selected objects’ poses are optimized at each reporting time in the tracking range. It starts at the current time and proceeds towards the earliest, then goes back to the current time and proceeds towards the latest. Although each frame (reporting time) is optimized independently of the others, previously optimized frames will modify the pose map, which could affect the starting poses for subsequent frames. Right-clicking gives the option to add the frame-by-frame optimization to the job queue.   * **Solve Range** Starts the frame-by-frame optimization process. The selected objects’ poses are optimized at each reporting time in the tracking range. It starts at the current time and proceeds towards the earliest, then goes back to the current time and proceeds towards the latest. Although each frame (reporting time) is optimized independently of the others, previously optimized frames will modify the pose map, which could affect the starting poses for subsequent frames. Right-clicking gives the option to add the frame-by-frame optimization to the job queue.
   * **Solve Current Frame** Performs an optimization of the current frame. Right-clicking gives the option to add the current frame optimization to the job queue.   * **Solve Current Frame** Performs an optimization of the current frame. Right-clicking gives the option to add the current frame optimization to the job queue.
Line 20: Line 20:
   * **Stop** Stops the currently running optimization.   * **Stop** Stops the currently running optimization.
   * **Evaluate** Evaluates the poses of the currently selected bones using the selected image metric. The results are written to the output window.   * **Evaluate** Evaluates the poses of the currently selected bones using the selected image metric. The results are written to the output window.
-  * **Poses Saved During Tracking** Sometimes the global minimum of the image fitness function is not the correct pose of the bone being tracked. This is often because the X-ray and DRR image processing parameters are not ideal (see //Image Optimization//, below). Other times, it is because the bone in the X-ray images is occluded by soft tissue or other bones, or because of inherent differences between X-ray images and DRRs (image resolution, X-ray scatter, CT thresholding, etc.). To account for these other times, the ASA tracking algorithm attempts to save bone poses that result in local minima of the cost function, while still searching for the global minimum. The idea is that if the correct bone pose is not the global minimum, it is likely to be a local minimum somewhere within the search range. The ASA algorithm thus attempts to save a set of local-minimum poses so that you can revisit them once optimization has finished. The //Max Poses// field specifies how many local minima to save. When the tracking optimization has finished, if the final bone pose is not the correct pose, you can re-apply the saved poses by dragging the slider for that bone. If one of them is correct (or at least better than the final pose), you can use the //Add Current Poses to Maps// command in the //Pose Map// widget to add that pose to the map, thus overwriting the final pose.+  * **Poses Saved During Tracking** Sometimes the global minimum of the image fitness function is not the correct pose of the bone being tracked. This is often because the X-ray and DRR image processing parameters are not ideal (see example below). Other times, it is because the bone in the X-ray images is occluded by soft tissue or other bones, or because of inherent differences between X-ray images and DRRs (image resolution, X-ray scatter, CT thresholding, etc.). To account for these other times, the ASA tracking algorithm attempts to save bone poses that result in local minima of the cost function, while still searching for the global minimum. The idea is that if the correct bone pose is not the global minimum, it is likely to be a local minimum somewhere within the search range. The ASA algorithm thus attempts to save a set of local-minimum poses so that you can revisit them once optimization has finished. The //Max Poses// field specifies how many local minima to save. When the tracking optimization has finished, if the final bone pose is not the correct pose, you can re-apply the saved poses by dragging the slider for that bone. If one of them is correct (or at least better than the final pose), you can use the //Add Current Poses to Maps// command in the //Pose Map// widget to add that pose to the map, thus overwriting the final pose.
  
 ===== Adaptive Simulated Annealing ===== ===== Adaptive Simulated Annealing =====
other/dsx/x4d/object_tracking.1748890760.txt.gz · Last modified: 2025/06/02 18:59 by wikisysop