Yolo v3 Tiny on Reconfigurable Logic for Underwater Enviroments
Autor(a) principal: | |
---|---|
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 |