Work / P-02 · 2024 – 2025 · ISEF 2025 · HP Innovator Award

A
traffic
light
that
watches
its
crosswalk
and
waits
for
slow
walkers

YOLOv11 on crosswalk CCTV estimates each pedestrian’s speed and adapts the signal: longer for slow walkers, shorter when the crossing is empty, a warning when someone steps out on red.

Role
Solo research project · Taejon Christian International School
Recognition
Regeneron ISEF 2025 finalist · HP Innovator Award, 3rd place · KFUPM full scholarship (special award)
Stack
YOLOv11 · OpenCV · Python · Arduino · AnyLogic
Outcome
94% detection accuracy on real CCTV; congestion −16.4% when signals shorten
Demonstration model · Arduino signal, countdown and the four rules on a printed crosswalk
Real CCTV · YOLOv11 tracking, speed estimates, signal extension firing
Poster header: Enhancing Pedestrian Safety Through AI-Powered Smart Traffic Systems: Developing Smarter Roads for Safer Walks — Yunha LeeISEF 2025 poster: motivation, rationale, methodology, system testing, conclusion
ISEF 2025 poster · SOFT030 · Systems Software
Stack
Python · Ultralytics YOLOv11 · OpenCV · Arduino over serial · AnyLogic simulation
Data
Real crosswalk CCTV from the Urban Traffic Information Center open data feed
Rules
< 1.0 m/s → +5 s · on red → vehicle yellow · outside lines → alert · empty ∧ > 10 s → halve
Results
Detection 94% · speed error 8.9% · straight-line assumption 5% · congestion −16.4% / +8.7%
Timeline
2024 Korea Code Fair → national selection Dec 2024 → ISEF May 10–16, 2025
94%
pedestrian detection accuracy on real CCTV
8.9%
speed estimation error
−16.4%
congestion when empty signals are shortened
+5s
added for anyone walking under 1.0 m/s

Context

2024 – 2025
01 — Problem

Signals assume everyone walks at 1.0 m/s

Korea is a super-aged society with the highest elderly pedestrian fatality rate in the OECD, and the elderly are 60% of pedestrian deaths. Signal timing assumes 1.0 m/s; older adults walk at 0.85, or 0.73 with a mobility aid. The light turns before they reach the other side.

I started the project after watching it happen at a crossing near my school.

02 — Approach

Measure the walker, then decide

OpenCV captures the CCTV frame and YOLOv11 tracks each pedestrian with a stable ID. A perspective transform turns the camera view into a bird’s-eye map of the crosswalk, so displacement per frame times FPS gives speed in metres per second.

Four rules drive the signal through an Arduino over serial: extend by five seconds if anyone’s average speed is under 1.0 m/s; halve the remaining time if no one is crossing and more than ten seconds remain; switch vehicles to yellow if someone crosses on red; sound an alert for anyone outside the crosswalk.

00

Context

The project started at crossings near my school in Daejeon, watching older pedestrians still in the road when the light changed. Korea has the highest elderly pedestrian fatality rate in the OECD, and the elderly are sixty percent of pedestrian deaths. Signal timing assumes everyone walks at one metre per second.

The Korean working name was 신호마에스트로. It went from the 2024 Korea Code Fair through national selection in December 2024 to Regeneron ISEF 2025 in Columbus, Ohio, as a solo entry in Systems Software.

How it works

Fig. — One crossing, one frame at a time
Step 01 / 7

A frame from the crosswalk camera

OpenCV reads a frame from real crosswalk CCTV footage, pulled from the national open camera data feed.

Open Data CCTV (Urban Traffic Information Center) · cv2.VideoCapture · frame by frame

Step 02 / 7

Detect and track every pedestrian

A pretrained YOLOv11 model finds people and keeps a stable id on each one across frames.

yolo11x.pt · class 0 · persistent tracking ids · 94% accuracy on real footage

Step 03 / 7

Turn the camera view into a map

Four clicked corners of the crosswalk define a homography. The slanted camera view becomes a bird’s-eye grid where one cell is one metre.

cv2.getPerspectiveTransform · 4 corners → top-down · straight-line assumption, 5% error

Step 04 / 7

Estimate each walker’s speed

Displacement per frame on the map, times the frame rate, gives speed in metres per second. The average is tracked per id to smooth outliers.

v = Δy(m) / Δframe × FPS · tested at 0.5 / 1.0 / 1.5 m/s to a metronome · 8.9% error

Step 05 / 7

Slow walker: extend the signal

