Skip to main content

🏥 MedVision Framework

Sistema Multimodal Inteligente para Análise Automatizada de Exames de Imagem

Python Version License PyPI Code style: black

Features • Instalação • Quickstart • Documentação • Exemplos


📋 Sobre

MedVision Framework é uma biblioteca Python de última geração para análise automatizada de imagens médicas, combinando modelos de visão computacional do HuggingFace com inteligência conversacional através da API Groq. Desenvolvido para pesquisadores, médicos e desenvolvedores que precisam de análise médica assistida por IA de forma rápida e confiável.

🎯 Diferenciais

  • 🤖 Modelos State-of-the-Art: Integração nativa com HuggingFace Transformers Hub
  • 💬 IA Conversacional: Agente inteligente para discussão de diagnósticos e educação médica
  • 🎨 Interface Web Moderna: Interface Gradio profissional pronta para produção
  • 🔌 Arquitetura Plugável: Sistema de plugins extensível para diferentes especialidades médicas
  • 📊 Análise Multimodal: Suporte para múltiplos formatos de imagem médica (DICOM, PNG, JPG, etc.)
  • ⚡ Alta Performance: Otimizado com PyTorch para inferência rápida
  • 📦 Pronto para Produção: API REST, CLI e interface web incluídas

✨ Features

🔬 Análise de Imagens

  • ✅ Dermatologia: Classificação de lesões de pele usando DINOv2 fine-tuned
  • 🔜 Radiologia: Análise de raios-X de tórax (em breve)
  • 🔜 Patologia: Análise histopatológica (em breve)
  • 🔜 Oftalmologia: Detecção de retinopatia diabética (em breve)

💡 Funcionalidades

  • Análise em Batch: Processe múltiplas imagens simultaneamente
  • Confidence Scoring: Scores de confiança para cada predição
  • Explicabilidade: Visualização de regiões de interesse (atenção do modelo)
  • Base de Conhecimento: Informações detalhadas sobre doenças e condições
  • Chat Médico: Converse com IA sobre diagnósticos e tratamentos
  • Export de Resultados: JSON, CSV, PDF com relatórios detalhados

🚀 Instalação

Via pip (Recomendado)

pip install medvision-framework

Instalação Local (Desenvolvimento)

# Clone o repositório
git clone https://github.com/seu-usuario/MedVision.git
cd MedVision

# Crie ambiente virtual
python -m venv venv
source venv/bin/activate  # Linux/Mac
# ou
venv\Scripts\activate  # Windows

# Instale dependências
pip install -r requirements.txt

# Instale em modo desenvolvimento
pip install -e .

🔑 Configuração

O MedVision requer uma chave API do Groq para funcionalidades conversacionais:

# Configure a variável de ambiente
export GROQ_API_KEY="sua-chave-aqui"

# Ou crie um arquivo .env
echo "GROQ_API_KEY=sua-chave-aqui" > .env

Obtenha sua chave gratuita em: https://console.groq.com


⚡ Quickstart

1️⃣ Uso Programático

from medvision import MedVisionFramework

# Inicialize o framework
framework = MedVisionFramework(groq_api_key="sua-chave")

# Analise uma imagem
result = framework.analyze(
    image_path="skin_lesion.jpg",
    analyzer_name="dermatology",
    top_k=3
)

# Visualize resultados
print(f"Diagnóstico: {result['primary_diagnosis']}")
print(f"Confiança: {result['confidence']:.2%}")
print(f"Diagnósticos alternativos: {result['alternative_diagnoses']}")

2️⃣ Interface Web (Gradio)

from medvision import launch_app

# Lança interface web em localhost:7860
launch_app(
    groq_api_key="sua-chave",
    share=False,  # True para criar link público
    server_port=7860
)

Ou use o launcher pronto:

python examples/launch_gradio_app.py

3️⃣ API REST (FastAPI)

# Inicie o servidor (em breve)
medvision serve --port 8000 --groq-key sua-chave

📚 Documentação

Estrutura do Resultado

