수행기록퀘스트6

B-L475E-IOT01A 보드와 STM32Cube.AI를 적용한 좌충우돌 Quest 6 PROJECT
2022. 10. 2 (일) 12:04 최종수정 2022. 10. 9 (일) 18:31 IRON 조회 606 좋아요 1 스크랩 0 댓글 2

좌충우돌 Quest_AI Quest6

 

  1. 개발하신 어플리케이션이B-L475E-IOT01A 보드에서 구동하는 동영상을 업로드 해주세요.
  1. 상용 머신러닝 툴에서 사용한 Source Code를 업로드 해주세요.
  2. B-L475E-IOT01A에 적용된 Application Source Code와 해당 Application에 대한 소개 및 설명을 포함하는 PDF 문서를 업로드 해주세요.

(PDF 문서에는 2번의 머신러닝 툴에서의 Model에 대한 설명도 포함 합니다. 예를 들어 Model의 구성 설명이나 Accuracy 등과 같은 내용을 설명해 주시면 됩니다.)

 

 

1차 시도  : Quest -AI Project

 

지금까지 진행하여 온 Quest AI를 토대로 Human Activity Recognition Model을 이용하여 일상생활에서 간단하게 운동할 수 있는 Activity를  구분할 수 있는 Project를 준비하였습니다.

 

먼저 간단한 운동기구로 할 수 있는 운동으로 베드민턴, 탁구,줄넘기 등 운동기구 없이 할 수 있는  팔굽혀펴기윗몸일으키기를 추가하였고달리기걷기,  Quest기간중에 진행하였던  달리기, 걷기, Stationary등 을 구별할 수 있는지 확인해 보겠습니다.

 

Activity의 학습 Data Quest 4와 같이 Data를 취득하였습니다.

,  Data를 취득하기위하여  보조 충전기를 연결하여 손목에 고정하였습니다.

 

손목에 차고 Data를 취득하기 위하여 안하던 운동을 한 결과 하기와 같은 Data를 취득할 수 있었습니다.

Running / Pingpong / Badminton / Sit-Up / Push-Up / Jumprope / Walking / Stationary 취득 Data

 

항목별 Data 취득하고 학습을 시키려고 하는 순간 바로 Fail 발생하였습니다.

문제의 원인은 새로 생성한 Label  학습 Data 없기 때문에 Label 만들줘야 합니다.

그리고 이번 Quest에서 진행한 사항은 것은 HAR관련 학습 Data Download받아서 ( WISDM_ar_v1.1_raw ) 학습을 진행한 결과 진행로 생성된 HAR Model 사용하였으나  기본 학습 Data 없기 때문에 WISDM_ar_v1.1_raw 같은 학습 Data 만들어서 Test 진행하였습니다.

하지만  위에서 취득한 Data 변경하여 1 학습을 시킨 결과는 참담했습니다.

기본 Data 없는 관계로 얼마 되지 않는 Data 이용하여 학습 Model 만든다는 것이 얼마나 무모한 짓인지 알게 되었습니다.

 

1 학습 Data Test 진행한 결과.

 

 

2차 시도  : Quest -AI Project

 

2차시도는 기존의 학습 Data를 이용할 수 있도록 Jumprope ( 줄넘기 )   Stairs대신에 추가하였습니다.

학습 Data는 기존의 Data에서 Running / Walking / Stationary를 사용하고 나머지의 Data는 모두 삭제하였습니다. 그리고 Jumprope Data를 취득하여  WISDM_ar_v1.1_raw에 추가 하였습니다.

 

결과는 기존의 학습 Data는 충분한 관계로 Running / Walking / Stationary는 이전과 비슷한 결과는 얻을 수 있었으나  Jumprope를 전혀 Detection하지 못하였습니다.

추정 원인은 기존의 Data는 충분하였으나 Jumprope Data는 상대적으로  부족하였기에 발생한 것으로 추정되었습니다기존 Data 5%정도의 Data Model을 학습 시키니  줄넘기가 Running으로 판단되었습니다.

 

 

 

3차  시도  : Quest -AI Project

 

기존의 학습 Data 33명의 Data 취합하여 만든것으로 추정됩니다. 따라서  Jumprope와의 Data 비율을 맞추기 위하여 기존의 Data에서 1 ~8까지만 사용하고 나머지는 모두 삭제하였습니다또한 Jumprope Data 추가하여 학습Data 비율을 조정하였습니다.

 

Runme.py 실해행하면 먼저 학습Data TestData 나누기 때문에 가능하면 Jumprope Data 추가할 경우 다른 Data 위치와 균형이 맞게 배치해 주어야 됩니다그렇지 않으면   Model 학습결과가 다르게 나올 있습니다.

 

하기와 같은 방법으로 Data 추가하였습니다

Human1 ( Running/Stationary/Walking + Jumprope )

Human2 ( Running/Stationary/Walking + Jumprope )

Human3 ( Running/Stationary/Walking + Jumprope )

Human8 ( Running/Stationary/Walking + Jumprope )

 

3  Jumprope Data 추가하고 기존 1 ~ 8 까지의 Data 사용하여 학습을 진행한 결과.

 

 

 

4차  시도  : Quest -AI Project  :  Jumprope Data 추가.

 

 

KARAS 모델을 사용 하도록 X-CUBE-AI 구성 요소를 구성합니다.

  1. 추가 소프트웨어 를 확장 하여 STMicroelectronics.X-CUBE-AI.5.0.0 선택
  2. X-CUBE-AI 구성 요소가 선택 되었는지 확인하십시오모델 선택 찾아보기

 

  1. 위와 같이 설정한 훈에 Analyzer 실행시키면 하기와 같습니다.

 

 

  1. 프로젝트와 har_ign 모델을 적용하여 만든 Code에서 다음과 같이 4개의 파일을 FP-AI-SENSING1 프로젝트에 포함되어 있는 같은 이름의 파일과 대체하여 적용합니다.

 

 

 

하기와 같이 Souce file Header File Copy한 후 Compile을 진행한다.

 

  1. 다시 FP-AI-SENSING1 프로젝트 파일을 빌드하여 Mobile App 과의 연동을 진행합니다.

 

첨부파일
Quest_AI_IRON.zip 다운로드
IRON
2022.10.12 18:59
아직 해보지는 않았지만, Sensor를 ACC에서 GYRO로 변경해서 적용하면 더 좋을 결과가 나오지 않을까 합니다. 다만 학습 Data를 만드는 것이 부담이 되어서 시간을 가지고 시도해 보기로 하였습니다.
칩헤드
2022.10.12 16:46
공유 감사합니다. 많이 배웠습니다. ^^ 수집한 csv 데이타들의 noise을 없애는 필터링 작업을 추가하면 accuracy 개선에 도움이 될까여?

로그인 후
참가 상태를 확인할 수 있습니다.