Projects

StegDetect June 2024 - August 2024

A full-stack machine learning application developed during my 2024 BAH internship to detect steganography in digital images. The system uses convolutional neural networks to identify hidden information embedded using common steganographic techniques.

Steganography is the practice of concealing information within another medium, such as an image or video. StegDetect focused on detecting hidden data produced using Least Significant Bit (LSB) and F5 steganography techniques.

StegDetect detects LSB and F5 steganography with 95% accuracy. The training and testing datasets were compiled with webscraping social media sites. Half of the collected images were embedded with random text messages using the F5 and LSB methods.

Technologies

  • FrontendNext.js, React, Tailwind CSS
  • BackendPython, Flask, TensorFlow, Java
  • DevOpsAWS EC2, CUDA

Dataset Generation

Training and testing data were assembled from images collected through automated web scraping and downloading picture datasets. To create labeled examples for supervised learning, a portion of the collected images were modified by embedding randomly generated text using the LSB and F5 algorithms.

Python and Pandas were used to automate data preparation and preprocessing before steganographic embedding. Automating this portion of the workflow reduced preprocessing time by approximately 20%, making it easier to generate a dataset with 1000+ images. A Java-based automation tool was developed to generate these steganographic images at scale. This created paired examples of original and modified images that could be used to train and evaluate the detection models.

CNN Classification

The detection system uses convolutional neural networks trained with TensorFlow to classify images according to whether hidden steganographic information is present. The models were trained to recognise patterns associated with the image modifications introduced by the LSB and F5 embedding processes. The resulting models achieved up to 95% accuracy on the evaluated dataset.

Training image-classification models across a large dataset required substantial computational resources. The project used CUDA-enabled GPUs through AWS EC2 to accelerate model training and image processing. Cloud compute resources were optimised to reduce training cycle time by approximately 40%, allowing experiments to be completed more quickly and making model changes more practical.

The machine learning pipeline was integrated into a full-stack web application. A Flask backend handled model inference and application logic, while the React-based frontend provided the user interface for interacting with the detection system.

Communication

Technical milestones and results were summarised in a formal presentation at the conclusion of the internship, providing an opportunity to communicate the project's methodology, machine learning results, and engineering challenges to a broader audience.

© 2026 Jessica. All Rights Reserved.