Face++のdetectAPIを使いフォルダ内にある顔画像すべてに対してfor文を回し、感情推定を行いその結果の一部をcsvファイルに保存していきたいと思っています。
コード
# coding: utf-8 import os import sys import csv import pandas as pd import requests sys.path.append(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))) sys.path.append('E:/facepp-python-demo-master/facepp-python-demo-master/example/detect/images/images01/*') from config import API_KEY, API_SECRET, DETECT_PATH ,ANALYZE_PATH from images import images01 from images import images02 from images import images03 from images import images04 from example.common import get_input_file_path from example.common2 import get_image_file_path import cv2 import codecs import glob import re from PIL import Image import numpy as np return_landmark = 0 return_attributes = None #calculate_all = 0 face_rectangle = '' beauty_score_min = 0 beauty_score_max = 100 def call_api(): data = { #'api_key': API_KEY, #'api_secret': API_SECRET, 'return_landmark': 1, #'return_attributes': 'gender,age,emotion' #'calculate_all': calculate_all, #'beauty_score_min': beauty_score_min, #'beauty_score_max': beauty_score_max } dir = 'images/images01/' files = glob.glob(dir + "*.jpg") #print(files) for f in files: print(1) name_list = [] # ファイル名の空リストを定義 ext_list = [] # 拡張子の空リストを定義 name_list2 = [] # ファイルのフルパスからファイル名と拡張子を抽出 file = os.path.basename(f) # 拡張子ありファイル名を取得 name, ext = os.path.splitext(file) # 拡張子なしファイル名と拡張子を取得 name_list.append(name) # 拡張子なしファイル名をリスト化 ext_list.append(ext) # 拡張子をリスト化 print(file) if face_rectangle in file: data.update({'face_rectangle': face_rectangle}) print(2) input_file = file print(input_file) #input_file = get_input_file_path(os.path.abspath(os.path.dirname(__file__)),f) if not input_file: print('画像ファイルを正しいディレクトリに置いてください') return files = { 'image_file': open(input_file, 'rb').read() } resp = requests.post(DETECT_PATH, data=data, files=files).json() with open('emotion.csv','w') as csv_file: writer = csv.writer(csv_file) print(3) for key, value in resp.items(): writer.writerows(resp) (pd.DataFrame.from_dict(data=resp,orient='index').to_csv('emotion_csv',header=False)) print(4) osp = resp['faces'] df = pd.io.json.json_normalize(osp) print(df) df.to_csv('emotion.csv') #if not ext in ('.png', '.jpeg', '.jpg'): #print("終了") #(pd.DataFrame.from_dict(data=osp, orient='index').to_csv('emotion2_csv', header=False)) #print(resp['faces']) if __name__ == "__main__": call_api() print(5)
エラー内容
(env2) E:\facepp-python-demo-master\facepp-python-demo-master\example\detect>python detect3.py 1 images1.jpg 2 images1.jpg Traceback (most recent call last): File "detect3.py", line 86, in <module> call_api() File "detect3.py", line 64, in call_api 'image_file': open(input_file, 'rb').read() FileNotFoundError: [Errno 2] No such file or directory: 'images1.jpg'
参照したい画像のあるフォルダは'images/images01の中に置いてあります。
画像情報の取得時には処理がうまくいっているけど感情推定処理時には画像ファイルを参照できていない?
どこが原因でこのエラーが起こっているのかわからず質問させていただきました.
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/03/24 08:37