Данный программный комплекс является self-host решением, позволяющим при установке и подключении камеры следить за мелкими вещами в помещении (например телефон/ноутбук/кошелек и прочее).
git clone [email protected]:schukark/OLTS-Cam.git
cd OLTS-Cam
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txtДалее пути установки разнятся:
- Если Вы обладатель видеокарты NVidia или AMD с поддержкой от PyTorch, то выполните
pip install -r requirements_torch.txt - Если такой видеокарты у вас нет или Вы не знаете, то выполните
pip install -r requirements_torch_cpu.txt
- Исполняемый файл бота поставляется в корне репозитория (файлы
botилиbot.exeв зависимости от ОС) - Иначе, убедитесь, что на вашей системе установлен
rustupи выбранRust 1.89.0-nightly. Далее, находясь в корне проекта запуститеcargo build --release. После выполнения команды, исполняемый файл бота будет лежать по путиtarget/release/bot.
Для проверки md5 получившегося исполняемого файла, прилагаются md5 под некоторые архитектуры:
| -march | md5 |
|---|---|
| x86_64-unknown-linux-gnu | 45d5e9b4977174c19a39e4e431ef1d60 |
| x86_64-pc-windows-gnu | e7185d58f7323d231b86b4439d448325 |
Приложение запускается с помощью файла launch.sh (*nix системы) /launch.bat (Windows)
Также, части проекта можно запустить отдельно, если такая потребность есть:
python src/main.pyдля десктопной части./bot/bot.exeдля бота (илиcargo run --release, если установленrustup)
- Python
- OpenCV
- PyTorch
- FastAPI
- Rust
- Teloxide
- Telegram API
Проект разделен на независимые и модульные части:
- Python Desktop Application - приложение на ПК (написано на Python), содержащее все настройки и связь с камерой
- Telegram Bot - код для телеграм-бота (написан на Rust)
- Python API endpoint Server - сервер-приемник запросов от телеграм-бота (написан на Python)
Каждый модуль имеет очень ограчниенный набор публичных методов, чтобы жестко следовать API - это позволяет менять реализацию модулей. Соответственно, чтобы не смешивать эти независимые модули между собой, код для каждой из них содержится в отдельной ветке репозитория:
- telegram-bot - ветка телеграм-бота
- desktop-application - ветка приложения на ПК
- python-server - API server как часть десктоп приложения