Abstract
This paper presents a high-speed real-time plane fitting implementation on a field-programmable gate array (FPGA) platform. A novel hardware-based least squares algorithm fits planes to patches of points within a depth image captured using a Microsoft Kinect v2 sensor. The validity of a plane fit and the plane parameters are reported for each patch of 11 by 11 depth pixels. The high level of parallelism of operations in the algorithm has allowed for a fast, low-latency hardware implementation on an FPGA that is capable of processing depth data at a rate of 480 frames per second. A hybrid hardware–software end-to-end system integrates the hardware solution with the Kinect v2 sensor via a computer and PCI express communication link to a Terasic TR4 FPGA development board. We have also implemented two proof-of-concept object detection applications as future candidates for bionic vision systems. We show that our complete end-to-end system is capable of running at 60 frames per second. An analysis and characterisation of the Kinect v2 sensor errors has been performed in order to specify logic precision requirements, statistical testing of the validity of a plane fit, and achievable plane fitting angle resolution.
Similar content being viewed by others
References
Altera Quartus II Design Software. https://www.altera.com/products/design-software/fpga-design/quartus-ii/overview.html
Altera: RAM-based shift register megafunction user guide. https://www.altera.com/content/dam/altera-www/global/en_US/pdfs/literature/ug/ug_shift_register_ram_based.pdf
Altera Stratix IV FPGAs. https://www.altera.com/products/fpga/stratix-series/stratix-iv/overview.html
Ground Plane and Tabletop Detection Results. http://youtu.be/CtDp8-Cqi4I
MathWorks MATLAB Software Package. http://au.mathworks.com/products/matlab/
Microsoft Kinect for Windows v2 Sensor. https://www.microsoft.com/en-us/kinectforwindows/
ModelSim-Altera Software. https://www.altera.com/products/design-software/model-simulation/modelsim-altera-software.html
Terasic TR4 Development Board. http://tr4.terasic.com/
Bailey, D.G.: Design for embedded image processing on FPGAs. Wiley (2011)
Benedetti, A., Perona, P.: Real-time 2-D feature detection on a reconfigurable computer. In: 1998 IEEE Computer Society Conference on Computer Vision and Pattern Recognition, pp. 586–593 (1998)
Boyle, J.R.: Improving Perception from Electronic Visual Prostheses. Ph.D. thesis (2005)
Brindley, G.S., Lewin, W.S.: The visual sensations produced by electrical stimulation of the medial occipital cortex. J. Physiol. 196(2), 479–493 (1968)
Butkiewicz, T.: Low-cost Coastal Mapping using Kinect v2 Time-of-Flight Cameras. In: Oceans—St John’s, pp. 1–9 (2014)
Cho, J., Mirzaei, S., Oberg, J., Kastner, R.: FPGA-based face detection system using Haar classifiers. In: Proceedings of the ACM/SIGDA international symposium on Field programmable gate arrays, pp. 103–111 (2009)
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)
Henry, P., Krainin, M., Herbst, E., Ren, X., Fox, D.: RGB-D mapping: using kinect-style depth cameras for dense 3D modeling of indoor environments. Int. J. Robot. Res. 31(5), 647–663 (2012)
Humayun, M.S., de Juan, E., Dagnelie, G., Greenberg, R.J., Propst, R.H., Phillips, D.H.: Visual perception elicited by electrical stimulation of retina in blind humans. Arch. Ophthalmol. 114(1), 40–46 (1996)
Josh, H., Mann, C., Kleeman, L., Lui, W.L.D.: Psychophysics Testing of Bionic Vision Image Processing Algorithms Using an FPGA Hatpack. In: 2013 20th IEEE International Conference on Image Processing (ICIP), pp. 1550–1554 (2013)
Josh, H., Yong, B., Kleeman, L.: Mobile, Real-Time Simulator for a Cortical Visual Prosthesis. In: Proceedings of the International Conference on Biomedical Electronics and Devices, pp. 37–46 (2012)
Josh, H., Yong, B., Kleeman, L.: A real-time and portable bionic eye simulator. In: Biomedical Engineering Systems and Technologies, 5th International Joint Conference, BIOSTEC 2012, Vilamoura, Portugal, February 1–4, 2012, Revised Selected Papers, vol. 357, pp. 51–67. Springer (2013)
Khoshelham, K., Elberink, S.O.: Accuracy and resolution of kinect depth data for indoor mapping applications. Sensors 12(2), 1437–1454 (2012)
Kiral-Kornek, F.I., O’Sullivan-Greene, E., Savage, C.O., McCarthy, C., Grayden, D.B., Burkitt, A.N.: Improved visual performance in letter perception through edge orientation encoding in a retinal prosthesis simulation. J. Neural Eng. 11(6), 066,002 (2014)
Kraft, M., Schmidt, A., Kasinski, A.: High-speed image feature detection using fpga implementation of fast algorithm. In: Proceedings of the International Conference on Computer Vision Theory and Application (VISAPP), pp. 174–179 (2008)
Lachat, E., Macher, H., Mittet, M.A., Landes, T., Grussenmeyer, P.: First experiences with kinect V2 sensor for close range 3D modelling. In: ISPRS—International Archives of the Photogrammetry, Remote Sensing and Spatial Information Sciences, vol. XL-5/W4, pp. 93–100 (2015)
Li, J., Papachristou, C., Shekar, R.: An FPGA-based computing platform for real-time 3D medical imaging and its application to cone-beam CT reconstruction. J. Imaging Sci. Technol. 49(3), 237–245 (2005)
Li, W.H.: A Fast and Flexible Computer Vision System for Implanted Visual Prostheses. In: Computer Vision—ECCV 2014 Workshops, vol. 8927, pp. 686–701 (2015)
Li, W.H., Tang, T.J.J., Lui, W.L.D.: Going beyond vision to improve bionic vision. In: 2013 20th IEEE International Conference on Image Processing (ICIP), pp. 1555–1558 (2013)
Lim, Y.K., Kleeman, L., Drummond, T.: Algorithmic methodologies for FPGA-based vision. Mach. Vis. Appl. 24(6), 1197–1211 (2013)
Lowery, A.J.: Introducing the Monash vision group’s cortical prosthesis. In: 2013 20th IEEE International Conference on Image Processing (ICIP), pp. 1536–1539 (2013)
Lui, W.L.D., Browne, D., Kleeman, L., Drummond, T., Li, W.H.: Transformative reality: improving bionic vision with robotic sensing. In: Proceedings of the Annual International Conference of the IEEE Engineering in Medicine and Biology Society (EMBS), pp. 304–307 (2012)
McCarthy, C., Walker, J.G., Lieby, P., Scott, A., Barnes, N.: Mobility and low contrast trip hazard avoidance using augmented depth. J. Neural Eng. 12(1), 1–15 (2015)
Parikh, N., Itti, L., Humayun, M.S., Weiland, J.: Performance of visually guided tasks using simulated prosthetic vision and saliency-based cues. J. Neural Eng. 10(2), 1–13 (2013)
Pinto, A.M., Costa, P., Moreira, A.P., Rocha, L.F., Veiga, G., Moreira, E.: Evaluation of Depth Sensors for Robotic Applications. In: IEEE International Conference on Autonomous Robot Systems and Competitions (ICARSC), pp. 139–143 (2015)
Rorres, C., Anton, H.: Applications of Linear Algebra, 2nd edn. (1979)
Stückler, J., Steffens, R.: Real-Time 3D Perception and Efficient Grasp Planning for Everyday Manipulation Tasks. In: Proceedings of the European Conference on Mobile Robots (ECMR), pp. 1–6, Orebro, Sweden (2011)
Tang, T.J.J., Li, W.H.: An Assistive EyeWear Prototype that interactively converts 3D Object Locations into Spatial Audio. In: Proceedings of the 2014 ACM International Symposium on Wearable Computers, pp. 119–126 (2014)
Tang, T.J.J., Lui, W.L.D., Li, W.H.: Plane-based detection of staircases using inverse depth. In: Australasian Conference on Robotics and Automation (ACRA) (2012)
van Rheede, J.J., Kennard, C., Hicks, S.L.: Simulating prosthetic vision: optimizing the information content of a limited visual display. J. Vis. 10(14), 1–14 (2010)
Veraart, C., Raftopoulos, C., Mortimer, J.T., Delbeke, J., Pins, D., Michaux, G., Vanlierde, A., Parrini, S., Wanet-Defalque, M.C.: Visual sensations produced by optic nerve stimulation using an implanted self-sizing spiral cuff electrode. Brain Res. 813(1), 181–186 (1998)
Weiland, J.D., Parikh, N., Pradeep, V., Medioni, G.: Smart image processing system for retinal prosthesis. In: Proceedings of the Annual International Conference of the IEEE Engineering in Medicine and Biology Society (EMBS), pp. 300–303 (2012)
Zhao, Y., Lu, Y., Tian, Y., Li, L., Ren, Q., Chai, X.: Image processing based recognition of images with a limited number of pixels using simulated prosthetic vision. Inf. Sci. 180(16), 2915–2924 (2010)
Acknowledgments
This work was funded through the Australian Research Council Research in Bionic Vision Science and Technology Initiative (SR1000006).
Author information
Authors and Affiliations
Corresponding author
Appendix: Derivation of resultant error models of normalised plane parameters
Appendix: Derivation of resultant error models of normalised plane parameters
Having found the mean and standard deviation of depth value error (Sect. 3.1), a model for the error in the parameters of our plane fitting algorithm can be developed. As shown in Sect. 2 which discusses our plane fitting implementation, for a plane with the form \(z = Au + Bv + C\), the parameters A, B, and C can be found using the simplified equations from (6). The z values are assumed to be mutually independent normal random variables and so the expectation, variance and standard deviation of the parameters can be found as follows. A, B and C can be represented as a linear combinations of \(z_i\):
Therefore, assuming \(z_i = (z_\mathrm{true} + e_i )\), where \(e_i\sim {}N(0,\sigma _z)\), all estimates of A, B, and C will have zero mean errors and variances as follows:
From Eq. (9) the standard deviations of A and B can be expressed in terms of k as follows:
From Eq. (49) it is apparent that the standard deviation of errors scales inversely with patch size. Therefore larger patch sizes reduce errors. From Eq. (19) we can see that \(\alpha \) and \(\beta \) are scaled versions of A and B and so the variances follow as scaled versions of Eq. (48):
To find the variance of \(\gamma \) we need to expand Eq. (19) as follows, so that all correlated terms are grouped.
Now if we choose the worst case values for \(u_c\) and \(v_c\) of 256 and 212, respectively, then the variance can be expressed as follows:
For the variance of \(\kappa \), we use the following approximation:
Giving us the following variance for \(\kappa \):
From Eqs. (50, 52, 54) we can now define standard deviations for the four plane parameters \(\alpha \), \(\beta \), \(\gamma \) and \(\kappa \):
To find the variances of the normalised plane parameters \(\alpha _n\), \(\beta _n\), \(\gamma _n\) and \(\kappa _n\), we can use the following approximation:
We need to define standard deviation equations for \(\lambda \) first. From Eq. (22), we know that \(\lambda = |\alpha | + |\beta | + |\gamma |\). Therefore there are eight different cases for evaluating variance, as each of \(\alpha \), \(\beta \), \(\gamma \) could have a positive or negative result. It can be shown, however, that there are only four unique cases, and furthermore we are only interested in the best and worst case variances. This leaves the two following cases for \(\lambda \):
Using a similar method as was done for \(\sigma _{\gamma }^2\) in Eqs. (51, 52), we can find the following variance equations for the two cases of \(\lambda \):
We also need to find the covariances of each of the plane parameters \(\alpha \), \(\beta \), \(\gamma \) and \(\kappa \) with the scaling factor \(\lambda \). This can be done through the products of each, removing the non-correlated cross-terms. The following covariances can be defined:
Substituting Eqs. (55, 58, 59a, 59b) into Eq. (56) gives the following equations for the variances of the normalised plane parameters \(\alpha _n\), \(\beta _n\), \(\gamma _n\) and \(\kappa _n\):
Rights and permissions
About this article
Cite this article
Josh, H., Kleeman, L. A novel hardware plane fitting implementation and applications for bionic vision. Machine Vision and Applications 27, 967–982 (2016). https://doi.org/10.1007/s00138-016-0764-8
Received:
Revised:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s00138-016-0764-8