{"id":25872987,"url":"https://github.com/marcosalvalaggio/xeye","last_synced_at":"2025-03-02T08:29:12.991Z","repository":{"id":40817177,"uuid":"508067573","full_name":"marcosalvalaggio/xeye","owner":"marcosalvalaggio","description":"Image dataset creation for deep learning","archived":false,"fork":false,"pushed_at":"2024-03-26T07:38:30.000Z","size":76540,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-01-19T04:15:15.473Z","etag":null,"topics":["datascience","deep-learning","machine-learning","opencv-python","pypi-package","pytorch","tensorflow"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/marcosalvalaggio.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2022-06-27T21:30:24.000Z","updated_at":"2024-10-18T07:47:44.000Z","dependencies_parsed_at":"2023-09-25T02:19:34.032Z","dependency_job_id":"5e8acc84-5245-44cb-92a1-3c51730fd1cd","html_url":"https://github.com/marcosalvalaggio/xeye","commit_stats":{"total_commits":241,"total_committers":3,"mean_commits":80.33333333333333,"dds":0.0954356846473029,"last_synced_commit":"85b4659fb7ac2d444f3d4368f52c5d0b7a35e4f6"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marcosalvalaggio%2Fxeye","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marcosalvalaggio%2Fxeye/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marcosalvalaggio%2Fxeye/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marcosalvalaggio%2Fxeye/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/marcosalvalaggio","download_url":"https://codeload.github.com/marcosalvalaggio/xeye/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240118330,"owners_count":19750471,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["datascience","deep-learning","machine-learning","opencv-python","pypi-package","pytorch","tensorflow"],"created_at":"2025-03-02T08:29:12.304Z","updated_at":"2025-03-02T08:29:12.988Z","avatar_url":"https://github.com/marcosalvalaggio.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":" \n## Xeye\n\n\u003ch1 align=\"center\"\u003e\n\u003cimg src=\"logo.png\" width=\"200\"\u003e\n\u003c/h1\u003e\u003cbr\u003e\n\n\n[![Documentation Status](https://readthedocs.org/projects/ansicolortags/badge/?version=latest)](https://xeye.readthedocs.io/en/latest/index.html) [![PyPI version](https://badge.fury.io/py/xeye.svg)](https://badge.fury.io/py/xeye) ![PyPI - Downloads](https://img.shields.io/pypi/dm/xeye) \n  \n\nXeye is a package for data collection to build computer vision applications based on inferential results of deep learning models. The main reasons to use Xeye are:\n\n* Create a dataset using either a laptop with its integrated camera, a USB camera, or by utilizing an RTSP stream;\n* Create a dataset already structured like the [mnist](https://www.tensorflow.org/datasets/catalog/mnist);\n* Create a dataset that can be used for building models with [Tensorflow](https://www.tensorflow.org/) or [Pytorch](https://pytorch.org/).\n\n\u003chr\u003e\n\n## Installation\n\nTo install the package, \n\n```\npip install xeye\n```\n\n\u003chr\u003e\n\n## Functionalities\n\nThe Xeye package includes two major approaches for creating a dataset from scratch: Dataset, and ManualDataset.\n\n* **FastDataset**: Uses the constructor with all the specifications of the dataset.\n* **ManualDataset**: Same as Dataset, but every image is shot manually one at a time.\n  \nAdditionally, the package provides a method for combining datasets created with the **BuildDataset** class.\n\n\u003chr\u003e\n\n## Datasets for deep learning \n\nIn the [example](examples) folder, you can find examples of deep learning model implementations based on datasets produced by the Xeye package (made with [Tensorflow](https://github.com/marcosalvalaggio/xeye-notebooks/tree/main/tensorflow) or [Pytorch](https://github.com/marcosalvalaggio/xeye-notebooks/tree/main/pytorch) frameworks).\n\n\n* [Binary dataset](https://drive.google.com/drive/folders/1qvoFa4SRWirXj7kdWhhcqrQ8mTIHpkuJ?usp=sharing): containing two types of grayscale images (with labels: 0=keyboard, 1=mouse).\n* [MultiLabel dataset](https://drive.google.com/drive/folders/1qvoFa4SRWirXj7kdWhhcqrQ8mTIHpkuJ?usp=sharing): containing three types of rgb images (three types of security cameras with labels: 0=dome, 1=bullet, 2=cube).\n\nAdditionally, the [example](example) folder contains examples of scripts that use the Xeye package to build datasets ([examples link](examples/xeye-example).\n\n\u003chr\u003e\n\n\n## Examples\n\n### Hikvision Device\n\nWith *xeye*, you can build a dataset using all [Hikvision](https://www.hikvision.com/en/) IP cameras updated to the ISAPI firmware.\n\n```python\nfrom xeye import Dataset\n\ndata = Dataset(source='rtsp://admin:password@ip:port/ISAPI/Streaming/channels/101', \n               img_types=2, label=['a', 'b'], num=10, height=100, width=100, stand_by_time=0)\ndata.preview()\ndata.gray()\ndata.compress_train_test(perc=0.2)\ndata.compress_all()\ndata.just_compress(name=\"batch_test\")\n```\n\nThe RTSP stream uses, by default, port 554. If you change it in the device configuration, you need to use the port specified for the RTSP connection.\n\n* channels/101 = main stream.\n* channels/102 = sub stream.\n\nIf you want to obtain the RTSP stream from a camera connected to an Hikvision NVR, the number at the end of the RTSP stream indicates:\n\n* channels/101 = main stream of the first camera.\n* channels/102 = sub stream of the first camera.\n* channels/201 = main stream of the second camera.\n* channels/202 = sub stream of the second camera.\n\n### Integrated or USB connected camera\n\nHere is an example of the minimal amount of code to create a dataset using *xeye* with the laptop's integrated camera:\n\n```python\nfrom xeye import Dataset\n\ndata = Dataset(source=0, img_types=2, label=['a', 'b'], num=10, height=100, width=100, stand_by_time=0)\ndata.preview()\ndata.rgb()\ndata.compress_train_test(perc=0.2)\ndata.compress_all()\ndata.just_compress(name=\"batch_test\")\n```\n \n* source = 0 -\u003e integrated camera.\n* source = 1 -\u003e USB connected camera.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarcosalvalaggio%2Fxeye","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmarcosalvalaggio%2Fxeye","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarcosalvalaggio%2Fxeye/lists"}