У меня есть сценарий, который способен обучать мой набор данных изображений, но я понятия не имею, как я получу этот сценарий для чтения файлов xml каждого изображения в моем наборе данных, чтобы впоследствии обучить его, зная координаты ограничивающие рамки, я нуждался в этом, потому что я пометил все изображения в своем наборе данных, и у меня есть эти xml файлы, но я не знаю, как их использовать. Может кто-нибудь помочь мне понять, как это делается? Мой код здесь:
from tensorflow.keras.models import Sequential, load_model
from tensorflow.keras.layers import Conv2D, MaxPooling2D, Flatten
from tensorflow.keras.layers import Dense
from tensorflow.keras.preprocessing import image
from tensorflow.keras.preprocessing.image import ImageDataGenerator
from tensorflow.keras.preprocessing.image import load_img
from numpy import expand_dims, argmax
import matplotlib.pyplot as plt
imgW, imgH = 300, 240
kernel, downscale = 3, 2
path = 'C:/Users/Sergio/Documents/projeto/Dataset_f1teamcars'
trainImgs = ImageDataGenerator(rescale = 1./255)
testImgs = ImageDataGenerator(rescale = 1./255)
train = trainImgs.flow_from_directory(
path + '/train', target_size = (imgW, imgH),
batch_size = 16, class_mode = 'categorical')
test = testImgs.flow_from_directory(
path + '/test', target_size = (imgW, imgH),
batch_size = 16, class_mode = 'categorical')
classes = list(train.class_indices.keys())
model = Sequential()
model.add(Conv2D(32, kernel, input_shape = (imgW, imgH, 3),activation = 'relu'))
model.add(MaxPooling2D(pool_size = (downscale, downscale)))
model.add(Conv2D(64, kernel, activation = 'relu'))
model.add(MaxPooling2D(pool_size = (downscale, downscale)))
model.add(Flatten())
model.add(Dense(units = 128, activation = 'relu'))
model.add(Dense(units = len(classes), activation = 'softmax'))
model.compile(optimizer = 'adam',loss = 'categorical_crossentropy',metrics = ['accuracy'])
model.fit(train, epochs=2, verbose=1,validation_data=(test))
score = model.evaluate(test, verbose=0)
print('Test loss:', score[0])
print('Test accuracy:', score[1])
model.save('cnn-f1cars.h5')
cnn = load_model('cnn-f1cars.h5')
for i in range(0, 12):
file = path + '/test4.jpg'
img = image.load_img(
file, target_size = (imgW, imgH))
y = cnn.predict(expand_dims(
image.img_to_array(img), axis = 0))
image1=load_img('/Users/Sergio/Documents/projeto/Dataset_f1teamcars/test4.jpg',target_size=(300,240))
plt.imshow(image1)
plt.axis('off')
print('carro:', file, ':', classes[argmax(y)])
plt.show()