質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
OpenCV

OpenCV(オープンソースコンピュータービジョン)は、1999年にインテルが開発・公開したオープンソースのコンピュータビジョン向けのクロスプラットフォームライブラリです。

Python 2.7

Python 2.7は2.xシリーズでは最後のメジャーバージョンです。Python3.1にある機能の多くが含まれています。

Q&A

2回答

429閲覧

pythonで顔認識を行ないたい

ohyama

総合スコア29

OpenCV

OpenCV(オープンソースコンピュータービジョン)は、1999年にインテルが開発・公開したオープンソースのコンピュータビジョン向けのクロスプラットフォームライブラリです。

Python 2.7

Python 2.7は2.xシリーズでは最後のメジャーバージョンです。Python3.1にある機能の多くが含まれています。

0グッド

0クリップ

投稿2019/04/25 10:50

編集2022/01/12 10:55

前提・実現したいこと

このサイトのサンプルコードを用いてpython2系で顔認識を行ないたいのですが、エラーメッセージが表示されて実行できません。エラーは以下の通りです。

発生している問題・エラーメッセージ

python2.7 Python 2.7.14 (default, Mar 9 2018, 14:46:34) [GCC 4.2.1 Compatible FreeBSD Clang 4.0.0 (tags/RELEASE_400/final 297347)] on freebsd11 Type "help", "copyright", "credits" or "license" for more information. >>> import numpy >>> import cv2 >>> import os >>> quit() python2.7 face_predict.py ImportError: numpy.core.multiarray failed to import Traceback (most recent call last): File "face_predict.py", line 4, in <module> import cv2, os ImportError: numpy.core.multiarray failed to import

すると、numpy,cv2,osのimportには成功しているのですが、プログラムを実行してもエラーが出てしまいました。

該当のソースコード

python

1#!/usr/bin/python 2# -*- coding: utf-8 -*- 3 4import cv2, os 5import numpy as np 6from PIL import Image 7 8# トレーニング画像 9train_path = './yalefaces' 10 11# テスト画像 12test_path = './test' 13 14# Haar-like特徴分類器 15cascadePath = "haarcascade_frontalface_default.xml" 16faceCascade = cv2.CascadeClassifier(cascadePath) 17 18# 顔認識器の構築 for OpenCV 2 19# ※ OpenCV3ではFaceRecognizerはcv2.faceのモジュールになります 20# EigenFace 21#recognizer = cv2.createEigenFaceRecognizer() 22# FisherFace 23#recognizer = cv2.createFisherFaceRecognizer() 24# LBPH 25recognizer = cv2.face.LBPHFaceRecognizer_create() 26 27# 指定されたpath内の画像を取得 28def get_images_and_labels(path): 29 # 画像を格納する配列 30 images = [] 31 # ラベルを格納する配列 32 labels = [] 33 # ファイル名を格納する配列 34 files = [] 35 for f in os.listdir(path): 36 # 画像のパス 37 image_path = os.path.join(path, f) 38 # グレースケールで画像を読み込む 39 image_pil = Image.open(image_path).convert('L') 40 # NumPyの配列に格納 41 image = np.array(image_pil, 'uint8') 42 # Haar-like特徴分類器で顔を検知 43 faces = faceCascade.detectMultiScale(image) 44 # 検出した顔画像の処理 45 for (x, y, w, h) in faces: 46 # 顔を 200x200 サイズにリサイズ 47 roi = cv2.resize(image[y: y + h, x: x + w], (200, 200), interpolation=cv2.INTER_LINEAR) 48 # 画像を配列に格納 49 images.append(roi) 50 # ファイル名からラベルを取得 51 labels.append(int(f[7:9])) 52 # ファイル名を配列に格納 53 files.append(f) 54 55 return images, labels, files 56 57 58# トレーニング画像を取得 59images, labels, files = get_images_and_labels(train_path) 60 61# トレーニング実施 62recognizer.train(images, np.array(labels)) 63 64# テスト画像を取得 65test_images, test_labels, test_files = get_images_and_labels(test_path) 66 67i = 0 68while i < len(test_labels): 69 # テスト画像に対して予測実施 70 label, confidence = recognizer.predict(test_images[i]) 71 # 予測結果をコンソール出力 72 print("Test Image: {}, Predicted Label: {}, Confidence: {}".format(test_files[i], label, confidence)) 73 # テスト画像を表示 74 cv2.imshow("test image", test_images[i]) 75 cv2.waitKey(300) 76 77 i += 1 78 79# 終了処理 80cv2.destroyAllWindows() 81

###試したこと

ImportError: numpy.core.multiarray failed to import

について調べたところnumpyが古いからnumpyをバージョンアップすれば解決するとあったのですが、
pip install numpy --upgradeは失敗し、解決しませんでした。

補足情報(FW/ツールのバージョンなど)

OSはFreeBSD11.2
portsでpy-opencvはインストールしました。インストールしたところpy27-opencv-3.4.1_17と書いてありました。
numpyのバージョンは1.16.1

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Ryupe

2019/04/26 00:42

numpyのバージョンはいくつですか?
guest

回答2

0

python2.7 を起動して

import numpy.core.multiarray

はうまく行きますか?

投稿2019/04/27 05:09

cugel

総合スコア220

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

それらのモジュールがインストールされていない、というはなしでは。

投稿2019/04/25 12:58

y_waiwai

総合スコア87719

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ohyama

2019/04/26 10:30

importには成功しているんです。 import numpyを実行して特にエラーは出なかったので。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問