A Survey on Crack Detection Using Image Processing Techniques and Deep Learning Algorithms