위드코로나를 논하는 시대에 살고 있는 우리지만, 아직까지 마스크를 벗거나 턱스크를 하는 사람들을 보면 눈쌀이 찌푸려진다. 필자는 이를 생각해 마스크를 착용했는지 웹캠으로 테스트하는 프로그램(?)을 만들어 볼 것이다.
요약 과정:
- 파이썬 셀레니움을 이용한 이미지 크롤링
- 티처블 머신을 사용해 이미지 학습
- 텐서플로우, 케라스, opencv를 이용해 마스크 착용여부를 웹캠으로 실시간처리
- 리뷰
1. 셀레니움을 이용한 이미지 크롤링
필자는 구름IDE를 이용하였다.(광고아님)
구글로 로그인을 하고 컨테이너 생성을 누른 뒤 이름을 생성하고(아무이름이나 상관없음) 아래 사진과 같이 설정한 후 생성하기를 누른다.
실행시킨 후 터미널에 git clone https://github.com/Joeclinton1/google-images-download
을 입력해 주고 터미널에 cd google-images-download && python setup.py install 를 입력해준다.
그리고 *중요*
index.py를 google-images-download 폴더 안에 넣어준다.
그리고 본격적으로 코딩 시작
from google_images_download import google_images_download response = google_images_download.googleimagesdownload() arguments = {"keywords":"(괄호제외하고 마스크 턱에 걸친, 마스크 쓴 사람, 벽 순서대로 입력 후 컴파일)", "limit":100, "print_urls":True} paths = response.download(arguments) print(paths)
컴파일 할 때마다 키워드에 쓴 이름으로 된 사진이 100개씩 생길 것이다.
위와 같이 zip파일로 폴더를 3개 본인 컴퓨터로 내보낸다.
2.티처블머신
그리고 https://teachablemachine.withgoogle.com/ (티처블머신) url로 이동.
시작하기를 누르고 이미지프로젝트를 클릭.
onmask, offmask, blank 3개의 클래스를 만들고 알집 해제 후 드래그앤 드롭해서 각 주제와 상관 없는 사진들은 삭제 후 학습시킨다. epoch 건들필요 x
위와 같이 마스크를 썻는지, 안썻는지, 필자가 비키게 된다면 blank가 100%로 표시된다.
그리고 모델 내보내기를 클릭 후 케라스로 모델 다운로드.
3.실시간 처리
그리고 이제 파이참을 킨다.
파이참을 켜서 아래의 주소의 코드를 복사해서 붙여넣는다.
https://github.com/jungjaewoo2842/mask/tree/main
GitHub - jungjaewoo2842/mask
Contribute to jungjaewoo2842/mask development by creating an account on GitHub.
github.com
model = tf.keras.models.load_model("/keras_model.h5", compile=False)
이 구문에서 keras_model.h5는 본인이 티처블머신을 다운받은 경로를 넣어주면 된다.그러고 실행하면 프로젝트 완성.4. 리뷰.본인은 파이참이 아닌 구글 코랩으로 실행해서 마지막엔 웹캠 실행을 하지 못하였다. 코랩에서 티처블머신을 이용하지 않고 다운받을 수 있지만 너무 시간이 오래걸리고 퍼센테이지도 티처블머신이 더 좋아서 시간단축과 정확성을 위해 사용하였다. 다음에는 라즈베리파이를 사용하여 좀더 디테일화 시킬 예정이다.
'개인 프로젝트' 카테고리의 다른 글
Kaggle대회 얼굴 키포인트 탐지(Facial Keypoints Detection)증강 (0) | 2021.10.15 |
---|---|
여드름 분류 모델 개인 프로젝트(날짜마다 수정됩니다.) (2) | 2021.10.06 |