인재 DB 등록 시 유의사항

CLOSE

채용공고 지원 시 유의사항

CLOSE
로그인 선택

실시간 유해 컨텐츠 필터링 서비스 - 연구 계획(1)

allonsy07 22.06.22
245 4 0

1. 연구 과제 소개

시대가 발전함에 따라 소비자의 콘텐츠 소비량 및 영상 매체 제작의 접근성이 증가하여 일평균 1억개를 넘는 영상이 업로드되고 이용 시간은 일평균 10억 시간을 넘어가고 있습니다.

제작자들은 자극적인 콘텐츠를 제작하게 되고, 소비자들은 자극적인 콘텐츠에 쉽게 노출되게 됩니다. 늘어나는 수요에 맞추어 통신/미디어플랫폼 및 서비스의 확장이 이어지고 있습니다.

현재 영상매체 플랫폼에서는 부적절한 콘텐츠를 분류 및 차단하는 방식으로 영상 파일의 제목, 세부정보, 콘텐츠 등록자의 연령 제한 설정, 사용자의 신고 등을 취합하고 있습니다.

그러나 이는 유해 콘텐츠 들로부터 사용자를 보호하기에는 역부족입니다. 유해 콘텐츠들을 실시간으로 감지하고 필터링하는 기술은 현대 사회에 실용, 윤리적으로 매우 큰 영향을 줄 수 있습니다.


이에 저희 팀은 실시간으로 웹캠 및 영상 파일의 유해 장면을 필터링하는 기술을 개발함 으로써 소비자들의 권리를 보장하고 보다 올바른 영상 매체 문화를 장려하고자 합니다.


2. 연구 과제 아이디어 - Challenges & Solution

  1. 실시간 필터링이 가능해야 한다.  

    -> "모델의 경량화" 필요

  2. 존재만으로 유해매체가 되는 것을 필터링 할 수 있어야 한다.  

    -> "Object detection" 도입

  3. 사람의 행위로 인해 유해매체가 되는 것을 필터링 할 수 있어야 한다.

    -> "Human Detection" 도입 + "행위의 대상에 따른 차별성" 필요

  4. 상황에 따라 유해매체가 되는 것을 필터링 할 수 있어야 한다.  

    -> "객체 사이의 Interaction Detection 도입

  5. 유해 매체의 등급(확신 정도)에 따른 필터링이 가능해야 한다.  

    -> "Confidence Score" 도입

  6. 지속적인 학습이 가능해야 한다.  

    -> "MLOps를 활용한 CI/CD/CT Pipeline" 구축

이 중 핵심이 되는 2, 3, 4번의 Challenge를 해결하기 위해선 유해 객체의 탐지 뿐 아니라, image의 상황을 이해 해야 합니다.

이를 해결하기 위해 저희는 Human Object Interaction detection task 를 응용하기로 계획했습니다.

또한 연구가 아닌 서비스의 측면에서 지속적인 학습을 통해 모델의 성능을 높일 수 있는 가능성 을 위해 6번의 지속적 학습을 응용하기로 했습니다.


3. 연구 내용

Model

Human Object Interaction (HOI) detection

Human Object Interaction detection이란?

  • <human, object, action> triplets를 탐지하는 task입니다.

    • Human localization, object localization, object classification, interaction classification으로 이루어진, 총 4개의 task를 내포하고 있습니다.

    • 즉, image내에 어디에 사람이 있는지, 어디에 객체가 있는지, 객체가 무엇인지, 사람과 객체 사이에 어떤 상호작용이 일어나고 있는지 를 알아내는 것이 목적입니다.

  • 사람과 객체 사이의 interaction을 탐지함으로써 보다 심도 깊은 scene understanding을 진행합니다.

  • Detection을 선행한 이후 Interaction classification을 진행하는 2-stage model과

  • Detection과 Interaction classification을 동시에 진행하는 1-stage model이 존재합니다.

  • Benchmark dataset으로는 V-COCO, HICO-DET이 널리 사용됩니다.