{
    "primary_diagnosis": str,          # Diagnóstico principal
    "confidence": float,               # Confiança (0-1)
    "alternative_diagnoses": [         # Diagnósticos alternativos
        {
            "label": str,
            "confidence": float,
            "description": str
        }
    ],
    "attention_map": numpy.ndarray,    # Mapa de atenção do modelo
    "metadata": {
        "model": str,                  # Modelo utilizado
        "analyzer": str,               # Analisador usado
        "timestamp": str,              # Timestamp da análise
        "processing_time": float       # Tempo de processamento (s)
    }
}

Plugins Disponíveis

🩺 Dermatology Analyzer

from medvision.plugins import DermatologyAnalyzer

analyzer = DermatologyAnalyzer()
result = analyzer.analyze("skin_image.jpg", top_k=5)

Doenças Detectadas:

  • Melanoma
  • Carcinoma Basocelular
  • Carcinoma Espinocelular
  • Queratose Actínica
  • Nevus Benigno
  • E mais...

Modelo Base: DINOv2 (facebook/dinov2-base) fine-tuned em HAM10000 dataset


🎨 Interface Gradio

A interface web do MedVision oferece 4 módulos principais:

📸 Análise de Imagem

  • Upload de imagens médicas
  • Seleção de analisador especializado
  • Visualização de resultados com mapas de atenção
  • Exportação de relatórios

💬 Chat Médico

  • Conversação natural sobre diagnósticos
  • Perguntas sobre sintomas e tratamentos
  • Histórico de conversação persistente
  • Respostas baseadas em guidelines médicos

📖 Base de Conhecimento

  • Informações detalhadas sobre doenças
  • Sintomas, causas, tratamentos
  • Recomendações baseadas em evidências
  • Referências bibliográficas

ℹ️ Sobre

  • Documentação completa
  • Guias de uso
  • Informações sobre modelos

🔧 Exemplos Avançados

Análise em Batch

from medvision import MedVisionFramework
from pathlib import Path

framework = MedVisionFramework(groq_api_key="sua-chave")

# Processar múltiplas imagens
image_dir = Path("./medical_images")
results = []

for image_path in image_dir.glob("*.jpg"):
    result = framework.analyze(
        image_path=str(image_path),
        analyzer_name="dermatology"
    )
    results.append(result)

# Salvar resultados
import json
with open("batch_results.json", "w") as f:
    json.dump(results, f, indent=2)

Chat Contextual

# Inicialize com contexto de análise
result = framework.analyze("lesion.jpg", "dermatology")

# Use o chat para discutir o resultado
response = framework.chat(
    f"Explique o diagnóstico de {result['primary_diagnosis']} "
    f"com confiança de {result['confidence']:.1%}"
)
print(response)

# Continue a conversa
response = framework.chat(
    "Quais são as opções de tratamento disponíveis?"
)
print(response)

Criando um Plugin Customizado

from medvision import BaseAnalyzer, registry
from transformers import AutoModel, AutoImageProcessor

class MyCustomAnalyzer(BaseAnalyzer):
    """Analisador customizado para sua especialidade."""

    def load_model(self):
        self.model = AutoModel.from_pretrained("seu-modelo")
        self.processor = AutoImageProcessor.from_pretrained("seu-modelo")

    def analyze(self, image_path: str, top_k: int = 3):
        # Sua lógica de análise aqui
        ...
        return {
            "primary_diagnosis": diagnosis,
            "confidence": confidence,
            "alternative_diagnoses": alternatives
        }

# Registre seu plugin
registry.register("my_specialty", MyCustomAnalyzer)

# Use normalmente
framework = MedVisionFramework()
result = framework.analyze("image.jpg", "my_specialty")

🏗️ Arquitetura

medvision/
├── core/                    # Componentes centrais
│   ├── base_analyzer.py    # Classe base para analisadores
│   ├── model_registry.py   # Sistema de registro de plugins
│   └── exceptions.py       # Exceções customizadas
├── plugins/                 # Analisadores especializados
│   ├── dermatology.py      # Análise dermatológica
│   └── ...                 # Outros plugins
├── chat/                    # Sistema conversacional
│   └── conversational_agent.py
├── ui/                      # Interfaces de usuário
│   └── gradio_interface.py # Interface Gradio
├── api/                     # API REST (em breve)
├── cli/                     # Interface linha de comando (em breve)
└── framework.py            # Classe principal

