Table of Contents
# 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.
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
#includea .cpp file - Never add absolute paths in code
- Always check command-line arguments, before processing them, use
std::cerrfor debugging purposes - Define GUI names as
constvariables - Don't mix more than one activity in a single function, for example
maxfiltershould 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:
- No usage of namespaces
- Only camelCase to be used, fyi case guide
- When it comes to comments, follow only the the google c++ style guide
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.
- RGB scene image
- Synthetic views of each object
- Binary segmentation masks (optional)
- Text file containing bounding box coordinates
- Scene image with bounding boxes overlaid
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.
Each object has:
models/— 60 synthetic views + segmentation maskstest_images/— Images with scenes for detectionlabels/— Ground truth in the format: <object_id>_<object_name>
- Mean Intersection over Union (mIoU): Average IoU across all object categories
- Detection Accuracy: Number of correct detections (IoU > 0.5 with ground truth)
- Implemented in C++ with OpenCV
- Must compile and run in the official Virtual Lab
- Only original code written by group members is allowed
- 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