기계가 말하면 모퉁이가 없는 2

배경



지난번

무엇을 하는가?



이 후 여러가지 어려운 일이 나올 것이라고 생각하면서, 우선은 지난번 의 설정을 목표로 한다

어떻게 만들자



마찬가지로 지난번 확인한 내용을 바탕으로 좀 더 구체화
- 마이크로 컴퓨터 보드에 카메라, 음성 출력, 네트워크 기능 탑재
- Lobe에서 만든 모델의 실행 환경 구축

거친 처리는 이하의 이미지
  • 카메라로 정기적으로 사진 찍기
  • 사진에서 얼굴을 잘라내기(Azure Detection)
  • 마스크를 하고 있는지 판정(Lobe)
  • 마스크를 하고 있는 경우는 칭찬의 코멘트 발성
  • 마스크를 하고 있지 않은 경우는 전회 판정시의 얼굴을 동일한지 판정(Azure 얼굴 검증)
  • 같은 사람이라면 마스크를 착용하는 것이 좋습니다.
  • 다른 사람이라면 마스크 착용을 적극 권장합니다


  • 마지막으로 저장된 이미지를 삭제하고 이번에 촬영 한 이미지를 저장합니다
  • 반복

  • 우선 처리부분 개발



    lobe에서 tensorflow lite로 출력



    버튼을 누르면.
    어려운 곳을 부드럽게 GUI로 감싸주고, 밖의 세계에도 오픈 마인드.
    대단한 세계가 된 것이다,,


    로컬로 세트 개발



    샘플은 python3.6이 전제. venv 환경 만드는 전제로 튜토리얼도 출력되고 있으므로, 이 환경상에서 만들어 확인할 수 있으면 통째로 마이컴 보드에 가져간다. 가져 가면 여러 가지가 있다고 생각하지만,


    windows에서 readme.md로 남아 있지 않은 것
    - requeiremens.txt를 사용하여 설치가 불가능했기 때문에 개별적으로 설치
     (TF_lite의 런타임은 OS, Python의 버전을 확인해 실행할 필요가 있었다)
    3.6 환경을 만드는 것을 옆으로 3.7에서 실행 (Win10은 3.8 TFLite 런타임 없음)
    (tflite-venv) example> py -3.7 tflite_example.py "mask.png"
    Predicted: {'predictions': [{'label': 'Mask', 'confidence': 0.9022133350372314}, {'label': 'UnMask', 'confidence': 0.09778668731451035}]} 
    
    (tflite-venv) example> py -3.7 tflite_example.py "unmask.png"
    Predicted: {'predictions': [{'label': 'UnMask', 'confidence': 0.9968219995498657}, {'label': 'Mask', 'confidence': 0.003178034909069538}]}
    

    가동을 확인, 이것을 중심으로 주변의 처리를 구축해 간다
    코드가 더럽거나 로그가 없거나 오류 제어가 없거나 모두 후회합니다.
    정상계를 확인할 수 있으면 빨리 마이컴 보드에 넣어 노는 것을 우선.

    전체 흐름을 제어하는 ​​부분



    control.py
    import extract_face
    import takepic
    import judge_mask
    import speak_judge
    import speak_out
    import datetime
    
    dt_now = datetime.datetime.now()
    file_name = dt_now.strftime('%Y%m%d%M%S%f')
    
    #1 写真を撮る
    ret = takepic.take_pic()
    #2 顔画像を切り出し
    ret = extract_face.fetch_face_and_info()
    #3 マスク判定(lobeで作成したものを呼び出せるようにする)
    ret, ret_info = judge_mask.judge_mask_ctrl()
    process_control = False
    judge_m = ''
    if ret is False:
        process_control = False
    else:
        judge_m = ret_info['predictions'][0]['label']
        process_control = True
    #4 Mask,UnMaskと前回の顔との類似度を見て判定
    ret = speak_judge.speak_judge(process_control, judge_m)
    #4 判定内容に合わせてファイルを再生
    speak_out.speak_out_message(ret)
    
    

    열심히 각각 만들어 가자

    참고



    lobe
    azure Detection 일반
    azure Detection 빠른 시작
    tensorflow lite 일반
    tensorflow lite 런타임

    좋은 웹페이지 즐겨찾기