Текущая реализация yolo поддерживает 8-битную глубину, 3-канальные изображения png / jpg для обучения. Мне нужно обучить йоло на 16-битных, 3-канальных изображениях PNG. Какой код мне нужно изменить?
В настоящее время я изменил следующий код:
В функции image load_image_stb(char *filename, int channels)
изменено:
unsigned char *data = stbi_load(filename, &w, &h, &c, channels);
tounsigned short *data = stbi_load(filename, &w, &h, &c, channels);
im.data[dst_index] = (float)data[src_index]/255.;
toim.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 загрузить изображение с исходной глубиной.
В функции void ipl_into_image(IplImage* src, image im)
изменено:
unsigned char *data = (unsigned char *)src->imageData;
tounsigned short *data = (unsigned short *)src->imageData;
im.data[k*w*h + i*w + j] = data[i*step + j*c + k]/255.;
toim.data[k*w*h + i*w + j] = data[i*step + j*c + k]/65536.;
Какие еще изменения нужно внести, чтобы yolo тренировался на 16-битных каналах? Спасибо.