8000 GitHub - erfangolpour/ArguX: An advanced OSINT tool to gather and analyze publicly available camera feeds.
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

erfangolpour/ArguX

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

5 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

banner

Named after Argus Panoptes, the all-seeing giant with a hundred eyes from Greek mythology

ArguX is an advanced OSINT tool designed for gathering and analyzing publicly available camera feeds. It connects to publicly available sources like Insecam, applies object detection using YOLOv11 models to identify objects such as cars, people, and more, then visualizes the results through an intuitive web interface.

ArguX is a signifi 8000 cant evolution from my previous project EagleEye, which was a command-line tool using YOLOv4. While EagleEye laid the groundwork, ArguX completely reimagines the concept with a modern architecture, web interface, and significantly expanded functionality.

Interactive Globe

Interactive visualization of camera feeds across the globe

โœจ Features

  • High Performance Processing: Utilizes Celery integrated with Redis to efficiently distribute tasks among different threads
  • Advanced Object Detection: Provides different sizes of YOLOv11 (nano, small, medium, large) for optimal performance based on your hardware
  • Easy Setup: Simple configuration and intuitive user interface
  • Rich Visualization: Multiple formats of data visualization (3D globe, charts, lists) with comprehensive filtering and sorting capabilities
  • Geolocation Analysis: Fetches and maps geolocation information about camera IPs using ip-api.com
  • Real-time Results: WebSocket-based live updates as cameras are analyzed
  • Flexible Scanning: Filter camera sources by country or scan globally
Filtering and Sorting

Comprehensive filtering and sorting options for detected objects

๐Ÿ› ๏ธ Technologies

ArguX is built using a modern tech stack:

Backend

Frontend

Error Handling

Graceful error handling and detailed feedback

๐Ÿš€ Installation

Prerequisites

  • Python 3.10+
  • Node.js 18+ and npm
  • Redis server
  • Git (for cloning the repository)

Backend Setup

  1. Clone the repository:

    git clone https://github.com/erfangolpour/argux.git
    cd argux
  2. Set up a Python virtual environment:

    cd backend
    python -m venv .venv
    source .venv/bin/activate  # On Windows: .venv\Scripts\activate
  3. Install Python dependencies:

    pip install -r requirements.txt

Frontend Setup

  1. Install Node.js dependencies:
    cd frontend
    npm install

Redis Setup

  1. Install Redis server:

    On Ubuntu/Debian:

    sudo apt update
    sudo apt install redis-server
    sudo systemctl enable redis-server

    On macOS (using Homebrew):

    brew install redis
    brew services start redis

    For other platforms, please refer to the Redis documentation.

โš™๏ธ Configuration

Backend Configuration

The backend settings can be configured in backend/settings.py:

  • Adjust Redis connection settings (redis_host, redis_port, redis_db)
  • Configure YOLO model settings (default_model, yolo_base_dir)
  • Set maximum concurrent tasks (max_concurrent_tasks)
  • Modify CORS settings for development/production environments

You can also create a .env file in the backend directory to override any settings:

LOG_LEVEL=INFO
MAX_CONCURRENT_TASKS=5
DEFAULT_MODEL=yolo11m.pt

๐Ÿš€ Running the Application

Running Services Manually

  1. Start the Redis server (if not already running as a service):

    redis-server
  2. Start the Backend API (from the backend directory):

    uvicorn main:app --reload
  3. Start the Celery worker (from the backend directory):

    celery -A main.celery_app worker
  4. Start the Frontend development server (from the frontend directory):

    npm run dev

Running with tmux (Linux/macOS)

For convenience, a run.sh script is provided that uses tmux to run all services in a single terminal window:

chmod +x run.sh
./run.sh

This will create a tmux session with separate panes for the backend API, Celery worker, and frontend development server.

Running on Windows

While ArguX is not officially tested on Windows, it should be possible to run with proper configuration:

  1. Ensure Redis is installed and running (through WSL or Windows binary)
  2. Start each service in a separate command prompt:
    • Backend API: python -m uvicorn main:app --reload
    • Celery worker: celery -A main.celery_app worker --loglevel=info --pool=solo
    • Frontend: npm run dev

๐Ÿ”ฎ Future Directions

ArguX is continuously evolving. Planned features include:

  • Data Export: Capability to export results in various formats
  • Persistent Database: Storage system for scan results for easy recall and historical analysis
  • Custom Object Detection: Add custom objects to the detection model by re-training YOLO
  • Better Backend-Celery Synchronization: Improve communication and avoid busy loops
  • Optional Redis: Make Redis an optional dependency by allowing Celery to manage threads directly
  • Additional Sources: Integration with more camera sources (Shodan, Censys, Criminal IP, ZoomEye, public highway indexes, etc.)

๐Ÿ’ก Debugging Tools

While not a requirement, Flower is an excellent open-source tool for monitoring and managing Celery clusters. To use it:

pip install flower
celery -A main.celery_app flower

This provides a web interface at http://localhost:5555 for monitoring task execution.

โš ๏ธ Limitations and Ethics

Technical Limitations

It's important to understand that object detection models have inherent limitations. While YOLO is effective at identifying common objects like cars, people, or animals, it has limitations:

  • Even the smallest YOLO models, despite being extremely efficient and fast, still need processing time, especially given the scale at which ArguX operates
  • Detection accuracy is dependent on feed quality, lighting conditions, and distance
  • Results should always be verified by a human

Contrary to popular belief, facial recognition is significantly more demanding than object detection and is simply not feasible at the current resolution of public camera feeds. So to answer the frequently asked question: this tool cannot be used to find specific people.

Ethical Considerations

ArguX connects to camera feeds that are accessible through public directories like Insecam, which may include:

  • Cameras with default credentials that haven't been changed
  • Improperly secured camera feeds
  • Cameras intentionally made public by their owners

It's important to understand that while these feeds are accessible to the average user through directory websites, this doesn't always mean they were intentionally made public by their owners. When using ArguX:

  • Respect privacy and legal regulations in your jurisdiction
  • Do not use for surveillance or monitoring individuals
  • Do not share or publish content that contains private or sensitive information

As the creator of ArguX, I provide this tool strictly for research and educational purposes. I assume no liability and am not responsible for any misuse, illegal application, or damage caused by ArguX or modified versions of it. Users are solely responsible for ensuring their use of ArguX complies with all applicable laws and ethical standards.

๐Ÿค Contributing

Contributions to ArguX are welcome! Please follow these steps:

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature/awesome-feature
  3. Commit your changes: git commit -am 'Add awesome feature'
  4. Push to the branch: git push origin feature/awesome-feature
  5. Open a Pull Request

Please ensure your code follows the project's coding style and is properly tested.

ArguX is licensed under the GNU General Public License v3.0 - see the LICENSE file for details.

๐Ÿ™ Acknowledgments

  • Ultralytics for their incredible YOLO implementation
  • Insecam for aggregating publicly available camera feeds
  • ip-api.com for providing geolocation data
  • Celery for the distributed task queue framework
  • FastAPI for the high-performance API framework
  • All the open-source libraries and tools that make ArguX possible

About

An advanced OSINT tool to gather and analyze publicly available camera feeds.

Topics

Resources

License

Stars

Watchers

Forks

0