Semi-supervised rail defect detection from imbalanced image data