pythonにてマルチラベル分類を行った際、下のようなエラーが出ました。
python
1cv2.error: OpenCV(4.5.3) /tmp/pip-req-build-s58vuwxh/opencv/modules/imgproc/src/color.cpp:182: error: (-215:Assertion failed) !_src.empty() in function 'cvtColor'
このエラーの原因となるコードは
python
1 def __getitem__(self, index): 2 image = cv2.imread(f"../input/movie-classifier/Multi_Label_dataset/Images/{self.image_names[index]}.png") 3 4 # convert the image from BGR to RGB color format 5 image = cv2.cvtColor(image,cv2.COLOR_BGR2RGB) 6 7 # apply image transforms 8 image = self.transform(image) 9 targets = self.labels[index] 10 11 return { 12 'image': torch.tensor(image, dtype=torch.float32), 13 'label': torch.tensor(targets, dtype=torch.float32) 14 } 15
RGBに変換する際にエラーが出たと考えられます。
データセットにはグレースケール画像はないため,もともとRGBの画像が含まれていることが原因でエラーが出ているのでしょうか?
その際RGBの画像を見分ける方法を教えてくださると助かります。
ちなみに途中まで画像の読み込みはできているので一部の画像がエラーの原因になっていると思います。。。
python
1 def __getitem__(self, index): 2 image = cv2.imread(f"../input/movie-classifier/Multi_Label_dataset/Images/{self.image_names[index]}.png") 3 print(image.shape) 4 5 # convert the image from BGR to RGB color format 6 image = cv2.cvtColor(image,cv2.COLOR_BGR2RGB) 7 8 # apply image transforms 9 image = self.transform(image) 10 targets = self.labels[index] 11 12 return { 13 'image': torch.tensor(image, dtype=torch.float32), 14 'label': torch.tensor(targets, dtype=torch.float32) 15 } 16
上のようにプリント文で書き出したところ、途中まで読み込めていましたが
途中で
python
1'NoneType' object has no attribute 'shape'
というエラーが出てました。
この画像を調べる方法を教えてくださると助かります。。
またフォルダ内のshapeを全て調べたところエラーは1枚も出ていないため、何枚か読み込みに失敗していると考えられるのですが、全ての画像が同フォルダ内にあるとき、エラーの原因は何でしょうか。