Automatize a detecção de ervas daninhas em culturas agrícolas usando os rótulos personalizados do Amazon Rekognition

Nó Fonte: 879750

Rótulos personalizados do Amazon Rekognition torna a detecção automática de ervas daninhas mais fácil. Em vez de localizar ervas daninhas manualmente, você pode automatizar o processo com Amazon Rekognition Custom Labels, que permite construir modelos de aprendizado de máquina (ML) que podem ser treinados com apenas um punhado de imagens e ainda são capazes de prever com precisão quais áreas de uma cultura têm ervas daninhas e precisam de tratamento. Isso economiza tempo, esforço e custos de tratamento de ervas daninhas aos agricultores.

Cada fazenda tem ervas daninhas. As ervas daninhas competem com as lavouras e, se não forem controladas, podem ocupar espaço precioso, luz solar, água e nutrientes das lavouras e reduzir seu rendimento. As ervas daninhas crescem muito mais rápido do que as lavouras e precisam de controle imediato e eficaz. A detecção de ervas daninhas nas lavouras é um processo demorado e demorado e, atualmente, é feito manualmente. Embora existam máquinas de pulverização de ervas daninhas que podem ser codificadas para ir a um local exato em um campo e pulverizar o tratamento de ervas daninhas apenas nesses pontos, o processo de localização onde essas ervas daninhas existem ainda não é automatizado.

A automação de localização de ervas daninhas não é um processo fácil. É aqui que entram a visão computacional e a IA. Reconhecimento da Amazônia é um serviço de visão por computador totalmente gerenciado que permite aos desenvolvedores analisar imagens e vídeos para uma variedade de casos de uso, incluindo identificação e verificação de rosto, inteligência de mídia, automação industrial personalizada e segurança no local de trabalho. A detecção de objetos e cenas personalizados pode ser difícil. Treinar e melhorar a precisão de um modelo de visão computacional requer uma grande quantidade de dados e é um problema complexo. O Amazon Rekognition Custom Labels permite detectar objetos e cenas com rótulos personalizados com apenas algumas imagens de treinamento.

Nesta postagem, usamos Amazon Rekognition Custom Labels para construir um modelo de ML que detecta ervas daninhas em plantações. No momento, estamos ajudando pesquisadores de uma universidade dos EUA a automatizar esse processo para agricultores locais.

Crie e treine um modelo de detecção de ervas daninhas

Resolvemos esse problema alimentando imagens de culturas com e sem ervas daninhas para Amazon Rekognition Custom Labels e construindo um modelo de ML. Depois que o modelo é construído e implantado, podemos realizar inferências alimentando as imagens do modelo das câmeras de campo. Desta forma, os agricultores podem automatizar a detecção de ervas daninhas em seus campos. Nossos experimentos mostraram que modelos altamente precisos podem ser construídos com apenas 32 imagens.

  1. No console do Amazon Rekognition, escolha Use rótulos personalizados.

  1. Escolha Projectos.
  2. Escolha Criar projeto.
  3. Escolha Nome do Projeto, insira um nome (por exemplo, Weed-detection-in-crops).
  4. Escolha Criar projeto.

Em seguida, criamos um conjunto de dados.

  1. No console Amazon Rekognition Custom Labels, escolha Conjuntos de dados.
  2. Escolha Criar conjunto de dados.
  3. Insira um nome para o seu conjunto de dados, como crop-weed-ds.
  4. Selecione o local dos dados de treinamento (para esta postagem, selecionamos Faça upload de imagens do seu computador).

  1. Escolha Adicionar imagens para fazer upload de suas imagens.

Para esta postagem, usamos 32 imagens de campo, das quais metade são imagens de culturas sem ervas daninhas e a outra metade são culturas infectadas com ervas daninhas.

  1. Depois de fazer upload de suas imagens de treinamento, escolha Adicionar rótulos para adicionar rótulos aos seus dados de treinamento.

Para esta postagem, definimos dois rótulos: good-crop e weed.

  1. Atribua às suas imagens carregadas um desses dois rótulos, dependendo do tipo de imagem.
  2. Salve essas alterações.

Agora rotulamos imagens para ambas as classes que definimos.

  1. Crie outro conjunto de dados para teste chamado test-ds, que contém quatro imagens rotuladas para fins de teste.

Agora estamos prontos para treinar um novo modelo.

  1. Selecione o projeto que você criou e escolha Treinar novo modelo.
  2. Escolha o conjunto de dados de treinamento e o conjunto de dados de teste que você criou anteriormente.
  3. Escolha Trem.

