Skip to content

Middle course test for the COMPUTER VISION 2024-2025 (INP9087774) course at University of Padova

License

Notifications You must be signed in to change notification settings

nihalsuri/object-detection-feature-matching

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

68 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CV25 Intermediate Project – Object Detection

Table of Contents

Build Instructions

# To start the container on the VLAB env
start_opencv
# Create the build directory in the root of the project 
mkdir build
cd build

# Configure the project using CMake
cmake ..

# Compile the project
make

# Run the executable
./CV_Midterm

The above instructions will create a /results directory with two subdirectories one for the /images and the other for the /coordinates of the bounding boxs computed by the algorithm.

Code Design and Style Guide

All contributors swear to follow these points with the utmost care:

  • No usage of GLOBAL VARIABLES!
  • Final project musn't have binary files included
  • Usage of a single CMakeLists.txt with more add_executable commands
  • Compile the code, and make sure it runs bug free before pushing
  • Include guards to be added in Header file
  • A header file musn't contain function definitions, only declerations!
  • Never #include a .cpp file
  • Never add absolute paths in code
  • Always check command-line arguments, before processing them, use std::cerr for debugging purposes
  • Define GUI names as const variables
  • Don't mix more than one activity in a single function, for example maxfilter should only apply the filter, not visualize it as well
  • Pass by reference or pointer to be used in functions, for example const cv::Mat& src
  • For the sake of clarity:

Objective

Develop an object detection system using C++ with OpenCV to identify and localize three known objects:

  • Power Drill
  • Mustard Bottle
  • Sugar Box

The system should detect each object in a scene image and draw a bounding box around it.


Inputs

  • RGB scene image
  • Synthetic views of each object
  • Binary segmentation masks (optional)

Outputs

  • Text file containing bounding box coordinates
  • Scene image with bounding boxes overlaid

Suggested Approach

Use robust feature matching as the base method. Other allowed methods:

  • Template matching
  • Appearance-based detection
  • Bag of Words (BoW)

Deep learning methods are not allowed.


Dataset

Dataset Download

Each object has:

  • models/ — 60 synthetic views + segmentation masks
  • test_images/ — Images with scenes for detection
  • labels/ — Ground truth in the format: <object_id>_<object_name>

Evaluation Metrics

  • Mean Intersection over Union (mIoU): Average IoU across all object categories
  • Detection Accuracy: Number of correct detections (IoU > 0.5 with ground truth)

Project Requirements

  • Implemented in C++ with OpenCV
  • Must compile and run in the official Virtual Lab
  • Only original code written by group members is allowed

Submission Checklist

  • Source code (C++), one author per file
  • Report (max 2 pages of text, excluding images/tables), including:
  • Approach explanation
  • Performance results (metrics + images)
  • Team member contributions
  • Hours worked per person

About

Middle course test for the COMPUTER VISION 2024-2025 (INP9087774) course at University of Padova

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •