Skip to content

Results: 73/100 My COMP3000 final year university project that allows users to upload CCTV footage to a web application, the project uses a custom built Face Detection AI Model to detect faces in the original CCTV footage and then increase the image quality.

License

Notifications You must be signed in to change notification settings

MadeByParker/FaceCCTV

Repository files navigation

Banner


FaceCCTV - AI Tool for CCTV Footage

Thumbnail Main Page

Before Reading

This repository contains the source code and assets for my Final Year Project at University.

Results: 73/100

DISCLAIMER ALERT: This is a piece of software that was made for my final year university project so there might be unintentional bugs with the software or the AI itself so if you are going to use it in real life applications, please be aware that the AI may not perform well for your particular user case.

Brief Demo

A brief video has been recorded to show the application running here on Youtube.

Setup Instructions

Please see the following README for setup instructions.

Table of Contents
  1. About the Project
  2. List of Project Objectives
  3. Security
  4. Hosting
  5. Screenshots
  6. Credits / Resources

About the Project

Topic Research

  • Why is the footage on CCTV cameras often bad quality? click here
  • Youtube Video explaining why CCTV cameras have poor quality. here
  • UK Crime and Safety Statistics here
  • Why are CCTV cameras essential to public safety in the UK? click here

Project Research

Project Vision

Research shows that the crime rate percentage in the UK has been on the rise, seeing a 10% increase in crimes recorded in the year ending September 2022, 6.6 million respectively, compared to the last year which wasn’t affected by the pandemic which was the year ending March 2020, which had 6.1 million crimes recorded. This is only fair as in the year ending in September 2021, police recorded that crime fell to 5.8 million due to pandemic restrictions. In the year 2022, only approximately 5% which equates to 350,000 crimes were brought to court and the criminal was charged. You wonder why?

This is partly due to the poor quality of CCTV, which makes finding the right person more difficult. Adding to this, higher-resolution cameras are on the expensive side which most businesses can’t afford, due to high costs or budget restrictions, resulting in them purchasing lower-resolution CCTV cameras which could lead to poor image quality. If you ever tried to upscale an image, it will become very pixelated and may require photo editing skills to do it professionally, which potentially adds to the costs.

My solution is an app called FaceCCTV, where users can upload an image then the app uses deep learning AI (trained beforehand with a dataset of pre-collected images). the AI can detect the faces in an image and then enhance the faces, which the user can export and use later on. The main goal is to provide a tool that is easy to use and powered by AI to help people identify criminals easier without the unnecessary costs of cameras or professionals.

Poster

Dataset

Models

The trained models are on Google Drive link here for download if you wish to use the models.

List of Project Objectives

Main Objectives:

  • Create an AI that can detect faces or bodies of people.
  • Once detected, the AI zooms in on the area and enhances it so the user can see clearly.
  • Simple User Interface capable of being used by everyone.

Side Objectives

  • The AI is optimally developed so there aren't any performance issues.
  • The AI should be able to handle any image, in size and resolution.
  • The Image could be colurised with AI after the enhancement process.

Security

  • As this project handling with very sensitive data, I am not permitted to allow users store CCTV on my website for later use in case of a data breach or if i had the intent to access the data myself as this could conflict with the rules of the Human Rights Act 1998, 2018 GDPR Regulations and etc... as stated here
  • As users can upload images to the website via a mobile network connection or through WiFi, the images will be encrypted in transit (using AES-256-CBC mode) to ensure that unauthorised parties can't intercept whilst uploading/downloading.

Hosting

The project will be hosted at facecctv.co.uk to access the web app and should be able to download on windows. The API is hosted on a third party server which stores the latest version of the AI model which is a h5 file.

Tech Stack

  • FaceCCTV AI Model - Python, Jupyter Notebook
  • FaceCCTV AI API: Python, FastAPI
  • Web App: HTML, CSS, JavaScript, TailwindCSS
  • Desktop App: Electron, HTML, CSS, JavaScript, Tailwind CSS

Screenshots

Web App

Main Page
Showcase
Settings
Face Detection
Image Enhancement
Uploading

Desktop App

Credits and Resources

General

Resource URL
Adobe Color Website
Adobe Photoshop 2023 Website
Figma Website
NodeJS Website
Pip - PyPI Website
Python Website
Visual Studio C++ Build Tools Website

AI Face Detection

Resource URL
Imutils Github
Labelme - Image Annotation Tool Github
Matplotlib Website
NumPy Website
OpenCV Website / Github
Scikit-learn Website
Split-Folders Github
Tensorflow Website
Tensorflow-GPU Website
Tensorflow-keras Website

AI Image Enhancement

Resource URL
Glob2 Github
OpenCV Website / Github
PyTorch Website
Image Colourisation API GitHub

API

Resource URL
AWS Web Services Documentation
FastAPI REST Framework Website

Web App

Resource URL
Background SVG Backgrounds
Bootstrap Icons Website
Flowbite Website
Font Awesome Website
Google Firebase Website Documentation
Inter Font Family Website / Google Font Family
JQuery Website
Tailwind CSS Website

Desktop App

Resource URL
Same as above
Electron Website

About

Results: 73/100 My COMP3000 final year university project that allows users to upload CCTV footage to a web application, the project uses a custom built Face Detection AI Model to detect faces in the original CCTV footage and then increase the image quality.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published