प्रश्नोत्तरी और कोड अंत में मुझे उम्मीद है कि यह प्रश्न यहां है और टीसीएस के ढेर के लिए नहीं। मैं Turk and Pentland's "Eigenfaces for Recognition" में एल्गोरिदम के माध्यम से जाने की कोशिश कर रहा हूं।औसत चेहरा - एल्गोरिदम
पेज 74 एक पढ़ सकते हैं (बाएं स्तंभ के अंतिम पैराग्राफ) पर:
प्रशिक्षण करते हैं (...) सेट का औसत चेहरे से [*]
परिभाषित किया गया है जहां [*] एक समीकरण कहता है कि औसत चेहरा इसकी गणना से विभाजित छवियों के बराबर है। इस समीकरण का उपयोग करने के लिए मैंने ओपनसीवी और numpy का उपयोग कर पायथन लिपि बनाई।
पृष्ठ 75 पर चित्रा 1 है। जो चित्रा 1 (पृष्ठ 74) से औसत चेहरे का प्रतिनिधित्व करना चाहिए और यही वह है जिसे मैं प्राप्त करने की कोशिश कर रहा हूं।
एक फेस सेट के रूप में मैं Faces94 से सभी चेहरों का उपयोग कर रहा हूं। जब मैं traditionall औसत की गणना (1/एम * योग) परिणाम इस प्रकार है:
जो ज्यादातर उन अजीब 'स्पॉट' की वजह से अब तक उम्मीद से दूर है। हालांकि, जब मैं औसत की गणना की तरह वहाँ अधिक चेहरे था वास्तव में है की तुलना में (उदाहरण के लिए 1/(2 * एम) * योग) परिणाम और अधिक सटीक लग रहा है:
मैं वहाँ लगता है int8 परिवर्तित करने में कुछ समस्या है < -> int लेकिन मैं इसे साबित नहीं कर सकता। यदि कोई कोड के साथ कोई समस्या हल कर सकता है तो कृपया मुझे बताएं कि यह समाधान नहीं है।
प्रश्न: बेहतर परिणाम प्राप्त करने के लिए मैं क्या कर रहा/गलत क्या कर रहा हूं। यहाँ कोड है:
import numpy as np
import glob
import cv2
from cv2 import imread
dir = "../images/faces94/**/**.jpg"
files = list(glob.iglob(dir, recursive=True))
img = np.zeros(imread(files[0],0).shape)
img = img.astype('int')
for i in range(len(files)):
img += imread(files[i],0).astype('int')
img = np.divide(img,len(files)*2) # HERE you can change it to np.divide(img,len(files)) in order to see bad result
img = np.mod(img,128)
img = img.astype(np.int8)
cv2.imshow("image", img)
cv2.waitKey(0)
@ दिवाकर यह सही उत्तर है, कृपया इसे उत्तर के रूप में पोस्ट करें ताकि मैं इसे स्वीकार कर सकूं। इसके अलावा मुझे 128 से 256 तक मॉड्यूलो बदलना पड़ा :) – MaLiN2223
ठीक है, मैं आपको उत्तर पोस्ट में उन अन्य प्रासंगिक विवरणों के साथ पोस्ट करने के लिए प्रोत्साहित करता हूं। उनको खोजने पर अच्छा काम! :) – Divakar