Fluxo de Análise

graph LR
    A[Imagem] --> B[Framework]
    B --> C[Registry]
    C --> D[Plugin Específico]
    D --> E[Modelo HuggingFace]
    E --> F[Predições]
    F --> G[Pós-processamento]
    G --> H[Resultado Final]
    H --> I[Chat/UI/API]

📊 Performance

Operação Tempo Médio GPU CPU
Análise Dermatologia 2.3s RTX 3080 Intel i7
Inferência do Modelo 1.1s RTX 3080 Intel i7
Chat Response 0.8s N/A Intel i7
Batch (10 imgs) 15s RTX 3080 Intel i7

🛣️ Roadmap

v0.2.0 (Q1 2025)

  • Plugin de Radiologia (X-Ray Analysis)
  • API REST completa com FastAPI
  • CLI interativa
  • Suporte a DICOM avançado

v0.3.0 (Q2 2025)

  • Plugin de Patologia (Histologia)
  • Detecção de múltiplas lesões em uma imagem
  • Fine-tuning automático de modelos
  • Dashboard analytics

v1.0.0 (Q3 2025)

  • Sistema de autenticação e autorização
  • Integração com PACS
  • Suporte multi-idioma
  • Certificação regulatória

🤝 Contribuindo

Contribuições são bem-vindas! Por favor:

  1. Fork o projeto
  2. Crie uma branch para sua feature (git checkout -b feature/MinhaFeature)
  3. Commit suas mudanças (git commit -m 'Adiciona MinhaFeature')
  4. Push para a branch (git push origin feature/MinhaFeature)
  5. Abra um Pull Request

Guidelines

  • Siga o estilo de código PEP 8
  • Adicione testes para novas funcionalidades
  • Atualize a documentação
  • Mantenha compatibilidade com Python 3.9+

📄 Licença

Este projeto está licenciado sob a Licença MIT - veja o arquivo LICENSE para detalhes.


⚠️ Disclaimer Médico

IMPORTANTE: Este framework é uma ferramenta de auxílio à pesquisa e educação médica. NÃO substitui o julgamento clínico profissional. Sempre consulte profissionais de saúde qualificados para diagnósticos e tratamentos médicos. Os resultados devem ser validados por especialistas antes de qualquer decisão clínica.


📞 Suporte e Contato


🙏 Agradecimentos

  • HuggingFace pela infraestrutura de modelos
  • Groq pela API de IA conversacional
  • Gradio pela framework de UI
  • PyTorch pelo framework de deep learning
  • Comunidade open-source de ML médico

Desenvolvido com ❤️ para a comunidade médica e de pesquisa

⭐ Se este projeto foi útil, considere dar uma estrela!

⬆ Voltar ao topo

Release files for medvision-framework 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for medvision-framework 0.1.0
File Size Uploaded
medvision_framework-0.1.0.tar.gz 16.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for medvision-framework 0.1.0
File Interpreter ABI Platform
medvision_framework-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 28.0 kB

Release files / medvision_framework-0.1.0.tar.gz

Download URL medvision_framework-0.1.0.tar.gz
Size 16.7 kB
Tags Source
SHA-256 checksum
How to use checksums
3c5c8b40e9541aac41e19e587d3153b165c743d9a3a37d7f9d4135067bb55315
BLAKE2b-256 checksum
How to use checksums
4582b1899e6c2c33f9184f38455f11526077f310fd996d63bd3a50c66a8a38cb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.9

Release files / medvision_framework-0.1.0-py3-none-any.whl

Download URL medvision_framework-0.1.0-py3-none-any.whl
Size 11.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
4c39a8e21d4faee00793b532b9869c9c8be28a2748726ab5041ba8eeaef2ba65
BLAKE2b-256 checksum
How to use checksums
fc45122fe0798c5dcbd1ac57da1755597a34ae04e912d737ba45dcb3d8a73c90
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.9

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page