[Toy]OOTD tracker(2)コードの使用

15806 ワード


1.撮影後アップロードS 3

  • ラスベガスパイにコードを挿入
  • 季静妍诀aws s3 s3://<bucket-name>
  • # config
    aws_access_key_id = ''
    aws_secret_access_key = ''
    region = 'ap-northeast-2'
    s3_output = 's3://<bucket-name>/inyoung/rasp/img'

    2.ベリーパイを作る

    ## fswebcam 설치
    sudo apt-get install fswebcam
    
    # 해상도(resoultion) 1280X720.
    fswebcam -r 1280x720 --no-banner image2.jpg
    
    mkdir webcam

    3. webcam.sh (Bash)

  • 目的
  • rasp更新
  • トリガ.行程.
  • #!/bin/bash
    # 업데이트 업그레이드
    sudo apt-get update
    sudo apt-get upgrade
    
    # 사람 얼굴 감지시에, 해당 sh 작동(트리거. 스케쥴)
    
    # 1. 웹캠 연결 # fswebcam 설치
    
    # 2. 웹캠 사진 촬영 및 저장.
    today = $("%Y-%m-%d")
    
    # 오늘 날짜가 있다면, 거기에 저장 없다면 별도 폴더로 만들어서 저장.
    mkdir {today_date} 
    aws s3 . > {today_date}/{file_name}.jpg
    
    # 
    fswebcam -r 1280x720 --no-banner /home/pi/webcam/$today.jpg
    
    # s3.py 실행.
    python3 s3.py
    
    # 권한설정 바꾸기.
    chmod +x webcam.sh

    4.パケット格納ファイル構造

  • パケット名/ユーザ/日付
    e.g./19921011/2020-10-10/0001.jpg
  • 5.表のデザイン

    # user_image 테이블
    id(PK) : 이미지ID (Integer) : AutoIncrement
    user_id : 유저ID (Integer)
    product_id : 상품ID(라벨링) (Varchar)
    created_at : 이미지 생성일
    upload_at : 이미지 업로드일
    この写真はあるプレイヤーの服です.既知のメタデータ情報.

    helper.py

    def upload_file(file_name, bucket, object_name=None):
        """Upload a file to an S3 bucket
    
        :param file_name: File to upload
        :param bucket: Bucket to upload to
        :param object_name: S3 object name. If not specified then file_name is used
        :return: True if file was uploaded, else False
        """
    
        # If S3 object_name was not specified, use file_name
        if object_name is None:
            object_name = file_name
    
        # Upload the file
        s3_client = boto3.client('s3')
        try:
            response = s3_client.upload_file(file_name, bucket, object_name)
        except ClientError as e:
            logging.error(e)
            return False
        return True

    s3.py

    import boto3
    from helper import upload_file
    from datetime import datetime 
    import os
    
    # Bucket 이름 확인.
    s3=boto3.client('s3')
    response=s3.list_buckets()
    
    buckets = [bucket['Name'] for bucket in response['Buckets']]
    print(buckets)
    
    s3_resource = boto3.resource('s3',
        aws_access_key_id=aws_access_key_id,
        aws_secret_access_key=aws_secret_access_key,
        region_name=region
    )
    
    # 3. 저장된 사진을 AWS s3에 업로드 (내부 로컬에 저장하지 않기.)
    # -- 업로드시 사진에 대한 메타정보도 별도로 같이 저장
    
    today = datetime.today() 
    # 이미지 경로지정
    img_path = '/home/pi/webcam/{}.jpg'.format(today)
    
    # 버킷에 저장
    upload_file(img_path, 'croquis-image-temp')
    
    # 로그 저장
    
    # 업로드한 이미지 로컬에서 삭제하기
    os.remove(img_path)

    顔認識Face Detection。py


    https://github.com/kunalyelne/Face-Recognition-using-Raspberry-Pi
  • 顔と判断し、撮影をトリガする準備をする.
  • ただし、顔のぼかし処理(プライバシー保護)が可能
  • プリインストール

    # opencv 설치.
    pip install opencv-python
    pip install opencv-contrib-python  # 메인 모듈
  • リアルタイム認知が確立されているか.
  • 写真に保存して認識しますか?
  • # 평소에는 '절전'상태하다가 감지될때만 작동할 수 있나? -> 힘들다면 패스.
    
    if 얼굴이 인식되고, 
    	5초 후에 저장하도록 (얼굴 인식한다고 바로 저장은 NO)
    else :
    	pass
    
    import numpy as np 
    import requests
    import cv2
    
    print(cv2.__version__)
    
    url = 'https://raw.github.com/opencv/opencv/master/data/haarcascades/haarcascade_frontalface_default.xml'
    r = requests.get(url, allow_redirects=True)
    open('haarcascade_frontalface_default.xml', 'wb').write(r.content)
    
    # faceCascade = cv2.CascadeClassfier('/home/pi/open-cv')
    
    img = cv2.imread('sample_imagees/2.jpg')
    cascade_faces = cv2.CascadeClassfier('haarcascade_frontalface_default.xml')
    gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
    ## filter for face
    faces = cascade_faces.detectMultiScale(gray, 1.3,7)
    
    上に保存したデータに基づいて,画像opencvを用いて解析を行った.

    画像解析用コード(学習データ)

  • コールラボ:https://colab.research.google.com/drive/1DACJpQFFsAX7XL3qYP1RZ7amd-HlNrLX#scrollTo=5TOyn0cAUXGT
  • 画像プリプロセッシング

  • ノイズ除去
  • 正方向確認(回転時はまっすぐ)
  • Object_dectection.
    区分
  • 認知.
  • 着衣のみ
  • GrayScale.
  • カラー画像処理は白黒とする.
  • そうじけんさ

  • 服が同じか比較**
  • 欽.勉強後の写真2枚の服.類似度検証
  • MNISTもこれが何の服なのか分からない.服装の種類を整える.(Tシャツ、バッグ、靴など…)
  • 恐ろしい挑戦;
  • そのため、教学ブログであればクラス別に学習する.→いろいろ勉強させてもらいましたが、そのパターンが何なのかはわかりませんが、そのパターンに従って・・・
  • e、g.何なのか分かりませんが、その写真はA類のことを指しているようです.
  • ケース別学習(Very Hard...)


  • まずは同じ背景同じ照明で...
  • できるだけカラーバックグラウンドがない.スタジオ照明とか

  • 照明の種類のイメージを学ぶ.
  • 暗い時明るい時
  • 照明種別
  • 蛍光灯.LED. ハロゲン野外(サンシャイン)
  • 参考資料

  • ブログ
  • Google Coral Edge TPU Dev Board購入と開発
  • https://twodragon.tistory.com/482
  • https://goodtogreate.tistory.com/entry/Coral-Dev-Board-Google-Edge-TPU-を選択します。
  • https://blog.naver.com/PostView.nhn?blogId=ulalalab&logNo=221330716119&redirect=Dlog&widgetTypeCall=true&directAccess=false
  • How To Run TensorFlow Lite on Raspberry Pi for Object Detection https://mazdah.tistory.com/852
  • How to Use the Coral USB Accelerator with the Raspberry Pi - Increase TensorFlow Lite FPS! https://www.youtube.com/watch?v=aimSGOAUI8Y
  • How To Run TensorFlow Lite on Raspberry Pi for Object Detection https://www.youtube.com/watch?v=qJMwNHQNOVU
  • https://www.youtube.com/watch?v=aimSGOAUI8Y
  • https://hillier.tistory.com/22
  • (参考)機械学習を知らない人でも使える人工知能Webサービスの作成