Someone is crossing at 0.85 m/s, the 15th-percentile walking speed of older adults. Under one metre per second, the rule adds five seconds.

rule 1 (extension): avg speed < 1.0 m/s → +5 s

Step 06 / 7

Empty crossing, red-light crosser

Nobody is crossing and more than ten seconds remain: the rule halves the remaining time. Someone steps out on red: vehicles get yellow and an alert sounds for anyone outside the crosswalk lines.

rule 2 (intrusion): pedestrian on red → vehicle yellow · rule 3 (boundary): outside crosswalk, 15% margin → audible alert · rule 4 (reduction): no pedestrian ∧ remaining > 10 s → halve

Step 07 / 7

Arduino drives the light

Decisions go to an Arduino over serial, which runs the signal and a seven-segment countdown. In simulation, shortening empty phases cut congestion by 16.4 percent; extending them cost 8.7.

Serial 9600 · 25 s countdown display · AnyLogic, 4 intersections, 5-hour runs

Fig. — One crossing, one frame at a time01 · A frame from the crosswalk camera
framedecisionserialCCTVYOLOv11Bird’s-eyeSpeedRulesArduinoSignalcamera view · fixed CCTV anglevehiclesped10sveh · redstage 1 / 7
cctv
Real CCTV from the Urban Traffic Information Center open data feed · 10 test frames
yolo
Ultralytics YOLOv11 (yolo11x) · person class only · tracking with persistent ids
warp
Homography from four crosswalk corners · bird’s-eye grid · corrects camera distortion
speed
Average speed per tracked id · metronome-paced trials at 0.5 / 1.0 / 1.5 m/s
rules
Four rules with fixed thresholds · all decisions are explainable, no learned policy
arduino
Arduino over serial at 9600 baud · signal lights and 7-segment countdown
signal
Pedestrian and vehicle phases · extend, shorten, or force yellow

Deep dive

05
03 — Result

Columbus, May 2025

On real crosswalk footage the detector reached 94% accuracy over ten trials; speed estimation came within 8.9% across three walking speeds. In AnyLogic, shortening empty signals cut congestion by 16.4%, and extending them for slow walkers cost 8.7%.

The project represented Korea at Regeneron ISEF 2025 in Columbus, Ohio, in the Systems Software category, and received the HP Innovator Award (3rd place, $2,000) and a KFUPM full scholarship (special award).

04 — Method

Measure first, then decide

Everything downstream depends on a trustworthy speed. The perspective transform was the key step: without it, pixels per frame near the camera and far from it mean different things. With it, displacement in metres falls out directly and the four rules can use physical thresholds.

The rules are deliberately simple and fixed. A city engineer can read them in a minute, and they can be argued with. A learned policy would have been harder to defend to the people who have to sign off on a traffic signal.

05 — Results

What the numbers say

Detection on ten real CCTV frames averaged a 6.3 percent count error, which the poster reports as 94 percent accuracy. Speed estimation across three paced walking speeds came within 8.9 percent on average, worst at the slowest speed. Assuming straight-line crossings introduces about five percent error on diagonal paths.

In AnyLogic, across four intersections and five-hour runs, a 40-second pedestrian phase instead of 50 reduced congestion by 16.4 percent, and a 60-second phase increased it by 8.7. The trade is explicit: a little delay for drivers, a safe crossing for the slowest walker.

06 — Recognition

Columbus, May 2025

The project represented Korea at Regeneron ISEF 2025 in Systems Software, booth SOFT030, and received the HP Innovator Award, third place with a $2,000 prize, and a KFUPM full scholarship (special award).

07 — Limits

What a real deployment would need

Camera angle, lighting and weather all change detection quality, and the system needs a camera that actually covers the crosswalk. The next steps on the poster still stand: validating the thresholds, field tests with slower pedestrians, and integration with an intelligent transport system rather than a standalone controller.

Specification

07
Stack
Python · Ultralytics YOLOv11 · OpenCV · Arduino over serial · AnyLogic simulation
Data
Real crosswalk CCTV from the Urban Traffic Information Center open data feed
Rules
< 1.0 m/s → +5 s · on red → vehicle yellow · outside lines → alert · empty ∧ > 10 s → halve
Results
Detection 94% · speed error 8.9% · straight-line assumption 5% · congestion −16.4% / +8.7%
Timeline
2024 Korea Code Fair → national selection Dec 2024 → ISEF May 10–16, 2025
Recognition
Regeneron ISEF 2025 finalist (SOFT030) · HP Innovator Award, 3rd place · KFUPM full scholarship (special award)
Credit
Solo project · Taejon Christian International School