io_image_edge_detection_aco's People
io_image_edge_detection_aco's Issues
Ant Colony - CPU implementation
Implement Ant Colony algorithm in Python, without using Cython/CUDA
Unit tests
For every module, we should have unit tests written to check, if we didn't break anything during the works. It's a hassle, but it's a good practice. For now we won't be setting a minimal code coverage value and no CI/CD, but we may try to set up ie. a CircleCI in the foreseeable future.
I can write a Docker image for testing purposes (tests are run on a VM in most of CI/CD tools, and we have to provide a machine).
Research - other types of Ant Colony algorithms
As mentioned during the meeting, we should explore other ways of implementing an ACO. Variants proposed:
- Fast Ant algorithm
- No-horizon optimization (already implemented, we don't use the horizon)
If any of us comes across an implementation of one of the mentioned articles, he should post a link to it in the comments below.
Final report
Parameter optimization
When we have a fully implemented ACO algorithm (#2), we're ought to run a grid search to get the best performing set of parameters.
Test image: Lenna
Check the thresholding methods
The article mentions that Otsu thresholding method is applied, but during the tests it seems that it gives hardly any output, the threshold is too strict. We should try to develop our own thresholding method, now we have 3 methods:
- Simple threshold: if pheromone value for a given pixel is lower than a tau value, it's classified as the background,
- Otsu thresholding: threshold value is calculated (using skimage.filters.otsu_threshold) and the pheromone value is checked against it,
- According to this code, lines 201-202.
We should try, which one gives the best results (currently the simple threshold is the best).
Generate groundtruth images
Generate groundtruth images for algorithm validation
ACO metrics
We need an interface for calculating the edge detection quality.
Requirements:
- Pass an input image and groundtruth image (can be pair of images),
- Return the metrics value
- Log everything to file (
logging
module in Python) - CLI-based command
- Allow the user to select a metric or calculate all of them (only if we'll be having multiple metrics)
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. ๐๐๐
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google โค๏ธ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.