Título
ProShot: Assistente pessoal de fotografia
Autor
Brosque, Pedro Miguel da Luz Cabrita de Sousa
Resumo
pt
Neste trabalho é proposta a criação de uma aplicação Android que sugere
ao utilizador como melhorar a captura da fotografia, especificamente retratos de
pessoas em tempo real, tendo por base a iluminação, o tipo de plano fotográfico
presente e as características específicas para cada um, tal como o enquadramento.
De forma a determinar qual o tipo de plano presente, é utilizada uma rede
neuronal convolucional (CNN), sendo que para tal foram efetuados testes com
várias redes diferentes e feita uma comparação para determinar que arquitetura se
adequa melhor ao problema. A rede final atinge uma precisão de 99%, utilizando
uma técnica de "transfer learning". Estes resultados foram obtidos num conjunto
de imagens recolhidas e classificadas manualmente segundo cada tipo de plano
fotográfico, tendo sido usado parte deste conjunto de dados no treino das próprias
redes.
Para determinar o enquadramento fotográfico, é proposto um método que utiliza um algoritmo de deteção facial seguido de um algoritmo de deteção de olhos
que, com base na regra dos terços dá indicações ao utilizador sobre como corrigir
o enquadramento. Foram comparados vários algoritmos de deteção facial tanto ao
nível da eficácia de deteção como do tempo de processamento, onde a solução final
assegura o equilíbrio entre os dois atingindo uma taxa de deteção de 91%.
Foi também analisada a posição dos olhos num conjunto de imagens consideradas como tendo um bom enquadramento, as quais serviram para determinar um
valor de tolerância que serviu como complemento para a regra dos terços.
en
In this work we propose the creation of an Android application that gives
suggestions to the user on how to improve the capture of photography, specifically
portraits in real time, based on lighting, the present type of photographic shot
and their specific characteristics, such as framing.
In order to determine what’s the present type of photographic shot, a convolutional neural network (CNN) is used. For this, tests were performed with
several different networks and a comparison was made to determine which architecture best fits the problem. The final network obtains an accuracy of 99% using
a transfer learning technique. These results were obtained on a data set of images, manually collected and classified according to each type of photographic shot,
where part of this data set was also used in the training of the convolutional neural
networks.
To determine the photographic framing, we propose a method that uses a facial
detection algorithm followed by an eye detection algorithm which, based on the
rule of thirds, gives the user instructions on how to correct the framing. Several
facial detection algorithms were compared in terms of detection effectiveness as
well as processing time, where the final solution ensures a balance between the
two reaching 91% of accuracy.
The position of the eyes on a set of images considered as having a good framing
was also analyzed, which helped to determine a tolerance value that served as a
complement to the rule of thirds.