Loading...

교통속도예측

3 Contents
최신순

BeeAI 공모전 교육 영상(04) - 실시간 스트림 데이터 처리하기(76~95p)

BeeAI는 스트림 데이터를 처리함에 있어 일반적인 스트림과 실시간 스트림으로 구분하여 정교한 분석 체계를 제공합니다. 그 대표적인 사례로 지능형 교통 속도 예측 서비스를 들 수 있는데, 이는 특정 도로 링크의 속도가 15분 후에 어떻게 변할지를 예측하는 인공지능 서비스입니다. 이 시스템의 핵심은 초 단위로 유입되는 방대한 택시 속도 센서 데이터를 실시간으로 수집하고 분석하는 데 있습니다. 이를 위해 BeeAI는 다섯 개의 엔진을 유기적으로 결합한 워크플로우를 설계하여 복잡한 도심의 교통 흐름을 효과적으로 파악하고 미래의 변화를 예측할 수 있는 기반을 마련해 줍니다. IoT 디바이스나 센서에서 직접 유입되는 실시간 스트림 데이터는 정제되지 않은 원시 데이터 상태인 경우가 많습니다. 실제 현장에서는 네트워크 상황에 따라 데이터가 늦게 수집되는 지연 현상이 발생하거나, 데이터 자체가 누락되는 결측치 문제가 빈번하게 나타납니다. 또한 센서 측정 과정에서 발생하는 잡음으로 인해 속도값이 비정상적으로 튀는 경우도 존재합니다. 이러한 불완전한 데이터를 예측 모델에 그대로 활용하면 결과의 신뢰도가 크게 낮아지기 때문에, 초 단위 데이터를 1분이나 5분 단위의 평균값으로 환산하여 데이터의 해상도를 조절하고 품질을 높이는 고도의 전처리 과정이 필수적입니다. BeeAI의 예측 시스템은 엔진 A부터 E까지 다섯 개의 단계로 구성되어 실시간 데이터의 가공과 학습을 처리합니다. 먼저 엔진 A와 B는 Spark Structured Streaming 기술을 활용하여 원시 데이터를 정제하고 평균 속도를 산출하는 실시간 처리를 담당합니다. 엔진 D는 정제된 데이터를 바탕으로 학습 모델이 요구하는 시퀀스 형태의 입력 데이터셋을 생성하며, 엔진 E는 이 데이터를 사용해 주기적으로 새로운 모델을 재학습하여 최신 교통 상황을 반영합니다. 마지막 단계인 엔진 C는 갱신된 모델을 로딩하여 실시간 쿼리에 응답하고 15분 후의 예측 결과를 산출해 사용자에게 최종적인 정보를 제공하게 됩니다. 시계열 데이터의 패턴을 인식하기 위해 본 시스템은 인공 신경망의 일종인 LSTM 모델을 활용합니다. 과거의 데이터 흐름을 기반으로 미래를 예측하는 LSTM은 교통 속도 변화와 같은 시나리오에 최적화된 성능을 보여줍니다. 정확한 예측을 위해서는 5분 단위 평균 속도를 8주기 동안 모은 시퀀스 데이터가 필요하며, 이는 강남 지역 170개 도로 링크를 기준으로 총 1,360개의 수치 데이터 패턴을 형성하게 됩니다. 엔진 D는 이러한 대량의 데이터를 가로로 길게 펼치는 피벗 연산을 수행하여 CSV 파일 형태로 공급하며, 이를 통해 인공지능은 도로 상황의 연속적인 변화를 정밀하게 학습할 수 있습니다. 엔진 D는 학습용 데이터 전처리를 전문적으로 수행하는 미니 배치 엔진으로 작동합니다. 스트림 데이터가 끊임없이 유입되는 환경에서 학습 모델이 요구하는 정확한 시간 단위의 데이터를 포착하는 것은 기술적으로 매우 중요합니다. 시스템은 윈도우 크기를 설정하여 특정 구간의 데이터를 가공하고, 그룹 필터 오퍼레이터를 통해 8주기 분량의 데이터가 모두 확보되었는지 엄격하게 검증합니다. 또한 데이터의 스케일을 0과 0.4 사이로 조정하는 Min-Max 스케일링 과정과 링크 ID를 기준으로 정보를 재배치하는 과정을 거치며, 학습 엔진이 즉시 읽어 들여 활용할 수 있는 최적의 데이터셋을 실시간으로 갱신하며 파일로 저장합니다. 실시간 스트림 처리에 특화된 엔진 A와 B는 Spark Structured Streaming 프레임워크를 기반으로 구축되었습니다. 엔진 A는 초 단위 원시 데이터를 받아 1분 단위 평균 속도를 계산하며, 이때 30초의 오버랩을 설정하여 데이터 변화의 연속성을 확보하고 잡음을 제거하는 스무딩 효과를 구현합니다. 이어지는 엔진 B는 1분 단위 정보를 다시 5분 단위 평균으로 집계하여 보다 안정적인 교통 흐름 데이터를 생성합니다. 이 과정에서 Kafka 파이프 리더와 라이터가 사용되며, 실시간으로 쏟아지는 대용량 데이터를 지연 없이 처리함과 동시에 데이터 정렬과 정제 작업을 동시에 수행하여 분석의 정확도를 극대화합니다. 시스템의 지속적인 신뢰성을 확보하기 위해 워터마크와 체크포인트라는 기술적 장치가 도입되었습니다. 워터마크는 이벤트 타임을 기준으로 지연되어 도착하는 데이터를 특정 시간 동안 기다려 줌으로써 데이터 유실을 최소화하고 분석 결과의 정합성을 높여줍니다. 또한 체크포인트 기능은 예기치 못한 시스템 장애나 중단 상황이 발생했을 때, 데이터 처리 시점을 안정적으로 저장해 두었다가 복구 시 해당 지점부터 다시 연산을 재개할 수 있게 돕습니다. 이러한 고급 스트리밍 처리 기법들은 BeeAI가 실시간으로 흐르는 방대한 스트림 데이터를 처리하는 과정에서 서비스의 연속성을 보장하고 안정적인 예측 결과를 도출하는 밑거름이 됩니다.

