본문 바로가기

팀프로젝트 - TailsRoute

TEAM Project - dog_behavior 모델 (1차 테스트)

먼저 Json과 frame 사진을 적용하고 모델훈련시켰을 때 결과가 어떻게 나오는지 확인부터 하는데 좋지않을까


 

모델링 진행단계

  1. ResNet50을 사용해 각 프레임의 이미지를 특징 벡터로 변환한다. 이때 "앉기" 행동에 맞는 관절 위치와 바운딩 박스 정보를 학습 데이터로 사용하여 행동을 예측하는 모델을 만든다.
  2. 프레임마다 OpenCV를 이용해 주요 관절의 위치(키포인트)를 추출하고, 이를 ResNet50을 통해 학습에 필요한 특징으로 변환

 


1차결과

JSON 파일에서 키포인트 데이터 추출하여 강아지의 앉는 동작을 나타내는 JSON 파일에서 키포인트(좌표) 정보를 읽어오고, 각 JSON 키포인트 데이터에 해당하는 프레임(이미지)와 짝지어준 다음, 매칭된 이미지와 키포인트 데이터를 사용하여 ResNet50 기반 모델을 학습시킨 결과

Train MSE 는 지속적으로 감소하고 있어 모델이 점차 데이터를 잘 학습하고 있다고 볼 수 있다.
Validation MSE도 초기에는 감소하고 있지만 거의 변하지 않는 모습

쉽게 말하면 선이 내려 갈 수록 잘 학습하고 있다는 뜻, 모델은 학습을 잘 하는 것처럼 보이지만, 검증 데이터는 성능이 향상되지 않는 모습이 보여서 과적합 징후로 볼 수 있음

 


 

이미지로 훈련시켰을때는 훈련 데이터와 검증 데이터의 정확도가 어떻게 변하는지 그래프로 나타냈지만, 키포인트 예측(회귀 문제)은 분류 문제와는 달리 좌표(숫자)를 예측하는 문제이므로, MSE와 MAE를 통해서 모델의 예측 성능을 평가하는 것이 더 적합!

MSE(Mean Squared Error, 평균제곱오차)

  • MSE는 예측 값과 실제 값의 차이를 제곱하여 평균을 구한 값으로, 오류가 클수록 더 큰 값이 나오기 때문에 큰 오류에 민감하게 반응
  • 강아지가 '앉아' 행동을 할때, 모델이 예측한 키포인트(관절 위치)와 실제 키포인트 위치 간의 차이를 측정할 때 MSE를 사용 / 모델이 위치를 잘못 예측하면 MSE 값이 커져서 모델 성능이 낮음을 의미

MAE(Mean Absolute Error, 평균절대오차)

  • MAE는 예측 값과 실체 값의 차이의 절대값을 평균한 값
  • 강아지가 동작을 할 때 예측한 관절 위치와 실제 위치 간의 평균 절대 오차를 계산하는 데 MAE를 사용하면, 모델이 얼마나 일관되게 예측하고 있는지 확인할 수 있다. / MAE 값이 낮을수록 모델이 실제 위치에 가깝게 예측