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.