Skip to content

가정된 상황에서 응용 방법

mentaldy edited this page Dec 22, 2020 · 1 revision

가족상봉 도우미 (백화점 ver.)

상황 가정

  • 백화점에서 부모님 혹은 자식들을 잃어버린 상황 가정
  • 사람이 많은 환경에서 구별하기 어려운 상황 가정

인파 중 시각적으로 구별하기 가장 효율적인 방법으로는 타겟대상의 인상착의라 판단된다. 기계가 학습할때 가장 결정적인 요소로는 edge와 RGB, 즉, 대상의 형태 테두리와 색깔일것으로 기대

  • edge로 인간의 형태를 학습
  • RGB로 피부와 옷의 색깔 학습할것으로 기대

접근

detect 대상의 인종, 성별과 나이대에 통상적으로 부르는 칭호(?) (예: woman, man, boy, girl), 튀는(?)의류, 의류의 색깔을 입력값으로 받아서 custom 클래스를 형성 클래스를 구글 이미지에 검색해서 이미지 자료를 가져와서 custom labeling 해서 training data로 생성 생성된 training data를 가지고 yolo 모델에 학습 후 detection을 진행한다

  • train 데이터 수집
  1. 인물 특징을 입력 받는다
  2. 수집한 인물 특징을 가지고 구글 이미지에서 이미지 자료 수집
  3. 이미지 자료 손수 라벨링 진행
  4. 라벨링된 데이터 obj(학습 데이터 폴더) 와 test(validation 데이터 폴더) 로 나눠서 저장 (0.8len(jpg_files)과 0.2len(jpg_files))
  • 학습에 필요한 input data 생성

YOLOv3, v4 모델이 training data 및 validation data 이외에 별도로 받는 입력값들 (obj.names, obj.data, yolov4-obj.cfg 그리고 weights)도 data 구성에 알맞게 생성

  • 학습
  1. 라벨링된 데이터 로컬에서 구글 콜랩으로 받는다 (구글 콜랩의 GPU 활용)
  2. 콜랩에서 다크넷 repository 클론
  3. 다크넷을 생성해주는 모듈 중 openCV와 GPU를 사용으로 수정
  4. 다크넷 framework 생성

train data, validation data, obj.names, obj.data, yolov4-obj.cfg를 로컬에서 가져온다 weights는 https://github.com/AlexeyAB/darknet/releases/download/darknet_yolo_v3_optimal/yolov4.weights 에서 가져온다 학습할때 사용할 convolution layer의 구조를 https://github.com/AlexeyAB/darknet/releases/download/darknet_yolo_v3_optimal/yolov4.conv.137 에서 가져온다 train 진행