Skip to content

A Python script that uses YOLOv4 for detecting objects in public camera streams from Insecam.

License

Notifications You must be signed in to change notification settings

erfangolpour/ArguX

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

60 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ArguX

Real-Time Object Detection in Public Camera Feeds

ArguX is a Python script that scans public cameras gathered from Insecam to locate objects of interest through utilizing YOLOv4 object detection model. The name is inspired by Greek mythology, where Argus Panoptes (Ἀὁγος Πανόπτης, "All-seeing Argos") is a many-eyed giant capable of seeing everything.


Features

  • Multithreaded for scanning multiple streams simultaneously.
  • Provides the detected camera's IP address, geolocation, and the model's confidence level in identifying the specified object.
  • Filter searches by country.
  • Option to open detected camera streams directly in your web browser.

Installation

  1. Clone the repository:

    git clone https://github.com/erfangolpour/ArguX.git
  2. Install the required dependencies:

    pip install -r requirements.txt
  3. Download the YOLOv4 weights file (245 MB):

    Place the file in the YOLO directory.


Usage

Run the script with the following options:

usage: ArguX.py [-h] [-n NUMBER] -o {person,bicycle,car,...} [-w WORKERS] [-c COUNTRY]

ArguX - A tool for scanning public security cameras

Options:
  -h, --help            Show this help message and exit.
  -n NUMBER, --number NUMBER
                        Maximum number of cameras to scan (default: 100).
  -o {person,bicycle,car,...}
                        Specify the object to search for (refer to YOLOv4 - Darknet/coco.names for options).
  -w WORKERS, --workers WORKERS
                        Limit the number of multiprocessing pool workers.
  -c COUNTRY, --country COUNTRY
                        Filter results by country.

You can find the list of searchable objects here.


Demonstration

preview-gif


Configuration

The following settings can be customized in the script:

  • MIN_CONFIDENCE: Minimum confidence threshold for object detection (default: 0.6).
  • OPTIMIZED_MAX_WORKERS: Default number of worker threads (CPU cores minus one).
  • REQUEST_TIMEOUT: Timeout duration for web requests in seconds (default: 10).
  • USER_AGENT: User agent string for web requests.

Contributing

Contributions are welcome! If you encounter any issues or have ideas for improvement, feel free to open an issue or submit a pull request.


License

This project is licensed under the GPLv3 License.


Acknowledgments

Special thanks to:

About

A Python script that uses YOLOv4 for detecting objects in public camera streams from Insecam.

Topics

Resources

License

Stars

Watchers

Forks

Languages