[머신러닝 시스템 설계] 2 구글 스트리트 뷰 블러링 시스템

2026. 4. 19. 20:49·인공지능(AI)/머신러닝(ML)
본 게시글은 알렉스 쉬, 알리 아미니안(최종일 옮김)의 "가상면접 사례로 배우는 머신러닝 시스템 설계 기초"를 읽고 정리한 내용에, 개인적인 이해를 추가한 글입니다.

 

Overview

머신러닝 시스템 설계 문제에서는 단순히 모델을 만드는 것이 아니라, end-to-end 관점에서 문제를 어떻게 정의하고 풀어가는지가 중요합니다.

 

이 글에서는 그 중 하나인 구글 스트리트 뷰 블러링 시스템을 예시로, 개인정보 보호를 위한 ML 시스템 설계 과정을 단계별로 정리해보겠습니다.

1️⃣ 요구사항 명확화


문제: 구글 스트리브 뷰에서 개인정보 보호를 위한 블러링 시스템을 설계하시오.

구글 스트리트 뷰 예시 (TMI: 생각보다 한국 구글맵은 blur 처리가 잘 안되고 있다..)

 

 

스트리트 뷰에서는 거리 이미지가 그대로 노출되기 때문에, 사람 얼굴이나 차량 번호판과 같은 개인 정보는 반드시 가려야 합니다.

즉, 아래와 같은 시스템을 설계하는 것이 목표입니다.

  • 입력: 스트리트 뷰 이미지
  • 출력: 얼굴 / 번호판이 블러 처리된 이미지

 

고려해야 할 포인트들

즉, 아래의 목표를 고려하여 사용자의 개인정보를 보호할 수 있는 블러링 시스템을 설계하는 것이 최종 목표입니다.

비즈니스 목표 사용자의 개인정보 보호 (privacy preservation)
시스템 기능 - 이미지 내 객체(얼굴, 번호판) 탐지
- 해당 영역에 대해 자동 블러링 처리
데이터 - 약 100만 개의 라벨링 데이터 (얼굴, 번호판 bounding box 포함)
- 데이터 편향(인종, 성별 등) 은 고려하지 않는다고 가정
제약 조건 - 실시간 처리 필요 없음 (오프라인 처리 가능)
- 정확도가 latency보다 중요
시스템 규모 글로벌 사용자 대상 (대규모 이미지 처리 필요)
성능 요구사항 - 민감 정보는 놓치지 않는 높은 recall
- 과도한 블러링 방지를 위한 precision도 중요

 

 

2️⃣ ML 문제로 구조화


비즈니스 문제를 ML 문제로 재정의해봅시다. 

ML 목표로 재정의: 이미지에서 관심있는 객체를 정확하게 감지하는 것

 

시스템 입출력 정의:

이 경우, I/O는 다음 처럼 생각할 수 있습니다: Input: 이미지, Output: 객체 감지 결과 (bounding box + object class)

 

이 시스템은 단순 classification이 아니라, "어디에 무엇이 있는지"를 찾는 객체 감지(Object Detection) 문제입니다.

 

적합한 ML 접근 방식 선택:

객체 감지 문제는 일반적으로 두 가지 단계로 구성됩니다.

  • Step 1: 객체 위치 예측 (Bounding Box) → 회귀 문제
  • Step 2: 객체 종류 분류 → 분류 문제

 

모델 구조 선택:

객체 감지 모델은 크게 1단계/2단계 네트워크 두 가지로 나뉩니다.

 

2단계 네트워크: 두 개의 개별 모델을 사용하는 네트워크로, 속도는 더 느리지만 bounding box 감지 후, 객체 클래스를 할당하므로 정확도가 더 높습니다.

 

크게 (1단계) Region Proposal Network (RPN)로, 후보 영역을 생성하는 단계와 (2단계) 제안된 각 영역을 처리하여 객체 클래스로 분류하는 classification 단계로 구분됩니다.

 

일반적으로 사용하는 2단계 network로는 R-CNN, Fast R-CNN, Faster-RCNN이 있습니다.

 

1단계 네트워크: 위의 두 단계를 개별 모델이 아닌, 한 모델로 통합한 버전으로 좀 더 최근 방식입니다.

 

영역 제안을 명시적으로 감지하지 않아도, 바운딩 박그와 객체 클래스를 동시에 생성할 수 있습니다.

 

일반적으로 사용되는 1단계 network로는 YOLO, SSD등이 있습니다.

 

이 문제에서는

  • 실시간성이 중요하지 않고
  • 개인정보 보호가 핵심이므로

