Introduction
Individual detection of trees is an increasingly important topic in computer vision, because of its numerous applications and the recent major improvements in object detection. Trees are more and more monitored, from forest carbon stocks to urban tree inventories, to allow for a better assessment of their evolution and a better management of forests and urban trees. Most of the tasks related to trees either require or would benefit from a method allowing precise delineation and separation of trees as individual entities.
To identify trees, the two most common types of data used are LiDAR point clouds and visible/hyperspectral images. The two types of data are indeed complementary, as point clouds capture geometric information with multiple features, while images capture colors. However, combining them into a single pipeline is not an easy task because they inherently have very different spatial organization and encoding. This difficulty holds true for both analytical methods and deep learning models. However, some deep learning models still manage to merge point clouds and images by creating rasters from the surface of the point cloud, which can then be handled similarly to visible and hyperspectral images.
In this work, I focused on one specific deep learning model, and tried to improve it by extracting more information from the LiDAR point cloud, which also contains a lot of data below the canopy surface. With this modification, I also hoped to be able to experiment on the ability of the model to detect covered trees, which are trees invisible from above because of occlusion by a larger tree. This is a task that is completely impossible for the initial model before my modifications, because all the data it takes as input is limited to what is visible from above.
To experiment on this, I had to create my own tree annotations dataset, using high-quality data available on the whole of the Netherlands, and hand-annotations for the trees. I then implemented the whole training pipeline and the model from scratch, before conducting experiments to assess the impact of my modifications.