WHY HOI?

  • 2번 Challnge를 해결할 수 있는 방법으로 객체를 탐지하는 Object Detection task가 존재합니다.

    • Object detection은 image내에서 객체(object)의 위치를 찾아내고(localization), 해당 객체가 어떤 것인지(classification)를 알아내는 것이 목적입니다.

    • 이를 사용하면 유해 객체를 탐지하는 것(2번 challenge)을 해결할 수 있지만, 사람의 행위로 인한 유해 콘텐츠를 판별하는 것(3번 challenge)과 상황에 따라 판단 결과가 달라지는 유해 콘텐츠(4번 challenge)를 감지할 수 없습니다.


  • 3번 Challenge를 해결할 수 있는 방법으로 Human Pose Estimation task가 존재합니다.

    • Human Pose Estimation은 image내에서 사람의 위치를 찾아내고(localization) 어떤 동작을 취하고 있는지(pose(action) estimation) 알아내는 것이 목적입니다.

    • 이를 사용하면 사람의 행위로 인한 유해 콘텐츠를 판별하는 것(3번 Challenge)을 해결할 수는 있지만, 상황에 따라 판단 결과가 달라지는 유해 콘텐츠(4번 Challenge)를 감지할 수 없습니다.


  • 2, 3, 4번 Challenge를 해결하기 위해서는 객체를 탐지할 수 있어야하며(Object detection), 사람을 탐지하고(Human detection) 사람이 객체와 어떤 상호작용을 하고 있는지(Human pose estimation, human object interaction(action) classification)를 알 수 있어야 합니다.

    • 이 세가지 문제를 모두 해결할 수 있는 방법이 Human Object Interaction 입니다.


  • Base model엔 HOI task의 SOTA 모델을 구현하여 사용할 예정입니다.

  • Base model 중 속도와 정확도를 고려하여 1-stage에서 4가지를 선정하여 구현 -> 수정순으로 진행하려 합니다.

  • SOTA 모델들을 직접 구현해 자체 데이터셋을 사용해 봄으로써, HOI task에 대한 이해도 증가 및 자체 모델 개발에 대한 유의미한 방향성 제시가 가능해질 것으로 기대하고 있습니다.

    CDN : https://github.com/YueLiao/CDN

    QPIC : https://github.com/hitachi-rd-cv/qpic

    HOTR : https://github.com/kakaobrain/HOTR

    ASNET : https://github.com/yoyomimi/AS-Net

  • 대부분의 HOI task는 static image에 대해서 연구가 이루어지고 있습니다. 저희는 동영상에서의 HOI를 바탕으로 유해 콘텐츠를 필터링 하는 것이 목적이기 때문에, object tracking task도 함께 고려하고 있습니다. Reference model은 아래와 같습니다.

    Trackformer : https://github.com/timmeinhardt/trackformer

    TransTrack : https://github.com/PeizeSun/TransTrack

    TransCenter : https://github.com/yihongXU/TransCenter


Own Model (To be modified)


모델은 크게 3가지 부분으로 나누어집니다.

1) Feature Extraction & Detection

  • 두 detection model의 결과를 사용해 1차적으로 유해 객체 필터링을 진행합니다.

  • 물체 자체로 유해 콘텐츠가 되는 것은 많지 않습니다. (ex: 담배, 총 등)

  • 이는 "한정된 종류의 object만 정확하게 classification하면 된다"는 것을 의미합니다.

  • 따라서 Object detection에 가벼운 모델을 사용해 몇가지 종류만 정확히 분류하도록 합니다.

  • 해당 Object의 유해도를 Confidence Score를 이용하여 나타냅니다.

2) Pair Generation

  • CNN으로 뽑아낸 이미지의 feature에 Global feature를 추가하기 위하여 Positional Encoding을 한 뒤 Transformer Encoder를 통해 attention을 계산합니다.

  • attention, human과 object detection한 결과물을 이용하여 pairing을 진행합니다.

  • Interaction classification 시간 단축을 위해 <human, human>, <human, object> pairing을 진행합니다.

3) Interaction & Harmfulness Classification

  • <human, human>, <human, object> pair에서 Binary Score를 계산한 후, Feed forward Network의 Input으로 넣어줌으로써 Input pair의 interaction이 무엇인지 예측하도록 합니다.

  • Output은 <human, human or object, action>의 triplet으로 나오게 됩니다.

  • Output으로 나온 triplet의 Confidence Score를 계산하여 유해도를 나타낼 수 있도록 합니다.

