[ca] Actualment, els sistemes de reconeixement facial han augmentat la seva popularitat notablement i existeix una gran varietat de desplegaments de la tecnologia a escenaris molt diversos. Aplicacions com el control d'accés o la videovigilància automatitzada utilitzen algorismes de reconeixment facial per tal d'identificar persones de manera molt precisa a tot tipus d'ubicacions. Els sistemes de reconeixement facial optimitzats per a videovigilància massiva es basen en l'anàlisi exhaustiu en temps real de fotogrames a fluxes de vídeo per tal d'identificar cares en entorns multitudinaris. La primera etapa analítica emprada pels sistemes de reconeixement facial és la detecció facial. Aquesta etapa és l'encarregada de determinar de manera bastant exacte les coordenades i dimensions de totes les cares que apareixen en un fotograma de vídeo o imatge. La detecció facial constituteix, doncs, el principal coll d'ampolla al pipeline de reconeixement facial. A diferència d'altres casos d'ús com la classificació automatitzada d'imatges, que acostumen a funcionar òptimament amb imatges de resolució VGA, les aplicacions de videovigilància massiva automatitzada necessiten treballar amb resolucions d'alta o molt alta definició per tal de localitzar i identificar persones en entorns multitudinaris. Així doncs, per tal d'aconseguir augmentar les possibilitats de capturar imatges de cares amb suficient densitat de píxels i qualitat, és necessari desenvolupar algorismes i heurístiques que treballin a resolucions elevades. El principal repte consisteix en intentar executar tots els càlculs necessaris en uns pocs mil·lisegons per tal d'evitar retards inacceptables al computar les etapes posteriors a la detecció facial al pipeline de reconeixement facial. Aquesta tesi estudia diferents tècniques de paral·lelització a baix nivell i kernels que permeten resoldre de manera eficient el problema de la detecció facial escalable sobre arquitectures GPU multifil paral·leles. La primera part de la tesi desenvolupa un mecanisme de paral·lelització que utilitza les memòries locals disponibles dins del xip de manera sofisticada en combinació amb el paral·lelisme de granularitat fina i gruixuda durant l'execució de kernels per tal d'avaluar cascades de classificadors sobre vídeos d'alta definició. Es demostra que la tècnica de paral·lelització proposada soluciona el problema d'infrautilització de recursos a les arquitectures GPU i aconsegueix un factor 5X de millora respecte a mètodes que executen kernels en sèrie. La segona part de la tesi es centra en el desenvolupament d'una heurística i un framework híbrid que utilitza classificadors de característiques optimitzades de forma manual amb modernes xarxes neuronals convolucionals per tal de resoldre en temps real el problema de la detecció facial a ultra-alta definició (resolucions 4K i 8K). Els resultats obtinguts demostren que el mètode que s'ha proposat aconsegueix descartar ràpidament les regions dels fotogrames que no contenen cares, mentre que la xarxa neuronal aconseguix refinar el procediment de detecció facial a les regions que sí les contenen. La tercera part de la tesi presenta un novedós algorisme paral·lel de non-maximum suppression (NMS) que està optimitzat per les arquitectures GPU mòbils de baix consum. L'algorisme proposat es basa en una matriu booleana i reduccions paral·leles per tal d'aconseguir computar de manera escalable i eficient fotogrames que inclouen milers de deteccions simultànies d'objectes o de cares. Finalment, es demostra que el temps d'execució de l'algorisme NMS paral·lel proposat escala linealment a mesura que s'incrementa la quantitat de nuclis disponibles a les arquitectures GPU.

[en] Recently, facial recognition systems have become extremely popular and deployments of this technology are now ubiquitous. Applications ranging from access control to automated surveillance of video feeds rely on facial recognition for precisely identifying persons at multiple locations. Modern facial recognition software targeting surveillance applications typically needs to analyze video streams in order to identify faces in crowds in real time. The first analytical step to be conducted in facial recognition systems is face detection, which mainly involves determining the precise coordinates and dimensions of all faces appearing on a given image or video frame, and constitutes the first major bottleneck in the pipeline. As opposed to other use cases such as image classification that usually work flawlessly with VGA images, surveillance applications require working with high or ultra high definition resolutions in order to be able to locate and correctly identify people in crowds. Consequently, in order to maximize the chances of obtaining facial mugshots with enough quality and pixel densities to enable accurate facial identification, it is a must to be able to develop algorithms and heuristics that are capable of working with big images. The main challenge is to perform all required computations involved in just a few milliseconds to avoid the slowdown of all subsequent stages of the facial recognition pipeline. In this thesis, we study several low-level parallelization techniques and kernels that efficiently solve the problem of face detection in a scalable manner over multithreaded data-parallel GPU architectures. The first part of the thesis covers a multilevel mechanism that exploits both coarse-grained and fine-grained parallelism in combination with a smart usage of local on-die memories to reduce GPU underutilization when evaluating boosted cascades of ensembles over high-definition videos. We demonstrate that our proposed parallelization strategy solves the problem of GPU underutilization and achieves a 5X speed up when compared to methods relying on serialized kernel execution. The second part of the thesis presents a heuristic and a hybrid framework combining hand-crafted features with state-of-the-art convolutional neural networks to address the problem of real-time face detection in videos at ultra-high definition resolutions (4K and 8K). The obtained results prove that our proposed heuristic is capable of achieving real-time throughput over challenging video datasets when combining binarized hand-crafted features for discarding regions not containing faces with neural networks to further refine the underlying face detection process. The third part of the thesis presents a novel parallel non-maximum suppression (NMS) algorithm targeting the on-die GPU architectures included in modern SoCs. The contributed algorithm relies on a boolean matrix and parallel reductions to handle workloads featuring thousands of simultaneous detections on a given picture or video frame. Finally, we both formally and experimentally demonstrate that the execution time of our proposed parallel NMS algorithm linearly scales as the amount of GPU cores are increased.