import pandas as pd
   import numpy as np
   import tensorflow as tf
   from tensorflow.keras.models import Sequential
   from tensorflow.keras.layers import Conv2D, MaxPooling2D, Flatten, Dense
   from PIL import Image
   from sklearn.model_selection import train_test_split

   # Load dataset
   df = pd.read_csv("objects.csv")
   images = []
   labels = df['label'].values
   for img_path in df['image_path']:
       img = Image.open(img_path).resize((64, 64))
       images.append(np.array(img) / 255.0)
   X = np.array(images)
   y = labels

   # Split data
   X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

   # Build CNN model
   model = Sequential([
       Conv2D(32, (3, 3), activation='relu', input_shape=(64, 64, 3)),
       MaxPooling2D((2, 2)),
       Conv2D(64, (3, 3), activation='relu'),
       MaxPooling2D((2, 2)),
       Flatten(),
       Dense(128, activation='relu'),
       Dense(1, activation='sigmoid')
   ])

   # Compile and train
   model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy'])
   model.fit(X_train, y_train, epochs=5, batch_size=32, validation_data=(X_test, y_test))

   # Evaluate
   loss, accuracy = model.evaluate(X_test, y_test)
   print(f"Test Accuracy: {accuracy * 100:.2f}%")