👉 이 문제에서는 실시간성이 중요하지 않고, 개인정보 보호가 핵심이므로 느리지만 더 정확한 2-stage 방식 (Faster R-CNN 등)을 선택하는 것이 합리적입니다.

 

 

3️⃣ 데이터 준비


ML 모델 성능을 결정짓는 가장 중요한 단계 중 하나입니다.

데이터 준비 프로세스


데이터 준비 단계는 크게 (1) 데이터 엔지니어링, (2) 피처 엔지니어링으로 나눌 수 있습니다.


(1) 데이터 엔지니어링

데이터를 수집하고, 저장하고, 검색하고, 처리하는 전체 파이프라인을 설계하는 단계입니다.

이 시스템에서 사용할 수 있는 데이터 소스는 다음과 같습니다.

- 스트리트 뷰 이미지
- bounding box 라벨 (얼굴, 번호판)
- 메타데이터 (위치, 시간 등)




(2) 피처 엔지니어링


이 시스템에서는 입력이 이미지이기 때문에, 이미지 전처리가 필수적으로 수행되어야 합니다.

대표적인 전처리 과정은 다음과 같습니다.

- resizing
- scaling
- z-score normalization
- 이미지 색상 모드 통일 (RGB 등)


이미지 전처리 관련해서 좀 더 상세한 내용이 궁금하다면 아래 글을 참고하면 좋습니다 :)

- [패턴인식] 영상 처리(1) : 디지털 영상, 히스토그램: https://codingsmu.tistory.com/102
- [패턴인식] 영상 처리(2) : 이진영상, 영상 처리의 세가지 기본 연산: https://codingsmu.tistory.com/103
 

[패턴인식] 영상 처리(2) : 이진영상, 영상 처리의 세가지 기본 연산

Digital Image Processing목차0. Preview1. 디지털 영상이란?2. 히스토그램3. 이진 영상4. 영상 처리의 세가지 기본 연산5. 다해상도6. 모폴로지7. 컬러  은 이전 게시글을 참고해주세요https://codingsmu.tistory.co

codingsmu.tistory.com

 

 

추가로, 수집한 데이터 수에 따라 다음의 (opt.) 데이터 증강 기법을 사용할 수도 있습니다.

  • random crop
  • brightness / saturation 변화
  • noise 추가

단, 회전 혹은 뒤집는 경우 바운딩 박스의 ground truth 값도 함께 변환되어야 합니다.

 

 

 4️⃣ 모델 개발


모델 개발 단계에서는 (1) 모델 선택, (2) 학습 방식 (w/ loss function)을 결정합니다.


(1) 모델 선택

2단계 네트워크를 선택해야 됩니다.

2단계 객체 감지 네트워크

convolutional layers

  • input image를 처리하고 feature map을 출력

Region proposal network (RPN)

  • 객체를 포함할 수 있는 후보 영역을 제안
  • NN을 아키텍처로 사용하고, feature map을 입력으로 받아 이미지의 후보 영역을 출력

classifier

  • 각 후보 영역의 객체 클래스를 결정함.
  • input으로 feature map과 제안된 후보 영역을 입력으로 받아 각 영역에 객체 클래스를 할당함.
  • 일반적으로 NN 기반

 

(2) 모델 학습

훈련시 일반적으로 다음 세 단계를 포함합니다: forward propagation, backward propagation, loss function

 

첫 번째 네트워크인, 객체 감지 모델의 loss function은 예측된 객체의 bounding box가 ground truth와 얼마나 일치하는지로 계산합니다. 이 때, regression loss로 MSE와 같은 표준 회귀 손실 함수를 사용하게 됩니다. 👉  L_reg


두 번째 네트워크인, 객체 분류 모델의 loss function은
앞 단계에서 감지된 bounding box에 객체 클래스를 예측해야 합니다. 이 때, classification loss로 cross entropy와 같은 표준 분류 손실 함수를 사용하게 됩니다. 👉  L_cls

 

최종 Loss Function

모델의 전반적인 성능을 측정하기 위해, 최종 loss function으로는 균형 매게변수 lambda로 가중치를 부여한 분류 손실과 회귀 손실의 결합값을 사용합니다.

 

 

5️⃣ 평가



모델 성능 평가는 크게 (1) 오프라인 평가, (2) 온라인 평가로 나눌 수 있습니다.

두 평가 메트릭을 살펴보기 전에, 객체 감지 평가 관련한 핵심 개념인 IoU에 대해 먼저 알아보고자 합니다.

 

