Estimating 3D motion from 2D projections using an optimization method

25 views (last 30 days)
Hi there,
I am currently working on a MATLAB code for my homework, which is detailed in the following DOI.
Article name: A monoscopic method for real-time tumour tracking using combined occasional x-ray imaging and continuous respiratory monitoring
DOI: 10.1088/0031-9155/53/11/006
As a beginner with Matlab, I initially sought help from ChatGPT to develop my code. However, I believe there may be some issues, and I need assistance.
Here are some quick guidelines to clarify my approach:
Summary of datasets:
1. The "Datasets" refer to the original datasets, where columns 12, 13, and 14 represent the X, Y, and Z directions, respectively.
2. The "Estimate" datasets are the estimated values of the X, Y, and Z directions obtained from different code.
3. The "2D_Projection" represents the projections of the "Datasets" using the following equations.
SAD = 1000; % source-axis distance (mm)
SDD = 1500; % source-detector distance (mm)
f(θ)= (SAD-[X*Sin (θ)+Z*Cos⁡(θ)])/SDD
% X_P= (X*Cos⁡[(θ)-Z*Sin⁡(θ)])/f(θ)
% Y_P= Y/f(θ)
4. The "Ext" represents the converted columns 2-10 in the "Datasets" using Principal Component Analysis and a Savitzky-Golay filter (order = 3, framelen = 71).
5. The "Time" is the first column in the "Datasets".
% Monoscopic Estimation:
The first 60 seconds (1500 datasets) are used to create the model with prior_3D, R_signals, and initial_2D.
Note 1: The gantry angle of 30° and the couch angle of 0° affect the output results, which they should not.
Note 2: The mECM_update_interval and ICM_update_interval are both set to 30 seconds for updates. Changing these intervals to values such as 15-15, 15-45, or 30-60 will not affect the output results.
Note 3: The `Update_Time` parameter, located on line 114, controls the model update time. Below are the time intervals corresponding to each update rate:
60 ===> 3.75 seconds
45 ===> 5 seconds
30 ===> 7.5 seconds
15 ===> 15 seconds
10 ===> 30 seconds
5 ===> 60 seconds
The issue is that during the IMRT simulation, both the gantry angle and the couch angle need to be fixed. However, changing these two angles (line 72 in code1.m) affects the output results, which it should not.
Additionally, how can I improve the accuracy of the estimates by using a better optimization method?
Any assistance or alternative approaches to resolve this issue would be greatly appreciated.
Thank in advance!
  1 Comment
payam samadi
payam samadi on 22 Sep 2025 at 5:55
Please note that after constructing the model using 60 seconds of data, the monoscopic model will utilize only 2D projection data to estimate the 3D tumor position. Updating the model at specified intervals, such as every 30--->7.5 seconds, will help reduce estimation errors.

Sign in to comment.

Answers (0)

Categories

Find more on QSP, PKPD, and Systems Biology in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!