Как обучить YOLO (Darknet) на файлах изображений с глубиной 16 бит?

Текущая реализация 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); to unsigned short *data = stbi_load(filename, &w, &h, &c, channels);
  • im.data[dst_index] = (float)data[src_index]/255.; to 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 загрузить изображение с исходной глубиной.

В функции void ipl_into_image(IplImage* src, image im) изменено:

  • unsigned char *data = (unsigned char *)src->imageData; to unsigned short *data = (unsigned short *)src->imageData;
  • im.data[k*w*h + i*w + j] = data[i*step + j*c + k]/255.; to im.data[k*w*h + i*w + j] = data[i*step + j*c + k]/65536.;

Какие еще изменения нужно внести, чтобы yolo тренировался на 16-битных каналах? Спасибо.


person Ni9elF    schedule 22.08.2017    source источник
comment
Удалось ли вам продвинуться вперед с 16-битными данными? Я смотрел на (yolov3), и он ожидает данные rgb. Я добавил поддержку чтения 16-битных файлов в оттенках серого .pgm. Однако, если вы установите каналы = 1 и загрузите 16-битные данные, закомментируйте вызов rgbgr_image (), он будет утверждаться в искажении_изображения во время обучения, поскольку для искажения ожидается 3 канала. Казалось, я спускался в кроличью нору.   -  person RichTarK    schedule 25.04.2018


Ответы (1)


Детектор, кажется, ожидает 3 канала (rgb). Я смог заставить его тренироваться, также отключив увеличение искажения и обновив области кода, которые были жестко запрограммированы на 3 канала, то есть load_data_seg(). В моем случае я использовал opencv и загружал 16-битные файлы pgm.

person RichTarK    schedule 25.04.2018