# ParticleAnalyzer
[](https://particleanalyzer.ru/)
[](https://t.me/particleanalyzer_bot)
[](https://pypi.org/project/particleanalyzer/)
[](https://pepy.tech/project/particleanalyzer)
<div align="left">
<a href="https://sem.rybakov-k.ru/">
<img src="https://raw.githubusercontent.com/rybakov-ks/ParticleAnalyzer/refs/heads/main/Images/Logo.png" alt="ParticleAnalyzer Logo" width="300"/>
</a>
</div>
**ParticleAnalyzer** Is A Computer Vision-Based Tool for Automatic Segmentation and Size Analysis of Nanoparticles in Scanning Electron Microscope (SEM) and Transmission Electron Microscope (TEM) Images.
---
## 🎬 Demonstration
<p align="center">
<strong>Video demonstrations:</strong><br>
<a href="https://github.com/rybakov-ks/ParticleAnalyzer/blob/main/Images/ParticleAnalyzer.mp4">▶️ Local video (MP4)</a> |
<a href="https://youtu.be/qlCuZDjDyqk">▶️ YouTube demonstration</a>
</p>
<p align="center">
<img src="https://raw.githubusercontent.com/rybakov-ks/ParticleAnalyzer/main/Images/example.gif" alt="Example" width="600">
</p>
---
## 🛠 Installation Guide
### 1. 📥 Install PyTorch with CUDA support
Make sure your system has an NVIDIA GPU with CUDA. Install [PyTorch](https://pytorch.org/get-started/locally/) using the appropriate CUDA version (e.g., CUDA 11.8):
```python
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
```
If you do not have a CUDA-capable GPU, use the CPU version instead—however, in this case, ParticleAnalyzer will run significantly slower:
```python
pip install torch torchvision torchaudio
```
### 🧪 2. Install Detectron2 (Optional)
If you want to enable advanced instance segmentation, install Detectron2:
```python
pip install 'git+https://github.com/facebookresearch/detectron2.git'
```
> [!WARNING]
> *There may be problems installing Detectron2. Use the official [documentation](https://detectron2.readthedocs.io/en/latest/tutorials/install.html).*
### 📦 3. Install ParticleAnalyzer
Finally, install ParticleAnalyzer from PyPI:
```python
pip install --upgrade ParticleAnalyzer
```
✅ Now you're ready to run the application:
```python
ParticleAnalyzer run
```
Open in browser: http://127.0.0.1:8000
You can specify the port if necessary:
```python
ParticleAnalyzer run --port 5000
```
Launch with LLM support ([OpenRouter](https://openrouter.ai/settings/keys) or [Hugging Face](https://huggingface.co/settings/tokens) API key required):
```python
ParticleAnalyzer run --port 5000 --api-key YOUR_OPENROUTER_API_KEY
```
Raw data
{
"_id": null,
"home_page": null,
"name": "ParticleAnalyzer",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.10",
"maintainer_email": "Kirill Rybakov <rybakov-ks@ya.ru>",
"keywords": "SEM, microscopy, image-analysis, particle-analysis, materials-science, nanoparticles, computer-vision, opencv, python, scientific-computing, microstructure, particle-size, image-processing, detectron2, YOLO, deep-learning, microscope-images, material-characterization, automated-measurements, research-tools",
"author": null,
"author_email": "Kirill Rybakov <rybakov-ks@ya.ru>",
"download_url": "https://files.pythonhosted.org/packages/d7/4e/5d7cd6afb52bf03a1f07606d9c84764a5f379c4abb3894b94a8f09fb9599/particleanalyzer-1.3.3.tar.gz",
"platform": null,
"description": "# ParticleAnalyzer\n\n[](https://particleanalyzer.ru/)\n[](https://t.me/particleanalyzer_bot)\n[](https://pypi.org/project/particleanalyzer/)\n[](https://pepy.tech/project/particleanalyzer)\n\n\n<div align=\"left\">\n <a href=\"https://sem.rybakov-k.ru/\">\n <img src=\"https://raw.githubusercontent.com/rybakov-ks/ParticleAnalyzer/refs/heads/main/Images/Logo.png\" alt=\"ParticleAnalyzer Logo\" width=\"300\"/>\n </a>\n</div>\n\n**ParticleAnalyzer** Is A Computer Vision-Based Tool for Automatic Segmentation and Size Analysis of Nanoparticles in Scanning Electron Microscope (SEM) and Transmission Electron Microscope (TEM) Images.\n\n---\n\n## \ud83c\udfac Demonstration\n\n<p align=\"center\">\n <strong>Video demonstrations:</strong><br>\n <a href=\"https://github.com/rybakov-ks/ParticleAnalyzer/blob/main/Images/ParticleAnalyzer.mp4\">\u25b6\ufe0f Local video (MP4)</a> | \n <a href=\"https://youtu.be/qlCuZDjDyqk\">\u25b6\ufe0f YouTube demonstration</a>\n</p>\n\n<p align=\"center\">\n <img src=\"https://raw.githubusercontent.com/rybakov-ks/ParticleAnalyzer/main/Images/example.gif\" alt=\"Example\" width=\"600\">\n</p>\n\n---\n\n## \ud83d\udee0 Installation Guide\n\n ### 1. \ud83d\udce5 Install PyTorch with CUDA support\nMake sure your system has an NVIDIA GPU with CUDA. Install [PyTorch](https://pytorch.org/get-started/locally/) using the appropriate CUDA version (e.g., CUDA 11.8):\n ```python\n pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118\n ```\nIf you do not have a CUDA-capable GPU, use the CPU version instead\u2014however, in this case, ParticleAnalyzer will run significantly slower:\n ```python\n pip install torch torchvision torchaudio\n ```\n### \ud83e\uddea 2. Install Detectron2 (Optional)\n\nIf you want to enable advanced instance segmentation, install Detectron2:\n```python\npip install 'git+https://github.com/facebookresearch/detectron2.git'\n```\n> [!WARNING]\n> *There may be problems installing Detectron2. Use the official [documentation](https://detectron2.readthedocs.io/en/latest/tutorials/install.html).*\n### \ud83d\udce6 3. Install ParticleAnalyzer\nFinally, install ParticleAnalyzer from PyPI:\n```python\npip install --upgrade ParticleAnalyzer\n```\n\u2705 Now you're ready to run the application:\n```python\nParticleAnalyzer run\n```\nOpen in browser: http://127.0.0.1:8000 \n\nYou can specify the port if necessary:\n```python\nParticleAnalyzer run --port 5000\n```\n\nLaunch with LLM support ([OpenRouter](https://openrouter.ai/settings/keys) or [Hugging Face](https://huggingface.co/settings/tokens) API key required):\n```python\nParticleAnalyzer run --port 5000 --api-key YOUR_OPENROUTER_API_KEY\n```\n",
"bugtrack_url": null,
"license": "GPL-3.0",
"summary": "SEM Image Analysis Tool",
"version": "1.3.3",
"project_urls": {
"Bug Tracker": "https://github.com/rybakov-ks/ParticleAnalyzer/issues",
"Documentation": "https://github.com/rybakov-ks/ParticleAnalyzer#readme",
"Homepage": "https://github.com/rybakov-ks/ParticleAnalyzer",
"Live Demo": "https://particleanalyzer.ru",
"Repository": "https://github.com/rybakov-ks/ParticleAnalyzer.git",
"Telegram Bot": "https://t.me/particleanalyzer_bot"
},
"split_keywords": [
"sem",
" microscopy",
" image-analysis",
" particle-analysis",
" materials-science",
" nanoparticles",
" computer-vision",
" opencv",
" python",
" scientific-computing",
" microstructure",
" particle-size",
" image-processing",
" detectron2",
" yolo",
" deep-learning",
" microscope-images",
" material-characterization",
" automated-measurements",
" research-tools"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "badd99ae08c9a650f4b363455f845e04e96ab7d847966a4827abdeb56ea2f759",
"md5": "6f9dc1e5641823d3b39a2d8e130d3e61",
"sha256": "14cbf5adb9d26c20ced2f344466859a8320920f07a306fbebcd57401ee7d138c"
},
"downloads": -1,
"filename": "particleanalyzer-1.3.3-py3-none-any.whl",
"has_sig": false,
"md5_digest": "6f9dc1e5641823d3b39a2d8e130d3e61",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.10",
"size": 1357647,
"upload_time": "2025-10-30T05:04:08",
"upload_time_iso_8601": "2025-10-30T05:04:08.769837Z",
"url": "https://files.pythonhosted.org/packages/ba/dd/99ae08c9a650f4b363455f845e04e96ab7d847966a4827abdeb56ea2f759/particleanalyzer-1.3.3-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "d74e5d7cd6afb52bf03a1f07606d9c84764a5f379c4abb3894b94a8f09fb9599",
"md5": "61b1ba48da67a814a4ee5528eddc61b1",
"sha256": "880e625cd253f18c626239931f4154bbb1cf121b02a95526a634a8a9cbbf73ad"
},
"downloads": -1,
"filename": "particleanalyzer-1.3.3.tar.gz",
"has_sig": false,
"md5_digest": "61b1ba48da67a814a4ee5528eddc61b1",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.10",
"size": 1351460,
"upload_time": "2025-10-30T05:04:10",
"upload_time_iso_8601": "2025-10-30T05:04:10.177320Z",
"url": "https://files.pythonhosted.org/packages/d7/4e/5d7cd6afb52bf03a1f07606d9c84764a5f379c4abb3894b94a8f09fb9599/particleanalyzer-1.3.3.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-10-30 05:04:10",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "rybakov-ks",
"github_project": "ParticleAnalyzer",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [
{
"name": "gradio",
"specs": [
[
"==",
"5.47.2"
]
]
},
{
"name": "gradio-rangeslider",
"specs": []
},
{
"name": "numpy",
"specs": []
},
{
"name": "pandas",
"specs": []
},
{
"name": "matplotlib",
"specs": []
},
{
"name": "plotly",
"specs": []
},
{
"name": "scipy",
"specs": []
},
{
"name": "opencv-python",
"specs": []
},
{
"name": "opencv-python-headless",
"specs": []
},
{
"name": "Pillow",
"specs": []
},
{
"name": "ultralytics",
"specs": []
},
{
"name": "sahi",
"specs": []
},
{
"name": "supervision",
"specs": []
},
{
"name": "easyocr",
"specs": []
},
{
"name": "onnxruntime",
"specs": []
},
{
"name": "huggingface_hub",
"specs": []
},
{
"name": "openai",
"specs": []
},
{
"name": "tqdm",
"specs": []
},
{
"name": "Requests",
"specs": []
}
],
"lcname": "particleanalyzer"
}