Skip to main content

Prediction through DeepForest

Prediction

DeepForest allows the prediction of the new data with the prebuilt model or we can also use our custom trained models. 


Predict a single image

DeepForest allows to predict single images with predict_image function which can read an image from memory or file provided by user, which returns the bounding boxes of the predicted trees in image.

 
image_path = get_data("OSBS_029.png")
boxes = model.predict_image(path=image_path, return_plot = False)


 

 
boxes.head()
xmin ymin xmax ymax label scores
0 334.708405 342.333954 375.941376 392.187531 0 0.736650
1 295.990601 371.456604 331.521240 400.000000 0 0.714327
2 216.828201 207.996216 245.123276 240.167023 0 0.691064
3 276.206848 330.758636 303.309631 363.038422 0 0.690987
4 328.604736 45.947182 361.095276 80.635254 0 0.638212
 

The current DeepForest has release model there is a category named "Tree", which has the label as numeric 0 and there is also a bird release model which has the label as numeric 1.

Predict a tile

Large tiles covering large geographic areas will not fit in memory during prediction, and results will be poor due to the density of bounding boxes. Remote sensing data is typically provided as a geospatial .tif file and is best suited for the predict_tile function, which divides the tile into overlapping windows, performs predictions on each window, and reassembles the resulting annotations.

 
raster_path = get_data("OSBS_029.tif")
# Window size of 300px with an overlap of 25% among windows for this small tile.
predicted_raster = model.predict_tile(raster_path, return_plot = True
                                              patch_size=300,patch_overlap=0.25)
 

 

Predict a set of annotations

When evaluating ground truth data, it is helpful to predict a sequence of images and combine them into a data frame. The predict_generator method allows the user to point to an annotated file and return predictions for all images. The image path is a relative path to the root dir. What we generally do is save the .csv file alongside the images.

 
csv_file = get_data("testfile_deepforest.csv")
boxes = model.predict_file(csv_file=csv_file
                                root_dir = os.path.dirname(csv_file),savedir=".")
 


We can also customize the appeaance of bounding box created like color and thickness by providing these arguments a value while calling predict_image function.

 
image_path = get_data("OSBS_029.png")
boxes = model.predict_image(path=image_path, return_plot = True
                                               color=(0, 165, 255), thickness=3)
 

 

Comments

Popular posts from this blog

GSoC Final Report

GSoC Final Report My journey on the Google Summer of Code project passed by so fast, A lot of stuff happened during those three months, and as I’m writing this blog post, I feel quite nostalgic about these three months. GSoC was indeed a fantastic experience. It gave me an opportunity to grow as a developer in an open source community and I believe that I ended up GSoC with a better understanding of what open source is. I learned more about the community, how to communicate with them, and who are the actors in this workflow. So, this is a summary report of all my journey at GSoC 2022. Name : Ansh Dassani Organization:   NumFOCUS- Data Retriever Project title : Training and Evaluation of model on various resolutions Project link:  DeepForest Mentors :  Ben Weinstein ,  Henry Senyondo , Ethan White Introduction                                        DeepForest is a pytho...

Deep Learning

What is deep learning? Deep learning is one of the subsets of machine learning that uses deep learning algorithms to implicitly come up with important conclusions based on input data. Genrally deeplearning is unsupervised learning or semi supervised learning and is based on representation learning that is a set of techniques that allows a system to automatically discover the representations needed for feature detection or classification from raw data. This replaces manual feature engineering and allows a machine to both learn the features and use them to perform a specific task, it learns from representative examples. For example: if you want to build a model that recognizes trees, you need to prepare a database that includes a lot of different tree images. The main architectures of deep learning are: -Convolutional neural networks -Recurrent neural networks -Generative adversarial networks -Recursive neural networks I'll be talking about them more in later part of this blog. Diffe...

Evaluation of predicted data

Evaluation of predicted data To convert the overlap between predicted bounding boxes and ground truth bounding boxes into a measure of accuracy and precision, the most common approach is to compare the overlap using the Intersection over Union (IoU) metric. IoU is the ratio of the overlap area of ​​the predicted polygon box with the ground truth polygon box divided by the area of ​​the combined bounding box. The IoU metric ranges from 0 which is not overlapping at all to 1 which is totally overlapping. In the wider computer vision literature, the common overlap threshold is 0.5, but this value is arbitrary and ultimately irrelevant to any particular ecological problem. We treat boxes with an IoU score greater than 0.4 as true positives, and boxes with scores less than 0.4 as false negatives. A value of 0.4 was chosen for threshold-based visual assessment, which indicates good visual agreement between predicted and observed crowns. We tested a range of overlap thresholds from 0.3 (less ...