YAML Metadata Warning:empty or missing yaml metadata in repo card
Check out the documentation for more information.
NeuroScan AI
ๆบ่ฝๅปๅญฆๅฝฑๅ็บตๅ่ฏๆญ็ณป็ป
AI-Powered Longitudinal Medical Imaging Analysis Platform
ๅ่ฝ โข ๅฟซ้ๅผๅง โข ๆถๆ โข ๆผ็คบ โข API
๐ฏ ้กน็ฎ็ฎไป
NeuroScan AI ๆฏไธไธชๅฎๆด็ๅปๅญฆๅฝฑๅๆบ่ฝๅๆ็ณป็ป๏ผไธๆณจไบ่งฃๅณไธดๅบไธญๆๅ ทๆๆๆง็้ฎ้ขโโ็บตๅๆถๅบๅๆใ็ณป็ป้่ฟๅ ่ฟ็ๅพๅ้ ๅๆๆฏๅๅคง่ฏญ่จๆจกๅ๏ผๅฎ็ฐๅ จ่ชๅจ็็ ็ถ่ฟฝ่ธชใๅๅ้ๅๅๆบ่ฝๆฅๅ็ๆใ
ๆ ธๅฟไปทๅผ
| ็็น | ่งฃๅณๆนๆก |
|---|---|
| ไธๅๆถๆๅฝฑๅ้พไปฅๅฏน้ฝ | ไธค็บง้ ๅ๏ผๅๆง+้ๅๆง๏ผ๏ผไบๆฏซ็ฑณ็ฒพๅบฆ |
| ็ ็ถๅๅ้พไปฅ้ๅ | ไฝ็ด ็บงๅทฎๅผ่ฎก็ฎ๏ผRECIST 1.1 ่ชๅจ่ฏไผฐ |
| ๆฅๅๆฐๅ่ๆถ้ฟ | LLM ๆบ่ฝ็ๆ๏ผ3ๅ้ๅบๆฅๅ |
| ๆฐๆฎ้็งๆ ๅฟง | ๅฎๅ จๆฌๅฐ้จ็ฝฒ๏ผๆฐๆฎไธๅบ้ข |
โจ ๆ ธๅฟๅ่ฝ
1. ๅคๆ ผๅผๆฐๆฎๆฏๆ
- DICOM - ๆฏๆๆๆไธปๆต CT/MRI ่ฎพๅค
- NIfTI - ๆ ๅ็ฅ็ปๅฝฑๅๆ ผๅผ
- NRRD/MHA - 3D Slicer ๅ ผๅฎนๆ ผๅผ
- ่ชๅจๅ ๆฐๆฎๆๅๅๆ ๅๅ
2. ๆบ่ฝๅจๅฎๅๅฒ
- ๅบไบ MONAI ๆทฑๅบฆๅญฆไน ๆกๆถ
- ๆฏๆ 104 ็ง่งฃๅ็ปๆ
- ๅ จ่บซ CT ไธ้ฎๅๅฒ
3. ้ซ็ฒพๅบฆๅพๅ้ ๅ
- ๅๆง้ ๅ - ไฟฎๆญฃไฝไฝๅทฎๅผ
- ้ๅๆง้ ๅ - ไฟฎๆญฃๅผๅธ่ฟๅจๅ่ฝฏ็ป็ปๅฝขๅ
- ้ ๅ่ๆถ < 20 ็ง
4. ็บตๅๅๅๆฃๆต
- ไฝ็ด ็บงๅทฎๅผๅพ่ฎก็ฎ
- ๅๅๅบๅ่ชๅจ่ฏๅซ
- ็ญๅๅพๅฏ่งๅ
5. LLM ๆบ่ฝๆฅๅ
- ๆฌๅฐ้จ็ฝฒ Ollama๏ผLlama3.1/Meditron๏ผ
- ็ฌฆๅ ACR ๆ ๅ็ๆฅๅๆ ผๅผ
- ไธญ่ฑๆๅ่ฏญๆฏๆ
- RECIST 1.1 ็ๆ่ฏไผฐ
๐ฅ Hugging Face ไธ่ฝฝ
้กน็ฎๅทฒไธไผ ๅฐ Hugging Face Hub๏ผๅฏไธ้ฎไธ่ฝฝ้จ็ฝฒ๏ผ
# ๅฎ่ฃ
huggingface_hub
pip install huggingface_hub
# ไธ่ฝฝๅฎๆดไปฃ็
from huggingface_hub import snapshot_download
snapshot_download(repo_id="cyd0806/neuroscan-ai", local_dir="./NeuroScan")
# ไธ่ฝฝๆจกๅๆ้
snapshot_download(repo_id="cyd0806/neuroscan-ai-models", local_dir="./models")
# ไธ่ฝฝๆฐๆฎ้
snapshot_download(repo_id="cyd0806/neuroscan-ai-dataset", repo_type="dataset", local_dir="./data")
| ไปๅบ | ๅ ๅฎน | ้พๆฅ |
|---|---|---|
| ๐ฆ ไปฃ็ | ๅฎๆด้กน็ฎไปฃ็ | cyd0806/neuroscan-ai |
| ๐ง ๆจกๅ | MONAI ๅๅฒๆจกๅ | cyd0806/neuroscan-ai-models |
| ๐ ๆฐๆฎ | Learn2Reg ๆฐๆฎ้ | cyd0806/neuroscan-ai-dataset |
๐ ๅฟซ้ๅผๅง
็กฌไปถ้ๆฑ
NeuroScan AI ๆฏๆๅค็ง้จ็ฝฒๅบๆฏ๏ผไปฅไธๆฏไธๅไฝฟ็จๆจกๅผ็็กฌไปถ้ๆฑ๏ผ
๐ ๅฎๆต่ตๆบๆถ่ (้ซๅนถๅๅๅๆต่ฏ็ปๆ)
่ฏฆ็ปๆต่ฏๆฅๅ่ง BENCHMARK.md
ๆต่ฏ็ฏๅข:
- CPU: Intel Xeon Platinum 8350C (64ๆ ธ/128็บฟ็จ)
- ๅ ๅญ: 2TB DDR4
- GPU: NVIDIA A800-SXM4-80GB
- ๆต่ฏๆฐๆฎ: Learn2Reg Lung CT, ่พๅ ฅๅฐบๅฏธ 192ร192ร208, ๅๅท 58.5 MB
CPU ๅนถๅๆต่ฏ (้ ๅ+ๅๅๆฃๆต):
| ๅนถๅๆฐ | ๆป่ๆถ | ๅๅ้ | CPUๅณฐๅผ | CPUๅๅผ | ๅ ๅญๅข้ | ๅนถ่กๆ็ |
|---|---|---|---|---|---|---|
| 1 | 7.4s | 8.1/min | 10.3% | 1.9% | +1.0 GB | 100% |
| 2 | 7.7s | 15.6/min | 38.8% | 5.4% | +2.0 GB | 192% |
| 3 | 8.4s | 21.3/min | 39.2% | 7.4% | +3.0 GB | 262% |
| 4 | 9.1s | 26.5/min | 42.6% | 9.5% | +4.0 GB | 325% |
| 5 | 9.6s | 31.2/min | 42.0% | 11.3% | +5.0 GB | 384% |
GPU ๅนถๅๆต่ฏ (MONAIๅจๅฎๅๅฒ):
| ๅนถๅๆฐ | ๆป่ๆถ | GPUๆพๅญๅณฐๅผ | GPUๅฉ็จ็ | CPUๅณฐๅผ |
|---|---|---|---|---|
| 1 | 8.2s | 9.0 GB | 100% | 37.5% |
| 2 | 8.5s | 15.0 GB | 100% | 5.8% |
ๅไปปๅก่ๆถๅ่งฃ:
| ้ถๆฎต | CPU้ ๅๆต็จ | GPUๅๅฒๆต็จ |
|---|---|---|
| ๆฐๆฎๅ ่ฝฝ | 0.1s (1%) | 0.1s (1%) |
| ๅๆง้ ๅ | 1.1s (15%) | - |
| ้ๅๆง้ ๅ | 6.2s (84%) | - |
| ๆจกๅๆจ็ | - | 8.1s (99%) |
| ๆป่ฎก | 7.4s | 8.2s |
๐ ไฝฟ็จๅบๆฏๅฏน็ ง่กจ
| ๅ่ฝๆจกๅ | CPU | ๅ ๅญ | GPU ๆพๅญ | ่ฏดๆ |
|---|---|---|---|---|
| ๐ ๆฐๆฎๅ ่ฝฝ (DICOM/NIfTI) | 2 ๆ ธ | 2 GB | ๆ ้ | ๅบ็กๅ่ฝ |
| ๐ ๅพๅ้ ๅ (ๅๆง+้ๅๆง) | 4 ๆ ธ | 4 GB | ๆ ้ | SimpleITK CPU ่ฎก็ฎ |
| ๐ ๅๅๆฃๆต | 2 ๆ ธ | 2 GB | ๆ ้ | NumPy ่ฎก็ฎ |
| ๐ง ๅจๅฎๅๅฒ (MONAI) | 4 ๆ ธ | 8 GB | 9-12 GB | ๆทฑๅบฆๅญฆไน ๆจ็ |
| ๐ฌ LLM ๆฅๅ (7Bๆจกๅ) | 4 ๆ ธ | 8 GB | 4-6 GB | Ollama ๆจ็ |
| ๐ฌ LLM ๆฅๅ (3Bๆจกๅ) | 2 ๆ ธ | 4 GB | 2-4 GB | ่ฝป้็บงๆจกๅ |
๐ฅ๏ธ ๆจ่้ ็ฝฎๆนๆก
| ๆนๆก | CPU | ๅ ๅญ | GPU | ๅญๅจ | ้็จๅบๆฏ |
|---|---|---|---|---|---|
| ๐ก ๅ ฅ้จ็ | 4 ๆ ธ | 8 GB | ๆ | 20 GB | ไป ้ ๅ+ๅๅๆฃๆต๏ผๆ AI ๅ่ฝ |
| โก ๆ ๅ็ | 8 ๆ ธ | 16 GB | RTX 3060 (12GB) | 50 GB | ๅฎๆดๅ่ฝ๏ผไฝฟ็จ 3B LLM |
| ๐ ไธไธ็ | 16 ๆ ธ | 32 GB | RTX 4090 (24GB) | 100 GB | ้ซๆง่ฝ๏ผๅๅฒ+8B LLM |
| ๐ข ไผไธ็ | 32 ๆ ธ+ | 64 GB+ | A100 (40GB+) | 500 GB+ | ๆน้ๅค็๏ผๅค็จๆท |
๐ฐ ไบๆๅกๅจ็ง็จๅปบ่ฎฎ
| ไบๆๅกๅ | ๆจ่ๆบๅ | ้ ็ฝฎ | ๆ่ดน็จไผฐ็ฎ |
|---|---|---|---|
| AWS | g4dn.xlarge | 4C16G + T4 16GB | ~$380/ๆ |
| ้ฟ้ไบ | ecs.gn6i-c4g1.xlarge | 4C15G + T4 16GB | ~ยฅ2500/ๆ |
| AutoDL | RTX 3090 | 4C24G + RTX 3090 24GB | ~ยฅ2.5/ๆถ |
| ๆจ่ๅ ฅ้จ | AutoDL RTX 3060 | 4C16G + RTX 3060 12GB | ~ยฅ1.2/ๆถ |
๐ก ็้ฑๅปบ่ฎฎ: ๅผๅๆต่ฏ้ถๆฎตๆจ่ไฝฟ็จ AutoDL ็ญๆๆถ่ฎก่ดนๅนณๅฐ๏ผๆญฃๅผ้จ็ฝฒๅ่่ๅ ๆใ
๐ฆ ็ฃ็็ฉบ้ด้ๆฑ
| ็ปไปถ | ๅคงๅฐ | ่ฏดๆ |
|---|---|---|
| ไปฃ็ ไปๅบ | ~500 KB | Git clone |
| Python ไพ่ต | ~5 GB | pip install |
| MONAI ๅๅฒๆจกๅ | ~12 GB | ่ชๅจไธ่ฝฝ |
| Ollama LLM (7B) | ~5 GB | ollama pull |
| ็คบไพๆฐๆฎ้ | ~300 MB | Learn2Reg |
| ๆป่ฎก | ~25 GB | ๆๅฐๅฎ่ฃ |
็ณป็ป่ฆๆฑ
| ็ปไปถ | ๆไฝ้ ็ฝฎ | ๆจ่้ ็ฝฎ |
|---|---|---|
| OS | Ubuntu 20.04+ / Windows 10 | Ubuntu 22.04 LTS |
| Python | 3.9+ | 3.11 |
| CUDA | 11.8+ (ๅฆไฝฟ็จGPU) | 12.0+ |
| Docker | 20.10+ (ๅฏ้) | 24.0+ |
ๅฎ่ฃ ๆญฅ้ชค
# 1. ๅ
้้กน็ฎ
git clone https://github.com/ydchen0806/NeuronScanAI.git
cd NeuronScanAI
# 2. ๅๅปบ่ๆ็ฏๅข
conda create -n neuroscan python=3.11 -y
conda activate neuroscan
# 3. ๅฎ่ฃ
ไพ่ต
pip install -r requirements.txt
# 4. ไธ่ฝฝ็คบไพๆฐๆฎ
python scripts/download_datasets.py --dataset learn2reg
# 5. ้
็ฝฎไธญๆๅญไฝ๏ผๅฏ้๏ผ
python scripts/setup_fonts.py
# 6. ๅฏๅจๆๅก
./start_demo.sh
ไฝฟ็จๆนๅผ
# ๅฎๆดๅฏๅจ๏ผๆจ่๏ผ
./start_demo.sh
# ไป
ๅฏๅจ API ๅ็ซฏ
./start_demo.sh api
# ไป
ๅฏๅจๅ็ซฏ็้ข
./start_demo.sh streamlit
# ไธ่ฝฝๆฐๆฎ้
./start_demo.sh download
# ่ฟ่กๅ็ซฏ่ฐ่ฏ
./start_demo.sh debug
่ฎฟ้ฎๅฐๅ๏ผ
- ๐ฅ๏ธ Web ็้ข๏ผhttp://localhost:8501
- ๐ก API ๆๆกฃ๏ผhttp://localhost:8000/docs
๐๏ธ ๆๆฏๆถๆ
๐ ๆถๆๆๆฌๆ่ฟฐ๏ผ็นๅปๅฑๅผ๏ผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ NeuroScan AI โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ โ
โ โ Streamlit โ โ FastAPI โ โ Ollama โ โ
โ โ Frontend โโโโ Backend โโโโ LLM โ โ
โ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ Core Services โ
โ โโโโโโโโโโโ โโโโโโโโโโโ โโโโโโโโโโโ โโโโโโโโโโโ โ
โ โ DICOM โ โ Segment โ โRegister โ โ Report โ โ
โ โ Loader โ โ MONAI โ โ SimpleITKโ โGeneratorโ โ
โ โโโโโโโโโโโ โโโโโโโโโโโ โโโโโโโโโโโ โโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ PyTorch / MONAI / SimpleITK / NiBabel โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
้กน็ฎ็ปๆ
NeuroScan/
โโโ app/ # ๆ ธๅฟๅบ็จ
โ โโโ api/ # REST API
โ โโโ services/ # ไธๅกๆๅก
โ โ โโโ dicom/ # DICOM ๅค็
โ โ โโโ segmentation/ # ๅจๅฎๅๅฒ
โ โ โโโ registration/ # ๅพๅ้
ๅ
โ โ โโโ analysis/ # ๅๅๆฃๆต
โ โ โโโ report/ # ๆฅๅ็ๆ
โ โโโ agents/ # LLM Agents
โโโ scripts/ # ๅทฅๅ
ท่ๆฌ
โโโ data/ # ๆฐๆฎ็ฎๅฝ
โ โโโ raw/ # ๅๅงๆฐๆฎ
โ โโโ processed/ # ๅค็ๅๆฐๆฎ
โโโ models/ # AI ๆจกๅ
โโโ streamlit_app.py # Web ๅ็ซฏ
โโโ requirements.txt # Python ไพ่ต
๐ฌ ๆผ็คบ
๐ฅ ็ๅฎๆต่ฏ็ปๆ
ไปฅไธๆฏๅบไบ Learn2Reg ่บ้จ CT ๆฐๆฎ้ ็ๅฎ้ ๆต่ฏ็ปๆ๏ผ
ๅๅๆฃๆต็ญๅๅพ - ็บข่ฒ่กจ็คบๅฏๅบฆๅขๅ ๏ผ่่ฒ่กจ็คบๅฏๅบฆๅๅฐ
๐ ๆง่ฝๆต่ฏๆฐๆฎ
| ๆต่ฏ้กน็ฎ | ็ปๆ | ่ๆถ |
|---|---|---|
| NIfTI ๆฐๆฎๅ ่ฝฝ | โ ๆๅ | < 1s |
| ๅๆง้ ๅ (L1) | โ metric: -0.286 | 0.9s |
| ้ๅๆง้ ๅ (L2) | โ metric: -0.424 | 10.3s |
| ๆป้ ๅๆถ้ด | โ ไบๆฏซ็ฑณ็ฒพๅบฆ | 11.3s |
| ๅๅๆฃๆต | โ 6,239,210 ไฝ็ด | < 1s |
| LLM ๆฅๅ็ๆ | โ Ollama llama3.1:8b | ~120s |
๐ ็คบไพๅๆๆฅๅ
# CT ็บตๅๅฏนๆฏๅๆๆฅๅ
**ๆฃ่
ID**: TEST001
**ๆฃๆฅ้ด้**: ็บฆ 7 ไธชๆ
## ๅฎ้ๆต้
| ๆๆ | ๅบ็บฟ | ้่ฎฟ | ๅๅ |
|------|------|------|------|
| ๆๅคง็ดๅพ (mm) | 15.5 | 12.3 | -20.6% |
| ไฝ็งฏ (cc) | 1.20 | 0.80 | -33.3% |
## RECIST 1.1 ่ฏไผฐ
**่ฏไผฐ็ปๆ**: ๐ **SD (็พ็
็จณๅฎ)**
- ๅฎ้
ๅๅ: -20.6%
- ่ฏไผฐไพๆฎ: ไปไบ PR ๅ PD ไน้ด
## ไธดๅบๅปบ่ฎฎ
1. ็ปง็ปญๅฝๅๆฒป็ๆนๆกๆ่งๅฏ
2. ๅปบ่ฎฎ 2-3 ไธชๆๅๅคๆฅ
3. ๅฎๆ็ๆต่ฟ็คๆ ๅฟ็ฉ
ๅ ็ฝฎ็คบไพๆฐๆฎ
้กน็ฎๅ ๅซ Learn2Reg ๅ ฌๅผๆฐๆฎ้๏ผ20 ๅฏน่บ้จ CT๏ผ๏ผๅฏ็ดๆฅไฝ้ช็ณป็ปๅ่ฝ๏ผ
# ไธ่ฝฝ็คบไพๆฐๆฎ๏ผ็บฆ 300MB๏ผ
python scripts/download_datasets.py --dataset learn2reg
# ่ฟ่กๅฎๆดๅ็ซฏๆต่ฏ
python scripts/debug_backend.py
# ๅฏๅจ Web ็้ข
./start_demo.sh
ๆฏๆ็ๆฐๆฎ้
| ๆฐๆฎ้ | ๅคงๅฐ | ่ฏดๆ |
|---|---|---|
| Learn2Reg Lung CT | ~300 MB | ่บ้จๅธๆฐ/ๅผๆฐ้ ๅฏน โญๆจ่ |
| RIDER Lung CT | ~43 GB | ่บ็้ๅคๆซๆ |
| NLST | ~12 TB | ๅฝๅฎถ่บ็็ญๆฅ่ฏ้ช |
ๆฌๅฐ LLM ๆจกๅ
็ณป็ปๆฏๆไปฅไธๆฌๅฐ้จ็ฝฒ็ๅปๅญฆ LLM๏ผ
| ๆจกๅ | ๅคงๅฐ | ็จ้ |
|---|---|---|
| llama3.1:8b | 4.9 GB | ้็จๅปๅญฆๆฅๅ โญๆจ่ |
| meditron:7b | 3.8 GB | ๅปๅญฆไธ็จๆจกๅ |
| medllama2:7b | 3.8 GB | ๅปๅญฆๅฏน่ฏๆจกๅ |
๐ก API ๆๆกฃ
ไธไผ ๆซๆ
POST /api/v1/ingest
Content-Type: multipart/form-data
# ๅๅบ
{
"scan_id": "uuid",
"message": "ไธไผ ๆๅ",
"metadata": {...}
}
็บตๅๅๆ
POST /api/v1/analyze/longitudinal
{
"baseline_scan_id": "uuid1",
"followup_scan_id": "uuid2",
"region_of_interest": "chest"
}
# ๅๅบ
{
"task_id": "uuid",
"status": "processing"
}
่ทๅๆฅๅ
GET /api/v1/reports/{task_id}
# ๅๅบ
{
"status": "completed",
"markdown_report": "...",
"key_images": [...]
}
ๅฎๆด API ๆๆกฃ๏ผhttp://localhost:8000/docs
โ๏ธ ้ ็ฝฎ
็ฏๅขๅ้
# LLM ้
็ฝฎ
LLM_MODEL=llama3.1:8b
LLM_TEMPERATURE=0.1
# ไปฃ็้
็ฝฎ๏ผไธ่ฝฝๆฐๆฎๆถไฝฟ็จ๏ผ
http_proxy=http://127.0.0.1:7890
https_proxy=http://127.0.0.1:7890
LLM ๆจกๅ้ๆฉ
| ๆจกๅ | ๆพๅญ้ๆฑ | ็น็น |
|---|---|---|
| llama3.1:8b | 8 GB | ้็จ่ฝๅๅผบ |
| llama3.2:3b | 4 GB | ่ฝป้็บง |
| meditron:7b | 8 GB | ๅปๅญฆไธ็จ |
๐ ๏ธ ๅผๅ
่ฟ่กๆต่ฏ
# ๅ็ซฏ่ฐ่ฏ
python scripts/debug_backend.py
# ๅๅ
ๆต่ฏ
python -m pytest test_case/
ๆธ ็้กน็ฎ
# ๆธ
็ๆๆไธดๆถๆไปถ
python scripts/cleanup.py --all
# ไป
ๆธ
็็ผๅญ
python scripts/cleanup.py --cache
# ๆฅ็็ฃ็ไฝฟ็จ
python scripts/cleanup.py --stats
๐ ่ฎธๅฏ่ฏ
MIT License - ่ฏฆ่ง LICENSE
๐ค ่ดก็ฎ
ๆฌข่ฟๆไบค Issue ๅ Pull Request๏ผ
NeuroScan AI - ่ฎฉๅปๅญฆๅฝฑๅๅๆๆดๆบ่ฝ
Making Medical Imaging Analysis Smarter