Skip to content

CNN implementation of article 'Segmentation of Drilled Holes in Texture Wooden Furniture Panels Using Deep Neural Network' by Rytis Augustauskas, Arūnas Lipnickas and Tadas Surgailis

Notifications You must be signed in to change notification settings

rytisaugustauskas/PanelsDrillSegmentation

 
 

Repository files navigation

Drilled holes segmentation in the furniture panels 📸 -> 🕳️ [Custom and Scalable UNets]

Article 'Segmentation of Drilled Holes in Texture Wooden Furniture Panels Using Deep Neural Network' by Rytis Augustauskas, Arūnas Lipnickas and Tadas Surgailis is printed in MDPI Sensors journal.

Research paper link: https://www.mdpi.com/1424-8220/21/11/3633

Rendered videos 📼 comparisson list here

Code usage

Implementation made in Tensorflow 2.5.0

To train model use train.py script. Different convolutional neural network architectures can made with parameters.

  • use_se - Squeeze and excitation blocks
  • use_aspp - Atrous spatial pyramid pooling
  • use_residual_connetions - Residual blocks/residual connections
  • use_coord_conv - CoordConv layer
  • downscale_times - How many times we want to downscale the input? More downscales = more convolutions or 1 downscale = 2 x Conv2D layers
    model = unet_autoencoder(filters_in_input=16,
                             input_size=(image_width, image_width, image_channels),
                             loss_function=Loss.CROSSENTROPY50DICE50,
                             learning_rate=1e-3,
                             use_se=True,
                             use_aspp=True,
                             use_coord_conv=True,
                             use_residual_connections=True,
                             downscale_times=4,
                             leaky_relu_alpha=0.1)

Use predict.py to test or perform prediction. Model can be constructed is the same way as shown above. Pass weights files path to the neural network:

  • pretrained_weights - weights path ('*.hdf5' file)
    model = unet_autoencoder(filters_in_input=16,
                             input_size=(image_width, image_width, image_channels),
                             loss_function=Loss.CROSSENTROPY50DICE50,
                             learning_rate=1e-3,
                             use_se=True,
                             use_aspp=True,
                             use_coord_conv=True,
                             use_residual_connections=True,
                             downscale_times=4,
                             leaky_relu_alpha=0.1,
                             pretrained_weights=weight_path)

Conventional image processing methods mentioned in the article can be replicated with code given in 'conventional_method_cpp/' folder. It is written in C++ and mainly OpenCV is used for image processing.

If you find code useful, consider citing the following research:

Augustauskas, R.; Lipnickas, A.; Surgailis, T. Segmentation of Drilled Holes in Texture Wooden Furniture Panels Using Deep Neural Network. Sensors 2021, 21, 3633. https://doi.org/10.3390/s21113633

Augustauskas, R.; Lipnickas, A. Improved Pixel-Level Pavement-Defect Segmentation Using a Deep Autoencoder. Sensors 2020, 20, 2557. https://doi.org/10.3390/s20092557

About

CNN implementation of article 'Segmentation of Drilled Holes in Texture Wooden Furniture Panels Using Deep Neural Network' by Rytis Augustauskas, Arūnas Lipnickas and Tadas Surgailis

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages

  • Python 90.8%
  • C++ 5.8%
  • CMake 3.4%