É necessária uma assinatura do JoVE para visualizar este conteúdo. Faça login ou inicie seu teste gratuito.

Artigo de método

Uma Arquitetura de Hardware Adaptável à Resolução para Detecção de Bordas de Sobel em Tempo Real, Alcançando Escalonamento de Recursos Sublinear

58 visualizações

⸱

DOI:

10.3791/71589

⸱

28 de agosto de 2026

 ,  , 

Neste artigo

Resumo

Este trabalho apresenta uma implementação baseada em FPGA do algoritmo de detecção de bordas de Sobel na plataforma heterogênea Ultra96-V2, avaliando o uso de recursos, potência e velocidade em resoluções de imagem que variam de 256 × 256 a 2560 × 1440. A arquitetura proposta demonstra escalonamento sublinear de recursos para aplicações de processamento de imagem em tempo real.

Resumo

A detecção de bordas é uma área fundamental na visão computacional e tornou-se parte integrante de diversas aplicações. A detecção de bordas permite identificar bordas, que são características essenciais nas imagens e representam atributos importantes para extrair informações principais e distintivas das imagens. A implementação em hardware da detecção de bordas deve ser rápida, utilizar recursos mínimos, consumir pouca energia e ser adaptável a diferentes resoluções de imagem. Este artigo implementa a detecção de bordas de Sobel com resolução de imagem adaptável, variando desde imagens de baixa resolução até alta definição completa, utilizando uma plataforma moderna de FPGA (Field Programmable Gate Array) heterogênea, a Ultra96-V2. Os resultados revelam que apenas 5% dos recursos embarcados no FPGA, incluindo as Tabelas de Consulta (LUTs), Flip Flops (FF), Processadores de Sinal Digital (DSP) e Memória de Bloco (BRAM), são utilizados para imagens de baixa resolução, enquanto cerca de 23% dos recursos embarcados são consumidos para imagens de alta resolução. Isso demonstra que o aumento na utilização de recursos ao passar de imagens de baixa para alta resolução é inferior a 20%. Além disso, a dissipação de potência é de aproximadamente 2 W para a resolução mais alta, e a frequência operacional máxima registrada é de 136 MHz para imagens de alta resolução e 166 MHz para imagens de baixa resolução, mostrando apenas uma redução de 18% na frequência. A arquitetura proposta alcança escalonamento sublinear de recursos, com aumento inferior a 20% na utilização de recursos e redução inferior a 20% na velocidade e no consumo de energia ao lidar com um aumento de 56 vezes na contagem de pixels, aproveitando as vantagens da arquitetura moderna de FPGA heterogêneo. Consequentemente, a capacidade de resolução adaptável combinada com o baixo escalonamento de recursos torna o projeto proposto particularmente adequado para aplicações de detecção de bordas em tempo real que exigem processamento de imagem de alta qualidade.

Introdução

A detecção de bordas tornou-se um elemento crucial em quase todas as técnicas de visão computacional utilizadas atualmente em diversos domínios de aplicação1. A detecção de bordas é uma etapa de extração de características e é responsável por recuperar detalhes informativos e distintivos das imagens, os quais podem ser aplicados em uma ampla gama de cenários2. As bordas dentro de uma imagem indicam regiões onde ocorre uma mudança repentina na intensidade; portanto, elas oferecem informações importantes e distintivas sobre essa imagem. Esse processo facilita a eliminação de detalhes desnecessários e irrelevantes, preservando apenas os elementos cruciais e únicos que podem ser posteriormente processados para a aplicação específica.

A importância da detecção de bordas é destacada por sua aplicação em diversas tarefas, incluindo segmentação de imagens, detecção e reconhecimento de objetos, extração de características, realce de imagem, identificação de objetos, imagens médicas, vigilância, automação industrial, direção autônoma, realidade aumentada e robótica2,3,4,5,6, conforme mostrado na Figura 1.

Existem diversos métodos para detecção de bordas, incluindo Sobel, Prewitt, Roberts, Canny e outros. Entre essas técnicas, a detecção de bordas de Sobel destaca-se pela sua aplicação simples, baixa complexidade de implementação e alta precisão na identificação de bordas3,4,5,6. Os gradientes da imagem são determinados pelo algoritmo de borda de Sobel nas direções horizontal e vertical, utilizando os kernels Gx e Gy, respectivamente, conforme mostrado abaixo2,4.

