ElizaLo / Detecting-Edges-on-Image-using-Convex-Optimization

Bachelor Research (Thesis) | C++ Qt implementation of edge detection algorithms.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Detecting Edges on image using convex optimization

C++ Qt implementation of edge detection algorithms.

Bachelor Research (Thesis)

The main idea of my Bachelor research work was to create a method to detect edges of cells using convex optimization, namely Alternating Direction Method of Multipliers (ADMM) (based on works of S. Boyd) from a single image of the cell made by microscope.

Reflections could be can be of two types:

  • reflections have almost monotone color
  • the color around edges varies smoothly.

However, in the case where only a single image is given, reflection detection becomes much more challenging.

At first step I use Canny edge detector (A Computational Approach to Edge Detection, J. Canny, 1986) to a given color image with reflections to detect all edges on the picture. Then was developed an algorithm for extracting non-reflection edges from the initial edge image by solving a certain convex optimization problem. And finally, the extracted image with edges is binarized by a simple thresholding operation.

This algorithm can help doctors better detect cancer cells in pictures made by microscope because as we know cells mostly have monotone or smooth edge. As a result, it will be possible to detect the disease at the early stages and save a lot of human lives.

All this was implemented in C ++, without using any additional libraries. Since I was working with images, my task was to write the library for operations on matrices and tensors myself. Another difficulty of this work was the acceleration of the created algorithm using various optimizations such as efficient projections onto the l1-Ball for learning in high dimensions.

I tested this method on a large number of photos of cells made under a microscope and made sure that the proposed method works and it can be used in medicine.

Available algorithms:

Results

The project includes GUI for viewing results.

Photo Cell image
Original image
Canny edge detector
Sobel edge detector
Prewitt edge detector
Roberts edge detector
Scharr edge detector

More images to compare.

Requirements

  • C++ 14

Used articles: