other:dsx:x4d:object_tracking
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
other:dsx:x4d:object_tracking [2024/07/17 15:21] – sgranger | other:dsx:x4d:object_tracking [2025/06/02 19:03] (current) – [Object Tracking Widget] wikisysop | ||
---|---|---|---|
Line 1: | Line 1: | ||
====== Object Tracking ====== | ====== Object Tracking ====== | ||
+ | X4D's Object Tracking widget allows users to customize how the application tracks objects. | ||
+ | ===== Object Tracking Widget ===== | ||
- | * **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// | + | {{: |
+ | * **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: | ||
* **Max Iterations** The maximum number of iterations for one pass of the optimization algorithm. For single-frame optimization, | * **Max Iterations** The maximum number of iterations for one pass of the optimization algorithm. For single-frame optimization, | ||
- | |||
* **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). | ||
- | |||
* **Rotation Ranges** There is a slider for each of the X, Y, and Z rotation 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). | * **Rotation Ranges** There is a slider for each of the X, Y, and Z rotation 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). | ||
- | |||
- | {{: | ||
- | Object Tracking Widget | ||
- | |||
- | |||
* **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). | ||
- | + | | |
- | | + | |
* **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. | ||
- | |||
* **Solve Poses in Range** Performs an optimization of each reporting time in the tracking range that already has a pose specified in the pose map. Right-clicking gives the option to add the pose optimization to the job queue. | * **Solve Poses in Range** Performs an optimization of each reporting time in the tracking range that already has a pose specified in the pose map. Right-clicking gives the option to add the pose optimization to the job queue. | ||
- | |||
* **Solve Range 4D** Starts the 4D optimization process. The entire tracking range is optimized at the same time. Right-clicking gives the option to add the 4D optimization to the job queue. | * **Solve Range 4D** Starts the 4D optimization process. The entire tracking range is optimized at the same time. Right-clicking gives the option to add the 4D optimization to the job queue. | ||
- | |||
* **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. | ||
+ | * **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, | ||
- | * **Evaluate** Evaluates | + | ===== Adaptive Simulated Annealing ===== |
+ | |||
+ | When the ASA algorithm evaluates a particular bone pose during optimization, | ||
+ | |||
+ | ==== Example ==== | ||
+ | |||
+ | Consider | ||
- | | + | |
+ | - The pose with the lowest value is marked as the global minimum | ||
+ | - The sum of the squares of the differences in the 6 DOF values is computed | ||
+ | - Then the next pose in the sorted list is checked. If it is not within | ||
+ | | ||
- | **Note**: | + | **Note**: The units for the DOF translations are model units (usually mm), and the units for the rotations are degrees. |
other/dsx/x4d/object_tracking.1721229711.txt.gz · Last modified: 2024/07/17 15:21 by sgranger