Rumah >Peranti teknologi >AI >Bagaimanakah jarak Wasserstein digunakan dalam tugas pemprosesan imej?
Wasserstein distance, juga dikenali sebagai Earth Mover's Distance (EMD), ialah kaedah pengukuran yang digunakan untuk mengukur perbezaan antara dua taburan kebarangkalian. Berbanding dengan divergence KL tradisional atau divergence JS, jarak Wasserstein mengambil kira maklumat struktur antara pengedaran dan oleh itu mempamerkan prestasi yang lebih baik dalam banyak tugas pemprosesan imej. Dengan mengira kos pengangkutan minimum antara dua pengedaran, jarak Wasserstein dapat mengukur jumlah kerja minimum yang diperlukan untuk mengubah satu pengedaran kepada yang lain. Metrik ini mampu menangkap perbezaan geometri antara taburan, dengan itu memainkan peranan penting dalam tugas seperti penjanaan imej dan pemindahan gaya. Oleh itu, jarak Wasserstein telah menjadi salah satu alat yang digunakan secara meluas dalam bidang perbandingan taburan kebarangkalian dan pemprosesan imej.
Wasserstein jarak digunakan dalam pemprosesan imej untuk mengukur perbezaan antara dua imej. Berbanding dengan kaedah tradisional, seperti jarak Euclidean dan persamaan kosinus, ia boleh mempertimbangkan maklumat struktur imej dengan lebih baik. Dalam pengambilan imej, kita biasanya ingin mencari imej yang paling serupa dengan imej pertanyaan. Kaedah tradisional menggunakan vektor ciri untuk mewakili imej dan membandingkannya menggunakan ukuran seperti jarak Euclidean atau persamaan kosinus. Walau bagaimanapun, kaedah pengukuran ini mengabaikan hubungan spatial antara imej dan oleh itu mungkin tidak sesuai dalam situasi seperti ubah bentuk imej atau hingar. Sebaliknya, jarak Wasserstein dapat mengambil kira hubungan ruang antara piksel, dengan itu lebih baik menangkap persamaan antara imej.
Di bawah adalah contoh pengambilan imej menggunakan jarak Wasserstein.
Andaikan kami mempunyai pangkalan data 1000 imej dan kami ingin mencari imej yang paling serupa dengan imej pertanyaan. Untuk mengukur perbezaan antara setiap pasangan imej, kita boleh menggunakan jarak Wasserstein dan memilih imej dengan jarak terkecil sebagai hasil pertanyaan.
Pertama, kita boleh menggunakan histogram untuk mewakili taburan aras kelabu bagi setiap piksel, membahagikan nilai aras kelabu kepada beberapa selang diskret dan mengira bilangan piksel dalam setiap selang. Dengan cara ini, kita boleh mendapatkan taburan kebarangkalian yang mewakili imej.
Dengan mengandaikan kita menggunakan 10 selang aras kelabu untuk mewakili taburan aras kelabu bagi setiap piksel, kita boleh menggunakan Python dan perpustakaan NumPy untuk mengira perwakilan histogram bagi setiap imej:
import numpy as np import cv2 # Load query image query_image = cv2.imread('query_image.png', cv2.IMREAD_GRAYSCALE) # Compute histogram hist, _ = np.histogram(query_image, bins=10, range=(0, 255), density=True)
Kemudian, kita boleh mengira setiap pasangan Jarak Wasserstein antara imej dan pilih imej dengan jarak terkecil sebagai hasil pertanyaan:
# Load image database database = [] for i in range(1000): img = cv2.imread(f'image_{i}.png', cv2.IMREAD_GRAYSCALE) database.append(img) # Compute Wasserstein distance between query image and each database image distances = [] for img in database: hist2, _ = np.histogram(img, bins=10, range=(0, 255), density=True) distance = cv2.EMD(hist, hist2, cv2.DIST_L2) distances.append(distance) # Find index of image with minimum distance min_index = np.argmin(distances)
Dalam contoh ini, kami menggunakan fungsi cv2.EMD dalam perpustakaan OpenCV untuk mengira jarak Wasserstein. Fungsi ini mengambil dua taburan kebarangkalian sebagai input dan mengembalikan jarak antara mereka. Kami menggunakan parameter cv2.DIST_L2 untuk menentukan penggunaan jarak Euclidean sebagai metrik jarak.
Kelebihan menggunakan jarak Wasserstein untuk mendapatkan semula imej ialah ia boleh mengambil kira hubungan ruang antara piksel, dengan itu menangkap persamaan antara imej dengan lebih baik. Kelemahannya ialah kerumitan pengiraan adalah tinggi, jadi ia mungkin tidak praktikal apabila berurusan dengan pangkalan data imej berskala besar.
Ringkasnya, jarak Wasserstein ialah metrik berguna yang boleh digunakan untuk pelbagai tugas dalam pemprosesan imej, seperti mendapatkan semula imej, klasifikasi imej dan penjanaan imej.
Atas ialah kandungan terperinci Bagaimanakah jarak Wasserstein digunakan dalam tugas pemprosesan imej?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!