BeeAI 공모전 교육 영상(04) - 실시간 스트림 데이터 처리하기(76~95p)
한국전자통신연구원ETRI 클래스
  • 융합
  • 공학·기술

BeeAI 활용 교육 영상(05) - [2단계] 스트림 데이터 처리하기실습

BeeAI 플랫폼을 활용하여 강남 지역의 실시간 교통 속도를 예측하는 인공지능 서비스는 현대 도시 교통 효율을 높이는 핵심적인 기술입니다. 이 시스템은 강남 일대 택시에서 전송되는 초 단위 센서 데이터를 수집하여, 170개의 도로 링크별로 15분 후의 교통 상황을 정확하게 예측하는 것을 목표로 합니다. 방대한 데이터를 단순히 수집하는 것에 그치지 않고, 복잡한 워크플로 엔진들을 통해 실시간 스트림 처리를 수행하며 지능형 교통 시스템의 기반을 마련합니다. 교통 데이터 처리는 크게 수집, 전처리, 학습, 서빙의 다섯 단계 엔진으로 구성됩니다. 택시에서 전송되는 원본 데이터는 시간 정보, 도로 링크 ID, 현재 속도라는 단순한 구조로 이루어져 있지만, 초 단위로 발생하는 데이터 양이 매우 방대합니다. 이 데이터들을 시스템이 이해할 수 있는 형태로 변형하기 위해 각각의 역할을 수행하는 엔진들을 유기적으로 연결하며, 이를 통해 결측치를 보정하고 이상치를 제거하여 교통 예측의 정확도를 확보하는 복합적인 과정을 거게 됩니다. 실시간 스트림 전처리 단계인 엔진 A와 B에서는 초 단위 데이터를 1분 및 5분 단위로 정제하는 작업을 수행합니다. 센서와 네트워크의 상태에 따라 발생할 수 있는 결측치를 채워주는 결측치 처리가 이 과정에서 이루어지며, 딥러닝 모델이 학습하기에 적합한 5분 단위의 평균 속도 데이터를 생성합니다. 이러한 스무딩 과정을 통해 데이터의 불규칙성을 완화하고, 학습 모델이 교통 흐름의 전체적인 패턴을 보다 명확하게 파악할 수 있도록 데이터의 질을 높이는 역할을 합니다. 딥러닝 학습용 데이터를 생성하는 엔진 D는 스트림 형태의 데이터를 배치 형태의 CSV 파일로 변환하는 작업을 담당합니다. 텐서플로 기반의 학습 코드가 데이터를 읽어올 수 있도록 Min-Max 스케일링을 통해 속도 값을 정규화하고, 비정상적인 이상치를 제거하는 과정을 거칩니다. 또한, 170개 도로 링크의 데이터를 시간순으로 정렬하고 피벗 연산을 수행하여, 8주기 동안의 속도 패턴이 가로 형태로 배열된 시퀀스 데이터를 생성함으로써 모델 학습을 위한 최적의 상태를 만듭니다. 교통 예측의 핵심 모델로는 시계열 패턴 학습에 탁월한 성능을 보이는 LSTM(Long Short-Term Memory) 딥러닝 모델이 사용됩니다. 이 모델은 과거 8주기(약 40분) 동안의 교통 속도 변화 추이를 분석하여 특정 도로 링크의 미래 속도를 예측하도록 설계되었습니다. 엔진 E는 주기적으로 갱신되는 최신 데이터를 학습하여 예측 모델을 최적화하며, 학습이 완료된 모델은 실제 서비스 환경에 탑재되어 시시각각 변하는 도로 상황에 유연하게 대응할 수 있는 지능을 갖추게 됩니다. 예측된 결괏값은 사용자 인터페이스를 통해 시각적으로 전달되어 실제 교통 관제나 내비게이션 서비스에 활용됩니다. 엔진 C에서 이루어지는 스트림 서빙 단계는 최신 학습 모델을 기반으로 현재 유입되는 스트림 데이터에 대한 예측을 실시간으로 수행합니다. 15분 후의 속도가 평균 이하로 예상되는 도로 링크는 빨간색으로, 원활한 도로 링크는 파란색으로 표시하는 등 예측 데이터를 직관적인 정보로 변환함으로써 사용자가 도로의 미래 혼잡도를 미리 파악할 수 있도록 돕습니다. 이 모든 과정은 Spark Structured Streaming 기술을 통해 실시간성과 안정성을 동시에 확보합니다. 워터마크 설정을 활용하여 늦게 도착하는 데이터에 대한 처리 기준을 세우고, JSON 스키마 정보를 정의하여 데이터 처리 속도를 극대화합니다. 단순한 배치 처리를 넘어 연속적으로 유입되는 스트림 데이터를 효율적으로 관리함으로써, 지능형 교통 예측 서비스가 중단 없이 실시간으로 도로 위 상황을 분석하고 대응할 수 있는 강력한 데이터 파이프라인을 완성하게 됩니다.

