Saya sedang mencari cara untuk mencari perbezaan antara dua imej menggunakan ai.
Ini adalah projek kolej saya, profesor saya meminta saya membuat program untuk mengesan dan mencari perbezaan dalam dua pasang imej menggunakan kecerdasan buatan.
Saya menggunakan ia menggunakan rangkaian siam, untuk mengira perbezaan, jika perbezaan lebih besar daripada ambang, saya menggunakan kod berikut untuk memaparkan perbezaan:
input_images = np.array([[img1, img2]]) difference_image = np.abs(input_images[0, 0] - input_images[0, 1]) plt.imshow(difference_image)
Tetapi profesor saya tidak menerimanya Dia menggesa saya menggunakan conv2d untuk membahagikan imej kepada bentuk yang lebih kecil dan kemudian membandingkan bentuk dan menyerlahkan menggunakan kotak sempadan jika terdapat perbezaan.
Bolehkah sesiapa membantu menggunakan kod ini?
Kod saya sebelum ini ialah:
import numpy as np import matplotlib.pyplot as plt from tensorflow import keras from tensorflow.keras import layers img1 = plt.imread('1-1.jpg') img2 = plt.imread('1-2.jpg') input_shape = img1.shape # Assuming images are of the same shape # Function to create # def create_siamese_model(input_shape): input_image_1 = layers.Input(shape=input_shape, name='input_image_1') input_image_2 = layers.Input(shape=input_shape, name='input_image_2') # Base network base_network = keras.Sequential([ layers.Conv2D(40, (3, 3), activation='relu', input_shape=input_shape), layers.MaxPooling2D(pool_size=(2, 2)), layers.Flatten(), layers.Dense(256, activation='relu') ]) # Encoded representations of input images encoded_image_1 = base_network(input_image_1) encoded_image_2 = base_network(input_image_2) # L1 distance layer l1_distance = layers.Lambda(lambda tensors: keras.backend.abs(tensors[0] - tensors[1]))([encoded_image_1, encoded_image_2]) # Output layer output_layer = layers.Dense(15, activation='sigmoid')(l1_distance) model = keras.Model(inputs=[input_image_1, input_image_2], outputs=output_layer) input_images = np.array([[img1, img2]]) predictions = model.predict([input_images[:, 0], input_images[:, 1]]) threshold=0.5 if predictions[0, 0] > threshold: # Highlight differences if the prediction is above the threshold difference_image = np.abs(input_images[0, 0] - input_images[0, 1]) difference_image plt.imshow(difference_image) plt.show()
Saya menemui cara untuk mencari perbezaan antara dua imej menggunakan rangkaian cnn Kod:
# Importing necessary libraries import tensorflow as tf import matplotlib.pyplot as plt # Specify the file paths for the two images image_path1 = '1.jpg' image_path2 = '2 .jpg' # Read and decode images, then normalize pixel values to the range [0, 1] img1 = tf.io.read_file(image_path1) img1 = tf.image.decode_image(img1, channels=1) img1 = tf.cast(img1, tf.float32) / 255.0 img2 = tf.io.read_file(image_path2) img2 = tf.image.decode_image(img2, channels=1) img2 = tf.cast(img2, tf.float32) / 255.0 # Add a batch dimension to the images img1 = tf.expand_dims(img1, axis=0) img2 = tf.expand_dims(img2, axis=0) # Create a Conv2D layer with specified parameters conv2d_layer = tf.keras.layers.Conv2D(filters=1, kernel_size=(3, 3), activation='relu', padding='same') # Apply the Conv2D layer to both images output1 = conv2d_layer(img1) output2 = conv2d_layer(img2) # Calculate the absolute difference between the Conv2D outputs diff = tf.abs(output1 - output2) # Plotting the images and Conv2D outputs for visualization plt.figure(figsize=(10, 5)) plt.subplot(1, 4, 1) plt.imshow(tf.squeeze(img1), cmap='gray') plt.title('Image 1') plt.axis('off') plt.subplot(1, 4, 2) plt.imshow(tf.squeeze(img2), cmap='gray') plt.title('Image 2') plt.axis('off') plt.subplot(1, 4, 3) plt.imshow(tf.squeeze(output1), cmap='gray') plt.title('Conv2D Image 1') plt.axis('off') plt.subplot(1, 4, 4) plt.imshow(tf.squeeze(diff), cmap='gray') plt.title('Absolute Difference') plt.axis('off') # Display the plot plt.show()
Kod ini menggunakan rangkaian cnn untuk mengira jarak antara dua tatasusunan imej
Atas ialah kandungan terperinci Gunakan AI untuk mencari perbezaan antara dua imej. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!