Привет, у меня есть модель, которую я сделал с использованием Tensorflow & Keras. Она работает безупречно, когда я использую ее на изображении, которое фокусируется на объекте.
Как ... Итак:
Но сейчас я пытаюсь найти лучший способ сделать снимок, скажем, несколько таких объектов, как этот, а также обнаружить и нарисовать рамку вокруг них:
Чего я пытаюсь достичь:
В настоящее время мой код состоит из загрузки модели, и используя его, чтобы предсказать скриншот, который фокусируется на объекте.
Вот мой код:
from PIL import ImageGrab
import cv2
import numpy as np
import tensorflow as tf
def grabScreen():
# img = ImageGrab.grab(bbox=(1078,351,1477,748))
img = ImageGrab.grab(bbox=(1,29,1255,793))
img_np = np.array(img)
frame = cv2.cvtColor(img_np, cv2.COLOR_BGR2RGB)
return frame
def analyze(frame):
IMG_SIZE = 200
img_array = cv2.cvtColor(frame, cv2.COLOR_RGB2GRAY)
new_array = cv2.resize(img_array, (IMG_SIZE, IMG_SIZE))
return new_array.reshape(-1, IMG_SIZE, IMG_SIZE, 1)
if __name__ == "__main__":
model = tf.keras.models.load_model("v3.model")
CATEGORIES = ["Tree", "Stump"]
while True:
frame = grabScreen()
prediction = model.predict([analyze(frame)])
print(CATEGORIES[int(prediction[0][0])])
cv2.imshow("Frame", frame)
if cv2.waitKey(1) == 27:
break
cv2.destroyAllWindows()
У меня есть представление о том, как добиться того, что я пытаюсь сделать, и это состоит в том, чтобы разделить весь скриншот на части, а затем использовать модель для прогнозирования каждой части. Но разве это не будет очень требовательным на моем ноутбуке? Конечно, должен быть лучший способ добиться этого.
Я ценю любую помощь :) Спасибо!