13.10.4.1 에지 AI 필터를 활용한 원본(RAW) 프레임 즉각 폐기(Drop) 및 네트워크 송출량 임계치 제어

13.10.4.1 에지 AI 필터를 활용한 원본(RAW) 프레임 즉각 폐기(Drop) 및 네트워크 송출량 임계치 제어

자율 운반 로봇(AGV)이나 감시 드론에 장착된 4K 카메라는 초당 수천만 화소의 데이터를 뿜어내는 가스관과 같다. 이 데이터 전체를 클라우드로 보내서 백엔드의 GPU 팜에서 분석하겠다는 사상은 네트워크 대역폭(Bandwidth) 요금과 지연의 저주에 포위되어 곧장 파산한다.

진정한 데이터 스트림 분산 처리(Dataflow Processing)의 철학은 엣지(Edge) 지점에서 이 무가치한 배경 이미지들(Background Noise)을 포착 즉시 사살하여, 네트워크 망으로 한 픽셀조차 내보내지 않는 트래픽 완전 봉쇄(Traffic Isolation) 에 있다. 본 절에서는 Zenoh-Flow 환경 엣지 단말에 이식된 가벼운 AI 비전 필터 오퍼레이터를 동원하여, 무거운 원본 프레임을 수학적으로 살처분해버리는 즉각 폐기 런북을 거행한다.

1. 지성 없는 퍼블리셔(Blind Publisher)의 종식

ROS2 기반 카메라 드라이버가 쏘아 올리는 데이터를 단순히 브릿지(Bridge)로 넘기는 것은 통신망에 시한폭탄을 던지는 것과 다름없다.
카메라는 벽면만 멍하니 바라보고 있어도 초당 30MB의 화면을 지성 없이(Blindly) 생산해 낸다. 변화 없는 데이터를 인터넷을 통해 전 지구 서버로 회피시키는 데 들어가는 클라우드 인그레스(Ingress) 비용은 끔찍하다.

이를 막기 위해 카메라 노드(Source)의 바로 뒷단, 즉 로컬 OS 메모리를 벗어나기 전에 엣지 비전 AI 오퍼레이터(Edge Vision AI Operator) 를 꽂아 넣는다.
이 오퍼레이터는 MobileNet이나 Yolo-v8 Nano 와 같은 초경량 신경망 모델을 안고 돌며, 들어오는 프레임(sensor_msgs/Image)을 실시간으로 씹어 삼킨다.

2. 즉각 폐기(Drop) 논리의 구현

엣지 연산망의 제1 강령은 “찾는 객체(보행자, 위험물)가 없는 프레임은 존재할 가치조차 없다“는 것이다.

# [Zenoh-Flow 파이썬 연산자(Operator)의 폐기 런북]
import cv2
from inference import YoloNano

class VisionFilterOperator:
    def __init__(self):
        self.model = YoloNano("/models/yolo8n.engine") # NPU 기반 하드웨어 가속
        self.target_class = "person" # 추적 대상 타겟

    def on_data_received(self, raw_frame_data):
        # 1. 원본 배열을 즉각 추론 엔진에 투입 (수 밀리초 소요)
        image = decode_to_cv2(raw_frame_data.payload)
        detections = self.model.detect(image)
        
        # 2. 만약 화상 안에 '사람'이 없다면?
        if not has_target(detections, self.target_class):
            # [생존 박탈] 미션 실패. 이 데이터는 네트워크로 나갈 가치가 없다!
            # 어떠한 send/publish 함수도 호출하지 않고 이곳에서 영원히 폐기(Drop)한다.
            return 
            
        # 3. 오직 '사람'이 감지된 피가 끓는 프레임의 경우에만 다음 노드(클라우드)로 살려 보낸다.
        send_to_cloud_router(raw_frame_data)

이 무자비한 폐기(Drop) 조건문 하나만으로도 평상시 공장 네트워크를 지배하던 카메라 트래픽의 99%가 허공으로 신기루처럼 사라진다. 트래픽 송출률은 초당 30프레임에서 분당 1프레임 이하의 극한 기아 상태로 전락하며, 무선 자원 블록(Cellular Resource Block)은 여타 긴급 제어 명령들을 위해 남겨진다.

3. 네트워크 송출량 임계치(Rate Limit) 제동

사람이 많이 돌아다니는 구역에 들어갔다고 치자. 갑자기 필터가 프레임을 전부 통과시키기 시작하면 네트워크는 다시 순간적인 과부하(Burst)를 맞이한다.
이를 막기 위해, 폐기를 피하고 생존한 프레임이라 하더라도 송출량 임계치(Rate / Throttle Limit) 스토퍼(Stopper)를 걸어 통제해야만 한다.

“아무리 보행자가 많고 화면이 급변하더라도 최대 송출 빈도는 1초에 2장(2 FPS)을 넘어설 수 없다“는 강제 제약 조건을 오퍼레이터 코드 하단이나 파이프라인 링크(Link) 스펙에 박아 넣는다.
이 조치를 통해 클라우드 서버는 로봇이 어떤 혼잡한 환경에 처하든 간에 미리 약속된 예산(Bandwidth Budget) 이상의 데이터 폭탄을 결코 받지 않는다.

최고의 데이터 엔지니어링은 서버를 늘리고 대역폭을 넓히는 것이 아니다. 쓸모없는 데이터를 엣지 구석에서 형체도 없이 도살해 클라우드 서버의 눈에 띄지조차 않게 만드는 무자비함이다. 이것이 Zenoh-Flow 기반 분산 구조가 지닌 압도적인 네트워크 장악력이다.