Skip to content

A Python implementation from scratch of RCNN algorithm for Object Detection.

Notifications You must be signed in to change notification settings

HoganHPH/RCNN-Object-Detection-From-Scratch

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Region Based Convolutional Neural Networks (RCNN) in Python

  • This repository builds an end-to-end multi-class, multi-object image detector using RCNN which is a popular algorithm for object detection.

  • Paper: Rich feature hierarchies for accurate object detection and semantic segmentation

Requirements

  • Python 3
  • Pytorch
  • Pillow
  • Matplotlib
  • BeautifulSoup
  • tqdm

Dataset:

RCNN Algorithm Pipeline

  • The workflow is follow strickly by the pipeline below: rcnn_pipeline

  • Specifically, in my repository, RCNN algorithm is applied as below:

    • Step 1: The Selective Search algorithm is applied on each image to find the proposed ROIs (Region of Interest). After that, these regions are divided into 5 classes ('nothing', 'pineapple', 'snake fruit', 'dragon fruit', 'banana'). The coordinates of bounding box and label of each region are saved.
    • Step 2: A fine-tuned EfficientNet model is used to train for image classification problem on above dataset.
    • Step 3: At the beginning of inference phase, the Selective Search is applied to find the proposed boxes on infer image.
    • Step 4: Next, fine-tuned model trained above is used to predict class of each box.
    • Step 5: Apply Non-Maximum Suppression (NMS) algorithm to remove redundant boxes.
    • Step 6: Return final object detection results.
  • A sample result is described below: result_infer

References

About

A Python implementation from scratch of RCNN algorithm for Object Detection.

arXiv:1311.2524

Topics

Resources

Stars

Watchers

Forks

Languages