# ICASSP 24
## Dataset

```
3D Cone-beam tomography
System configuration:
Source position: [ 0., -575., 0.]
Rotation axis position: [0., 0., 0.]
Rotation axis direction: [0., 0., 1.]
Detector position: [ 0., 475., 0.]
Detector direction x: [1., 0., 0.]
Detector direction y: [0., 0., 1.]
Panel configuration:
Number of pixels: [256 256]
Pixel size: [2.34375 2.34375]
Pixel origin: bottom-left
Channel configuration:
Number of channels: 1
Acquisition description:
Number of positions: 360
Angles 0-20 in radians:
[-0. , -0.01745329, -0.03490658, -0.05235988, -0.06981317,
-0.08726646, -0.10471976, -0.12217305, -0.13962634, -0.15707964,
-0.17453292, -0.19198622, -0.20943952, -0.2268928 , -0.2443461 ,
-0.2617994 , -0.27925268, -0.29670596, -0.31415927, -0.33161256]
Distances in units: units distance
```
### Data low dose


### Data clinical dose


## FDK reconstructions



## Least Squares + TV
SPDHG 36 subsets + implicit TV (warmstart 5 it, lower=None, upper=None)








## Least Squares + TV + Zero Lower bound
In the file: [https://github.com/TomographicImaging/CIL-ICASSP24/blob/main/fista_and_pdhg_tv_and_tik_testing_2d]
Regularisation parameter search: 
(Probably could increase the number of iterations)
Results: 
## Least Squares +Tik
In the file: [https://github.com/TomographicImaging/CIL-ICASSP24/blob/main/fista_and_pdhg_tv_and_tik_testing_2d]
Regularisation parameter search:
Results: 
## Least Squares + TV + Zero Lower bound + Varying Upperbound
Upper bound fitted to the FDK reconstruction.
Upper bound set to zero outside the ring seen in the FDK reconstruction and to the max of the ground truth reconstruction within the ring:

parameter sweep:
Results:
Not quite as good as the Least Squares + TV + Lower bound results - I think because in the ground truth there is not zero values in the outer ring.
Thus the error is non-zero in this region

## Least Squares + TV + Varying Lower bound + Varying Upperbound
Lower bound is set to be zero in the inner circle and the mean background value of the ground truth in the outer ring: 
Upper bound is set to be the max ground truth value in the inner ring and the mean background value of the ground truth in the inner ring: 
Parameter sweep: 
This gives better results: 
Running 2000 iterations of PDHG but potentially still not converged...

## Least Squares + Wavelet + Varying Lower bound + Varying Upperbound
Lower bound and upperbound as adbove.
Parameter sweep: 
Running 2500 iterations of PDHG: 
perhaps still not converged:

## Least Squares + TV+ Wavelet + Varying Lower bound + Varying Upperbound
Some good results which could be improved ( it is time consuming to optimise over a 2d parameter space for regularisation parameters and currently only running 750 iterations of PDHG and definitely not converged)



Some interesting edge effects - not sure how to deal with that!
# To do list
- Check the variation between training scans e.g. on min, max, background etc
- Total Generalised Variation - i think Edo has taken a look
- Looking at the 3D data - might take a while to run!
- Try a slightly smaller or larger ring
# Calculating the MSE just in the inner ring (masking out the outer mess)
## FISTA TV



## PDHG wavelets



## PDHG wavelet TV

## PDHG TGV


