Memory-efficient 3D connected component labeling with parallel computing

Abstract

Connected component labeling is a frequently used image processing task in many applications. Moreover, in recent years, the use of 3D image data has become widespread, for instance, in 3D X-ray computed tomography and magnetic resonance imaging. However, because ordinary labeling algorithms use a large amount of memory and 3D images are generally large, labeling 3D image data can cause memory shortages. Furthermore, labeling a large image is time-consuming. In this paper, we proposed new memory-efficient connected component labeling algorithm for 3D images with parallel computing. In this method, we accelerate the labeling process using parallel computing. In addition, we use a spans matrix and compressed label matrix to reduce memory usage. We also use an equivalence chain approach to speed up the calculation. Furthermore, the algorithm has two options for further processing performance or further memory savings. In the experiments on real examples, the proposed algorithm with the option for processing speed was faster and used less memory than the conventional label equivalence method. In contrast, with the proposed method using the memory-efficient option, we could further reduce memory from one-eighth to one-thirteenth that used by the label equivalence method while maintaining the same performance.

This is a preview of subscription content, access via your institution.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7

References

  1. 1.

    Chang, F., Chen, C.J.: A linear-time component-labeling algorithm using contour tracing technique. In: Proceedings of the International Conference on Document Analysis and Recognition, ICDAR 2003-Jan, pp. 741–745 (2003). doi:10.1109/ICDAR.2003.1227760

  2. 2.

    Fanny Nina, P., Kaeli, D.: Accelerated connected component labeling using CUDA framework. In: Chmielewski, L.J., Kozera, R., Shin, B.S., Wojciechowski, K. (eds.) Computer Vision and Graphics, vol. 8671, pp. 502–509. Springer, Warsaw (2014)

    Google Scholar 

  3. 3.

    Gavrielides, M.A., Kinnard, L.M., Myers, K.J., Jenifer, P., Pritchard, W.F., Zeng, R., Petrick, N.: Data From Phantom_FDA. The Cancer Imaging Archive (2015). doi:10.7937/K9/TCIA.2015.ORBJKMUX

  4. 4.

    Hawick, K.A., Leist, A., Playne, D.P.: Parallel graph component labelling with GPUs and CUDA. Parallel Comput. 36(12), 655–678 (2010). doi:10.1016/j.parco.2010.07.002

    Article  MATH  Google Scholar 

  5. 5.

    Hirschberg, D.S., Chandra, A.K., Sarwate, D.V.: Computing connected components on parallel computers. Commun. ACM 22(8), 461–464 (1979). doi:10.1145/359138.359141

  6. 6.

    Nvidia: Cuda C best practices guide. http://docs.nvidia.com/cuda/pdf/CUDA_C_Best_Practices_Guide.pdf (2015)

  7. 7.

    Nvidia: Tuning CUDA Applications for Kepler (2015). http://docs.nvidia.com/cuda/pdf/Kepler_Tuning_Guide.pdf

  8. 8.

    Scholz, N., Moll, J., Mälzer, M., Nagovitsyn, K., Krozer, V.: Random bounce algorithm: real-time image processing for the detection of bats and birds. Signal Image Video Process. 10(8), 1449–1456 (2016). doi:10.1007/s11760-016-0951-0

    Article  Google Scholar 

  9. 9.

    Smith, K., Clark, K., Bennett, W., Nolan, T., Kirby, J., Wolfsberger, M., Moulton, J., Vendt, B., Freymann, J.: Data From CT_COLONOGRAPHY. The Cancer Imaging Archive (2015). doi:10.7937/K9/TCIA.2015.NWTESAY1

  10. 10.

    Štáva, O., Beneš, B.: Connected component labeling in CUDA. GPU Computing Gems Emerald Edition pp. 569–581 (2011). doi:10.1016/B978-0-12-384988-5.00035-8

  11. 11.

    Suzuki, K., Horiba, I., Sugie, N.: Linear-time connected-component labeling based on sequential local operations. Comput. Vis. Image Underst. 89(1), 1–23 (2003). doi:10.1016/S1077-3142(02)00030-9

    Article  MATH  Google Scholar 

  12. 12.

    Wu, K., Otoo, E., Suzuki, K.: Optimizing two-pass connected-component labeling algorithms. Pattern Anal. Appl. 12(2), 117–135 (2009). doi:10.1007/s10044-008-0109-y

    MathSciNet  Article  Google Scholar 

  13. 13.

    Yang, C.K., Yeh, Y.C.: Stain removal in 2D images with globally varying textures. Signal Image Video Process. 8(7), 1373–1382 (2014). doi:10.1007/s11760-012-0364-7

  14. 14.

    Zhao, H.L., Fan, Y.B., Zhang, T.X., Sang, H.S.: Stripe-based connected components labelling. Electron. Lett. 46(21), 1434–1436 (2010). doi:10.1049/el.2010.2016

    Article  Google Scholar 

Download references

Author information

Affiliations

Authors

Corresponding author

Correspondence to Norihiro Ohira.

Rights and permissions

Reprints and Permissions

About this article

Verify currency and authenticity via CrossMark

Cite this article

Ohira, N. Memory-efficient 3D connected component labeling with parallel computing. SIViP 12, 429–436 (2018). https://doi.org/10.1007/s11760-017-1175-7

Download citation

Keywords

  • Image processing
  • Labeling
  • Memory-efficient
  • Parallel computing