Gx destaca as bordas na direção ×, e Gy destaca bordas na direção y12,13. Quando combinados, eles definem completamente todas as bordas em uma imagem6. A convolução com o processo do kernel e a janela deslizante são usadas para aplicar a detecção de bordas de Sobel a uma imagem. Uma a uma, janelas de, por exemplo, 3 por 3 pixels são extraídas da imagem, e cada janela é convolucionada com a matriz do filtro para obter o novo valor do pixel central. Toda a imagem é processada dessa maneira novamente. Dois kernels desse tipo são usados na detecção de bordas de Sobel: um para extrair bordas na direção x e outro para a direção y. Para obter todas as bordas, esses dois resultados são então combinados. A detecção de bordas de Sobel produz resultados precisos e confiáveis, que podem ser ainda aprimorados com algum pré-processamento4,5,15. A detecção completa de bordas de Sobel é interpretada na Figura 2.

Embora toda a literatura relatada tenha contribuições significativas no campo da detecção de bordas, todas as principais pesquisas relatadas trabalharam com resoluções de imagem baixas, enquanto o trabalho apresentado neste artigo atua em diferentes resoluções de imagem, variando de imagens de baixa resolução (256 × 256) até resolução de imagem full high-definition (HD) (2560 × 1440). Consequentemente, investigar a implementação em hardware do algoritmo de detecção de bordas de Sobel para diferentes resoluções de imagem é fundamental para compreender a eficiência da implementação quando submetida a cenários em tempo real com resoluções de imagem variadas. A matriz de portas programáveis em campo (Field Programmable Gate Array, FPGA) tem sido reconhecida como uma plataforma apropriada para implementações em hardware, devido à sua adequação ao desenvolvimento rápido de protótipos e vantagens como a reconfigurabilidade, que permite modificações fáceis no projeto sem a necessidade de alterar toda a configuração de hardware6,7,8,9,10,11,12,13. Além disso, as FPGAs oferecem potencial para processamento paralelo e pipeline; uma vez que as métricas de desempenho são otimizadas e a plataforma validada, o projeto pode avançar para a produção real de circuitos integrados específicos para aplicações (Application Specific Integrated Circuits, ASICs)14,15. Outra característica importante das FPGAs é sua reconfigurabilidade, que permite aos projetistas modificar o design do produto a qualquer momento sem a necessidade de substituir qualquer componente de hardware. A reprogramação do chip é tudo o que é necessário, e exige muito pouco tempo ou esforço, desde que o projetista tenha bom domínio de linguagens de descrição de hardware como VHDL/Verilog4,6,13,16,17. Para a análise da implementação em FPGA, os principais parâmetros considerados são velocidade (frequência máxima), utilização de recursos e eficiência energética. Tabela 1, que retrata o aumento na quantidade de literatura publicada na área de FPGA e mostra como as publicações sobre FPGA evoluíram ao longo do período de 2006 a 2024. Ela explica claramente que o domínio da pesquisa em FPGA agora se deslocou para aplicações em tempo real, realidade aumentada, computação de borda e outras aplicações de alto desempenho13,14,15,16,17,18,19,20,21,22,23.

Tabela 2 destaca os trabalhos realizados na literatura existente relacionados à implementação da detecção de bordas de Sobel em FPGA desde 2020–2025. Tabela 2 menciona a placa FPGA utilizada, os algoritmos implementados, a metodologia de projeto, os resultados, as métricas, a área de aplicação e os desafios de cada artigo referenciado.

