I am pleased with the results. The dataset that I used to train on was SDNET2018. Tensorflow’s standard classification code with pre-trained weights was the CNN model. My window size and step size was 1/10 the x-dim of the image.
This was all more for show than anything. I do not think it is practical to use a sliding window approach to detect cracks… alone. However, I think it may be useful as a first pass for segmentation. If I make my windows and step size larger and detect if there is a crack in the window or not, and then run a segmentation algorithm, then I may help with reducing noise.
Another use-case would be for concrete spalling or corrosion areas. The detected windows could be used to actually quantify the damage if we knew a dimension on the image. Then we could convert pixel-space into real-space measurements.
Through my research I also believe that crack detection is best looked at on a global level, rather than a local level. For example, I believe that there is merit in analyzing the general path and neighbors of crack-like features. One could fit geometric curves to better follow the crack propagation.