The Cape Floristic Kingdom (CFK) is the most diverse floristic kingdom in the world and has been declared an international heritage site. However, it is under threat from wild fires and invasive species. Much of the work of managing this natural resource, such as removing alien vegetation or fighting wild fires, is done by volunteers and casual workers. Many fynbos species, for which the Table Mountain National Park is known, are difficult to identify, particularly by non-expert volunteers. Accurate and fast identification of plant species would be beneficial in these contexts. The Fynbos Leaf Optical Recognition Application (FLORA) was thus developed to assist in the recognition of plants of the CFK. The first version of FLORA was developed as a rapid prototype in MATLAB; it utilized sequential algorithms to identify plant leaves, and much of this code was interpreted M files. The initial implementation suffered from slow performance, though, and could not run as a lightweight standalone executable, making it cumbersome. FLORA was thus re-developed as a standalone C++ version that was subsequently enhanced further by accelerating critical routines, by running them on a graphics processing unit (GPU). This paper presents the design and testing of both the C++ version and the GPU-accelerated version of FLORA. Comparative testing was done on all three versions of FLORA, viz., the original MATLAB prototype, the C++ non-accelerated version, and the C++ GPU-accelerated version to show the performance and accuracy of the different versions. The accuracy of the predictions remained consistent across versions. The C++ version was noticeable faster than the original prototype, achieving an average speed-up of 8.7 for high-resolution 3456x2304 pixel images. The GPU-accelerated version was even faster, saving 51.85 ms on average for high-resolution images. Such a time saving would be perceptible for batch processing, such as rebuilding feature descriptors for all the leaves in the leaf database. Further work on this project involves testing the system with a wider variety of leaves and trying different machine learning algorithms for the leaf prediction routines.
Read full abstract