首页 > 解决方案 > 图像分类+定位

问题描述

我正在研究一个图像分类问题,我的目标是创建一个模型,我可以在其中输入图像、它的类和边界框的值(x_min、y_min、x_max、y_max)。到目前为止,我只使用了图像检测,我使用 ImageDataGenerator 来加载我的图像,所以这对我来说是新事物。

在 Aurélien Géron 的 Hands-on Machine Learning with Scikit-Learn,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 只接受数组形式的数据。因此,如果有人可以帮助我理解应该如何设计模型以及如何将输入输入模型以获取图像的类别和边界框的值作为输出。

标签: pythontensorflowkerasimage-classification

解决方案


让输入数据是图像,目标值是 4 个坐标,即边界框的坐标


推荐阅读