Os autores4 recomendaram o uso do método de detecção de bordas de Sobel em 8 direções para aumentar a precisão na detecção de bordas; no entanto, relataram maior consumo de recursos para a metodologia proposta. Navinkumar et. al. utilizam uma técnica para reduzir as operações matemáticas complexas de multiplicação e raiz quadrada envolvidas na detecção tradicional de bordas de Sobel, economizando recursos embarcados e melhorando a velocidade9. Os autores17 documentaram o uso do Algoritmo de Detecção de Bordas de Sobel para identificar faixas em Sistemas Avançados de Assistência ao Motorista. O objetivo deles era acelerar a detecção enquanto reduziam o tempo de processamento. De modo geral, sugeriu-se o uso da detecção de bordas como um método confiável para extração da região de interesse no futuro, o que pode ser muito útil em diversas aplicações nas quais a área necessária de uma imagem precisa ser extraída, ignorando qualquer informação desnecessária. Os desafios relatados incluíram coletivamente maior utilização de recursos e memória, sensibilidade ao ruído, alto custo computacional e escalabilidade limitada para imagens de maior resolução4,5,6,11,12,13,21,22,23.

Neste trabalho, a implementação tradicional do algoritmo de detecção de bordas Sobel é realizada na placa FPGA Ultra96-V2, para diferentes resoluções de imagem variando desde baixa resolução de 256 × 256 até resolução full HD de 2560 × 1440. A Ultra96-V2 é uma placa que combina as capacidades de programação FPGA com o poderoso processamento Arm (Cortex-A53/R5) para aplicações de alto desempenho. Esta placa foi lançada inicialmente em 2018 e utiliza o nó tecnológico FinFET de 16 nm18.

Para garantir a reprodutibilidade, toda a implementação foi realizada utilizando uma cadeia de ferramentas padrão composta pelo Vivado HLS 2019.2 para Síntese de Alto Nível (HLS) e pelo Vivado 2019.2 para posicionamento e roteamento, bem como pela imagem PYNQ disponibilizada pelos recursos do Ultra96-V2. O código HLS foi utilizado para derivar o IP (Propriedade Intelectual) de detecção de bordas Sobel, que foi exportado e integrado ao conjunto de ferramentas do Vivado. O IP foi implementado na parte PL (Lógica Programável), e a parte PS (Sistema de Processamento) do FPGA foi responsável pelas transferências de dados e pelos mecanismos de controle. A interface entre o PS e o PL foi realizada por meio do protocolo AXI. Todas as métricas relatadas — frequência, utilização de recursos e potência — foram obtidas a partir de relatórios pós-implementação, não de estimativas do HLS. As configurações de implementação permaneceram constantes, e apenas as resoluções das imagens foram alteradas ao longo dos experimentos.

Os principais avanços deste trabalho estão relacionados ao baixo consumo de energia, baixa utilização de recursos e alta velocidade. Os resultados indicam menos de 20% da utilização de recursos embarcados (18% de tabelas de consulta (LUTs), 11% de flip-flops (FF), 3% de memória e 10% de DSP) para imagens de alta resolução, o que demonstra grande disponibilidade para integrar muito mais processamento nessas imagens, algo esperado em qualquer sistema de visão computacional, já que a detecção de bordas é apenas uma etapa intermediária. Além disso, a dissipação de potência é de aproximadamente 2 W e a frequência máxima de operação é de 144 MHz. Os resultados mostram que aumentar os tamanhos das imagens em cerca de 56 vezes eleva a utilização de recursos em apenas aproximadamente 20%. A velocidade e a dissipação de potência também são reduzidas em apenas cerca de 20%. Esta análise investiga significativamente o algoritmo de uma perspectiva diferente, que não foi relatada na literatura anterior, indicando, portanto, que a implementação é bem adequada para aplicações em tempo real, sem necessidade de limitar as imagens a tamanhos pequenos ou baixa resolução, o que certamente reduziria a quantidade de informação necessária nas etapas subsequentes após a detecção de bordas.

A novidade deste trabalho não está no próprio algoritmo, mas sim na avaliação do desempenho do algoritmo tradicional de detecção de bordas de Sobel em várias resoluções de imagem em arquiteturas FPGA heterogêneas modernas, aproveitando as vantagens das técnicas de implementação baseadas em HLS. As principais contribuições deste artigo estão principalmente na aplicação de uma metodologia híbrida implementada em um FPGA, distribuindo efetivamente a carga de trabalho entre as seções PS e PL da arquitetura, permitindo que o projeto se ajuste facilmente a diferentes resoluções. Outra contribuição envolve experimentos para avaliar como a escala de recursos varia com mudanças nas resoluções de imagem, o que auxilia na compreensão do desempenho em diferentes configurações e para diversas aplicações.

