International Journal of Parallel Programming

, Volume 43, Issue 5, pp 703–720 | Cite as

A Comparative Study of Parallel RANSAC Implementations in 3D Space

  • Alejandro Hidalgo-Paniagua
  • Miguel A. Vega-Rodríguez
  • Nieves Pavón
  • Joaquín Ferruz


RANSAC (RAndom SAmple Consensus) is an iterative method for estimating the parameters of a certain mathematical model from a set of data which may contain a large number of outliers (noisy points). The main problem of the RANSAC algorithm is that it is too expensive in terms of execution time when real-time processing is needed (30 fps). In view of the importance of this algorithm and the rise of parallelism-based technologies, we analyze and compare in this work various parallel implementations based on different techniques (OpenMP, POSIX Threads, and CUDA). To the best of our knowledge, no other articles have attempted a similar study. In order to make this first study, we have used some standard metrics in parallelism (Runtime and Speedup) and some specific metrics used in evaluating search strategies (Precision, Recall, and F-Score). Furthermore, the experiments have been executed in different hardware alternatives in order to present a more complete study. The conclusions of our study show the advantages and disadvantages of the different parallel implementations.


RANSAC Parallel implementations Comparative study CUDA OpenMP POSIX Threads 



This work was partially funded by the Projects of Excellence from the Junta de Andalucía (Spain) ROMOCOG I and ROMOCOG II (P09-TEP-4479 and P10-TEP-6412). The work was also partially funded by the Spanish Ministry of Economy and Competitiveness and the ERDF (European Regional Development Fund), under the contract TIN2012-30685 (BIO project).


  1. 1.
    Bay, H., Tuytelaars, T., Gool, L.: Speeded-up robust features (SURF). Comput. Vis. Image Underst. 110(3), 346–359 (2008). doi: 10.1016/j.cviu.2007.09.014 CrossRefGoogle Scholar
  2. 2.
    Buttlar, D., Farrell, J., Nichols, B.: PThreads Programming: A POSIX Standard for Better Multiprocessing. O’Reilly Media, Sebastopol (2013)Google Scholar
  3. 3.
    Byrd, R.J., Steinhubl, S.R., Sun, J., Ebadollahi, S., Stewart, W.F.: Automatic identification of heart failure diagnostic criteria, using text analysis of clinical notes from electronic health records. Int. J. Med. Inform. (2013). doi: 10.1016/j.ijmedinf.2012.12.005
  4. 4.
    Chapman, B., Jost, G., Van Der Pas, R.: Using OpenMP: Portable Shared Memory Parallel Programming. No. 10 in Scientific and Engineering Computation Series. MIT Press, Cambridge (2008)Google Scholar
  5. 5.
    Chen, B., Shi, J., Zhang, S., Wu, F.X.: Identifying protein complexes in protein–protein interaction networks by using clique seeds and graph entropy. Proteomics 13(2), 269–277 (2013). doi: 10.1002/pmic.201200336 CrossRefGoogle Scholar
  6. 6.
    Eid, H., Azar, A., Hassanien, A.: Improved real-time discretize network intrusion detection system. In: Bansal, J.C., Singh, P.K., Deep, K., Pant, M., Nagar, A.K. (eds.) Proceedings of Seventh International Conference on Bio-Inspired Computing: Theories and Applications (BIC-TA 2012), Advances in Intelligent Systems and Computing, vol. 201, pp. 99–109. Springer, India (2013). doi: 10.1007/978-81-32210382_9
  7. 7.
    Fijany, A., Diotalevi, F.: A Cooperative Search Algorithm for Highly Parallel Implementation of RANSAC for Model Estimation on Tilera MIMD Architecture. In: Aerospace Conference, 2012 IEEE, pp. 1–14 (2012). doi: 10.1109/AERO.2012.6187227
  8. 8.
    Fischler, M.A., Bolles, R.C.: Random sample consensus: a paradigm for model fitting with applications to image analysis and automated cartography. Commun. ACM 24(6), 381–395 (1981). doi: 10.1145/358669.358692 MathSciNetCrossRefGoogle Scholar
  9. 9.
    Fung, J., Mann, S.: Using graphics devices in reverse: GPU-based image processing and computer vision. In: Multimedia and Expo, 2008 IEEE International Conference on, pp. 9–12 (2008)Google Scholar
  10. 10.
    Goutte, C., Gaussier, E.: A probabilistic interpretation of precision, recall and F-score, with implication for evaluation. In: Losada, D., Fernández-Luna, J. (eds.) Advances in Information Retrieval, Lecture Notes in Computer Science, vol. 3408, pp. 345–359. Springer, Berlin (2005). doi: 10.1007/9783540318651_25
  11. 11.
    Imtiaz, H., Mahbub, U., Ahad, M.: Action recognition algorithm based on optical flow and RANSAC in frequency domain. In: SICE Annual Conference (SICE), 2011 Proceedings of, pp. 1627–1631 (2011)Google Scholar
  12. 12.
    Iser, R., Kubus, D., Wahl, F.: An efficient parallel approach to Random Sample Matching (pRANSAM). In: Robotics and Automation, 2009. ICRA ’09. IEEE International Conference on, pp. 1199–1206 (2009). doi: 10.1109/ROBOT.2009.5152282
  13. 13.
    Munir, A., Gordon-Ross, A., Ranka, S.: Parallelized benchmark-driven performance evaluation of SMPs and tiled multi-core architectures for embedded systems. In: Performance Computing and Communications Conference (IPCCC), 2012 IEEE 31st International, pp. 416–423 (2012). doi: 10.1109/PCCC.2012.6407785
  14. 14.
    Muthu Rama Krishnan, M., Acharya, U., Chua, C.K., Min, L.C., Ng, E.Y.K., Mushrif, M., Laude, A.: Application of intuitionistic fuzzy histon segmentation for the automated detection of optic disc in digital fundus images. In: Biomedical and Health Informatics (BHI), 2012 IEEE-EMBS International Conference on, pp. 444–447 (2012). doi: 10.1109/BHI.2012.6211611
  15. 15.
    Oualline, S.: Practical C++ Programming. O’Reilly Media, Sebastopol (2013)Google Scholar
  16. 16.
    Papazov, C., Burschka, D.: An efficient RANSAC for 3D object recognition in noisy and occluded scenes. In: Kimmel, R., Klette, R., Sugimoto, A. (eds.) Computer Vision ACCV 2010. Lecture Notes in Computer Science, vol. 6492, pp. 135–148. Springer, Berlin (2011)Google Scholar
  17. 17.
    Raguram, R., Frahm, J.M., Pollefeys, M.: A comparative analysis of RANSAC techniques leading to adaptive real-time random sample consensus. In: Forsyth, D., Torr, P., Zisserman, A. (eds.) Computer Vision ECCV 2008, Lecture Notes in Computer Science, vol. 5303, pp. 500–513. Springer, Berlin Heidelberg (2008). doi: 10.1007/978-3-540-88688-4_37
  18. 18.
    Sanders, J., Kandrot, E.: CUDA by Example: An Introduction to General-Purpose GPU Programming. Addison-Wesley, Reading (2011)Google Scholar
  19. 19.
    Simsa, J., Bryant, R., Gibson, G., Hickey, J.: Scalable dynamic partial order reduction. In: S. Qadeer, S. Tasiran (eds.) Runtime Verification, Lecture Notes in Computer Science, vol. 7687, pp. 19–34. Springer, Berlin (2013). doi: 10.1007/9783642356322_4
  20. 20.
    Slabaugh, G., Boyes, R., Yang, X.: Multicore image processing with OpenMP [Applications Corner]. IEEE Signal Process. Mag. 27(2), 134–138 (2010)CrossRefGoogle Scholar
  21. 21.
    Zuliani, M.: RANSAC for Dummies (2008). - University of California at Santa Barbara

Copyright information

© Springer Science+Business Media New York 2014

Authors and Affiliations

  • Alejandro Hidalgo-Paniagua
    • 1
  • Miguel A. Vega-Rodríguez
    • 1
  • Nieves Pavón
    • 2
  • Joaquín Ferruz
    • 3
  1. 1.Department of Technologies of Computers and Communications, Polytechnic SchoolUniversity of ExtremaduraCáceresSpain
  2. 2.Department of Information Technology, Higher Technical School of EngineeringUniversity of HuelvaHuelvaSpain
  3. 3.Department of Systems Engineering and Automation, Higher Technical School of EngineeringUniversity of SevillaSevillaSpain

Personalised recommendations