본문 바로가기

캡스톤디자인프로젝트B_스타트16

[2] 개발환경 & 프로그램 구성도

개발환경

 

Desktop(personal)

  •  Windows10 GTX1660S
  •  MAC ios 

 

NVIDIA Jetson Nano Development Kit-B01

  • GPU : 128 코어 Maxwell / CPU : 쿼드코어 ARM A57 @ 1.43GHz

 

GPU Server

  • Google Colab GPU
  • 원격 접속 (Portainer.io)

 

Camera

  • Logitech C920 Pro
  • Phone

 

Program 

  • OpenCV 3.2.0
  • YOLO V4 - Darknet framework
  • OPENPOSE

 

- Yolo_mark를 이용한 라벨링은 각자의 컴퓨터 혹은 노트북 이용  

- GPU Server에서 학습시킬 아동폭력 이미지들은 각자 스마트폰으로 직접 촬영해서 구함 

- CCTV의 위치처럼 카메라가 보다 자유롭게 움직여야 하며 프로그램이 실시간으로 처리된다는 것을 증명하기 위해
  Logitech(로지텍)의 C920 Pro 모델 사용

- 컴퓨터나 노트북의 그래픽 카드 성능이 현저히 떨어지기 때문에 학습에 좋은 코랩의 GPU Server 이용  

- 라벨링 및 테스트 영상, 이미지 실행을 위해 오픈소스인 OpenCV 3.2.0, YOLO V4, openpose를 사용

 

 

 

 

프로그램 구성도(알고리즘)

1. YOLO로 아동폭력 클래스 검출 (손으로때리기, 밀치기, 발로차기) 

2. openpose로 관절 키포인트 추출 후 특징벡터(속도벡터) 생성

   - 어른/아이 구분: 각도와 위치에 따른 왜곡현상 

   - { (2-3) + (5-6) + (9-10) + (12-13) + (1-8) } / 5 : 척추, 넙적다리뼈, 위팔뼈 길이의 평균으로 구분

 

openpose의 body_25

3. 여러가지 features 검출 → 모델에 넣기(LSTM)  최종 검출로 이진 분류   

   ▶ features: 사잇각, ROI 벡터크기, 객체별 접촉거리
4. 저장된 영상 데이터 서버로 전송