From amaletpl7 at gmail.com Tue May 22 07:36:55 2018 From: amaletpl7 at gmail.com (Albert M) Date: Tue, 22 May 2018 13:36:55 +0200 Subject: [Rtk-users] SART GPU usage is like 2~3% Message-ID: Hi, I'm using GPU (NVIDIA TITAN Xp) to reconstruct tomosynthesis images by SART method, i've no error and apparently results are fine. In addition GPU reconstruction it's 2x faster than SART CPU (normal) reconstruction (200sec vs 400sec) But GPU usage is like 2~3%. Why is so low? How I can increase this? PD: I'm using cuda at SART setting SetBackProjectionFilter and SetForwardProjectionFilter at 2. Can someone help me? Thank you! -------------- next part -------------- An HTML attachment was scrubbed... URL: From cyril.mory at creatis.insa-lyon.fr Tue May 22 08:29:30 2018 From: cyril.mory at creatis.insa-lyon.fr (Cyril Mory) Date: Tue, 22 May 2018 14:29:30 +0200 Subject: [Rtk-users] SART GPU usage is like 2~3% In-Reply-To: References: Message-ID: Hi Albert, In SART, many operations are performed on CPU even if the forward and back projections are the CUDA ones. The diagram in the SARTConeBeamReconstructionFilter documentation (http://www.openrtk.org/Doxygen/classrtk_1_1SARTConeBeamReconstructionFilter.html) shows all the sub-filters SART uses. Among these, some can be replaced by CUDA filters (all the sources, and the displaced detector), and some currently cannot (Extract, Subtract, Multiply, DivideOrZeroOut, Add, and RayBoxIntersection) because we have not implemented these operations on GPU yet. If you are interested in helping do this, let me know, and I'll guide you through the code to get you started. Otherwise, you may want to try rtkconjugategradient, which is fully implemented in CUDA, instead of rtksart. It will require more iterations (try 20 at first) but is more stable, and may end up taking the same time. Best, Cyril On 22/05/2018 13:36, Albert M wrote: > Hi, > > I'm using GPU (NVIDIA TITAN Xp) to reconstruct tomosynthesis images by > SART method, i've no error and apparently results are fine. > In addition GPU reconstruction it's 2x faster than SART CPU (normal) > reconstruction (200sec vs 400sec) > > But GPU usage is like 2~3%. Why is so low? How I can increase this? > > PD: I'm using cuda at SART setting SetBackProjectionFilter and > SetForwardProjectionFilter at 2. > > > Can someone help me? > > Thank you! > > > _______________________________________________ > Rtk-users mailing list > Rtk-users at public.kitware.com > https://public.kitware.com/mailman/listinfo/rtk-users -------------- next part -------------- An HTML attachment was scrubbed... URL: From louis.godon at student.uliege.be Fri May 25 10:46:22 2018 From: louis.godon at student.uliege.be (louis.godon at student.uliege.be) Date: Fri, 25 May 2018 16:46:22 +0200 (CEST) Subject: [Rtk-users] rtkfdk and rtksart application input projection type and voxel value range Message-ID: <1841105716.22176905.1527259582751.JavaMail.zimbra@student.uliege.be> Hi, I am currently using RTK for my Electrician Master's thesis and I am finding some difficulties... We observed that reconstructed values range using fdk algorithm and sart are different. How can this range be interpreted depending on the algortihm used in order to compare the image quality between both algorithms? Furthermore, some voxels have negative value, is it possible to obtain negative values with rtkfdk or rtksart application? does it make sens and how can that be? And finally, last question, is there a specific projection file type (.tif, .mha, ...) and/or pixel type (unsigned short, float, ...) to use when using rtkfdk or rtksart? Here are some informations that may be useful: Object scanned: Rock sample and homogeneous polymer cylinder Projection are: -type: .tif (unsigned short) or .mha (float) -projection set: 360 seperated (.tif) files or 360 seperated (.mha) files or one single (.mha) file Reconstructed image: -type: .mha (float) Algorithm used: -rtkfdk (without ramp filter) -rtksart (3~5 iterations, 1 projections processed between each update of the reconstructed volume (1 for SART)) Here is a link to download some projection and reconstructed image: https://www.dropbox.com/sh/sgrzrylphe4dar2/AAAFW3hJYzyZGbPevf_CYteka?dl=0 Thanks in advance for your help or advices. Best regards, Louis From cyril.mory at creatis.insa-lyon.fr Fri May 25 11:43:41 2018 From: cyril.mory at creatis.insa-lyon.fr (Cyril Mory) Date: Fri, 25 May 2018 17:43:41 +0200 Subject: [Rtk-users] rtkfdk and rtksart application input projection type and voxel value range In-Reply-To: <1841105716.22176905.1527259582751.JavaMail.zimbra@student.uliege.be> References: <1841105716.22176905.1527259582751.JavaMail.zimbra@student.uliege.be> Message-ID: Hi Louis, You first need to get the projections right. RTK has a filter "rtkProjectionsReader" to read projections exported from a scanner, and apply all the necessary processing, including log-transform, to obtain line-integrals. The reconstruction methods (rtkfdk, rtksart, ...) all use line integrals as inputs, but they embed an rtkProjectionsReader, which can do the conversion at runtime. However, if rtkProjectionsReader does not recognize your data and applies the wrong processing, the reconstruction methods will return garbage. So the safest way is to first call the rtkProjectionsReader (using the command line tool rtkprojections), look at its output, and make sure it looks like line integrals: it must have near-zero values in air, and higher values in dense objects. Only then can you start reconstructing. The diagram available here http://www.openrtk.org/Doxygen/classrtk_1_1ProjectionsReader.html shows which processing is applied to which kind of data. The files in .mha format are assumed to be line integrals already, and bypass all processing, so it is probably not the format you should use. I do not know which way .tif are processed, especially unsigned short .tif, but I've had a look at your data, and it looks as if no log-transform is applied on your projections. The borders of the projections, where probably the rays have only gone through air, have high values. Therefore, you're reconstructing a cylinder, as large as your projections, which probably isn't what you want. Are you getting these images from a custom device built at the university, or from a commercially available machine ? Do you have an acquisition where the object is clearly visible in the projections ? If so, can you send over one of these projections ? Hope that helps, Cyril On 25/05/2018 16:46, louis.godon at student.uliege.be wrote: > Hi, > > I am currently using RTK for my Electrician Master's thesis and I am finding some difficulties... > > We observed that reconstructed values range using fdk algorithm and sart are different. How can this range be interpreted depending on the algortihm used in order to compare the image quality between both algorithms? > > Furthermore, some voxels have negative value, is it possible to obtain negative values with rtkfdk or rtksart application? does it make sens and how can that be? > > And finally, last question, is there a specific projection file type (.tif, .mha, ...) and/or pixel type (unsigned short, float, ...) to use when using rtkfdk or rtksart? > > Here are some informations that may be useful: > Object scanned: > Rock sample and homogeneous polymer cylinder > Projection are: > -type: .tif (unsigned short) or .mha (float) > -projection set: 360 seperated (.tif) files or 360 seperated (.mha) files or one single (.mha) file > > Reconstructed image: > -type: .mha (float) > > Algorithm used: > -rtkfdk (without ramp filter) > -rtksart (3~5 iterations, 1 projections processed between each update of the reconstructed volume (1 for SART)) > > Here is a link to download some projection and reconstructed image: > https://www.dropbox.com/sh/sgrzrylphe4dar2/AAAFW3hJYzyZGbPevf_CYteka?dl=0 > > Thanks in advance for your help or advices. > > Best regards, > > Louis > _______________________________________________ > Rtk-users mailing list > Rtk-users at public.kitware.com > https://public.kitware.com/mailman/listinfo/rtk-users From louis.godon at student.uliege.be Fri May 25 16:37:05 2018 From: louis.godon at student.uliege.be (louis.godon at student.uliege.be) Date: Fri, 25 May 2018 22:37:05 +0200 (CEST) Subject: [Rtk-users] rtkfdk and rtksart application input projection type and voxel value range In-Reply-To: References: <1841105716.22176905.1527259582751.JavaMail.zimbra@student.uliege.be> Message-ID: <503388189.22508470.1527280625394.JavaMail.zimbra@student.uliege.be> Hi Cyril, Thank you for your fast response. The images are from a custom device in development by the X-RIS company where I am currently doing an internship in relation with my master thesis. However, due to the scanner design (collimator and small field of view) and the application, the type of object scanned always occupies the entire projection. One aspect of the application is to reconstruct object that nearly fit the scanner field of view and therefore I do not have other projections to show you except other ones of this kind. Indeed, we did not apply pre-processing to the projection to obtain line-integrals. I will try this solution. Thank you very much for your help, Best regards, Louis ----- Mail original ----- De: "Cyril Mory" ?: rtk-users at public.kitware.com Envoy?: Vendredi 25 Mai 2018 17:43:41 Objet: Re: [Rtk-users] rtkfdk and rtksart application input projection type and voxel value range Hi Louis, You first need to get the projections right. RTK has a filter "rtkProjectionsReader" to read projections exported from a scanner, and apply all the necessary processing, including log-transform, to obtain line-integrals. The reconstruction methods (rtkfdk, rtksart, ...) all use line integrals as inputs, but they embed an rtkProjectionsReader, which can do the conversion at runtime. However, if rtkProjectionsReader does not recognize your data and applies the wrong processing, the reconstruction methods will return garbage. So the safest way is to first call the rtkProjectionsReader (using the command line tool rtkprojections), look at its output, and make sure it looks like line integrals: it must have near-zero values in air, and higher values in dense objects. Only then can you start reconstructing. The diagram available here http://www.openrtk.org/Doxygen/classrtk_1_1ProjectionsReader.html shows which processing is applied to which kind of data. The files in .mha format are assumed to be line integrals already, and bypass all processing, so it is probably not the format you should use. I do not know which way .tif are processed, especially unsigned short .tif, but I've had a look at your data, and it looks as if no log-transform is applied on your projections. The borders of the projections, where probably the rays have only gone through air, have high values. Therefore, you're reconstructing a cylinder, as large as your projections, which probably isn't what you want. Are you getting these images from a custom device built at the university, or from a commercially available machine ? Do you have an acquisition where the object is clearly visible in the projections ? If so, can you send over one of these projections ? Hope that helps, Cyril On 25/05/2018 16:46, louis.godon at student.uliege.be wrote: > Hi, > > I am currently using RTK for my Electrician Master's thesis and I am finding some difficulties... > > We observed that reconstructed values range using fdk algorithm and sart are different. How can this range be interpreted depending on the algortihm used in order to compare the image quality between both algorithms? > > Furthermore, some voxels have negative value, is it possible to obtain negative values with rtkfdk or rtksart application? does it make sens and how can that be? > > And finally, last question, is there a specific projection file type (.tif, .mha, ...) and/or pixel type (unsigned short, float, ...) to use when using rtkfdk or rtksart? > > Here are some informations that may be useful: > Object scanned: > Rock sample and homogeneous polymer cylinder > Projection are: > -type: .tif (unsigned short) or .mha (float) > -projection set: 360 seperated (.tif) files or 360 seperated (.mha) files or one single (.mha) file > > Reconstructed image: > -type: .mha (float) > > Algorithm used: > -rtkfdk (without ramp filter) > -rtksart (3~5 iterations, 1 projections processed between each update of the reconstructed volume (1 for SART)) > > Here is a link to download some projection and reconstructed image: > https://www.dropbox.com/sh/sgrzrylphe4dar2/AAAFW3hJYzyZGbPevf_CYteka?dl=0 > > Thanks in advance for your help or advices. > > Best regards, > > Louis > _______________________________________________ > Rtk-users mailing list > Rtk-users at public.kitware.com > https://public.kitware.com/mailman/listinfo/rtk-users _______________________________________________ Rtk-users mailing list Rtk-users at public.kitware.com https://public.kitware.com/mailman/listinfo/rtk-users From wuchao04 at gmail.com Mon May 28 10:51:32 2018 From: wuchao04 at gmail.com (Chao Wu) Date: Mon, 28 May 2018 16:51:32 +0200 Subject: [Rtk-users] rtkfdk and rtksart application input projection type and voxel value range In-Reply-To: <503388189.22508470.1527280625394.JavaMail.zimbra@student.uliege.be> References: <1841105716.22176905.1527259582751.JavaMail.zimbra@student.uliege.be> <503388189.22508470.1527280625394.JavaMail.zimbra@student.uliege.be> Message-ID: Hi Louis, For projections in unsigned short TIF format, by default the applications expect intensities as pixel values, and the embedded rtk::LUTbasedVariableI0RawToAttenuationImageFilter will perform the log transform to convert intensities to line itergral of attenuation. However an I0 value (intensity of ray passing through air only) must be specified for the log transform if this value cannot be well determined by the other embedded filter rtk::I0EstimationProjectionFilter. This is likely to be the case since you seem to have (nearly) an interior problem in your geometry. Regards, Chao 2018-05-25 22:37 GMT+02:00 : > Hi Cyril, > > Thank you for your fast response. > > The images are from a custom device in development by the X-RIS company > where I am currently doing an > internship in relation with my master thesis. However, due to the scanner > design (collimator and small field > of view) and the application, the type of object scanned always occupies > the entire projection. One aspect of > the application is to reconstruct object that nearly fit the scanner field > of view and therefore I do not have > other projections to show you except other ones of this kind. > > Indeed, we did not apply pre-processing to the projection to obtain > line-integrals. I will try this > solution. > > Thank you very much for your help, > Best regards, > > Louis > > ----- Mail original ----- > De: "Cyril Mory" > ?: rtk-users at public.kitware.com > Envoy?: Vendredi 25 Mai 2018 17:43:41 > Objet: Re: [Rtk-users] rtkfdk and rtksart application input projection > type and voxel value range > > Hi Louis, > > You first need to get the projections right. RTK has a filter > "rtkProjectionsReader" to read projections exported from a scanner, and > apply all the necessary processing, including log-transform, to obtain > line-integrals. The reconstruction methods (rtkfdk, rtksart, ...) all > use line integrals as inputs, but they embed an rtkProjectionsReader, > which can do the conversion at runtime. However, if rtkProjectionsReader > does not recognize your data and applies the wrong processing, the > reconstruction methods will return garbage. So the safest way is to > first call the rtkProjectionsReader (using the command line tool > rtkprojections), look at its output, and make sure it looks like line > integrals: it must have near-zero values in air, and higher values in > dense objects. Only then can you start reconstructing. > > The diagram available here > http://www.openrtk.org/Doxygen/classrtk_1_1ProjectionsReader.html shows > which processing is applied to which kind of data. The files in .mha > format are assumed to be line integrals already, and bypass all > processing, so it is probably not the format you should use. I do not > know which way .tif are processed, especially unsigned short .tif, but > I've had a look at your data, and it looks as if no log-transform is > applied on your projections. The borders of the projections, where > probably the rays have only gone through air, have high values. > Therefore, you're reconstructing a cylinder, as large as your > projections, which probably isn't what you want. > > Are you getting these images from a custom device built at the > university, or from a commercially available machine ? > > Do you have an acquisition where the object is clearly visible in the > projections ? If so, can you send over one of these projections ? > > Hope that helps, > > Cyril > > > On 25/05/2018 16:46, louis.godon at student.uliege.be wrote: > > Hi, > > > > I am currently using RTK for my Electrician Master's thesis and I am > finding some difficulties... > > > > We observed that reconstructed values range using fdk algorithm and sart > are different. How can this range be interpreted depending on the algortihm > used in order to compare the image quality between both algorithms? > > > > Furthermore, some voxels have negative value, is it possible to obtain > negative values with rtkfdk or rtksart application? does it make sens and > how can that be? > > > > And finally, last question, is there a specific projection file type > (.tif, .mha, ...) and/or pixel type (unsigned short, float, ...) to use > when using rtkfdk or rtksart? > > > > Here are some informations that may be useful: > > Object scanned: > > Rock sample and homogeneous polymer cylinder > > Projection are: > > -type: .tif (unsigned short) or .mha (float) > > -projection set: 360 seperated (.tif) files or 360 seperated (.mha) > files or one single (.mha) file > > > > Reconstructed image: > > -type: .mha (float) > > > > Algorithm used: > > -rtkfdk (without ramp filter) > > -rtksart (3~5 iterations, 1 projections processed between each update > of the reconstructed volume (1 for SART)) > > > > Here is a link to download some projection and reconstructed image: > > https://www.dropbox.com/sh/sgrzrylphe4dar2/ > AAAFW3hJYzyZGbPevf_CYteka?dl=0 > > > > Thanks in advance for your help or advices. > > > > Best regards, > > > > Louis > > _______________________________________________ > > Rtk-users mailing list > > Rtk-users at public.kitware.com > > https://public.kitware.com/mailman/listinfo/rtk-users > > _______________________________________________ > Rtk-users mailing list > Rtk-users at public.kitware.com > https://public.kitware.com/mailman/listinfo/rtk-users > _______________________________________________ > Rtk-users mailing list > Rtk-users at public.kitware.com > https://public.kitware.com/mailman/listinfo/rtk-users > -------------- next part -------------- An HTML attachment was scrubbed... URL: From simon.rit at creatis.insa-lyon.fr Tue May 29 01:43:19 2018 From: simon.rit at creatis.insa-lyon.fr (Simon Rit) Date: Mon, 28 May 2018 23:43:19 -0600 Subject: [Rtk-users] rtkfdk and rtksart application input projection type and voxel value range In-Reply-To: <503388189.22508470.1527280625394.JavaMail.zimbra@student.uliege.be> References: <1841105716.22176905.1527259582751.JavaMail.zimbra@student.uliege.be> <503388189.22508470.1527280625394.JavaMail.zimbra@student.uliege.be> Message-ID: Hi, Be aware that since the "object scanned always occupies the entire projection" you are dealing with the (difficult) interior problem. See, e.g., http://doi.org/10.1109/MSP.2010.936743. It's not surprising for this problem that FDK and SART give different answers. Best regards, Simon On Fri, May 25, 2018 at 2:37 PM, wrote: > Hi Cyril, > > Thank you for your fast response. > > The images are from a custom device in development by the X-RIS company > where I am currently doing an > internship in relation with my master thesis. However, due to the scanner > design (collimator and small field > of view) and the application, the type of object scanned always occupies > the entire projection. One aspect of > the application is to reconstruct object that nearly fit the scanner field > of view and therefore I do not have > other projections to show you except other ones of this kind. > > Indeed, we did not apply pre-processing to the projection to obtain > line-integrals. I will try this > solution. > > Thank you very much for your help, > Best regards, > > Louis > > ----- Mail original ----- > De: "Cyril Mory" > ?: rtk-users at public.kitware.com > Envoy?: Vendredi 25 Mai 2018 17:43:41 > Objet: Re: [Rtk-users] rtkfdk and rtksart application input projection > type and voxel value range > > Hi Louis, > > You first need to get the projections right. RTK has a filter > "rtkProjectionsReader" to read projections exported from a scanner, and > apply all the necessary processing, including log-transform, to obtain > line-integrals. The reconstruction methods (rtkfdk, rtksart, ...) all > use line integrals as inputs, but they embed an rtkProjectionsReader, > which can do the conversion at runtime. However, if rtkProjectionsReader > does not recognize your data and applies the wrong processing, the > reconstruction methods will return garbage. So the safest way is to > first call the rtkProjectionsReader (using the command line tool > rtkprojections), look at its output, and make sure it looks like line > integrals: it must have near-zero values in air, and higher values in > dense objects. Only then can you start reconstructing. > > The diagram available here > http://www.openrtk.org/Doxygen/classrtk_1_1ProjectionsReader.html shows > which processing is applied to which kind of data. The files in .mha > format are assumed to be line integrals already, and bypass all > processing, so it is probably not the format you should use. I do not > know which way .tif are processed, especially unsigned short .tif, but > I've had a look at your data, and it looks as if no log-transform is > applied on your projections. The borders of the projections, where > probably the rays have only gone through air, have high values. > Therefore, you're reconstructing a cylinder, as large as your > projections, which probably isn't what you want. > > Are you getting these images from a custom device built at the > university, or from a commercially available machine ? > > Do you have an acquisition where the object is clearly visible in the > projections ? If so, can you send over one of these projections ? > > Hope that helps, > > Cyril > > > On 25/05/2018 16:46, louis.godon at student.uliege.be wrote: > > Hi, > > > > I am currently using RTK for my Electrician Master's thesis and I am > finding some difficulties... > > > > We observed that reconstructed values range using fdk algorithm and sart > are different. How can this range be interpreted depending on the algortihm > used in order to compare the image quality between both algorithms? > > > > Furthermore, some voxels have negative value, is it possible to obtain > negative values with rtkfdk or rtksart application? does it make sens and > how can that be? > > > > And finally, last question, is there a specific projection file type > (.tif, .mha, ...) and/or pixel type (unsigned short, float, ...) to use > when using rtkfdk or rtksart? > > > > Here are some informations that may be useful: > > Object scanned: > > Rock sample and homogeneous polymer cylinder > > Projection are: > > -type: .tif (unsigned short) or .mha (float) > > -projection set: 360 seperated (.tif) files or 360 seperated (.mha) > files or one single (.mha) file > > > > Reconstructed image: > > -type: .mha (float) > > > > Algorithm used: > > -rtkfdk (without ramp filter) > > -rtksart (3~5 iterations, 1 projections processed between each update > of the reconstructed volume (1 for SART)) > > > > Here is a link to download some projection and reconstructed image: > > https://www.dropbox.com/sh/sgrzrylphe4dar2/ > AAAFW3hJYzyZGbPevf_CYteka?dl=0 > > > > Thanks in advance for your help or advices. > > > > Best regards, > > > > Louis > > _______________________________________________ > > Rtk-users mailing list > > Rtk-users at public.kitware.com > > https://public.kitware.com/mailman/listinfo/rtk-users > > _______________________________________________ > Rtk-users mailing list > Rtk-users at public.kitware.com > https://public.kitware.com/mailman/listinfo/rtk-users > _______________________________________________ > Rtk-users mailing list > Rtk-users at public.kitware.com > https://public.kitware.com/mailman/listinfo/rtk-users > -------------- next part -------------- An HTML attachment was scrubbed... URL: