Skip to main content

Image Refresh Agent

The Image Refresh Agent manages periodic refresh of traffic camera images for real-time monitoring.

πŸ“‹ Overview​

PropertyValue
Modulesrc.agents.data_collection.image_refresh_agent
ClassImageRefreshAgent
AuthorUIP Team
Version1.0.0

🎯 Purpose​

  • Refresh camera images at configurable intervals
  • Monitor image availability and quality
  • Trigger CV analysis on new images
  • Manage image storage and lifecycle

πŸš€ Usage​

Start Image Refresh​

from src.agents.data_collection.image_refresh_agent import ImageRefreshAgent

agent = ImageRefreshAgent()

# Start refresh for all cameras
await agent.start_refresh(
interval_seconds=30,
cameras="all"
)

Refresh Specific Cameras​

# Refresh specific cameras
await agent.refresh_cameras([
"CAM_001", "CAM_002", "CAM_003"
])

# Refresh by zone
await agent.refresh_zone("district_1")

Get Image Status​

# Get refresh status
status = await agent.get_status()
# {
# "total_cameras": 150,
# "active": 145,
# "failed": 3,
# "offline": 2,
# "last_refresh": "2025-11-29T10:30:00Z"
# }

βš™οΈ Configuration​

# config/cv_config.yaml
image_refresh:
enabled: true

# Refresh settings
refresh:
default_interval_seconds: 30
priority_interval_seconds: 10 # For high-priority cameras
max_concurrent: 50

# Image settings
image:
format: "jpeg"
quality: 85
max_size_kb: 500

# Storage
storage:
local_path: "data/images"
retention_hours: 24

# Failure handling
failure:
max_retries: 3
retry_delay_seconds: 5
offline_threshold: 5 # Mark offline after N failures

πŸ“Š Image Events​

EventDescriptionTrigger
image.refreshedNew image capturedSuccessful refresh
image.failedRefresh failedNetwork/camera error
camera.offlineCamera marked offlineMultiple failures
camera.onlineCamera back onlineSuccessful after offline

πŸ”„ Integration with CV​

# Register CV analysis callback
agent.on_refresh(lambda camera_id, image:
cv_agent.analyze(camera_id, image)
)

See the complete agents reference for all available agents.