CRATERS Entire Program
CRATERS Entire Program
import pandas as pd #data manupulation and analysis library (handles data - update,read)
def load_labels(label_path):
label_files = os.listdir(label_path)
data = []
classes = set()
lines = f.readlines()
data.append([file, *parts])
classes.add(int(parts[0]))
df = pd.DataFrame(data, columns=['file', 'class', 'x_center', 'y_center', 'width', 'height'])
# image seperation for training, testing and valid class (11,000 - total images added)
print("Train Labels")
print(train_labels.head())
print("\nValidation Labels")
print(valid_labels.head())
print("\nTest Labels")
print(test_labels.head())
data_yaml_content = f"""
train: {train_img_path}
val: {valid_img_path}
test: {test_img_path}
"""
f.write(data_yaml_content)
# Plotting distribution of bounding box sizes
fig.show()
image_files = os.listdir(image_path)[:n_samples]
img = cv2.imread(img_path)
ax.imshow(img)
ax.add_patch(rect)
plt.axis('off')
plt.show()
visualize_sample_images(train_img_path, train_labels)
visualize_sample_images(valid_img_path, valid_labels)
visualize_sample_images(test_img_path, test_labels)
model = YOLO('yolov8n.pt')
model.train(data=data_yaml_path, epochs=10)
image_files = os.listdir(image_path)[:n_samples]
img = cv2.imread(img_path)
results = model(img_path)
ax.imshow(img)
for result in results[0].boxes:
conf = result.conf[0].item()
ax.add_patch(rect)
plt.axis('off')
plt.show()
visualize_detections(model, test_img_path)
print("Model training, evaluation, and sample visualization completed. The trained model is saved at
'/kaggle/working/best_model.pt'.")