Esta es una implementación de Tensorflow de Aprender a ver en la oscuridad en CVPR 2018, por Chen Chen, Qifeng Chen, Jia Xu y Vladlen Koltun.
Sitio web del proyecto
Papel
Este código incluye el modelo predeterminado para entrenamiento y prueba en el conjunto de datos See-in-the-Dark (SID).
https://youtu.be/qWKUFK7MWvg
Bibliotecas requeridas de Python (versión 2.7): Tensorflow (>=1.1) + Scipy + Numpy + Rawpy.
Probado en Ubuntu + CPU Intel i7 + Nvidia Titan X (Pascal) con Cuda (>=8.0) y CuDNN (>=5.0). El modo CPU también debería funcionar con cambios menores pero no probados.
Actualización de agosto de 2018: encontramos cierta desalineación con la verdad básica para las imágenes 10034, 10045, 10172. Elimine esas imágenes para obtener resultados cuantitativos, pero aún se pueden usar para evaluaciones cualitativas.
Puede descargarlo directamente desde Google Drive para los equipos Sony (25 GB) y Fuji (52 GB).
Hay un límite de descarga por parte de Google Drive en un período de tiempo fijo. Si no puedes descargar debido a esto, prueba estos enlaces: Sony (25 GB) y Fuji (52 GB).
Nuevo: ahora proporcionamos piezas de archivos en Baidu Drive. Después de descargar todas las piezas, puede combinarlas ejecutando: "cat SonyPart* > Sony.zip" y "cat FujiPart* > Fuji.zip".
Se proporcionan las listas de archivos. En cada fila, hay una ruta de imagen de exposición corta, la ruta de imagen de exposición larga correspondiente, el ISO de la cámara y el número F. Tenga en cuenta que varias imágenes con exposición corta pueden corresponder a la misma imagen con exposición larga.
El nombre del archivo contiene la información de la imagen. Por ejemplo, en "10019_00_0.033s.RAF", el primer dígito "1" significa que proviene del conjunto de prueba ("0" para el conjunto de entrenamiento y "2" para el conjunto de validación); "0019" es el ID de la imagen; el siguiente "00" es el número de la secuencia/ráfaga; "0,033s" es el tiempo de exposición de 1/30 segundos.
python download_models.py
De forma predeterminada, el código toma los datos de las carpetas "./dataset/Sony/" y "./dataset/Fuji/". Si guarda el conjunto de datos en otras carpetas, cambie "input_dir" y "gt_dir" al principio del código.
De forma predeterminada, el código toma los datos de la carpeta "./dataset/Sony/" y "./dataset/Fuji/". Si guarda el conjunto de datos en otras carpetas, cambie "input_dir" y "gt_dir" al principio del código.
Cargar los datos sin procesar y procesarlos con Rawpy lleva mucho más tiempo que la propagación hacia atrás. De forma predeterminada, el código cargará todos los datos fundamentales procesados por Rawpy en la memoria sin cuantificación de 8 o 16 bits. Esto requiere al menos 64 GB de RAM para entrenar el modelo Sony y 128 GB de RAM para el modelo Fuji. Si necesita entrenarlo en una máquina con menos RAM, es posible que deba revisar el código y utilizar los datos reales del disco. Proporcionamos las imágenes reales de 16 bits procesadas por Rawpy: Sony (12 GB) y Fuji (22 GB).
Si utiliza nuestro código y conjunto de datos para la investigación, cite nuestro artículo:
Chen Chen, Qifeng Chen, Jia Xu y Vladlen Koltun, "Aprender a ver en la oscuridad", en CVPR, 2018.
Licencia MIT.
El método propuesto está diseñado para datos sin procesar de sensores. El modelo previamente entrenado probablemente no funcione con datos de otro sensor de cámara. No tenemos soporte para otros datos de la cámara. Tampoco funciona para imágenes posteriores al ISP de la cámara, es decir, datos JPG o PNG.
Este es un proyecto de investigación y un prototipo para probar un concepto.
Generalmente, sólo necesita restar el nivel de negro correcto y empaquetar los datos de la misma manera que los datos de Sony/Fuji. Si usa rawpy, necesita leer el nivel de negro en lugar de usar 512 en el código proporcionado. El rango de datos también puede diferir si no es de 14 bits. Debe normalizarlo a [0,1] para la entrada de red.
A menudo se debe a que el modelo previamente entrenado no se descargó correctamente. Después de la descarga, debería obtener 4 archivos relacionados con puntos de control para el modelo.
Si tiene preguntas adicionales después de leer las preguntas frecuentes, envíe un correo electrónico a [email protected].