如何解决使用 Keras 迁移学习的边界框回归的准确度为 0% Sigmoid 激活的输出层只输出 0 或 1
我正在尝试创建一个对象定位模型来检测汽车图像中的车牌。我使用 VGG16 模型并排除顶层以添加我自己的密集层,最后一层有 4 个节点和 sigmoid 激活以获得 (xmin,ymin,xmax,ymax)。
我使用keras提供的函数读取图像,并将其调整为(224,244,3),并且还使用了preprocess_input()函数来处理输入。我还尝试通过使用填充调整大小来手动处理图像以保持比例,并通过除以 255 对输入进行归一化。
我训练时似乎没有任何效果。我得到 0% 的训练和测试准确率。下面是我为这个模型编写的代码。
def get_custom(output_size,optimizer,loss):
vgg = VGG16(weights="imagenet",include_top=False,input_tensor=Input(shape=IMG_Dims))
vgg.trainable = False
flatten = vgg.output
flatten = Flatten()(flatten)
bBoxHead = Dense(128,activation="relu")(flatten)
bBoxHead = Dense(32,activation="relu")(bBoxHead)
bBoxHead = Dense(output_size,activation="sigmoid")(bBoxHead)
model = Model(inputs=vgg.input,outputs=bBoxHead)
model.compile(loss=loss,optimizer=optimizer,metrics=['accuracy'])
return model
X 和 y 的形状分别为 (616,224,3) 和 (616,4)。我将坐标除以各边的长度,因此 y 中的每个值都在 (0,1) 范围内。
我将在下面从 github 链接我的 python 笔记本,以便您可以查看完整代码。我正在使用 google colab 来训练模型。 https://github.com/gauthamramesh3110/image_processing_scripts/blob/main/License_Plate_Detection.ipynb
提前致谢。我真的很需要帮助。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。