前提・実現したいこと
映像からの人物検出をしたいと試みています。
以下のプログラムを実行した結果、face_kerasがインポートされていないとエラーが出てきます。
KerasとTensorFlowはpip installでインストール済みです。
どなたか解決策がわかる方ご回答お願いします。
発生している問題・エラーメッセージ
import face_keras as face ModuleNotFoundError: No module named 'face_keras'
該当のソースコード
Python
1import face_keras as face 2import sys, os 3from keras.preprocessing.image import load_img, img_to_array 4import numpy as np 5import cv2 6import time 7 8cascade_path = 'C:\Users\Taisei\Anaconda3\envs\OpenCV\Lib\site-packages\cv2\data\haarcascade_frontalface_default.xml' 9cascade = cv2.CascadeClassifier(cascade_path) 10cam = cv2.VideoCapture(1) 11color = (255, 0, 255) 12 13image_size = 32 14categories = ["output"] 15 16def main(): 17 18 while(True): 19 ret, frame = cam.read() 20 facerect = cascade.detectMultiScale(frame, scaleFactor=1.3, minNeighbors=2, minSize=(10, 10)) 21 22 for rect in facerect: 23 cv2.rectangle(frame, tuple(rect[0:2]),tuple(rect[0:2] + rect[2:4]), color, thickness=2) 24 x = rect[0] 25 y = rect[1] 26 width = rect[2] 27 height = rect[3] 28 29 cv2.imwrite("frontalface.png", frame) 30 img = cv2.imread("frontalface.png") 31 32 dst = img[y:y+height, x:x+width] 33 cv2.imwrite("output.png", dst) 34 cv2.imread("output.png") 35 X = [] 36 37 img = load_img("output.png", target_size=(image_size,image_size)) 38 in_data = img_to_array(img) 39 40 X.append(in_data) 41 X = np.array(X) 42 X = X.astype("float") / 256 43 44 model = face.build_model(X.shape[1:]) 45 model.load_weights("C:\python code\monariza-model.hdf5") 46 47 pre = model.predict(X) 48 print(pre) 49 if pre[0][0] > 0.95: 50 print(categories[0]) 51 text = categories[0] 52 font = cv2.FONT_HERSHEY_PLAIN 53 cv2.putText(frame,text,(rect[0],rect[1]-10),font, 2, color, 2, cv2.LINE_AA) 54 elif pre[0][1] > 0.95: 55 print(categories[1]) 56 text = categories[1] 57 font = cv2.FONT_HERSHEY_PLAIN 58 cv2.putText(frame,text,(rect[0],rect[1]-10),font, 2, color, 2, cv2.LINE_AA) 59 elif pre[0][2] > 0.95: 60 print(categories[2]) 61 text = categories[2] 62 font = cv2.FONT_HERSHEY_PLAIN 63 cv2.putText(frame,text,(rect[0],rect[1]-10),font, 2, color, 2, cv2.LINE_AA) 64 elif pre[0][3] > 0.95: 65 print(categories[3]) 66 text = categories[3] 67 font = cv2.FONT_HERSHEY_PLAIN 68 cv2.putText(frame,text,(rect[0],rect[1]-10),font, 2, color, 2, cv2.LINE_AA) 69 elif pre[0][4] > 0.95: 70 print(categories[4]) 71 text = categories[4] 72 font = cv2.FONT_HERSHEY_PLAIN 73 cv2.putText(frame,text,(rect[0],rect[1]-10),font, 2, color, 2, cv2.LINE_AA) 74 75 cv2.imshow("Show FLAME Image", frame) 76 #time.sleep(0.1) 77 78 k = cv2.waitKey(1) 79 80 if k == ord('q'): 81 break 82 83 cam.release() 84 cv2.destroyAllWindows() 85 86if __name__ == '__main__': 87 main() 88
試したこと
webでの検索や過去の質問を見てみましたが解決しませんでした。
補足情報(FW/ツールのバージョンなど)
サンプルプログラムはすべてこちらのサイトから参考にさせていただいてます。
https://ai-coordinator.jp/real-time-person-detection
バージョンを確認したところ
Keras 2.3.1
TensorFlow 2.0.0
OpenCV 4.1.0
Python 3.6.8 でした。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/12/09 07:15