1. Introdução
A segmentação de brotos de chá fresco é uma tecnologia importante de sistemas automáticos de colheita de chá baseados em visão de máquina. Os resultados da segmentação afetam diretamente a precisão da separação automática. Além disso, as informações sobre a área e o contorno dos brotos de chá são obtidas principalmente a partir dos resultados da segmentação. Nos últimos anos, muitos métodos de detecção ou segmentação de brotos de chá fresco baseados em visão artificial foram propostos. Zhang et al. [1] introduziu um famoso método de identificação e segmentação de brotos de chá baseado em um algoritmo aprimorado de bacia hidrográfica. Gui et al. [2] introduziram um método de detecção de brotos de chá fresco via Yolov5, o módulo de atenção de gargalo é adicionado à rede backbone para suprimir informações inválidas, mas a precisão da detecção não é alta o suficiente para atender aos requisitos dos sistemas automáticos de colheita de chá. Um método de segmentação de brotos de chá fresco baseado em rede codificadora-decodificadora convolucional profunda é proposto em [3], o SegNet é usado como a espinha dorsal da rede para obter os resultados de segmentação.
A maioria dos métodos de segmentação de brotos de chá fresco baseados em Redes Neurais Convolucionais (CNNs) tem um desempenho melhor do que os métodos tradicionais. Atualmente, as CNNs utilizam pooling para rotear as informações entre camadas, como pool máximo e pool médio. No entanto, o pooling é uma forma ingênua de roteamento, pois descarta informações sobre a localização precisa e a posição da entidade dentro da região, o que pode ser valioso para o propósito de classificação [4]. Recentemente, uma nova estrutura chamada Capsule Network (CapsNet) é proposta em [5] para superar essas deficiências. A ideia principal é registrar a relação espacial entre as partes locais e o objeto inteiro por meio da operação de codificação. O roteamento entre cápsulas permite que a rede reconheça objetos de diferentes pontos de vista não vistos nas CNNs originais. Portanto, repensamos as principais etapas de processamento da tarefa de segmentação de brotos de chá fresco e descobrimos que a relação espacial entre os brotos de chá pode ser utilizada para melhorar o desempenho da segmentação. Motivado por [6], [7], um novo método para segmentação de brotos de chá fresco baseado em rede de cápsulas (FTS-SegCaps) é proposto neste artigo. A fim de resolver o problema da explosão de parâmetros e melhorar ainda mais o desempenho da segmentação, um algoritmo de roteamento dinâmico local baseado em patch também é desenvolvido no FTS-SegCaps. A partir das comparações de diferentes métodos de segmentação, os brotos de chá fresco segmentados através do nosso método são mais coincidentes com a verdade básica. Os resultados experimentais mostram que o método proposto tem um desempenho melhor que os métodos do estado da arte.
2. Métodos
2.1 As Propostas FTS-SegCaps
A estrutura de rede dos FTS-SegCaps propostos é mostrada na Fig. 1, a entrada é uma imagem lager (por exemplo \(360 \times 480\) pixels) contendo brotos de chá frescos, e a saída é o resultado da segmentação correspondente. O backbone da rede é seguido por U-Net e CapsNet, enquanto isso, as conexões de salto concatenando tipos de cápsulas da camada anterior com as mesmas dimensões espaciais também estão incluídas. O FTS-SegCaps contém principalmente quatro tipos de cápsulas: Caps Primários, Caps Secundários, TerciárioCaps, SegCaps. Utilizamos uma convolução 2D para converter intensidades de pixel em características locais, cada pixel é transformado em uma única cápsula que contém um vetor de 16 dimensões, e desta forma obtemos o Caps Primários com uma grade de \(360 \times 480\) cápsulas. Então o Caps Secundários e TerciárioCaps são projetados para obter características de alto nível e a relação espacial entre as partes locais e todo o broto de chá. No processamento do cálculo de roteamento entre camadas de cápsula, propusemos um algoritmo de roteamento dinâmico local baseado em patch para resolver o problema de carga de memória e explosão de parâmetros [8], os detalhes são mostrados na Seção. 2.2. As cápsulas filhas são roteadas apenas para cápsulas pais dentro de uma janela local baseada em caminho definido (o tamanho é \(h^{(l)} \times w^{(l)}\), \(l\) é o número da camada), e as matrizes de transformação são compartilhadas para cada membro da grade dentro do mesmo tipo de cápsula. Na Figura 1, as iterações de roteamento usadas para Caps Primários é 1, e para outras camadas de roteamento são definidas como 3. Nos FTS-SegCaps propostos, também adicionamos a conexão de salto para superar o problema de desaparecimento de gradiente e ajuste excessivo.
Para obter os resultados da segmentação dos brotos de chá fresco, projetamos a parte do decodificador seguindo a linha de base do U-Net. Uma operação deconvolucional 2D é utilizada para reconstruir a mesma grade da imagem de entrada, e uma convolução 2D também é empregada para obter a SegCaps. Em seguida, calculamos o comprimento dos vetores de cada cápsula no SegCaps camada para obter os resultados finais da segmentação. O principal processamento da operação deconvolucional é aumentar a amostragem das cápsulas filhas para as cápsulas parentais correspondentes. Uma matriz de transformação aprendida da camada \(l\) para \(l+1\) é definido como \(M_{t_{j}^{(l+1)}}\), Onde \(t_{j}^{(l+1)}\) é um tipo de cápsula parental, e \(U_{x,y | t_{i}^{(l)}}\) é a subgrade de saídas de cápsulas filhas na posição \((x,y)\) na camada \(l\). Em seguida, remodelamos as saídas da cápsula filha seguindo a formulação de passos fracionários usada em [9] e calculamos os vetores de predição por,
\[\begin{align} \boldsymbol{\hat{\mathbf{u}}}_{x,y | t_{i}^{(l)}} = M_{t_{j}^{(l+1)}} \cdot U_{x,y | t_{i}^{(l)}}, \qquad \forall t_{j}^{(l)} \in T^{(l)}, \tag{1} \end{align}\] |
onde \(T^{(l)} = \{ t_{1}^{(l)}, t_{2}^{(l)}, \cdots t_{m}^{(l)} | m \in \mathbb{N}\}\), é um conjunto de tipos de cápsulas. Então o \(\boldsymbol{\hat{\mathbf{u}}}_{x,y | t_{i}^{(l)}}\) é utilizado como entrada do algoritmo de roteamento dinâmico local baseado em patch para reconstruir a cápsula pai.
2.2 O algoritmo de roteamento dinâmico local baseado em patch proposto
O algoritmo de roteamento usado no CapsNet original é totalmente conectado, o parâmetro cresce rapidamente à medida que a imagem aumenta. Portanto, um algoritmo de roteamento dinâmico local baseado em patches é proposto para superar esses problemas. Nas cápsulas convolucionais, a cápsula original na posição \((x,y)\) na camada \(l+1\) é definido como \({\bf p}_{x,y}\), que recebe um conjunto de vetores de predição \(\boldsymbol{\hat{\mathbf{u}}}_{x,y | t_{i}^{(l)}}\) calculado por um \(h^{(l)} \times w^{(l)}\) grade de \(z^{(l)}\) cápsulas infantis dimensionais em camada \(l\). Os coeficientes de roteamento \(r_{t_{i}^{(l)} | x,y}\) usado para obter o \({\bf p}_{x,y}\) são calculados por uma operação Softmax,
\[\begin{align} r_{t_{i}^{(l)} | x,y} = \frac{\exp (b_{t_{i}^{(l)} | x,y})} {\sum\nolimits_{t_{j}^{(l+1)}} \exp (b_{t_{i}^{(l)} | t_{j}^{(l+1)}})}, \tag{2} \end{align}\] |
onde \(b_{t_{i}^{(l)} | x,y}\) é o log das probabilidades anteriores de prever \(\boldsymbol{\hat{\mathbf{u}}}_{x,y | t_{i}^{(l)}}\) encaminhado para \({\bf p}_{x,y}\), e o valor é atualizado no Algoritmo 1. Então, a saída \({\bf v}_{x,y}\) é obtido através de uma função de esmagamento[],
\[\begin{align} {\bf v}_{x,y} = \frac{\left\| {\bf p}_{x,y} \right\|^{2}} {1 + \left\|{\bf p}_{x,y}\right\|^{2}} \frac{{\bf p}_{x,y}} {\left\| {\bf p}_{x,y} \right\|}. \tag{3} \end{align}\] |
As principais etapas do algoritmo de roteamento dinâmico local baseado em patch proposto estão resumidas no Algoritmo 1. \(d\) são as iterações de roteamento usadas no algoritmo de roteamento. Os martices de transformação \(M_{t_{j}^{(l+1)}}\) são compartilhados para cada membro da grade dentro do mesmo tipo de cápsula. Portanto, utilizamos dois tipos de roteamento na Fig. 1 de acordo com os diferentes tipos de cápsulas.
3. Experiência e Avaliação
3.1 Conjunto de dados e detalhes da implementação
O conjunto de dados usado no experimento contém 5180 imagens RGB em \(360 \times 480\) resolução. Cada imagem contém brotos de chá Longjing obtidos em ângulo de 45 graus ou overshoot. 3108 imagens são utilizadas como dados de treinamento e o restante são dados de teste. A verdade é obtida por segmentação manual com rótulos como 1, 2 para fundo e brotos de chá, respectivamente. Todas as imagens de entrada são processadas com a operação de normalização de contraste local.
Os experimentos são executados com 2 GPUs NVIDIA Tesla P40, o TensorFlow e Keras são utilizados para implementar o modelo. Para permanecer consistente, treinamos todos os modelos do zero no conjunto de dados. Utilizamos a perda ponderada de BCE para a saída no FTS-SegCaps, definimos a taxa de aprendizado para 0.0001, as iterações de roteamento \(d=1\) for Caps Primários, \(d=3\) para outras camadas de roteamento e faça \(h^{(l)}=9\), \(w^{(l)}=12\). No experimento, o Erro de Sobreposição (EO) e o Erro de Diferença Relativa (RDE) são empregados para avaliar os resultados da segmentação, as definições de OE e RDE estão em [3]. O Número de Parâmetros de Treinamento (NTP) e FPS também são utilizados para avaliar melhor o algoritmo proposto.
3.2 Resultados da Segmentação e Discussão
Para avaliar os FTS-SegCaps propostos, implementamos U-Net [10], SegNet [11], TS-SegNet [3] e SegCaps [6] para comparar o desempenho na segmentação de brotos de chá fresco. A Tabela 1 mostra os resultados da segmentação do conjunto de testes com diferentes métodos. Os resultados da comparação indicam que o FTS-SegCaps proposto apresenta melhor desempenho na segmentação de brotos de chá fresco. Comparado ao TS-SegNet, a média de OE e RDE obtida pelo nosso método caiu 16.7% e 22.2% respectivamente. Além disso, o NTP em nosso método diminuiu 56.3% e o FPS aumentou 16.7% em comparação com os SegCaps. O problema da explosão de parâmetros é basicamente resolvido com a contribuição do algoritmo de roteamento dinâmico local baseado em patch.
A Figura 2 mostra alguns resultados de segmentação do conjunto de testes com diferentes métodos. Pode-se observar que a região dos brotos de chá obtida pelo nosso método está mais próxima da verdade fundamental. Além disso, os brotos de chá girados também podem ser segmentados com precisão com a contribuição da estrutura CapsNet proposta e do roteamento dinâmico. A relação espacial entre as partes locais e o broto de chá inteiro é efetivamente utilizada em nosso método, o que leva a um desempenho melhor do que os métodos mais modernos.
Na parte experimental, também comparamos diferentes iterações de roteamento \(d\) para verificar melhor os FTS-SegCaps propostos. A Figura 3 mostra a precisão média do conjunto de testes de brotos de chá fresco com diferentes iterações de roteamento. O \(d\) usado para Caps Primários é definido como 1, 3, 5, respectivamente, e para outras camadas de roteamento são definidos de 1 a 7, respectivamente. A partir da comparação de diferentes iterações de roteamento, observamos que iterações de roteamento muito pequenas ou grandes podem levar a ótimos locais ou problemas de overfitting. Na Figura 3, o \(d = 1\) for Caps Primários e \(d = 3\) para outras camadas de roteamento tem o melhor desempenho na segmentação de brotos de chá fresco, que é semelhante ao CapsNet original.
4. Conclusão
Neste artigo, é apresentado um novo método FTS-SegCaps para segmentação de brotos de chá fresco. A relação espacial entre as partes locais e o broto de chá fresco inteiro é retida e utilizada de forma eficaz pela estrutura CapsNet. Um algoritmo de roteamento dinâmico local baseado em patch também é proposto para resolver o problema de explosão de parâmetros. Com essas estratégias, os brotos de chá fresco com diferentes posturas podem ser segmentados com precisão através do método proposto. Os resultados experimentais indicam que o FTS-SegCaps proposto tem um desempenho melhor que os métodos do estado da arte. O trabalho futuro inclui a eliminação dos efeitos da iluminação ambiente ou de folhas velhas danificadas, melhorando ainda mais o desempenho da segmentação e coletando mais dados.
Agradecimentos
Esta pesquisa foi apoiada pelo Projeto de Sistema de Tecnologia Industrial Agrícola Moderna de Jiangsu (JATS-2022-386), Projeto de Treinamento de Pessoa Líder Especializada da Faculdade Profissional de Jiangsu (2021GRFX052), Fundo de Pesquisa do Programa de Promoção de Doutorado do Instituto Politécnico de Agricultura de Suzhou (BS2022-15) e Jovens e Líderes acadêmicos de meia-idade do Programa Jiangsu Qinglan.
Referências
[1] L. Zhang, L. Zou, C. Wu, J. Jia, and J. Chen, “Method of famous tea sprout identification and segmentation based on improved watershed algorithm,” Computers and Electronics in Agriculture, vol.184, 106108, May 2021.
CrossRef
[2] Z. Gui, J. Chen, Y. Li, Z. Chen, C. Wu, and C. Dong, “A lightweight tea bud detection model based on Yolov5,” Computers and Electronics in Agriculture, vol.205, 107636, Jan. 2023.
CrossRef
[3] C. Qian, M. Li, and Y. Ren, “Tea sprouts segmentation via improved deep convolutional encoder-decoder network,” IEICE Trans. Inf. & Syst., vol.E103-D, no.2, pp.476-479, Feb. 2019.
CrossRef
[4] A. Mobiny, H. Lu, H.V. Nguyen, B. Roysam, and N. Varadarajan, “Automated classification of apoptosis in phase contrast microscopy using capsule network,” IEEE Trans. Med. Imag., vol.39, no.1, pp.1-10, Jan. 2019.
CrossRef
[5] S. Sabour, N. Frosst, and G.E. Hinton, “Dynamic routing between capsules,” Advances in Neural Information Processing Systems (NIPS 2017), Jan. 2018.
[6] R. LaLonde, Z. Xu, I. Irmakci, S. Jain, and U. Bagci, “Capsules for biomedical image segmentation,” Medical image analysis, vol.68, 101889, Feb. 2021.
CrossRef
[7] A. Deleruyelle, C. Versari, and J. Klein, “Self-mentoring: A new deep learning pipeline to train a self-supervised U-net for few-shot learning of bio-artificial capsule segmentation,” Computers in Biology and Medicine, vol.152, 106454, Jan. 2023.
CrossRef
[8] A. Mobiny, H. Lu, H.V. Nguyen, B. Roysam, and N. Varadarajan, “Automated classification of apoptosis in phase contrast microscopy using capsule network,” IEEE Trans. Med. Imag., vol.39, no.1, pp.1-10, Jan. 2020.
CrossRef
[9] Long J, Shelhamer E, Darrell T. “Fully convolutional networks for semantic segmentation,” IEEE Trans. Pattern Anal. Mach. Intell., vol.39, no.4, pp.640-651, April 2017.
CrossRef
[10] O. Ronneberger, P. Fischer, and T. Brox, “U-net: Convolutional networks for biomedical image segmentation,” International Conference on Medical image computing and computer-assisted intervention, pp.234-241, Nov. 2015.
CrossRef
[11] V. Badrinarayanan, A. Kendall, and R. Cipolla, “Segnet: A deep convolutional encoder-decoder architecture for image segmentation,” IEEE Trans. Pattern Anal. Mach. Intell., vol.39, no.12, pp.2481-2495, Jan. 2017.
CrossRef