Inspiration
Technology capable of producing highly realistic images has become increasingly ubiquitous, making it more difficult to distinguish between real and AI-generated images. Although these applications can be beneficial, their increasing accessibility has also raised concerns about misinformation and digital manipulation. This motivated my group to explore methods of distinguishing real images from AI-generated ones. We were particularly fascinated by how existing AI detection models are able to make this distinction. While some models focus on general visual features of an image, others examine finer details that may not be immediately noticeable to the human eye. This led us to wonder what exactly allows an AI detection model to identify an image as real or fake. To us, an AI-generated image can appear almost identical to a real photograph at first glance, yet there may still be subtle differences that are difficult for humans to detect. These differences could exist in aspects such as image textures, edges, colour patterns, or even the frequency information contained within an image. We became interested in whether these less obvious characteristics could be extracted and used to reliably distinguish between real and AI-generated images. This curiosity became the driving force behind our decision to build and investigate our own AI image detection model.
What it does
Most AI-image detectors are trained and tested on clean, high quality images, then fail the moment a photo gets re-compressed, resized, or blurred, which realistically happens before any image reaches a person's screen. Our detector is built to circumvent this issue. Rather than relying on a single signal, it routes each image through three independent branches that each read for a different kind of evidence. Firstly, a frozen CLIP-ViT backbone captures high-level semantic and compositional cues, generalizing across generators it's never seen, because it isn't fine-tuned on any one of them. Secondly, a DCT branch inspects frequency-domain statistics — the low-level fingerprints of compression and upsampling that a semantic model is blind to. Thirdly, an EfficientNet branch reads local texture patterns end-to-end. Each branch outputs its own probability that the image is AI-generated. Finally, a lightweight fusion layer then learns how much to read each branch’s input and combines them into a single confidence score. Just as importantly, every branch is trained and evaluated against a matched grid of real-world transformations (JPEG re-compression, blur, resizing, noise, color shifts, cropping) so we can tell a genuine detection failure apart from one that's merely miscalibrated, and report both together.
How we built it
We started by agreeing on CLIP as our baseline model, due for its generality. Since it's not fine-tuned on any single generator, it holds up better across unseen ones than a narrower classifier would. In order to improve its robustness, we researched what CLIP still misses, such as physical artifacts, frequency and noise patterns, and other low-level forensic signals that a semantic model like CLIP is blind to. We also looked into how different generation techniques (GANs versus diffusion models) leave distinct fingerprints, and into data-processing approaches like texture cropping, to figure out which combination of supplementary models would cover CLIP's blind spots without duplicating what it already handled well. Once we'd settled on that set of complementary branches, each team member took ownership of training and developing one independently. The plan was to bring these branches back together into a single meta-model, our fusion pipeline, that learns how much to take in each branch's prediction and combines them into one final confidence score.
Challenges we ran into
The main issue that we ran through was figuring out which dataset to train our model on. It was very easy for our models to overfit on the dataset. This means that when new data was introduced , our model was unable to accurately predict if an image is AI.
Another challenge we faced was integrating our individual models into a single pipeline. Each of our own individual models inspected different aspects of identifying AI images. While this allowed us to explore different approaches independently, combining their outputs into one coherent detection system proved to be more difficult than expected. We had to consider how the different models' predictions should be combined and whether one model's output should have more influence than another.
Other challenges along the way included testing models that ended up not fitting into our pipeline due to poor performance or incompatibility with the other two branches. Despite having to repeat the gruelling trial and error processes of researching, training and testing various models, we stayed resilient and forged ahead in the path to success and technological advancement.
Accomplishments that we're proud of
Firstly, we are most proud of the fact that we were able to come up with a multi-pronged, well-rounded solution to detect AI images by utilising detectors from distinct architectural branches. We were able to split the workload evenly between our group members, each one contributing our effort and research to our specific areas of focus and integrating it all together into a unified and functional pipeline.
Secondly, we are proud to have explored and exposed ourselves to many alternatives and iterations of the methods that could be used to solve the problem. For instance, the group worked together on a more complex, intricate and sophisticated fusion hub that processed many more factors before producing an output.
Lastly, we are very proud to have completed this challenge in the 72hrs time frame. As this is the first hackathon for our group, our knowledge and skillsets might not have been as strong as others, but our determination and tireless effort eventually allowed us to catch up with the experiences needed to produce a complete pipeline.
What we learned
[Hard Skill] Design Thinking: Given this was our first experience developing an Artificial Intelligence model, we were mostly figuring the code and final product infrastructure along the way, neglecting smaller-level details, like input and output Vector size. For instance, our 3 models were applied in various ways that did not allow for interchangeable interfaces and ease of replication into the main Pipeline. This prolonged the aggregation process of the 3 models into the main pipeline, delaying the implementation of the Cross-Attention Transformer in the Fusion Hub and we were only left with enough time to implement a Soft-Weighted “Voting System”. If we had planned out an infrastructure and paid more attention to the lower-level details, our larger ideas like the Cross-Attention Transformers could have been implemented in time in the Fusion Hub for a possible higher training accuracy and better performing model.
[Hard Skill] Data Augmentation: Our Team learnt to implement the Data Augmentation model from existing functions and replicate it
[Soft Skill] Compartmentalisation and Time Management: Over the 72 hours, our Team tended to work prolonged hours and this could have been attributed to a less-than-adequate allocation of taskings among the group.
What's next for the Starting 5
We will definitely continue to research and explore in this area of interest. During this period, we have learnt a plethora of new knowledge and skills, and we will put them into use when encountering similar problems in the future. As a group, we will continue with this project independently, making steady and continuous improvements as we continue our combined efforts. For instance, we plan to implement the more features such as a fusion hub mentioned above into our pipeline to see how far we can go in perfecting our model.
Log in or sign up for Devpost to join the conversation.