чтение изображений в цикле с использованием запросов.получение изменяет поведение

#python #opencv #image-processing #python-requests #sharepoint-2013

#python #opencv #обработка изображений #python-запросы #sharepoint-2013

Вопрос:

Мне нужно прочитать тысячи изображений, размещенных на сайте sharepoint, я сохраняю их URL-адреса в списке, а затем считываю их в цикле со следующим кодом:

 def url_to_image(url):
    resp = requests.get(url).raw
    image = np.asarray(bytearray(resp.read()), dtype="uint8")
    image = cv2.imdecode(image, cv2.IMREAD_COLOR)
return image
 

Все идет хорошо, за исключением того, что скорость резко меняется между разными итерациями.
поведение, которое я смог обнаружить, заключается в том, что я могу читать и обрабатывать ~ 20 изображений подряд со скоростью 0-3 секунды на изображение, что достаточно хорошо, но затем следующие ~ 10 изображений занимают очень много времени, 10-35 секунд на изображение, и поэтому оно повторяется снова и снова.
Моей первой мыслью было, что это связано с размером изображения,
но я несколько раз запускал код для одних и тех же данных изображений, и каждый раз он вел себя по-разному.

Я проверил время для каждой части кода, и похоже, что застрявшая часть — это read() ответа.

Я попробовал также другой метод, напрямую используя api sharepoint rest, но поведение было похожим.

Насколько мне известно, проблем с сервером или подключением нет, поскольку я делаю кучу других запросов без каких-либо проблем.

Любая помощь будет высоко оценена.

Комментарии:

1. Является ли sharepoint регулирующим скорость передачи данных или скорость соединения? Может быть, получите 19; подождите пару секунд, затем получите 19; ….

2. Попробовал ваше предложение, но безуспешно.