Yolo v3 Tiny on Reconfigurable Logic for Underwater Enviroments

Detalhes bibliográficos
Autor(a) principal: Vieira, Rafael Alves
Data de Publicação: 2022
Tipo de documento: Dissertação
Idioma: eng
Título da fonte: Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
Texto Completo: http://hdl.handle.net/10316/103086
Resumo: Dissertação de Mestrado em Engenharia Eletrotécnica e de Computadores apresentada à Faculdade de Ciências e Tecnologia
id RCAP_69a347a265bc1ea57614b236d55190ba
oai_identifier_str oai:estudogeral.uc.pt:10316/103086
network_acronym_str RCAP
network_name_str Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
repository_id_str 7160
spelling Yolo v3 Tiny on Reconfigurable Logic for Underwater EnviromentsYolo v3 Tiny em Lógica Reconfigurável para Ambientes SubaquáticosFPGAYoloDetecção de objectosEdge ComputingFPGAYoloObject DetectionUnderwater ImageEdge ComputingDissertação de Mestrado em Engenharia Eletrotécnica e de Computadores apresentada à Faculdade de Ciências e TecnologiaA 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.Outro - Instituto de Sistemas e Robótica2022-10-06info:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesishttp://hdl.handle.net/10316/103086http://hdl.handle.net/10316/103086TID:203077741engVieira, Rafael Alvesinfo:eu-repo/semantics/openAccessreponame:Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)instname:Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informaçãoinstacron:RCAAP2022-10-19T20:38:31Zoai:estudogeral.uc.pt:10316/103086Portal AgregadorONGhttps://www.rcaap.pt/oai/openaireopendoar:71602024-03-19T21:19:57.000792Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos) - Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informaçãofalse
dc.title.none.fl_str_mv Yolo v3 Tiny on Reconfigurable Logic for Underwater Enviroments
Yolo v3 Tiny em Lógica Reconfigurável para Ambientes Subaquáticos
title Yolo v3 Tiny on Reconfigurable Logic for Underwater Enviroments
spellingShingle Yolo v3 Tiny on Reconfigurable Logic for Underwater Enviroments
Vieira, Rafael Alves
FPGA
Yolo
Detecção de objectos
Edge Computing
FPGA
Yolo
Object Detection
Underwater Image
Edge Computing
title_short Yolo v3 Tiny on Reconfigurable Logic for Underwater Enviroments
title_full Yolo v3 Tiny on Reconfigurable Logic for Underwater Enviroments
title_fullStr Yolo v3 Tiny on Reconfigurable Logic for Underwater Enviroments
title_full_unstemmed Yolo v3 Tiny on Reconfigurable Logic for Underwater Enviroments
title_sort Yolo v3 Tiny on Reconfigurable Logic for Underwater Enviroments
author Vieira, Rafael Alves
author_facet Vieira, Rafael Alves
author_role author
dc.contributor.author.fl_str_mv Vieira, Rafael Alves
dc.subject.por.fl_str_mv FPGA
Yolo
Detecção de objectos
Edge Computing
FPGA
Yolo
Object Detection
Underwater Image
Edge Computing
topic FPGA
Yolo
Detecção de objectos
Edge Computing
FPGA
Yolo
Object Detection
Underwater Image
Edge Computing
description Dissertação de Mestrado em Engenharia Eletrotécnica e de Computadores apresentada à Faculdade de Ciências e Tecnologia
publishDate 2022
dc.date.none.fl_str_mv 2022-10-06
dc.type.status.fl_str_mv info:eu-repo/semantics/publishedVersion
dc.type.driver.fl_str_mv info:eu-repo/semantics/masterThesis
format masterThesis
status_str publishedVersion
dc.identifier.uri.fl_str_mv http://hdl.handle.net/10316/103086
http://hdl.handle.net/10316/103086
TID:203077741
url http://hdl.handle.net/10316/103086
identifier_str_mv TID:203077741
dc.language.iso.fl_str_mv eng
language eng
dc.rights.driver.fl_str_mv info:eu-repo/semantics/openAccess
eu_rights_str_mv openAccess
dc.source.none.fl_str_mv reponame:Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
instname:Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informação
instacron:RCAAP
instname_str Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informação
instacron_str RCAAP
institution RCAAP
reponame_str Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
collection Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
repository.name.fl_str_mv Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos) - Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informação
repository.mail.fl_str_mv
_version_ 1799134092960202752