
[](https://badge.fury.io/py/det_executor)

# DetExecutor
Python package with latest versions of YOLO architecture for training and inference
## Install
Installing is quite simple, just use pip:
```shell
pip3 install det_executor
```
## Train
Training support is still in progress!
## Inference
### Get available models
```python
from det_executor import DetExecutor
# print list of supported arches
DetExecutor.list_arch()
```
<details>
<summary>Output</summary>
```JSON
{
"yolov7": YoloArch(
version="7",
img_size=(640, 640),
size="75.6MB",
params="37.6M",
flops="",
module="yolov7_package",
load_link="yolov7.pt",
trainable=False,
traced=False,
),
"yolov7x": YoloArch(
version="7",
img_size=(640, 640),
size="75.6MB",
params="71.3M",
flops="",
module="yolov7_package",
load_link="yolov7x.pt",
trainable=False,
traced=False,
),
"yolov7-w6": YoloArch(
version="7",
img_size=(1280, 1280),
size="141.3MB",
params="70.4M",
flops="",
module="yolov7_package",
load_link="yolov7-w6.pt",
trainable=False,
traced=False,
),
"yolov7-e6": YoloArch(
version="7",
img_size=(1280, 1280),
size="195.0MB",
params="97.2M",
flops="",
module="yolov7_package",
load_link="yolov7-e6.pt",
trainable=False,
traced=False,
),
"yolov7-d6": YoloArch(
version="7",
img_size=(1280, 1280),
size="286.3MB",
params="133.8M",
flops="",
module="yolov7_package",
load_link="yolov7-d6.pt",
trainable=False,
traced=False,
),
"yolov7-e6e": YoloArch(
version="7",
img_size=(1280, 1280),
size="304.4MB",
params="151.8M",
flops="",
module="yolov7_package",
load_link="yolov7-e6e.pt",
trainable=False,
traced=False,
),
"yolov7-traced": YoloArch(
version="7",
img_size=(640, 640),
size="74.3MB",
params="36.9M",
flops="",
module="yolov7_package",
load_link="1L8mPcUvabUscEk6Nr8ck5EFgopgPAMDW",
trainable=False,
traced=True,
),
"yolov7-tiny": YoloArch(
version="7",
img_size=(640, 640),
size="12.6MB",
params="6.2M",
flops="",
module="yolov7_package",
load_link="yolov7-tiny.pt",
trainable=False,
traced=False,
),
"yolov7-tiny-traced": YoloArch(
version="7",
img_size=(640, 640),
size="12.7MB",
params="6.2M",
flops="",
module="yolov7_package",
load_link="18zJyljtolPENDI_kFw3FlRFnQTnaLuDF",
trainable=False,
traced=True,
),
"yolov8n": YoloArch(
version="8",
img_size=(640, 640),
size="6.5MB",
params="3.2M",
flops="",
module="yolov8",
load_link="yolov8n.pt",
trainable=False,
traced=False,
),
"yolov8s": YoloArch(
version="8",
img_size=(640, 640),
size="22.6MB",
params="11.2M",
flops="",
module="yolov8",
load_link="yolov8s.pt",
trainable=False,
traced=False,
),
"yolov8m": YoloArch(
version="8",
img_size=(640, 640),
size="52.1MB",
params="25.9M",
flops="",
module="yolov8",
load_link="yolov8m.pt",
trainable=False,
traced=False,
),
"yolov8l": YoloArch(
version="8",
img_size=(640, 640),
size="87.8MB",
params="43.7M",
flops="",
module="yolov8",
load_link="yolov8l.pt",
trainable=False,
traced=False,
),
"yolov8x": YoloArch(
version="8",
img_size=(640, 640),
size="136.9MB",
params="68.2M",
flops="",
module="yolov8",
load_link="yolov8x.pt",
trainable=False,
traced=False,
),
"yolos-tiny": YoloArch(
version="s",
img_size=None,
size="136.9MB",
params="6.5M",
flops="512x*>18.8G|256x*>3.4G",
module="yolos",
load_link="hustvl/yolos-tiny",
trainable=False,
traced=False,
),
}
```
</details>
<br/>
### Loading model
```python
from det_executor import DetExecutor
# loading model
name = 'yolov7'
ex = DetExecutor(name)
```
### Predict and draw
```python
from det_executor import DetExecutor, draw_on_image
import cv2
# loading model
name = 'yolov7'
ex = DetExecutor(name)
# loading image
img = ex.load_image('test/img.jpg')
# or img = cv2.imread('test/img.jpg')
# predict
classes, boxes, scores = ex.predict(img)
# draw
img = draw_on_image(img, boxes[0], scores[0], classes[0])
cv2.imshow("image", img)
cv2.waitKey()
```
## Roadmap
- [ ] Training pipeline for all models
- [ ] Load from custom weights
- [ ] More models
## Citation
```
@article{wang2022yolov7,
title={{YOLOv7}: Trainable bag-of-freebies sets new state-of-the-art for real-time object detectors},
author={Wang, Chien-Yao and Bochkovskiy, Alexey and Liao, Hong-Yuan Mark},
journal={arXiv preprint arXiv:2207.02696},
year={2022}
}
```
```
@misc{fang2021look,
title={You Only Look at One Sequence: Rethinking Transformer in Vision through Object Detection},
author={Yuxin Fang and Bencheng Liao and Xinggang Wang and Jiemin Fang and Jiyang Qi and Rui Wu and Jianwei Niu and Wenyu Liu},
year={2021},
eprint={2106.00666},
archivePrefix={arXiv},
primaryClass={cs.CV}
}
```
Raw data
{
"_id": null,
"home_page": "https://github.com/maxwolf8852/DetExecutor.git",
"name": "det-executor",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.6",
"maintainer_email": "",
"keywords": "",
"author": "Maxim Volkovskiy",
"author_email": "maxwolf8852@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/7b/4f/aa99baf2d68347ec3a01f1a6289f14eb8d27f16b70bda20be79139df1d78/det_executor-0.0.9.tar.gz",
"platform": null,
"description": "\n[](https://badge.fury.io/py/det_executor)\n\n\n# DetExecutor\nPython package with latest versions of YOLO architecture for training and inference\n## Install\nInstalling is quite simple, just use pip:\n```shell\npip3 install det_executor\n```\n## Train\nTraining support is still in progress!\n## Inference\n\n### Get available models\n```python\nfrom det_executor import DetExecutor\n# print list of supported arches\nDetExecutor.list_arch()\n```\n<details>\n <summary>Output</summary>\n\n```JSON\n{\n \"yolov7\": YoloArch(\n version=\"7\",\n img_size=(640, 640),\n size=\"75.6MB\",\n params=\"37.6M\",\n flops=\"\",\n module=\"yolov7_package\",\n load_link=\"yolov7.pt\",\n trainable=False,\n traced=False,\n ),\n \"yolov7x\": YoloArch(\n version=\"7\",\n img_size=(640, 640),\n size=\"75.6MB\",\n params=\"71.3M\",\n flops=\"\",\n module=\"yolov7_package\",\n load_link=\"yolov7x.pt\",\n trainable=False,\n traced=False,\n ),\n \"yolov7-w6\": YoloArch(\n version=\"7\",\n img_size=(1280, 1280),\n size=\"141.3MB\",\n params=\"70.4M\",\n flops=\"\",\n module=\"yolov7_package\",\n load_link=\"yolov7-w6.pt\",\n trainable=False,\n traced=False,\n ),\n \"yolov7-e6\": YoloArch(\n version=\"7\",\n img_size=(1280, 1280),\n size=\"195.0MB\",\n params=\"97.2M\",\n flops=\"\",\n module=\"yolov7_package\",\n load_link=\"yolov7-e6.pt\",\n trainable=False,\n traced=False,\n ),\n \"yolov7-d6\": YoloArch(\n version=\"7\",\n img_size=(1280, 1280),\n size=\"286.3MB\",\n params=\"133.8M\",\n flops=\"\",\n module=\"yolov7_package\",\n load_link=\"yolov7-d6.pt\",\n trainable=False,\n traced=False,\n ),\n \"yolov7-e6e\": YoloArch(\n version=\"7\",\n img_size=(1280, 1280),\n size=\"304.4MB\",\n params=\"151.8M\",\n flops=\"\",\n module=\"yolov7_package\",\n load_link=\"yolov7-e6e.pt\",\n trainable=False,\n traced=False,\n ),\n \"yolov7-traced\": YoloArch(\n version=\"7\",\n img_size=(640, 640),\n size=\"74.3MB\",\n params=\"36.9M\",\n flops=\"\",\n module=\"yolov7_package\",\n load_link=\"1L8mPcUvabUscEk6Nr8ck5EFgopgPAMDW\",\n trainable=False,\n traced=True,\n ),\n \"yolov7-tiny\": YoloArch(\n version=\"7\",\n img_size=(640, 640),\n size=\"12.6MB\",\n params=\"6.2M\",\n flops=\"\",\n module=\"yolov7_package\",\n load_link=\"yolov7-tiny.pt\",\n trainable=False,\n traced=False,\n ),\n \"yolov7-tiny-traced\": YoloArch(\n version=\"7\",\n img_size=(640, 640),\n size=\"12.7MB\",\n params=\"6.2M\",\n flops=\"\",\n module=\"yolov7_package\",\n load_link=\"18zJyljtolPENDI_kFw3FlRFnQTnaLuDF\",\n trainable=False,\n traced=True,\n ),\n \"yolov8n\": YoloArch(\n version=\"8\",\n img_size=(640, 640),\n size=\"6.5MB\",\n params=\"3.2M\",\n flops=\"\",\n module=\"yolov8\",\n load_link=\"yolov8n.pt\",\n trainable=False,\n traced=False,\n ),\n \"yolov8s\": YoloArch(\n version=\"8\",\n img_size=(640, 640),\n size=\"22.6MB\",\n params=\"11.2M\",\n flops=\"\",\n module=\"yolov8\",\n load_link=\"yolov8s.pt\",\n trainable=False,\n traced=False,\n ),\n \"yolov8m\": YoloArch(\n version=\"8\",\n img_size=(640, 640),\n size=\"52.1MB\",\n params=\"25.9M\",\n flops=\"\",\n module=\"yolov8\",\n load_link=\"yolov8m.pt\",\n trainable=False,\n traced=False,\n ),\n \"yolov8l\": YoloArch(\n version=\"8\",\n img_size=(640, 640),\n size=\"87.8MB\",\n params=\"43.7M\",\n flops=\"\",\n module=\"yolov8\",\n load_link=\"yolov8l.pt\",\n trainable=False,\n traced=False,\n ),\n \"yolov8x\": YoloArch(\n version=\"8\",\n img_size=(640, 640),\n size=\"136.9MB\",\n params=\"68.2M\",\n flops=\"\",\n module=\"yolov8\",\n load_link=\"yolov8x.pt\",\n trainable=False,\n traced=False,\n ),\n \"yolos-tiny\": YoloArch(\n version=\"s\",\n img_size=None,\n size=\"136.9MB\",\n params=\"6.5M\",\n flops=\"512x*>18.8G|256x*>3.4G\",\n module=\"yolos\",\n load_link=\"hustvl/yolos-tiny\",\n trainable=False,\n traced=False,\n ),\n}\n```\n</details>\n<br/>\n\n### Loading model\n```python\nfrom det_executor import DetExecutor\n\n# loading model\nname = 'yolov7'\nex = DetExecutor(name)\n```\n### Predict and draw\n```python\nfrom det_executor import DetExecutor, draw_on_image\nimport cv2\n\n# loading model\nname = 'yolov7'\nex = DetExecutor(name)\n\n# loading image\nimg = ex.load_image('test/img.jpg')\n# or img = cv2.imread('test/img.jpg')\n\n# predict\nclasses, boxes, scores = ex.predict(img)\n\n# draw\nimg = draw_on_image(img, boxes[0], scores[0], classes[0])\ncv2.imshow(\"image\", img)\ncv2.waitKey()\n```\n\n## Roadmap\n - [ ] Training pipeline for all models\n - [ ] Load from custom weights\n - [ ] More models\n## Citation\n```\n@article{wang2022yolov7,\n title={{YOLOv7}: Trainable bag-of-freebies sets new state-of-the-art for real-time object detectors},\n author={Wang, Chien-Yao and Bochkovskiy, Alexey and Liao, Hong-Yuan Mark},\n journal={arXiv preprint arXiv:2207.02696},\n year={2022}\n}\n```\n\n```\n@misc{fang2021look,\n title={You Only Look at One Sequence: Rethinking Transformer in Vision through Object Detection}, \n author={Yuxin Fang and Bencheng Liao and Xinggang Wang and Jiemin Fang and Jiyang Qi and Rui Wu and Jianwei Niu and Wenyu Liu},\n year={2021},\n eprint={2106.00666},\n archivePrefix={arXiv},\n primaryClass={cs.CV}\n}\n```\n",
"bugtrack_url": null,
"license": "",
"summary": "Python package with latest versions of YOLO architecture for training and inference",
"version": "0.0.9",
"project_urls": {
"Homepage": "https://github.com/maxwolf8852/DetExecutor.git"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "38b76726bb3c2c9b61ea911977dfc0dc283cfc84a20a22b5b0962bb06d8702ac",
"md5": "d71816de46e8bce14ac6031589efa63a",
"sha256": "b36858a2a60337e048eb396ba8f98c160b497177dfa31d31474a2c5a4adaf79c"
},
"downloads": -1,
"filename": "det_executor-0.0.9-py3-none-any.whl",
"has_sig": false,
"md5_digest": "d71816de46e8bce14ac6031589efa63a",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.6",
"size": 103223,
"upload_time": "2023-10-06T10:57:28",
"upload_time_iso_8601": "2023-10-06T10:57:28.279116Z",
"url": "https://files.pythonhosted.org/packages/38/b7/6726bb3c2c9b61ea911977dfc0dc283cfc84a20a22b5b0962bb06d8702ac/det_executor-0.0.9-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "7b4faa99baf2d68347ec3a01f1a6289f14eb8d27f16b70bda20be79139df1d78",
"md5": "fcaf0c97bb3c8a69a2fc0649b2b9d5fc",
"sha256": "bf91cb2371d5e6c2d67646c4eb5483853b7f571e9da5bff6896986b8eb508667"
},
"downloads": -1,
"filename": "det_executor-0.0.9.tar.gz",
"has_sig": false,
"md5_digest": "fcaf0c97bb3c8a69a2fc0649b2b9d5fc",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.6",
"size": 97249,
"upload_time": "2023-10-06T10:57:30",
"upload_time_iso_8601": "2023-10-06T10:57:30.296906Z",
"url": "https://files.pythonhosted.org/packages/7b/4f/aa99baf2d68347ec3a01f1a6289f14eb8d27f16b70bda20be79139df1d78/det_executor-0.0.9.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-10-06 10:57:30",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "maxwolf8852",
"github_project": "DetExecutor",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"requirements": [
{
"name": "pyyaml",
"specs": []
},
{
"name": "opencv-python",
"specs": []
},
{
"name": "torch",
"specs": []
},
{
"name": "torchvision",
"specs": []
},
{
"name": "requests",
"specs": []
},
{
"name": "wget",
"specs": []
},
{
"name": "tqdm",
"specs": []
},
{
"name": "ultralytics",
"specs": []
},
{
"name": "black",
"specs": []
},
{
"name": "colorama",
"specs": []
},
{
"name": "pthflops",
"specs": []
},
{
"name": "transformers",
"specs": []
},
{
"name": "imageio",
"specs": []
}
],
"lcname": "det-executor"
}