Intersection over Union (IoU)는 예측 박스와 GT 박스의 겹침 정도를 나타내는 값으로 1에 가까울 수록 예측값이 GT와 완전히 일치함을 말합니다. 1은 드물게 나타나는 값으로 보통은, threshold 값을 정해, 해당값을 기준으로 넘는 값에 대해서는 정답, 이하 값은 오탐으로 분류하게 됩니다.

IOU 공식



(1) 오프라인 평가
객체 감지에서는 단순 accuracy보다 다음 지표를 사용합니다.

Precision / Recall

  • Precision: 예측 중 정답 비율
  • Recall: 실제 정답 중 맞춘 비율

이 문제에서는 개인정보가 유출되는 것이 더 문제가된는 상황이므로, 특히 Recall이 중요합니다.

 


ML의 기본 평가 매트릭 관련해서는  아래 글을 참고하면 좋습니다 :)

- [ML] 모델 성능을 측정하는 네가지 지표: https://codingsmu.tistory.com/88

 

[ML] 모델 성능을 측정하는 네가지 지표

기계학습(ML : Mahine Learning) 모델의 성능을 측정하는 통계적 지표로는 다음과 같이 네 가지 종류가 존재한다 인식 성능 측정 Accuracy: 정확도 혼동 행렬(Confusion Matrix)을 이용한 방식 (또는 오차행렬

codingsmu.tistory.com

 

 

Average Precision (AP)

  • 다양한 IoU threshold에서 precision 평균입니다. P(r)은 임계값 'r'에서의 정밀도를 나타냅니다.

Mean Average Precision (mAP)

  • 모든 클래스(AP)의 평균이며 모델의 전반적인 성능을 보여줄 수 있습니다. C는 모델이 감지하는 객체 클래스의 총 수 입니다.

 

(2) 온라인 평가

실제 서비스에서는 다음을 확인해야 합니다. “이 시스템이 정말 개인정보를 잘 보호하고 있는가?”

대표적인 지표:

  • 사용자 신고 수
  • 개인정보 노출 관련 이슈 발생 빈도
  • 블러링 오류 (미탐 / 과탐)
반응형

'인공지능(AI) > 머신러닝(ML)' 카테고리의 다른 글

[머신러닝 시스템 설계] 3 유튜브 동영상 검색  (6) 2026.04.25
[머신러닝 시스템 설계] 1 시각 검색 시스템  (0) 2026.04.10
머신러닝의 종류: 지도학습과 비지도학습  (0) 2022.10.12
앙상블(Ensemble) 기법  (1) 2022.07.15
[핸즈온 머신러닝] 5. 정규화  (0) 2021.12.05
'인공지능(AI)/머신러닝(ML)' 카테고리의 다른 글
  • [머신러닝 시스템 설계] 3 유튜브 동영상 검색
  • [머신러닝 시스템 설계] 1 시각 검색 시스템
  • 머신러닝의 종류: 지도학습과 비지도학습
  • 앙상블(Ensemble) 기법
계속지나가기
계속지나가기
NLP Engineer
  • 계속지나가기
    코딩스뮤
    계속지나가기
  • 전체
    오늘
    어제
    • 코딩스뮤:)
      • Algorithm
        • 백준 문제풀이
        • 프로그래머스 문제풀이
        • 알고리즘 이론
        • 자료구조
        • SW Expert Academy
      • 인공지능(AI)
        • LLMs
        • 자연어처리(NLP)
        • 컴퓨터비전(CV)
        • 딥러닝(DL)
        • 머신러닝(ML)
        • 인공지능기초수학
        • 선형대수학
      • 컴퓨터 세팅
      • Computer Science
        • 유닉스프로그래밍
        • 프로그래밍언어론
        • 디자인패턴
        • 클린코드
        • SW 영어
        • 리눅스
        • 논리회로
      • Server
        • Docker
  • 블로그 메뉴

    • 홈
    • Who Am I(CV)
    • 태그
  • 링크

    • 깃허브 주소
  • 공지사항

  • 인기 글

  • 태그

    지도학습
    결정경계
    컴퓨터비전
    비용함수
    MaximumFlow
    LM
    NLP
    ComputerVision
    손실함수
    machinelearning
    SIFT
    파이썬 클린코드
    선형회귀
    패턴인식
    경사하강법
    알고리즘
    DIP
    디지털이미지처리
    비지도학습
    군집화
    f1-score
    네트워크플로우
    최대유량
    에지검출
    DigitalImageProcessing
    ML
    networkflow
    기계학습
    언어모델
    머신러닝
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
계속지나가기
[머신러닝 시스템 설계] 2 구글 스트리트 뷰 블러링 시스템

티스토리툴바