Rumah  >  Artikel  >  Peranti teknologi  >  Kaedah pembelajaran untuk pengecaman imej berasaskan sifar

Kaedah pembelajaran untuk pengecaman imej berasaskan sifar

王林
王林ke hadapan
2024-01-24 15:39:041214semak imbas

Kaedah pembelajaran untuk pengecaman imej berasaskan sifar

Pengecaman imej berdasarkan pembelajaran sifar tangkapan ialah teknologi baru muncul, yang berbeza daripada kaedah pengecaman imej tradisional. Pengecaman imej tradisional memerlukan ciri pembelajaran dan peraturan pengelasan melalui data latihan, manakala pembelajaran sifar pukulan tidak memerlukan pra-latihan model. Ia melakukan pengelasan masa nyata berdasarkan ciri-ciri imej yang akan dikenali, dengan itu mencapai pengecaman yang cepat dan tepat. Pengecaman imej dengan pembelajaran sifar pukulan telah digunakan secara meluas dalam rumah pintar, pengecaman muka, keselamatan pintar dan bidang lain. Ia boleh membantu peranti rumah pintar mengenal pasti keperluan pengguna dengan cepat dan bertindak balas dengan sewajarnya. Dalam pengecaman muka, pembelajaran sifar pukulan boleh mengenal pasti wajah dengan tepat berdasarkan ciri mereka dan meningkatkan ketepatan pengecaman. Dalam bidang keselamatan pintar, pembelajaran sifar pukulan boleh membantu mengenal pasti objek berbahaya dan menyediakan sistem pemantauan yang lebih selamat dan boleh dipercayai. Ringkasnya, teknologi pengecaman imej berdasarkan pembelajaran sifar tangkapan adalah pantas dan tepat, memberikan penyelesaian yang lebih pintar untuk pelbagai bidang.

Pengiktirafan imej dengan pembelajaran sifar tangkapan terbahagi terutamanya kepada dua peringkat: pengekstrakan ciri dan pengelasan.

Dalam peringkat pengekstrakan ciri, algoritma pengecaman imej pembelajaran lulus sifar akan secara automatik menganalisis pelbagai ciri dalam imej untuk dikenali, seperti warna, bentuk, tekstur, dll., dan mewakilinya sebagai vektor. Vektor ini boleh dianggap sebagai "cap jari" imej yang akan dikenali dan digunakan untuk pengelasan seterusnya.

Dalam peringkat pengelasan, algoritma pengecaman imej pembelajaran sifar tangkapan menggunakan vektor ciri untuk dibandingkan dengan vektor ciri kategori yang dipelajari sebelum ini untuk mencari kategori yang paling hampir dengan imej yang akan diiktiraf. Vektor ciri kategori ini diekstrak daripada imej lain, dan ia mewakili ciri setiap kategori. Apabila mengiktiraf imej baharu, algoritma pengecaman imej pembelajaran sifar tangkapan menetapkan imej itu untuk diiktiraf kepada kategori terdekat berdasarkan kesamaannya dengan vektor ciri bagi setiap kategori.

Untuk lebih memahami pembelajaran sifar pukulan, kita boleh menggambarkannya dengan contoh. Kami menggunakan set data Animals with Attributes 2 (AWA2), yang mengandungi 50 kategori haiwan yang berbeza, setiap kategori diterangkan oleh 85 atribut. Kami memilih 10 kategori secara rawak sebagai set latihan dan baki 40 kategori sebagai set ujian. Kami menggunakan pendekatan berasaskan atribut untuk latihan model.

Pertama, kita perlu mengimport perpustakaan dan set data yang diperlukan:

import numpy as np
import pandas as pd
import scipy.io as sio
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import LogisticRegression

# 导入数据集
data = sio.loadmat('data/awa2.mat')
train_labels = data['train_labels'].astype(int).squeeze()
test_labels = data['test_labels'].astype(int).squeeze()
train_attributes = StandardScaler().fit_transform(data['train_attributes'])
test_attributes = StandardScaler().fit_transform(data['test_attributes'])

Kemudian, kita perlu menukar perihalan atribut kepada vektor dalam ruang pembenaman. Kami menggunakan analisis komponen utama (PCA) untuk menukar perihalan atribut kepada vektor dalam ruang benam. Kami memilih 10 komponen utama pertama sebagai vektor benam.

from sklearn.decomposition import PCA

# 将属性描述转换为嵌入空间中的向量
pca = PCA(n_components=10)
train_embed = pca.fit_transform(train_attributes)
test_embed = pca.transform(test_attributes)

Seterusnya, kita perlu melatih pengelas untuk meramalkan kategori dalam set ujian. Kami menggunakan regresi logistik sebagai pengelas.

# 训练分类器
clf = LogisticRegression(random_state=0, max_iter=1000)
clf.fit(train_embed, train_labels)

# 在测试集上进行预测
predicted_labels = clf.predict(test_embed)

Akhir sekali, kita boleh mengira ketepatan untuk menilai prestasi model.

# 计算准确率
accuracy = np.mean(predicted_labels == test_labels)
print('Accuracy:', accuracy)

Dalam contoh ini, kami menggunakan pendekatan berasaskan atribut untuk melatih model dan memilih 10 komponen utama pertama sebagai vektor benam. Akhirnya, kami mendapat model dengan ketepatan 0.55 pada set ujian.

Atas ialah kandungan terperinci Kaedah pembelajaran untuk pengecaman imej berasaskan sifar. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:163.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam