현대 사회의 곳곳에는 수많은 센서가 설치되어 있습니다. 온도, 습도, 압력, 진동, 위치, 속도, 이미지, 음성 같은 물리적 정보들이 지속적으로 수집됩니다. 스마트 시티, 스마트 팩토리, 스마트 홈, 자율주행 자동차 같은 곳에서 센서로부터의 데이터는 매우 중요합니다.
그러나 센서에서 수집되는 원본 데이터는 바로 사용할 수 없습니다. 측정 오류, 노이즈, 결측값 같은 문제들이 포함되어 있습니다. 또한 여러 센서로부터의 데이터가 다양한 형식으로 들어오므로 이를 통일하고 정렬해야 합니다. 더 나아가 서로 다른 센서로부터의 정보를 결합하여 더 정확한 상황 인식을 만들어야 합니다.
피지컬 AI 데이터 가공은 물리 공간에서 수집된 센서 데이터를 정제하고 통합하며 의미 있는 정보로 변환하는 과정입니다. 이는 센서 기술과 인공지능이 결합된 분야입니다.

센서는 물리 세계의 정보를 전기 신호로 변환합니다. 그러나 이 과정에서 여러 문제가 발생합니다. 첫째는 측정 오류입니다. 같은 현상을 여러 번 측정해도 측정값이 약간씩 달라집니다. 이는 센서의 정확도 한계 때문입니다.
둘째는 외부 간섭입니다. 원하지 않는 신호가 섞여 들어옵니다. 예를 들어 온도 센서는 주변 열원의 영향을 받을 수 있고 가속도 센서는 중력의 영향을 받습니다. 이러한 간섭을 노이즈라고 합니다.
셋째는 시간 동기화의 문제입니다. 여러 센서에서 동시에 데이터를 수집해야 하는데 각 센서의 시계가 정확히 맞지 않을 수 있습니다. 또한 데이터 전송 지연도 발생합니다.
넷째는 결측값입니다. 센서가 작동하지 않거나 통신이 끊기면 데이터가 들어오지 않습니다. 데이터 분석 시 결측값이 있으면 결과의 신뢰도가 떨어집니다.
▲ 이러한 문제들을 해결하는 것이 데이터 가공의 핵심입니다.
▲ 원본 데이터를 정제하고 보정하여 신뢰할 수 있는 데이터를 만듭니다.
센서 데이터에서 노이즈를 제거하는 것은 기본적인 데이터 가공 작업입니다. 가장 간단한 방법은 평균값을 이용하는 것입니다. 일정 시간 동안의 측정값들의 평균을 계산하면 순간적인 변동이 완화됩니다.
그러나 단순 평균 방식은 중요한 변화를 놓칠 수 있습니다. 온도가 급격히 상승하는 현상이 일어나는데 평균을 사용하면 이를 감지하기 어렵습니다. 따라서 더 정교한 필터링 기법이 필요합니다.
칼만 필터(Kalman Filter)는 이러한 상황에 효과적입니다. 이 필터는 이전 상태와 현재 측정값을 함께 고려하여 최적의 상태 추정값을 계산합니다. 급격한 변화도 따라갈 수 있으면서 노이즈는 제거합니다.
또 다른 방법은 웨이블렛 변환(Wavelet Transform)입니다. 신호를 다양한 주파수 성분으로 분해합니다. 노이즈는 특정 주파수 대역에 집중되는 경향이 있으므로 이 부분을 제거합니다. 신호의 급격한 변화도 주파수 분석으로 감지할 수 있습니다.

센서 네트워크에서 결측값은 흔히 발생합니다. 센서 고장, 통신 끊김, 배터리 부족 같은 다양한 원인이 있습니다. 결측값이 있으면 데이터 분석이 어렵거나 불가능할 수 있습니다.
결측값을 처리하는 방법은 여러 가지입니다. 가장 간단한 방법은 결측 부분을 제거하는 것이지만 시계열 데이터에서는 시간 정보가 손상됩니다. 따라서 보간(Interpolation)을 사용합니다.
선형 보간은 결측값 양쪽의 값을 잇는 직선으로 결측값을 추정합니다. 이는 간단하지만 데이터의 특성을 반영하지 못할 수 있습니다. 스플라인 보간은 곡선을 그려서 더 부드럽게 연결합니다.
더 고급 방법은 머신러닝을 사용하는 것입니다. 주변 데이터의 패턴을 학습하여 결측값을 예측합니다. 예를 들어 온도는 시간대에 따라 규칙성이 있으므로 이를 학습하여 결측값을 추정합니다. 또한 다른 센서의 정보를 활용할 수도 있습니다. 습도와 온도는 상관관계가 있으므로 습도 데이터로부터 온도를 추정할 수 있습니다.
여러 종류의 센서로부터의 데이터를 결합하는 것을 센서 융합이라 합니다. 이를 통해 더 정확하고 완전한 정보를 얻을 수 있습니다.
예를 들어 자율주행 자동차는 카메라, 라이다(LiDAR), 레이다, GPS 같은 여러 센서를 장착합니다. 카메라는 색상 정보와 객체 인식이 우수하지만 야간에는 약합니다. 라이다는 거리 정보를 정확하게 제공하지만 색상 정보는 없습니다. 이들을 결합하면 카메라나 라이다 단독으로는 얻을 수 없는 강력한 인식 능력을 갖습니다.
센서 융합은 시간 동기화, 좌표계 통일, 데이터 정합이 필요합니다. 각 센서의 데이터가 정확히 같은 시각을 나타내도록 맞춰야 합니다. 또한 센서마다 좌표계가 다를 수 있으므로 이를 통일합니다. 데이터 정합은 각 센서의 신뢰도를 고려하여 최종 결과를 계산합니다.
인공지능은 센서 융합의 가중치를 자동으로 학습할 수 있습니다. 상황에 따라 어떤 센서를 더 신뢰할지를 학습합니다. 예를 들어 날씨가 맑으면 카메라의 신뢰도를 높이고 비가 오면 라이다의 신뢰도를 높입니다.


