Fully Convolutional Neural Network trained to find circle in noisy image.
Most of the code is inside the core/ folder. I tried to keep the provided main.py with minimum changes.
In general, the approach is to run FCNN network on the image and predict a grid of probabilities, relative coordinates and radiuses. Then aggregate that information to find the best center and radius assumption. The model achieves > 0.999@iou>0.7 score.
Model structure is in the core/circle_net.py Training log is in the output.txt. In order to run the code, use tips below.
To build container:
docker build -f Dockerfile -t circle-net .
With gpu support:
docker build -f Dockerfile.gpu -t circle-net-gpu .
To get score for latest checkpoint:
docker run -it -v $PWD:/tf circle-net python main.py
With gpu support:
docker run --gpus=all -it -v $PWD:/tf circle-net-gpu python main.py
After 30 epochs model achieves > 0.999 score. Latest checkpoints are in the /checkpoints folder.
To train CNN run:
docker run -it -v $PWD:/tf circle-net python core/train.py
With gpu support:
docker run --gpus=all -it -v $PWD:/tf circle-net-gpu python core/train.py
``