[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)
#!/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を用いて解析を行った.画像解析用コード(学習データ)
画像プリプロセッシング
区分
옷
認知.そうじけんさ
ケース別学習(Very Hard...)
まずは同じ背景同じ照明で...
照明の種類のイメージを学ぶ.
参考資料
Reference
この問題について([Toy]OOTD tracker(2)コードの使用), 我々は、より多くの情報をここで見つけました https://velog.io/@2innnnn0/Toy-OOTD-트래커-2-코드작업テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol