# The COTBLEDTCID approach to object detection and pose estimation, Part V – Circles detection

## Introduction

Let’s do a summary of what we have done so far:

• COT: colour thresholding. We separated yellow objects from the rest.
• BLED: blob edge detection. We retrieved the bottom edges of blobs (pawns).
• T: transformation. We transformed the image’s pixels into game field points (aka. pixels to meters).

And the last step CID: Circles Detection.

As you may have already noticed, pawns and tower of pawns are in fact circles when viewed from above. Therefore, the bottom edges we found with BLED are also circles’ segments when transformed into game field coordinates (step T). This is the property we’re exploiting below.

# The COTBLEDTCID approach to object detection and pose estimation, Part IV – Transformation

## Introduction

With the last step we know where the bottom edges of the pawn are located on the image, we just need to find a way to transform the coordinates of those pixels into game field coordinates.

Given a point $p'$ from the Image plane, we’d like to transform it into $p$ from the Game field plane. We can write:

$p = H \cdot p'$

We observe that straight lines are kept straight, thus H is called the homography matrix which can be computed if at least 4 different matching points are given for both planes. $(p1 \leftrightarrow p1', p2 \leftrightarrow p2', p3 \leftrightarrow p3', p4 \leftrightarrow p4')$

It’s worth noticing that both $p$ and $p'$ points are given in homogeneus coordinates.

# The COTBLEDTCID approach to object detection and pose estimation, Part III – Blob Edge Detection

## Introduction

There is still too much information we do not need on the B&W image we got on the last step. That’s why we need to extract the features we do need. One way of accomplishing this is by performing a connected component analysis in binary images, aka blob labelling. However as you’ll will see, this method is not completely adapted to our needs, so a new approach is proposed: Blob Edge Detection.

# The COTBLEDTCID approach to object detection and pose estimation, Part I – Preface

## Introduction

A fancy acronym that stands for the process of COlour Thresholding, Blob Edge Detection, Transformation and CIrcle Detection used for locating 3D objects on a plane. The next series of posts will explain the software algorithms used by ClubElek on 2011 to achieve computer vision. The problems we faced, the solutions we implemented and most importantly what we have learned by doing this project.

These posts are targeted to a wide audience with some background in maths and preferably some background in computer vision. Mostly because there are some maths and magic behind the algorithms used, but I’ll try to keep them as simple and clear as possible. Should you have questions or remarks do not hesitate to comment !

This software was designed to detect “pawns” and “figures” defined by the Eurobot 2011 rules and was demoed during “Industrie Lyon” from 5 april to 8 april 2011. Before continuing reading this post you should read the summary about the rules of the contest so you don’t get lost.

Besides the 5 previously mentioned steps, 2 other steps were necessary before attempting any computer recognition: terrain calibration and colour calibration. These 2 processes will be explained on separate posts as they are far more complex than the COTBLEDTCID itself.

After the pawns’ positions had been detected by the means of COTBLEDTCID, they were sent wirelessly to the robot through a XBee connection.

## Additional requirements

• The software should be used in a real-time environment. The fastest the algorithm, the better.
• The software should be easy to use and fast to configure. (Teams have only 1 minute and 30 seconds before a match to completely set up the robot and its peripherals).

## Hardware set-up

• A Fit-PC-2 disk-less and fan-less computer running a customized ubuntu version controlled through ssh.
• 3 identical Microsoft LifeCam Cinema webcams. Why 3 cameras should you ask. Well, during a match, there are two robots that constantly move around the table and obfuscate large parts of the terrain, with 3 cameras chances are we see most of the objects on the playing table at any time.

## Assumptions made

• Light intensity remains constant during the match and after calibration.
• The cameras do not move during the match.

Both assumptions resulted to be inaccurate but did not affect the result as the detection and pose estimation algorithm is fairly robust.

## Shiny pics

What the computer sees (note that the robot’s game field wasn’t entirely finished by the time):

What the computer understands: (compare the pawns’ position in both images. You may use the red top corner or the black area at the bottom of the image as a reference)

It’s fairly accurate isn’t it ?

## What’s next

In the next section I will explain how the Colour Thresholding works and why we need it (COT for short).

# The Heart Curve present

For those who are in love and (or) those who like maths, this post might be interesting. For those who don’t, be aware: this post is about maths and hearts ðŸ˜‰

Some time ago, I designed a heart with mathematical functions. 14th of February seems the perfect day to offer something like this. It is original, cheap and easy to do. So if you’re in a hurry and forgot to buy a present to your girl/boyfriend, take a piece of paper and write him/her down the Heart Curve.

The Heart Curve is a mathematical relation that, when plotted, has the shape of a heart. This is easily accomplished by the use of several implicit functions.

Let $H(x)$ be the Heart relation defined on $[\frac{-\sqrt{13}-3}{5}, \frac{\sqrt{13}+3}{5}],$ $(x, y) \in \mathbb{R}\times\mathbb{R}$ by:

$H(x) : \left\{ \begin{array}{clcr} (x+\frac{3}{5})^2 + (y-\frac{8}{5})^2 = \frac{13}{25}, & \text{if } y > x +2 \\ (x-\frac{3}{5})^2 + (y-\frac{8}{5})^2 = \frac{13}{25}, & \text{if } y > -x + 2\\ y^3 = x^2, & \text{if } x \in [-1,1]\\ \end{array} \right.$

The resulting plot without using  the functions’ definitions :
Continue reading