python - 图像分类+定位
问题描述
我正在研究一个图像分类问题,我的目标是创建一个模型,我可以在其中输入图像、它的类和边界框的值(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 只接受数组形式的数据。因此,如果有人可以帮助我理解应该如何设计模型以及如何将输入输入模型以获取图像的类别和边界框的值作为输出。
解决方案
让输入数据是图像,目标值是 4 个坐标,即边界框的坐标
推荐阅读
- docker - 使用 Dockerfile 构建 Google Cloud 并复制文件
- python - Pyinstaller 没有创建可执行文件
- javascript - 完整的日历触摸问题
- kubernetes - K8s 部署后没有创建 Pod 的标签
- javascript - 反应文本输入的本地国家代码前缀
- television - WEBOS LG TV: ares-inspect WARN Session#forward() 转发客户端 localPort: 0 => devicePort: 9998 失败
- c++ - 从容器中移动元素不会清空容器?
- javascript - 如果找到某个 url,则使用 FS 写入新文件,如果不再找到,则删除该文件
- selenium - 第二次执行鼠标操作时,我得到 MoveTargetOutOfBounds Exeption
- azure - 如何在另一个 Active Directory 订阅中保存 Azure Synapse SQL 池(数据仓库)的快照?