Maybe there are some None values returned by __getitem__? e.g. if img_name does not exist, io.imread may silently return None, and None can not be collated.
You could try to print image and/or type(image) in your __getitem__ to see if there is anything unusual.