Самый быстрый способ загрузки изображений в Python для обработки - PullRequest
0 голосов
/ 08 мая 2018

Я хочу загрузить более 10000 изображений в мою оперативную память объемом 8 ГБ в виде пустых массивов. До сих пор я пробовал cv2.imread, keras.preprocessing.image.load_image, pil, imageio, scipy. Я хочу это сделать самый быстрый возможный способ, но я не могу понять, какой это.

Ответы [ 2 ]

0 голосов
/ 08 мая 2018

Один из самых быстрых способов - заставить ваши мультипроцессоры выполнять свою работу параллельно. Он требует распараллеливания вашей желаемой работы, он позволяет нескольким процессорам работать над вашими задачами одновременно, когда параллельная работа не является проблемой. Эта параллельная обработка позволяет вам быстро. Теперь приведенный ниже пример представляет собой простой набросок того, как он может выглядеть, вы можете попрактиковаться с небольшими функциями и затем интегрировать его с собственным кодом:

from multiprocessing import Process
    #this is the function to be parallelised
    def image_load_here(image_path):
        pass 

if __name__ == '__main__':
    #Start the multiprocesses and provide your dataset.
    p = Process(target=image_load_here,['img1', 'img2', 'img3', 'img4'])
    p.start()
    p.join()

Не стесняйтесь писать, я постараюсь помочь.

0 голосов
/ 08 мая 2018

Если вы используете библиотеку keras для создания модели deep learning, я предлагаю вам использовать класс image из пакета keras.preprocessing.

image класс предоставляет метод img_to_array, который возвращает уже массив numpy.

Кроме того, он использует NumPy - Numpy для всех своих array манипуляций / вычислений.

train_image = image.load_img(path, target_size = (height, width)) 
train_image = image.img_to_array(train_image)
...