Acesso restrito. Inicie sessão ou comece um teste para visualizar este conteúdo.

Protocolo

1. Implementação da detecção de bordas de Sobel na ferramenta HLS

  1. Abra a ferramenta Vivado HLS 2019.2 e crie um projeto. Selecione a placa FPGA como Ultra96-V2.
  2. Escreva o código na linguagem de alto nível usando a linguagem C++ para detecção de bordas Sobel, com o parâmetro de tamanho da imagem generalizado e não fixo.
    NOTA: A largura e a altura da imagem não são fixas e estão escritas como parâmetros gerais no código, de modo que possam ser facilmente alteradas ao variar a resolução da imagem, sem a necessidade de mudanças em múltiplos locais.
  3. Escreva o código do ambiente de testes para o algoritmo de detecção de bordas Sobel em C++.
    NOTA: O ambiente de testes é escrito para fornecer as imagens de entrada nas quais o código é testado.
  4. Clique em “run C simulation” para simular o código e verificar a correção funcional. Forneça uma imagem de entrada ao ambiente de testes e então verifique a saída gerada, que deve ser uma imagem com as bordas destacadas.
  5. Clique em “run C synthesis” para sintetizar o código HLS e exportar o IP para detecção de bordas Sobel.
    NOTA: O processo de síntese basicamente mapeia o projeto codificado para componentes de hardware e torna o projeto compatível e pronto para implementação em hardware.
  6. Verifique os relatórios de tempo e utilização de recursos gerados pela ferramenta e certifique-se de que o tempo estimado não exceda o tempo alvo.
    NOTA: Todos esses resultados da plataforma HLS são apenas estimativas, e os parâmetros reais são calculados somente quando o projeto é implementado em um FPGA.
  7. Clique em “export IP” para exportar o IP do procedimento de detecção de bordas Sobel.
    NOTA: Este IP é utilizado na próxima etapa ao projetar o diagrama de blocos para implementação FPGA na ferramenta Vivado.

2. Implementação da detecção de bordas de Sobel na plataforma FPGA, Ultra96-V2, utilizando IP HLS extraído

  1. Abra a ferramenta Vivado Design Tool e crie um novo projeto. Selecione a placa de destino como Ultra96-V2 e clique em “Criar um novo projeto em blocos”.
  2. Importe o IP da detecção de bordas de Sobel recém-exportado da ferramenta HLS. Adicione os outros blocos necessários para completar a interface entre a parte PS e a parte PL.
    NOTA: O diagrama em blocos utiliza também outros IPs importantes, como o IP Zynq Ultrascale, o Smart Connect e o reset do processador, entre outros, para estabelecer a interface entre PS e PL usando o protocolo Advanced eXtensible Interface (AXI).
  3. Clique em “validar projeto” para validar o projeto em blocos. Certifique-se de que não haja erros relatados pela ferramenta. Caso existam erros, siga as instruções para correção e valide novamente.
    NOTA: Esta etapa garante que não haja conexões ausentes no diagrama em blocos, mas não verifica a correção funcional do projeto em blocos.
  4. Clique em “criar o invólucro HDL” para obter um código HDL generalizado para o projeto em blocos.
  5. Clique em “executar síntese” para sintetizar o projeto e verificar a ocorrência de erros relatados. Se nenhum erro for encontrado, a ferramenta informará que a síntese foi bem-sucedida. Após a síntese bem-sucedida, acesse os relatórios de temporização para verificar possíveis violações de tempo.
  6. Para verificar violações de temporização, certifique-se de que nenhum tempo seja exibido em texto vermelho, pois isso indica que o tempo utilizado excede o tempo alvo atribuído, indicando, portanto, violações.
  7. Clique em “executar implementação” para implementar o projeto e avaliar os relatórios de temporização, potência e utilização de recursos.
  8. Gere o arquivo “.bit” para programar a placa FPGA.
    NOTA: O diagrama em blocos para detecção de bordas de Sobel na placa Ultra96-V2 é mostrado na Figura 3. Como já mencionado, o diagrama em blocos é essencialmente necessário para estabelecer uma interface entre a parte PS e a parte PL da placa FPGA.

