{"id":13643424,"url":"https://github.com/Psynosaur/Jetson-SecVision","last_synced_at":"2025-04-21T01:32:38.788Z","repository":{"id":144110808,"uuid":"408688638","full_name":"Psynosaur/Jetson-SecVision","owner":"Psynosaur","description":"Person detection for Hikvision DVRs, uses TensorRT and yolov4 ","archived":false,"fork":false,"pushed_at":"2024-03-16T05:05:12.000Z","size":5753,"stargazers_count":24,"open_issues_count":0,"forks_count":3,"subscribers_count":4,"default_branch":"main","last_synced_at":"2024-11-09T15:42:36.072Z","etag":null,"topics":["basic-image-server","darknet","hikvision","hikvision-camera-bot","home-automation","nvidia-jetson-nano","object-detection","telegram","yolo","yolov4","yolov4-object-detection"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Psynosaur.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":"2021-09-21T04:37:14.000Z","updated_at":"2024-08-15T11:50:00.000Z","dependencies_parsed_at":"2024-01-14T12:17:59.132Z","dependency_job_id":"0ff0c520-7140-4223-b492-a482b2fa3ff3","html_url":"https://github.com/Psynosaur/Jetson-SecVision","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Psynosaur%2FJetson-SecVision","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Psynosaur%2FJetson-SecVision/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Psynosaur%2FJetson-SecVision/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Psynosaur%2FJetson-SecVision/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Psynosaur","download_url":"https://codeload.github.com/Psynosaur/Jetson-SecVision/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249982631,"owners_count":21355735,"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":["basic-image-server","darknet","hikvision","hikvision-camera-bot","home-automation","nvidia-jetson-nano","object-detection","telegram","yolo","yolov4","yolov4-object-detection"],"created_at":"2024-08-02T01:01:47.342Z","updated_at":"2025-04-21T01:32:35.086Z","avatar_url":"https://github.com/Psynosaur.png","language":"Python","funding_links":[],"categories":["Applications","Object Detection Applications"],"sub_categories":[],"readme":"## NVIDIA Jetson - SecVision\n\nTechnologies used\n  - Jetson Nano\n  - TensorRT \n  - Darknet - Yolov4-416\n  - HikVision DVR DS-7208HUHI-K2\n\n### Prerequisites \n\n  - **PLEASE BUILD THIS PROJECT FIRST**\n    - https://github.com/jkjung-avt/tensorrt_demos\n    - Environment is ready when Demo #5 runs with yolov4-416 model\n  - Running redis instance \n    - https://redis.io/topics/quickstart\n  - Follow the instructions to set up a bot and get your user id\n    - https://www.instructables.com/Set-up-Telegram-Bot-on-Raspberry-Pi/\n    - Once the bot is set up send it a message on telegram\n    - In your browser paste the following url\n      - https://api.telegram.org/bot{token}/getUpdates \n      - Then get the id in the \"from\" object with your username in\n      - Replace both **token** and **id** in the settings.ini file\n    \n### Findings\n\n - With a 4TB HDD, there about 720 days of video recordings, before it starts overwriting data.\n\n## To Do \n\n  - [ ] Add surveillance center notifications\n  - [ ] Make Telegram notifications for all channels from settings and optional\n    - [ ] Determine on and off times per camera\n  - [ ] Upgrade dashboard, with recording stats\n    - [ ] Software stats, running, failing etc...\n    - [ ] Channel Trigger info\n    - [ ] Person counter \n  - [ ] Captured frames, garbage collection...\n\n ### Usage\n\n   Setup settings.ini\n    \n    [DVR]\n    username = dummy =\u003e user for DVR login\n    password = SuchPass =\u003e password for DVR login\n    channels = 8 =\u003e channels on DVR\n    ip = 0.0.0.0 =\u003e IP address of DVR on local network\n    [Telegram]\n    token = botapitoken =\u003e get this from the telegram BotFather\n    id = userid =\u003e the id of your user chatting to the bot\n   \n   On DVR set basic auth for HTTP request\n   \n    git clone https://github.com/Psynosaur/JetsonSecVision \u0026\u0026 cd JetsonSecVision\n    pip3 install aiofiles aiohttp==3.7.4 asyncio colorlog redis\n\n   ### Project needs symlinks to tensorrt_demo project\n   #### Setup environment\n\n    cd detect_yolo \n    ln -s ${HOME}/tensorrt demos/utils/ ./utils\n    ln -s ${HOME}/tensorrt_demos/plugins/ ./plugins\n    ln -s ${HOME}/tensorrt_demos/yolo/ ./yolo\n    cd ..\n\n   #### Run script with model of your choice built from the TensorRT demos instructions\n\n     python3 detect_yolo/detect_yolo.py -m yolov4-416\n\n   Takes approximately 2.4 seconds round trip to do its thing for 8x2MP images and is very accurate\n   Detection step takes 1.68s for a network fps of **~4.57FPS**. \n   \n   ### When the jetson is overclocked this is at around ~5.7FPS at 1.15GHz GPU and consumes ~14.5W at the wall.\n    \n   This routine is not very resource intensive as a video feed would be, nor would it be as unstable at these speeds.\n\n   ![jtop](./detect_yolo/jtop.png)\n\n   here it is doing its thing\n\n   ![jtop](./detect_yolo/nano.png)\n\n   Channel and zone AlarmIO wiring\n\n   ![wiring](./detect_yolo/AlarmIO.jpg)\n\n   ### Automatic / Continuous Operation\n   \n   ### Installation\n\n    $ sudo detect_yolo/install_yolo.sh\n\n   ### Check status of service\n\n    $ sudo service detect_yolo status\n     \n   ### To stop the service, simply run:\n\n    $ sudo service detect_yolo stop\n\n   ### To uninstall the service\n\n    $ sudo detect_yolo/uninstall_yolo.sh\n\n### Developers\n\n    $ sudo detect_yolo/refresh_yolo.sh\n\n### Expected output \n\n![Detection](./detect_yolo/img.jpg)\n\n    Dec 04 13:59:57 jetson secvision_yolo[19702]: INFO: GET DATA - 0.69s\n    Dec 04 13:59:57 jetson secvision_yolo[19702]: WARNING: 201 started recording\n    Dec 04 13:59:57 jetson secvision_yolo[19702]: WARNING: Front door - 0.88 - 1 person found in zone 1 - start recording\n    Dec 04 13:59:57 jetson secvision_yolo[19702]: DEBUG:Using selector: EpollSelector\n    Dec 04 13:59:58 jetson secvision_yolo[19702]: INFO: Main loop - 2.16s Inference loop - 1.47s @ 5.46fps\n    Dec 04 13:59:59 jetson secvision_yolo[19702]: WARNING: Front door person found 1.288873s ago\n    Dec 04 13:59:59 jetson secvision_yolo[19702]: WARNING: Sent telegram message via API and it took 1.348s\n    Dec 04 13:59:59 jetson secvision_yolo[19702]: INFO: GET DATA - 0.70s\n    Dec 04 13:59:59 jetson secvision_yolo[19702]: WARNING: Front door - 1.00 - 1 person found in zone 1 - recording\n    Dec 04 13:59:59 jetson secvision_yolo[19702]: INFO:201 event exists\n    Dec 04 14:00:01 jetson secvision_yolo[19702]: INFO: Main loop - 2.12s Inference loop - 1.42s @ 5.63fps\n    Dec 04 14:00:01 jetson secvision_yolo[19702]: INFO: GET DATA - 0.76s\n    Dec 04 14:00:03 jetson secvision_yolo[19702]: INFO: Main loop - 2.18s Inference loop - 1.42s @ 5.63fps\n    Dec 04 14:00:03 jetson secvision_yolo[19702]: INFO: GET DATA - 0.72s\n    Dec 04 14:00:04 jetson secvision_yolo[19702]: WARNING: Front door person found 4.141477s ago\n    Dec 04 14:00:05 jetson secvision_yolo[19702]: INFO: Main loop - 2.13s Inference loop - 1.41s @ 5.66fps\n    Dec 04 14:00:06 jetson secvision_yolo[19702]: INFO: GET DATA - 0.75s\n    Dec 04 14:00:07 jetson secvision_yolo[19702]: INFO: Main loop - 2.17s Inference loop - 1.42s @ 5.64fps\n    Dec 04 14:00:08 jetson secvision_yolo[19702]: INFO: GET DATA - 0.74s\n    Dec 04 14:00:09 jetson secvision_yolo[19702]: INFO: Main loop - 2.18s Inference loop - 1.44s @ 5.57fps\n    Dec 04 14:00:09 jetson secvision_yolo[19702]: INFO: CPU 40.00°C / GPU 36.50°C / PLL 33.50°C\n    Dec 04 14:00:09 jetson secvision_yolo[19702]: INFO: AO 45.00°C / THERM 38.00°C / FAN 1625.0RPM\n    Dec 04 14:00:09 jetson secvision_yolo[19702]: INFO: NETWORK 5.63 FPS\n    Dec 04 14:00:09 jetson secvision_yolo[19702]: WARNING: Front door person found 9.743311s ago\n    Dec 04 14:00:10 jetson secvision_yolo[19702]: INFO: GET DATA - 0.72s\n    Dec 04 14:00:11 jetson secvision_yolo[19702]: INFO: Main loop - 2.14s Inference loop - 1.42s @ 5.64fps\n    Dec 04 14:00:12 jetson secvision_yolo[19702]: INFO: GET DATA - 0.73s\n    Dec 04 14:00:13 jetson secvision_yolo[19702]: INFO: Main loop - 2.14s Inference loop - 1.41s @ 5.67fps\n    Dec 04 14:00:14 jetson secvision_yolo[19702]: WARNING: Front door person found 14.743941s ago\n    Dec 04 14:00:14 jetson secvision_yolo[19702]: INFO: GET DATA - 0.76s\n    Dec 04 14:00:16 jetson secvision_yolo[19702]: INFO: Main loop - 2.17s Inference loop - 1.41s @ 5.66fps\n    Dec 04 14:00:16 jetson secvision_yolo[19702]: INFO: GET DATA - 0.67s\n    Dec 04 14:00:18 jetson secvision_yolo[19702]: INFO: Main loop - 2.09s Inference loop - 1.42s @ 5.64fps\n    Dec 04 14:00:18 jetson secvision_yolo[19702]: INFO: GET DATA - 0.71s\n    Dec 04 14:00:19 jetson secvision_yolo[19702]: WARNING: Front door person found 19.744398s ago\n    Dec 04 14:00:20 jetson secvision_yolo[19702]: INFO: Main loop - 2.13s Inference loop - 1.41s @ 5.66fps\n    Dec 04 14:00:21 jetson secvision_yolo[19702]: INFO: GET DATA - 0.74s\n    Dec 04 14:00:22 jetson secvision_yolo[19702]: INFO: Main loop - 2.15s Inference loop - 1.41s @ 5.68fps\n    Dec 04 14:00:23 jetson secvision_yolo[19702]: INFO: GET DATA - 0.70s\n    Dec 04 14:00:24 jetson secvision_yolo[19702]: INFO: Main loop - 2.11s Inference loop - 1.41s @ 5.67fps\n    Dec 04 14:00:24 jetson secvision_yolo[19702]: WARNING: Front door person found 24.744972s ago\n    Dec 04 14:00:25 jetson secvision_yolo[19702]: INFO: GET DATA - 0.79s\n    Dec 04 14:00:26 jetson secvision_yolo[19702]: WARNING: 201 stopped recording\n    Dec 04 14:00:26 jetson secvision_yolo[19702]: INFO: Main loop - 2.22s Inference loop - 1.41s @ 5.68fps\n    Dec 04 14:00:27 jetson secvision_yolo[19702]: INFO: GET DATA - 0.76s\n    Dec 04 14:00:29 jetson secvision_yolo[19702]: INFO: Main loop - 2.18s Inference loop - 1.42s @ 5.63fps\n    Dec 04 14:00:29 jetson secvision_yolo[19702]: INFO: GET DATA - 0.73s\n    \n Dashboard available on jetson IP address on port **8080** \n\n   ![jtop](./detect_yolo/mobile_dash.jpg)  \n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FPsynosaur%2FJetson-SecVision","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FPsynosaur%2FJetson-SecVision","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FPsynosaur%2FJetson-SecVision/lists"}