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

17 vistas

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.

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.

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 mostra os relatórios de síntese e os parâmetros gerados de temporização e utilização de recursos no Ultra96-V2 com a parte FPGA xczu3eg-sbva484-1-e. O relatório consiste em informações relacionadas ao tempo que indicam se o projeto atende às restrições de temporização especificadas pelo usuário. De acordo com o resumo de temporização, o tempo estimado de 8,544 ns é menor que o tempo alvo de 10 ns, o que indica claramente que o projeto está atendendo às restrições do usuário.

As ferramentas HLS também geram uma estimativa de utilização de recursos, que fornece ao projetista uma avaliação do possível uso dos recursos embarcados. Os parâmetros reais de utilização só podem ser gerados após a realização física do hardware. Embora existam grandes e diferentes categorias de recursos em um FPGA, os recursos de hardware mais utilizados são as LUTs (Tabelas de Consulta), FFs (Flip Flops), Fatias DSP (Fatias de Processamento de Sinal Digital) e memória.

Tabela 3 também mostra o tempo real e a utilização de recursos quando a detecção de bordas de Sobel é implementada na Ultra96-V2 para imagens de alta resolução. A análise de temporização mostra que a folga negativa mais crítica é de 3,102 ns, o que indica que há tempo suficiente para o processamento, permitindo assim alcançar a velocidade do relógio de 144 MHz. A frequência operacional alcançada de 144 MHz na resolução 1920 × 1080 corresponde a uma taxa de processamento de aproximadamente 299 MP/s, superando os 62 MP/s necessários para o processamento em tempo real de vídeo Full HD a 30 fps. Para compreender a escala de recursos e o efeito sobre os parâmetros ao passar de imagens de baixa para alta resolução, a tabela apresenta os resultados experimentais que envolvem a repetição dos mesmos passos para diferentes resoluções.

Tabela 4 menciona o tamanho da imagem e, consequentemente, o número total de pixels, além da frequência de operação, potência e utilização de recursos em termos de LUTs, FFs, BRAM e DSP. Pode-se observar claramente que, ao transitar da menor resolução considerada, 256 × 256, até a maior, 2560 × 1440, o que envolve um aumento de quase 56 vezes na contagem de pixels, os parâmetros são alterados em apenas 20%. Isso indica claramente uma escala de recursos sublinear, na qual os dados a serem processados aumentam em várias ordens de grandeza, mas a degradação nas métricas de desempenho é mínima, tornando-a adequada para implantação em tempo real.

Os resultados apresentados na Tabela 4 demonstram claramente que a aplicação da detecção de bordas de Sobel no Ultra96-V2 oferece vantagens significativas para tarefas que exigem resoluções adaptáveis, já que as métricas de desempenho permanecem otimizadas e não exibem mudanças consideráveis ao atualizar o tamanho da imagem de baixa para alta resolução. Esse sucesso é atribuído à abordagem de implementação híbrida, que evita sobrecarregar a lógica FPGA com dados de imagem, permitindo que o processador da placa gerencie a carga substancial de imagens. O processador simplesmente retransmite os dados da imagem para o componente lógico FPGA, sendo qualquer aumento na escala de recursos ou redução na frequência máxima resultado exclusivo do grande volume de dados que exige maior manipulação. Assim, pode-se afirmar que a abordagem seguida neste artigo alcança escalonamento sublinear de recursos, mesmo que os pixels da imagem aumentem em quase 56 vezes.

O trabalho implementado também é comparado com os projetos existentes para compreender a comparação entre as métricas de desempenho, como resolução da imagem, frequência de relógio, consumo de energia e utilização de recursos. Tabela 5 mostra a comparação com a literatura mais recente.

Como claramente ilustrado pela Tabela 5, o trabalho implementado neste artigo apresenta métricas de desempenho adequadas, mas as soluções existentes das implementações previamente relatadas9,10 possuem parâmetros melhores. No entanto, quando se realiza uma comparação geral, pode-se observar que ambos os trabalhos anteriores9,10 foram realizados com baixa resolução de imagem e em plataformas FPGA legadas, enquanto os resultados apresentados neste artigo referem-se a resoluções de imagem adaptativas, nas quais o tamanho da imagem considerado varia desde a resolução mais baixa de 256 × 256 até a resolução de alta definição de até 2560 × 1440. Os resultados indicam que a abordagem implementada de detecção de bordas de Sobel, que utiliza as capacidades tanto do processador quanto da parte lógica da placa FPGA heterogênea Ultra96-V2, mostra-se útil para alcançar escalonamento sublinear de recursos à medida que a contagem de pixels aumenta quase 56 vezes, mas a utilização de recursos aumenta apenas em 20%, e a degradação em potência e velocidade também é inferior a 20%. Para a resolução mais baixa, apenas 5% dos recursos são utilizados, e a utilização máxima é de apenas 23%, deixando grande disponibilidade para processamento adicional. Assim, pode-se afirmar claramente que, devido à diferença nas resoluções de imagem, é difícil realizar comparações diretas, mas se analisarmos o projeto implementado neste trabalho, a frequência de clock é de 136 MHz, o consumo de potência é de 2 W e a utilização de recursos é inferior a 23% dos recursos totais da placa. É importante ressaltar que as implementações relatadas em trabalhos anteriores9,10 demonstram métricas de desempenho individuais superiores. No entanto, é fundamental notar que ambos os trabalhos avaliam seus projetos em uma única resolução de imagem fixa, enquanto o trabalho proposto é avaliado em uma ampla gama de resoluções, de 256 × 256 até 2560 × 1440. Os objetivos de projeto são, portanto, fundamentalmente diferentes, pois os trabalhos9,10 otimizam o desempenho máximo em uma única resolução, enquanto a arquitetura proposta prioriza adaptabilidade e escalonamento sublinear de recursos em múltiplas resoluções. Isso torna o projeto implementado adequado para aplicações que exigem detecção de bordas.

