albumentations-team/albumentations_examples

Error with shadows

ll2pakll opened this issue · 6 comments

Hi, I occasionally get this error when I use A.RandomShadow(p=0.5). If I disable this augmenter in the conveyor, the error does not appear anymore. What can it be related to?

File "C:\Users****\anaconda3\envs\python_torch\lib\site-packages\albumentations\augmentations\functional.py", line 915, in add_shadow
cv2.fillPoly(mask, vertices, 255)
cv2.error: OpenCV(4.5.4) 👎 error: (-5:Bad argument) in function 'fillPoly'
Overload resolution failed:

  • Layout of the output array img is incompatible with cv::Mat
  • Expected Ptrcv::UMat for argument 'img'

Hi. Is it possible that you provide an example that could be reproduced?

You may use Replay/Compose functionality to get the reproducibility.

мы можем говорить по русски?
Мне прислать видео или прислать пакет с кодом где я это всё запускаю?

Dipet commented

Просто приведите кусок кода в коментарии с помощью которого можно воспроизвести проблему.
Что-то вроде такого:

import albumentations as A
import numpy as np
import random
import matplotlib.pyplot as plt

random.seed(0)
np.random.seed(0)

transform = A.Compose([A.RandomShadow(p=1)])

image = np.full([100, 100, 3], 255, dtype=np.uint8)
res = transform(image=image)["image"]
plt.imshow(res)
plt.show()

Не получится просто прислать часть кода, потому что там большой пакет, зависимый от датасетов, так что надо и датасет и пакет присылать и показывать как им пользоваться. Ошибка возникает только в процессе обучения нейросети, если запускать аугументатор отдельно, то ошибка эта не возникает. Я могу снять видео где покажу структуру пакета, и то при каких обстоятельствах возникает ошибка, а вы как программисты (я не программист), уже сможете указать какие именно части пакета прислать. Либо можно просто забыть об этом, потому что тени конечно хорошая идея, но я могу обойтись и без них.

Dipet commented

Нет, так мы точно не поможем.
Просто поставтье try .. except в этом месте и сохраните трансформы через A.save(transform, "file_path") и сохраните изображение рядом. Можно использовать ReplayCompose чтобы дополнительно сохранить на каких параметрах всё падает.
Но почти навярняка проблема в том, что изображение имеет неправильный тип данных.

Вполне возможно, тут в изображения прописаны метаданные - то бишь там хранятся и метки и предикт, сделано это при помощи пакета из DFL, такие изображения спокойно открываются везде, но разумеется там есть места в коде самого изображения, которые отличаются от обычных изображений. Но ошибка с ними возникает только в случае с shadow. Совет с try exept, можно попробовать, спасибо за помощь