Medvision is an end-to-end solution built for a scientific institution that needed a tool for processing medical images and videos. The application enables:
- Optical flow analysis
Implements Farneback, Lucas-Kanade and deep learning-based optical flow algorithms for motion estimation. - Content-based image retrieval
Uses SIFT, ORB and CNN-based embeddings to extract features and perform similarity search on a dataset. - Object detection & recognition
Detects and recognizes patterns and objects in images/videos with state-of-the-art deep learning methods. - Video motion analysis
Processes video streams for motion tracking and analysis. - Dashboard
Visualizes statistics and results via an interactive dashboard built with Plotly Dash.
- Clone:
git clone git@github.com:avrtt/medvision.git cd medvision
- Create a virtual environment & install dependencies:
python -m venv venv source venv/bin/activate # Linux/Mac venv\Scripts\activate # Windows pip install -r requirements.txt
- Some modules (e.g., deep optical flow and CNN embeddings) use pre-trained weights. Please refer to the
config.py
file and follow the instructions to download the necessary files.
- Process an image:
python main.py --mode process_image --input path/to/image.png
- Process a video:
python main.py --mode process_video --input path/to/video.mp4
- Perform CBIR:
python main.py --mode retrieval --query path/to/query_image.png --dataset path/to/dataset
- Launch dashboard:
python main.py --mode dashboard
- [to be expanded]
.
├── README.md
├── .gitignore
├── requirements.txt
├── config.py
├── main.py
├── modules
│ ├── __init__.py
│ ├── image_processing.py
│ ├── video_processing.py
│ ├── optical_flow.py
│ ├── retrieval.py
│ ├── object_detection.py
│ └── dashboard.py
└── models
├── deep_flow_model.py
└── cnn_embedding.py
numpy
opencv-python
matplotlib
dash
flask
torch
torchvision
scikit-learn
imutils
Pillow
plotly
Contributions and suggestions are welcome.
GPL-3.0.