yolo 的当前实现支持 8 位深度、3 通道 png / jpg 图像进行训练。我需要在 16 位、3 通道 png 图像上训练 yolo。我需要更改什么代码?
我目前已更改以下代码:
在函数image load_image_stb(char *filename, int channels)
中,更改:
unsigned char *data = stbi_load(filename, &w, &h, &c, channels);
至unsigned short *data = stbi_load(filename, &w, &h, &c, channels);
im.data[dst_index] = (float)data[src_index]/255.;
至im.data[dst_index] = (float)data[src_index]/65536.;
在函数image load_image_cv(char *filename, int channels)
中,更改src = cvLoadImage(filename, flag)
为,src = cvLoadImage(filename, -1)
因为-1
标志要求 opencv 加载具有原始深度的图像。
在函数 voidipl_into_image(IplImage* src, image im)
中,更改:
unsigned char *data = (unsigned char *)src->imageData;
至unsigned short *data = (unsigned short *)src->imageData;
im.data[k*w*h + i*w + j] = data[i*step + j*c + k]/255.;
至im.data[k*w*h + i*w + j] = data[i*step + j*c + k]/65536.;
我应该进行哪些其他修改以确保 yolo 在 16 位通道上进行训练?谢谢你。