# MultiVisionToolkit
MultiVisionToolkit is a Python package that provides tools for object detection and segmentation, specifically using the YOLOv8 model. It includes real-time detection on camera video, visualization metrics, and the ability to convert reports to document and PDF files.
## Installation
```bash
pip install multivision
```
## Usage
Object Detection with YOLOv8
![](screenshot.png)
[Detailed feature showcase with images](https://github.com/AUTOMATIC1111/stable-diffusion-webui/wiki/Features):
## Download images for created dataset
```
#download images form internet
#using class name and count for images more than 500 images for best training
from multivision.dataset import dataset as ds
class_name='dog'
count=100
ds.download_images(class_name,count)
```
## Extract imges from any video
```
from multivision.dataset import dataset as ds
video_path="video.mp4"
images_folder_path="images"
frame_strid=10
ds.extract_images_video(video_path,images_folder_path,frame_strid)
```
## download video from youtube and extract to images
```
from multivision.dataset import dataset as ds
video_url="https://www.youtube.com/shorts/6eb9-P6KHN0"
#ds.download_yt(video_url, output_path='.')
#or
output_path="images"
ds.download_yt(video_url, output_path)
```
## Annotation auto label for dataset without any manual tools
```
from multivision.annotation import autolabel as auto
ontology_dict=auto.create_ontology_dict() #create caption for custom dataset
image_folder=path_of_images_folder"
dataset_folder="dataset_folder_to_save_train,val with images labels "
auto.create_captions(ontology_dict, image_folder, dataset_folder)
```
## training custom datatset with yaml data file for detection training
```
from multivision.train import yolov8 as y8
model_det_name="yolov8n.pt"
epochs_no=5
data_yaml_path="E:/multivision/dataset/data.yaml"
y8.y8d_train(model_det_name,epochs_no,data_yaml_path)
```
## training custom datatset with yaml data file for segmentation training
```
model_seg_name="yolov8n-seg.pt"
epochs_no=10
y8.y8s_train(model_name,epochs_no,data_yaml_path)
```
## Visualization Metrics
```
from multivsion.visualize import vis as vis
vis.images_google_colab(folder_path)
vis.display_images_cv(folder_path,scale_factor)
vis.display_images_with_grid(folder_path, rows, cols)
vis.plot(annotation_path,images_dir_path,yaml_path,samples_no)
```
## Convert Report to Document and PDF
```
# Example Usage:
folder_path = "images"
output_docx = "output_document.docx"
title = "My Document Title"
author = "Your Name"
pdf_path="book.pdf"
copyright_notice = "© 2023 Falah.G.Salieh"
conclusion = "This is the conclusion of the document."
from multivision.docx import document as doc
from multivision.docx import document as pdf
doc.create_word_document(folder_path, output_docx, title, author, conclusion)
pdf.images_to_pdf(folder_path, pdf_path, title, copyright_notice)
```
## License
This project is licensed under the MIT License - see the LICENSE file for details.
## Citation
If you find MultiVisionToolkit helpful in your work, please consider citing it. You can use the following BibTeX entry:
```
@software{multivisiontoolkit,
author = {Falah.G.Salieh},
title = {MultiVisionToolkit},
year = {2023},
url = {https://github.com/falahgs/multivisiontoolkit},
}
```
Raw data
{
"_id": null,
"home_page": "https://github.com/falahgs/",
"name": "multivision",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.6",
"maintainer_email": "",
"keywords": "transformers,datasets",
"author": "Falahgs.G.Saleih",
"author_email": "falahgs07@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/37/04/6e8f1f864641d35c113b9a84148360ddbad0dabcce18b2ac15f0a662b375/multivision-0.1.9.tar.gz",
"platform": null,
"description": "# MultiVisionToolkit\r\n\r\nMultiVisionToolkit is a Python package that provides tools for object detection and segmentation, specifically using the YOLOv8 model. It includes real-time detection on camera video, visualization metrics, and the ability to convert reports to document and PDF files.\r\n\r\n## Installation\r\n\r\n```bash\r\npip install multivision\r\n```\r\n## Usage\r\nObject Detection with YOLOv8\r\n\r\n![](screenshot.png)\r\n\r\n[Detailed feature showcase with images](https://github.com/AUTOMATIC1111/stable-diffusion-webui/wiki/Features):\r\n\r\n## Download images for created dataset\r\n```\r\n#download images form internet\r\n#using class name and count for images more than 500 images for best training \r\nfrom multivision.dataset import dataset as ds\r\nclass_name='dog'\r\ncount=100\r\nds.download_images(class_name,count)\r\n```\r\n\r\n## Extract imges from any video \r\n```\r\nfrom multivision.dataset import dataset as ds\r\nvideo_path=\"video.mp4\"\r\nimages_folder_path=\"images\"\r\nframe_strid=10\r\nds.extract_images_video(video_path,images_folder_path,frame_strid)\r\n```\r\n## download video from youtube and extract to images\r\n```\r\nfrom multivision.dataset import dataset as ds\r\nvideo_url=\"https://www.youtube.com/shorts/6eb9-P6KHN0\"\r\n\r\n#ds.download_yt(video_url, output_path='.')\r\n#or\r\noutput_path=\"images\"\r\nds.download_yt(video_url, output_path)\r\n```\r\n\r\n## Annotation auto label for dataset without any manual tools\r\n```\r\nfrom multivision.annotation import autolabel as auto\r\nontology_dict=auto.create_ontology_dict() #create caption for custom dataset\r\nimage_folder=path_of_images_folder\"\r\ndataset_folder=\"dataset_folder_to_save_train,val with images labels \"\r\nauto.create_captions(ontology_dict, image_folder, dataset_folder)\r\n\r\n\r\n```\r\n\r\n## training custom datatset with yaml data file for detection training\r\n\r\n```\r\nfrom multivision.train import yolov8 as y8\r\nmodel_det_name=\"yolov8n.pt\"\r\nepochs_no=5\r\ndata_yaml_path=\"E:/multivision/dataset/data.yaml\"\r\ny8.y8d_train(model_det_name,epochs_no,data_yaml_path)\r\n```\r\n## training custom datatset with yaml data file for segmentation training\r\n\r\n```\r\n\r\nmodel_seg_name=\"yolov8n-seg.pt\"\r\nepochs_no=10\r\ny8.y8s_train(model_name,epochs_no,data_yaml_path)\r\n```\r\n\r\n\r\n## Visualization Metrics\r\n\r\n```\r\nfrom multivsion.visualize import vis as vis\r\nvis.images_google_colab(folder_path)\r\nvis.display_images_cv(folder_path,scale_factor)\r\nvis.display_images_with_grid(folder_path, rows, cols)\r\nvis.plot(annotation_path,images_dir_path,yaml_path,samples_no)\r\n```\r\n## Convert Report to Document and PDF\r\n\r\n```\r\n# Example Usage:\r\nfolder_path = \"images\"\r\noutput_docx = \"output_document.docx\"\r\ntitle = \"My Document Title\"\r\nauthor = \"Your Name\"\r\npdf_path=\"book.pdf\"\r\ncopyright_notice = \"\u00a9 2023 Falah.G.Salieh\"\r\n\r\nconclusion = \"This is the conclusion of the document.\"\r\nfrom multivision.docx import document as doc\r\nfrom multivision.docx import document as pdf\r\ndoc.create_word_document(folder_path, output_docx, title, author, conclusion)\r\npdf.images_to_pdf(folder_path, pdf_path, title, copyright_notice)\r\n```\r\n## License\r\nThis project is licensed under the MIT License - see the LICENSE file for details.\r\n\r\n## Citation\r\nIf you find MultiVisionToolkit helpful in your work, please consider citing it. You can use the following BibTeX entry:\r\n```\r\n@software{multivisiontoolkit,\r\n author = {Falah.G.Salieh},\r\n title = {MultiVisionToolkit},\r\n year = {2023},\r\n url = {https://github.com/falahgs/multivisiontoolkit},\r\n}\r\n```\r\n\r\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Create Object Segmentation Labels",
"version": "0.1.9",
"project_urls": {
"Homepage": "https://github.com/falahgs/"
},
"split_keywords": [
"transformers",
"datasets"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "047abb2d767a301211298161de15dc45fb77e131b229dc76c18d111f871a7bea",
"md5": "8fe7e4041829892f8c7f080513094f83",
"sha256": "5e50d15b63fea968dd67d8045cd8d3f75480bc307f80e84e06cfaec2008efc81"
},
"downloads": -1,
"filename": "multivision-0.1.9-py3-none-any.whl",
"has_sig": false,
"md5_digest": "8fe7e4041829892f8c7f080513094f83",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.6",
"size": 12797,
"upload_time": "2023-12-19T12:41:52",
"upload_time_iso_8601": "2023-12-19T12:41:52.681511Z",
"url": "https://files.pythonhosted.org/packages/04/7a/bb2d767a301211298161de15dc45fb77e131b229dc76c18d111f871a7bea/multivision-0.1.9-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "37046e8f1f864641d35c113b9a84148360ddbad0dabcce18b2ac15f0a662b375",
"md5": "41def959e635e6acd9ea0e235f560688",
"sha256": "c04f11109428d9ecc7f2bc2716c7b85323966275fb29cc54aa06a7cebcbbc0dd"
},
"downloads": -1,
"filename": "multivision-0.1.9.tar.gz",
"has_sig": false,
"md5_digest": "41def959e635e6acd9ea0e235f560688",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.6",
"size": 11876,
"upload_time": "2023-12-19T12:41:54",
"upload_time_iso_8601": "2023-12-19T12:41:54.710629Z",
"url": "https://files.pythonhosted.org/packages/37/04/6e8f1f864641d35c113b9a84148360ddbad0dabcce18b2ac15f0a662b375/multivision-0.1.9.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-12-19 12:41:54",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "multivision"
}