여러 센서로부터의 데이터를 분석할 때 시간 정보가 정확해야 합니다. 그러나 각 센서의 내부 시계가 정확하지 않을 수 있고 데이터 전송 지연도 발생합니다. 시간 동기화를 위해 일반적으로 중앙 시간 서버를 사용합니다. 각 센서가 주기적으로 중앙 서버의 시간을 확인하고 자신의 시계를 조정합니다. 그러나 네트워크 지연으로 인해 완벽한 동기화는 어렵습니다.
더 정교한 방법은 상대 시간을 사용하는 것입니다. 각 센서의 절대 시간을 정확히 알 필요 없이 센서 간의 상대적 시간 관계만 정확하면 됩니다. 데이터 분석할 때 이 상대 시간관계를 유지하면서 분석합니다.
또한 클록 드리프트(Clock Drift) 보정도 필요합니다. 시간이 지나면서 센서의 내부 시계가 실제 시간과 차이가 나갑니다. 이 차이를 측정하고 보정합니다.
센서 데이터에는 이상값이 포함될 수 있습니다. 센서 오동작, 측정 오류, 또는 실제 비정상 현상일 수 있습니다. 이상값을 식별하고 처리하는 것이 중요합니다.
통계적 방법을 사용하면 정상 범위를 벗어나는 데이터를 찾을 수 있습니다. 예를 들어 데이터의 평균과 표준편차를 계산하고 평균에서 3배 표준편차를 벗어나는 값을 이상값으로 판단합니다. 그러나 이 방법은 정상값의 분포가 정규분포라고 가정합니다.
더 적응적인 방법은 머신러닝을 사용하는 것입니다. 격리 포레스트(Isolation Forest)나 로컬 아웃라이어 팩터(Local Outlier Factor) 같은 기법을 사용하면 복잡한 데이터 분포에서도 이상값을 찾을 수 있습니다.
이상값을 찾은 후에는 이를 처리해야 합니다. 센서 오동작이 명확하면 해당 데이터를 제거합니다. 그러나 실제 비정상 현상을 나타내는 이상값은 분석 대상이 될 수 있습니다. 따라서 이상값의 원인을 파악하고 적절히 처리합니다.

서로 다른 센서의 데이터는 범위가 다를 수 있습니다. 온도는 0~100°C 범위이지만 습도는 0~100% 범위입니다. 압력은 더 큰 범위일 수 있습니다. 이런 데이터들을 직접 비교하면 범위가 큰 데이터가 결과를 지배합니다.
정규화(Normalization)는 모든 데이터를 동일한 범위로 변환하는 것입니다. 가장 간단한 방법은 최소값을 0으로 최대값을 1로 변환하는 것입니다. 이를 민-맥스 정규화(Min-Max Normalization)라 합니다. 표준화(Standardization)는 다른 방법입니다. 평균을 0으로 표준편차를 1로 만듭니다. 이는 데이터의 분포를 표준정규분포로 만드는 것입니다.
선택하는 정규화 방법에 따라 분석 결과가 달라질 수 있습니다. 데이터의 특성과 분석 목적에 맞는 방법을 선택합니다.
원본 센서 데이터로부터 의미 있는 특징을 추출하는 것이 중요합니다. 예를 들어 가속도계 데이터로부터 이동 속도나 거리를 계산할 수 있습니다. 심박수 신호로부터 심박 변동성을 계산할 수 있습니다.
시간 영역 특징은 데이터의 통계적 성질을 나타냅니다. 평균, 표준편차, 최대값, 최소값 같은 것들입니다. 이들은 계산이 간단하고 해석하기 쉽습니다. 주파수 영역 특징은 푸리에 변환을 사용하여 데이터의 주파수 성분을 분석합니다. 신호가 어떤 주파수에서 강한 성분을 가지는지를 파악합니다. 이는 신호의 패턴을 이해하는 데 도움이 됩니다. 시간-주파수 특징은 시간과 주파수 정보를 동시에 나타냅니다. 웨이블렛 변환이나 단시간 푸리에 변환이 사용됩니다. 이는 신호가 시간에 따라 어떻게 변하는지를 보여줍니다.
많은 응용에서 센서 데이터는 연속적으로 들어옵니다. IoT 장치, 자율주행 자동차, 산업용 센서 등에서 데이터 흐름은 끝나지 않습니다. 이를 스트리밍 데이터라 합니다.
스트리밍 데이터 처리는 배치 처리와 다릅니다. 전체 데이터를 메모리에 보관할 수 없고 한 번에 분석할 수도 없습니다. 대신 들어오는 데이터를 순차적으로 처리합니다.
온라인 학습 기법을 사용하면 스트리밍 데이터에서 패턴을 학습할 수 있습니다. 기존 머신러닝 모델은 데이터 전체가 주어진 후 학습하지만 온라인 학습은 새 데이터가 들어올 때마다 모델을 업데이트합니다. 이를 통해 환경 변화에 적응할 수 있습니다.
또한 에지 컴퓨팅을 사용하면 센서 가까운 곳에서 처리합니다. 모든 데이터를 중앙 서버로 전송하면 네트워크 대역폭이 낭비되고 지연이 발생합니다. 센서 근처의 작은 컴퓨터에서 필요한 처리를 한 후 결과만 전송합니다.

