[DAY 3]開発ログ:顔認識&文字認識


1.学習内容

  • デバイス検出-顔認識
  • OCR-文字認識
  • 2.詳細


    障害検出-顔認識 # Face API Sample Faceapiは人物分析によって豊富な情報を提供している。Azure Portalは、まずFace APIを作成し、接続に必要なURLとサブスクリプションキーをインポートして表示します。 関連するライブラリをインポートします。requestはWeb通信、BytesIOおよび画像は画像の処理に用いられる。 ImageDraw、ImageFontは、画像に線を引いたり、字を書いたりするために使用されます。 import requests from io import BytesIO from PIL import Image, ImageDraw, ImageFont Subscriptionキーとサービス・アドレスを設定します。 subscription_key = 'cfed609ad3ef4031bb274bb3e808e302' faceDetection_url = 'https://facedetect00.cognitiveservices.azure.com/face/v1.0/detect' 解析に使用する画像を決定します。 image_url = 'https://newsimg.sedaily.com/2021/04/21/22L657OAYV_1.jpg' img = Image.open(BytesIO(requests.get(image_url).content)) headers = {'Ocp-Apim-Subscription-key': subscription_key} params = { 'returnFaceID' : 'true', 'returnFaceAttributes' : 'age,gender,emotion' } data = {'url' : image_url} response = requests.post(faceDetection_url, headers = headers, params = params, json = data) faces = response.json() draw = ImageDraw.Draw(img) for face in faces: rect = face['faceRectangle'] left = rect['left'] top = rect['top'] width = rect['width'] height = rect['height'] draw.rectangle(((left, top),(left + width, top + height)),outline='blue') face_info = face['faceAttributes'] emotion = face_info['emotion'] happiness = emotion['happiness'] gender = face_info['gender'] result = 'Gender:' + gender + ' happiness:' + str(happiness * 100) +'%' draw.text((left, top),result, fill='blue')

    OCR-文字認識 #OCR実習 import requests from PIL import Image from io import BytesIO import matplotlib.pyplot as plt subscription_key = '234a97e32f8447c19fbf3836053ff32c' vision_base_url = 'https://daeguaivision00.cognitiveservices.azure.com/vision/v2.0/' ocr_url = vision_base_url + 'ocr' ##分析するイメージを設定します。 image_url = 'https://upload.wikimedia.org/wikipedia/commons/thumb/a/af/Atomist_quote_from_Democritus.png/338px-Atomist_quote_from_Democritus.png' img = Image.open(BytesIO(requests.get(image_url).content)) headers = {'Ocp-Apim-Subscription-Key': subscription_key} params={「言語」:「嘘」、「指向性検出」:「true」}#「unknown」、「指向性検出」(直ちに画像を作成) data = {'url': image_url} response = requests.post(ocr_url, headers=headers, params=params, json=data) analysis = response.json() line_infos = [region["lines"] for region in analysis["regions"]] #for文を繰り返して配列を作成し、[region]から別の配列を取り、変数に挿入します。 word_infos = [] for line in line_infos: for word_metadata in line: for word_info in word_metadata["words"]: word_infos.append(word_info) word_infos

    3.今日の感想

    <ol>
    	<li>눈으로 결과가 보이는 수업이라서 좋았다</li>
    	<li>솔직하게 외우는건 불가능하지만 클론코딩을 하면서 흐름을 다시 외워야겠다</li>
    </ol>