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.
A brief video has been recorded to show the application running here on Youtube.
Please see the following README for setup instructions.
Table of Contents
- 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
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.
- Dataset link link here to Google Drive.
- Link to WIDER Face dataset here.
The trained models are on Google Drive link here for download if you wish to use the models.
- 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.
- 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.
- 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.
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.
- 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
Resource | URL |
---|---|
Adobe Color | Website |
Adobe Photoshop 2023 | Website |
Figma | Website |
NodeJS | Website |
Pip - PyPI | Website |
Python | Website |
Visual Studio C++ Build Tools | Website |
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 |
Resource | URL |
---|---|
Glob2 | Github |
OpenCV | Website / Github |
PyTorch | Website |
Image Colourisation API | GitHub |
Resource | URL |
---|---|
AWS Web Services | Documentation |
FastAPI REST Framework | Website |
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 |
Resource | URL |
---|---|
Same as above | |
Electron | Website |