3. Programação da placa FPGA

  1. Para preparar o cartão SD, baixe o arquivo de imagem PYNQ (.img) para a placa Ultra96-V216 e instale o arquivo baixado no cartão SD.
  2. Ligue a placa no modo de inicialização do cartão SD, selecionando as posições do interruptor conforme o manual de referência do Ultra96-V216.
  3. Visite o URL http://192.168.3.1 e digite o nome de usuário e a senha, ambos como "xilinx", quando solicitado.
    OBSERVAÇÃO: recomenda-se utilizar o navegador Google Chrome para evitar incompatibilidades técnicas.
  4. Acesse a plataforma Jupyter e escreva o código Python da parte PS para ler as imagens ou vídeos de entrada e enviar a imagem lida para a parte PL para processamento.
  5. Escreva um código para a tarefa de gravar as imagens processadas do PL no PS e exibir o resultado.
    OBSERVAÇÃO: Para exibir os resultados no Ultra96-V2, utiliza-se a plataforma PYNQ, o que facilita muito a exibição das imagens de saída simplesmente por meio do uso de códigos em Python e das bibliotecas OpenCV.
    Figura 4 mostra os passos do método Ultra96-V2 conforme demonstrado nesta seção e as saídas obtidas.

Acesso restrito. Inicie sessão ou comece um teste para visualizar este conteúdo.

Resultados

Esta seção discute os resultados obtidos no projeto da detecção de bordas de Sobel na Ultra96-V2. Figura 5 abaixo mostra as imagens de entrada e saída obtidas por meio da simulação HLS. As imagens utilizadas são imagens padrão de tamanho 512 × 512. Esses resultados demonstram que o código HLS escrito para detecção de bordas de Sobel está funcionalmente correto. As bordas devem ser claramente visíveis nas imagens resultantes.

Tabela 3

Acesso restrito. Inicie sessão ou comece um teste para visualizar este conteúdo.

Discussão

Este artigo foca na execução do algoritmo de detecção de bordas de Sobel, que é um componente essencial em diversas aplicações em múltiplas áreas da visão computacional e processamento de imagens2,3,4,5,6. A implementação da detecção de bordas de Sobel é realizada utilizando a ferramenta Vivado HLS, permitindo a codificação em linguagens de alto nível em vez de depender de linguag...

Acesso restrito. Inicie sessão ou comece um teste para visualizar este conteúdo.

Divulgações

Os autores declaram não haver conflitos de interesse. Nenhuma ferramenta de inteligência artificial (AI) foi utilizada na preparação deste manuscrito.

Agradecimentos

Os autores não têm agradecimentos a declarar. Esta pesquisa não recebeu financiamento externo.

Acesso restrito. Inicie sessão ou comece um teste para visualizar este conteúdo.

Materiais

Lista de materiais utilizados neste artigo
NomeEmpresaNúmero de catálogoComentários
Placa FPGA Ultra96-V2 Xilinx Apresentada em 2018Plataforma de implementação de hardware utilizada para implementar o algoritmo de detecção de pedestres
Vivado HLS AMD2019.2Ferramenta de Síntese de Alto Nível utilizada para programação em alto nível do código de detecção de pedestres no artigo, com exportação do Bloco de Conhecimento (IP)
Vivado AMD2019.2Ferramenta de programação FPGA utilizada para programar a placa FPGA Ultra96 v2 com o algoritmo de detecção de bordas de Sobel 

