Prévia do material em texto
<p>Lucas Torres Marques</p><p>Metodologia Baseada em IA e Visão</p><p>Computacional para Detecção e Análise de</p><p>Danos em Aerogeradores</p><p>Natal – RN</p><p>Dezembro de 2023</p><p>Lucas Torres Marques</p><p>Metodologia Baseada em IA e Visão Computacional</p><p>para Detecção e Análise de Danos em Aerogeradores</p><p>Trabalho de Conclusão de Curso de Enge-</p><p>nharia Elétrica da Universidade Federal do</p><p>Rio Grande do Norte, apresentado como</p><p>requisito parcial para a obtenção do grau de</p><p>Bacharel em Engenharia de Elétrica</p><p>Orientador: Ivanovitch Medeiros Dan-</p><p>tas da Silva</p><p>Universidade Federal do Rio Grande do Norte – UFRN</p><p>Departamento de Engenharia Elétrica – DEE</p><p>Curso de Engenharia Elétrica</p><p>Natal – RN</p><p>Dezembro de 2023</p><p>Marques, Lucas Torres.</p><p>Metodologia baseada em IA e visão computacional para detecção</p><p>e análise de danos em aerogeradores / Lucas Torres Marques. -</p><p>2023.</p><p>83 f.: il.</p><p>Trabalho de Conclusão de Curso - TCC (graduação) -</p><p>Universidade Federal do Rio Grande do Norte, Centro de</p><p>Tecnologia, Curso de bacharelado em Engenharia Elétrica. Natal,</p><p>RN, 2023.</p><p>Orientação: Prof. Dr. Ivanovitch Medeiros Dantas da Silva.</p><p>1. Manutenção de aerogeradores - TCC. 2. Visão Computacional</p><p>- TCC. 3. You Only Look Once (YOLO) - TCC. 4. Segment Anything</p><p>Model (SAM) - TCC. 5. Detecção de Objetos - TCC. 6. Segmentação</p><p>de Objetos - TCC. I. Silva, Ivanovitch Medeiros Dantas da. II.</p><p>Título.</p><p>RN/UF/BCZM CDU 621.3:004</p><p>Universidade Federal do Rio Grande do Norte - UFRN</p><p>Sistema de Bibliotecas - SISBI</p><p>Catalogação de Publicação na Fonte. UFRN - Biblioteca Central Zila Mamede</p><p>Elaborado por Fernanda de Medeiros Ferreira Aquino - CRB-15/301</p><p>Lucas Torres Marques</p><p>Metodologia Baseada em IA e Visão Computacional</p><p>para Detecção e Análise de Danos em Aerogeradores</p><p>Trabalho de Conclusão de Curso de Enge-</p><p>nharia Elétrica da Universidade Federal do</p><p>Rio Grande do Norte, apresentado como</p><p>requisito parcial para a obtenção do grau de</p><p>Bacharel em Engenharia de Elétrica</p><p>Orientador: Ivanovitch Medeiros Dan-</p><p>tas da Silva</p><p>Trabalho aprovado. Natal – RN, 06 de Dezembro de 2023:</p><p>Prof. Dr. Ivanovitch Medeiros Dantas da Silva - Orientador</p><p>UFRN</p><p>Prof. Dr. Luiz Affonso Henderson Guedes de Oliveira</p><p>UFRN</p><p>Prof. Dr. Carlos Manuel Dias Viegas</p><p>UFRN</p><p>Natal – RN</p><p>Dezembro de 2023</p><p>“Dedico este trabalho à minha amada mãe, cuja luz e amor continuam a iluminar cada</p><p>passo meu, orientando-me com sua presença eterna mesmo após sua partida.”</p><p>AGRADECIMENTOS</p><p>Agradeço a todas as pessoas que me apoiaram ao longo desta jornada acadêmica.</p><p>À minha futura esposa Giovanna, que, com seu amor, paciência e apoio inabalável, me</p><p>mostrou que mesmo os circuitos mais complexos da vida podem ser iluminados pela chama</p><p>do amor. À minha querida irmã Luciana, expresso minha profunda gratidão pela sua</p><p>inestimável parceria, amizade sincera e carinho constante, que foram essenciais em cada</p><p>etapa desta jornada acadêmica. Agradeço à minha família, cujo amor e incentivo foram a</p><p>força motriz por trás da minha conquista. Aos meus amigos, pela paciência e compreensão</p><p>durante os momentos de ausência. Ao meu professor e orientador Ivanovitch, que me</p><p>guiou e inspirou com seu conhecimento e paixão pela aprendizagem. Obrigado a todos</p><p>que fizeram parte desta jornada, ela não teria sido a mesma sem vocês.</p><p>“Scientists study the world as it is; engineers</p><p>create the world that has never been.”</p><p>(Theodore von Kármán, 1881-1963)</p><p>RESUMO</p><p>O setor eólico brasileiro é vital para a matriz energética e o desenvolvimento sustentável,</p><p>com a previsão de alcançar 44,78 GW de capacidade instalada até 2028. Desafios signi-</p><p>ficativos na operação e manutenção exigem tecnologias avançadas de monitoramento e</p><p>análise para otimizar a eficiência energética e manter a sustentabilidade. Neste contexto, a</p><p>aplicação de técnicas avançadas de visão computacional, como os modelos You Only Look</p><p>Once (YOLO) e Segment Anything Model (SAM), oferece uma solução promissora para</p><p>detecção automática e em tempo real, e segmentação de danos e sujeiras nas superfícies</p><p>externas dos aerogeradores, através de imagens de alta resolução retiradas por VANTs.</p><p>Dito isto, este trabalho tem como objetivo propor uma metodologia baseada em visão</p><p>computacional, através do treinamento e validação de quatro arquiteturas do modelo</p><p>YOLOv8, para a detecção de sujeiras e danos em tempo real, e a aplicação do modelo SAM</p><p>para a segmentação das imagens anotadas pelo melhor modelo YOLOv8, utilizando-se da</p><p>linguagem Python, do ambiente de desenvolvimento do Google Colaboratory e a ferra-</p><p>menta de pré-processamento de imagens Roboflow. As arquiteturas do modelo YOLOv8</p><p>foram treinadas em cima do conjunto de dados YOLO Annotated Wind Turbine Surface</p><p>Damage. Os resultados obtidos mostram que os modelos YOLOv8-Nano e YOLOv8-Small</p><p>se ajustaram melhor ao problema, que os modelos YOLOv8-Medium e YOLOv8-Large.</p><p>Dentre todos os modelos, o YOLOv8-Small foi o que mais se destacou, obtendo um</p><p>mAP50 de 0,903 para classe Sujeira, 0,755 para a classe Dano e 0,829 no total, com uma</p><p>velocidade de 148 FPS. Para a segmentação, o SAM obteve um resultado satisfatório na</p><p>segmentação dos danos e abaixo do esperado na segmentação das sujeiras. Desta forma,</p><p>pode-se concluir que a metodologia proposta pode ser aplicada apenas para a detecção</p><p>e segmentação de danos nas superfícies externas de aerogeradores, uma vez que para a</p><p>classe sujeira, apenas a detecção se mostrou eficiente.</p><p>Palavras-chaves: Manutenção de aerogeradores; Visão Computacional; You Only Look</p><p>Once (YOLO); Segment Anything Model; Detecção de objetos; Segmentação de objetos.</p><p>ABSTRACT</p><p>The Brazilian wind sector is pivotal to the energy matrix and sustainable development,</p><p>with an expected capacity of 44.78 GW by 2028. Significant challenges in operation and</p><p>maintenance necessitate advanced monitoring and analysis technologies to optimize energy</p><p>efficiency and maintain sustainability. In this context, the application of sophisticated</p><p>computer vision techniques, such as the “You Only Look Once” (YOLO) and “Segment</p><p>Anything Model” (SAM), presents a promising solution for the automatic, real-time</p><p>detection and segmentation of damage and dirt on the external surfaces of wind turbines,</p><p>using high-resolution images captured by UAVs. Therefore, this study aims to propose</p><p>a methodology based on computer vision, through the training and validation of four</p><p>architectures of the YOLOv8 model, for real-time detection of dirt and damage, and the</p><p>application of the SAM model for the segmentation of images annotated by the best-</p><p>performing YOLOv8 model, using the Python language, Google Colaboratory development</p><p>environment, and Roboflow image pre-processing tool. The YOLOv8 model architectures</p><p>were trained using the YOLO Annotated Wind Turbine Surface Damage dataset. The</p><p>results show that the YOLOv8-Nano and YOLOv8-Small models were better suited to</p><p>the problem than the YOLOv8-Medium and YOLOv8-Large models. Among them, the</p><p>YOLOv8-Small model stood out, achieving a mAP50 of 0.903 for the Dirt class, 0.755 for</p><p>the Damage class, and 0.829 overall, with a speed of 148 FPS. For segmentation, SAM</p><p>achieved satisfactory results in damage segmentation and below-expected results in dirt</p><p>segmentation. Thus, it can be concluded that the proposed methodology can be applied</p><p>only for the detection and segmentation of damage on external surfaces of wind turbines,</p><p>as for the dirt class, only detection proved efficient.</p><p>Keywords: Wind Turbine Maintenance; Computer Vision; You Only Look Once (YOLO);</p><p>Segment Anything Model; Object Detection; Object Segmentation.</p><p>LISTA DE ILUSTRAÇÕES</p><p>Figura 1 – Função da manutenção ao longo do tempo e sua relação com a análise</p><p>de dados. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21</p><p>Figura 2 – Representação em alto nível de um programa tradicional. . . . . . . . 23</p><p>Figura 3 – Representação em alto nível de um modelo de aprendizado de máquina. 23</p><p>Figura 4 – Representação de um perceptron. . . . . . . . . . . . . . . . . . . . . 25</p><p>Figura 5 – Exemplo de uma rede de perceptrons</p><p>tarefas subsequentes, como geração de imagens. O modelo foi treinado usando</p><p>uma fonte de dados diversificada e em grande escala, onde o motor de dados utilizado</p><p>para coletar esses dados inclui mais de 1 bilhão de máscaras e 11 milhões de imagens,</p><p>respeitando a privacidade.</p><p>Uma das principais características do SAM é sua habilidade de transferir conheci-</p><p>mento zero-shot para novas distribuições de imagens e tarefas, significando que o modelo</p><p>pode generalizar para novos conceitos e dados sem treinamento adicional. Isso é alcançado</p><p>treinando o modelo com uma tarefa de classificação de máscaras suficientemente genéricas,</p><p>para permitir a transferência zero-shot.</p><p>O SAM foi avaliado em inúmeras tarefas e demonstrou um bom desempenho</p><p>zero-shot, muitas vezes competitivo ou até superior a resultados anteriores totalmente</p><p>supervisionados. O modelo foi liberado juntamente com o conjunto de dados correspondente</p><p>(SA-1B) de 1 bilhão de máscaras e 11 milhões de imagens para fomentar a pesquisa em</p><p>modelos fundamentais para visão computacional.</p><p>43</p><p>3 METODOLOGIA</p><p>A metodologia utilizada segue alguns conceitos de fluxo de trabalho universal do</p><p>aprendizado de máquina, proposto por Chollet (2021) no livro Deep Learning with Python,</p><p>Seção 4.5. De forma geral, a metodologia universal do aprendizado de máquina consiste</p><p>em quatro passos: definição do problema; obtenção do conjunto de dados; seleção de uma</p><p>métrica de sucesso; definir um protocolo de avaliação; preparação dos dados; escolha de</p><p>um modelo suficientemente bom; e refinamento do modelo.</p><p>Figura 17 – Visão geral da metodologia. O código de cores indica o grau de similaridade</p><p>das etapas. Portanto, etapas de mesma cor serão explicadas na mesma seção.</p><p>Fonte – Elaboração própria.</p><p>3.1 Definição do problema e obtenção do conjunto de dados</p><p>A definição do problema foi melhor discutida no Capítulo 1, mas, de forma geral,</p><p>consiste no desenvolvimento de uma metodologia para o reconhecimento e segmentação</p><p>de danos e sujeiras na superfície de aerogeradores com base em visão computacional.</p><p>Capítulo 3. Metodologia 44</p><p>O conjunto de dados utilizados foi o YOLO Annotated Wind Turbine Surface</p><p>Damage (FOSTER et al., 2022), disponibilizado na plataforma do Kaggle. O conjunto de</p><p>dados de danos na superfície de turbinas eólicas, composto por imagens provenientes do</p><p>conjunto de dados de Shihavuddin e Chen (2018), foi subdividido em imagens de 586x371</p><p>pixels com anotações no formato YOLO para Sujeira e Dano. Este conjunto é constituído</p><p>por 13 mil imagens, das quais aproximadamente 3 mil contêm instâncias de uma das duas</p><p>classes mencionadas. A Figura 18 ilustra uma amostra do conjunto de dados.</p><p>(a) Imagem DJI_004_02_05.png contida</p><p>no conjunto de dados com anotação.</p><p>(b) Arquivo de anotação DJI_004_02_05.txt no</p><p>formato YOLO.</p><p>Figura 18 – Exemplo de um par (imagem, anotação) contidos no conjunto de dados YOLO</p><p>Annotated Wind Turbine Surface Damage.</p><p>3.2 Métricas de sucesso e protocolos de avaliação</p><p>Para a seleção de uma métrica de sucesso, considerando os objetivos expostos na</p><p>seção 1.1, é razoável a divisão do problema em três etapas. A primeira métrica de sucesso</p><p>consiste na qualidade da detecção dos objetos com o modelo YOLO. A segunda consiste</p><p>na velocidade desta detecção, uma vez que a proposta é realizar a detecção desses objetos</p><p>em tempo real. Já a terceira consiste na qualidade da segmentação dos danos e sujeiras</p><p>nas superfícies das turbinas.</p><p>Como explicado na subseção 2.2.3.1, pode-se verificar a qualidade da detecção dos</p><p>objetos com o modelo YOLO por meio das métricas de f1-score, mAP e IoU. A definição</p><p>de um valor exato para um bom mAP é muitas vezes complexo e subjetivo, variando de</p><p>problema a problema. Neste trabalho, considerando os valores divulgados na Tabela 1,</p><p>será considerado um bom modelo aquele que obtiver mAP e f1-score igual ou superior a</p><p>0,70, para um IoU de 0,50. Já para detecção em tempo real, utiliza-se a métrica de FPS,</p><p>tal que um bom modelo deve conseguir realizar a detecção de todos os objetos em uma</p><p>imagem com uma taxa igual ou superior a 60 FPS na GPU Tesla V100.</p><p>No caso da segmentação, a métrica utilizada seguirá o critério subjetivo (WANG;</p><p>WANG; ZHU, 2020). Uma amostra de 60 imagens do conjunto de teste, sendo 30 imagens</p><p>Capítulo 3. Metodologia 45</p><p>contendo a classe dano e 30 imagens contendo a classe sujeira, foi criada para que fosse</p><p>avaliado subjetivamente a qualidade da segmentação. Para cada imagem segmentada, será</p><p>atribuída uma nota de 1 a 5, seguindo os critérios definidos na Tabela 2.</p><p>Nota Descrição</p><p>1 A(s) área(s) segmentada(s) não corresponde(m) ao(s) objeto(s).</p><p>2 A(s) área(s) segmentada(s) corresponde(m) a uma pequena parcela do(s) objeto(s).</p><p>3 A(s) área(s) segmentada(s) corresponde(m) à(s) área(s) do(s) objeto(s), mas</p><p>também inclui(em) uma grande parcela da(s) caixa(s) delimitadora(s) que não</p><p>corresponde(m) ao(s) objeto(s).</p><p>4 A(s) área(s) segmentada(s) corresponde(m) à(s) área(s) do(s) objeto(s), mas</p><p>também inclui(em) uma pequena parcela da(s) caixa(s) delimitadora(s) que não</p><p>corresponde(m) ao(s) objeto(s).</p><p>5 A(s) área(s) segmentada(s) corresponde(m) perfeitamente à(s) área(s) do(s) ob-</p><p>jeto(s).</p><p>Tabela 2 – Descrição das notas subjetivas para avaliação do modelo Segment Anything</p><p>na segmentação de sujeiras e danos em imagens de superfícies externas dos</p><p>aerogeradores.</p><p>Para o protocolo de avaliação, uma vez que o treinamento do modelo YOLOv8 é</p><p>muito demorado e o conjunto de dados é suficientemente grande, optou-se pelo uso de um</p><p>conjunto de validação e teste fixos, criados na etapa de preparação dos dados.</p><p>3.3 Preparação dos dados</p><p>A preparação dos dados foi dividida em quatro etapas: seleção dos dados anotados;</p><p>pré-processamento das imagens; divisão do conjunto em treinamento, teste e validação; e</p><p>data augmentation, ou aumento dos dados, no conjunto de treinamento.</p><p>A seleção dos dados anotados consiste em selecionar apenas as 3 mil imagens que</p><p>contém instâncias de uma das classes Sujeira ou Dano. Desta forma, o conjunto de dados</p><p>passa a ter 3 mil imagens e arquivos de anotação, tal que toda imagem possui o seu</p><p>respectivo arquivo de anotação. Para realizar esta tarefa, utilizou-se a ferramenta de</p><p>execução de jupyter notebooks (Project Jupyter, 2023) da Google, o Google Colaboratory</p><p>(Colab) (GOOGLE, 2023a), juntamente com a ferramenta de armazenamento de arquivos</p><p>na nuvem da Google, o Google Drive (GOOGLE, 2023b). O algoritmo 1 implementa</p><p>um pseudocódigo que simplifica o funcionamento do código utilizado para a seleção das</p><p>Capítulo 3. Metodologia 46</p><p>imagens rotuladas. A versão completa, bem como as instruções para reprodução, podem</p><p>ser consultados no Apêndice A.</p><p>Algoritmo 1: Criação do conjunto de dados contendo apenas as imagens rotuladas.</p><p>Dados: Conjunto de dados bruto</p><p>Saída: Conjunto de dados contendo apenas imagens rotuladas</p><p>// extraindo as imagens e textos de anotação do dataset</p><p>1 dataset← “caminho/para/o/dataset”;</p><p>2 arquivos_textos← extrair_arquivos(dataset, “textos”);</p><p>3 arquivos_imagens← extrair_arquivos(dataset, “imagens”);</p><p>// salvando o nome dos arquivos com as anotações</p><p>4 nomes_anotados← [];</p><p>5 para cada arquivo_texto em arquivos_textos faça</p><p>6 nome← extrair_nome(arquivo_texto);</p><p>7 nomes_anotados.adicionar(nome);</p><p>8 fim</p><p>// selecionando as imagens com anotação</p><p>9 imagens_anotadas← [];</p><p>10 para cada arquivo_imagem em arquivos_imagens faça</p><p>11 nome_imagem← extrair_nome(arquivo_imagem);</p><p>12 se nome_imagem em nomes_anotados então</p><p>13 imagens_anotadas.adicionar(arquivo_imagem);</p><p>14 fim</p><p>15 fim</p><p>// criação do dataset com os pares imagem-anotação</p><p>16 dataset_anotado← criar_dataset(imagens_anotadas);</p><p>17 retorna dataset_anotado;</p><p>Para o pré-processamento, divisão e aumento do conjunto de dados, foi utilizado o</p><p>software online do Roboflow (DWYER et al., 2022). Para experimentação, dois conjuntos</p><p>de dados foram criados. Ambos utilizaram a divisão 80% para o conjunto de treinamento,</p><p>10% para validação e 10% para teste. O pré-processamento também foi comum aos</p><p>dois, resumindo-se ao redimensionamento das imagens para o formato 640x640</p><p>pixels. A</p><p>diferença entre as duas versões se restringe à etapa de augmentation. A Tabela 3 mostra a</p><p>diferença entre as duas versões. Esse experimento foi feito para observar o comportamento</p><p>do modelo em imagens mais e menos ruidosas, sobretudo na alteração de características</p><p>como saturação, brilho e exposição das imagens. Para fins de reprodução, o projeto no</p><p>Roboflow está disponível neste link.</p><p>https://universe.roboflow.com/lucas-torres/tcc-bwepw</p><p>Capítulo 3. Metodologia 47</p><p>Augmentations Versão 1.0 Versão 2.0</p><p>Inverter Horizontal e Vertical Horizontal e Vertical</p><p>Rotacionar 90º Horário e Anti-horário Horário e Anti-horário</p><p>Saturação -25% a +25% -15% a +15%</p><p>Brilho -10% a +10% -15% a +15%</p><p>Exposição -15% a +15% -10% a +10%</p><p>Ruído Até 5% dos pixels -</p><p>Tabela 3 – Diferenças dos augments aplicados na etapa de preparação dos dados nas</p><p>versões 1.0 e 2.0 do conjunto de dados.</p><p>Para cada imagem de treinamento, foram criadas três imagens após a etapa de</p><p>augmentation. Diversos estudos (KAUR; KHEHRA; MAVI, 2021; ZOPH et al., 2020;</p><p>MIKOŁAJCZYK; GROCHOWSKI, 2018) apontam a eficácia do aumento de dados no</p><p>treinamento de modelos de deep learning, seja através do balanceamento das classes ou</p><p>pelo simples aumento da base de treinamento.</p><p>3.4 Escolha e refinamento do modelo</p><p>A subseção 2.2.3 e subseção 2.2.4 trazem algumas explicações do porquê esses dois</p><p>modelos foram selecionados. A natureza do modelo YOLO, independente da sua versão,</p><p>consiste na detecção de objetos em imagens em tempo real, o que o torna uma excelente</p><p>escolha em comparação com outros modelos baseados em CNN. Enquanto o SAM se</p><p>torna uma opção viável ao se propor a realizar a segmentação de qualquer objeto em uma</p><p>imagem, inclusive em objetos delimitados pelas caixas delimitadoras resultantes de uma</p><p>predição do modelo de detecção, sem precisar de qualquer tipo de refinamento, justamente</p><p>pela sua característica de modelo zero-shot.</p><p>A versão escolhida para este trabalho foi o YOLOv8 (JOCHER; CHAURASIA;</p><p>QIU, 2023), por ser a versão mais recente. Além disso, o YOLOv8 trás consigo uma</p><p>grande comodidade, uma vez que a sua implementação foi feita pela empresa Ultralytics,</p><p>facilitando as etapas de treinamento, validação e teste do modelo.</p><p>Durante a etapa de treinamento, foram treinados um total de quatro modelos, cada</p><p>um com uma arquitetura do YOLOv8, sendo elas a nano, small, medium e large. Cada</p><p>arquitetura apresenta um balanço entre velocidade e precisão, sendo a nano a arquitetura</p><p>mais rápida e, supostamente, a menos precisa, e a large a mais lenta e, supostamente, a</p><p>mais precisa. Uma vez que os modelos de deep learning são susceptíveis ao sobreajuste, as</p><p>arquiteturas mais rápidas podem apresentar métricas melhores nos conjuntos de teste. A</p><p>Capítulo 3. Metodologia 48</p><p>Tabela 4 mostra os principais hiper-parâmetros utilizados em todos os modelos treinados.</p><p>Vale ressaltar que o treinamento de todos os modelos partiu dos pesos pré-treinados na</p><p>base COCO, com o peso de todas as camadas livres, isto é, sem congelamento de camadas.</p><p>Chave Valor Descrição</p><p>epochs 200 Número de épocas para treinar.</p><p>patience 50 Épocas de espera sem melhora observável para parar</p><p>o treino.</p><p>batch 16 Número de imagens por lote (-1 para AutoBatch).</p><p>imgsz 640 Tamanho das imagens de entrada como inteiro.</p><p>save True Salvar checkpoints de treino e resultados de previsão.</p><p>pretrained True Usar modelo pré-treinado (bool) ou carregar pesos</p><p>(str).</p><p>optimizer “AdamW” Otimizador a ser usado.</p><p>seed 48 Semente aleatória para reprodutibilidade.</p><p>freeze None Congelar primeiras camadas ou lista de índices de</p><p>camadas.</p><p>dropout 0.0 Usar regularização por dropout.</p><p>val True Validar/testar durante o treinamento.</p><p>Tabela 4 – Principais hiper-parâmetros utilizados no treinamento dos quatro modelos do</p><p>YOLOv8.</p><p>Os modelos foram treinados e validados no ambiente do Google Colaboratory</p><p>(Colab) (GOOGLE, 2023a), utilizando-se da GPU Tesla V100 e 25 GB de memória RAM.</p><p>Com essa configuração, o treinamento durou, aproximadamente, 4 horas para o modelo</p><p>nano e 12 horas para o modelo large. A quantificação exata das horas de treinamento é</p><p>desafiador, uma vez que o ambiente do Colab se desconecta periodicamente, para evitar</p><p>desperdício de recursos computacionais, fazendo com que essa medição seja aproximada.</p><p>Esse valor aproximado foi retirado da ferramenta Weights and Biases (W&B) (BIEWALD,</p><p>2020), que realiza o rastreamento do modelo, através de suas métricas, e dos recursos</p><p>computacionais do sistema, como o tempo de execução, consumo da GPU, utilização da</p><p>GPU, entre outros.</p><p>3.5 Protótipo para Validação</p><p>Por fim, um protótipo da metodologia proposta foi montado no Colab, com o</p><p>objetivo de retirar algumas métricas importantes para a validação da metodologia. O</p><p>algoritmo de implementação do protótipo segue a estrutura do pseudocódigo exibido</p><p>Capítulo 3. Metodologia 49</p><p>no algoritmo 2. O código completo pode ser consultado no Apêndice D no final deste</p><p>trabalho.</p><p>Algoritmo 2: Criação do protótipo em Python para a detecção em tempo real e</p><p>segmentação dos danos e sujeiras nas superfícies externas dos aerogeradores.</p><p>Dados: Arquivos de pesos e configurações dos modelos pré-treinados do SAM e</p><p>YOLOv8-Small.</p><p>Saída: Conjunto de dados rotulados e segmentados.</p><p>// Leitura do modelo Segment Anything</p><p>1 sam← ler_modelo_sam(checkpoint, destino, tipo, dispositivo);</p><p>// Leitura do modelo YOLOv8-Small</p><p>2 yolo← ler_modelo_yolo(arquivo_pesos);</p><p>// Leitura do dataset pelo Roboflow</p><p>3 dataset← ler_dataset(chave_roboflow);</p><p>// Realizando a detecção e segmentação nas imagens de teste</p><p>4 (imagens_detectadas, imagens_segmentadas)←</p><p>detectar_e_segmentar(dataset.teste.imagens);</p><p>// Plotando as imagens para validação</p><p>5 plotar_grade_imagens((imagens_detectadas, imagens_segmentadas));</p><p>6 retorna (imagens_detectadas, imagens_segmentadas)dataset_anotado;</p><p>De forma geral, o protótipo consiste na leitura dos modelos pré-reinados do YOLOv8-</p><p>Small e SAM, seguido da aplicação da detecção e segmentação das imagens, para uma</p><p>parcela das imagens de teste. Por fim, realiza-se a plotagem das imagens com as caixas</p><p>delimitadoras, resultado da detecção dos danos e sujeiras, e as imagens segmentadas, lado</p><p>a lado, em forma de grade, para cada uma das imagens.</p><p>Na próxima seção, serão apresentados e discutidos os resultados obtidos durante o</p><p>desenvolvimento da metodologia proposta neste trabalho.</p><p>50</p><p>4 RESULTADOS E DISCUSSÕES</p><p>Uma vez que a metodologia proposta para o reconhecimento em tempo real e</p><p>segmentação de danos e na superfície de aerogeradores consiste na combinação de dois</p><p>modelos, como descrito no Capítulo 3, é conveniente a divisão dos resultados em três seções,</p><p>uma para cada modelo, isto é, YOLOv8 e SAM, e outra para a análise da metodologia</p><p>como um todo.</p><p>Capítulo 4. Resultados e Discussões 51</p><p>Figura 19 – Exemplos de saídas dos modelos YOLOv8-Small e SAM, retirados do protótipo</p><p>de validação. Na esquerda, tem-se a detecção das instâncias do tipo Dano e/ou</p><p>Sujeira. Enquanto que na direita, tem-se a segmentação de cada instância</p><p>a partir das imagens de saída da detecção. A cor verde representa a classe</p><p>Sujeira e vermelha a classe Dano.</p><p>Capítulo 4. Resultados e Discussões 52</p><p>4.1 Modelo YOLOv8</p><p>Os resultados obtidos estão resumidamente dispostos na Tabela 5. Analisando-se</p><p>apenas as métricas expostas nesta tabela, pode-se concluir que o modelo que oferece a</p><p>melhor relação entre precisão, recall e velocidade é o modelo YOLOv8-Small, alcançando</p><p>um F1-score de 0,804, mAP50 de 0,827 e 148 FPS.</p><p>Modelo YOLOv8 Precisão Recall F1-score mAP50 mAP50-95 FPS</p><p>Nano 0,751 0,798 0,774 0,826 0,557 273</p><p>Small 0,860 0,782 0,819 0,829 0,578 148</p><p>Medium 0,814 0,727 0,768 0,813 0,525 127</p><p>Large 0,677 0,547 0,605 0,629 0,343 76</p><p>Tabela 5 – Comparação geral dos diferentes modelos YOLOv8 treinados para a detecção</p><p>de Sujeiras e Danos nas superfícies externas de aerogeradores.</p><p>Todos os modelos obtiveram resultados acima do limiar definido na seção 3.2,</p><p>entretanto, para concluir que todos os modelos são eficientes na detecção tanto de Su-</p><p>jeiras, quanto de Danos nas superfícies</p><p>externas dos aerogeradores, é necessário um</p><p>aprofundamento nas métricas individuais de cada modelo.</p><p>Começando pelo modelo YOLOv8-Nano, a Figura 20 expõe as curvas de Precisão-</p><p>Recall e de F1-score. Na Figura 20a, é evidente que o modelo consegue detectar as Sujeiras</p><p>na superfície externa de aerogeradores com F1-score superior a 0,8 para os níveis de</p><p>confiança de 0,2 a 0,7. Entretanto, o modelo não obteve um resultado tão bom na detecção</p><p>de Danos, embora alcance as métricas de validação impostas anteriormente. Esse padrão</p><p>se mantém na análise da Figura 20b, em que o mAP para a classe Sujeira é de 0,916,</p><p>enquanto a classe Dano obtém apenas 0,736. A Tabela 6 expõe os resultados obtidos neste</p><p>modelo. A Matriz de Confusão é exposta na Figura 21.</p><p>Classe Imagens Instâncias Precisão Recall mAP50 mAP50-95</p><p>Todas 299 942 0,813 0,798 0,826 0,557</p><p>Sujeira 299 50 0,874 0,920 0,916 0,691</p><p>Dano 299 892 0,751 0,676 0,736 0,423</p><p>Tabela 6 – Métricas do modelo YOLOv8n para a detecção de Sujeiras e Danos nas</p><p>superfícies externas de aerogeradores.</p><p>Para o modelo YOLOv8-Small, a Figura 22 expõe as curvas de Precisão-Recall</p><p>e de F1-score. Na Figura 22a, também fica evidente que o modelo consegue detectar as</p><p>Sujeiras na superfície externa de aerogeradores com F1-score superior a 0,8 para os níveis</p><p>de confiança de 0,2 a 0,6. Entretanto, o modelo também não obteve um resultado tão</p><p>bom na detecção de Danos, embora também alcance as métricas de validação impostas</p><p>Capítulo 4. Resultados e Discussões 53</p><p>(a) Curva de F1-Score para o modelo YOLOv8-Nano, com valor máximo de 0,81 em 0,361</p><p>de confiança.</p><p>(b) Curva de Precisão-Recall do modelo YOLOv8-Nano. A partir desta curva, é calculado</p><p>o valor de mAP de 0,826.</p><p>Figura 20 – Gráficos de avaliação do modelo YOLOv8-Nano.</p><p>Capítulo 4. Resultados e Discussões 54</p><p>Figura 21 – Matriz de confusão para o modelo YOLOv8-Nano.</p><p>anteriormente. Esse padrão também se mantém na análise da Figura 24b, em que o mAP</p><p>para a classe Sujeira é de 0,903, enquanto a classe Dano obtém apenas 0,755. A Tabela 7</p><p>expõe os resultados obtidos neste modelo. A Matriz de Confusão é exposta na Figura 23.</p><p>Classe Imagens Instâncias Precisão Recall mAP50 mAP50-95</p><p>Todas 299 942 0,860 0,782 0,829 0,578</p><p>Sujeira 299 50 0,937 0,920 0,903 0,72</p><p>Dano 299 892 0,782 0,644 0,755 0,436</p><p>Tabela 7 – Métricas do modelo YOLOv8s para a detecção de Sujeiras e Danos nas super-</p><p>fícies externas de aerogeradores.</p><p>Assim como os demais modelos, a Figura 24 expõe as curvas de Precisão-Recall e</p><p>de F1-score do modelo YOLOv8-Medium. Na Figura 24a, entretanto, fica evidente que o</p><p>modelo consegue detectar as Sujeiras na superfície externa de aerogeradores com F1-score</p><p>superior a 0,8, mas apenas para os níveis de confiança de 0,4 a 0,55, enquanto a redução</p><p>Capítulo 4. Resultados e Discussões 55</p><p>(a) Curva de F1-Score para o modelo YOLOv8-Small, com valor máximo de 0,82 em 0,394</p><p>de confiança.</p><p>(b) Curva de Precisão-Recall do modelo YOLOv8-Small. A partir desta curva, é calculado</p><p>o valor de mAP de 0,829.</p><p>Figura 22 – Gráficos de avaliação do modelo YOLOv8-Small.</p><p>Capítulo 4. Resultados e Discussões 56</p><p>Figura 23 – Matriz de confusão para o modelo YOLOv8-Small.</p><p>do f1-score da detecção de Danos reduziu minimamente. Pode-se observar, também, a</p><p>piora das métricas na análise da Figura 24b, em que o mAP para a classe Sujeira foi de</p><p>de 0,884, enquanto a classe Dano obteve apenas 0,741. A Tabela 8 expõe os resultados</p><p>obtidos neste modelo. A Matriz de Confusão é exposta na Figura 25.</p><p>Este tipo de piora na performance do modelo devido o aumento da complexidade</p><p>do mesmo, pode indicar um sobreajuste às imagens que contém objetos de classe Sujeira</p><p>durante o treinamento do modelo. Entretanto, para ter a certeza de que este foi o caso, é</p><p>necessário analisar os resultados obtidos em um modelo ainda mais complexidade, como é</p><p>o caso do YOLOv8-Large.</p><p>A Figura 26 expõe as curvas de Precisão-Recall e de F1-score do modelo YOLOv8-</p><p>Large. Na Figura 26a, fica evidente que a piora significativa do modelo tanto na detecção</p><p>das Sujeiras, quanto dos Danos, não alcançando valores superior a 0,7 para nenhum nível</p><p>de confiança em ambas as classes, resultando em um f1-score médio máximo de 0,61 para</p><p>o nível de confiança 0,374. Assim como no modelo anterior, pode-se observar a piora das</p><p>Capítulo 4. Resultados e Discussões 57</p><p>(a) Curva de F1-Score para o modelo YOLOv8-Medium, com valor máximo de 0,77 em</p><p>0,419 de confiança.</p><p>(b) Curva de Precisão-Recall do modelo YOLOv8-Medium. A partir desta curva, é calcu-</p><p>lado o valor de mAP de 0,813.</p><p>Figura 24 – Gráficos de avaliação do modelo YOLOv8-Medium.</p><p>Capítulo 4. Resultados e Discussões 58</p><p>Classe Imagens Instâncias Precisão Recall mAP50 mAP50-95</p><p>Todas 299 942 0,814 0,727 0,813 0,525</p><p>Sujeira 299 50 0,827 0,862 0,884 0,622</p><p>Dano 299 892 0,800 0,593 0,741 0,427</p><p>Tabela 8 – Métricas do modelo YOLOv8m para a detecção de Sujeiras e Danos nas</p><p>superfícies externas de aerogeradores.</p><p>Figura 25 – Matriz de confusão para o modelo YOLOv8-Medium.</p><p>métricas na análise da Figura 24b, em que o mAP para a classe Sujeira foi de de 0,599,</p><p>enquanto a classe Dano obteve 0,660. A Tabela 9 expõe os resultados obtidos neste modelo.</p><p>A Matriz de Confusão é exposta na Figura 27.</p><p>Capítulo 4. Resultados e Discussões 59</p><p>(a) Curva de F1-Score para o modelo YOLOv8-Large, com valor máximo de 0,61 em 0,374</p><p>de confiança.</p><p>(b) Curva de Precisão-Recall do modelo YOLOv8-Large. A partir desta curva, é calculado</p><p>o valor de mAP de 0,629.</p><p>Figura 26 – Gráficos de avaliação do modelo YOLOv8-Large.</p><p>Capítulo 4. Resultados e Discussões 60</p><p>Classe Imagens Instâncias Precisão Recall mAP50 mAP50-95</p><p>Todas 299 942 0,677 0,547 0,629 0,343</p><p>Sujeira 299 50 0,640 0,540 0,599 0,33</p><p>Dano 299 892 0,713 0,554 0,66 0,356</p><p>Tabela 9 – Métricas do modelo YOLOv8l para a detecção de Sujeiras e Danos nas super-</p><p>fícies externas de aerogeradores.</p><p>Figura 27 – Matriz de confusão para o modelo YOLOv8-Large.</p><p>Vale ressaltar que este foi o único modelo que não concluiu as 200 épocas do</p><p>treinamento, sendo interrompido pela técnica de early stopping, isto é, parada antecipada</p><p>do treinamento, na época 75, uma vez que o modelo não apresentou melhora do mAP50</p><p>após 50 épocas.</p><p>Capítulo 4. Resultados e Discussões 61</p><p>Figura 28 – Gráfico do mAP50 pelas épocas de treinamento do modelo YOLOv8l. A</p><p>linha azul apresenta o valor real, enquanto o pontilhado laranja apresenta a</p><p>suavização da curva.</p><p>Fonte – Elaboração própria.</p><p>Considerando a Figura 28 e as discussões anteriores, fica evidente que, o modelo se</p><p>sobreajustou aos dados. Desta forma, é possível obter uma melhora tanto para este modelo,</p><p>quanto para o YOLOv8-Medium, através da aplicação de técnicas de regularização, como</p><p>Dropout (SRIVASTAVA et al., 2014), regularização L1 e L2 (YING, 2019), ou o aumento no</p><p>número de imagens rotuladas através do augmentation (SHORTEN; KHOSHGOFTAAR,</p><p>2019).</p><p>4.2 Modelo Segment Anything</p><p>O modelo Segment Anything obteve um bom desempenho na segmentação da</p><p>classe Danos. A nota média foi de 3,57, com desvio padrão de 1,20, enquanto a mediana</p><p>foi de 3,5. O desvio padrão foi consideravelmente alto e, ao analisar mais a fundo o</p><p>motivo, percebe-se que a eficiência do modelo varia consideravelmente. Alguns pontos de</p><p>destaque são: quando a imagem possui grande diferença de luminosidade, principalmente</p><p>em que apresentam sombras que cortam o objeto Dano detectado, o modelo não consegue</p><p>segmentar a parte sombreada, ou vice-versa; quando o tamanho do objeto Dano é pequeno,</p><p>o modelo segmenta uma área um pouco maior do que o necessário; por fim, quando a</p><p>resolução do objeto é pequena, por exemplo, quando a foto é tirada de muito longe ou</p><p>quando a qualidade da foto é baixa, o modelo segmenta uma parte do objeto ou segmenta</p><p>uma área maior do que o objeto Dano. A Tabela 10 exibe as principais métricas para cada</p><p>classe.</p><p>Desta forma, tendo em vista a descrição das notas apresentadas na Tabela 2, fica</p><p>evidente que o modelo, na maior parte das imagens de avaliação, conseguiu segmentar</p><p>uma área que corresponde ao objeto Dano,</p><p>mas envolvendo uma parcela considerável, isto</p><p>Capítulo 4. Resultados e Discussões 62</p><p>é, às vezes grande, outras pequena, da caixa delimitadora que não corresponde ao objeto.</p><p>Classe Média Mediana</p><p>Danos 3, 57± 1, 20 3,5</p><p>Sujeiras 1, 93± 0, 81 2,0</p><p>Total 2, 75± 1, 31 3,0</p><p>Tabela 10 – Avaliação do modelo Segment Anything na segmentação de sujeiras e danos</p><p>em imagens de superfícies externas dos aerogeradores.</p><p>Para a classe Sujeira, o modelo não obteve um bom desempenho. Uma vez que</p><p>a maioria das imagens que contém objetos da classe Sujeira são retiradas das pás das</p><p>turbinas, o modelo acabava por segmentar toda a pá, ou segmentava de forma aleatória,</p><p>aparentemente, apenas uma parte da superfície das pás, que podiam ou não englobar toda</p><p>a área da sujeira. Isto reflete nas métricas de avaliação, atingindo uma nota média de 1,93</p><p>e desvio padrão de 0,81, enquanto a mediana foi de 2,0. Desta forma, fica evidente que o</p><p>SAM, na maior parte das imagens de avaliação, conseguiu segmentar apenas uma pequena</p><p>parcela do objeto Sujeira, de acordo com a descrição das notas apresentadas na Tabela 2.</p><p>Na próxima seção, serão apresentadas as conclusões obtidas neste trabalho, suas</p><p>principais limitações e propostas para trabalhos futuros.</p><p>63</p><p>5 CONCLUSÃO</p><p>Este trabalho pretendeu explorar o desenvolvimento de uma nova metodologia</p><p>capaz de identificar, em tempo real, e segmentar danos e acúmulo de sujeira nas superfícies</p><p>externas dos aerogeradores, através de imagens em alta definição de VANTs ou câmeras</p><p>posicionadas na própria turbina, utilizando-se de modelos do estado da arte no segmento</p><p>de reconhecimento de objetos e segmentação de imagens, sendo eles o YOLOv8 e o SAM,</p><p>respectivamente.</p><p>Para se atingir uma compreensão do desenvolvimento da metodologia proposta,</p><p>definiu-se três objetivos específicos. O primeiro consiste em identificar na literatura as</p><p>principais tecnologias no reconhecimento de objetos em tempo real e segmentação de</p><p>imagens, em que foi identificado a preferência em trabalhos mais recentes, pelos modelos</p><p>de aprendizado profundo, sendo o YOLO um dos principais nomes do reconhecimento de</p><p>objetos em tempo real. Enquanto o SAM é considerado um modelo promissor na área de</p><p>segmentação de objetos em imagens, devido a sua característica zero-shot, que permite o</p><p>uso do modelo em diversas tarefas de classificação sem a necessidade de um refinamento</p><p>do modelo, através de um novo treinamento, tendo poucas publicações sobre o modelo.</p><p>Em seguida, realizou-se o treinamento e validação de quatro arquiteturas do modelo</p><p>YOLOv8 para o problema de detecção em tempo real de danos à superfície e acúmulo de</p><p>sujeira nos aerogeradores, a partir de imagens em alta definição de VANTs. A análise dos</p><p>resultados obtidos, discutidos na seção 4.1, permite concluir que os modelos de menor</p><p>complexidade, isto é, YOLOv8-Nano e YOLOv8-Small, obtiveram resultados superiores</p><p>aos modelos de maior complexidade, YOLOv8-Medium e YOLOv8-Large. Esse resultado</p><p>contra-intuitivo se deve ao sobreajuste dos modelos mais complexos, sobretudo o YOLOv8-</p><p>Large. Dentre todos os modelos, o YOLOv8-Small foi o que se destacou, obtendo um</p><p>mAP50 de 0,903 para classe Sujeira e 0,755 para a classe Dano, com uma velocidade de</p><p>148 FPS. Desta forma, pode-se concluir que o modelo consegue realizar a detecção em</p><p>tempo real de Danos e Sujeiras nas superfícies externas de aerogeradores, a partir das</p><p>imagens retiradas por VANTs, com uma boa precisão, atingindo o objetivo proposto.</p><p>Por fim, foi feito uma validação do modelo SAM para o problema de segmentação de</p><p>danos à superfície e acúmulo de sujeira nos aerogeradores a partir de imagens previamente</p><p>reconhecidas pelo modelo YOLO. A partir dos resultados discutidos na seção 4.2, pode-se</p><p>concluir que o SAM realiza a tarefa de segmentação dos danos nas superfícies externas</p><p>dos aerogeradores de forma satisfatória, segmentando os objetos corretamente e, na</p><p>maioria das vezes, segmentando apenas uma pequena área que não corresponde ao objeto</p><p>reconhecido pelo modelo YOLO. Entretanto, o modelo não consegue segmentar as sujeiras</p><p>Capítulo 5. Conclusão 64</p><p>nas superfícies externas dos aerogeradores de forma satisfatória, segmentando os objetos</p><p>de forma aleatória, na maioria das vezes. Desta forma, o objetivo proposto foi atingido</p><p>parcialmente, uma vez que o modelo possui alta precisão para os danos, mas baixa precisão</p><p>para as sujeiras.</p><p>Desta forma, pode-se concluir que a metodologia proposta pode ser aplicada apenas</p><p>para a detecção e segmentação de danos nas superfícies externas de aerogeradores, a partir</p><p>de imagens em alta resolução retiradas de VANTs, uma vez que para a classe sujeira,</p><p>apenas a detecção se mostrou eficiente.</p><p>Este trabalho se limitou a realizar o treinamento de quatro arquiteturas do modelo</p><p>YOLOv8, enquanto o modelo Segment Anything foi aplicado logo em seguida, sem qualquer</p><p>tipo de pré-processamento entre as etapas de detecção e segmentação. Além disso, não</p><p>foi realizado nenhum tipo de treinamento do modelo de segmentação na base de dados</p><p>utilizada neste trabalho, isto é, YOLO Annotated Wind Turbine Surface Damage. Outra</p><p>limitação consiste na busca de hiper-parâmetros ideais para as diferentes arquiteturas do</p><p>modelo YOLOv8, que não foi realizada devido a falta de recursos computacionais.</p><p>Em pesquisas futuras, pode-se testar outros modelos YOLO, como o YOLOv6 e</p><p>YOLOv7, que vêm se atualizando rapidamente nos últimos anos, bem como outros modelos</p><p>de segmentação de objetos em imagens para efeito de comparação. Além disso, pode-se</p><p>testar o refinamento do modelo Segment Anything, YOLOv8-Small e YOLOv8-Medium,</p><p>na base de dados utilizada neste trabalho, com o objetivo de melhorar a performance da</p><p>detecção e segmentação dos danos e sujeiras nas superfícies externas de aerogeradores.</p><p>65</p><p>REFERÊNCIAS</p><p>BIEWALD, L. Experiment Tracking with Weights and Biases. 2020. Software disponível</p><p>em wandb.com. Disponível em: .</p><p>BOCHKOVSKIY, A.; WANG, C.-Y.; LIAO, H.-Y. M. Yolov4: Optimal speed and</p><p>accuracy of object detection. arXiv preprint arXiv:2004.10934, 2020.</p><p>BORLIDO, D. J. A. Indústria 4.0: aplicação a sistemas de manutenção. 2017.</p><p>BURKOV, A. The hundred-page machine learning book. [S.l.]: Andriy Burkov Quebec</p><p>City, QC, Canada, 2019. v. 1.</p><p>CHADY, T. et al. Wind turbine blades inspection techniques. Organ, v. 5, p. 16, 2016.</p><p>CHOLLET, F. Deep learning with Python. [S.l.]: Simon and Schuster, 2021.</p><p>COUNCIL, F. T. Predictive and prescriptive analytics represent the future of ai—it’s up</p><p>to us to use them wisely. Forbes, Feb 2021. Disponível em: .</p><p>DERVILIS, N. et al. On damage diagnosis for a wind turbine blade using pattern</p><p>recognition. Journal of sound and vibration, Elsevier, v. 333, n. 6, p. 1833–1850, 2014.</p><p>DWYER, B. et al. Roboflow (Version 1.0) [Software]. 2022. https://roboflow.com.</p><p>Acessado em: 11.10.2023.</p><p>FARIA, V. P. de; QUELHAS, O. L. G. Manutenção 4.0: Uma revisão da literatura</p><p>da base scopus. In: Anais do XXI CONEMI - Congresso Internacional de Engenharia</p><p>Mecânica e Industrial. [S.l.: s.n.], 2021.</p><p>FARIAS, M. E. A. C. de; MARTINS, M. de F.; CÂNDIDO, G. A. Agenda 2030 e energias</p><p>renováveis: sinergias e desafios para alcance do desenvolvimento sustentável. Research,</p><p>Society and Development, v. 10, n. 17, p. e13101723867–e13101723867, 2021.</p><p>FERREIRO, S. et al. Industry 4.0: predictive intelligent maintenance for production</p><p>equipment. In: PHM society European conference. [S.l.: s.n.], 2016. v. 3, n. 1.</p><p>FORSYTH, D. A.; PONCE, J. Computer vision: a modern approach. [S.l.]: prentice hall</p><p>professional technical reference, 2002. 180–293 p.</p><p>FOSTER, A. et al. Drone footage wind turbine surface damage detection. In: IEEE</p><p>IVMSP 2022. [S.l.: s.n.], 2022. Accepted for publication.</p><p>GALLEGUILLOS, C. et al. Thermographic non-destructive inspection of wind turbine</p><p>blades using unmanned aerial systems. Plastics, Rubber</p><p>and Composites, Taylor &</p><p>Francis, v. 44, n. 3, p. 98–103, 2015.</p><p>https://www.wandb.com/</p><p>https://www.forbes.com/sites/forbestechcouncil/2021/02/11/predictive-and-prescriptive-analytics-represent-the-future-of-aiits-up-to-us-to-use-them-wisely/?sh=7a0786105a5d</p><p>https://www.forbes.com/sites/forbestechcouncil/2021/02/11/predictive-and-prescriptive-analytics-represent-the-future-of-aiits-up-to-us-to-use-them-wisely/?sh=7a0786105a5d</p><p>https://www.forbes.com/sites/forbestechcouncil/2021/02/11/predictive-and-prescriptive-analytics-represent-the-future-of-aiits-up-to-us-to-use-them-wisely/?sh=7a0786105a5d</p><p>https://roboflow.com</p><p>Referências 66</p><p>GANDRA, A. Capacidade de geração de energia eólica deve bater recorde neste ano. 2023.</p><p>Disponível em: .</p><p>GIRSHICK, R. et al. Rich feature hierarchies for accurate object detection and semantic</p><p>segmentation. In: Proceedings of the IEEE conference on computer vision and pattern</p><p>recognition. [S.l.: s.n.], 2014. p. 580–587.</p><p>GONZÁLEZ, M. et al. Operação e manutenção de parques eólicos do brasil: Desafios e</p><p>oportunidades. In: Brazil Windpower Conference and Exhibition. Rio de Janeiro, Brasil:</p><p>Grupo CANALENERGIA, 2018.</p><p>GONZÁLEZ, M.; SANTOS, M.; SOUZA, M. Operação e manutenção de usinas eólicas:</p><p>Desafios para aumento da competitividade. In: Brazil Windpower Conference and</p><p>Exhibition. Rio de Janeiro, Brasil: Grupo CANALENERGIA, 2018.</p><p>GOOGLE. Google Colaboratory. 2023. https://colab.research.google.com/.</p><p>Acessado em: 10.10.2023.</p><p>GOOGLE. Google Drive. 2023. https://drive.google.com/. Acessado em: 09.10.2023.</p><p>HINTON, G.; SRIVASTAVA, N.; SWERSKY, K. Neural networks for machine learning</p><p>lecture 6a overview of mini-batch gradient descent. Cited on, v. 14, n. 8, 2012.</p><p>HUBEL, D. H.; WIESEL, T. N. Receptive fields, binocular interaction and functional</p><p>architecture in the cat’s visual cortex. The Journal of physiology, Wiley-Blackwell, v. 160,</p><p>n. 1, p. 106, 1962.</p><p>JASINIEN, E. et al. Ndt of wind turbine blades using adapted ultrasonic and radiographic</p><p>techniques. Insight-Non-Destructive Testing and Condition Monitoring, The British</p><p>Institute of Non-Destructive Testing, v. 51, n. 9, p. 477–483, 2009.</p><p>JOCHER, G.; CHAURASIA, A.; QIU, J. YOLO by Ultralytics. 2023. Disponível em:</p><p>.</p><p>JUENGERT, A.; GROSSE, C. U. Inspection techniques for wind turbine blades using</p><p>ultrasound and sound waves. Proceedings of the NDTCE, v. 9, 2009.</p><p>JÜNGERT, A. Damage detection in wind turbine blades using two different acoustic</p><p>techniques. The NDT Database & Journal (NDT), v. 2075, 2008.</p><p>KAUR, P.; KHEHRA, B. S.; MAVI, E. B. S. Data augmentation for object detection: A</p><p>review. In: IEEE. 2021 IEEE International Midwest Symposium on Circuits and Systems</p><p>(MWSCAS). [S.l.], 2021. p. 537–543.</p><p>KINGMA, D. P.; BA, J. Adam: A method for stochastic optimization. arXiv preprint</p><p>arXiv:1412.6980, 2014.</p><p>KIRILLOV, A. et al. Segment anything. arXiv preprint arXiv:2304.02643, 2023.</p><p>LASI, H. et al. Industry 4.0. Business & Information Systems Engineering, 6 (4), 239-242.</p><p>[S.l.]: Springer (cited on page 1), 2014.</p><p>https://agenciabrasil.ebc.com.br/economia/noticia/2023-04/capacidade-de-geracao-de-energia-eolica-deve-bater-recorde-neste-ano</p><p>https://agenciabrasil.ebc.com.br/economia/noticia/2023-04/capacidade-de-geracao-de-energia-eolica-deve-bater-recorde-neste-ano</p><p>https://colab.research.google.com/</p><p>https://drive.google.com/</p><p>https://github.com/ultralytics/ultralytics</p><p>Referências 67</p><p>LEARNOPENCV. Understanding Convolutional Neural Network (CNN): A Complete</p><p>Guide. 2023. Disponível em: .</p><p>LI, C. et al. Yolov6 v3. 0: A full-scale reloading. arXiv preprint arXiv:2301.05586, 2023.</p><p>LI, Z. et al. Microwaves sensor for wind turbine blade inspection. Applied Composite</p><p>Materials, Springer, v. 24, p. 495–512, 2017.</p><p>LIU, W. et al. A survey of deep neural network architectures and their applications.</p><p>Neurocomputing, Elsevier, v. 234, p. 11–26, 2017.</p><p>MCCARTHY, J. What is artificial intelligence? 2004.</p><p>MENEZES, B. C. et al. Predictive, prescriptive and detective analytics for smart</p><p>manufacturing in the information age. IFAC-PapersOnLine, Elsevier, v. 52, n. 1, p.</p><p>568–573, 2019.</p><p>MIKOŁAJCZYK, A.; GROCHOWSKI, M. Data augmentation for improving deep</p><p>learning in image classification problem. In: IEEE. 2018 international interdisciplinary</p><p>PhD workshop (IIPhDW). [S.l.], 2018. p. 117–122.</p><p>MORONEY, L. Ai and machine learning for coders. [S.l.]: O’Reilly Media, 2020.</p><p>NIELSEN, M. A. Neural networks and deep learning. [S.l.]: Determination press San</p><p>Francisco, CA, USA, 2015. v. 25.</p><p>O’DONOVAN, P. et al. An industrial big data pipeline for data-driven analytics</p><p>maintenance applications in large-scale smart manufacturing facilities. Journal of big</p><p>data, SpringerOpen, v. 2, n. 1, p. 1–26, 2015.</p><p>PADILLA, R.; NETTO, S. L.; SILVA, E. A. D. A survey on performance metrics for</p><p>object-detection algorithms. In: IEEE. 2020 international conference on systems, signals</p><p>and image processing (IWSSIP). [S.l.], 2020. p. 237–242.</p><p>PINTELON, L.; PARODI-HERZ, A. Maintenance: An evolutionary perspective. In:</p><p>. Complex System Maintenance Handbook. London: Springer London, 2008. p. 21–48.</p><p>ISBN 978-1-84800-011-7. Disponível em: .</p><p>Project Jupyter. Jupyter Notebook. 2023. https://jupyter.org/. Acessado em:</p><p>10.10.2023.</p><p>RAGLAND, K.; THARCIS, P. A survey on object detection, classification and tracking</p><p>methods. Int. J. Eng. Res. Technol, v. 3, n. 11, p. 622–628, 2014.</p><p>REDMON, J. et al. You only look once: Unified, real-time object detection. In: Proceedings</p><p>of the IEEE conference on computer vision and pattern recognition. [S.l.: s.n.], 2016. p.</p><p>779–788.</p><p>REDMON, J.; FARHADI, A. Yolov3: An incremental improvement. arXiv preprint</p><p>arXiv:1804.02767, 2018.</p><p>https://learnopencv.com/understanding-convolutional-neural-networks-cnn</p><p>https://learnopencv.com/understanding-convolutional-neural-networks-cnn</p><p>https://doi.org/10.1007/978-1-84800-011-7_2</p><p>https://jupyter.org/</p><p>Referências 68</p><p>REGAN, T.; BEALE, C.; INALPOLAT, M. Wind turbine blade damage detection using</p><p>supervised machine learning algorithms. Journal of Vibration and Acoustics, American</p><p>Society of Mechanical Engineers, v. 139, n. 6, p. 061010, 2017.</p><p>REIS, E.; REIS, I. Análise Descritiva de Dados. 2002. Relatório Técnico do Departamento</p><p>de Estatística da UFMG. Disponível em: .</p><p>REYES, E. et al. Near real-time object recognition for pepper based on deep neural</p><p>networks running on a backpack. In: SPRINGER. RoboCup 2018: Robot World Cup XXII</p><p>22. [S.l.], 2019. p. 287–298.</p><p>ROSENBLATT, F. Principles of Neurodynamics: Perceptrons and the Theory of</p><p>Brain Mechanisms. Spartan Books, 1962. (Cornell Aeronautical Laboratory. Report no.</p><p>VG-1196-G-8). Disponível em: .</p><p>SHENG, S.; O’CONNOR, R. Reliability of wind turbines. In: Wind Energy Engineering.</p><p>[S.l.]: Elsevier, 2023. p. 195–211.</p><p>SHIHAVUDDIN, A.; CHEN, X. DTU - Drone inspection images of wind turbine. [S.l.]:</p><p>Mendeley Data, 2018.</p><p>SHIHAVUDDIN, A. et al. Wind turbine surface damage detection by deep learning aided</p><p>drone inspection analysis. Energies, MDPI, v. 12, n. 4, p. 676, 2019.</p><p>SHORTEN, C.; KHOSHGOFTAAR, T. M. A survey on image data augmentation for</p><p>deep learning. Journal of big data, SpringerOpen, v. 6, n. 1, p. 1–48, 2019.</p><p>SIMONYAN, K.; ZISSERMAN, A. Very deep convolutional networks for large-scale</p><p>image recognition. arXiv preprint arXiv:1409.1556, 2014.</p><p>SRIVASTAVA, N. et al. Dropout: a simple way to prevent neural networks from overfitting.</p><p>The journal of machine learning research, JMLR. org, v. 15, n. 1, p. 1929–1958, 2014.</p><p>TRAPHAN, D. et al. Remote surface damage detection on rotor blades of operating</p><p>wind turbines by means of infrared thermography. Wind energy science, Copernicus</p><p>Publications Göttingen, Germany,</p><p>v. 3, n. 2, p. 639–650, 2018.</p><p>ULTRALYTICS. YOLOv5: A state-of-the-art real-time object detection system. 2021.</p><p>https://docs.ultralytics.com. Acessado em: 08.11.2023.</p><p>VOGL, G. W.; WEISS, B. A.; HELU, M. A review of diagnostic and prognostic</p><p>capabilities and best practices for manufacturing. Journal of Intelligent Manufacturing,</p><p>Springer, v. 30, p. 79–95, 2019.</p><p>WANG, C.-Y.; BOCHKOVSKIY, A.; LIAO, H.-Y. M. Yolov7: Trainable bag-of-freebies</p><p>sets new state-of-the-art for real-time object detectors. In: Proceedings of the IEEE/CVF</p><p>Conference on Computer Vision and Pattern Recognition. [S.l.: s.n.], 2023. p. 7464–7475.</p><p>WANG, Z.; WANG, E.; ZHU, Y. Image segmentation evaluation: a survey of methods.</p><p>Artificial Intelligence Review, Springer, v. 53, p. 5637–5674, 2020.</p><p>WU, H.; LIU, Q.; LIU, X. A review on deep learning approaches to image classification</p><p>and object segmentation. Computers, Materials & Continua, Tech Science Press, v. 60,</p><p>n. 2, 2019.</p><p>https://books.google.ca/books?id=7FhRAAAAMAAJ</p><p>https://docs.ultralytics.com</p><p>Referências 69</p><p>XIAOXUN, Z. et al. Research on crack detection method of wind turbine blade based on a</p><p>deep learning method. Applied Energy, v. 328, p. 120241, 2022. ISSN 0306-2619. Disponível</p><p>em: .</p><p>YANG, K.; RONGONG, J. A.; WORDEN, K. Damage detection in a laboratory wind</p><p>turbine blade using techniques of ultrasonic ndt and shm. Strain, Wiley Online Library,</p><p>v. 54, n. 6, p. e12290, 2018.</p><p>YANG, X. et al. Image recognition of wind turbine blade damage based on a deep</p><p>learning model with transfer learning and an ensemble learning classifier. Renewable</p><p>Energy, Elsevier, v. 163, p. 386–397, 2021.</p><p>YAO, J.; FIDLER, S.; URTASUN, R. Describing the scene as a whole: Joint object</p><p>detection, scene classification and semantic segmentation. In: IEEE. 2012 IEEE conference</p><p>on computer vision and pattern recognition. [S.l.], 2012. p. 702–709.</p><p>YING, X. An overview of overfitting and its solutions. In: IOP PUBLISHING. Journal of</p><p>physics: Conference series. [S.l.], 2019. v. 1168, p. 022022.</p><p>ZHANG, C.; YANG, T.; YANG, J. Image recognition of wind turbine blade defects using</p><p>attention-based mobilenetv1-yolov4 and transfer learning. Sensors, MDPI, v. 22, n. 16,</p><p>p. 6009, 2022.</p><p>ZHANG, D. et al. Autonomous ultrasonic inspection using unmanned aerial vehicle. In:</p><p>2018 IEEE International Ultrasonics Symposium (IUS). [S.l.: s.n.], 2018. p. 1–4.</p><p>ZOPH, B. et al. Learning data augmentation strategies for object detection. In:</p><p>SPRINGER. Computer Vision–ECCV 2020: 16th European Conference, Glasgow, UK,</p><p>August 23–28, 2020, Proceedings, Part XXVII 16. [S.l.], 2020. p. 566–583.</p><p>https://www.sciencedirect.com/science/article/pii/S0306261922014982</p><p>70</p><p>APÊNDICE A - CÓDIGO DE SELEÇÃO DE</p><p>DADOS</p><p>O código abaixo consiste no jupyter notebook (Project Jupyter, 2023) utilizado na</p><p>etapa de seleção das imagens anotadas. O código foi executado no ambiente do Google</p><p>Colaboratory (GOOGLE, 2023a). Para reprodução, deve-se fazer o upload dos arquivos</p><p>do conjunto de dados para o Google Drive (GOOGLE, 2023b). Em seguida, deve-se criar</p><p>um novo jupyter notebook no Google Drive e copiar as células disponíveis abaixo para</p><p>o novo notebook. Por fim, deve-se alterar a variável DATASET_ZIP, na primeira célula</p><p>do código, com o caminho do arquivo do conjunto de dados compactado em formato</p><p>.zip, previamente salvo no Google Drive, e, na última célula, deve-se alterar o caminho</p><p>do arquivo de conjunto de dados após a seleção das imagens anotadas, no processo de</p><p>compactação, para um caminho do Google Drive qualquer, desde que existente.</p><p>[ ]: import cv2</p><p>DATASET_ZIP = ’/content/drive/MyDrive/TCC_SAM/archive.zip’</p><p>DATASET_PATH = ’/content/dataset/NordTank586x371’</p><p>[ ]: from google.colab import drive</p><p>drive.mount(’/content/drive’)</p><p>[ ]: import zipfile</p><p>with zipfile.ZipFile(DATASET_ZIP) as zfile:</p><p>zfile.extractall(’/content/dataset’)</p><p>[ ]: import glob</p><p>import os</p><p>import shutil</p><p>from tqdm.auto import tqdm</p><p>def extract_annotated(annotation_path: str):</p><p>return [file.split(’/’)[-1].replace(’.txt’, ’’) for file in glob.</p><p>↪→glob(annotation_path + ’/*.txt’)]</p><p>https://www.kaggle.com/datasets/ajifoster3/yolo-annotated-wind-turbines-586x371?resource=download</p><p>Referências 71</p><p>def create_dataset(names: list, dataset_path: str, output_dir: str) ->␣</p><p>↪→None:</p><p>if not os.path.exists(output_dir):</p><p>os.makedirs(output_dir)</p><p>new_images_folder = os.path.join(output_dir, ’images’)</p><p>new_labels_folder = os.path.join(output_dir, ’labels’)</p><p>os.makedirs(new_images_folder)</p><p>os.makedirs(new_labels_folder)</p><p>pbar = tqdm(names, desc="Creating Annotated Dataset")</p><p>for name in pbar:</p><p>pbar.set_description("Processing %s" % name)</p><p>try:</p><p># Copying images</p><p>shutil.copy(os.path.join(dataset_path, ’images’, name + ’.</p><p>↪→png’),</p><p>os.path.join(new_images_folder, name + ’.png’))</p><p># Copying annotations</p><p>shutil.copy(os.path.join(dataset_path, ’labels’, name + ’.</p><p>↪→txt’),</p><p>os.path.join(new_labels_folder, name + ’.txt’))</p><p>except Exception as e:</p><p>print(e)</p><p>[ ]: annotated_images = extract_annotated(’/content/dataset/NordTank586x371/</p><p>↪→labels’)</p><p>create_dataset(annotated_images, DATASET_PATH, ’/content/annotated’)</p><p>[ ]: %rm -rf dataset</p><p>[ ]: %zip -r ’/content/drive/MyDrive/TCC_SAM/annotated.zip’ ’/content/</p><p>↪→annotated’</p><p>[ ]:</p><p>72</p><p>APÊNDICE B - CÓDIGO DO</p><p>TREINAMENTO DOS MODELOS YOLOV8</p><p>O código utilizado na etapa de treinamento dos modelo YOLOv8 consiste no</p><p>jupyter notebook (Project Jupyter, 2023) exposto logo abaixo. O código foi executado</p><p>no ambiente do Google Colaboratory (GOOGLE, 2023a). Para reprodução, deve-se criar</p><p>um novo jupyter notebook no Google Drive e copiar as células disponíveis abaixo para o</p><p>novo notebook. Em seguida, deve-se alterar as variáveis os.environ["ROBOFLOW_KEY"] e</p><p>os.environ["WANDB_KEY"], na primeira célula do código, com as chaves da sua conta do</p><p>Roboflow e WandB, respectivamente. Por fim, na sétima célula, deve-se alterar o caminho</p><p>do arquivo de backup do treinamento para um caminho do Google Drive qualquer, desde</p><p>que existente.</p><p>No código, as cinco primeiras células são de configuração, onde são feitos os</p><p>downloads das bibliotecas necessárias para o treinamento dos modelos e a configuração da</p><p>GPU, bem como as conexões com o Google Drive e WandB.</p><p>A sexta célula consiste no download do conjunto de dados de treinamento, validação</p><p>e teste, pela API do Roboflow. O conjunto de dados é salvo na área de trabalho do Colab</p><p>com o nome de “dataset”.</p><p>Na sétima célula o ambiente de trabalho é transferido para uma pasta no Drive,</p><p>para evitar que o treinamento seja perdido em casos de desconexão com o Colab.</p><p>Na oitava célula é feito o treinamento, em que a variável MODEL_TYPE pode ser alte-</p><p>rada para os pesos pré-treinados no conjunto de dados COCO em qualquer arquitetura do</p><p>YOLOv8. Caso queira retomar um treinamento interrompido, basta alterar o MODEL_TYPE</p><p>para o último arquivo de pesos do treinamento interrompido e alterar RESUME para True.</p><p>Etapas como a criação da pasta de backup e login no WandB são opcionais e</p><p>podem ser retiradas do código sem prejudicar a sua execução.</p><p>[ ]: %pip install -q roboflow ultralytics==8.0.134 wandb</p><p>[ ]: import os</p><p>os.environ["ROBOFLOW_KEY"] = "SUA CHAVE ROBOFLOW"</p><p>os.environ["WANDB_KEY"] = "SUA CHAVE WANDB"</p><p>Referências 73</p><p>[ ]: import torch</p><p>if torch.cuda.is_available():</p><p>print(’__CUDNN VERSION:’, torch.backends.cudnn.version())</p><p>print(’__Number CUDA Devices:’, torch.cuda.device_count())</p><p>print(’__CUDA Device Name:’,torch.cuda.get_device_name(0))</p><p>print(’__CUDA Device Total Memory [GB]:’,torch.cuda.</p><p>↪→get_device_properties(0).total_memory/1e9)</p><p>[ ]: import wandb</p><p>import os</p><p>wandb.login(key=os.environ["WANDB_KEY"])</p><p>wandb.init(project="YOLOv8")</p><p>[ ]: from google.colab import drive</p><p>drive.mount(’/content/drive’)</p><p>[ ]: from roboflow import Roboflow</p><p>import os</p><p>ROBOFLOW_KEY = os.environ["ROBOFLOW_KEY"]</p><p>rf = Roboflow(api_key=ROBOFLOW_KEY)</p><p>project = rf.workspace("lucas-torres").project("tcc-bwepw")</p><p>dataset = project.version(1).download("yolov8")</p><p>[ ]: # Changing workdir for backup training</p><p>os.chdir(’/caminho/para/a/sua/pasta/de/backup/no/drive_SAM’)</p><p>[ ]: from ultralytics import YOLO</p><p>MODEL_TYPE = "yolov8s.pt"</p><p>RESUME = False</p><p># Download pretrained YOLO model</p><p>model = YOLO(MODEL_TYPE)</p><p># Train the model using our dataset</p><p>results = model.train(</p><p>data=os.path.join(dataset.location, ’data.yaml’),</p><p>Referências 74</p><p>imgsz=640,</p><p>epochs=200,</p><p>seed=48,</p><p>optimizer=’AdamW’,</p><p>resume=RESUME</p><p>)</p><p>[ ]: model.val(split=’test’)</p><p>[ ]: import torch, gc</p><p>gc.collect()</p><p>torch.cuda.empty_cache()</p><p>[ ]:</p><p>75</p><p>APÊNDICE C - TABELA DE</p><p>HIPER-PARÂMETROS DOS MODELOS</p><p>YOLOV8</p><p>Abaixo estão expostos todos os hiper-parâmetros utilizados no treinamento dos</p><p>modelos YOLOv8.</p><p>Chave Valor Descrição</p><p>epochs 200 Número de épocas para treinar</p><p>patience 50 Épocas de espera sem melhora observável</p><p>para parar o treino</p><p>batch 16 Número de imagens por lote (-1 para Auto-</p><p>Batch)</p><p>imgsz 640 Tamanho das imagens de entrada como in-</p><p>teiro</p><p>save True Salvar checkpoints de treino e resultados de</p><p>previsão</p><p>save_period -1 Salvar checkpoint a cada x épocas (desativado</p><p>se Tuple[np.ndarray, np.</p><p>↪→ndarray]:</p><p>"""Object detection and segmentation</p><p>Args:</p><p>image_rgb (np.ndarray): input image.</p><p>yolo_model (YOLO): pre-trained yolo model for the detection.</p><p>sam_model (SamPredictor): pre-trained sam predictor for␣</p><p>↪→segmentation.</p><p>Returns:</p><p>Referências 80</p><p>Tuple[np.ndarray, np.ndarray]: the first array correspond to␣</p><p>↪→the object</p><p>detection result image, while the second one is the segmentation␣</p><p>↪→result image.</p><p>"""</p><p>palette = sv.ColorPalette([sv.Color.green(), sv.Color.red()])</p><p>box_annotator = sv.BoxAnnotator(text_scale=0.25, text_padding=1,</p><p>thickness=1, color=palette)</p><p>mask_annotator = sv.MaskAnnotator(color=palette)</p><p>results = yolo_model.predict(image_rgb, conf=0.4)</p><p>segmented_image = image_rgb.copy()</p><p>box_image = image_rgb.copy()</p><p>boxes = results[0].boxes.xyxy.tolist()</p><p>conf_list = results[0].boxes.conf.tolist()</p><p>cls_list = results[0].boxes.cls.tolist()</p><p>classes = [’Sujeira’, ’Dano’]</p><p>sam_model.set_image(image_rgb)</p><p>for box, conf, cls in zip(boxes, conf_list, cls_list):</p><p>masks, scores,</p><p>logits = sam_model.predict(</p><p>box=np.asarray(box),</p><p>multimask_output=False</p><p>)</p><p>detections = sv.Detections(</p><p>xyxy=sv.mask_to_xyxy(masks=masks),</p><p>mask=masks,</p><p>confidence=np.array([conf]),</p><p>class_id=np.array([cls], dtype=’int’)</p><p>)</p><p>labels = [</p><p>f"{classes[class_id]}: {conf:.2f}"</p><p>for _, _, conf, class_id, _</p><p>in detections[0]</p><p>]</p><p>Referências 81</p><p>box_image = box_annotator.annotate(scene=box_image,</p><p>detections=detections[0],</p><p>labels=labels,</p><p>skip_label=False)</p><p>segmented_image = mask_annotator.annotate(scene=segmented_image,</p><p>␣</p><p>↪→detections=detections[0],</p><p>opacity=0.3)</p><p>return (box_image, segmented_image)</p><p>[11]: def select_images(src_folder: Path, n_images: int) -> list:</p><p>path = str(src_folder)</p><p>txt_paths = glob.glob(str(src_folder / ’labels’ / ’*.txt’))</p><p>img_paths = glob.glob(str(src_folder / ’images’ / ’*.jpg’))</p><p>selected_images = []</p><p>for txt_path, img_path in zip(txt_paths, img_paths):</p><p># Reading txt file</p><p>selected_images.append(img_path)</p><p>if len(selected_images) >= n_images:</p><p>break</p><p>return selected_images</p><p>[12]: images = select_images(Path(’/content/TCC-1/test’), N_SAMPLES)</p><p>[ ]: box_images = []</p><p>segmented_images = []</p><p>for img in images:</p><p>image_rgb = cv2.imread(img)</p><p>try:</p><p>box_img, segmented_img = detect_and_segment(image_rgb, yolo,␣</p><p>↪→sam)</p><p>except:</p><p>continue</p><p># Storing predicted images</p><p>box_images.append(box_img)</p><p>segmented_images.append(segmented_img)</p><p>Referências 82</p><p>[ ]: # Plot results</p><p>for box, seg in zip(box_images, segmented_images):</p><p>sv.plot_images_grid(</p><p>images=[box, seg],</p><p>grid_size=(1, 2),</p><p>titles=[’Detecção’, ’Segmentação’],</p><p>size=(24, 12)</p><p>)</p><p>[ ]:</p><p>Metodologia Baseada em IA e Visão Computacional para Detecção e Análise de Danos em Aerogeradores</p><p>Folha de rosto</p><p>a12dde279aae83fb7c5a65a9748258f60606e7c4a6c5f154b3023d42d32889ed.pdf</p><p>Metodologia Baseada em IA e Visão Computacional para Detecção e Análise de Danos em Aerogeradores</p><p>Folha de aprovação</p><p>Dedicatória</p><p>Agradecimentos</p><p>Epígrafe</p><p>Resumo</p><p>Abstract</p><p>Lista de ilustrações</p><p>Lista de tabelas</p><p>Lista de abreviaturas e siglas</p><p>Lista de símbolos</p><p>Sumário</p><p>Introdução</p><p>Objetivos</p><p>Trabalhos Relacionados</p><p>Estrutura do Trabalho</p><p>Fundamentação Teórica</p><p>Manutenção em Aerogeradores na Perspectiva da Manutenção 4.0</p><p>Evolução da Manutenção: da corretiva à preditiva</p><p>Inteligência Artificial Aplicada à Manutenção de Aerogeradores</p><p>Aprendizado de Máquina</p><p>Tipos de Aprendizado</p><p>Redes Neurais Artificiais</p><p>Visão Computacional</p><p>Convolutional Neural Network (CNN)</p><p>You Only Look Once (YOLO)</p><p>Métricas de Avaliação do Modelo de Detecção</p><p>Comparação Entre as Versões do YOLO</p><p>Segment Anything Model (SAM)</p><p>Metodologia</p><p>Definição do problema e obtenção do conjunto de dados</p><p>Métricas de sucesso e protocolos de avaliação</p><p>Preparação dos dados</p><p>Escolha e refinamento do modelo</p><p>Protótipo para Validação</p><p>Resultados e Discussões</p><p>Modelo YOLOv8</p><p>Modelo Segment Anything</p><p>Conclusão</p><p>Referências</p><p>APÊNDICE A - CÓDIGO DE SELEÇÃO DE DADOS</p><p>APÊNDICE B - CÓDIGO DO TREINAMENTO DOS MODELOS YOLOV8</p><p>APÊNDICE C - TABELA DE HIPER-PARÂMETROS DOS MODELOS YOLOV8</p><p>APÊNDICE D - CÓDIGO DO PROTÓTIPO</p><p>multicamadas. . . . . . . . . . 26</p><p>Figura 6 – Rede de perceptrons multicamadas com entrada bidimensional, duas</p><p>camadas com quatro neurônios e uma camada de saída com um neurônio. 27</p><p>Figura 7 – Esquema da classificação de imagem. . . . . . . . . . . . . . . . . . . 29</p><p>Figura 8 – Esquema da detecção de objetos de imagem. . . . . . . . . . . . . . . 30</p><p>Figura 9 – Esquema da segmentação de objetos de imagem. . . . . . . . . . . . . . 31</p><p>Figura 10 – Arquitetura da CNN VGG-16. . . . . . . . . . . . . . . . . . . . . . . 32</p><p>Figura 11 – Funcionamento de uma convolução. . . . . . . . . . . . . . . . . . . . 32</p><p>Figura 12 – Funcionamento de um pooling. . . . . . . . . . . . . . . . . . . . . . . 33</p><p>Figura 13 – Funcionamento de um flatten. . . . . . . . . . . . . . . . . . . . . . . 34</p><p>Figura 14 – Arquitetura simplificada do modelo YOLO. . . . . . . . . . . . . . . 35</p><p>Figura 15 – Ilustração da definição de IoU. . . . . . . . . . . . . . . . . . . . . . 37</p><p>Figura 16 – Visão geral do Modelo Segment Anything (SAM). . . . . . . . . . . . 42</p><p>Figura 17 – Visão geral da metodologia. . . . . . . . . . . . . . . . . . . . . . . . 43</p><p>Figura 18 – Exemplo de um par (imagem, anotação) contidos no conjunto de dados</p><p>YOLO Annotated Wind Turbine Surface Damage. . . . . . . . . . . . 44</p><p>Figura 19 – Exemplos de saídas dos modelos YOLOv8-Small e SAM. . . . . . . . . 51</p><p>Figura 20 – Gráficos de avaliação do modelo YOLOv8-Nano. . . . . . . . . . . . . 53</p><p>Figura 21 – Matriz de confusão para o modelo YOLOv8-Nano. . . . . . . . . . . 54</p><p>Figura 22 – Gráficos de avaliação do modelo YOLOv8-Small. . . . . . . . . . . . 55</p><p>Figura 23 – Matriz de confusão para o modelo YOLOv8-Small. . . . . . . . . . . 56</p><p>Figura 24 – Gráficos de avaliação do modelo YOLOv8-Medium. . . . . . . . . . . 57</p><p>Figura 25 – Matriz de confusão para o modelo YOLOv8-Medium. . . . . . . . . . 58</p><p>Figura 26 – Gráficos de avaliação do modelo YOLOv8-Large. . . . . . . . . . . . 59</p><p>Figura 27 – Matriz de confusão para o modelo YOLOv8-Large. . . . . . . . . . . 60</p><p>Figura 28 – Gráfico do mAP50 pelas épocas de treinamento do modelo YOLOv8l. . 61</p><p>LISTA DE TABELAS</p><p>Tabela 1 – Tabela de comparação da performance e complexidade dos modelos</p><p>YOLO no conjunto de dados MS COCO 2017, a partir da terceira</p><p>versão até a oitava. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41</p><p>Tabela 2 – Descrição das notas subjetivas para avaliação do modelo Segment</p><p>Anything na segmentação de sujeiras e danos em imagens de superfícies</p><p>externas dos aerogeradores. . . . . . . . . . . . . . . . . . . . . . . . 45</p><p>Tabela 3 – Diferenças dos augments aplicados na etapa de preparação dos dados</p><p>nas versões 1.0 e 2.0 do conjunto de dados. . . . . . . . . . . . . . . . 47</p><p>Tabela 4 – Principais hiper-parâmetros utilizados no treinamento dos quatro mo-</p><p>delos do YOLOv8. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48</p><p>Tabela 5 – Comparação geral dos diferentes modelos YOLOv8 treinados para a</p><p>detecção de Sujeiras e Danos nas superfícies externas de aerogeradores. 52</p><p>Tabela 6 – Métricas do modelo YOLOv8n para a detecção de Sujeiras e Danos</p><p>nas superfícies externas de aerogeradores. . . . . . . . . . . . . . . . 52</p><p>Tabela 7 – Métricas do modelo YOLOv8s para a detecção de Sujeiras e Danos nas</p><p>superfícies externas de aerogeradores. . . . . . . . . . . . . . . . . . . 54</p><p>Tabela 8 – Métricas do modelo YOLOv8m para a detecção de Sujeiras e Danos</p><p>nas superfícies externas de aerogeradores. . . . . . . . . . . . . . . . 58</p><p>Tabela 9 – Métricas do modelo YOLOv8l para a detecção de Sujeiras e Danos nas</p><p>superfícies externas de aerogeradores. . . . . . . . . . . . . . . . . . . 60</p><p>Tabela 10 – Avaliação do modelo Segment Anything. . . . . . . . . . . . . . . . . 62</p><p>Tabela 11 – Hiper-parâmetros utilizados no treinamento dos modelos YOLOv8. . 76</p><p>LISTA DE ABREVIATURAS E SIGLAS</p><p>YOLO You Only Look Once</p><p>SAM Segment Anything Model</p><p>VANT Veículo Aéreo Não Tripulado</p><p>PTE Pá da Turbina Eólica</p><p>CNN Convolutional Neural Network</p><p>IA Inteligência Artificial</p><p>CBM Manutenção Baseada em Condições</p><p>OEM Fabricante de Equipamentos Originais</p><p>ML Machine Learning</p><p>KNN K-Nearest Neighbors</p><p>SVM Máquina de Vetor de Suporte</p><p>RNA Redes Neurais Artificiais</p><p>MSE Mean Squared Error</p><p>mAP Mean Average Precision</p><p>FPS Frame Por Segundo</p><p>FLOPs Floating Point Operations</p><p>IoU Intersection over Union</p><p>NMS Non-Max Supression</p><p>Colab Google Colaboratory</p><p>LISTA DE SÍMBOLOS</p><p>θ Limiar de Decisão</p><p>η Taxa de Aprendizagem</p><p>wk Vetor de Pesos para cada neurônio</p><p>bl Vetor de Vieses para cada camada</p><p>C Função custo</p><p>Bp Caixa delimitadora prevista</p><p>Bv Caixa delimitadora verdadeira</p><p>f1 f1-score</p><p>SUMÁRIO</p><p>1 INTRODUÇÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14</p><p>1.1 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16</p><p>1.2 Trabalhos Relacionados . . . . . . . . . . . . . . . . . . . . . . . . . 17</p><p>1.3 Estrutura do Trabalho . . . . . . . . . . . . . . . . . . . . . . . . . . 18</p><p>2 FUNDAMENTAÇÃO TEÓRICA . . . . . . . . . . . . . . . . . . . 19</p><p>2.1 Manutenção em Aerogeradores na Perspectiva da Manutenção 4.0 19</p><p>2.1.1 Evolução da Manutenção: da corretiva à preditiva . . . . . . . . . . . . . 20</p><p>2.2 Inteligência Artificial Aplicada à Manutenção de Aerogeradores . . 22</p><p>2.2.1 Aprendizado de Máquina . . . . . . . . . . . . . . . . . . . . . . . . . . 23</p><p>2.2.1.1 Tipos de Aprendizado . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24</p><p>2.2.1.2 Redes Neurais Artificiais . . . . . . . . . . . . . . . . . . . . . . . . . . . 24</p><p>2.2.2 Visão Computacional . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28</p><p>2.2.2.1 Convolutional Neural Network (CNN) . . . . . . . . . . . . . . . . . . . . 31</p><p>2.2.3 You Only Look Once (YOLO) . . . . . . . . . . . . . . . . . . . . . . . 35</p><p>2.2.3.1 Métricas de Avaliação do Modelo de Detecção . . . . . . . . . . . . . . . . 36</p><p>2.2.3.2 Comparação Entre as Versões do YOLO . . . . . . . . . . . . . . . . . . . 38</p><p>2.2.4 Segment Anything Model (SAM) . . . . . . . . . . . . . . . . . . . . . 41</p><p>3 METODOLOGIA . . . . . . . . . . . . . . . . . . . . . . . . . . . 43</p><p>3.1 Definição do problema e obtenção do conjunto de dados . . . . . 43</p><p>3.2 Métricas de sucesso e protocolos de avaliação . . . . . . . . . . . . 44</p><p>3.3 Preparação dos dados . . . . . . . . . . . . . . . . . . . . . . . . . . 45</p><p>3.4 Escolha e refinamento do modelo . . . . . . . . . . . . . . . . . . . 47</p><p>3.5 Protótipo para Validação . . . . . . . . . . . . . . . . . . . . . . . . 48</p><p>4 RESULTADOS E DISCUSSÕES . . . . . . . . . . . . . . . . . . . 50</p><p>4.1 Modelo YOLOv8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52</p><p>4.2 Modelo Segment Anything . . . . . . . . . . . . . . . . . . . . . . . 61</p><p>5 CONCLUSÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63</p><p>REFERÊNCIAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65</p><p>APÊNDICE A - CÓDIGO DE SELEÇÃO DE DADOS . . . . . . . 70</p><p>APÊNDICE B - CÓDIGO DO TREINAMENTO DOS MODELOS</p><p>YOLOV8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72</p><p>APÊNDICE C - TABELA DE HIPER-PARÂMETROS DOS MO-</p><p>DELOS YOLOV8 . . . . . . . . . . . . . . . . . . . . . . . . . 75</p><p>APÊNDICE D - CÓDIGO DO PROTÓTIPO . . . . . . . . . . . . . 77</p><p>14</p><p>1 INTRODUÇÃO</p><p>O setor eólico brasileiro desempenha um papel de destaque na matriz energética</p><p>do país, além de ser uma peça fundamental na promoção do desenvolvimento sustentável</p><p>(FARIAS; MARTINS; CÂNDIDO, 2021). De acordo com dados recentes da Gandra (2023),</p><p>até fevereiro de 2023, o Brasil já possui 890 parques eólicos distribuídos em 12 estados,</p><p>com uma capacidade instalada de 25,04 GW em operação comercial, beneficiando mais de</p><p>108,7 milhões de habitantes.</p><p>Esses números são apenas uma previsão do que está por vir. Estima-se que até 2028,</p><p>o Brasil alcance uma capacidade instalada de 44,78 GW em energia eólica (GANDRA,</p><p>2023). Essa trajetória ascendente na produção de energia eólica reflete uma crescente</p><p>demanda por fontes de energia limpa e, ao mesmo tempo, coloca desafios significativos</p><p>para setores como operação, logística,</p><p>programação e manutenção.</p><p>Outro fator importante é a implementação da 4ª revolução industrial. Desde o</p><p>início da industrialização, o progresso tecnológico tem conduzido a humanidade por uma</p><p>série de revoluções industriais. A primeira revolução industrial surgiu da mecanização</p><p>intensiva, a segunda da ampla adoção da eletricidade e a terceira da migração ao digital.</p><p>Com a crescente adoção da digitalização nos negócios, aliada à internet e à tecnologia</p><p>que possibilita a fabricação de objetos inteligente, uma grande mudança é evidente nos</p><p>modelos de manufatura industrial (FARIA; QUELHAS, 2021). Nesse contexto, surgiu a</p><p>quarta Revolução Industrial, frequentemente referida como “Indústria 4.0” (LASI et al.,</p><p>2014).</p><p>A manutenção de equipamentos desempenha um papel crucial nas operações, cujo</p><p>principal objetivo é melhorar a eficiência da produção. Se um equipamento não opera</p><p>conforme o especificado, isso pode ter um impacto negativo no processo, prejudicando os</p><p>objetivos da empresa (O’DONOVAN et al., 2015). Nesse caso, o objetivo da manutenção é</p><p>garantir que o sistema seja preservado e as funções do produto ao longo de seu ciclo de vida</p><p>(VOGL; WEISS; HELU, 2019). No entanto, para que a manutenção apoie efetivamente o</p><p>desempenho global do projeto, é importante escolher métodos, técnicas e procedimentos</p><p>apropriados que as equipes possam utilizar de maneira eficaz e eficiente.</p><p>Entretanto, a manutenção eficiente e a operação de um grande número de aero-</p><p>geradores em parques eólicos ainda apresenta desafios consideráveis. Portanto, a adoção</p><p>de tecnologias avançadas de monitoramento e análise dos dados dos aerogeradores se</p><p>mostra como crucial para alcançar os requisitos da indústria 4.0 no setor eólico brasileiro.</p><p>Estas tecnologias modernas têm demonstrado um impacto substancial no desempenho das</p><p>Capítulo 1. Introdução 15</p><p>usinas eólicas, permitindo uma gestão mais precisa e proativa das operações (GONZÁLEZ;</p><p>SANTOS; SOUZA, 2018).</p><p>Um dos principais desafios enfrentados pelas equipes de operação e manutenção é</p><p>a identificação e resolução eficiente de problemas nas turbinas eólicas, incluindo danos à</p><p>superfície e acúmulo de sujeira. Esses problemas podem resultar em perda de eficiência</p><p>na geração de energia, aumento dos custos de manutenção e redução da vida útil dos</p><p>aerogeradores (GONZÁLEZ et al., 2018). Ademais, o acesso físico a aerogeradores pode</p><p>ser complicado e perigoso, tornando a inspeção manual uma tarefa desafiadora.</p><p>As abordagens tradicionais para a detecção de defeitos em pás de turbinas eólicas</p><p>apresentam limitações significativas, como foco insuficiente na localização de falhas, custos</p><p>elevados de instalação de sensores e falta de eficiência na detecção de danos iniciais.</p><p>Essas limitações podem resultar em deterioração dos danos, redução da eficiência da</p><p>geração de energia eólica e custos de manutenção substanciais. Muitos desses métodos de</p><p>reconhecimento de imagem tradicionais têm desvantagens, incluindo alta dependência de</p><p>condições de fundo específicas e falta de generalização. Além disso, eles frequentemente</p><p>dependem de análise manual para a detecção de falhas. Portanto, surge a necessidade de</p><p>desenvolver uma abordagem mais inteligente e eficiente para a detecção de defeitos em</p><p>pás de turbinas eólicas, que possa superar as limitações das abordagens tradicionais e</p><p>permitir a identificação precoce e a localização precisa de danos (XIAOXUN et al., 2022).</p><p>Com o avanço na área de veículos aéreos não tripulados (VANTs) equipados com câmeras</p><p>de alta definição, imagens aéreas coletadas por VANTs têm sido amplamente aplicadas na</p><p>detecção de falhas (XIAOXUN et al., 2022).</p><p>Neste cenário, a visão computacional surge como uma ferramenta promissora.</p><p>Este campo interdisciplinar da informática se concentra na capacidade das máquinas de</p><p>interpretar e compreender o mundo visual, abrindo portas para uma série de aplicações</p><p>inovadoras. No contexto deste Trabalho de Conclusão de Curso, será explorado a apli-</p><p>cação da visão computacional, especificamente os modelos estado da arte nas áreas de</p><p>reconhecimento e segmentação de objetos em imagens. São eles o YOLOv8 (You Only</p><p>Look Once versão 8), para o reconhecimento, e o SAM (Segment Anything Model), para a</p><p>segmentação. Os objetos que serão reconhecidos e segmentados pelo sistema são: danos</p><p>na superfície externa dos aerogeradores; e sujeiras nas pás.</p><p>A aplicação de técnicas avançadas de visão computacional, como os modelos YOLO</p><p>e SAM, oferece uma solução promissora. O modelo YOLO permite a detecção automática</p><p>e em tempo real de danos e sujeiras na superfície dos aerogeradores, tornando possível</p><p>uma abordagem mais proativa para a manutenção e reduzindo o tempo de inatividade</p><p>não planejado (SHIHAVUDDIN et al., 2019). Enquanto o modelo SAM permite a análise</p><p>de imagens e a segmentação de regiões de interesse, que podem ajudar a equipe de</p><p>Capítulo 1. Introdução 16</p><p>manutenção a priorizar as áreas que necessitam de intervenção imediata.</p><p>Este trabalho se baseia na crescente necessidade do setor eólico brasileiro de</p><p>adotar tecnologias para otimizar suas operações e manter a eficiência energética. Além</p><p>disso, ele contribui para a pesquisa em visão computacional aplicada à manutenção de</p><p>aerogeradores, um campo em crescimento que combina conhecimentos de engenharia e</p><p>ciência da computação para abordar desafios reais na indústria de energia eólica.</p><p>Ao longo deste trabalho, serão explorados em detalhes a implementação e avaliação</p><p>desses modelos, destacando seu potencial para melhorar a eficiência das operações de</p><p>manutenção em parques eólicos. Desta forma, este trabalho representa mais um passo em</p><p>direção a uma gestão mais eficaz e sustentável da energia eólica no Brasil, alinhando-se</p><p>com os objetivos globais de mitigação das mudanças climáticas e promoção de fontes de</p><p>energia limpa.</p><p>A próxima seção apresentará os objetivos gerais e específicos da pesquisa.</p><p>1.1 Objetivos</p><p>O objetivo geral desta pesquisa é desenvolver uma metodologia capaz de identificar,</p><p>em tempo real, e segmentar com alta precisão, danos à superfície e acúmulo de sujeira</p><p>nos aerogeradores.</p><p>A partir dos desdobramentos do objetivo geral, os objetivos específicos foram</p><p>desenvolvidos, conforme apresentado abaixo:</p><p>• Identificar na literatura as principais tecnologias no reconhecimento de objetos em</p><p>tempo real e segmentação de imagens;</p><p>• Realizar o treinamento e validação dos modelos YOLO para o problema de detecção</p><p>em tempo real de danos à superfície e acúmulo de sujeira nos aerogeradores a partir</p><p>de imagens em alta definição de VANTs;</p><p>• Realizar a validação do modelo SAM para o problema de segmentação de danos à</p><p>superfície e acúmulo de sujeira nos aerogeradores a partir de imagens previamente</p><p>reconhecidas pelo modelo YOLO;</p><p>A próxima seção deste trabalho apresentará uma revisão da literatura, destacando</p><p>estudos anteriores relevantes e o estado da arte em visão computacional aplicada à inspeção</p><p>de aerogeradores.</p><p>Capítulo 1. Introdução 17</p><p>1.2 Trabalhos Relacionados</p><p>Este trabalho se propõe a desenvolver uma metodologia capaz de identificar e</p><p>segmentar, em tempo real e com alta precisão, danos à superfície e acúmulo de sujeira</p><p>nos aerogeradores. A forma mais eficiente de obter essas imagens é através de VANTs. A</p><p>viabilidade da utilização destes equipamentos para a inspeção das pás das turbinas eólicas</p><p>(PTEs) foi verificada em diversos trabalhos (GALLEGUILLOS et al., 2015) (ZHANG et</p><p>al., 2018).</p><p>Antes da expansão e popularização dos algoritmos de aprendizado de máquina</p><p>e aprendizado profundo, algumas técnicas mais tradicionais foram desenvolvidas e tes-</p><p>tadas (CHADY et al., 2016), técnicas como inspeção visual, termografia infravermelha</p><p>(TRAPHAN et al., 2018), teste ultrassônico (YANG; RONGONG; WORDEN, 2018),</p><p>radiografia digital (JASINIEN et al., 2009), emissão acústica (JÜNGERT, 2008), teste de</p><p>toque, análise de vibração (DERVILIS et al., 2014) e técnicas de micro-ondas e tera-hertz</p><p>(LI et al., 2017). Entretanto, umas das técnicas que mais se popularizaram no âmbito</p><p>científico foram os testes ultrassônicos</p><p>e de ondas sonoras (JUENGERT; GROSSE, 2009).</p><p>Como algumas limitações foram identificadas nas estratégias desenvolvidas nos</p><p>estudos anteriores, aliado à expansão e popularização da ciência de dados, técnicas</p><p>baseadas na utilização de algoritmos de aprendizado de máquina supervisionado foram</p><p>ganhando notoriedade. Um exemplo dessas técnicas é apresentado na pesquisa em que</p><p>dois modelos de classificação binária foram criados, utilizando algoritmos de regressão</p><p>logística e máquina de vetores de suporte, para análise de dados obtidos através de uma</p><p>técnica de sensoreamento estrutural baseada em acústica das PTEs (REGAN; BEALE;</p><p>INALPOLAT, 2017).</p><p>Em trabalhos mais recentes, percebe-se a utilização de algoritmos de aprendizado</p><p>profundo mais sofisticados, utilizando-se da visão computacional para a detecção dos</p><p>danos nas PTEs (YANG et al., 2021). Neste estudo, especificamente, os pesquisadores</p><p>desenvolveram um modelo de reconhecimento de imagem baseado em uma rede de</p><p>aprendizado profundo para extrair automaticamente características das imagens e detectar</p><p>com precisão e eficiência danos nas PTEs. Para melhorar o desempenho do modelo</p><p>de aprendizado profundo proposto, empregaram o transfer learning – transferência de</p><p>conhecimento – e um classificador de ensemble learning – aprendizado de conjunto – em um</p><p>modelo de rede neural convolucional (CNN). A transferência de conhecimento aprimorou</p><p>a capacidade do modelo de extrair características abstratas e acelerou a eficiência da</p><p>convergência, enquanto o classificador de aprendizado de conjunto baseado em Random</p><p>Forest melhorou a precisão na detecção de defeitos nas pás.</p><p>Por fim, podemos identificar a utilização da arquitetura YOLO nos últimos trabalhos</p><p>sobre o tema (ZHANG; YANG; YANG, 2022). Nessa pesquisa, os pesquisadores desenvol-</p><p>Capítulo 1. Introdução 18</p><p>veram um método de reconhecimento de defeitos nas PTEs usando visão computacional e</p><p>aprendizado profundo. Eles propuseram um modelo baseado em MobileNetv1-YOLOv4</p><p>e transfer learning, com a substituição do backbone do YOLOv4 pelo MobileNetv1 para</p><p>extração de características mais eficiente. Os experimentos comparativos demonstraram</p><p>que o modelo proposto superou outras redes de última geração em termos de precisão de</p><p>detecção, velocidade de resposta e complexidade computacional, ao utilizar imagens de</p><p>PTEs capturadas por VANTs.</p><p>1.3 Estrutura do Trabalho</p><p>As seções anteriores apresentaram uma introdução sobre o tema deste trabalho,</p><p>mostrando os fatores que motivam a implantação da ideia, além dos objetivos e dos</p><p>trabalhos relacionados. Em sequência, o Capítulo 2 aborda a fundamentação teórica do</p><p>trabalho, onde são mostrados e discutidos assuntos relevantes para a pesquisa, como</p><p>a manutenção de aerogeradores na perspectiva da manutenção digital e as principais</p><p>tecnologias de inteligência artificial (IA) no cenário da manutenção digital. O Capítulo 3,</p><p>por sua vez, explica a metodologia adotada no projeto, incluindo a definição do problema,</p><p>obtenção do conjunto de dados, seleção de uma métrica de sucesso, definição do protocolo</p><p>de avaliação, preparação dos dados, desenvolvimento de um modelo suficientemente bom</p><p>e o refinamento do modelo. Enquanto o Capítulo 4 trata dos resultados obtidos durante a</p><p>execução deste trabalho e as principais discussões a partir dos resultados expostos. Por</p><p>fim, o Capítulo 5 traz as principais conclusões e contribuições deste trabalho.</p><p>19</p><p>2 FUNDAMENTAÇÃO TEÓRICA</p><p>Neste capítulo, são apresentados os conhecimentos necessários para compreender o</p><p>problema da manutenção em aerogeradores na perspectiva da manutenção 4.0 e como a</p><p>inteligência artificial pode ser aplicada para o reconhecimento e segmentação de danos</p><p>e sujeiras na superfície de aerogeradores. Este capítulo será dividido em duas seções:</p><p>a seção 2.1 introduz o conceito da manutenção 4.0, bem como quais as ferramentas</p><p>e tecnologias estão sendo utilizadas nos parques eólicos nos últimos anos; enquanto a</p><p>seção 2.2 aborda as técnicas que serão utilizadas no desenvolvimento da metodologia</p><p>proposta neste trabalho, bem como as suas justificativas.</p><p>2.1 Manutenção em Aerogeradores na Perspectiva da Manutenção</p><p>4.0</p><p>Antes de tudo, é preciso entender o que é manutenção. Na literatura de gestão</p><p>de manutenção, a maioria dos autores, de uma forma ou de outra, concorda em definir</p><p>a manutenção como o “conjunto de atividades necessárias para manter ativos físicos na</p><p>condição operacional desejada ou restaurá-los a essa condição”.</p><p>Assim como em outros setores, a manutenção de aerogeradores desempenha um</p><p>papel crucial na garantia da eficiência e longevidade destes equipamentos. Tradicionalmente,</p><p>a manutenção era realizada com base em inspeções visuais regulares e programações</p><p>predeterminadas. No entanto, com o advento das tecnologias digitais, a perspectiva da</p><p>manutenção tem se transformado significativamente (SHENG; O’CONNOR, 2023).</p><p>Impulsionada pela revolução da Indústria 4.0, e ao contrário dos métodos convenci-</p><p>onais de manutenção preventiva, a abordagem da manutenção preditiva e a integração de</p><p>tecnologias digitais, oferecem aprimoramentos significativos em termos de desempenho e</p><p>eficiência na manutenção de aerogeradores. A inclusão de sensores avançados, a monitori-</p><p>zação constante e a coleta de dados críticos permitem conceber um sistema de assistência</p><p>remota para esses equipamentos. A análise contínua e minuciosa dos dados provenientes</p><p>desses sensores, conduzida por algoritmos e programas especializados desenvolvidos pela</p><p>empresa em questão, torna possível a assistência remota. Até a menor variação em um</p><p>dos parâmetros do processo produtivo pode desencadear uma intervenção de manutenção</p><p>(FERREIRO et al., 2016). Além disso, a capacidade de autodiagnóstico do estado de</p><p>saúde de cada equipamento é aprimorada pela Indústria 4.0, que promove a interconexão</p><p>de máquinas, sensores, computadores e outros elementos essenciais para o sucesso dessas</p><p>Capítulo 2. Fundamentação Teórica 20</p><p>funcionalidades.</p><p>O autodiagnóstico desempenha um papel crucial no agendamento de ações de</p><p>manutenção necessárias, minimizando assim as intervenções corretivas e evitando falhas.</p><p>No contexto da implementação da Indústria 4.0, destacam-se desafios importantes, como</p><p>a gestão eficaz de dados para definir ações corretivas com base no monitoramento das</p><p>máquinas, a seleção de modelos preditivos adequados para a manutenção preditiva, a</p><p>utilização de soluções de armazenamento em nuvem para gerenciar informações em</p><p>servidores virtuais e a garantia de uma comunicação eficaz entre a nuvem e as máquinas</p><p>interconectadas (BORLIDO, 2017).</p><p>Uma vez que as máquinas e equipamentos utilizados desempenham um papel crítico</p><p>em toda a cadeia produtiva, a abordagem das operações de manutenção é crucial para</p><p>garantir a precisão e produtividade dessas máquinas em níveis desejados. Além disso, é</p><p>importante observar que, independentemente do contexto, a Manutenção Baseada em</p><p>Condições (CBM) é o modelo mais prevalente na indústria, particularmente no setor</p><p>automobilístico, e pode ser otimizada por meio de abordagens de engenharia inteligente,</p><p>como sensores avançados e monitoramento contínuo, o que proporciona aos Fabricantes</p><p>de Equipamentos Originais (OEMs) a capacidade de adquirir dados valiosos sobre a</p><p>manutenção de suas máquinas e agregar valor aos seus serviços.</p><p>A implementação de estratégias de Monitoramento de Condições, que permite</p><p>o acompanhamento em tempo real de parâmetros como temperatura e rotação para</p><p>detectar mudanças significativas que podem indicar falhas iminentes, desempenha um</p><p>papel fundamental na definição de modelos de negócios eficazes para a manutenção. Em</p><p>vez de agir apenas após indicadores críticos apontarem problemas, a CBM aproveita dados</p><p>em tempo real, permitindo ao departamento de manutenção prever o momento ideal para</p><p>intervenções, minimizando o uso de peças de reposição, interrupções no funcionamento</p><p>das turbinas e tempo dedicado a operações de manutenção.</p><p>2.1.1 Evolução da Manutenção: da corretiva à preditiva</p><p>Nas últimas décadas, a manutenção industrial</p><p>passou de uma preocupação negli-</p><p>genciável para se tornar uma imperativa estratégica. Poucas outras disciplinas de gestão</p><p>experimentaram mudanças tão substanciais nos últimos cinquenta anos. Durante esse pe-</p><p>ríodo, o papel da manutenção nas organizações passou por uma transformação significativa.</p><p>Inicialmente, a manutenção era apenas um aspecto inevitável da produção, mas agora se</p><p>transformou em um componente estratégico essencial para atingir os objetivos de negócios.</p><p>A manutenção é agora percebida de forma mais positiva e altamente valorizada dentro</p><p>das organizações. Ela não é mais considerada uma função subordinada, mas sim vista</p><p>como um parceiro interno ou externo fundamental para alcançar o sucesso (PINTELON;</p><p>Capítulo 2. Fundamentação Teórica 21</p><p>PARODI-HERZ, 2008).</p><p>Pode-se dividir a história da manutenção em quatro estágios, tanto quanto à</p><p>função da manutenção, quanto às tecnologias que foram criadas para que fosse possível</p><p>alcançar a sua respectiva função, como ilustrado na Figura 1. Inicialmente, a manutenção</p><p>era apenas uma parte inevitável da produção; definido como simplesmente um “mal</p><p>necessário” (PINTELON; PARODI-HERZ, 2008). A manutenção era puramente corretiva</p><p>e, portanto, reparos e substituições eram realizados quando necessário, sem levar em conta</p><p>questões de otimização. Mais tarde, surgiu a concepção de que a manutenção era uma</p><p>questão técnica. Isso não apenas envolvia a otimização de soluções técnicas de manutenção,</p><p>mas também exigia atenção da organização em relação ao trabalho de manutenção,</p><p>introduzindo, portanto, a ideia de prevenção de falhas. Com o tempo, a manutenção se</p><p>transformou em uma função independente, em vez de uma subfunção da produção, se</p><p>preocupando com questões de cunho administrativo e não mais técnico apenas. Desta</p><p>forma, conceitos de redução de desperdícios de tempo e recurso foram introduzidas, dando</p><p>origem ao conceito de manutenção preditiva. Entretanto, somente após avanço tecnológico,</p><p>sobretudo o aumento da capacidade computacional, crescimento da internet das coisas</p><p>(IoT) e computação em nuvem, foi possível a implementação de sistemas sofisticados para</p><p>execução da manutenção preditiva, através da análise e monitoramento em tempo real</p><p>dos dados coletados por diversos sensores instalados nas máquinas e conectados em um</p><p>banco de dados massivo na nuvem.</p><p>Figura 1 – Função da manutenção ao longo do tempo e sua relação com a análise de</p><p>dados.</p><p>Fonte – Elaboração própria.</p><p>Além disso, antes de 2020 a análise de dados era sobretudo descritiva e preditiva,</p><p>isto é, as tomadas de decisões eram feitas a partir de modelos capazes de explicar o</p><p>passado e prever o futuro. A análise descritiva é um processo que investiga dados históricos</p><p>Capítulo 2. Fundamentação Teórica 22</p><p>para explicar e compreender eventos anteriores, fornecendo fundamentos para decisões</p><p>futuras (REIS; REIS, 2002). Utiliza-se de métodos estatísticos, tais como cálculo de média,</p><p>mediana, desvio padrão, além dos valores máximos e mínimos, e de elementos visuais</p><p>como gráficos e tabelas. Estes recursos são essenciais para resumir e interpretar os dados</p><p>coletados, oferecendo uma visão clara sobre o que aconteceu anteriormente.</p><p>A análise preditiva consiste na criação de modelos que consigam prever cenários</p><p>futuros. A partir de 2010, ganhando tração na década de 2020, o uso do aprendizado</p><p>de máquina se popularizou como a principal metodologia para criação desses modelos,</p><p>uma vez que a acurácia deles eram, em sua maioria, superiores aos modelos estatísticos</p><p>tradicionais. A análise prescritiva é utilizada, sobretudo, para a identificação de tendências,</p><p>vieses, comportamentos, entre outros, por meio de correlações e causalidades (MENEZES</p><p>et al., 2019).</p><p>Entretanto, com o crescimento e popularização da inteligência artificial (IA), uma</p><p>nova tendência vem ganhando força nos últimos anos (COUNCIL, 2021), em que os</p><p>modelos deixam de ser meramente ferramentas para tomada de decisão e passaram a</p><p>ser co-orientadores, por meio de análises prescritivas. A análise prescritiva, por sua vez,</p><p>consiste na identificação ou recomendação do melhor modo, rota, maneira ou ações para</p><p>operar com base nos dados fornecidos e modelos de decisão (MENEZES et al., 2019).</p><p>Atualmente, a gestão da manutenção se tornou uma função complexa que abrange</p><p>habilidades técnicas e de gestão, ao mesmo tempo em que exige flexibilidade para lidar com</p><p>o ambiente de negócios dinâmico. A alta administração reconhece que ter uma estratégia de</p><p>manutenção bem pensada, juntamente com uma implementação cuidadosa dessa estratégia,</p><p>pode ter um impacto financeiro significativo. Isso levou a tratar a manutenção como um</p><p>parceiro maduro no desenvolvimento da estratégia de negócios, possivelmente em um</p><p>nível equivalente à produção. Como resultado, essas estratégias consideram formalmente</p><p>o estabelecimento de parcerias externas e a terceirização da função de manutenção.</p><p>2.2 Inteligência Artificial Aplicada à Manutenção de Aerogeradores</p><p>Nas últimas décadas, uma grande quantidade de definições para o termo Inteligência</p><p>Artificial (IA) foram propostas. Em um artigo não publicado, (MCCARTHY, 2004) define</p><p>a inteligência artificial como a ciência e engenharia de fabricação máquinas inteligentes,</p><p>especialmente programas de computadores inteligentes. Está estritamente relacionado com</p><p>a tarefa de utilizar computadores para compreender a inteligência humana, embora a IA</p><p>não precise se limitar a métodos que sejam biologicamente observáveis.</p><p>Neste contexto, o machine learning (ML) – aprendizado de máquina – e o deep</p><p>learning – aprendizado profundo – são introduzidos.</p><p>Capítulo 2. Fundamentação Teórica 23</p><p>2.2.1 Aprendizado de Máquina</p><p>Antes de explicar o que são esses termos, é preciso entender como uma programação</p><p>tradicional funciona. De forma geral, um programa tradicional recebe um conjunto de</p><p>dados e uma ou mais regras na sua entrada, e o seu objetivo é gerar respostas para cada</p><p>dado de entrada, de acordo com as regras previamente definidas pelo programador, assim</p><p>como ilustra a Figura 2. Entretanto, fica evidente que a programação tradicional possui</p><p>uma grande limitação. Sendo os dados de entrada as características de um fenômeno ou</p><p>evento real, por exemplo, sensores de um aerogerador, é preciso conhecer todas as regras</p><p>que regem o funcionamento de cada peça do aerogerador para conseguir obter respostas</p><p>precisas com o programa.</p><p>Figura 2 – Representação em alto nível de um programa tradicional.</p><p>Fonte – Adaptação da figura de Moroney (2020, p. 39).</p><p>Assim, o conceito de ML surge como uma forma mais simples, embora mais</p><p>robusta, de lidar com problemas complexos. A Figura 3 ilustra o funcionamento de um</p><p>modelo de aprendizado de máquina. Ao invés de tentar descobrir todas as regras que</p><p>regem um conjunto de dados, são extraídos uma grande quantidade de dados sobre o</p><p>cenário, incluindo os rótulos desses dados, de modo que o computador deve descobrir</p><p>quais são as regras que fazem com que cada amostra do conjunto de dados de entrada</p><p>seja corretamente rotulado. Desta forma, pode-se definir os programas tradicionais como</p><p>modelos determinísticos, enquanto os modelos de ML são probabilísticos.</p><p>Figura 3 – Representação em alto nível de um modelo de aprendizado de máquina.</p><p>Fonte – Adaptação da figura de Moroney (2020, p. 40).</p><p>Capítulo 2. Fundamentação Teórica 24</p><p>Para melhor entendimento, pode-se exemplificar os problemas descritos previamente</p><p>com uma função afim. Sendo x ∈ R os dados de entrada, f(x) = ax+ b a regra da função e</p><p>y = f(x) a saída, em um programa tradicional, o programador deve definir os coeficientes</p><p>angular a e linear b para alcançar as respostas y desejadas, para cada dado de entrada x.</p><p>Por outro lado, em um modelo de ML, o programador deve construir uma tabela com</p><p>diversos valores de entrada x e saída y, selecionar um modelo que melhor se encaixe ao</p><p>cenário – neste exemplo, um modelo de regressão linear se encaixaria perfeitamente ao</p><p>problema e poderia ser selecionado após a visualização do gráfico de dispersão das variáveis</p><p>ou verificação de</p><p>alta correlação linear entre x e y –, para então aplicar o conjunto de</p><p>dados na entrada do programa, resultando na obtenção da regra f(x) = ax+ b na saída</p><p>do mesmo, assim como os valores dos coeficientes a e b.</p><p>2.2.1.1 Tipos de Aprendizado</p><p>Existem algumas formas de se treinar uma máquina, sendo elas o aprendizado</p><p>supervisionado, semi-supervisionado, não supervisionado e por reforço. Para este trabalho,</p><p>é necessário entender apenas como o aprendizado supervisionado funciona.</p><p>Neste modelo, o conjunto de dados, ou dataset, é a coleção de exemplos rotulados</p><p>{(xi, yi)}N</p><p>i=1. Cada xi é denominado um vetor de características. Em cada dimensão</p><p>j = 1, . . . , D deste vetor, existe um valor representado por aj. Por exemplo, a primeira</p><p>característica, a(1), pode indicar a velocidade de uma PTE, enquanto a(2), sua posição</p><p>angular. Esse padrão é consistente em todas as características. Se a(2) em um dado exemplo</p><p>denota a posição angular em graus, o mesmo se aplicará aos demais exemplos. O rótulo yi</p><p>pode pertencer a um conjunto finito de classes {1, 2, . . . , n} ou ser um número real. Neste</p><p>trabalho, faremos a classificação de sujeiras e danos nas superfícies externas das turbinas</p><p>eólicas, portanto, duas classes são definidas: sujeira e turbina.</p><p>A meta de um algoritmo de aprendizado supervisionado é utilizar a base de dados</p><p>para criar um modelo. Esse modelo, ao ser alimentado com um vetor de características ~x,</p><p>fornece uma informação que ajuda a determinar o rótulo desse vetor.</p><p>2.2.1.2 Redes Neurais Artificiais</p><p>Existem diversos algoritmos de ML supervisionado. Os mais conhecidos são K-</p><p>nearest neighbors (KNN) – K-vizinhos mais próximos –, árvores de decisão, random forest</p><p>– floresta aleatória –, Máquina de Vetor de Suporte (SVM) e as redes neurais artificiais</p><p>(RNA). Todos esses algoritmos tem seu grau de relevância, sejam eles simples, como o</p><p>KNN, ou complexos como as redes neurais artificiais. Mas para este trabalho, é necessário</p><p>entender apenas o funcionamento de uma rede neural artificial.</p><p>Para melhor definir e entender o funcionamento de uma RNA, é necessário entender</p><p>Capítulo 2. Fundamentação Teórica 25</p><p>o conceito de um tipo de neurônio artificial chamado de perceptron. A ideia de perceptron</p><p>foi apresentado a primeira vez por Rosenblatt (1962), na década de 60. Um perceptron</p><p>recebe diversos valores binários na entrada e produz um único valor binário na saída,</p><p>como mostra a Figura 4.</p><p>Figura 4 – Representação de um perceptron.</p><p>Fonte – Elaboração própria.</p><p>Para cada entrada xn, o perceptron possui um peso w, que por sua vez é um</p><p>número real que expressa a importância de cada uma das entradas. A saída do neurônio,</p><p>então, é definida como 0 ou 1, e determinada pela soma ponderada das entradas, como</p><p>mostra a Equação 2.1.</p><p>y =</p><p>0, se ∑</p><p>i wixi ≤ θ</p><p>1, se ∑</p><p>i wixi > θ</p><p>(2.1)</p><p>Sendo θ o limiar de decisão, ou threshold, percebe-se que se a soma ponderada das</p><p>entradas for menor ou igual ao limiar de decisão, a saída do perceptron é 0, usualmente</p><p>interpretado como falso, caso contrário, a saída do perceptron é 1, ou verdadeiro.</p><p>Entretanto, o perceptron não era suficiente para tomar decisões inteligentes próxi-</p><p>mas à capacidade de um ser humano. Portanto, algumas modificações e melhoras foram</p><p>sendo criadas ao longo das últimas décadas. As entradas passaram a ser números reais, as</p><p>redes são formadas por vários perceptrons distribuídos em várias camadas sequenciais,</p><p>como mostra a Figura 5, entre outros fatores.</p><p>Capítulo 2. Fundamentação Teórica 26</p><p>Figura 5 – Exemplo de uma rede de perceptrons multicamadas.</p><p>Fonte – Nielsen (2015, ch. 1).</p><p>Desta forma, uma das definições propostas é que a RNA é uma função matemática</p><p>y = fRNA(x), em que a função fRNA tem a forma de uma função aninhada (BURKOV,</p><p>2019), tal que para uma rede neural de quatro camadas, cuja a camada de saída possui</p><p>apenas um neurônio, fRNA se parece com:</p><p>y = fRNA = f4(~f3(~f2(~f1(x))))</p><p>Em que ~f1, ~f2 e ~f3 são funções vetores que seguem a regra:</p><p>~fl(z) def= ~gl( ~Wl~z + ~bl) (2.2)</p><p>Onde l é o índice de cada camada, variando de 1 até qualquer número. A função ~gl</p><p>é uma função de ativação. Os parâmetros ~Wl e ~bl são a matriz dos pesos e o vetor de viés,</p><p>respectivamente, para cada camada da rede neural, que devem ser otimizados durante o</p><p>treinamento do modelo. A Figura 6 ilustra o funcionamento completo de uma rede neural</p><p>com entrada bidimensional, duas camadas com quatro neurônios e uma camada de saída</p><p>com um neurônio. Como todos os neurônios das camadas estão conectados a todos os</p><p>neurônios da camada seguinte, utiliza-se o nome de camada densa.</p><p>Capítulo 2. Fundamentação Teórica 27</p><p>Figura 6 – Rede de perceptrons multicamadas com entrada bidimensional, duas camadas</p><p>com quatro neurônios e uma camada de saída com um neurônio.</p><p>Fonte – Burkov (2019, p. 64).</p><p>O treinamento de uma rede neural é definido por um algoritmo de retropropagação</p><p>do erro. Este algoritmo é definido em duas etapas: o processamento direto e o processamento</p><p>reverso. Durante o processamento direto, os pesos e vieses são selecionados aleatoriamente,</p><p>em seguida, uma entrada é aplicada à rede neural e seu efeito é propagado camada a</p><p>camada. Enquanto que no processamento reverso, um sinal de erro calculado na saída da</p><p>rede é propagado no sentido reverso, camada a camada, e ao final deste processo os pesos</p><p>são ajustados de acordo com uma regra de correção de erro.</p><p>Desta forma, pode-se simplificar o treinamento de uma rede neural como um</p><p>problema de minimização de erro ou loss. O cálculo do erro é feito por uma função custo.</p><p>Em um problema de regressão, uma forma de definir esta função é:</p><p>C(w, b) ≡ 1</p><p>2n</p><p>∑</p><p>x</p><p>‖y(x)− ŷ(x,w, b)‖2 (2.3)</p><p>Em que n é o número total de entradas do treinamento, ŷ(x,w, b) é o vetor de saída</p><p>da rede neural para toda entrada x, e y(x) é a saída esperada do modelo. A Equação 2.3</p><p>é chamada de função de custo quadrática ou, como é mais conhecida, mean squared error</p><p>(MSE) – erro quadrático médio –.</p><p>Um dos algoritmos mais comuns para a minimização da função custo, isto é,</p><p>treinamento da rede neural, é o Gradient Descent, ou descida do gradiente. A ideia</p><p>é utilizar a descida do gradiente para definir os valores dos pesos wk e vieses bl que</p><p>minimizam a Equação 2.3. Aplicando repetidamente a Equação 2.4 e Equação 2.5.</p><p>wk → w′</p><p>k = wk − η</p><p>∂C</p><p>∂wk</p><p>(2.4)</p><p>Capítulo 2. Fundamentação Teórica 28</p><p>bl → b′</p><p>l = bl − η</p><p>∂C</p><p>∂bl</p><p>(2.5)</p><p>Onde w′</p><p>k e b′</p><p>l são os novos parâmetros de pesos e vieses e η é a taxa de aprendizagem,</p><p>um dos hiper-parâmetros do modelo.</p><p>Existem uma variedade de algoritmos de minimização e funções custo. Esta última</p><p>depende da aplicação da rede neural. Para classificação binária, utiliza-se a entropia</p><p>cruzada binária, que por sua vez é uma função especial da função de entropia cruzada.</p><p>Para problemas de regressão, além da MSE, a função mean absolute error – erro absoluto</p><p>médio – e mean squared logarithmic error – erro logarítmico quadrático médio – também</p><p>são comumente utilizadas. Já para os algoritmos de minimização, o Adam (KINGMA; BA,</p><p>2014) e o RMSprop (HINTON; SRIVASTAVA; SWERSKY, 2012) são os dois otimizadores</p><p>mais conhecidos, além do stochastic gradient descent – descida do gradiente estocástico –,</p><p>que implementa a descida de gradiente discutida anteriormente.</p><p>As redes neurais convencionais ou vanilla, são modelos robustos quando utilizados</p><p>em problemas de classificação e regressão, em que o conjunto de dados é suficientemente</p><p>grande e os dados de entrada são a característica de uma amostra, enquanto a saída é</p><p>um ou mais rótulos, nos problemas de classificação, ou um valor real, nos problemas de</p><p>regressão. Entretanto, para problemas ainda mais complexos, como os que são abordados</p><p>no campo da visão computacional, outras variações de neurônios e/ou redes neurais são</p><p>utilizadas.</p><p>2.2.2 Visão Computacional</p><p>A visão computacional é um dos campos de estudo da inteligência artificial. O seu</p><p>objetivo principal é permitir que uma máquina consiga extrair informações de imagens</p><p>(MORONEY, 2020, p. 66). Dentro da visão computacional, existem</p><p>alguns campos de</p><p>maior relevância, são eles a classificação de imagens, rastreamento de objetos em vídeos,</p><p>detecção de posicionamento, reconhecimento ou detecção de objetos, e segmentação de</p><p>objetos em imagens (YAO; FIDLER; URTASUN, 2012; RAGLAND; THARCIS, 2014;</p><p>WU; LIU; LIU, 2019).</p><p>Neste trabalho, apenas os conceitos de reconhecimento e segmentação de objetos</p><p>em imagens são utilizados. Entretanto, para melhor entender esses conceitos, é necessário</p><p>uma breve explicação da tarefa de classificação de imagens.</p><p>A classificação consiste no treinamento de um modelo que visa identificar quais</p><p>objetos estão presentes em uma imagem ou vídeo. O modelo treinado deve ser capaz</p><p>de determinar as classes (objetos) existentes. A classificação é relevante para decidir,</p><p>em um nível binário, se uma imagem contém ou não um objeto ou anomalia. Portanto,</p><p>Capítulo 2. Fundamentação Teórica 29</p><p>tomando como base o problema deste trabalho, um modelo de classificação deve ser capaz</p><p>de identificar quando a superfície externa do aerogerador contém ou não uma sujeira ou</p><p>danos, como exemplificado na Figura 7.</p><p>Figura 7 – Esquema da classificação de imagem.</p><p>Fonte – Elaboração própria a partir das imagens de Shihavuddin e Chen (2018).</p><p>Desta forma, a classificação possui uma limitação que consiste no número de objetos</p><p>rotulados na imagem. Para resolver essa limitação, adiciona-se o conceito de localização,</p><p>que se refere à determinação da posição dos objetos classificados na imagem ou vídeo. A</p><p>detecção de objetos integra técnicas de classificação e localização para identificar quais</p><p>entidades estão presentes na imagem ou vídeo e definir sua posição específica na mesma. Tal</p><p>processo classifica objetos individuais e emprega caixas delimitadoras, conforme ilustrado</p><p>na Figura 8.</p><p>Além da localização dos objetos, a detecção possui outra vantagem em relação à</p><p>classificação: cada objeto contido na imagem é classificado individualmente. O significado</p><p>de cada termo contido na Figura 8, bem como uma análise aprofundada do funcionamento</p><p>do modelo de detecção serão mostrados mais à frente, na subseção 2.2.3.</p><p>Capítulo 2. Fundamentação Teórica 30</p><p>Figura 8 – Esquema da detecção de objetos de imagem.</p><p>Fonte – Elaboração própria a partir das imagens de Shihavuddin e Chen (2018).</p><p>Já a segmentação, consiste em dividir a imagens em regiões, cada uma com sua forma</p><p>e contorno específicos, demarcando áreas potencialmente significativas para processamento</p><p>subsequente, como classificação e detecção de objetos. As regiões podem não ocupar</p><p>a totalidade da imagem, mas o propósito da segmentação é enfatizar os elementos do</p><p>primeiro plano e simplificar sua análise. A segmentação de imagem fornece detalhes de um</p><p>objeto pixel a pixel, diferenciando-o da classificação e detecção de objetos. A Figura 9 é</p><p>um exemplo de resultado esperado de um processo de segmentação. O significado de cada</p><p>termo, bem como uma análise aprofundada do funcionamento do modelo de segmentação</p><p>serão expostos na subseção 2.2.4.</p><p>Capítulo 2. Fundamentação Teórica 31</p><p>Figura 9 – Esquema da segmentação de objetos de imagem.</p><p>Fonte – Elaboração própria a partir das imagens de Shihavuddin e Chen (2018).</p><p>2.2.2.1 Convolutional Neural Network (CNN)</p><p>Embora exista diversos de modelos para implementação da visão computacional</p><p>(FORSYTH; PONCE, 2002), atualmente, os modelos baseados em Redes Neurais Convo-</p><p>lucionais (CNN) são os mais utilizados e pesquisados, uma vez que oferecem um melhor</p><p>desempenho.</p><p>As CNNs vem demonstrando uma performance satisfatória no processamento de</p><p>dados bidimensionais com topologia semelhante a uma grade (LIU et al., 2017), tais como</p><p>imagens e vídeos. A estrutura das Redes Neurais Convolucionais é inspirada na organização</p><p>do córtex visual dos animais. Hubel e Wiesel (1962) introduziram um conceito conhecido</p><p>como campos receptivos, que possibilitou a descoberta de que arranjos complexos de</p><p>células presentes no córtex visual dos animais são responsáveis pela detecção de luz em</p><p>sub-regiões pequenas e sobrepostas do campo visual.</p><p>Capítulo 2. Fundamentação Teórica 32</p><p>Figura 10 – Arquitetura da CNN VGG-16.</p><p>Fonte – Imagem de LearnOpenCV (2023).</p><p>As Redes Neurais Convolucionais diferem das redes neurais tradicionais ao empregar</p><p>interações esparsas e compartilhamento de parâmetros, o que reduz a quantidade de</p><p>memória necessária e aumenta a eficiência. Nas CNNs, a entrada é processada por camadas</p><p>de convolução (camada-c) alternadas com camadas de subamostragem (camada-p), o que</p><p>ajuda a formar mapas de características e promove invariância de escala. A Figura 10 ilustra</p><p>a arquitetura de uma CNN famosa, conhecida como VGG-16 (SIMONYAN; ZISSERMAN,</p><p>2014).</p><p>Figura 11 – Funcionamento de uma convolução.</p><p>Fonte – Elaboração própria.</p><p>Na Figura 11, no contexto da visão computacional, a matriz de entrada consiste</p><p>Capítulo 2. Fundamentação Teórica 33</p><p>na imagem de entrada, o kernel pode ser interpretado como o detector de característica,</p><p>ou feature detector, enquanto que a matriz de saída, dada pela convolução da matriz</p><p>de entrada com o kernel, é chamado de mapa de características, ou feature map. Cada</p><p>camada de convolução é um conjunto de mapas de características, em que a quantidade</p><p>desses mapas é definida durante o treinamento.</p><p>Figura 12 – Funcionamento de um pooling.</p><p>Fonte – Elaboração própria.</p><p>A Figura 12 mostra o funcionamento da camada de subamostragem, ou pooling. O</p><p>objetivo da camada-p é reduzir a quantidade de dados entre duas camadas-c, extraindo</p><p>apenas as informações mais relevantes do mapa de características. Desta forma, o pooling</p><p>também ajuda a prevenir o sobreajuste da rede. Existem várias estratégias para o pooling,</p><p>mas as mais utilizadas são max pooling e average pooling. O primeiro seleciona apenas os</p><p>maiores valores do mapa de característica, enquanto o segundo realiza a média dos valores.</p><p>Na Figura 12, foi utilizado o max pooling como exemplo.</p><p>Capítulo 2. Fundamentação Teórica 34</p><p>Figura 13 – Funcionamento de um flatten.</p><p>Fonte – Elaboração própria.</p><p>Ao final de toda CNN, como visto em Figura 10, existe uma RNA. Isso se deve</p><p>devido a natureza das camadas-c e camada-p, que são extratoras de características.</p><p>Portanto, a RNA empregada na saída dessas camadas é a responsável pela tarefa de visão</p><p>computacional, como por exemplo a classificação de uma imagem. Entretanto, as entradas</p><p>e saídas das camadas-c e camadas-p são bidimensionais, enquanto que as entradas e saídas</p><p>das camadas de uma RNA é unidimensional. Desta forma, é necessário a adição de uma</p><p>camada intermediária entre a camada-c de saída e a camada de entrada da RNA. Esta</p><p>camada intermediária é chamada de flatten e seu objetivo é achatar a saída da camada-c</p><p>em um vetor unidimensional. A Figura 13 exemplifica o funcionamento desta camada.</p><p>O treinamento das CNNs é feito através de retropropagação, assim como explicado</p><p>na subseção 2.2.1.2. As CNNs têm a vantagem de exigir menos pré-processamento e</p><p>dependência de parâmetros fixos ou intervenção humana em comparação com as RNAs</p><p>tradicionais.</p><p>Em suma, as CNNs são eficientes na classificação e reconhecimento de imagens,</p><p>devido ao seu design inspirado na biologia, que permite a redução de parâmetros e a</p><p>melhoria da performance, além de fornecer uma arquitetura robusta contra variações e</p><p>ruídos nas entradas de dados. Entretanto, as arquiteturas tradicionais de CNNs demandam</p><p>um grande poder computacional para o seu treinamento, bem como para as predições,</p><p>tornado-os inviáveis para a detecção de objetos em tempo real, por exemplo. Além disso,</p><p>as arquiteturas propostas para a segmentação de objetos não conseguíam alcançar uma</p><p>performance boa quando o objetivo era a segmentação de vários objetos de classes na</p><p>imagem. Por esses motivos, novas estratégias foram desenvolvidas, como o You Only Look</p><p>Once (YOLO), para a detecção de objetos em tempo real, e o Segment Anything Model</p><p>Capítulo 2. Fundamentação Teórica 35</p><p>(SAM), para a segmentação de qualquer classe de objeto em imagens com alta precisão.</p><p>2.2.3 You Only Look Once (YOLO)</p><p>O modelo YOLO foi</p><p>proposto com o objetivo de realizar a detecção de objetos</p><p>em tempo real, sobretudo em vídeos (REDMON et al., 2016). Antes dele, as abordagens</p><p>mais recentes até então, utilizavam métodos de proposta de região para gerar as caixas</p><p>delimitadoras em potencial em uma imagem para, em seguida, executar um classificador</p><p>nessas caixas delimitadoras. Depois da classificação, um pós-processamento era utilizado</p><p>para refinar as caixas delimitadoras, eliminar as detecções duplicadas e calcular o score das</p><p>caixas baseadas em outros objetos na cena (GIRSHICK et al., 2014). Devido a complexidade</p><p>desses pipelines, a detecção de objetos por essas abordagens se tornam lentas e de difícil</p><p>otimização, uma vez que cada componente deve ser treinado separadamente.</p><p>O modelo YOLO apresenta uma nova abordagem, implementando o problema de</p><p>detecção de objetos como um problema de regressão, tendo os pixels das imagens como</p><p>entrada da rede e as coordenadas da caixa delimitadora, bem como as probabilidades de</p><p>cada classe como as saídas da rede.</p><p>Figura 14 – Arquitetura simplificada do modelo YOLO.</p><p>Fonte – Imagem de Redmon et al. (2016, p. 01).</p><p>Da Figura 14, nota-se que o pipeline do YOLO é muito simples, quando comparado</p><p>aos modelos anteriores. A arquitetura consiste no (1) redimensionamento da imagem, (2)</p><p>execução da rede convolucional, e (3) aplicação da Non-max suppression (NMS) – supressão</p><p>não máxima – (REDMON et al., 2016). A primeira etapa é autoexplicativa, enquanto</p><p>a segunda etapa consiste na rede convolucional realizar a predição das coordenadas das</p><p>caixas delimitadoras, bem como a probabilidade da classe do objeto contido em cada uma</p><p>das caixas delimitadores simultaneamente. A terceira e última etapa é a aplicação do NMS,</p><p>que é uma técnica usada para garantir que, no caso de múltiplas caixas delimitadoras serem</p><p>detectadas para o mesmo objeto, apenas a caixa com a maior pontuação de confiança</p><p>seja mantida. O processo envolve a remoção de caixas delimitadoras que têm uma grande</p><p>sobreposição (determinada por um limiar de Intersecção sobre União, ou IoU) com a caixa</p><p>de maior confiança, reduzindo assim as detecções duplicadas e melhorando a precisão do</p><p>modelo.</p><p>Capítulo 2. Fundamentação Teórica 36</p><p>Com a popularidade da arquitetura YOLO no meio científico, outras versões da</p><p>arquitetura foram sendo desenvolvidas. Entretanto, para entender as diferenças entre cada</p><p>versão e tipo de arquitetura, faz-se necessário a compreensão das métricas de performance</p><p>dos modelos de detecção de objetos, incluindo o YOLO, tais como o total de parâmetros da</p><p>rede, tamanho da imagem de entrada, Mean Average Precision (mAP) – Média da Precisão</p><p>Média –, Frames por segundo (FPS), Floating Point Operations (FLOPs) – Operação de</p><p>Pontos Flutuantes –, e Intersection over Union (IoU) – Interseção sobre União.</p><p>2.2.3.1 Métricas de Avaliação do Modelo de Detecção</p><p>O mAP é uma métrica utilizada para avaliar a qualidade de modelos de detecção</p><p>de objetos, que são comuns em visão computacional e aprendizado de máquina. Ela é</p><p>calculada, primeiramente, encontrando a Average Precision (AP) – Precisão Média – para</p><p>cada classe de objeto que o modelo está tentando detectar. A AP resume a forma da</p><p>curva Precision-Recall – precisão e revocação –, fornecendo um único valor que reflete o</p><p>desempenho do modelo em todas as faixas de limiares de detecção. Depois, para obter o</p><p>mAP, calcula-se a média dessas APs de todas as classes de objetos, o que dá uma medida</p><p>geral de quão bem o modelo está desempenhando em termos de precisão em várias classes.</p><p>Considerando o número de verdadeiros positivos (TP ), falsos positivos (FP ) e</p><p>falsos negativos (FN), pode-se calcular a precisão (P ) e o recall (R) como:</p><p>P = TP</p><p>TP + FP</p><p>(2.6)</p><p>R = TP</p><p>TP + FN</p><p>(2.7)</p><p>Desta forma, define-se a AP para uma classe como:</p><p>AP =</p><p>∫ 1</p><p>0</p><p>p(r) dr (2.8)</p><p>Onde p(r) é a função de precisão do recall r. Na prática, essa integral é frequente-</p><p>mente calculada como a soma da área sob a curva Precision-Recall para os vários limiares</p><p>de decisão.</p><p>Por fim, calcula-se o mAP como:</p><p>mAP = 1</p><p>N</p><p>N∑</p><p>i=1</p><p>APi (2.9)</p><p>Sendo N o número de classes envolvidas no problema e APi a precisão média para</p><p>classe i.</p><p>Capítulo 2. Fundamentação Teórica 37</p><p>O conceito de FPS é consideravelmente mais simples. Uma vez que a rede YOLO</p><p>tem o objetivo de realizar a detecção de objetos em imagens e, principalmente, vídeos em</p><p>tempo real, faz sentido calcular a velocidade da predição como a quantidade de imagens</p><p>que o modelo consegue prever por segundo. Uma vez que cada imagem de um vídeo é</p><p>chamado de quadro, ou frame, a métrica de velocidade de predição do modelo é chamada</p><p>de quadros por segundo, do inglês Frames Per Second (FPS).</p><p>Já o FLOPs, ou Floating Point Operations, é uma métrica de desempenho que</p><p>contabiliza o número total de operações de ponto flutuante realizadas por um modelo</p><p>de detecção de objetos durante uma única passagem para frente. É crucial para medir</p><p>a complexidade computacional e a eficiência de um modelo. Um número elevado de</p><p>FLOPs geralmente indica que o modelo pode ser mais lento para inferir e possivelmente</p><p>mais desafiador de ser executado em tempo real, especialmente em dispositivos com</p><p>recursos limitados, como smartphones e sistemas embarcados. Além disso, modelos com</p><p>FLOPs elevados podem consumir mais energia, o que é uma consideração importante para</p><p>aplicações móveis e de IoT. A métrica FLOPs permite comparar diferentes arquiteturas de</p><p>modelos sob o aspecto da complexidade computacional, independentemente da plataforma</p><p>de hardware em que estão sendo executados.</p><p>Por fim, na área de detecção de objetos, o IoU mede a área de sobreposição entre a</p><p>caixa delimitadora prevista Bp e a caixa delimitadora verdadeira Bv, dividida pela área</p><p>da união entre elas, ou seja (PADILLA; NETTO; SILVA, 2020),</p><p>J(Bp, Bv) = IoU = área(Bp ∩Bv)</p><p>área(Bp ∪Bv) (2.10)</p><p>Ilustrado na Figura 15.</p><p>Figura 15 – Ilustração da definição de IoU. O quadrado verde representa a caixa delimita-</p><p>dora verdadeira e a vermelha representa a caixa delimitadora prevista pelo</p><p>modelo.</p><p>Fonte – Elaboração própria.</p><p>Outras métricas mais tradicionais do aprendizado de máquina podem ser utilizadas,</p><p>como a precisão, o recall e o f1-score, cuja equação é demonstrada na Equação 2.11.</p><p>f1 = precison× recall</p><p>precision+ recall</p><p>(2.11)</p><p>Capítulo 2. Fundamentação Teórica 38</p><p>O f1-score é uma métrica que mede o balanceamento do modelo entre a precisão e</p><p>o recall. Quando o valor de f1 é alto, significa que tanto a precisão, quanto o recall do</p><p>modelo são altos. Enquanto que um baixo valor de f1 indica um desbalanceamento entre</p><p>a precisão e recall do modelo.</p><p>2.2.3.2 Comparação Entre as Versões do YOLO</p><p>A versão pioneira foi lançada em 2015 e era composta por 24 camadas convolucionais,</p><p>atingindo um mAP de 63,4% e 45 FPS no conjunto de teste PASCAL VOC 2007 e utilizando</p><p>uma GPU TitanX. Enquanto a sua versão rápida possuía 9 camadas e obtinha 52,7% de</p><p>mAP e 155 FPS (REDMON et al., 2016).</p><p>Em 2016, o YOLOv2 trouxe um aumento de performance, através da implementação</p><p>de técnicas como um modelo totalmente convolucional, treinamento multi-escala, batch</p><p>normalization – normalização de lotes –, bounding boxes dimensions priors – dimensões de</p><p>caixas delimitadores anteriores –, entre outras técnicas (REYES et al., 2019). Resultando</p><p>em um mAP de 76,8% e 67 FPS, na sua versão completa, e 57,1% de mAP e 207 FPS na</p><p>versão rápida, ambas utilizando a GPU Titan X e o conjunto de dados PASCAL VOC</p><p>2007.</p><p>O YOLOv3 (REDMON; FARHADI, 2018) trouxe, em 2018, um modelo maior,</p><p>com 73 camadas convolucionais que integram blocos residuais, aprimora a detecção de</p><p>objetos ao prever caixas delimitadoras em três escalas distintas, de maneira semelhante aos</p><p>métodos usados em redes de pirâmide de recursos. Esses aperfeiçoamentos resultaram em</p><p>um aumento no mAP para 57,9% no conjunto de dados COCO, mantendo uma velocidade</p><p>de processamento de 20 FPS na GPU TitanX.</p><p>A quarta versão foi lançada em 2020, trazendo mais algumas melhorias quando</p><p>comparado à versão anterior, tais como o aumento do conjunto de dados</p><p>de treinamento,</p><p>a implementação de técnicas avançadas de pré-processamento e ampliação de imagens, e</p><p>o ajuste do tamanho da resolução de entrada. O YOLOv4 (BOCHKOVSKIY; WANG;</p><p>LIAO, 2020) se beneficia ainda do uso de pesos pré-treinados para acelerar e melhorar</p><p>a aprendizagem, a seleção criteriosa do tamanho e da arquitetura do modelo para um</p><p>equilíbrio ideal entre velocidade e precisão, e a continuação do treinamento a partir de</p><p>pontos salvos anteriormente. As melhorias adicionais incluem a escolha do melhor modelo</p><p>pós-treinamento, o acompanhamento das avaliações do modelo para um refinamento</p><p>contínuo, a exportação do modelo para uso prático e a otimização dos tempos de inferência,</p><p>o que pode envolver a utilização de modelos menores ou o auxílio de aceleradores de</p><p>hardware.</p><p>O YOLOv5 (ULTRALYTICS, 2021), lançado no mesmo ano da versão anterior,</p><p>foi o primeiro modelo da arquitetura YOLO desenvolvido nativamente em PyTorch, em</p><p>Capítulo 2. Fundamentação Teórica 39</p><p>contraste com o Darknet, proporcionando maior facilidade de configuração e preparo</p><p>para produção. Em termos de desempenho, o YOLOv5 demonstrou ser extremamente</p><p>rápido, com tempos de inferência de até 0.007 segundos por imagem, resultando em 140</p><p>quadros por segundo em um teste utilizando uma GPU Tesla P100. Além da velocidade, o</p><p>YOLOv5 mantém um alto nível de precisão, alcançando cerca de 0.895 de precisão média</p><p>(mAP) após treinamento em apenas 100 épocas no conjunto de dados de contagem e</p><p>detecção de células sanguíneas. Importante ressaltar que o arquivo de pesos do YOLOv5</p><p>é substancialmente menor que o do YOLOv4, sendo quase 90% menor, o que facilita</p><p>significativamente a implementação do modelo em dispositivos embarcados. O YOLOv-N,</p><p>a versão mais leve do modelo, possui um arquivo de pesos de 3,97MB, enquanto que o</p><p>YOLOv5-X, a implementação mais pesada, possui 166MB.</p><p>Já o YOLOv6 (LI et al., 2023) apresentou melhorias arquitetônicas significativas em</p><p>sua mais recente iteração. Com a introdução do que os autores denominam de EfficientRep</p><p>Backbone e uma Rep-PAN Neck, o YOLOv6 reformula o projeto da espinha dorsal e do</p><p>pescoço do modelo com foco na eficiência do hardware. Outra alteração que se destacou foi</p><p>a separação das cabeças de classificação e regressão de caixas delimitadoras, com camadas</p><p>adicionais que desacoplam essas características antes da cabeça final, o que demonstrou</p><p>empiricamente aumentar o desempenho do modelo. Além das mudanças arquitetônicas, o</p><p>YOLOv6 implementou melhorias no pipeline de treinamento, como o treinamento livre de</p><p>âncoras (não livre de NMS), atribuição de tags SimOTA e perda de regressão de caixas</p><p>SIoU. Em termos de desempenho, o YOLOv6 alcançou uma mAP mais alta no conjunto</p><p>de dados COCO em várias taxas de FPS quando comparado a modelos como YOLOv5,</p><p>evidenciado em testes realizados na GPU Tesla V100.</p><p>Assim como os lançamentos anteriores, o YOLOv7 (WANG; BOCHKOVSKIY;</p><p>LIAO, 2023) trouxe uma arquitetura de rede mais otimizada, trazendo maior eficácia e</p><p>velocidade. Este modelo aprimorou a integração de características e a precisão da detecção,</p><p>além de empregar uma função de perda mais robusta e um método de atribuição de</p><p>rótulos mais eficaz. Em comparação com o YOLOv4, o YOLOv7 reduziu em 75% o</p><p>total de parâmetros e em 36% o FLOPs, aumentando a precisão em 1,5%. A versão</p><p>YOLOv7-tiny diminuiu em 39% os total parâmetros e em 49% o FLOPs comparado ao</p><p>YOLOv4-tiny-31, preservando a mesma precisão. Além disso, o YOLOv7 foi a primeira</p><p>arquitetura a adicionar tarefas adicionais, como a estimativa de pose.</p><p>Por fim, em Janeiro de 2023, o modelo YOLOv8 (JOCHER; CHAURASIA; QIU,</p><p>2023) foi lançado e, até o momento, trata-se da versão mais nova da família YOLO. Este</p><p>modelo aprimora os feitos de suas versões antecessoras por meio da incorporação de</p><p>funcionalidades novas e otimizações que elevam sua performance, flexibilidade e eficiência.</p><p>Com capacidade de suportar uma ampla gama de tarefas de inteligência artificial em</p><p>visão computacional, como detecção, segmentação, estimativa de pose, rastreamento e</p><p>Capítulo 2. Fundamentação Teórica 40</p><p>classificação, o YOLOv8 se destaca por sua aplicabilidade versátil em uma variedade</p><p>de aplicações e domínios. Por se tratar de um produto oficial de uma empresa privada,</p><p>informações aprofundadas sobre as melhorias do modelo não foram divulgadas, assim</p><p>como não existem artigos publicados pela empresa.</p><p>Uma comparação entre as diferentes versões e arquiteturas da família YOLO são</p><p>apresentadas na Tabela 1. Vale ressaltar que algumas versões anteriores, como o YOLOv6</p><p>e YOLOv7 continuam em desenvolvimento e, como pode ser visto na Tabela 1, podem</p><p>apresentar desempenho superior ao YOLOv8 dependendo do cenário.</p><p>Modelo</p><p>Tamanho</p><p>de Entrada</p><p>(pixels)</p><p>mAP-50</p><p>(%)</p><p>FPS</p><p># Parâmetros</p><p>(M)</p><p>FLOPS</p><p>(B)</p><p>GPU</p><p>YOLOv3 608 57,9 20 65,25 140,69 Titan X</p><p>YOLOv3-Tiny 416 33,1 220 8,86 5,56 Titan X</p><p>YOLOv4 608 65,7 34 162 128,5 RTX 2070</p><p>YOLOv4-Tiny 416 40,2 330 23,1 6,9 RTX 2070</p><p>YOLOv5-N 640 45,7 602 1,9 4,5 Tesla T4</p><p>YOLOv5-S 640 56,8 376 7,2 16,5 Tesla T4</p><p>YOLOv5-M 640 64,1 182 21,2 49,0 Tesla T4</p><p>YOLOv5-L 640 67,3 113 46,5 109,1 Tesla T4</p><p>YOLOv5-N6 1280 54,4 172 3,2 18,4 Tesla T4</p><p>YOLOv5-S6 1280 63,7 103 12,6 67,2 Tesla T4</p><p>YOLOv5-M6 1280 69,3 49 35,7 200,0 Tesla T4</p><p>YOLOv5-L6 1280 71,3 32 76,8 445,6 Tesla T4</p><p>YOLOv5-X6 1280 72,7 17 140,7 839,2 Tesla T4</p><p>YOLOv6-N 640 37,5 779 4,7 11,4 Tesla T4</p><p>YOLOv6-S 640 45,0 339 18,5 45,3 Tesla T4</p><p>YOLOv6-M 640 50,0 175 34,9 85,8 Tesla T4</p><p>YOLOv6-L 640 52,8 98 59,6 150,7 Tesla T4</p><p>YOLOv6-N6 1280 44,9 228 10,4 49,8 Tesla T4</p><p>YOLOv6-S6 1280 50,3 98 41,4 198,0 Tesla T4</p><p>YOLOv6-M6 1280 55,2 47 79,6 379,5 Tesla T4</p><p>YOLOv6-L6 1280 57,2 26 140,4 673,4 Tesla T4</p><p>YOLOv7-Tiny 416 49,9 787 6,2 5,8 Tesla T4</p><p>YOLOv7-Tiny 640 55,2 424 6,2 13,7 Tesla T4</p><p>YOLOv7 640 69,7 110 36,9 104,7 Tesla T4</p><p>YOLOv7-E6E 1280 74,4 16 151,7 843,2 Tesla T4</p><p>Capítulo 2. Fundamentação Teórica 41</p><p>YOLOv8-N 640 52,6 561 3,2 8,7 Tesla T4</p><p>YOLOv8-S 640 61,8 311 11,2 28,6 Tesla T4</p><p>YOLOv8-M 640 67,2 143 25,9 78,9 Tesla T4</p><p>YOLOv8-L 640 69,8 91 43,7 165,2 Tesla T4</p><p>Tabela 1 – Tabela de comparação da performance e complexidade dos modelos YOLO no</p><p>conjunto de dados MS COCO 2017, a partir da terceira versão até a oitava. Os</p><p>dados da tabela foram retirados, da versão 5 à versão 8, do artigo publicado</p><p>por Li et al. (2023, p. 04). Os modelos treinados na GPU Tesla T4 utilizaram</p><p>o framework TensorRT, por isso a discrepância na velocidade de predição</p><p>quando comparado aos demais modelos.</p><p>2.2.4 Segment Anything Model (SAM)</p><p>O Modelo Segment Anything (SAM) representa uma nova metodologia para cons-</p><p>truir modelos fundamentais para segmentação de imagens. O objetivo do SAM é desenvolver</p><p>um modelo que possa ser instigado a segmentar imagens em tempo real, bem como trans-</p><p>ferir conhecimento de forma zero-shot para novas distribuições de imagens e tarefas. Isso</p><p>permite que o modelo generalize para novos conceitos e dados sem treinamento adicional.</p><p>Baseado em uma arquitetura de codificador-decodificador, onde o codificador é</p><p>uma rede neural convolucional que extrai características da imagem de entrada, e o</p><p>decodificador é uma rede neural que gera a máscara de segmentação da imagem, o SAM</p><p>é um modelo que responde a prompts textuais para gerar máscaras de segmentação em</p><p>tempo real, tornando-o útil para casos de uso interativos, como anotação de dados. A</p><p>Figura 16 ilustra a visão geral do SAM.</p><p>Capítulo 2. Fundamentação Teórica 42</p><p>Figura 16 – Visão geral do Modelo Segment Anything (SAM). Um codificador de ima-</p><p>gens robusto gera uma representação codificada da imagem que pode ser</p><p>prontamente consultada por uma gama de prompts de entrada. Isso permite</p><p>a produção de máscaras de objetos em uma velocidade efetiva e próxima</p><p>ao tempo real. Em casos onde os prompts são ambíguos e podem se referir</p><p>a múltiplos objetos, o SAM é capaz de fornecer diversas máscaras válidas,</p><p>juntamente com seus respectivos escores de confiança.</p><p>Fonte – Imagem de Kirillov et al. (2023, p. 05).</p><p>O SAM foi projetado para ser flexível e pode ser combinado com outros módulos</p><p>para</p>