117 lines
9.2 KiB
TeX
117 lines
9.2 KiB
TeX
\documentclass[11pt,fleqn,twoside]{article}
|
|
\usepackage{makeidx}
|
|
\makeindex
|
|
\usepackage{palatino} %or {times} etc
|
|
\usepackage{plain} %bibliography style
|
|
\usepackage{amsmath} %math fonts - just in case
|
|
\usepackage{amsfonts} %math fonts
|
|
\usepackage{amssymb} %math fonts
|
|
\usepackage{lastpage} %for footer page numbers
|
|
\usepackage{fancyhdr} %header and footer package
|
|
\usepackage{mmpv2}
|
|
%\usepackage{url}
|
|
\usepackage{hyperref}
|
|
|
|
% the following packages are used for citations - You only need to include one.
|
|
%
|
|
% Use the cite package if you are using the numeric style (e.g. IEEEannot).
|
|
% Use the natbib package if you are using the author-date style (e.g. authordate2annot).
|
|
% Only use one of these and comment out the other one.
|
|
\usepackage{cite}
|
|
%\usepackage{natbib}
|
|
|
|
\begin{document}
|
|
|
|
\name{Oscar Pocock}
|
|
\userid{osp1}
|
|
\projecttitle{Autophotographer: aesthetic judgements from image data}
|
|
\projecttitlememoir{Autophotographer} %same as the project title or abridged version for page header
|
|
\reporttitle{Project Outline}
|
|
\version{1.0}
|
|
\docstatus{Release} % change to Release when you are ready to submit your document
|
|
\modulecode{CS39440}
|
|
\degreeschemecode{G401}
|
|
\degreeschemename{Computer Science (with integrated year in industry)}
|
|
\supervisor{Hannah Dee} % e.g. Neil Taylor
|
|
\supervisorid{hmd1} % e.g. nst
|
|
|
|
%optional - comment out next line to use current date for the document
|
|
%\documentdate{8th February 2022}
|
|
\mmp
|
|
|
|
%\setcounter{tocdepth}{3} %set required number of level in table of contents
|
|
|
|
|
|
%==============================================================================
|
|
\section{Project description}
|
|
%==============================================================================
|
|
|
|
The main aim of the "Autophotographer" project is to develop a program which will select aesthetic pictures from a given video file. The user will give the program a video file, the program will then process the file, and select the most aesthetic frames using data analysis and machine learning techniques.\\
|
|
|
|
The program will be written in Python and will utilise machine learning libraries (OpenCV\cite{opencv}, PyTorch\cite{pytorch}, TensorFlow\cite{tensorflow}) to help select the most aesthetic frames in the last stage of the process. The program will initially be a CLI, if there's time I would like to develop a cross-platform GUI in something like Flutter\cite{Flutter} to improve accessibility.\\
|
|
|
|
A Convolution Neural Network (CNN) will be trained with an existing dataset (AVA\cite{ava_paper} or AADB\cite{AADB}) and used to predict and select the most aesthetic frames based on the strength of certain aesthetic features detected in the image. The majority of the program will only use the CNN once the original set of input frames has been reduced using conventional non-machine learning techniques.\\
|
|
|
|
If there's more time, I would also like to incorporate a machine learning editing system, which will attempt to enhance certain detected features automatically by editing the picture. For example, cropping to increase a match to the 'rule of thirds' or blurring the background via edge detection to increase a shallow depth of field. This would be an optional setting and would be non-destructive editing.\\
|
|
|
|
The final goal of the project is to provide a tool that minimises the manual process of selecting aesthetically significant pictures from a video. This can help improve automatic thumbnail selection for online videos, or created photo album from a video for a different way to experience the same memory. Personally, I'm very interested in using this technology as a way to aid people with certain motor and sensory conditions/disorders, who might find it difficult/impossible to take aesthetic pictures naturally.\\
|
|
|
|
%==============================================================================
|
|
\section{Proposed tasks}
|
|
%==============================================================================
|
|
|
|
\begin{itemize}
|
|
|
|
\item \textbf{Context specific research into machine learning} - I will need to research further into CNNs and how to build and finetune them, this should be done in tandem to learning a machine learning library. Work on this should start during the 3rd week.
|
|
\item \textbf{Setup tools for development} - I will need to setup tools to help me practise development methodologies. This will help me keep track and plan ahead. This should be finished by the start of the 3rd week.
|
|
\item \textbf{Learn machine learning libraries} - For the machine learning aspect of the project I will need to learn how to use machine learning libraries. I will use these to process a reduced set of the frames and determine how easthetic each of them are. This should be done in tandem to researching more about machine learning and CNNs. This should start in the 3rd week.
|
|
\item \textbf{Create a CLI tool in Python} - As I'm working with computer vision, I'll be writing the program in Python which will be the most important task. Work has already started on this and this should be expected to be finish in the last week of the project.
|
|
% \item \textbf{Create a GUI} - If there's time, I will produce a cross platform GUI to make the utility more accessible. At the moment I'm looking at utilising Flutter for this as it's cross-platform.
|
|
\item \textbf{Enhance aesthetic properties of selected photos} - If I have more time, I will also look at using the knowledge obtained through machine learning to improve the selected frames by enhancing their most significant aesthetic properties. This should only start once the original work has been completed and should be finished by the end of the project.
|
|
|
|
\end{itemize}
|
|
|
|
%==============================================================================
|
|
\section{Project deliverables}
|
|
|
|
\begin{itemize}
|
|
\item \textbf{CLI program written in Python} - A CLI Python program, with built in help that takes a video file as an input and outputs image files to a specified output folder.
|
|
\item \textbf{User and Developer Manual} - A manual for users to help them understand how to use the program and tune the parameters to their preference. Another manual for developers will be written to help people extend or make modifications to the program.
|
|
% \item \textbf{Cross-platform GUI} - A GUI will be created to make the program more accessible to users. This will be built using a cross-platform GUI library/framework. (Currently looking at using Flutter). The aim is to have this running on at least: Windows 10/11, Major Linux Distributions, MacOS (Latest).
|
|
\item \textbf{Final report} - A final report that discusssed the initial problem, details of the technical work achieved and it's development process, and a critical evaluation and insight into the project as a whole.
|
|
\end{itemize}
|
|
|
|
|
|
%==============================================================================
|
|
|
|
%
|
|
% Start to comment out / remove the following lines. They are only provided for instruction for this example template. You don't need the following section title, because it will be added as part of the bibliography section.
|
|
%
|
|
%==============================================================================
|
|
%\section*{Your Bibliography - REMOVE this title and text for final version}
|
|
%%==============================================================================
|
|
%%
|
|
%You need to include an annotated bibliography. This should list all relevant web pages, books, journals etc. that you have consulted in researching your project. Each reference should include an annotation.
|
|
%
|
|
%The purpose of the section is to understand what sources you are looking at. A correctly formatted list of items and annotations is sufficient. You might go further and make use of bibliographic tools, e.g. BibTeX in a LaTeX document, could be used to provide citations, for example \cite{NumericalRecipes} \cite{MarksPaper} \cite[99-101]{FailBlog} \cite{kittenpic_ref}. The bibliographic tools are not a requirement, but you are welcome to use them.
|
|
%
|
|
%You can remove the above {\em Your Bibliography} section heading because it will be added in by the renewcommand which is part of the bibliography. The correct annotated bibliography information is provided below.
|
|
%
|
|
% End of comment out / remove the lines. They are only provided for instruction for this example template.
|
|
%
|
|
|
|
|
|
\nocite{*} % include everything from the bibliography, irrespective of whether it has been referenced.
|
|
|
|
% the following line is included so that the bibliography is also shown in the table of contents. There is the possibility that this is added to the previous page for the bibliography. To address this, a newline is added so that it appears on the first page for the bibliography.
|
|
\newpage
|
|
\addcontentsline{toc}{section}{Initial Annotated Bibliography}
|
|
|
|
%
|
|
% example of including an annotated bibliography. The current style is an author date one. If you want to change, comment out the line and uncomment the subsequent line. You should also modify the packages included at the top (see the notes earlier in the file) and then trash your aux files and re-run.
|
|
%\bibliographystyle{authordate2annot}
|
|
\bibliographystyle{IEEEannotU}
|
|
\renewcommand{\refname}{Annotated Bibliography} % if you put text into the final {} on this line, you will get an extra title, e.g. References. This isn't necessary for the outline project specification.
|
|
\bibliography{mmp} % References file
|
|
|
|
\end{document}
|