Mood_Identifier / model.py
TarSh8654's picture
Create model.py
de5332a verified
from sklearn.svm import LinearSVC
import numpy as np
import cv2 as cv
import os
class Model:
def __init__(self):
self.model = LinearSVC()
self.trained = False
def train_model(self, counters):
images = []
labels = []
# Class 1
for i in range(1, counters[0]):
path = f'1/frame{i}.jpg'
if os.path.exists(path):
img = cv.imread(path, cv.IMREAD_GRAYSCALE)
img = cv.resize(img, (150, 150))
images.append(img.flatten())
labels.append(1)
# Class 2
for i in range(1, counters[1]):
path = f'2/frame{i}.jpg'
if os.path.exists(path):
img = cv.imread(path, cv.IMREAD_GRAYSCALE)
img = cv.resize(img, (150, 150))
images.append(img.flatten())
labels.append(2)
if len(images) == 0:
print("No training data found!")
return
X = np.array(images)
y = np.array(labels)
self.model.fit(X, y)
self.trained = True
print("Model trained successfully!")
def predict(self, frame):
if not self.trained:
return None
gray = cv.cvtColor(frame, cv.COLOR_RGB2GRAY)
gray = cv.resize(gray, (150, 150))
gray = gray.flatten()
prediction = self.model.predict([gray])
return prediction[0]