MedSearch: Pesquisa de similaridade de imagem de raios X movida por vetores
Visão geral
O MedSearch explora a aplicação de técnicas de pesquisa de similaridade vetorial à recuperação de imagens médicas. O foco principal está no desenvolvimento de um sistema de prova de conceito que permita aos usuários encontrar imagens de raios-X visualmente semelhantes em um conjunto de dados usando uma imagem de consulta carregada.
Casos de uso
- Radiologia (prova de conceito): fornece uma ferramenta para os radiologistas referenciarem rapidamente imagens de raios-X visualmente semelhantes, ajudando potencialmente no diagnóstico ou identificando padrões sutis.
- Pesquisa (exploração): permite que os pesquisadores investigem possíveis relações entre imagens de raios-X com base na similaridade visual.
- Educação (demonstração): serve como um auxílio de aprendizado para entender as representações de imagens e a pesquisa de similaridade em um contexto médico.
Pilha de tecnologia
Back -end:
- Python
- Flask (estrutura da web)
- Milvus (banco de dados de pesquisa de similaridade vetorial)
- Tensorflow (modelo Resnet-50)
Front-end:
- HTML, CSS
- JavaScript (API Fetch ou Ajax para interações API)
Bancos de dados:
- Postgressql (armazenamento de imagem e metadados)
Conjunto de dados
- Chestx-Ray14: Um conjunto de dados de raios-X disponível ao público adequado para prototipagem inicial.
Arquitetura do sistema
Modelo de aprendizado profundo:
- Resnet-50 (pré-treinado no ImageNet): Este modelo extrai vetores de recursos significativos que representam o conteúdo visual das imagens de raios-X. Aproveitamos um modelo pré-treinado para eficiência e para evitar um treinamento extensivo para este protótipo.
Banco de dados de pesquisa de similaridade vetorial:
- MILVUS: Otimizado para pesquisas de similaridade rápida e eficiente em dados vetoriais de alta dimensão.
Fluxo de trabalho
Pré-processamento da imagem: Os raios X recebidos são redimensionados e normalizados para consistência.
Extração de recursos: o modelo ResNet-50 pré-treinado (sem a camada de classificação final) transforma cada imagem de raio-x em um vetor de característica de alta dimensão.
Armazenamento vetorial: Milvus armazena os vetores de características extraídos, permitindo comparações rápidas de similaridade.
Imagem de consulta: o usuário carrega uma imagem de raios-X de consulta.
Procurar:
- O vetor de recurso da imagem de consulta é gerado.
- O Milvus realiza uma pesquisa de similaridade vetorial, encontrando as imagens visualmente mais semelhantes no conjunto de dados.
Resultados: O back-end retorna as imagens e IDs das imagens de raios-X mais semelhantes encontradas.
Frontend (mínimo para protótipo)
Uma interface da Web básica permite que os usuários enviem uma imagem e exibam as imagens de raios-X recuperadas junto com seus IDs.
Resultados
A MedSearch demonstra com sucesso os princípios principais da busca de similaridade vetorial por recuperação de imagens médicas. Os usuários podem fazer upload de uma imagem de consulta e ver imagens de raios-X visualmente semelhantes recuperadas do conjunto de dados.
Aprimoramentos futuros
- Modelo Tuneamento fino: melhore os resultados da similaridade para o domínio de raios-X ajustando o modelo Resnet-50 no conjunto de dados de raios-X.
- Pesquisa de metadados: integrar metadados (por exemplo, diagnóstico) com a busca de vetores por recuperação mais focada.
- Escalabilidade: Investigue otimizações de banco de dados e arquiteturas distribuídas para acomodar conjuntos de dados maiores.