University Final Major Project. Mirror available at: https://gitlab.com/oscarpocock/mmp-osp1
Oscar Pocock
523f518aa8
A few changes: - Added report - Added mid project demo content - Added README.txt - Added Experiments - Added ratings.txt file - Added unit tests - Simplified the prediction code - Added single prediction |
||
---|---|---|
.woodpecker | ||
data | ||
docs | ||
img | ||
src | ||
terraform | ||
test | ||
.gitattributes | ||
.gitignore | ||
docker-compose.yaml | ||
Dockerfile.amd-gpu | ||
Dockerfile.cpu | ||
Dockerfile.nvidia-gpu | ||
environment.yml | ||
pyproject.toml | ||
README.txt | ||
requirements.txt | ||
requirements_dev.txt | ||
setup.cfg | ||
setup.py |
Autophotographer is a tool that helps users filter the best aesthetic quality images from a video. . ├── data/ Generated data ├── docker-compose.yaml Docker-compose file for quick configuration of mount points ├── Dockerfile.amd-gpu Dockerfile for AMD GPUs ├── Dockerfile.cpu Dockerfile for CPU ├── Dockerfile.nvidia-gpu Dockerfile for Nvidia GPUs ├── docs/ Report and project proposal documents ├── environment.yml Anaconda environment dependencies ├── .git Git configuration ├── .gitattributes Git LFS tracking file ├── .gitignore Git ignore file ├── img/ Repository images ├── pyproject.toml Project's package build system requirements and information ├── README.txt Information about the project's structure ├── requirements_dev.txt Python package requirements for testing ├── requirements.txt Python package requirements ├── setup.cfg Python package configuration file ├── setup.py Python package configuration file ├── src/ Project source code ├── terraform/ Terraform IaC ├── test/ Tests └── .woodpecker/ Pipeline declarations for WoodpeckerCI data/ └── ratings.txt Single-value calculated ratings for AVA dataset terraform/ ├── google Terraform IaC for google cloud compute ├── linode Terraform IaC for linode cloud platform tests/ ├── integration/ Integrations tests ├── pytest.ini Pytest configuration file └── unit/ Unit tests .woodpecker/ ├── .lint.yml Linting pipeline └── .test.yml Testing pipeline src/ ├── autophotographer/ Main project source code ├── experiments/ Experiments to test the project ├── __init__.py ├── output CNN model output and training graphs src/autophotographer/ ├── autophotographer_main.py Code for main pipeline ├── cnn/ CNN code ├── config.yml configuration file for autophotographer_main.py ├── filters/ source code for filters (only some were extracted here) ├── __init__.py ├── predict.py Predict and graph a random batch of AVA images src/autophotographer/cnn/ ├── config.py Config python file holding variables like batch size and validation split ├── dataframe.csv Exported dataframe of AVA image path locations, ratings and IDs ├── dataset.py Functions for working with the AVA dataset ├── export/ Exported tensors (might be removed to meet the file size requirements of submission) ├── __init__.py ├── model.py CNN training script ├── predict.py Use to predict a rating given an image and a model └── __pycache__ To use the docker container environment (which includes all dependencies): In the project root type: "docker-compose build" to build the docker file "docker-compose run autophotographer" to run and exec into the environment inside the container run "pip install -e ." to install the package you can then run "python /mmp-osp1/src/autophotographer/autophotographer_main.py -i path_to_input_video_or_images" to run the pipeline. If using docker, make sure to check the docker-compose file to configure the mount points of the project. The reason why mount points were use instead of copying the source into the container on build was to reduce image sizes and speed up development. Downloading the AVA dataset: The dataset used in the project was downloaded from here: https://mega.nz/folder/9b520Lzb#2gIa1fgAzr677dcHKxjmtQ This was featured on a GitHub page (https://github.com/imfing/ava_downloader) which also includes a script to scrape the images and generate the dataset yourself or there's also a torrent link.