A Survey on Machine Learning based Smart Maintenance and Quality Control Solutions