Как читать xml файлов, чтобы знать координаты ограничивающих рамок моих изображений - PullRequest
0 голосов
/ 01 мая 2020

У меня есть сценарий, который способен обучать мой набор данных изображений, но я понятия не имею, как я получу этот сценарий для чтения файлов 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()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...