NEBLI
Código aberto

Kit de treinamento para detectar sargaço, agora em código aberto

As florações de sargaço pioram a cada ano nas costas do Atlântico, e uma pergunta básica acaba surpreendentemente sem resposta: se você tem um sensor de baixo custo à deriva na água, como esse sensor sabe se está dentro de uma mancha de sargaço ou em água aberta?

Quase todo o trabalho de detecção de sargaço olha para baixo. Satélites e aviões usam imagens de infravermelho próximo para localizar as manchas de cima, e essa linha é bem publicada. Quase ninguém olha para cima de dentro da água, de perto, com hardware RGB barato. Não encontramos uma versão publicada dessa abordagem, então construímos uma e liberamos em código aberto: um kit de treinamento que transforma uma boia de baixo custo em um sensor que você pode rotular, treinar e testar em uma única saída de campo.

Resposta curta: liberamos em código aberto o ciclo de treinamento por trás da nossa boia para sargaço, sob Apache-2.0: um console web para rotular leituras, um classificador pequeno que roda no dispositivo, e o firmware para executá-lo. Trate como uma ferramenta e um método para testar, porque o modelo ainda não foi validado em uma floração real de sargaço; esse teste de campo continua pendente. Se você trabalha com sensoriamento marinho, plataformas de drones ou boias, ou ciência cidadã, gostaríamos da sua ajuda para levar isso adiante.
Foto submarina olhando para cima, para a parte de baixo de uma balsa de sargaço em água esverdeada
A vista a partir da qual o classificador do kit trabalha: para cima através da água e a curta distância. O verde e o marrom de uma mancha contra o azul aberto é a mudança que o modelo detecta, e é por isso que ele lê cromaticidade em vez de brilho.

Por que construir isso em vez de usar dados de satélite?

O sensoriamento remoto por satélite e aéreo responde "onde estão as manchas" em escala grossa, com bandas de infravermelho próximo que captam a assinatura de refletância da planta vista de cima. Isso serve para o acompanhamento regional, mas responde a uma pergunta diferente da que um sensor já implantado precisa: esta unidade pontual, aqui e agora, está dentro de uma mancha ou em água aberta? Essa resposta tem que vir de hardware barato o bastante para ser implantado em quantidade e perdido sem doer.

Procuramos trabalho anterior sobre detecção in situ, submersa, com luz visível, nesse preço, e encontramos pouco. Então tratamos como um problema de sensoriamento aberto, não resolvido, e a forma mais rápida que conhecemos de avançar em um problema aberto é colocar a ferramenta nas mãos de mais gente que possa usá-la em mais lugares.

O que há no repositório

O kit cobre o ciclo de treinamento que nós mesmos usamos. Não inclui toda a plataforma Nebli. Três peças:

  • Um console web de treinamento. Carregue as leituras de uma sessão, rotule trechos como na-mancha, água-aberta ou fora-da-água, e treine um modelo com elas.
  • O modelo. Uma random forest pequena treinada com características de cromaticidade (mais sobre isso abaixo) que roda diretamente no microcontrolador da boia depois do treinamento.
  • O firmware de treinamento para uma boia ESP32-S3 com um arranjo de quatro sensores RGB. Só o código: você compila e grava.

Deliberadamente de fora: a rede mesh LoRa e o resto da plataforma Nebli. Esta publicação se limita ao ciclo de sensoriamento e treinamento.

Como funciona o ciclo de treinamento

O fluxo é: rotular as leituras de uma sessão no console, treinar um modelo na nuvem, carregar o modelo compilado de volta na placa, e vê-lo classificar leituras ao vivo. Uma volta completa desse ciclo cabe em uma única saída de campo.

Protótipo de boia para sargaço, uma estrutura branca com mastro de antena, sobre uma balsa de sargaço flutuante
A unidade onde o firmware de treinamento roda, sobre uma mancha perto da costa. O modelo compilado volta para esta placa, então a volta se fecha na mesma saída de campo.

