A pergunta
Anotações em nível de pixel de vídeo cirúrgico são demoradas, e as bordas dos instrumentos são a parte menos consistente delas. Um renderizador fornece instrumentos ilimitados com máscaras exatas. Testamos a versão forte dessa ideia:
H1. Um modelo treinado apenas com instrumentos sintéticos não é pior, em instrumentos reais, do que o mesmo modelo treinado com anotações reais.
A hipótese, a margem e a regra de decisão foram fixadas em um documento de projeto (RFC 0001) antes de qualquer treinamento.
Como testamos
- Dados sintéticos. Modelos de uma pinça de apreensão e de um gancho em L foram construídos no Blender e renderizados 20.000 vezes com máscaras exatas. As renderizações foram sobrepostas a 717 quadros sem instrumentos do conjunto público CholecT50, cada um verificado por uma pessoa. Aumentos: luz, desfoque, tecido sobre a ponta, a borda escura da imagem do endoscópio e fumaça simulada.
- Dados reais. CholecSeg8k: 4.000 quadros anotados de 8 vídeos para treinamento e 1.120 quadros de 2 vídeos para validação.
- Teste. Os 7 vídeos do CholecSeg8k que nunca serviram de fundo sintético, 2.960 quadros no total. Antes da primeira execução no teste, uma pessoa revisou cada clipe de teste em busca de instrumentos sem classe própria. Nada precisou ser excluído.
- Modelo. O mesmo DeepLabV3-ResNet50, as mesmas configurações e o mesmo número de passos de treinamento em todos os braços. Cada braço rodou com 3 sementes.
| Braço | Treinado com |
|---|---|
| A | apenas instrumentos sintéticos |
| B | apenas anotações reais |
| C10 / C25 / C50 / C100 | o modelo do braço A, depois 10 / 25 / 50 / 100 % dos quadros reais |
- Escolha do modelo. O braço A escolheu seu checkpoint apenas com dados de validação sintéticos, de modo que nenhuma anotação real chegou ao braço sintético.
- Execuções no teste. Cada checkpoint escolhido foi executado exatamente uma vez nos vídeos de teste, e cada execução foi registrada.
Resultados
A métrica é a sobreposição (IoU) da máscara de instrumentos em todos os pixels de teste. 1 é perfeito. A faixa é um intervalo de 95 % sobre vídeos de teste e sementes.
| Braço | Anotações reais | IoU | Intervalo de 95 % |
|---|---|---|---|
| A, só sintético | 0 % | 0,116 | 0,04 – 0,19 |
| C10 | 10 % | 0,775 | 0,66 – 0,83 |
| C25 | 25 % | 0,767 | 0,63 – 0,83 |
| C50 | 50 % | 0,778 | 0,65 – 0,84 |
| C100 | 100 % | 0,764 | 0,62 – 0,84 |
| B, só real | 100 % | 0,772 | 0,65 – 0,84 |
H1 foi rejeitada. O braço A fica 65,5 pontos atrás do braço B, com intervalo de 95 % de −75,9 a −53,5. O projeto admitia uma diferença de no máximo 2 pontos.
O modelo só sintético aprendeu a tarefa sintética: chegou a 0,96 nos dados de validação sintéticos. Nos quadros reais de validação, obteve cerca de 0,45, e nos vídeos de teste, 0,12. Verificamos uma explicação: que ele teria memorizado o tecido das operações de validação por meio dos fundos. Apenas 29 dos 717 fundos vêm dessas operações, então isso não explica a diferença. Ainda não se sabe por que o modelo falha com instrumentos reais.
Dados em tabela
| Época | Validação sintética, média | Validação real, média |
|---|---|---|
| 1 | 0,912 | 0,431 |
| 2 | 0,925 | 0,399 |
| 3 | 0,938 | 0,386 |
| 4 | 0,941 | 0,399 |
| 5 | 0,944 | 0,363 |
| 6 | 0,949 | 0,467 |
| 7 | 0,949 | 0,412 |
| 8 | 0,953 | 0,442 |
| 9 | 0,953 | 0,346 |
| 10 | 0,956 | 0,383 |
| 11 | 0,957 | 0,334 |
| 12 | 0,958 | 0,409 |
| 13 | 0,959 | 0,383 |
| 14 | 0,960 | 0,403 |
| 15 | 0,961 | 0,394 |
| 16 | 0,962 | 0,364 |
| 17 | 0,963 | 0,398 |
| 18 | 0,963 | 0,438 |
| 19 | 0,963 | 0,429 |
| 20 | 0,963 | 0,442 |
Seis quadros de validação
A figura mostra o que os modelos dos braços A, B e C10 (semente 1) preveem em seis quadros reais de validação. Os quadros estão espaçados igualmente e foram fixados antes de qualquer previsão ser vista. Quadros de teste não são mostrados: executar os modelos neles de novo seria usar o teste mais uma vez.
- Onde uma pinça se destaca do tecido, o braço A encontra parte dela (IoU de 0,39 a 0,76).
- Onde o instrumento está na borda da imagem ou tem haste escura (linhas 2 e 6), o braço A quase não encontra nada (0,00 e 0,02). Os braços B e C10 encontram esses instrumentos (de 0,73 a 0,90).
- No último quadro, o braço B marca o gancho em L como pinça, e o C10 o rotula corretamente. O IoU da máscara de instrumentos não considera a classe.
Seis quadros ilustram os números acima. Sozinhos, não são evidência.
O que estes números não são
- Não são prova de que o pré-treinamento sintético economiza anotações. Os braços C alcançam o braço B com 10 % dos quadros reais, cerca de 400, e não ganham nada além disso. Mas o projeto não tinha um braço treinado com esses mesmos 10 % sem a etapa sintética. Sem ele, não dá para saber se a etapa sintética ajudou ou se 400 quadros reais bastam sozinhos.
- Não são um veredito sobre dados sintéticos em geral. Valem para este renderizador, estes instrumentos e 717 fundos, menos do que os cerca de 1.000 planejados.
- Não são um resultado clínico. Velocidade, reflexos e sangue não foram medidos separadamente, e nenhum modelo foi publicado.
RESEARCH USE ONLY – NOT FOR CLINICAL USE (somente para pesquisa, não para uso clínico).
O que deu errado pelo caminho
- As primeiras renderizações foram três vezes mais lentas do que precisavam. O removedor de ruído rodava na CPU enquanto a GPU esperava. Após a correção, 20.000 renderizações levaram cerca de 3 horas.
- O braço sintético parou depois de poucas épocas. Algumas imagens de fumaça foram danificadas ao serem copiadas para o servidor com GPU. As execuções foram retomadas do último checkpoint, e agora cada imagem é verificada antes do início do treinamento.
- Seis ajustes finos partiram de modelos inacabados por causa dessa falha. Foram marcados como inválidos, nunca executados no teste, e o código de treinamento agora se recusa a iniciá-los.
Possíveis próximos passos
- Um braço de controle treinado com 10 % e 25 % dos quadros reais sem a etapa sintética. É a forma mais barata de saber o que a etapa sintética acrescenta.
- Randomização de domínio: texturas e cores propositalmente irreais, para testar se a diferença é de aparência.
O cartão completo do modelo, com os identificadores das execuções, está no repositório do projeto. Veja também o registro de experimentos e por que os resultados negativos importam.