Как получить координаты ограничительной рамки для обнаруженного объекта - PullRequest
0 голосов
/ 29 апреля 2019

Я новичок в 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()```

1 Ответ

0 голосов
/ 30 апреля 2019

Вы пытаетесь использовать сеть классификации. Сеть классификации классифицирует все изображение в один из классов.

Для обнаружения объектов на изображении попробуйте такие сети, как RCNN, RetinaNet, Yolo и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...