실제 시스템에서는 여러 데이터 가공 단계가 연속으로 이루어집니다. 이를 파이프라인이라 합니다. 파이프라인의 설계가 전체 시스템 성능을 결정합니다.
일반적인 파이프라인은 다음과 같이 구성됩니다. 첫째는 데이터 수집입니다. 센서로부터 데이터를 받습니다. 둘째는 데이터 정제입니다. 결측값을 처리하고 이상값을 제거합니다. 셋째는 데이터 변환입니다. 정규화하고 특징을 추출합니다. 넷째는 데이터 분석입니다. 머신러닝 모델을 적용하거나 통계 분석을 수행합니다. 다섯째는 결과 출력입니다.
파이프라인을 설계할 때는 다양한 오류를 처리해야 합니다. 센서 오작동, 네트워크 끊김, 메모리 부족 같은 상황이 발생할 수 있습니다. 이에 대한 예외 처리와 폴백 메커니즘을 준비합니다.
또한 성능 모니터링도 중요합니다. 파이프라인이 제대로 작동하는지 지속적으로 확인합니다. 처리 속도, 데이터 손실률, 오류율 같은 지표를 추적합니다.
효율적인 데이터 가공을 위해서는 하드웨어와 소프트웨어가 함께 작동해야 합니다. 센서의 특성을 이해하고 하드웨어 신호 처리를 활용합니다. 아날로그-디지털 변환기(ADC)의 샘플링 레이트를 적절히 설정합니다. 신호 대 잡음비(SNR)를 최대화하기 위해 증폭 및 필터링 회로를 설계합니다.
소프트웨어 알고리즘도 하드웨어와의 협력을 고려해야 합니다. GPU나 FPGA를 사용하면 대용량 데이터 처리를 빠르게 할 수 있습니다. 복잡한 신호 처리는 GPU에서, 실시간 처리는 FPGA에서 수행할 수 있습니다.
또한 전력 소비도 고려해야 합니다. 모바일 센서나 배터리로 작동하는 장치에서는 처리 알고리즘의 효율성이 중요합니다. 복잡한 처리가 필요한 경우 클라우드로 데이터를 전송하는 것이 더 효율적일 수 있습니다.
피지컬 AI 데이터 가공 기술은 다양한 분야에 응용됩니다. 스마트 시티에서는 교통 흐름, 대기 질, 소음 수준을 모니터링합니다. 스마트 팩토리에서는 생산 공정을 최적화합니다. 의료 분야에서는 환자의 생체 신호를 분석합니다.
자율주행 자동차는 피지컬 AI의 가장 복잡한 응용입니다. 수십 개의 센서로부터의 데이터를 실시간으로 가공하여 차량의 주변 환경을 인식하고 의사결정을 합니다. 이는 매우 높은 신뢰성과 빠른 처리 속도를 요구합니다.
향후 피지컬 AI 데이터 가공은 더욱 정교해질 것으로 예상됩니다. 센서 기술이 발전하면서 더 많은 데이터를 수집할 수 있게 됩니다. 동시에 처리해야 할 데이터량도 증가합니다. 이를 처리하기 위해 더 효율적인 알고리즘이 개발될 것입니다.
또한 엣지 인텔리전스가 발전할 것입니다. 센서 노드 자체에 인공지능을 탑재하여 로컬에서 처리하는 방식입니다. 이는 지연을 줄이고 프라이버시를 보호합니다.
