Я новичок в tenorflow.am, очень запутанный, чтобы получить координаты ограничивающего прямоугольника для обнаруженного объекта. Как получить ограничивающий прямоугольник для обнаруженного объекта. Это мой код, пожалуйста, помогите !!
from PIL import Image
import numpy as np
import tensorflow as tf
import tensorflow_hub as hub
import os
import cv2
test_dir=os.getcwd()+'/test_img'
test_img=os.listdir(test_dir)
def convert_to_array(img):
im = cv2.imread(img)
img_ = Image.fromarray(im, 'RGB')
image = img_.resize((224,224))
return np.array(image)
def get_cell_name(label):
if label==0:
return "daisy"
if label==1:
return "dandelion"
model = tf.keras.experimental.load_from_saved_model('E:/model/flowers.h5', custom_objects={'KerasLayer':hub.KerasLayer})
model.build((None, 224, 224, 3))
for img in test_img:
file = os.path.join(test_dir, img)
ar=convert_to_array(file)
ar=ar/255
label=1
a=[]
a.append(ar)
a=np.array(a)
score=model.predict(a,verbose=1)
print(score)
label_index=np.argmax(score)
print(label_index)
acc=np.max(score)
Cell=get_cell_name(label_index)
print(Cell,acc)
img = cv2.imread(file)
text='this is '+Cell
cv2.putText(img,text, (5,15), cv2.FONT_HERSHEY_SIMPLEX, 0.5, 255)
cv2.imshow('image',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
Вы спрашиваете об этой структуре.
model = tf.keras.Sequential([
hub.KerasLayer(MODULE_HANDLE, output_shape=[FV_SIZE],
trainable=do_fine_tuning),
tf.keras.layers.Dropout(rate=0.2),
tf.keras.layers.Dense(train_generator.num_classes, activation='softmax',
kernel_regularizer=tf.keras.regularizers.l2(0.0001))
])
model.build((None,)+IMAGE_SIZE+(3,))
model.summary()```