Я создаю модель в Керасе, которая сначала находит регион, изображение, содержащее соответствующую информацию, а затем классифицирует регион.
модель сначала имеет сверточную сеть, которая выводит (x, y, x_width, y_width )
Затем я беру исходное изображение и пользовательский слой, обрезаю эту область из изображения и масштабирую его до (64,64,3).
Я не могу заставить работать пользовательский слой хотя:
class ImageLayer(Layer):
def __init__(self):
pass
def __call__(self, inputs):
poss, imgs = inputs
for i in range(len(imgs)):
img = [[pixel for pixel in row[poss[i][1]:poss[i][1]+poss[i][3]]] for row in imgs[i][poss[i][0]:poss[i][0]+poss[i][2]]]
img = cv2.resize(img, dsize=(64, 64))
imgs[i] = list(img)
return np.array(imgs)
def get_output_shape_for(self, input_shape):
return (input_shape[0], 64, 64, 3)