forked from dsutanto/bytetrack-counter
First commit
This commit is contained in:
commit
945eebfe89
17 files changed
+5061
No files matched your search
@@ -0,0 +1,122 @@
|
||||
# Edge Jetson Deploy
|
||||
|
||||
Production counter: **direct LAN RTSP** + **YOLO11n TensorRT** + SQLite batch store.
|
||||
Replaces MQTT `frigate-counter` on the edge Jetson.
|
||||
|
||||
## Quick install
|
||||
|
||||
```bash
|
||||
# 1. Copy this folder to Jetson
|
||||
sudo mkdir -p /opt/jetson-counter
|
||||
sudo cp -r jetson-counter/* /opt/jetson-counter/
|
||||
sudo chown -R jetson:jetson /opt/jetson-counter
|
||||
|
||||
# 2. Configure
|
||||
cd /opt/jetson-counter
|
||||
cp config.env.example .env
|
||||
nano .env # SOURCE, MODEL_PATH, CAMERA_NAME, etc.
|
||||
sed -i 's/\r$//' .env
|
||||
|
||||
# 3. Venv + services
|
||||
chmod +x setup-venv.sh install-services.sh
|
||||
sudo ./setup-venv.sh
|
||||
sudo ./install-services.sh
|
||||
```
|
||||
|
||||
Dashboard: `http://<jetson-ip>:5000`
|
||||
|
||||
---
|
||||
|
||||
## YOLO11n TensorRT engine (one-time)
|
||||
|
||||
On the Jetson (must match `IMGSZ` / `HALF` in `.env`):
|
||||
|
||||
```bash
|
||||
source /opt/jetson-counter/venv/bin/activate
|
||||
export PYTHONNOUSERSITE=1
|
||||
|
||||
yolo export model=/media/jetson/DATA/yolo11n.pt format=engine half=True imgsz=416 device=0
|
||||
```
|
||||
|
||||
Verify classes:
|
||||
|
||||
```bash
|
||||
PYTHONNOUSERSITE=1 python -c "
|
||||
from ultralytics import YOLO
|
||||
m = YOLO('/media/jetson/DATA/yolo11n.engine')
|
||||
print(m.names)
|
||||
"
|
||||
```
|
||||
|
||||
Expect `ayam` and `talenan`.
|
||||
|
||||
---
|
||||
|
||||
## Direct camera RTSP
|
||||
|
||||
Set in `.env`:
|
||||
|
||||
```env
|
||||
SOURCE=rtsp://user:pass@192.168.x.x:554/stream1
|
||||
```
|
||||
|
||||
Test before install:
|
||||
|
||||
```bash
|
||||
ffplay -rtsp_transport tcp -t 5 "$SOURCE"
|
||||
nc -zv <camera-ip> 554
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Cutover from MQTT frigate-counter
|
||||
|
||||
`install-services.sh` automatically:
|
||||
|
||||
1. Disables `frigate-counter` and `frigate-counter-dashboard`
|
||||
2. Enables `jetson-counter` + `jetson-counter-dashboard`
|
||||
|
||||
Archive old DB (optional):
|
||||
|
||||
```bash
|
||||
sudo cp /opt/frigate-counter/frigate_counter.db ~/frigate_counter.db.backup
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Validation checklist
|
||||
|
||||
```bash
|
||||
sudo systemctl is-active jetson-counter jetson-counter-dashboard
|
||||
PYTHONNOUSERSITE=1 /opt/jetson-counter/venv/bin/python -c "import torch; print('cuda', torch.cuda.is_available())"
|
||||
sudo journalctl -u jetson-counter -n 20 --no-pager
|
||||
```
|
||||
|
||||
Good signs:
|
||||
|
||||
- `Stream ready!`
|
||||
- `Loaded engine size: ... MiB`
|
||||
- `Frame 100 | Batch ...`
|
||||
|
||||
---
|
||||
|
||||
## Logs & restart
|
||||
|
||||
```bash
|
||||
sudo journalctl -u jetson-counter -f
|
||||
sudo systemctl restart jetson-counter # after .env change
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## JetPack 6.0 torch wheel
|
||||
|
||||
If `setup-venv.sh` fails on torch URL, list wheels:
|
||||
|
||||
```bash
|
||||
curl -s https://developer.download.nvidia.com/compute/redist/jp/v60/pytorch/ | grep cp310
|
||||
```
|
||||
|
||||
Set `TORCH_WHEEL_URL=...` when running `setup-venv.sh`.
|
||||
|
||||
See also [jetson-counter-dev/GO_LIVE_TROUBLESHOOT.md](../jetson-counter-dev/GO_LIVE_TROUBLESHOOT.md) for torchvision and RTSP issues.
|
||||
Reference in new issue
Block a user