Referências

  1. Rani N. Image processing techniques: a review. J Today Ideas Tomorrow Technol. 2017;5(1):40-9.
  2. Gonzalez RC. Digital image processing. Pearson Education; India; 2009.
  3. Jena KK, Mishra S, Mishra S. An edge detection approach for fractal image processing. In: Examining Fractal Image Processing and Analysis. IGI Global; 2020. p. 1-22.
  4. Gayathri AG, Remya AS. VLSI implementation of improved Sobel edge detection algorithm [conference presentation]. Presented at: 2021 International Conference on Communication, Control and Information Sciences (ICCISc); 2021 Jun 16. Available from: https://ieeexplore.ieee.org/
  5. Obaid MT. Efficient Implementation of Sobel Edge Detection with ZYNQ-7000 [Master's thesis]. Purdue University.
  6. Asharani P, et al. A inventive method for door detection on FPGA using Sobel edge algorithm [conference presentation]. Presented at: 2022 2nd International Conference on Intelligent Technologies (CONIT); 2022 Jun 24. Available from: https://ieeexplore.ieee.org/
  7. Shylashree N, Anil Naik M, Sridhar V. Design and implementation of image edge detection algorithm on FPGA. Int J Circuits Syst Signal Process. 2022;16:628-36.
  8. Zhou G, Guo S, Chen Z. FPGA-based improved Sobel operator edge detection. Front Comput Intell Syst. 2023;5(2):6-11.
  9. Navinkumar K, Logesh R, VishnuBabu P, Ananthalakshmi AV. FPGA implementation of Sobel edge detection algorithm. EAI Endorsed Trans Internet Things. 2024;10.
  10. Ravichandran S, et al. Parallel processing of Sobel edge detection on FPGA: enhancing real-time image analysis. Sensors. 2025;25(12):3649.
  11. Baloch A, et al. Hardware synthesize and performance analysis of intelligent transportation using Canny edge detection algorithm. Int J Eng Manuf. 2021;11(4):22-32.
  12. Patel CS, Solanki N, Tailor N. Analysis of edge detection using Zynq based SoC FPGA. Turk Online J Qual Inq. 2021;12(7).
  13. Kashyap S, Bhandari AK, Giri P. Low resource FPGA implementation based efficient image edge detector architecture. Multimed Tools Appl. 2024;83(9):25595-615.
  14. Dakshayani V, et al. Design of a Gabor filter-based image denoising hardware model. Electronics. 2022;11(7):1063.
  15. Belmessaoud NM, Bentoutou Y, El-Mezouar MC. FPGA implementation of feature detection and matching using ORB. Microprocess Microsyst. 2022;94:104666.
  16. Castells-Rufas D, et al. A survey of FPGA-based vision systems for autonomous cars. IEEE Access. 2022;10:132525-63.
  17. Vedavyas Y, Vasavi S, Harsha SS, Subhash MS. An FPGA-based adaptive real-time quality enhancement system for drone imagery. SN Comput Sci. 2022;4(1):84.
  18. Avnet. Ultra96-V2 Single Board Computer Hardware User's Guide. Revision 1.0. Avnet; 2020 May.
  19. Singh G, et al. Optimizing IoT capabilities: leveraging FPGA for superior performance, efficiency and security [conference presentation]. Presented at: 2024 5th International Conference for Emerging Technology (INCET); 2024 May 24. Available from: https://ieeexplore.ieee.org/
  20. Kaur A. A survey on FPGA implementations in embedded augmented reality applications [conference presentation]. Presented at: 6th Edition of International Conference on Wireless Networks and Embedded Systems (WECON); 2018 Nov 16. Available from: https://ieeexplore.ieee.org/
  21. Kalaiselvi A, Sajina S, Nithish S, Sowmiya M. Implementation of Sobel edge detection. Int Res J Mod Eng Technol Sci. 2023;5(3):701-11.
  22. Narasimhamurthy CG, Kulkarni S. Fast architecture for low level vision and image enhancement for reconfigurable platform [conference presentation]. Presented at: 2021 International Conference on Advances in Electrical, Computing, Communication and Sustainable Technologies (ICAECT); 2021 Feb 19. Available from: https://ieeexplore.ieee.org/
  23. Pujare A, Sawant P, Sharma H, Pichhode K. Hardware implementation of Sobel edge detection algorithm [conference presentation]. Presented at: ITM Web of Conferences; 2020. Available from: https://www.itm-conferences.org/

Acesso restrito. Inicie sessão ou comece um teste para visualizar este conteúdo.

Reimpressões e permissões

Explorar mais artigos

Detecção de Bordas em Tempo RealResolução de Imagem AdaptativaArquitetura FPGAImplementação de HardwareFPGA Ultra96-V2Processamento de ImagensVisão Computacional