개인 서버에서 운영하는 위키의 공개 문서를 정적 사본으로 떼어 낸 사이트입니다(2026년 10월 30일 기준). 원본 위키

Privacy Masking

요약 : Image segmentation 기술로 Privacy를 보호

기간 : ~ 2022년 09월 (재직 마지막까지 진행)

언어: C/C++

개발환경 및 기술 : Linux, docker

시연 영상

https://www.youtube.com/watch?v=uUmOhEZkDOo

https://www.youtube.com/watch?v=bFuMzfEzFyk

Yolact segmentation 기반으로 사람 부분을 가려서 privacy를 보호.

Yolo 기반 head detect을 추가로 적용하여 얼굴은 더욱 보호.

문제 해결

ONNX export

학습한 python 모델을 카메라에 그대로 올릴 수 없어서, 변환이 지원되는 연산과 아닌 연산을 갈라 두 갈래로 내보냈습니다. 초록 테두리가 ONNX 로 나간 구간, 주황 테두리가 개발보드에서 C++ 로 다시 쓴 구간입니다.

flowchart TD
  Y["YOLACT · PyTorch 학습 모델"] --> S{"이 연산이 파일 변환을 지원하는가"}
  S -->|"지원"| A1["backbone · protonet"]
  S -->|"지원"| A2["linear combination · masking"]
  S -->|"지원"| A3["blur · 모자이크 — torchvision 대신 conv kernel 에 weight 를 직접 넣어 구현"]
  S -->|"미지원"| B1[["box decode"]]
  S -->|"미지원"| B2[["detection module"]]
  A1 --> O["ONNX export"]
  A2 --> O
  A3 --> O
  O --> M["AI 카메라 전용 모델로 한 번 더 변환"]
  B1 --> C["개발보드에서 C++ 로 직접 구현"]
  B2 --> C
  M --> R["개발보드 런타임 — 전용 모델 + C++ 구간"]
  C --> R
  R --> F["마스킹된 프레임"]
  O -.->|"같은 입력에 같은 출력인지 대조"| M
  classDef conv stroke:#16a34a,stroke-width:2px
  classDef cpp stroke:#ea580c,stroke-width:2px
  class A1,A2,A3,O,M conv
  class B1,B2,C cpp

기술적으로 어려웠던 경험

배운점/얻은 것