assigned the portions
This commit is contained in:
40
documentation/Yuankai/bdetect.tex
Normal file
40
documentation/Yuankai/bdetect.tex
Normal file
@@ -0,0 +1,40 @@
|
||||
\section{Ball Detection}
|
||||
\label{p sec ball detection}
|
||||
|
||||
The very first task that needed to be accomplished was to detect the ball,
|
||||
which is uniformly red-colored and measures about 6 cm in diameter. We decided
|
||||
to use a popular algorithm based on color segmentation \cite{ball-detect}. The
|
||||
idea behind this algorithm is to find the biggest red area in the image and
|
||||
assume that this is the ball. First, the desired color needs to be defined as
|
||||
an interval of HSV (Hue-Saturation-Value) \cite{hsv} values. After that, the
|
||||
image itself needs to be transformed into HSV colorspace, so that the regions
|
||||
of interest can be extracted into a \textit{binary mask}. The contours of the
|
||||
regions can then be identified in a mask \cite{contours}, and the areas of the
|
||||
regions can be calculated using the routines from the OpenCV library. The
|
||||
center and the radius of the region with the largest area are then determined
|
||||
and are assumed to be the center and the radius of the ball.
|
||||
|
||||
\begin{figure}[ht]
|
||||
\includegraphics[width=\textwidth]{\fig ball-detection}
|
||||
\caption[Ball detection]{Ball detection. On the right is the binary mask}
|
||||
\label{p figure ball-detection}
|
||||
\end{figure}
|
||||
|
||||
It is sometimes recommended \cite{ball-detect} to eliminate the noise in the
|
||||
binary mask by applying a sequence of \textit{erosions} and \textit{dilations},
|
||||
but we found, that for the task of finding the \textit{biggest} area the noise
|
||||
doesn't present a problem, whereas performing erosions may completely delete
|
||||
the image of the ball from the mask, if it is relatively far from the robot and
|
||||
the camera resolution is low. For this reason it was decided not to process the
|
||||
binary mask with erosions and dilations, which allowed us to detect the ball
|
||||
even over long distances.
|
||||
|
||||
The advantages of the presented algorithm are its speed and simplicity. The
|
||||
major downside is that a careful color calibration is required for the
|
||||
algorithm to function properly. If the HSV interval of the targeted color is
|
||||
too narrow, the algorithm might miss the ball; if the interval is too
|
||||
wide, other big red-shaded objects in the camera image will be detected as
|
||||
the ball. A possible approach to alleviate these issues to a certain degree
|
||||
will be presented further in the section \ref{p sec field detect}. To
|
||||
conclude, we found this algorithm to be robust enough for our purposes, if a
|
||||
sensible color calibration was provided.
|
||||
Reference in New Issue
Block a user