1. Introdução
Com o rápido avanço da digitalização fatorial e das tecnologias da Internet, a visão mecânica emergiu como uma tecnologia crítica em vários domínios, incluindo robótica e automação de fábrica (FA). Os sistemas de visão mecânica normalmente empregam câmeras para capturar dados visuais, utilizam algoritmos de visão mecânica para processar esses dados e fornecem feedback aos atuadores com base nas informações processadas. No entanto, é crucial minimizar atrasos na fase de processamento algorítmico, uma vez que as cenas do mundo real mudam continuamente durante este período. Se houver um atraso significativo, o feedback fornecido ao atuador torna-se desatualizado e ineficaz. Pelo contrário, se o algoritmo com atraso ultrabaixo for implementado, as interações entre o algoritmo e o atuador tornam-se mais frequentes. O atuador responde em tempo hábil e funciona perfeitamente. Para obter sistemas de visão industrial mais eficientes e precisos, é necessária a implementação de atraso ultrabaixo. Especificamente, são desejados sistemas capazes de processar 1000 quadros por segundo (FPS) com velocidades de processamento inferiores a 1 ms. Esta consideração decorre do fato dos atuadores poderem operar em frequências de 1 kHz [1]. Muitos estudos anteriores já exploraram o uso de Field-Programmable Gate Arrays (FPGAs) para desenvolver sistemas de alta taxa de quadros e atraso ultrabaixo em vários campos. Os exemplos incluem rastreamento de objetos [2], detecção de linha reta [3] e medição de deslocamento de subpixel [4].
Superpixels envolvem o agrupamento de pixels conectados que exibem características semelhantes. Este conceito ajuda significativamente na redução da redundância de imagens e da complexidade computacional para várias tarefas subsequentes. Exemplos de tais tarefas incluem detecção de objetos salientes [5] e correspondência 3D [6]. Atualmente, existem duas abordagens principais para segmentação de superpixels: algoritmos baseados em recursos feitos à mão e algoritmos baseados em recursos aprendidos. Algoritmos artesanais utilizam recursos como cor e textura para agrupar pixels espacialmente adjacentes. O clustering iterativo linear simples (SLIC) [7] agrupa pixels com base em sua similaridade de cores e proximidade no plano da imagem. SLIC requer múltiplas iterações para obter os resultados finais da segmentação. O agrupamento espectral linear (LSC) [8] mapeia pixels de imagem para pontos ponderados em espaço de características de dez dimensões por funções de kernel. Para algoritmos baseados em recursos aprendidos, SCN [9] emprega a arquitetura U-net para prever a associação para cada pixel. AINet [10] propõe um módulo de IA para implantar os recursos de grade correspondentes no entorno do pixel. Este módulo percebe ainda as relações entre pixels e seus vizinhos. Algoritmos baseados em recursos aprendidos exigem muita computação e são caros em termos de memória, apresentando desafios na obtenção de processamento com atraso ultrabaixo. Entre os algoritmos artesanais, o SLIC é o mais comumente utilizado devido à sua alta estabilidade e rápida velocidade de segmentação [11]. Portanto, este artigo adota SLIC como arquitetura básica para segmentação de superpixels.
Vários trabalhos anteriores fizeram esforços para acelerar o SLIC. gSLIC [12] implementa SLIC em GPU e atinge uma melhoria de velocidade seis vezes maior quando comparado às implementações de CPU. FMSLIC [13] introduz uma operação de busca baseada em pixels na etapa de atribuição para remover a dependência de dados. FMSLIC atinge uma velocidade de processamento de 143 quadros por segundo para imagens de entrada. Apesar desses avanços em velocidade e eficiência de memória, as etapas iterativas de atribuição e atualização tornam essas abordagens desafiadoras para processar imagens a 1000 FPS com uma velocidade de processamento inferior a 1 ms. FP-SLIC [14] reduz diretamente o número de iterações para um número muito pequeno, mas compromete a robustez do algoritmo. Para enfrentar este desafio, e como uma extensão do nosso trabalho anterior [15], este artigo propõe um algoritmo SLIC orientado a hardware com sua implementação de hardware em nível de sistema. As contribuições deste artigo são resumidas da seguinte forma:
- A iteração temporal baseada em amostra de grade é proposta. Em vez de realizar iterações dentro de cada processamento de imagem, as iterações são distribuídas no domínio temporal. Cada quadro processa uma única iteração. As informações de amostra da grade são incorporadas como dados de inicialização para melhorar a estabilidade dos superpixels.
- A arquitetura de pipeline baseada na propagação seletiva de rótulos é proposta para eliminar a dependência de dados entre pixels adjacentes e obter um sistema totalmente em pipeline. Todas as possibilidades de propagação do rótulo são calculadas simultaneamente e os resultados finais são selecionados com base na propagação do rótulo.
- A arquitetura proposta foi implementada em um FPGA para desenvolver um sistema com alta taxa de quadros e atraso ultrabaixo. Extensos experimentos foram conduzidos para validar completamente o algoritmo e o desempenho do hardware do sistema.
O restante deste trabalho está organizado da seguinte forma. A seção 2 analisa os trabalhos relacionados. Os métodos propostos e detalhes de implementação são apresentados na Seção. 3. Resultados experimentais e análises são apresentados na Seção. 4. Finalmente, Seção. 5 faz uma conclusão.
2. Trabalhos Relacionados
2.1 Algoritmo Feito à Mão Baseado em Recursos
ERS [16] formula a segmentação de superpixels como um problema de otimização. O objetivo é maximizar a taxa de entropia de um passeio aleatório no gráfico da imagem. ARWN [17] utiliza o gradiente de todos os pixels para auxiliar na seleção de sementes. Esta estratégia permite que cada pixel tenha a possibilidade de ser escolhido como seed. No entanto, a implementação desses algoritmos com atraso ultrabaixo em FPGAs enfrenta desafios devido à sua dependência do processamento global. SLIC [7] calcula a distância euclidiana em cor e a proximidade entre cada pixel e o centro do superpixel. Ele emprega uma faixa de pesquisa local e envolve cálculos simples. LSC [8] é baseado na estrutura SLIC. O LSC estende o intervalo de pesquisa para toda a imagem e mapeia pixels para pontos ponderados em um espaço de recursos de dez dimensões para melhorar o desempenho. ETPS [18] propõe uma abordagem de segmentação grosseira para fina. Esta abordagem começa com uma grade quadrada e gradualmente a reduz para uma grade de um pixel. SEEDS [19] também utiliza uma inicialização baseada em grade e reatribui iterativamente os pixels dos limites usando histogramas de cores e limites. No entanto, a arquitetura grosseira a fina do ETPS e do SEEDS requer recursos de hardware significativos para lidar com os diferentes tamanhos de grade. Na busca pela aceleração do SLIC, o SNIC [20] introduz uma fila de prioridade para evitar etapas iterativas. No entanto, a construção de uma fila de prioridade requer o salvamento da imagem inteira. Além disso, o acesso entre a memória e o núcleo de processamento leva a um longo atraso durante a implementação.
2.2 Aceleração do SLIC
Devido aos requisitos computacionais relativamente baixos e cálculos locais no SLIC, vários trabalhos tentaram acelerar o SLIC e implementá-lo em plataformas FPGA. Khamaneh et ai. [21] propõe uma arquitetura SLIC com uso eficiente de memória. Apenas o rótulo de cada pixel e as informações de cores RGB são armazenados na memória. Um conversor RGB para CIELAB é empregado na etapa de atribuição. O algoritmo SLIC proposto atinge uma taxa de quadros de 24 fps para uma câmera com resolução de 300x400 pixels. Mighani et ai. [13] introduz uma estrutura que substitui a operação de busca baseada em cluster pelo processo baseado em pixels na etapa de atribuição. Ao eliminar a dependência de dados entre as etapas de atribuição e atualização, a execução simultânea é habilitada. A arquitetura proposta processa 143 fps para uma imagem de entrada com resolução de 300x400 pixels. Embora os trabalhos anteriores tenham melhorado a eficiência da memória e o tempo de execução, a velocidade de processamento ainda fica aquém de atingir um atraso ultrabaixo. As iterações dentro de cada processamento de imagem resultam em leituras e gravações frequentes de rótulos na memória e levam a um longo atraso no processamento.
Para resolver a questão das iterações, FP-SLIC [14] adota uma estratégia de redução do número de iterações. Ao limitar as iterações a apenas 2 vezes e implementar uma arquitetura FPGA totalmente pipeline, o atraso de processamento do sistema para uma imagem com resolução de 481x321 chega a 3.86 ms. No entanto, esse atraso ainda não atende aos requisitos de aplicações com atraso ultrabaixo, e a redução dos tempos de iteração tem o custo da robustez. Além disso, à medida que o número de iterações aumenta, há um aumento substancial na utilização de recursos de hardware e no atraso de processamento. Mais pesquisas são necessárias para desenvolver um sistema de alta taxa de quadros e atraso ultrabaixo para segmentação de superpixels SLIC.
3. Método proposto
3.1 Iteração temporal baseada em amostra de grade
As comparações entre a estrutura do SLIC e o sistema proposto são mostradas na Fig. 1. No método SLIC, os centros iniciais dos superpixels são obtidos pela amostragem de pixels da imagem em uma grade regular. O tamanho da grade é determinado com base no tamanho da imagem e no número desejado de superpixels. Na etapa de atribuição, cada pixel pesquisa em uma região limitada. As distâncias aos centros dos superpixels dentro desta região são calculadas. A métrica de distância combina a cor CIELAB e a distância euclidiana de proximidade. Os pixels são atribuídos ao superpixel com a menor distância. Depois que cada pixel for atribuído aos superpixels, os centros dos superpixels serão recalculados na etapa de atualização. As etapas de atribuição e atualização operam iterativamente para obter o resultado final. Para alcançar alta taxa de quadros e atraso ultrabaixo, a iteração é um problema crítico.
FIG. 1 Comparações entre a estrutura do SLIC e o método proposto. (a) Estrutura SLIC original; (b) Estrutura proposta. |
A iteração temporal baseada em amostra de grade proposta é ilustrada na Figura 1 (b). Ao explorar a alta similaridade entre quadros adjacentes em vídeo com alta taxa de quadros, as iterações são distribuídas pelo domínio temporal. A estrutura proposta utiliza a saída do quadro anterior como entrada para o processo do quadro atual. A saída do quadro anterior serve como o penúltimo resultado da iteração, enquanto a saída do quadro atual é obtida através de apenas um único processamento de iteração.
A utilização da iteração temporal permite atingir atrasos ultrabaixos; entretanto, introduz instabilidade nos superpixels devido à ausência de informações de inicialização. Esta instabilidade torna-se especialmente aparente quando a câmera se move. Isso faz com que os superpixels na borda da imagem percam ou ganhem pixels. Além disso, o movimento da câmera faz com que certos superpixels desapareçam, enquanto outros ficam significativamente maiores do que o tamanho esperado. Para resolver esse problema, a inicialização da amostra da grade é adicionada ao processo de iteração temporal. A operação é definida pelas seguintes equações.
\[\begin{align} & cor_{cur} = \lambda \cdot cor_{ini} + (1 - \lambda) \cdot cor_{tem}, \tag{1} \\ &\lambda = \min (A, 2^{A-\varepsilon } ), \tag{2} \\ & A = \left \lfloor \left | 10\times (1 - \frac{size}{size_{exp}} ) \right | \right \rfloor. \tag{3} \end{align}\] |
Nas equações, \(cor_{cur}\), \(cor_{ini}\), \(cor_{tem}\) denotam a coordenada do centro do superpixel de entrada do quadro atual, a inicialização da amostra da grade e o centro obtido da saída do quadro anterior, respectivamente. A multiplicação por 10 no cálculo de \(A\) é executado para garantir uma operação inteira. A variável \(size\) representa o número de pixels contidos no superpixel. \(size_{exp}\) representa o tamanho esperado. \(\varepsilon\) é o parâmetro para controlar a relação entre a quantidade de informações de inicialização e as informações de saída anteriores. Quando o tamanho do superpixel atual está próximo do tamanho esperado, menos informações de inicialização são adicionadas. Porém, se o tamanho se desviar significativamente do tamanho esperado, a inclusão da inicialização da amostra da grade torna-se necessária para preservar a estabilidade do superpixel.
O sistema proposto recebe vídeos com alta taxa de quadros como entrada. Com uma taxa de quadros de 1000 FPS, a diferença entre cada quadro adjacente é mínima. No algoritmo SLIC original, cada pixel procura os centros dos superpixels, o que leva a uma baixa consistência de rótulo no processamento subsequente. O sistema proposto é inspirado no SEEDS para resolver esse problema e aproveita a forte coerência temporal em vídeos com alta taxa de quadros. Em vez de processar todos os pixels, apenas os pixels limites dos superpixels no quadro atual são considerados. Para identificar os pixels limite, um bloco de pesquisa 4x4 é empregado. Se um pixel na segunda linha e na segunda coluna tiver um rótulo diferente quando comparado aos pixels vizinhos à direita ou abaixo dele, esses dois pixels serão designados como pixels de limite. As distâncias entre o pixel limite e esses dois centros de superpixel são calculadas na etapa de atribuição. Esses pixels limites são movidos para o superpixel com uma distância menor. Ao adotar esta metodologia, os pixels dentro de cada superpixel permanecem estacionários durante o processamento. Isso resulta em uma alta consistência de rótulo no sistema proposto.
Além disso, o algoritmo SLIC original usa apenas distâncias euclidianas de cor e proximidade em seu cálculo de distância. No entanto, confiar apenas nas informações dos centros dos superpixels resulta em superpixels menos compactos. Um coeficiente de compacidade é proposto. A métrica de distância proposta é formulada conforme mostrado na Eq. (4). E representa a distância euclidiana, \(E_c\) é a cor da distância euclidiana e \(E_p\) é a distância euclidiana de proximidade. Essas distâncias são calculadas da mesma forma que o algoritmo SLIC original. CO refere-se à compacidade. \(S\) e \(P\) representam o tamanho e o perímetro do superpixel. O parâmetro \(\gamma\) determina o grau de influência que o coeficiente de compacidade tem no cálculo da distância global.
\[\begin{align}& E = E_c + E_p\times CO, \tag{4} \\ & CO = 1+\gamma(\frac{S}{(\frac{P}{4})^{2}}-1)^{2}. \tag{5} \end{align}\] |
O cálculo do coeficiente de compacidade é baseado na razão entre o tamanho do superpixel e seu perímetro dividido por quatro ao quadrado. Dividir por 4 simula o perímetro de um quadrado dividido por 4, o que equivale a calcular o comprimento lateral do quadrado. Um valor de CO mais próximo de 1 indica uma forma mais quadrada, significando um nível mais alto de compactação. Nesta situação, as distâncias de cor e proximidade contribuem igualmente para o cálculo geral da distância. No entanto, à medida que a compacidade se desvia ainda mais de 1, a distância de proximidade torna-se mais influente no cálculo da distância final. Como o pixel limite só se move para o superpixel com uma distância menor, o coeficiente de compactação resulta em superpixels mais compactos.
3.2 Pipeline baseado em propagação de rótulo seletivo
Na etapa de atribuição, os pixels limites calculam as distâncias para ambos os centros de superpixels adjacentes e são atribuídos ao centro com a distância menor. Para identificar pixels limite, um bloco de pesquisa 4x4 é empregado. Se o pixel na segunda linha e na segunda coluna tiver um rótulo diferente em comparação com seus pixels vizinhos à direita ou abaixo dele, esses dois pixels vizinhos serão considerados pixels de limite. Consequentemente, o pixel na segunda linha e na segunda coluna, o pixel à sua direita e o pixel abaixo dele podem potencialmente mudar seus rótulos durante a etapa de atribuição. É importante ressaltar que o pixel na terceira linha está envolvido apenas no cálculo da linha subsequente da imagem. O atraso do cálculo da distância é consideravelmente menor que o tempo necessário para transmitir pixels em uma linha. Portanto, qualquer alteração potencial no rótulo do pixel na terceira linha não afeta negativamente o pipeline do sistema. No entanto, se o pixel na terceira coluna sofrer uma alteração de rótulo durante o cálculo do bloco atual, isso afetará o cálculo do próximo bloco. Aguardar a conclusão do bloco atual resulta em um longo atraso. Para garantir o processamento oportuno do fluxo de pixels da câmera e alcançar o pipeline completo no sistema proposto, é crucial eliminar a dependência de dados entre blocos adjacentes.
Um exemplo deste problema é mostrado na Fig. 2 para fornecer uma ilustração mais clara deste problema. Os rótulos 0 e 1 são usados como exemplos para representar rótulos diferentes. Cores diferentes são empregadas para fornecer uma distinção visual mais clara entre esses rótulos. Dentro do cálculo 4x4 do bloco n atual, os pixels de limite dentro das linhas vermelhas têm a possibilidade de se mover para o superpixel rotulado como 0 ou para aquele rotulado como 1. Se o pixel direito permanecer rotulado como 1, não há pixels de limite no segunda linha no próximo bloco de cálculo n+1. No entanto, se o pixel direito mudar para o rótulo 0, o movimento dos pixels limite ainda precisará ser calculado no próximo bloco de cálculo n+1. Em resumo, devido à dependência dos resultados do cálculo atual, o próximo bloco requer cálculos diferentes e produz resultados distintos. Como consequência, o próximo cálculo terá que aguardar a conclusão do cálculo atual.
A dependência de dados entre blocos adjacentes causa longos atrasos e impõe desafios para o processamento oportuno de imagens com alta taxa de quadros. Para resolver esse problema, é proposta uma arquitetura de pipeline baseada na propagação seletiva de rótulos. A diferença conceitual é mostrada na Figura 3. Em cada cálculo de bloco, os pixels limites são pesquisados e movidos para o superpixel com uma distância menor. Independentemente do rótulo obtido no cálculo do bloco anterior, todas as configurações possíveis de rótulos para a segunda linha e segunda coluna do bloco atual são calculadas em paralelo. Esses resultados são armazenados em registros. Após completar o cálculo do bloco anterior, o cálculo do bloco atual é selecionado com base no rótulo do bloco anterior. Os rótulos para todo o quadro são seletivos com base na propagação dos rótulos do primeiro ao último bloco. A estrutura proposta é capaz de lidar prontamente com o fluxo de pixels de entrada da detecção da câmera. Ele permite que uma arquitetura totalmente pipeline alcance atraso ultrabaixo ao mesmo tempo.
3.3 Implementação de Hardware
O sistema proposto é implementado no sistema de hardware mostrado na Fig. 4. Ele compreende uma câmera industrial de alta taxa de quadros e um FPGA. A câmera industrial captura dados de vídeo e os transmite para o FPGA em um fluxo de pixels. O sistema de segmentação de superpixel é implementado no núcleo de processamento de imagem do FPGA, conforme ilustrado na Fig. 5. O sistema de processamento (PS) é implementado em um chip com lógica programável. O fluxo de pixels da câmera é convertido em um fluxo de pixels paralelo com uma frequência de 100 MHz usando o receptor de link de câmera. Este fluxo de pixels paralelo é a entrada para o núcleo de processamento de imagem. O resultado de saída do núcleo de processamento de imagem é o rótulo atribuído a cada pixel. É transmitido ao PS para posterior pós-processamento via WISHBONE BUS. Além disso, DDR4-SDRAM como memória externa pode ser empregada para pós-análise.
Detalhes no núcleo de processamento de imagem serão explicados. O processo de conversão de RGB para CIELAB envolve múltiplas divisões e operações exponenciais. Esses cálculos exigem memória e recursos computacionais substanciais no projeto de hardware. Para evitar esses cálculos matemáticos que consomem muitos recursos e, ao mesmo tempo, manter o canal de luminosidade perceptual, o espaço de cores YCbCr é empregado. Ao receber o fluxo de pixels do receptor de link de câmera, os pixels são convertidos para o formato YCbCr para processamento posterior. O módulo Obter cor central utiliza as informações dos centros de superpixels do quadro anterior, que são armazenadas no BRAM. Quando as coordenadas de um pixel de entrada correspondem às de um centro, suas informações de cor são salvas para o cálculo de atribuição. Para garantir informações suficientes sobre a cor central, um atraso de 20 linhas é adicionado ao fluxo de pixels através de um módulo de atraso. Dentro do módulo de movimento de pixel limite, o fluxo de pixels sofre uma transformação em um bloco 4x4 para o cálculo da distância da cor. O módulo de movimento de pixel de limite recebe como entrada as coordenadas e informações de cor do centro do superpixel, bem como o tamanho e perímetro do superpixel da BRAM. Além disso, um bloco 4x4 de rótulos da memória é fornecido como entrada para este módulo. Dentro deste módulo, todos os cálculos possíveis são realizados em paralelo. O pipeline baseado na propagação seletiva de rótulos permite um módulo de movimentação de pixels de limite em pipeline, resultando em uma estrutura de hardware totalmente pipeline no sistema proposto.
Os detalhes dentro do módulo de movimento de pixel limite são mostrados na Fig. 6. Dentro deste módulo, os rótulos anteriores dos pixels de entrada são primeiro registrados e o possível rótulo é calculado. Ao incorporar esta informação, o bloco de etiquetas 4x4 é transformado em dois blocos. Um representa os rótulos onde ocorrem alterações na segunda linha e segunda coluna devido ao cálculo do bloco anterior, e o outro onde os rótulos permanecem inalterados. Esses dois blocos calculam paralelamente e geram o sinalizador de mudança e o resultado do rótulo deste bloco. O sinalizador de alteração indica se o rótulo na segunda linha e na terceira coluna muda ou não. Essas saídas são armazenadas no registrador. Ao concluir os cálculos para o bloco anterior, o resultado final do rótulo para o bloco atual pode ser determinado seletivamente com base no sinalizador de alteração. Como consequência do pipeline do módulo de movimento de pixel limite facilitado pela proposta, os resultados de saída são igualmente pipelines para etapas de processamento subsequentes.
Os resultados do rótulo obtidos do módulo de movimento de pixel limite são armazenados na BRAM para o mapa de rótulos. Uma estrutura BRAM de pingue-pongue é utilizada para permitir a leitura síncrona do mapa de rótulos do quadro anterior e a escrita do mapa de rótulos do quadro atual. Após terminar a leitura e escrita deste quadro, as funções destes BRAMs são trocadas em preparação para o próximo quadro. Ao mesmo tempo, os resultados do rótulo de saída são utilizados para calcular as informações centrais do superpixel do quadro atual. As informações do centro são então armazenadas no BRAM. Ao processar o último pixel do quadro atual, a informação central é enviada para o módulo de inicialização da amostra da grade. Após adicionar a inicialização, as informações do centro são armazenadas na BRAM para o processamento do próximo quadro. Todo o sistema é totalmente pipeline de acordo com o fluxo de pixels de entrada.
4. Resultados Experimentais
4.1 Avaliação do Algoritmo
4.1.1 Conjunto de dados e métricas de avaliação
Como este artigo se concentra principalmente nas áreas de automação de fábrica e robótica, os experimentos são conduzidos tanto no conjunto de dados da linha de montagem da fábrica quanto no conjunto de dados de cenas internas. Para simular a cena da linha de montagem da fábrica, imagens componentes das imagens de exemplo Halcon [22] são usadas para gerar este conjunto de dados. Para simular cenas internas para robótica, são utilizadas imagens do conjunto de dados NYUV2 [23]. O conjunto de dados NYUV2 mostra diversas cenas internas de apartamentos privados e acomodações comerciais. Os vídeos em ambos os conjuntos de dados têm resolução de 500x340. Cada conjunto de dados contém quatro padrões de movimento diferentes, incluindo translação horizontal, translação vertical, rotação e mudança de escala. Exemplos dos conjuntos de dados são mostrados na Fig.
Para avaliar objetivamente os resultados da segmentação, três métricas comuns são usadas neste artigo. Boundary Recall (BR) é usado para avaliar a aderência dos limites. O erro de subsegmentação (UE) é usado para avaliar o vazamento ou sangramento de um superpixel com base na verdade. A precisão de segmentação alcançável (ASA) é usada para avaliar o limite superior da precisão de segmentação alcançável usando superpixel como uma etapa de pré-processamento. A compacidade (CO) [24] é empregada para avaliar a qualidade visual dos algoritmos. Além disso, a consistência de rótulo (LC) [25] é empregada para avaliar a estabilidade de superpixels em quadros consecutivos em uma sequência de vídeo. LC mostra quão bem os superpixels rastreiam partes de objetos e desempenha um papel crucial em tarefas subsequentes, como classificação. Quando a consistência do rótulo é baixa, pode resultar em resultados de classificação instáveis ou oscilantes [26].
4.1.2 Resultados e Análise da Avaliação
Os resultados da avaliação com base nas métricas de avaliação mencionadas são apresentados na Tabela 1 e na Tabela 2. Nos experimentos, \(\varepsilon\) e \(\gamma\) são definidos como 4. O número de superpixel esperado é definido como 400. O sistema proposto mantém valores comparáveis de BR, UE e ASA para ambos os conjuntos de dados quando comparado com SLIC. Embora os pixels limite se movam junto com o movimento e resultem em uma diminuição no CO, a utilização de informações temporais no sistema proposto leva a um aumento médio de mais de 2.4% no LC quando comparado ao SLIC.
Para demonstrar a eficácia dos métodos propostos, são realizadas comparações com outros algoritmos bem conhecidos. Experimentos quantitativos são realizados usando a tradução horizontal do conjunto de dados interno como exemplo. As comparações entre o método proposto e SLIC, SNIC, SEEDS, LSC, ERS, ETPS são mostradas na Figura 8. Dentre todos os algoritmos, o ERS apresenta desempenho superior em BR, UE e ASA. No entanto, devido ao seu processamento global e cálculos complexos, a implementação do ERS como um sistema de atraso ultrabaixo é um desafio. Conforme ilustrado na figura, embora o método proposto seja projetado para um sistema de atraso ultrabaixo, seu desempenho é comparável ao de outros algoritmos. Além disso, o método proposto apresenta o melhor desempenho em termos de consistência do rótulo.
FIG. 8 Resultados da avaliação quantitativa. (a) Recuperação de limite; (b) Erro de subsegmentação; (c) Precisão de segmentação alcançável; (d) Compacidade; (e) Consistência do rótulo. |
Comparações com métodos de aprendizagem profunda também são realizadas em conjuntos de dados internos. Os módulos pré-treinados de SCN [9] e AINet [10] são utilizados nos experimentos. Para garantir a justiça, o número esperado de superpixels do sistema proposto é definido como 750. Os resultados são mostrados na Tabela 3. Os métodos de aprendizagem profunda alcançam desempenho de segmentação superior às custas de enormes quantidades computacionais e custos de memória. Notavelmente, o método proposto atinge LC mais alto quando comparado aos métodos de aprendizagem profunda na maioria dos casos.
4.1.3 Estudo de Ablação
Para demonstrar a eficácia do coeficiente de compacidade, resultados experimentais para diferentes valores de \(\gamma\) são apresentados na Tabela 4. Esses experimentos abrangem conjuntos de dados de linhas de montagem internas e de fábrica. A tradução horizontal é selecionada como exemplo ilustrativo. As imagens em conjuntos de dados internos tendem a apresentar formas mais irregulares quando comparadas às do conjunto de dados da linha de montagem da fábrica. Quando \(\gamma\) é definido como 0, significa ausência de coeficiente de compacidade. Quando \(\gamma\) está configurado como 4, o CO do conjunto de dados interno é melhorado em 11%. Em contraste, para o conjunto de dados da linha de montagem da fábrica, onde os superpixels apresentam formas mais regulares, a melhoria no CO é de 1%. Para ambos os conjuntos de dados, à medida que o CO aumenta, as demais métricas de avaliação, incluindo UE, ASA e LC, mantêm valores semelhantes aos observados na situação sem o uso do coeficiente de compacidade. Estes resultados destacam o desempenho superior do coeficiente de compacidade, principalmente quando se trata de superpixels de formatos mais irregulares.
No entanto, é importante reconhecer a existência de um trade-off entre CO e BR. À medida que o CO aumenta, o BR diminui para ambos os conjuntos de dados. Notavelmente, definir \(\gamma\) para 6 resulta em uma redução de 3% do BR no caso do conjunto de dados interno. Este efeito será ainda mais pronunciado quando se trata de superpixels com formas mais irregulares. Além disso, como \(\gamma\) torna-se maior, a melhoria no CO torna-se menos evidente. Em cenários com superpixels de formato regular, o CO pode até diminuir com valores maiores de \(\gamma\).
4.2 Avaliação de Hardware
A eficácia do sistema orientado a hardware proposto é declarada na subseção anterior. A velocidade de processamento e a utilização de recursos de hardware são outras questões importantes porque o objetivo final deste trabalho é desenvolver um sistema de segmentação de superpixels SLIC de alta taxa de quadros e atraso ultrabaixo. A síntese e implementação de hardware são realizadas na placa FPGA ZCU104 usando Vivado 2021.2. BRAM suporta até 512 superpixels. Os resultados da avaliação de hardware são apresentados na Tabela 5.
Para a utilização de recursos de hardware, o percentual de utilização de BRAM ultrapassa 60% devido ao armazenamento do mapa de rótulos de todo o quadro e das informações centrais do superpixel. Além disso, uma estrutura BRAM de pingue-pongue é implantada para mapas de rótulos. Causa um aumento na utilização de BRAM. LUT serve não apenas para cálculos de lógica combinatória, mas também para o módulo de atraso receber o fluxo de pixels. Como resultado, a utilização da LUT chega a 77%.
O atraso de processamento da entrada do sensor até a saída do resultado do quadro inteiro é de 0.985 ms/quadro. O fluxo de temporização do sistema proposto é ilustrado em detalhes na Fig. 9. O módulo de obtenção da cor central requer um período de espera de 20 linhas para garantir informações suficientes da cor central para o quadro atual. Isso resulta em um atraso de mais de 50 \(\mu\)S. No módulo de inicialização de amostra de grade, o processamento sequencial das informações do centro de leitura e escrita na BRAM introduz um atraso de 8.23 \(\mu\)s.
As comparações dos tempos de execução entre o sistema proposto e outros algoritmos são ilustradas na Fig. 10. SLIC, SEEDS, LSC, ERS e ETPS são todos fornecidos por um benchmark de superpixel [27]. O tempo de execução deste trabalho é o atraso do núcleo de processamento da imagem. É desde a entrada do sensor do primeiro pixel até a saída do resultado de todo o quadro. Notavelmente, à medida que o número de superpixels aumenta, o atraso associado à inicialização da amostra da grade também aumenta. No entanto, mesmo quando o número esperado de superpixels atinge 800, o atraso permanece notavelmente baixo em 0.988 ms, e ainda atinge o requisito de menos de 1 ms. Esse desempenho é significativamente mais rápido quando comparado a outros algoritmos.
Os resultados apresentados na Tabela 6 ilustram as comparações entre o sistema proposto e outras implementações FPGA do algoritmo SLIC. Ao aproveitar uma estratégia de iteração temporal, as iterações do algoritmo SLIC são separadas no domínio temporal, garantindo um atraso ultrabaixo. O atraso neste trabalho é significativamente menor quando comparado a outras implementações do algoritmo SLIC em FPGA.
5. Conclusão
O sistema descrito neste artigo foi projetado para segmentação de superpixels com alta taxa de quadros e baixo atraso. Tanto o algoritmo quanto a implementação de hardware foram apresentados neste artigo. De uma perspectiva algorítmica, as iterações dentro de um processamento de imagem são separadas no domínio temporal. A inicialização da amostra de grade e o coeficiente de compacidade são propostos para a estabilidade do superpixel. Para tornar a arquitetura proposta totalmente pipeline para atingir atraso ultrabaixo, é proposto um pipeline baseado em propagação seletiva de rótulos. Todas as possibilidades de rótulos são calculadas paralelamente e os resultados finais são selecionados por meio da propagação de rótulos. Os experimentos comprovam que o sistema proposto atinge uma velocidade de processamento em tempo real de 1000 FPS com atraso inferior a 1 ms/quadro. Além disso, o desempenho do sistema permanece comparável a outros algoritmos bem conhecidos, ao mesmo tempo que atinge um LC mais elevado em comparação com métodos de última geração. Para trabalhos futuros, é importante otimizar ainda mais a utilização dos recursos de hardware do método proposto. Como a segmentação de superpixels serve como uma etapa de pré-processamento para diversas aplicações, é crucial alocar recursos suficientes para as etapas subsequentes de processamento.
Agradecimentos
Este trabalho foi apoiado por KAKENHI (21K11816).
Referências
[1] J.S. Rentmeister, M.H. Kiani, K. Pister, and J.T. Stauth, “A 120-330v, sub-μa, 4-channel driver for microrobotic actuators with wireless-optical power delivery and over 99% current efficiency,” IEEE Symp. VLSI Circuits, pp.1-2, IEEE, 2020.
CrossRef
[2] T. Hu, R. Fuchikami, and T. Ikenaga, “High temporal resolution-based temporal iterative tracking for high framerate and ultra-low delay dynamic tracking system,” IEICE Trans. Inf. & Syst., vol.E105-D, no.5, pp.1064-1074, 2022.
CrossRef
[3] S. Du, Z. Dong, Y. Li, and T. Ikenaga, “Straight-line detection within 1 millisecond per frame for ultra-high-speed industrial automation,” IEEE Trans. Ind. Informat., vol.19, no.4, pp.5965-5975, 2023.
CrossRef
[4] S. Du, K. Gu, and T. Ikenaga, “Subpixel displacement measurement at 784 fps: From algorithm to hardware system,” IEEE Trans. Instrum. Meas., vol.71, pp.1-10, 2022.
CrossRef
[5] Z. Zhou, Y. Guo, J. Huang, M. Dai, M. Deng, and Q. Yu, “Superpixel attention guided network for accurate and real-time salient object detection,” Multimed. Tools. Appl., vol.81, no.27, pp.38921-38944, 2022.
CrossRef
[6] H. Wang, W. Zhou, X. Zhang, and X. Lou, “A block patchmatch-based energy-resource efficient stereo matching processor on fpga,” IEEE Trans. Circuits Syst. I: Regul. Pap., vol.69, no.7, pp.2893-2905, 2022.
CrossRef
[7] R. Achanta, A. Shaji, K. Smith, A. Lucchi, P. Fua, and S. Süsstrunk, “Slic superpixels compared to state-of-the-art superpixel methods,” IEEE Trans. Pattern Anal. Mach. Intell., vol.34, no.11, pp.2274-2282, 2012.
CrossRef
[8] Z. Li and J. Chen, “Superpixel segmentation using linear spectral clustering,” Proc. IEEE Conf. Comput. Vis. Pattern Recognit. (CVPR), pp.1356-1363, 2015.
[9] F. Yang, Q. Sun, H. Jin, and Z. Zhou, “Superpixel segmentation with fully convolutional networks,” Proc. IEEE Conf. Comput. Vis. Pattern Recognit. (CVPR), pp.13964-13973, 2020.
[10] Y. Wang, Y. Wei, X. Qian, L. Zhu, and Y. Yang, “Ainet: Association implantation for superpixel segmentation,” Proc. IEEE Int. Conf. Comput. Vis. (ICCV), pp.7078-7087, 2021.
[11] J.-H. Bae, G.-H. Yu, J.-H. Lee, D.T. Vu, L.H. Anh, H.-G. Kim, and J.-Y. Kim, “Superpixel image classification with graph convolutional neural networks based on learnable positional embedding,” Appl. Sci., vol.12, no.18, p.9176, 2022.
CrossRef
[12] C.Y. Ren and I. Reid, “gslic: a real-time implementation of slic superpixel segmentation,” University of Oxford, Department of Engineering, Technical Report, pp.1-6, 2011.
[13] M. Mighani and A. Khakpour, “Fmslic: Fast memory-efficient structure for implementation of slic on fpga,” Circuits, Syst. Signal Process., vol.42, no.8, pp.5065-5078, 2023.
CrossRef
[14] A. Ghaderi, C. Ahlberg, M. Östgren, F. Ekstrand, and M. Ekström, “Fp-slic: A fully-pipelined fpga implementation of superpixel image segmentation,” Euromicro Conf. Digit. Syst. Des. (DSD), pp.109-117, IEEE, 2022.
CrossRef
[15] Y. Li, T. Hu, R. Fuchikami, and T. Ikenaga, “Grid sample based temporal iteration and compactness-coefficient distance for high frame and ultra-low delay slic segmentation system,” Int. Conf. Mach. Vis. Appl. (MVA), 2023.
CrossRef
[16] M.-Y. Liu, O. Tuzel, S. Ramalingam, and R. Chellappa, “Entropy rate superpixel segmentation,” Proc. IEEE Conf. Comput. Vis. Pattern Recognit. (CVPR), pp.2097-2104, IEEE, 2011.
[17] H. Wang, J. Shen, J. Yin, X. Dong, H. Sun, and L. Shao, “Adaptive nonlocal random walks for image superpixel segmentation,” IEEE Trans. Circuits Syst. Video Technol., vol.30, no.3, pp.822-834, 2020.
CrossRef
[18] J. Yao, M. Boben, S. Fidler, and R. Urtasun, “Real-time coarse-to-fine topologically preserving segmentation,” Proc. IEEE Conf. Comput. Vis. Pattern Recognit. (CVPR), pp.2947-2955, 2015.
[19] M. Van den Bergh, X. Boix, G. Roig, and L. Van Gool, “Seeds: Superpixels extracted via energy-driven sampling,” Int. J Comput. Vis., vol.111, no.3, pp.298-314, 2015.
CrossRef
[20] R. Achanta and S. Susstrunk, “Superpixels and polygons using simple non-iterative clustering,” Proc. IEEE Conf. Comput. Vis. Pattern Recognit. (CVPR), pp.4651-4660, 2017.
[21] P.A. Khamaneh, A. Khakpour, M. Shoaran, and G. Karimian, “Real-time memory efficient slic accelerator for low-power applications,” Multimed. Tools. Appl., vol.81, no.22, pp.32449-32467, 2022.
CrossRef
[22] Halcon, Available online: https://linx.jp/product/mvtec/halcon/.
[23] S. Song, S.P. Lichtenberg, and J. Xiao, “Sun rgb-d: A rgb-d scene understanding benchmark suite,” Proc. IEEE Conf. Comput. Vis. Pattern Recognit. (CVPR), pp.567-576, 2015.
[24] A. Schick, M. Fischer, and R. Stiefelhagen, “Measuring and evaluating the compactness of superpixels,” Proc. Int. Conf. Pattern Recognit., pp.930-934, IEEE, 2012.
[25] J. Chang, D. Wei, and J.W. Fisher, “A video representation using temporal superpixels,” Proc. IEEE Conf. Comput. Vis. Pattern Recognit. (CVPR), pp.2051-2058, 2013.
[26] O. Miksik, D. Munoz, J.A. Bagnell, and M. Hebert, “Efficient temporal consistency for streaming video scene analysis,” Int. Conf. Robot. Autom. (ICRA), pp.133-139, IEEE, 2013.
CrossRef
[27] D. Stutz, A. Hermans, and B. Leibe, “Superpixels: An evaluation of the state-of-the-art,” Comput. Vis. Image Underst., vol.166, pp.1-27, 2018.
CrossRef