Pode-se, portanto, afirmar que, neste trabalho, a escala sublinear de recursos é definida como a condição em que o aumento percentual na utilização de recursos é significativamente menor que o aumento percentual na contagem de pixels. Quando a resolução aumenta de 256 × 256 para 2560 × 1440, a contagem de pixels aumenta em aproximadamente 5600%, enquanto a utilização de recursos embarcados aumenta em menos de 20%. Essa taxa de crescimento de recursos desproporcionalmente baixa, resultante diretamente da estratégia de partição heterogênea PS-PL, confirma o comportamento de escalonamento sublinear da arquitetura proposta. Embora a implementação proposta demonstre escalonamento sublinear de recursos ao longo da faixa de resolução testada, certas limitações devem ser observadas para uma interpretação correta dos resultados. A frequência de operação diminui em 18% do baixo para o alto valor de resolução, e a extrapolação além de 2560 × 1440 pode exigir ajustes arquitetônicos para manter o fechamento de temporização. Além disso, como a transferência de dados de imagem é gerenciada pelo processador ARM, a sobrecarga de transferência no lado PS cresce linearmente com a contagem de pixels e pode limitar a taxa de transferência em aplicações de streaming contínuo de vídeo em alta resolução além do indicado apenas pelas métricas do lado PL.

Diagrama de aplicações de detecção de bordas: robótica, imagem, realidade aumentada, automação, vigilância.
Figura 1: Diversas áreas de aplicação da detecção de bordas. Ilustração de áreas representativas nas quais a detecção de bordas é comumente utilizada, incluindo visão computacional, imagem médica, vigilância, robótica e automação industrial. Clique aqui para visualizar uma versão maior desta figura.

Processamento de imagem: diagrama da detecção de bordas com operador Sobel e kernels de convolução na imagem de entrada.
Figura 2: Descrição das etapas do algoritmo de detecção de bordas Sobel. Fluxo de trabalho ilustrando o processo de detecção de bordas Sobel, incluindo a extração de uma janela de imagem 3 × 3, convolução com kernels Sobel horizontais e verticais e geração da imagem de saída com bordas detectadas. Clique aqui para visualizar uma versão maior desta figura.

Diagrama de blocos do Zynq UltraScale+, arquitetura do sistema mostrando o fluxo de dados e componentes do interconexão AXI.
Figura 3: Diagrama de blocos implementado para detecção de bordas Sobel na placa FPGA Ultra96-V2 utilizando interface entre a PS (sistema de processamento) e a parte PL (lógica programável). Diagrama de blocos mostrando a arquitetura de hardware e a interconexão entre o sistema de processamento (PS), lógica programável (PL) e os núcleos IP auxiliares utilizados na implementação FPGA. Clique aqui para visualizar uma versão maior desta figura.

Processo de gravação da imagem PYNQ e fluxo de design Vivado; configuração do cartão SD, validação, geração de arquivo de bits.
Figura 4: Etapas para programar a placa Ultra96-V2 para detecção de bordas Sobel utilizando a plataforma PYNQ e o resultado da detecção de bordas Sobel em uma imagem de entrada. Fluxo de trabalho mostrando o procedimento de programação da placa Ultra96-V2 usando a plataforma PYNQ e uma imagem de saída representativa obtida após a implementação no FPGA. Clique aqui para visualizar uma versão maior desta figura.

Detecção de cor e borda no processamento de imagens; grade de comparação de imagens originais e com bordas realçadas.
Figura 5: Resultados da simulação para detecção de bordas de Sobel em diferentes imagens padrão usando o Vivado HLS (2019.2). Imagens de entrada representativas e suas saídas correspondentes com detecção de bordas obtidas durante a simulação funcional do algoritmo de detecção de bordas de Sobel utilizando o Vivado HLS 2019.2. Clique aqui para visualizar uma versão maior desta figura.

Tabela 1: Evolução das aplicações de FPGA na pesquisa de visão computacional (2006–2024). Resumo das principais aplicações de visão computacional baseadas em FPGA relatadas entre 2006 e 2024. Clique aqui para baixar esta Tabela.

Tabela 2: Literatura relacionada à implementação de algoritmos de detecção de bordas em FPGA (2020-2025). Comparação das implementações recentes de detecção de bordas baseadas em FPGA, incluindo plataforma, metodologia e métricas de desempenho relatadas. Clique aqui para baixar esta tabela.

