Il s'agit d'une implémentation Tensorflow de Learning to See in the Dark dans CVPR 2018, par Chen Chen, Qifeng Chen, Jia Xu et Vladlen Koltun.
Site Web du projet
Papier
Ce code inclut le modèle par défaut pour la formation et les tests sur l'ensemble de données See-in-the-Dark (SID).
https://youtu.be/qWKUFK7MWvg
Bibliothèques python (version 2.7) requises : Tensorflow (>=1.1) + Scipy + Numpy + Rawpy.
Testé sous Ubuntu + CPU Intel i7 + Nvidia Titan X (Pascal) avec Cuda (>=8.0) et CuDNN (>=5.0). Le mode CPU devrait également fonctionner avec des modifications mineures mais non testées.
Mise à jour d'août 2018 : nous avons trouvé un certain désalignement avec la vérité terrain pour les images 10034, 10045, 10172. Veuillez supprimer ces images pour obtenir des résultats quantitatifs, mais elles peuvent toujours être utilisées pour des évaluations qualitatives.
Vous pouvez le télécharger directement depuis Google Drive pour les ensembles Sony (25 Go) et Fuji (52 Go).
Il existe une limite de téléchargement par Google Drive sur une période de temps fixe. Si vous ne parvenez pas à télécharger à cause de cela, essayez ces liens : Sony (25 Go) et Fuji (52 Go).
Nouveau : nous fournissons désormais des parties de fichiers dans Baidu Drive. Après avoir téléchargé toutes les pièces, vous pouvez les combiner en exécutant : « cat SonyPart* > Sony.zip » et « cat FujiPart* > Fuji.zip ».
Les listes de fichiers sont fournies. Dans chaque rangée, il y a un chemin d'image à exposition courte, le chemin d'image à exposition longue correspondant, l'ISO de l'appareil photo et le numéro F. Notez que plusieurs images à exposition courte peuvent correspondre à la même image à exposition longue.
Le nom du fichier contient les informations sur l'image. Par exemple, dans « 10019_00_0.033s.RAF », le premier chiffre « 1 » signifie qu'il provient de l'ensemble de test (« 0 » pour l'ensemble d'entraînement et « 2 » pour l'ensemble de validation) ; "0019" est l'identifiant de l'image ; le « 00 » suivant est le numéro dans la séquence/rafale ; "0,033s" est le temps d'exposition 1/30 seconde.
python download_models.py
Par défaut, le code prend les données du dossier "./dataset/Sony/" et "./dataset/Fuji/". Si vous enregistrez l'ensemble de données dans d'autres dossiers, veuillez modifier "input_dir" et "gt_dir" au début du code.
Par défaut, le code prend les données du dossier "./dataset/Sony/" et "./dataset/Fuji/". Si vous enregistrez l'ensemble de données dans d'autres dossiers, veuillez modifier "input_dir" et "gt_dir" au début du code.
Le chargement des données brutes et le traitement par Rawpy prennent beaucoup plus de temps que la rétropropagation. Par défaut, le code chargera toutes les données groundtruth traitées par Rawpy en mémoire sans quantification 8 bits ou 16 bits. Cela nécessite au moins 64 Go de RAM pour la formation du modèle Sony et 128 Go de RAM pour le modèle Fuji. Si vous devez l'entraîner sur une machine avec moins de RAM, vous devrez peut-être réviser le code et utiliser les données Groundtruth sur le disque. Nous fournissons les images de vérité 16 bits traitées par Rawpy : Sony (12 Go) et Fuji (22 Go).
Si vous utilisez notre code et notre ensemble de données à des fins de recherche, veuillez citer notre article :
Chen Chen, Qifeng Chen, Jia Xu et Vladlen Koltun, « Apprendre à voir dans le noir », dans CVPR, 2018.
Licence MIT.
La méthode proposée est conçue pour les données brutes des capteurs. Le modèle pré-entraîné ne fonctionne probablement pas pour les données d'un autre capteur de caméra. Nous ne prenons pas en charge les autres données de caméra. Cela ne fonctionne pas non plus pour les images après le FAI de la caméra, c'est-à-dire les données JPG ou PNG.
Il s'agit d'un projet de recherche et d'un prototype pour prouver un concept.
Généralement, il vous suffit de soustraire le bon niveau de noir et de regrouper les données de la même manière que les données Sony/Fuji. Si vous utilisez rawpy, vous devez lire le niveau de noir au lieu d'utiliser 512 dans le code fourni. La plage de données peut également différer si elle ne comporte pas 14 bits. Vous devez le normaliser à [0,1] pour l'entrée réseau.
C'est souvent parce que le modèle pré-entraîné n'a pas été téléchargé correctement. Après le téléchargement, vous devriez obtenir 4 fichiers liés aux points de contrôle pour le modèle.
Si vous avez des questions supplémentaires après avoir lu la FAQ, veuillez envoyer un e-mail à [email protected].