{"id":17982263,"url":"https://github.com/kmkolasinski/clever-camera","last_synced_at":"2025-09-22T22:55:03.000Z","repository":{"id":37615094,"uuid":"228479077","full_name":"kmkolasinski/clever-camera","owner":"kmkolasinski","description":"A simple monitoring camera web server which uses deep learning model (classification) to filter or group camera events.","archived":false,"fork":false,"pushed_at":"2024-07-19T13:42:05.000Z","size":25093,"stargazers_count":21,"open_issues_count":5,"forks_count":2,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-09-09T23:37:23.934Z","etag":null,"topics":["monitoring","raspberry-pi","remigui"],"latest_commit_sha":null,"homepage":"","language":"CSS","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/kmkolasinski.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,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2019-12-16T21:28:29.000Z","updated_at":"2022-03-06T02:39:30.000Z","dependencies_parsed_at":"2025-09-09T22:01:02.360Z","dependency_job_id":null,"html_url":"https://github.com/kmkolasinski/clever-camera","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/kmkolasinski/clever-camera","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kmkolasinski%2Fclever-camera","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kmkolasinski%2Fclever-camera/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kmkolasinski%2Fclever-camera/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kmkolasinski%2Fclever-camera/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kmkolasinski","download_url":"https://codeload.github.com/kmkolasinski/clever-camera/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kmkolasinski%2Fclever-camera/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":276487472,"owners_count":25651133,"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","status":"online","status_checked_at":"2025-09-22T02:00:08.972Z","response_time":79,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["monitoring","raspberry-pi","remigui"],"created_at":"2024-10-29T18:13:34.886Z","updated_at":"2025-09-22T22:55:02.956Z","avatar_url":"https://github.com/kmkolasinski.png","language":"CSS","funding_links":[],"categories":[],"sub_categories":[],"readme":"# clever-camera\n\nA simple monitoring camera web server which uses deep learning model \n(classification) to filter or group camera events. \n\n# Basic workflow\n\n    1. Setup IP camera credentials, then click \"Refresh camera\" to check connection.\n    2. Select model from the Model name list, then click \"Test classifier\" to check predictions\n    3. Select one or more ROIs\n    4. Run/Stop monitoring. Monitoring loop will execute following steps:\n       a) Get camera image\n       b) Compare the pixels for possible change inside defined ROIs (naive motion detection)\n       c) If no changes detected then wait \"Check period\" and goto a)\n       d) Otherwise, trigger classifier for image fragments inside ROIs and get predicted \"labels\"\n       e) If classifer returned labels which match the \"ROI Labels\" save snaphot on disk\n       f) Goto a)  \n\n# Features\n\n## History view\n![img1](resources/history.png)\n * Search by date and by label\n * Filter by hour of event\n * Filter by label name\n * Download selected as zip\n * Download single image\n\n## Camera definition view\n![img2](resources/camera1.png)\n * Add or Remove Region of interest (ROI)\n * Select between different MobileNets\n\n![img2](resources/camera2.png)\n * Define camera client: User with Password\n * Define monitoring week-days and from-to hours\n * Define how often pictures are taken\n * Define email notifications \n \n## Resources view\n![img2](resources/system.png)\n * Monitor system RAM and disk usage\n\n# Installation\n## Installation and running camera server on Ubuntu/Linux\n```\ncreate env conda/virtualenv...\nsource your_environment\npip install https://dl.google.com/coral/python/tflite_runtime-1.14.0-cp36-cp36m-linux_x86_64.whl\npip install -r requirements.txt\n\n# Run \npython app/app.py\n# Run with login required (more safe)\nbash run.sh\n```\n\n## Installation and running camera server on Raspberry Pi \n\nIn the project location run following commands:\n\n```bash\npython3 -m pip install --user virtualenv\nvirtualenv venv\nsource venv/bin/activate\npip3.7 install https://dl.google.com/coral/python/tflite_runtime-1.14.0-cp37-cp37m-linux_armv7l.whl\npip3.7 install -r requirements.txt\npython3.7 app/app.py\n```\n\n# Limitations and project assumptions:\n\n* This application was build to work with single user.\n* Only single camera is supported, however adding more should be very easy in practice.   \n* Classification is based on MobileNets models family in the tflite format. Using pytorch \n    or other frameworks is possible. One must implement custom `core.base_predictor.ClassifierPredictor` \n    and replace it in the `core.camera_widget.CameraWidget` class.\n* Pure python: web server is based on [remigui](https://github.com/dddomodossola/remi) library.\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkmkolasinski%2Fclever-camera","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkmkolasinski%2Fclever-camera","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkmkolasinski%2Fclever-camera/lists"}