Dengan perkembangan teknologi penglihatan komputer, semakin ramai orang mula meneroka cara menggunakan penglihatan komputer untuk memproses data imej dan video. Sebagai bahasa pengaturcaraan yang berkuasa, Python juga telah digunakan secara meluas dalam bidang penglihatan komputer.
Artikel ini akan memperkenalkan cara menggunakan Python untuk melaksanakan contoh pengecaman gerak isyarat. Kami akan menggunakan perpustakaan OpenCV untuk memproses imej, menggunakan algoritma pembelajaran mesin untuk melatih model dan melaksanakan pengecaman gerak isyarat.
Pertama, kita perlu menyediakan set data imej gerak isyarat. Set data gerak isyarat boleh diperoleh dengan mengambil foto gerak isyarat atau daripada set data awam. Di sini kami mengambil set data awam "ASL Alphabet" sebagai contoh.
Gambar dalam set data telah ditandakan dengan gerak isyarat pelbagai huruf Inggeris. Kami membahagikan imej ini kepada set latihan dan set ujian.
Baca imej melalui perpustakaan OpenCV dan proses imej. Kita perlu menukar imej kepada imej skala kelabu dan melakukan perduaan.
import cv2 import numpy as np image_gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) retval, thresholded = cv2.threshold(image_gray, 50, 255, cv2.THRESH_BINARY_INV)
Kami menggunakan algoritma pengesanan kontur untuk mengekstrak ciri gerak isyarat. Melalui algoritma ini, kita boleh mendapatkan garis besar imej gerak isyarat.
_, contours, hierarchy = cv2.findContours(thresholded, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
Seterusnya, kita perlu menggunakan algoritma pembelajaran mesin untuk melatih model. Kami memilih untuk menggunakan algoritma mesin vektor sokongan untuk melatih model. Pertama, kita perlu melabelkan imej gerak isyarat dan menukarnya menjadi vektor ciri.
labels = [0, 1, 2, ..., 25] features = [] for i in range(len(images)): features.append(contour_feature(images[i])) def contour_feature(image): # 提取手势图像的轮廓 _, contours, hierarchy = cv2.findContours(image, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) # 根据轮廓计算特征向量 ...
Selepas melatih model, kita perlu menguji ketepatannya. Kami menghantar imej gerak isyarat daripada set data ujian ke dalam model, dan kemudian membandingkan ramalan model dengan label sebenar untuk mengira ketepatan.
clf = svm.SVC(kernel='linear') clf.fit(features_train, labels_train) accuracy = clf.score(features_test, labels_test)
Akhir sekali, kita boleh menggunakan model terlatih untuk meramalkan label imej gerak isyarat. Masukkan imej gerak isyarat ke dalam model dan label huruf Inggeris yang sepadan boleh dikembalikan.
def predict(image): feature = contour_feature(image) label = clf.predict([feature])[0] return chr(label + ord('A'))
Ringkasan:
Python ialah alat penglihatan komputer yang berkuasa yang boleh melaksanakan pelbagai tugas pemprosesan dan analisis imej melalui perpustakaan OpenCV dan algoritma pembelajaran mesin. Artikel ini memperkenalkan cara menggunakan Python untuk melaksanakan contoh pengecaman gerak isyarat. Melalui contoh ini, kita boleh lebih memahami cara menggunakan Python untuk menggunakan teknologi penglihatan komputer.
Atas ialah kandungan terperinci Contoh Penglihatan Komputer dalam Python: Pengecaman Gerak Isyarat. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!