Geometric shape detection and classification in 2 D images on raspberry pi module - 3
₹600-10000 INR
Cancelled
Posted about 8 years ago
₹600-10000 INR
Paid on delivery
Project is geometric shape detection in 2 dimensional image on raspberry pi module.
Image is captured from camera module interfaced with Raspberry pi and stored in memory.
Reading that image we are for each blob we have to detect what is shape of that region by measuring the distance between shapes centroid and boundary. we decide what is number of vertices like triangle will have three vertices, pentagon will have 5 vertices like wise.
General Overview of My algorithm:
1. Take image using camera interfaced to raspberry pi (Rpi)
2. For a single shape create a centroid to boundary distance profile (Please check the image of centroid to boundary distance profile in attached file)
3. Based on that profile classify these shapes into individual one
4. Also using that profile measure the length of each vertices if shape have vertices between two-to-six and radius and major and minor axis if it is circle or ellipse respectively
5. We need to measure all basic properties of each shape using that profile.
6. So you need to do detection, classification, counting, and measuring properties for each shape
7. Plot detection vs distortion i.e. the accuracy how it behaves against distortion (using synthetic image)
8. Plot time taking for each shape detection
Program steps will be like this:
(These are specific you can be some flexible about steps but main concept of centroid distance function should not change)
1. read image and convert it into binary
2. label the image
3. For each blob, get its boundaries and find the distance from the centroid to each boundary point.
4. Plot of distance from boundary distance function.
5. Compute the number of vertices by looking at the number of peaks/valeys in a plot of distance from centroid.
6. Classify the shape by the centroid-to-boundary algorithm.
7. Determine the number of length of vertices according to the centroid-to-boundary algorithm
8. Place a label on the shape
9. Count the total number of same shape i.e. how many circles in image of same radius, how many equilateral triangle in image …
Boundary Distance function
a. Get the number of blobs in the image.
b. Find the boundaries
c. Get the centroid
d. Compute distances between boundary and centroid
e. Plot the distances.
f. Find the range of the peak
(My program in matlab:
peakRange = max(distances) - min(distances);
minPeakHeight = 0.05 * peakRange;
[peakValues, peakIndexes] = findpeaks(distances, 'MinPeakProminence', minPeakHeight);
If there is available, you can find feature in python similar to ‘MinPeakProminence’ feature in matlab)
g. Find the peaks and valeys.
(Circles seem to have a ton of peaks due to the very small range and quanitization of the image. If the number of peaks is more than 10, make it zero to indicate a circle.)
h. Differentiate between between shape based on number of vetices
Different shapes to be classified are:
1-Elipse
2-equilateral triangle
3-Isoscale triangle
4-Right triangle
5-Irregulat triangle
6-Rhombus
7-Irregulat rectangle
8-Regulat rectangle
9-Square
10-Regular Pentagone
11-Irregulaar Pentagon
12-Regular Hexagone
13-Irregular Hexagone
14-Unidetified
15-Circle
…
etc