티스토리 뷰
이번 WWDC 2020에서 Build an Action Classifier with Create ML 을 재밌게 봐서 따라해보기-!
우선 Create ML은 이 경로로 들어갈 수 있고
ML 모델 만들어주는 앱입니다.
새로 나온 Mac OS Big Sur에 Action Classification이라는 템플릿이 추가되었어요-!
Action classification은 이름그대로 트레이닝 데이터로 넣은 비디오들의 액션을 캡쳐해서 모델을 트레이닝 시켜주는 템플릿입니다.
이번에 Vision에 human body pose를 detect하는 기능이 추가되어서 이런게 가능해졌다고 합니다.
(참고로 동물이랑 물건 동작 인식은 안되고 사람만 됩니다.)
만든 모델에 인풋으로 액션 넣으면 이 액션(몸동작)은 여기 그룹에 속하니까 이 그룹 라벨을 붙여주겠어-!! 를 목적으로 하는 것이에요
좀 더 구체적으로 말하면
점핑잭 영상들 / 런지 영상들 / 스쿼트 영상들을 가지고 Classifier 모델를 만들어서 (CreateML 앱을 통해)
이 모델을 가지고 인풋 영상이 점핑잭인지, 런지인지, 스쿼트인지 구분하겠다-! 하는 것입니다.
그럼 CreateML 앱에서 모델을 만들어볼게요-!
템플릿을 누르고 플젝 이름이랑 설명을 정해주세요
[1] Settings
모델을 트레이닝시킬 데이터를 준비해주세요
train이란 폴더를 만들고 거기에 jumping jack이라고 이름붙인 폴더랑 squart라고 이름붙인 폴더를 넣어주고
점핑잭 영상과 스쿼드 영상을 각각의 폴더에 넣어주세요-!
참고로 여러 각도에서 한 영상이면 더 좋다고 합니다. ex. 옆쪽 보고 스쿼트한 영상 / 앞쪽 보고 스쿼트한 영상
저는 5개씩 넣어줬어요 (촬영 + 인터넷 영상들)
그 다음 createML 앱의 Settings 탭에서 들어가서
트레이닝 데이터에 train폴더를 그대로 넣어주세요 (폴더명이 꼭 train이여야해요)
이렇게 끌어오거나 select 하시면 되요-! (저는 이미 넣어놔서 저렇게 나오는 것입니다)
그러면 점핑잭, 스쿼트 총 2개의 클래스(라벨)이 있고
10개의 아이템(데이터)를 넣어줬다고 잘 나옵니다.
그리고 여기 Data Sources 누르면 각 label별로 몇개의 개수가 있는지 볼 수 있어요-!
저는 영상구하기가 힘들어서 Training Data만 넣어줬는데,
여분의 영상이 있어서 Testing Data를 넣어주게 되면 CreateML이 모델 트레이닝이 끝나고 테스트를 수행해준다고 합니다.
그리고 Validation Data도 따로 넣어줄 수 있지만,
Create ML은 기본적으로 Trailing Data에서 몇개를 가져다가 Validation Data로 알아서 쓴다고 합니다.
그리고 Horizontal Flip을 체크하면 mirror image video를 만들어주게 되고
그것도 같이 트레이닝하니까 모델이 여러 방향에서의 액션을 더 잘 인식할 수 있게 된다고 합니다.
[2] Training
이제 Training탭으로 가서 Train을 눌러서 모델 트레이닝을 시작해주세요-!
Vision API의 힘으로 비디오의 every frame을 보게 되고 body의 18개의 랜드마크(손, 다리 등등)를 encode하게 된다고 합니다.
트레이닝은 Feature extraction을 하게 되서 시간이 오래 걸립니다.
덥덥에서는 7개의 클래스, 362개의 아이템이 있었는데
30분정도 걸렸다고 하네요.
Train이 끝나면 이렇게 나옵니다-!
[3] Evaluation
그리고 Evaluation 탭에 가면 이런 정보도 볼 수 있어요.
[4] Preview
그리고 Preview 탭에 가서 샘플 영상을 넣어주고 돌려보면...!!!
이렇게 바로바로 액션에 대한 라벨과 confidence가 밑에 보여집니다 (감동...🥺)
참고로
blend = 졸라맨+원본
original = 원본
WireFrame = 졸라맨
이에요
[5] Output
이제 모델을 뽑아볼게요-!!
Output 탭에 가서 이렇게 끌어오면 ml model 추출 끝-!!
Reference
developer.apple.com/videos/play/wwdc2020/10043/
- Total
- Today
- Yesterday
- Django Heroku Scheduler
- Watch App for iOS App vs Watch App
- ipad multitasking
- DRF APIException
- Flutter Clipboard
- 장고 URL querystring
- 플러터 싱글톤
- ribs
- github actions
- Python Type Hint
- SerializerMethodField
- flutter deep link
- flutter build mode
- Flutter getter setter
- Sketch 누끼
- 플러터 얼럿
- Dart Factory
- flutter 앱 출시
- 구글 Geocoding API
- Django Firebase Cloud Messaging
- flutter dynamic link
- Django FCM
- METAL
- cocoapod
- 장고 Custom Management Command
- Flutter Spacer
- PencilKit
- Flutter 로딩
- Flutter Text Gradient
- drf custom error
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |