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

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

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

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

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

1回答

4917閲覧

OpenCVを使用した顔認識をしようとしたら、エラーが出てきた

fdaskjlfda

総合スコア40

OpenCV

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

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2018/09/10 08:32

環境

Windows 10
Anacondaを使用
python 3.6.6
Package Version


astroid 2.0.1
certifi 2018.8.24
chainer 4.3.1
colorama 0.3.9
cycler 0.10.0
filelock 3.0.4
isort 4.3.4
kiwisolver 1.0.1
lazy-object-proxy 1.3.1
matplotlib 2.2.3
mccabe 0.6.1
numpy 1.15.1
opencv-python 3.4.3.18
Pillow 5.2.0
pip 18.0
protobuf 3.6.0
pylint 2.0.0
pyparsing 2.2.0
python-dateutil 2.7.3
pytz 2018.5
setuptools 40.2.0
six 1.11.0
typed-ast 1.1.0
wheel 0.31.1
wincertstore 0.2
wrapt 1.10.11

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

File "ai.py", line 70, in <module> minSize=(100,100)) cv2.error: OpenCV(3.4.3) C:\projects\opencv-python\opencv\modules\objdetect\src\cascadedetect.cpp:1698: error: (-215:Assertion failed) !empty() in function 'cv::CascadeClassifier::detectMultiScale'

該当のソースコード

python

1import cv2 2import sys 3from PIL import Image 4import matplotlib.pyplot as plt 5import numpy as np 6 7#入力ファイルのパスを指定 8in_jpg = "./photo/face.jpg" 9out_jpg = "./face.jpg" 10 11#入力画像の表示 12plt.show(plt.imshow(np.asarray(Image.open(in_jpg)))) 13 14# 画像の読み込み 15image = cv2.imread(in_jpg) 16 17# グレースケールに変換 18image_gs = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) 19 20# 顔認識用特徴量ファイルを読み込む --- (カスケードファイルのパスを指定) 21cascade = cv2.CascadeClassifier("./haarcascades/haarcascade_frontalface_alt.xml") 22#cascade = cv2.CascadeClassifier("./haarcascades/haarcascade_eye.xml") 23# 顔認識の実行 24face_list = cascade.detectMultiScale(image_gs, 25 scaleFactor=1.1, 26 minNeighbors=1, 27 minSize=(100,100)) 28 29if len(face_list) > 0: 30 # 認識した部分を赤色で囲む 31 print(face_list) 32 color = (0, 0, 255) 33 for face in face_list: 34 x,y,w,h = face 35 cv2.rectangle(image, (x,y), (x+w, y+h), color, thickness=3) 36 # 描画結果をファイルに書き込む 37 cv2.imwrite(out_jpg, image) 38 39else: 40 print("no face") 41 42#出力画像の表示 43plt.show(plt.imshow(np.asarray(Image.open(out_jpg)))) 44

試したこと

他の似たようなウェブサイトのソースコードも同じエラーメッセージが来ました。

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

特になし

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

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

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

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

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

guest

回答1

0

ベストアンサー

このカスケードファイルは存在していますか?

python

1cascade = cv2.CascadeClassifier("./haarcascades/haarcascade_frontalface_alt.xml")

存在しない場合はこちら からダウンロードできます。

イメージ説明

投稿2018/09/10 08:48

tiitoi

総合スコア21956

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

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

fdaskjlfda

2018/09/10 08:58

ありがとうございます! リンク先へ行くと、とても長いxmlファイルが出てきたのですが、これをすべてコピペして haarcascadesの中に、haarcascade_frontalface_alt.xmlと保存すればよいのでしょうか? よろしくお願いします
tiitoi

2018/09/10 09:01

コピペでもいいですが、「右クリック」→「名前を付けて保存」でローカルに保存して、cv2.CascadeClassifier() に保存先のパスを指定してみてください。 ファイル名等はなんでもいいかと思います。
fdaskjlfda

2018/09/10 09:01

了解です! ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問