Utilize este identificador para referenciar este registo: https://hdl.handle.net/10316/103086
Título: Yolo v3 Tiny on Reconfigurable Logic for Underwater Enviroments
Outros títulos: Yolo v3 Tiny em Lógica Reconfigurável para Ambientes Subaquáticos
Autor: Vieira, Rafael Alves
Orientador: Lobo, Jorge Nuno de Almeida e Sousa Almada
Palavras-chave: FPGA; Yolo; Detecção de objectos; Edge Computing; FPGA; Yolo; Object Detection; Underwater Image; Edge Computing
Data: 6-Out-2022
Título da revista, periódico, livro ou evento: Yolo v3 Tiny on Reconfigurable Logic for Underwater Enviroments
Local de edição ou do evento: DEEC
Resumo: A detecção de objectos é uma tarefa importante e frequentemente aplicada nas áreas da medicina, segurança e transporte, onde as soluções fornecidas por machine learning alcançam grandes resultados, mas são frequentemente obtidas através de um elevado esforço computacional.Os oceanos do nosso planeta ainda permanecem, em larga escala, inexplorados. Explorar um ambiente tão vasto seria mais fácil e eficiente utilizando dispositivos remotos, ou robôs. A fim de utilizar pequenos dispositivos robóticos para detecção de objectos, um dos métodos é usar o dispositivo remoto para recolher dados, e depois processá-los dentro de um servidor de cloud computing. No entanto, em situações em que o processamento de dados em tempo real é importante, cloud computing não é a melhor solução a seguir, uma vez que iremos lidar com muita latência, falta de largura de banda, e consumo de energia ao enviar e receber dados. Para este tipo de situações a edge computing}é uma melhor opção, o que significa que, no mesmo instante, podemos obter dados e processá-los de imediato. Os algoritmos de detecção de objectos são tipicamente executados por Graphics Processing Units (GPUs), e a sua utilização de um num dispositivo com uma fonte de energia limitada pode encurtar a autonomia numa quantidade considerável.Nesta dissertação, utilizamos uma das arquitecturas CNN mais conhecidas, YOLO (You Only Look Once), (neste caso YOLO v3 Tiny) para detectar espécies marinhas, comparando ambas as abordagens (cloud e edge computing). Para representar o processamento de dados feito pela abordagem de cloud computing, executamos o algoritmo de detecção numa GPU. Quanto à abordagem de edge computing, usamos numa Field Programmable Logic Gate Array (FPGA), que nos permite explorar diferentes equilíbrios entre consumo energético, latência, frames por segundo, e métricas de classificação.A eficácia de um pré-processamento que melhore a visibilidade das imagens subaquáticas é também analisada e explorada: verificou-se que a filtragem contribui mais para as CNNs como técnica de data augmentation, em vez de melhorar a métrica de detecção utilizando-a como um algoritmo de pré-processamento. Também consome uma grande quantidade de energia, na maioria das vezes, muito mais do que a operação de detecção.Para executar o algoritmo de detecção na FPGA, utilizámos três frameworks diferentes: PYNQ, FINN e Vitis-AI. Apenas PYNQ e Vitis-AI foram implementadas com sucesso devido a limitiações da FINN. PYNQ representa uma implementação sem paralelização ou quantização, atingindo 1,88 FPS e gastando 3,83 Joule por frame. Enquanto Vitis-AI executa uma versão quantizada e paralelizada, atingindo 70,05 FPS e 0,31 Joule por frame.Com a GPU foram alcançados 246 FPS e 0,55 Joule por frame. No entanto, uma comparação precisa com uma abordagem de cloud computing exigiria a transferência de dados entre os dispositivos de edge e cloud computing. Também é nessecário de ter em consideração a potência nominal e a potência em períodos de inatividade.
Object detection is an important and frequently applied task in the areas of medicine,security and transport, where the solutions provided by machine learning achieve greatresults, but are often obtained through heavy computational effort.To a large extent, the oceans of our planet still remain unexplored. Exploring such awide environment would be easier and more efficient using remotes devices, or robots. Inorder to use small robotic devices for object detection, one method is to rely on the remotedevice to gather data, and then process it inside a cloud computing server. However,in situations where real-time processing of data is required, cloud computing isn’t thebest path to take, since we will be dealing with a lot of latency, bandwidth shortage, andenergy consumption when sending and receiving data. For these kinds of situations edgecomputing is a better option, meaning that, in the same instant, it can obtain data andprocess right away. Object detection algorithms are typically run by Graphics ProcessingUnits (GPUs), and using one in a device with limited power can shorten the autonomy bya considerable amount.In this dissertation, we use one of the most well known CNN arquitectures, YOLO(You Only Look Once), (in this case YOLO v3 Tiny) to detect marine species, comparingboth approaches (cloud and edge computing). To represent data processing done by thecloud computing approach we run the detection algorithm on a GPU. As for the edgecomputing approach we rely on an Field Programmable Logic Gate Array (FPGA), whichallows us to explore trade-offs between power consumption, latency, frames per second,and classification metrics. The effectiveness of a pre-processing that improves the visibilityof underwater images is also analyzed and explored: it was found that filtering contributesthe most for CNNs as a data augmentation technique, rather than improving detectionmetrics by using it as a pre-processing algorithm. It also consumes a high amount ofenergy, most of the times, much more than the detection operation.To run the detection algorithm in the FPGA, we used three different frameworks:PYNQ, FINN and Vitis-AI. Only PYNQ and Vitis-AI were successfully implemented, dueto some limitations of FINN. PYNQ represents an implementation without parallelizationor quantization, achieving 1.88 FPS and spending 3.83 Joule per frame. While Vitis-AIruns a quantized and parallelized version, achieving 70.05 FPS and 0.31 Joule per frame.When comparing the results in edge computing with the cloud computing approach, byusing a GPU we achieved 246 FPS and 0.55 Joule per frame. Besides Joules per frame,the nominal power as well as the idle operational power needs to be taken in consideration.However, an accurate comparison with a cloud computing approach would require transferof data between the edge and cloud device.
Descrição: Dissertação de Mestrado em Engenharia Eletrotécnica e de Computadores apresentada à Faculdade de Ciências e Tecnologia
URI: https://hdl.handle.net/10316/103086
Direitos: openAccess
Aparece nas coleções:UC - Dissertações de Mestrado

Ficheiros deste registo:
Ficheiro Descrição TamanhoFormato
dissertacao_mestrado_Rafael_Vieira.pdf6.46 MBAdobe PDFVer/Abrir
Mostrar registo em formato completo

Visualizações de página

282
Visto em 16/jul/2024

Downloads

178
Visto em 16/jul/2024

Google ScholarTM

Verificar


Este registo está protegido por Licença Creative Commons Creative Commons