Caffe2 : image requirements and things we need to be aware of.

Caffe2 : requirements for image and things we need to be aware of.
 
1. Caffe2 requires image in BGR order, which is different from more commonly used RGB order. The result you get from image input of different color order can lead to entirely different results.

2. Aside from the color order requirement, there is also the image format requirement. To illustrate, For GPU processing,caffe2 expects image in CHW order(because cuDNN expects image in CHW format); for CPU processing, caffe2 expects image in HWC format.

To sum the following two points up, a raw image has to go through two preprocessing steps:

A. RGB->BGR
B. CHW->HWC(FOR CPU PROCESSING) / HWC->CHW(FOR GPU PROCESSING)

3. Resizing: images in caffe2 should be square(?), so image resizing is sometimes required. However, resizing could lead to image distortion, and in cases such as face detection distortion is not desired, so we use rescaling.

4. Rescaling: as resizing is not desired, we could use rescaling. Firstly, rescale the image by its short side, that is, if our desired image size is 128x128 and the raw image is 200x300, we can rescale the image by a factor of 200/128=1.5625 and the resulting image turns into 128x192, then we can crop 192 to 128 and the image turns into 128x128.

5. Upscaling: well....I think image upscaling is rarely used, so I will add this part when I need it.

posted @ 2017-10-13 13:48  doodleshr  阅读(165)  评论(0编辑  收藏  举报