Tabela 3: Implementação da detecção de bordas de Sobel em FPGA: parâmetros estimados e parâmetros reais. Resultados estimados da síntese HLS e os respectivos tempos e utilização de recursos após a implementação obtidos para a implementação em FPGA. Clique aqui para baixar esta tabela.

Tabela 4: Utilização de recursos e métricas de desempenho do algoritmo de detecção de bordas Sobel implementado em diferentes resoluções de imagem. Métricas de desempenho, frequência de operação, consumo de energia e utilização de recursos de FPGA da implementação proposta em diferentes resoluções de imagem. Clique aqui para baixar esta tabela.

Tabela 5: Comparação da detecção de bordas Sobel implementada e existente em FPGA. Comparação da implementação proposta em FPGA com implementações anteriores de detecção de bordas Sobel relatadas na literatura, utilizando métricas de desempenho representativas. Clique aqui para baixar esta tabela.

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 linguagens de descrição de hardware. O código Vivado HLS é executado na placa Ultra96-V2. Os resultados pós-implementação indicam que o design implementado suporta imagens de alta resolução e opera a uma frequência de 136 MHz com consumo de potência de 2 W e menos de 20% dos recursos totais da placa. Além disso, os resultados demonstraram que a abordagem é adequada para resolução adaptativa de imagens, já que diferentes aplicações podem exigir o uso de tamanhos variados de imagens, e a detecção de bordas geralmente é uma etapa intermediária2,3,4,5,6, realizada com frequência em pipelines de design complexos. Assim, pode-se afirmar que o sistema projetado pode ser implantado em aplicações em tempo real que exigem detecção de bordas. A grande disponibilidade de recursos sugere que diversas outras etapas de processamento podem ser incorporadas ao sistema desenvolvido6,7,8,9,10,11,12,13,14,15.

A implementação bem-sucedida do detector de bordas de Sobel na placa Ultra96-V2 exige atenção cuidadosa a diversos aspectos práticos. O framework PYNQ simplifica consideravelmente a interação entre PS e PL ao permitir o controle de hardware por meio de bibliotecas Python, reduzindo assim o esforço de desenvolvimento de software. No entanto, é necessário baixar a imagem correta do PYNQ da fonte oficial, e o cartão SD deve ser configurado adequadamente antes da implantação. A verificação funcional do projeto HLS utilizando bancos de testes abrangentes é essencial antes da exportação do IP, pois a validação precoce ajuda a identificar erros algorítmicos e de interface antes da implementação em hardware. Durante implementações em FPGA, o projeto do diagrama em blocos também exige grande atenção do projetista, sendo recomendado compreender bem a arquitetura do hardware FPGA em consideração, a fim de selecionar os blocos adequados e realizar as conexões corretamente. Não é recomendado automatizar completamente as conexões, pois isso pode resultar em conexões ausentes ou inadequadas para o projeto desejado. Nesta etapa da interface PS–PL, erros como mapeamento incorreto de endereços AXI, incompatibilidade entre domínios de clock ou transferências DMA mal configuradas podem impedir a comunicação bem-sucedida entre o processador e a lógica programável. Esses problemas podem ser identificados utilizando as ferramentas de validação de projeto do Vivado e resolvidos mediante verificação das atribuições de endereços, configurações de clock, conexões de interrupção e parâmetros DMA antes da geração do bitstream. Durante a implementação no FPGA, podem ocorrer violações de temporização devido a caminhos combinacionais longos ou a pipelining inadequado. O aumento do número de estágios de pipelining, a otimização das estruturas de laço ou o relaxamento das restrições de temporização, quando apropriado, podem ajudar a alcançar o fechamento de temporização.

Embora este trabalho valide a arquitetura de particionamento PS-PL proposta especificamente para a detecção de bordas de Sobel, a abordagem arquitetônica é inerentemente generalizável. Qualquer algoritmo que possa ser expresso como uma convolução com janela deslizante — incluindo Prewitt, Roberts, Laplaciano da Gaussiana ou o estágio de gradiente de Canny — pode ser implementado com uma abordagem semelhante, com alterações no projeto HLS principalmente3,4,5,6. Existem certas limitações do trabalho proposto. Uma das limitações é o atraso devido à transferência de dados entre a parte PS e a parte PL do FPGA, o que afeta o tempo total de execução do algoritmo. Além disso, a descoberta de escalonamento sublinear é específica à arquitetura heterogênea Ultra96-V216 e pode não se aplicar diretamente a plataformas FPGA homogêneas que não possuem um núcleo de processador dedicado.

O escopo futuro envolve a melhoria adicional do design com certas otimizações que podem aumentar a velocidade e reduzir ainda mais o consumo de energia. Além disso, adaptar a implementação para cenários em tempo real é outro aspecto potencial a ser considerado no futuro.

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.

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/

Reimpressões e permissões

Etiquetas

EngineeringComputer VisionField Programmable Gate ArrayImage ProcessingImage ResolutionSobel Edge Detection