PEPC is a libary that contains several image processing applications, and my Bachelor Final Project.
Table of Contents
PEPC has 4 different capabilities. These are
- Pattern Evaluation
- Pattern Matching
- Natural Feature Marker Pose Calculation 6 DoF
- Cross Correlation Calculation using Template Matching
Make sure you fulfilled the prerequisities before using the library.
- OpenCV 4.5.3
- C++ (ISO C++ 14 Standard)
- Tesseract 4.1
In this section I listed development stages of the PEPC library.
- I made lots of research about template matching, pattern matching algorithms.
- I implemented OpenCV's pattern matching tutorials before I customized them for my purpose.
- I developed pattern matching algorithm using OpenCV's documentations and tutorials.
- I made researches about pose calculation and studied fundementals of image processing using the course Introduction to Computer Vision.
- Later on I developed natural feature marker pose calculation algorithm in light of previous researches.
- Made reserach about pattern evaluator systems, I read various articles and tried to implement some approaches mentioned on those articles.
- I tried to add more features to the pattern evaluator algorithm.
- I worked on cross correlation and created an algorithm to determine a switch's state, and number written on that switch.
Let's talk what this library capable of!
-
Pattern Evaluator: This brings ability to check few properties of the image target, which intended to be used as a natural marker. By checking properties that are likely to effect tracking quality PEPC may give feedback about the quality of the pattern. These properties may listed as, Checking,
- brightness of the environment
- total keypoints found in the image
- total inliers number
- selected pattern to frame size ratio
-
Matching Algorithm: This algorithm is developed using ORB keypoint extractor, BRIEF descriptor, MAGSAC++ estimator. It tracks pattern by matching keypoints from the captured frame during run time.
-
Pose Calculation: After having PEPC's pose calculation algortihm, you will be able to use naturaş feature markers to calculate camera pose in 6 dof.
-
Finding Dissimilarity: It is possible to determine two different states of a product (such as switch open or switch close) by using OpenCV's template matching alogrithm. It does provide cross correlation of given two images. Here I used tesseract library to read numbers on switch and tried to use them as their ID.
- I build tesseract using vcpkg.
vcpkg install tesseract:x64-windows-static
I would like to thank to my supervisor Resul Aydoğan and Sefa Ödemiş for all their help and advice with this work. I would also like to thank rest of the HARF team for their support during my co-op journey.