On this page, you can download a C++ implementation of the histogram layer as described in [1], using Caffe [2]. Caffe is a deep learning framework made with expression, speed, and modularity in mind. It is developed by the Berkeley Vision and Learning Center (BVLC) and by community contributors.
This program is available for public use. Please, remember to recognize our work by citing [1].
Thank you.
Feature-based steganalysis has been an integral tool for detecting the presence of steganography in communication channels for a long time. In this paper, we explore the possibility to utilize powerful optimization algorithms available in convolutional neural network packages to optimize the design of rich features. To this end, we implemented a new layer that simulates the formation of histograms from truncated and quantized noise residuals computed by convolution. Our goal is to show the potential to compactify and further optimize existing features, such as the projection spatial rich model (PSRM).
C++/CUDA implementation of the histogram layer. Follow the ReadMe.txt for proper embedding of the layer within Caffe.
Sample CNN model prototxt file for modeling PSRM sub-models as described in [1]. Please note that you should specify the path to your training database in the model. Also, you need to embed a proper kernel (KV) as the first convolutional layer ("conv0"), upon instantiating and before starting the training procedure of the model.
[1] V. Sedighi, and J. Fridrich, Histogram Layer, Moving Convolutional Neural Networks Towards Feature-based Steganalysis. Proc. IS&T, Electronic Imaging, Media Watermarking, Security, and Forensics 2017, San Francisco, CA, January 29–February 2, 2017.
[2] Y. Jia, E. Shelhamer, J. Donahue, S. Karayev, J. Long, R. B. Girshick, S. Guadarrama, and T. Darrell, Caffe: Convolutional architecture for fast feature embedding. CoRR, abs/1408.5093, 2014.