추후 기존의 two-stage의 sequential HOI detector 방식을 적용시켜 detection을 선행한 후 별도의 후처리 단계를 통해 human-object pair를 연결시키는 방식을 적용하여 비교 및 분석할 계획입니다.

다음으로, parallel HOI detector 연구를 통해 실시간 필터링이 가능하도록 inference time 및 computational cost 측면의 효율성을 증가시킬 수 있는 방안을 중점으로 연구를 진행할 계획입니다.

Confidence Score를 활용하여 해당 매체의 유해도를 나타냄으로써, 판단이 모호한 유해매체에 대해서는 재검증이 가능하도록 구상하였습니다.


Dataset


  • 정량평가는 기존의 모델들과 동일하게 V-COCO, HICO-DET으로 진행할 예정입니다.

  • V-COCO, HICO-DET 데이터셋은 이미지에서 human과 object에 bounding box가 쳐져있고, labeling이 <human, object, action> 의 triplet의 형태로 되어있습니다.

  • V-COCO, HICO-DET은 각각 10,346장, 47,776장의 image로 이루어져 있습니다.


  • Detection DB, HOI DB 구축은 웹 크롤링을 이용해 2 가지로 나누어서 수집할 예정입니다.

    • 존재 자체의 유해도가 높은 object에 대한 dataset (ex: 담배, 총, 칼, 성인용품 등)

    • 유해도가 높은 행위에 대한 dataset (ex: 때리기, 차기, 찌르기 등)

  • 충분한 크기의 dataset을 구축하는 것은 소모적이고 프로젝트 기간 또한 한정적이라는 문제점이 있습니다.

    -> 이는 MLOps를 활용한 지속적인 학습 을 통해 극복할 예정입니다.


Development

WebRTC


  • 실시간 영상 통화 서비스는 웹 서비스 형태로 배포할 계획입니다. WebRTC 기술을 활용한 P2P 통신을 통해 중앙 서버의 부하를 줄이는 방식으로 구현할 예정입니다.

    • WebRTC 기술을 클라이언트 간의 양방향 통신을 위한 기술입니다.

      클라이언트 간의 통신을 위해 서로의 ip 주소와 port 번호를 공유해야하므로 STUN/TURN 서버를 중간에 두어 같은 room에 있는 클라이언트의 ip 주소와 port 번호 등의 정보를 공유합니다.


  • 프로젝트는 자바스크립트를 기반으로 구현할 예정입니다.

    전반적으로 사용되는 기술 스택은 위의 사진과 같습니다. 또한 WebRTC 구현을 위한 클라이언트와 서버 간의 통신에는 두 가지 라이브러리를 활용할 예정입니다.

    1. WebSocket을 활용하기 위한 socket io 라이브러리

    2. P2P 통신을 위한 PeerJS 라이브러리

  • 참고할 오픈 소스와 공식 문서는 다음과 같으며, 추후 오픈 소스의 contributor로 참여하는 것이 목표입니다.

    Socket io : https://github.com/socketio/socket.io

    PeerJS : https://github.com/peers/peerjs

    WebRTC : https://webrtc.github.io/samples/

    sample code : https://github.com/itstaranarora/video-chat-v1


CI/CD/CT Pipeline


  • 각 서비스는 docker image 형태로 관리하며 배포는 container 형태로 진행됩니다.

  • 추가로 Github의 Actions 서비스와 Kubernetes, Jenkins 프레임워크를 사용하여 모델 업데이트와 배포 과정을 자동화시키고, 모델이 완성된 이후에도 실시간으로 유저의 피드백을 참고하여 모델을 추가적으로 학습시킬 수 있는 pipeline을 구축할 예정입니다.

  • 저희는 유해 매체에 대한 Human Object interaction은 데이터셋을 직접 수집해야하기 때문에 기존의 데이터셋을 이용하는 task에 비해 성능이 떨어질 수 밖에 없습니다.

  • 따라서 지속적인 학습을 통해 모델의 성능을 높일 수 있는 가능성 을 열어두려고 합니다.

  • 만약 저희 연구가 서비스로 출시한다면, 새로운 version으로 넘어갈 때, 기존 prototype을 최대한 사용할 수 있도록 구상하였습니다.


  • 전체적인 CI/CD Pipeline은 다음과 같습니다. 먼저 Github에 수정한 코드를 push 하게 되면, Kubernetes의 Pod 형태로 띄워져있는 Jenkins에 Web hook이 전송되고, Jenkins는 builder pod를 새로 생성하여 수정된 코드를 docker file을 이용해 docker image 형태로 build 합니다. 이렇게 만들어진 docker image를 docker hub에 push 하고, 이 docker image를 기반으로 실제 서비스를 수행할 pod를 생성합니다.