Depois que o modelo é treinado, podemos ver seu desempenho. Nosso modelo foi quase perfeito, com uma pontuação F1 de 1.0. A precisão e o recall também foram 1.0.

Podemos escolher Ver os resultados do teste para ver o desempenho desse modelo em nossos dados de teste. A captura de tela a seguir mostra que boas safras foram previstas com precisão, pois boas safras e safras infectadas com ervas daninhas foram detectadas como contendo ervas daninhas.

Teste o modelo por meio do seu navegador

Oferecemos um Formação da Nuvem AWS modelo no GitHub repo que permite testar o modelo por meio de um navegador. Escolha o modelo apropriado dependendo da sua região. O modelo inicia os recursos necessários para você testar o modelo

O modelo pede seu e-mail quando você o inicia. Quando o modelo está pronto, ele envia por e-mail as credenciais necessárias. O Saídas guia para a pilha do CloudFormation tem uma URL de site para testar o modelo.

  1. Na interface do navegador, escolha Comece o modelo.

  1. Insira 1 para unidades de inferência.
  2. Escolha Comece o modelo.

  1. Quando o modelo está em execução, você pode fazer upload de qualquer imagem para ele e obter resultados de classificação.

  1. Pare o modelo assim que seu teste for concluído.

Executar inferência usando o SDK

A inferência do modelo também é possível usando o SDK. O código a seguir é executado na mesma imagem da seção anterior:

import boto3 def show_custom_labels(model, bucket, image, min_confidence): client=boto3.client('rekognition') #Call DetectCustomLabels response = client.detect_custom_labels(Image={'S3Object': {'Bucket': bucket, 'Name': image}}, MinConfidence=min_confidence, ProjectVersionArn=model) # Print results for customLabel in response['CustomLabels']: print('Label ' + str(customLabel['Name'])) print('Confidence ' + str(customLabel['Confidence']) + "n") return len(response['CustomLabels']) def main(): bucket = 'crop-weed-bucket' image = "Weed-1.jpg" model = 'arn:aws:rekognition:us-east-2:xxxxxxxxxxxx:project/Weed-detection-in-crops/version/Weed-detection-in-crops.2021-03-30T10.02.49/yyyyyyyyyy' min_confidence=1 label_count=show_custom_labels(model, bucket, image, min_confidence) print("Custom labels detected: " + str(label_count)) if __name__ == "__main__": main()

Os resultados do uso do SDK são iguais aos anteriores no navegador:

Label weed
Confidence 92.1469955444336 Label good-crop
Confidence 7.852999687194824 Custom labels detected: 2

Melhores práticas

Considere as seguintes práticas recomendadas ao usar rótulos personalizados do Amazon Rekognition:

  • Use imagens de alta resolução
  • Corte qualquer ruído de fundo na imagem
  • Tenha um bom contraste entre o objeto que você está tentando detectar e outros objetos na imagem
  • Exclua todos os recursos que você criou assim que seu projeto for concluído

Conclusão

Nesta postagem, mostramos como é possível automatizar a detecção de ervas daninhas em lavouras criando modelos de ML personalizados com Amazon Rekognition Custom Labels. Amazon Rekognition Custom Labels cuida de profundas complexidades de aprendizado nos bastidores, permitindo que você crie modelos de classificação de imagem poderosos com apenas um punhado de imagens de treinamento. Você pode melhorar a precisão do modelo aumentando o número de imagens em seus dados de treinamento e a resolução dessas imagens. Os agricultores podem implantar modelos como esses em suas máquinas de pulverização de ervas daninhas para reduzir o custo e o esforço manual. Para saber mais, incluindo outros casos de uso e tutoriais em vídeo, visite a página da web Amazon Rekognition Custom Labels.


Sobre o autor

Raju Penmatcha é arquiteto de soluções especialista sênior em AI / ML na AWS. Ele trabalha com clientes educacionais, governamentais e sem fins lucrativos em projetos relacionados ao aprendizado de máquina e inteligência artificial, ajudando-os a criar soluções usando a AWS. Quando não está ajudando os clientes, ele gosta de viajar para novos lugares.

Fonte: https://aws.amazon.com/blogs/machine-learning/automate-weed-detection-in-farm-crops-using-amazon-rekognition-custom-labels/

Carimbo de hora:

Mais de Blog do AWS Machine Learning