Neural network 如何在16位深度图像文件上训练YOLO(Darknet)?

Neural network 如何在16位深度图像文件上训练YOLO(Darknet)?,neural-network,computer-vision,deep-learning,object-detection,darknet,Neural Network,Computer Vision,Deep Learning,Object Detection,Darknet,yolo的当前实现支持8位深度、3通道png/jpg图像进行训练。我需要在16位,3通道png图像上训练yolo。我需要更改什么代码 我当前已更改以下代码: 在函数图像加载\u图像\u机顶盒(字符*文件名,int通道)中,更改: unsigned char*data=stbi_加载(文件名,&w,&h,&c,通道)tounsigned short*data=stbi\u加载(文件名,&w,&h,&c,通道) im.data[dst_index]=(float)data[src_index]/2

yolo的当前实现支持8位深度、3通道png/jpg图像进行训练。我需要在16位,3通道png图像上训练yolo。我需要更改什么代码

我当前已更改以下代码:

在函数
图像加载\u图像\u机顶盒(字符*文件名,int通道)
中,更改:

  • unsigned char*data=stbi_加载(文件名,&w,&h,&c,通道)
    to
    unsigned short*data=stbi\u加载(文件名,&w,&h,&c,通道)
  • im.data[dst_index]=(float)data[src_index]/255
    im.data[dst_index]=(float)data[src_index]/65536
在函数
image load\u image\u cv(char*filename,int channels)
中,将
src=cvLoadImage(filename,flag)
更改为
src=cvLoadImage(filename,-1)
,因为
-1
标志要求opencv以原始深度加载图像

在函数void
ipl\u到图像(IplImage*src,图像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
    im.data[k*w*h+i*w+j]=数据[i*step+j*c+k]/65536

我应该做哪些其他修改以确保yolo在16位通道上进行培训?谢谢。

探测器似乎需要3个通道(rgb)。通过禁用失真增强,并更新硬编码到3个通道的代码区域,即load_data_seg(),我能够让它进行训练。在我的例子中,我使用opencv并加载16位pgm文件

您是否能够使用16位数据向前移动?我在看(yolov3),它需要rgb数据。我添加了对读取16位.pgm灰度文件的支持。但是,如果将通道设置为1,并加载16位数据,注释掉对rgbgr_image()的调用,它将在训练期间在扭曲_image中断言,因为预计会有3个通道发生扭曲。好像我要进一个兔子洞。