들어가며
최근에 어떤 프로젝트를 진행하게 되면서 안전모를 착용했는지 확인하기 위한 모바일용 머신러닝 모델이 필요하게 되었다. 3일이라는 짧은 시간 안에 프로토타입을 만들게 되었는데, 진행하면서 알게 된 에러 사항에 대해서 공유하기 위해서 이 글을 작성하니 모바일용 객체 탐지 모델을 만드는 사람들이 참고해서 쉽게 사용했으면 좋겠다.
혹시 결과물이 바로 보고 싶은 사람은 아래의 링크를 참고하란다.
github.com/BEOKS/Bicycle-Helmet-Wearing-Detection
데이터 수집
모든 머신러닝 모델의 시작은 데이터를 확보하는 것이다. Kaggle에서 사용가능한 데이터들이 있는데 나는 이를 참고하였다. 참고로 라이선스가 전부 다르기 때문에 주의하기 바란다. 만약 이미 데이터가 확보되어있다면 이 과정을 넘겨도 된다.
www.kaggle.com/brendan45774/bike-helmets-detection
데이터 처리
전처리 프레임워크
머신러닝 모델이 잘 학습 할 수 있도록 데이터를 처리를 해야 한다. 데이터에 따라 몇 가지가 있지만 프로토타입 제작이므로 잘못된 정보가 있는지만 확인하도록 하겠다.
위 사이트는 확보한 데이터를 업로드하여 이미지를 육안으로 확인하거나 모델 향상을 위해서 Augmentation 시킬 수 있는 사이트이다. 만약 이미지 보안이 별로 중요하지 않다면 이를 활용하면 좋다. 업로드 및 활용과정은 처음 사이트를 이용할 경우 튜토리얼이 진행되니 순서만 따라간다면 어렵지 않게 사용할 수 있다.
데이터 확인
데이터를 입력하고 나면 위처럼 대시보드가 나오게된다. 여기서 이미지를 클릭하여 어노테이션이 잘 되어있는지 확인할 수 있다. 만약 어노테이션이 되어있지 않은 이미지가 있다면 쉽게 어노테이션을 추가할 수 있다.
데이터 전처리
대시보드 아래에 보면 Preprocessing Option을 볼 수 있다. 여기선 Crop, GrayScale, Tile 등의 전처리를 UI로 손쉽게 다룰 수 있다. (일부 기능은 유료버전에서만 사용 가능한데 돈내기는 싫으니 사이킷런의 전처리 라이브러리를 사용해서 코드에서 진행 후 다시 업로드하도록 하자)
Augmentation
Augmentation은 머신러닝 모델의 정확도 향상을 위해서 데이터를 증식시키는 것을 의미한다. 이 또한 대시보드에서 Augmentation Option을 선택하여 진행 할 수 있다. 여기도 몇 가지 기능은 유료버전에서만 사용 가능하다. 그러니 Albumentation(아래 링크 참고)을 사용해서 코드상에서 구현하도록 하자. 이 라이브러리가 roboflow보다 더욱 다양한 기능을 제공한다.
github.com/albumentations-team/albumentations
마무리
데이터와 모델의 목적에 따라서 위에서 언급한 것들 이외의 전처리 과정이 더 필요할 것이다. 기존의 솔루션을 잘 분석해서 어떻게 데이터를 처리할지 결정하고 이를 추가적으로 작업하여 데이터셋을 완성하자. 다음 장에서는 이 데이터셋을 가지고 tensorflow 프레임 워크를 사용하여 SSD MobileNetv2 모델을 만든 다음 이를 Tensorflwo Lite 모델로 컨버팅 하는 방법에 대해서 알아보자
Reference
- How to Train a Custom TensorFlow Lite Object Detection Model, https://blog.roboflow.com/how-to-train-a-tensorflow-lite-object-detection-model/
'Machine Learning' 카테고리의 다른 글
[Tensorflow Lite] - 객체 탐지(Object Detection Model)만들기_3. 안드로이드에 Tensorflow Lite 모델 삽입 (18) | 2021.03.17 |
---|---|
[Tensorflow Lite] - 객체 탐지(Object Detection Model)만들기_2. 모델 학습 (1) | 2021.03.17 |
머신러닝 모델 - 5. 소프트맥스 회귀(Softmax Regression) (0) | 2020.04.23 |
머신러닝 모델 - 4. 로지스틱 회귀 (Logistic Regression) (0) | 2020.04.20 |
머신러닝 모델 - 3.정규화(regularization, 과대적합 완화 ) (0) | 2020.04.17 |