AWS(Amazon Web Service)


  • 추후 서비스를 배포함에 있어 서버의 확장을 고려하여, 물리적인 서버를 두는 것보다 클라우드 서버를 활용하는 것이 좋을 것이라 판단하여 AWS EC2 instance를 대여하기로 결정했습니다. 데이터베이스로는 AWS S3를 활용할 예정이며, Kubernetes 활용을 위해 Amazon EKS 서비스를 사용할 것입니다.

  • 프로젝트 개발 단계에서는 비용 절감 을 위해 초기에는 성능이 낮은 서버를 대여하여 사용하고, 추후 완성도가 높아지면서 추가적인 리소스가 필요할 때 서버를 확장하여 사용할 예정입니다. 서버의 확장을 고려하여 서비스의 배포는 이식성이 좋은 docker image를 기반으로 진행됩니다.


Additional


먼저 클라이언트에서 채팅방에 URL을 통해 참여하게 되면, 서버에서 클라이언트 측에 html 문서 와 딥러닝 모델에 대한 정보를 담고 있는 model.js, 그 외의 javascript 파일들을 전송합니다.


이후 클라이언트에서 서버로 room 생성 요청 을 보내면, 서버는 room을 만들어주고, 클라이언트에세 room의 URL을 전송합니다.


클라이언트가 응답으로 받은 room의 URL 을 통해 입장을 요청합니다.

이 때 클라이언트는 서버에 socket과 peer에 대한 정보 를 함께 전송합니다.

서버는 요청을 받으면 클라이언트의 socket과 peer에 대한 정보를 room에 추가 합니다.

이후 다른 클라이언트가 같은 방에 접속하는 경우, 서버에서 room에 있는 모든 클라이언트 에게 socket을 통해 새로 접속한 유저의 socket과 peer 정보를 전송합니다.

이렇게 다른 유저의 socket, peer 정보를 알게 된 클라이언트는 peer-to-peer connection 을 형성하고, 이를 통해 Media Stream을 주고받게 됩니다.


채팅방에 유저들이 접속하여 실시간으로 영상을 공유하기 전, 브라우저에서 웹캠을 통해 frame을 받게 됩니다.

브라우저에서는 메인 페이지 접속 시 서버에서 받은 model.json 파일과 웹캠에서 받은 frame을 통해 이미지에서 유해 컨텐츠로 판단되는 영역과 유해정도를 예측 합니다.

만약 현재 frame이 유해하다고 판단 되면, 그 영역을 모자이크 처리한 뒤 연결되어있는 peer에게 전송합니다.


4. 연구 계획


  • 일전에 프로젝트 진행 과정에서 예상치 못한 문제들로 계획대로 프로젝트가 이루어지지 않았던 경험이 있습니다.

  • 따라서 목표를 구현하는 기간 뿐 아니라 일정에 문제가 생겼을 때 이를 보완할 수 있는 기간을 추가적으로 구상하였습니다.

  • 위의 표에서 주황색 박스는 목표 기간초록색 박스는 보완 기간을 나타냅니다.

  • 초록색 박스가 앞에 있는 경우에는 이전 목표가 빨리 끝났을 때 시작할 수 있는 기간을 나타냅니다.


Potential

저희는 이번 프로젝트를 통해 궁극적으로 영상 매체에서의 필터링 서비스를 구현하고자 합니다.

이는 HOI 인식 기반으로 사람과 사물 사이의 관계를 파악하여 추론함으로써, 사람 중심의 서비스들로 발전할 가능성이 높습니다. 아래 몇 가지 가능한 서비스들을 소개하겠습니다.

  1. 자동 영상 유해 수준 평가 서비스

    현재는 디테일한 유해 콘텐츠의 차단 기준은 결국 인간에게 의존하고 있습니다. 저희는 유해 수준이 일정 수준 이상이라고 판단 시, 유해 콘텐츠를 즉각 차단하고 모호한 기준선에 있는 유해 콘텐츠들이 속하는 프레임을 알려줄 수 있습니다. 이는 아래와 같은 활용 가능성이 있습니다.

    - 넷플릭스, 왓챠 등 온라인 미디어 플랫폼 기업에서 적은 인력으로 빠르게 해당하는 영상의 관련 등급을 책정할 수 있습니다.

    - 온라인 메신저 및 SNS 관련 기관에서 유해 콘텐츠를 자동으로 찾아내 차단하고, 유포자에 대해 분석할 수 있습니다.

    - 방송사, 영화 제작사, 크리에이터 등 영상 편집이 필요한 기관에서 유해도가 높은 프레임으로 빠르게 접근해 편집할 수 있습니다.

  2. 실시간 위험 감지를 통한 범죄 신고 시스템

    현재는 CCTV 아래에서 범죄가 발생해도 목격자가 존재하지 않으면, 즉각적인 신고가 일어날 수 없는 상태입니다. CCTV에 저희 시스템을 이용해 실시간으로 위협적인 장면이 등장했을 때, 관련 상황에 위험도를 알려주게 할 수 있습니다.

    CCTV가 설치되어 있지 않은 지역의 경우, 드론을 사용해 범죄상황등에 대한 빠른 검출이 가능해 치안의 향상을 기대할 수 있습니다.

    사회 전체에 퍼지는 것은 먼 미래이겠지만, 관련 상황에 대한 위험도를 즉각적으로 반환할 수 있다면, 사회적으로 큰 영향을 미칠 기술이라고 생각합니다.

영상의 정보를 바탕으로 유해 콘텐츠를 탐지해내는 기술은 사회적으로 큰 가치를 지니고 있습니다. 아래 표에 의하면, 저희 팀이 구현하고자 하는 서비스는 CCTV 영상감시 뿐 아니라 알람 및 모니터링 서비스를 제공할 수 있어 도합 1조 6,000억원 이상의 시장 규모를 가지는 분야에 대한 solution을 제공할 수 있을 것으로 기대하고 있습니다.


5. 팀 소개

멘토 소개


print("Messiah") print("GOD") print("Best Developer") print("genius")

저희 멘토님은 일단 잘생기셨습니다. 딥러닝 모델이 멘토님의 얼굴을 잘 인식하는군요.

잘생긴줄만 아시나요? ModaCom, KT, Naver, Line, SKT까지 20년 동안의 말도 안되는 경력까지..


Aegis 팀 소개
  • 팀명의 의미는?

    유해 콘텐츠로부터 사람들을 보호하는 방패가 되고자 하는 의미로, 그리스 로마 신화의 제우스, 아테나의 방패 이름을 사용했습니다.

  • 팀원 역할?

    • 팀장 주재원

      • mail : allonsy07@gmail.com

      • 학습 Database 구축, HOI 모델 개발

    • 총무 안희윤

      • mail : heean6620@korea.ac.kr

      • 학습 Database 구축, HOI 모델 개발

    • 팀원 박형인

      • mail : hyeongin2024@gmail.com

      • 개발 인프라 구축, 웹 서비스 배포

  • 팀 각오?


    • 저희 팀은 작년에 교내 프로젝트에서 SK C&C 관계자분의 도움과 함께 얼굴 인식을 통한 도어락 제어 시스템을 개발한 경험이 있습니다. 해당 과제를 진행하며, 직면한 예상치 못한 문제들을 해결해나가면서 경험치가 쌓였고, 이번엔 당시에 부족했던 부분들을 미리미리 보완해가면서 프로젝트를 진행해 나갈 생각입니다.

    • 저희는 멍청한 학부생입니다. 다른 팀들보다 프로젝트나 연구 경험도 부족할 것이라고 생각합니다. 하지만 머리 깨지게 고민하고 찾아보고, 모르면 물어보고, 실패를 반복하면, 그 끝엔 빛나는 성과물이 있을 것이라 생각합니다.

      결론은 "잠은 죽고나서 자자 " 가 저희 팀 모토입니다.

  • 소통 방법 & 페이지?

allonsy07 님의 최신 블로그

더보기

관련 블로그