您好,我正在使用keras进行边界框预测。我用150多个时期的501张图像训练了我的网络。输入数据集包含501张图像,当我将数据分为训练和测试时,我有400幅训练图像和101个测试图像。训练后,当我尝试测试新数据时,输出边界框会稍微偏移。
我尝试增加训练的时间,但是没有用。当我检查测试图像和该测试图像的边框输出时,输出是完美的。但是当我使用model.predict获取相同测试图像的边界框hist = model.fit(X_train,y_train,batch_size = 1,nb_epoch = num_epoch,verbose = 1,validation_data = {X_test,y_test))输出是与实际值的偏差很小
如代码中所见,当我使用X_test和Y_test时,y_test的输出是目标的4个数字(x,y,width,height)被正确封闭,但是当我在同一张图片上使用model.predict()输出不是包围目标,而是将盒子放在它的外面。
hist = model.fit(X_train, y_train, batch_size=1, nb_epoch=num_epoch, verbose=1, validation_data=(X_test, y_test))
x,y = shuffle(img_data,Y, random_state=2)
# Split the dataset
X_train, X_test, y_train, y_test = train_test_split(x, y, test_size=0.2, random_state=2)
l = 89
op = (loaded_model.predict(X_test[l:l+1]))
fig,ax = plt.subplots(1)
# Display the image
ax.imshow(X_test[89].reshape(180,180))
# Create a Rectangle patch
#rect = patches.Rectangle((74,36),12,15,linewidth=1,edgecolor='r',facecolor='none')
rect = patches.Rectangle((op[0][0],op[0][1]),op[0][2],op[0][3],linewidth=1,edgecolor='r',facecolor='none')
#rect = patches.Rectangle((y_test[l][0],y_test[l][1]),y_test[l][2],y_test[l][3],linewidth=1,edgecolor='b',facecolor='none')
# Add the patch to the Axes
ax.add_patch(rect)
plt.show()
除了训练图像的数量可能很少之外,我的实现没有任何问题。我有什么想念吗?