Summary

Total Events
— today · — this week
Avg Block Duration
per crossing event
Longest Block
single event record
Total Blocked Time
all-time cumulative
Night Events
of total crossings
Events per Day (last 30 days)
Activity by Hour of Day (EDT)
Block Duration Distribution
Day vs Night Split

Day Detail

Crossing Activity Timeline
Select a date above to view that day's crossing timeline.

Recent / Detailed Events

Recent Events
#CameraStart (EDT)End (EDT)Duration ConditionsSnapshot

AI Traffic Analysis

No reports available yet.
Reports are generated daily at 6:00 AM EDT.

Downriver Train Spotter

A community project monitoring railroad grade crossings across Downriver Michigan in real time. Powered by computer vision and running 24/7 on local hardware.

Events Logged
Active Crossings
2026
Year Started

Monitored Crossings

How It Works

📷
Camera Polling
Each crossing camera is polled every 30 seconds via static JPEG or YouTube live stream. Motion is detected using pixel-difference in the crossing band.
🤖
YOLO Detection
Per-camera fine-tuned YOLOv8 models provide fast object detection (≈50ms). Each model is trained on labeled frames from its specific crossing.
🔍
GroundingDINO
A secondary open-vocabulary model verifies YOLO detections and annotates bounding boxes. Runs on an NVIDIA Quadro P4000 GPU.
📊
State Machine
A finite state machine (IDLE → PENDING → BLOCKED) filters noise and triggers alerts only on confirmed, sustained detections.
📱
Mobile App
A native Android app provides live crossing status, push notifications, and a homescreen widget — keeping you informed without opening the dashboard.
🏠
Self-Hosted
Everything runs on repurposed local hardware on a home ISP, with Cloudflare providing always-on caching and DDoS protection.
Detection Pipeline
1
Frame Capture & Motion Detection
Camera polled every 30s. Pixel-difference heuristic in the crossing band determines if motion warrants running the full CV pipeline.
2
YOLO-World Pre-Filter
YOLOv8 runs inference in ~50ms. A per-camera confidence threshold gates whether GroundingDINO is invoked.
3
GroundingDINO Geometry Verification
Proposes bounding boxes and verifies geometry (width, height, aspect ratio). Filters false positives from shadows and vehicles.
4
State Machine & Alert
Confirmed detections advance the FSM. After N consecutive hits, the crossing is marked BLOCKED and alerts fire. N consecutive misses clear it.

Privacy Policy  ↗ downrivertrains.com/privacy

Effective date: June 2026

Downriver Train Spotter (“we,” “us,” or “our”) operates the downrivertrains.com website and the Downriver Train Spotter Android application (collectively, the “Service”). This policy describes what information we collect, how we use it, and your rights.

What We Monitor

We monitor publicly-visible railroad grade crossings using cameras located on or near public rights-of-way. The Service captures still images at 30-second intervals. Images show roads, railroad tracks, crossing gates, and trains — not individuals or private property.

Information We Do Not Collect

  • We do not collect names, email addresses, or any account information.
  • We do not perform facial recognition, license plate reading, or identification of individuals or vehicles.
  • This website uses no analytics cookies and no third-party tracking scripts.
  • No personal information is required to use this website.

Mobile App — Data Practices

  • No account required. The app does not require sign-in and does not collect your name, email, or password.
  • Push notification token. If you enable push notifications, your device’s push notification token is stored on our server solely to deliver crossing alerts. This token is not shared with any third party and is deleted when you unsubscribe.
  • Notification preferences. Your per-camera alert settings and active-hour schedule are stored on our server to personalize when you receive notifications. This data is not linked to any personal identity.
  • No location access. The app does not request or use device location.
  • No camera or microphone access. The app does not access your device camera or microphone.
  • No advertising. The app contains no ads and no advertising SDKs.

Image Retention

  • Rolling snapshots: 24-hour diagnostic images are automatically deleted on a rolling basis.
  • Event images: Best-frame snapshots captured during confirmed train detections are retained indefinitely for historical analysis and display on this dashboard.
  • Privacy masking: For cameras on private or business property, configurable blur or blackout regions are applied to exclude sensitive areas from all stored images before they are saved or served.

Third-Party Services

  • Cloudflare: This website is served through Cloudflare, which may log standard request metadata (IP address, user agent) for security and caching purposes. See Cloudflare’s Privacy Policy.
  • Google Play / Firebase: The Android app is distributed through Google Play. Push notifications are delivered via Firebase Cloud Messaging (FCM). See Google’s Privacy Policy.

Children’s Privacy

The Service is not directed to children under 13. We do not knowingly collect any personal information from children.

Changes to This Policy

We may update this policy from time to time. Changes will be posted on this page with an updated effective date. Continued use of the Service constitutes acceptance of any changes.

Contact

To request image removal, data deletion, or to discuss camera partnership terms, contact us at [email protected].  View full policy →

Get in Touch

Contact & Feedback

Questions, corrections, business inquiries, or camera partnership opportunities — we'd love to hear from you.