Dois detalhes de implementação importam aqui.

Ele classifica por cromaticidade, não por brilho bruto. Debaixo da água a luz ambiente muda o tempo todo com a profundidade, a nebulosidade e a hora, então o brilho RGB bruto é um alvo móvel. A cromaticidade normaliza a cor contra o brilho, e é isso que permite ao modelo seguir o deslocamento verde-marrom frente ao azul que uma mancha de sargaço produz, em vez de apenas seguir o quanto está ensolarado.

O modelo não finge saber o que não sabe. O processo de treinamento tem pisos rígidos. Não treina com menos de 40 amostras rotuladas. Roda um teste de separabilidade sobre dados reservados antes de aceitar um modelo, e se as características não separam na-mancha de água-aberta nos seus dados, ele diz isso em vez de entregar um modelo mesmo assim. Também marca os resultados que parecem suspeitosamente bons com pouquíssimos dados, porque uma pontuação alta sobre um conjunto pequeno costuma significar que o modelo memorizou suas leituras em vez de aprender algo geral. O número de precisão mostrado no treinamento sai do mesmo código avaliador que roda na placa, então o que você vê no console é o que o hardware faz em campo.

Colocamos esses controles porque queríamos uma ferramenta da qual não se consiga arrancar uma resposta confiante a partir de dados ruins. Pela mesma razão, aqui não fazemos afirmações de precisão. O modelo ainda não foi rodado contra uma floração real de sargaço. Esse teste de campo está a caminho; até que aconteça, trate este kit como um método que funciona, não como um resultado terminado.

Como participar

Este é um problema genuinamente aberto, e preferimos ter mais gente testando do que continuar iterando sozinhos. Algumas formas de ajudar:

  • Rode o kit em outro local e compartilhe o que encontrar, bom ou ruim.
  • Acrescente um canal de infravermelho próximo e veja se melhora a separabilidade frente a só RGB.
  • Teste outro alvo de detecção com o mesmo ciclo de treinamento.
  • Porte o firmware para outra placa.
  • Abra um issue se algo não compilar, não gravar ou não fizer sentido.

O repositório está sob licença Apache-2.0. undefined

Perguntas frequentes

Isto é toda a plataforma Nebli?

Não. Esta publicação inclui apenas o console de treinamento, o modelo e o firmware de treinamento. A rede mesh e o resto da plataforma Nebli não estão incluídos.

O modelo já foi validado em uma floração real de sargaço?

Ainda não. Esse teste de campo continua pendente. Trate tudo neste kit como um método que vale a pena testar, porque ainda não está comprovado como detector em campo.

Que hardware preciso para usá-lo?

Uma placa ESP32-S3 com um arranjo de quatro sensores RGB, igual ao que o firmware de treinamento tem como alvo. O repositório traz as instruções para compilar e gravar.

Por que RGB em vez de infravermelho próximo?

Sobretudo por custo e simplicidade. Sensores RGB são baratos e fáceis de conseguir. Gostaríamos que alguém acrescentasse um canal de infravermelho próximo e comparasse os resultados.

Sob qual licença está?

Apache-2.0, incluída a concessão de patentes.

Posso usá-lo para algo que não seja sargaço?

Sim. O ciclo de treinamento (rotular, treinar, carregar na placa, rodar) não é específico do sargaço. Se você adaptá-lo para outro alvo de detecção, conte para nós como foi.

Com quem falo se quiser colaborar pelas ciências do mar?

Abra um issue no repositório, ou escreva para nós através de nebli.ai. Procuramos especificamente pesquisadores marinhos, operadores de sensores e drones, e pessoas de ciência cidadã para testar isto em campo.

Construindo sobre isto?

Gostaríamos de saber de pesquisadores marinhos, operadores de sensores e drones, e pessoas de ciência cidadã que estejam testando o kit em campo.