수행기록퀘스트6

Quest6 - 숫자 인식
2022. 10. 10 (월) 18:47 제이비 조회 481 좋아요 1 스크랩 1 댓글 1

Quest 6 – 가속도 센서를 이용한 숫자 인식

 

안녕하세요 제이비입니다.

 

먼저 유익한 퀘스트 첼린지를 준비해주신 분들께 감사드립니다.

퀘스트6을 수행하면서 처음에는 오디오 입력을 통한 화자인식, 가속도 센서를 이용한 영문인식을 수행해 보려했으나 머신러닝에 대한 지식과 파이썬에 대해 무지하다 보니 너무 큰 목표를 세운것을 깨달았습니다.

 마감일이 다가옴에 따라서 점점 할 수 있는 것이 많이 않다는 것을 느껴 기존 퀘스트를 진행하면서 사용한 HAR을 이용하여 숫자를 인식하는 방법을 택했습니다.

 

  * 구성도

 

 

   * 데이터 로깅

Quest5와 동일하게 학습을 수행했습니다.

Jogging은 숫자 3, Walking은 숫자 4, Standing은 9, Downstairs는 0으로 정하고 학습을 하였습니다.

WISDM_ar_v1.1_raw.txt파일 내에는 Sitting, Standing, Upstairs Downstairs 등이 더 있었지만 “PrepareDataset.py”에서 Stationary와 Stairs로 매칭시켜버려 더 많은 숫자를 인식해보려했지만 4개가 한계인것으로 판단했습니다.

 

           

STM32의 소스를 분석중 인식된 결과값을 알려주는 인자가 HAR에서 정한 인자와 약간 차이가 나나는 것 발견하였습니다.

“har_Processing.h”에 HAR_output_t는 다음과 같이 정의되어있습니다.

typedef enum

{

    HAR_NOACTIVITY          = 0x00,

    HAR_STATIONARY          = 0x01,

    HAR_WALKING             = 0x02,

    HAR_FASTWALKING         = 0x03,

    HAR_JOGGING             = 0x04,

    HAR_BIKING              = 0x05,

    HAR_DRIVING             = 0x06,

    HAR_STAIRS              = 0x07

} HAR_output_t;

위 정의된 값과 AI에서 정의된 데이터셋의 연관성이 어떻게 되는것인지는 계속 분석해 봐야할것봐야할 것같습니다.

  • PrepareDataset.py

if self.dataset == 'WISDM':
  
if self.merge:
     
self.classes = classes = [ 'Jogging', 'Stationary', 'Stairs', 'Walking' ]

 

 

이제 AI에서 생성된 모델을 STM32Cube.AI에 임포트하여 타겟보드에 다운로드한뒤

그 결과를 시험해보았습니다.

역시나 HAR로 숫자를 인식하기에는 역부족이었으며 “WISDM_ar_v1.1_raw.txt”의 데이터는 숫자를 인식하는 데이터가 아니라 당연한 결과인것으로 보입니다. (실제 WISDM_ar_v1.1_raw.txt의 데이터를 숫자 모션을 취합한 데이터로 교체해보았는데 데이터량이 부족해서인지 학습이 제대로 되지 않는것처럼 보였습니다)

 

* 시현 영상

<iframe width="606" height="1078" src="https://www.youtube.com/embed/js5P2aD1JeA" title="E4DS STM32Cube.AI Quest 6" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>

손등에 타겟보드를 장착하고 숫자를 써보았지만... 역시나 AI부분이 맞지않아 잘 표시하지 못하네요.

 

 

 

AI지식이 너무 부족하여 간신히 퀘스트를 따라가기에 바빴는데 머신러닝의 전체적인 방법을 익힐 수 있는 유익한 첼린지였다고 생각합니다.

AI모델 및 파이썬은 추후 더 공부하여 STM32에서 다양한 머신러닝을 구동시킬수 있도록 해봐야겠습니다.

준비해주신 관계자분, 퀘스트를 수행사신 분들 모두 고생하셨습니다.

첨부파일
quest6_result_jb.zip 다운로드
칩헤드
2022.10.12 16:13
마이너리 리포트 영화를 순간 회상하였습니다. ST보드의 데이타 학습시간 즉 epoch 횟수를 overfitting이 되지 않는 범위까지 늘려보면 어떻할까? 합니다. :)

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