Camera Model Identification Using Convolutional Neural Networks
Authors
Ilya Kibardin
Student at Moscow Institute of Physics and Technology
Kaggle Master.
Arthur Fattakhov
Student at Moscow Institute of Physics and Technology
Kaggle Master.
Arthur Kuzin
Head of Computer Vision at X5 Retail Group.
Kaggle Grandmaster.
Ruslan Dautov
Graduate student at Shenzhen University
Vladimir Iglovikov
Computer Vision Engineer at Lyft, Level5
Kaggle Grandmaster
Camera model identification
- The competition was hosted at Kaggle.com
- Ten class classification.
- 582 teams
- Two months
- Test set: 2640 512x512 center crops
- Train set: 2750 images
- Data in test set could be transformed: Resize, Gamma, Jpeg Compression
Train data
We want State Of The Art approach => Deep Learning
Deep Learning benefits from large amounts of train data => get more data
We need unmanipulated data => filtering
Filtered on:
- Metadata. No Photoshop or Lightroom there.
- Jpeg Quality. We need 95%+
- Image size. We pick only those that match default values.
Final train and validation sets
Raw data 500Gb
Image Augmentations
We want the model to be robust to:
- Jpeg Compression
- Gamma Correction
- Resize
=> Apply augmentations on the fly
We used:
- Jpeg Compression [70, 90]
- Gamma Correction [80, 120]
- Horizontal Flip
- Random Rotate by 90, 180, 270 degrees
Training
- DenseNet 161 / 201
- Transfer learning from ImageNet
- Optimizer: Adam
- Cyclic Learning rate
- Loss: categorical cross entropy
Results: Jpeg Compression
In green, parameters range used during training.
Results: Gamma Correction
In green, parameters range used during training.
Results: Rescale
In green, parameters range used during training.
Results: crop size
In green, parameters range used during training.
Summary
- For camera model identification transfer learning works really well. Network architecture is not very relevant as long as it is good.
- If one can get more relevant labeled data => get it
- To make model robust to transformations => apply them during training.
An extended version of the presentation:
Google => Forensic Deep Learning: Kaggle Camera Model Identification Challenge
Forensic Deep Learning: Kaggle Camera Model Identification Challenge
By Vladimir Iglovikov
Forensic Deep Learning: Kaggle Camera Model Identification Challenge
- 1,828