The University of Girona has been developing an iToBoS scanner simulator to show how the scanning process works, both internally (what the underlying algorithms essentially do) and externally (movement of the bed and cameras).
The simulator takes as an input a point cloud representing the patient in question and several modifiable variables related to the mechanical constraints of the scanner, the internal parameters of the cameras and the desired acquisition settings, which are a number of variables that will impact how the camera images will come out. These parameters allow us to test the scanning process across a wide range of configurations and see how the system reacts to the changes, whether it produces a better or worse result with a particular configuration, such as faster execution time, higher body coverage, higher average image resolution, etc. This is also useful when deciding acquisition settings such as the resolution of the output images as there is always a trade-off: a higher resolution means more images will need to be taken to cover the whole body thereby producing a higher scan time. By simulating several scans with different resolutions, we can decide what configurations works better, taking also in account the time in which the patient will need to stay inside the scanner.
The simulator shows every step of the scanning process using visual aids to make every step very clear. It starts by placing the patient in its initial position, simulating the bed movement by moving the patient cloud underneath the arches. It also shows the area that each arch is able to process at a time based on the field of view of the camera (modifiable by editing the camera settings). Once the camera positions are calculated, a colour-coding feature is used to assign the same colour to camera positions and patient cloud zones that use the same camera. This allows the viewer to see how the area being processed is split between different cameras and all the positions where each camera will need to go to. Next, the simulator calculates the fastest trajectory for each camera, and based on the simulation settings for camera movement time and picture-taking time, it will simulate how the scanner works to cover all the current areas being processed. The process is repeated until the whole body of the patient has been imaged. Finally, the simulator flips the patient by placing the point cloud face-down and the whole process is repeated. This is to once again simulate the instance when the doctor will ask the patient to turn himself so that the cameras can perform the same process on the second-half of the body.
During the scanning process lots of data is being stored and it can be visualised at the end. This includes the entire coverage of the patient body split between the 15 cameras that make up the scanner, the positions of all the cameras where a picture was taken, the areas that were not visible by any camera, and the resolution achieved for every single point of the cloud shown on a colour-scale to visualise the best and the worst areas where pictures were taken. This information is very useful because it can be employed to improve the algorithm by showing its faults and to possibly cover difficult areas by re-running the scan with the patient positioned in a different way that is more suited to taking pictures of the low-visible areas at the desired resolution.