我正在处理一个图像分类问题,我的目标是创建一个模型,在这个模型中我可以输入图像,它的类和边界框(x_min,y_min,x_max,y_max)的值。到目前为止,我只使用了图像检测,其中我使用ImageDataGenerator加载我的图像,所以这对我来说是新的东西。
在Aurélien Géron的“使用Scikit学习的动手机器学习,Keras & TensorFlow”一书中,他简要地提到了图像分类和本地化,并提供了一个示例模型。
base_model =keras.applications.xception.Xception(weights="imagenet",include_top=False)
avg = keras.layers.GlobalAveragePooling2D()(base_model.output)
class_output = keras.layers.Dense(n_classes, activation="softmax")(avg)
loc_output = keras.layers.Dense(4)(avg)
model = keras.Model(inputs=base_model.input, outputs=[class_output, loc_output])
model.compile(loss=["sparse_categorical_crossentropy", "mse"], loss_weights=[0.8, 0.2], optimizer='adam', metrics=["accuracy"])他还提到数据应该是元组的形式。
(images, (class_labels, bounding_boxes))但据我所知,keras只接受数组形式的数据。因此,如果有人可以帮助我理解模型应该如何设计,以及应该如何向模型提供输入,以获得图像的类和边界框的值作为输出。
发布于 2021-03-12 04:43:50
假设输入数据是图像,目标值是4个坐标,即边界框的坐标
https://stackoverflow.com/questions/63728228
复制相似问题