BeeAI 활용 교육 영상(05) - [2단계] 스트림 데이터 처리하기실습
한국전자통신연구원
  • 융합
  • 공학·기술

BeeAI 활용 교육 영상(10) - 전주기 개발실습

인공지능 서비스의 전 주기(Full-Cycle) 개발은 데이터 수집부터 전처리, 모델 생성 및 서빙에 이르는 모든 과정을 통합하는 정밀한 작업입니다. 이번 실습에서는 교통 속도 예측 시나리오를 바탕으로 실시간 시계열 데이터를 처리하는 전체 과정을 체계적으로 살펴봅니다. AE 엔진을 활용하여 초 단위로 유입되는 원천 데이터를 수집하고, 이를 5분 단위의 평균 속도로 가공하는 것이 첫 번째 단계입니다. 이 과정은 데이터의 흐름을 끊김 없이 관리하며 예측 모델이 필요로 하는 양질의 기초 데이터를 마련하는 핵심적인 기반이 됩니다. 실시간 데이터 처리를 위해 Structured Streaming 기술이 적용됩니다. Kafka 파이프 리더와 라이터를 통해 데이터가 흐르며, 스키마 정보를 설정하여 데이터 정합성을 유지합니다. 특히 IoT 기기에서 발생하는 데이터의 지연 가능성을 고려해 워터마크를 설정하거나, 시스템 장애 시 데이터 유실을 방지하기 위한 체크포인트 위치(Checkpoint Location)를 지정하는 등 안정적인 데이터 수집 환경을 구축합니다. 이러한 기술적 설정은 대규모 스트림 데이터를 신속하고 정확하게 처리하여 분석의 신뢰도를 높이는 데 필수적인 요소로 작용합니다. 수집된 데이터는 모델이 학습할 수 있는 형태로 변환되어야 합니다. Group By 오퍼레이터를 활용해 1분과 5분 단위의 윈도우 크기를 설정하고 평균 속도를 산출합니다. 이후 Min-Max 스케일러를 통해 속도 값을 0에서 1 사이로 정규화하고, Pivot 오퍼레이터로 시계열 데이터를 가로로 나열하여 벡터화합니다. 이 과정에서 컬럼의 순서를 학습 코드가 원하는 방식에 맞춰 정렬하는 힌트 정보를 제공함으로써, 모델이 입력된 데이터를 정확하게 해석하고 성능을 발휘할 수 있도록 최적의 전처리를 수행합니다. 전처리가 완료된 데이터는 TensorFlow 오퍼레이터를 통해 실제 모델에 전달됩니다. 서빙 단계에서는 미리 정의된 모델의 URL과 이름을 기반으로 현재 교통 상황을 질의하고, 모델은 15분 후의 예측 결과를 도출합니다. 결과 데이터는 다시 Kafka 파이프 라이터를 통해 특정 토픽으로 쌓이며, 이를 통해 실시간으로 예측된 교통 정보를 사용자에게 즉각 제공할 수 있습니다. 이는 정적 모델에 머물지 않고 실시간 데이터에 능동적으로 반응하는 지능형 서비스의 구체적인 구현 사례라고 할 수 있습니다. 진정한 의미의 전 주기(Full-Cycle) 개발은 모델의 지속적인 갱신을 포함합니다. 배치 엔진을 활용해 매 5분마다 최신 데이터를 수집하고 학습용 CSV 파일을 생성하며, 이를 바탕으로 딥러닝 트레이닝이 반복 실행됩니다. 사용자는 에포크(Epoch)나 목적 함수와 같은 하이퍼파라미터를 직접 설계하여 모델 성능을 최적화할 수 있으며, 새롭게 학습된 모델은 서빙 단계에 곧바로 반영됩니다. 이러한 자동화된 파이프라인은 변화하는 도로 상황에 맞춰 모델을 최신 상태로 유지하게 하며, 최종적으로 시각화 UI와 결합되어 완성도 높은 시스템이 됩니다.

BeeAI 활용 교육 영상(10) - 전주기 개발실습
한국전자통신연구원ETRI 클래스
  • 융합
  • 공학·기술