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

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

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

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

Python 3.x

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

Q&A

解決済

2回答

412閲覧

Python3x OpenCVで顔認識をしてみたら”Fail recognise”になった

退会済みユーザー

退会済みユーザー

総合スコア0

OpenCV

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

Python 3.x

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

0グッド

0クリップ

投稿2019/05/12 08:14

編集2019/05/12 08:41

・OpenCVで顔認識をしてみた
https://qiita.com/K_M95/items/f1a3e7c47800adb94095

初歩的な質問ですいません。。
Qiitaの記事を参考に顔認識を試したところ下記のエラーが出ました。
文字コードらしきエラーだとはわかるのですが「どこ」がエラーなのかがわりません・・
詳しい人いたら教えてください。
(最初に文字コードを指定するのでしょうか・・それとも出力するときに文字コードを指定するのでしょうか・・)
※print ("Hello World")ではちゃん出ています。

#coding: utf-8 import cv2 cascade_file = "/Users/.../Python/haarcascade_frontalface_alt.xml" image_file = "images/smIMGL4136_TP_V.jpg)" img = cv2.imread(image_file) img_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) cascade = cv2.CascadeClassifier(cascade_file) face_list = cascade.detectMultiScale(img_gray, minSize=(150, 150)) if len(face_list) == 0: print("Fail recognise") quit() for (x, y, w, h) in face_list: print("顔の座標 =", x, y, w, h) color = (0, 0, 225) pen_w = 8 cv2.rectangle(img, (x, y), (x+w, y+h), color, thickness = pen_w) cv2.imwrite("after.jpg", img)

結果

Fail recognise

イメージ説明

smIMGL4136_TP_V.jpg

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

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

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

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

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

can110

2019/05/12 08:18

単に顔として認識できる領域がなかっただけではないでしょうか? teratailでは画像も貼り付けできるので、images/smIMGL4136_TP_V.jpgを提示されると 第三者が検証できるかと思います。
退会済みユーザー

退会済みユーザー

2019/05/12 08:21

画像添付しました・・・いかがでしょうか・・
can110

2019/05/12 08:34

Fail recogniseになります。 他の画像では正常に領域取得できるのでコードには問題なさそうです。
退会済みユーザー

退会済みユーザー

2019/05/12 08:36

この画像だとOpenCVではダメなんですね、、一応画像差し替えたコードで注意書き書いて自己解決します・・・(ありがとうございました。)
guest

回答2

0

分類器としてhaarcascade_frontalface_default.xmlを用い、minSize=(50, 50)程度にすると認識できました。
分類器の選択も大事なようです。
イメージ説明

投稿2019/05/12 09:14

can110

総合スコア38233

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

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

0

ベストアンサー

自己解決というほどではないんですが、他の画像にしたところ成功しました。
(添付した画像はなぜか認識しないようです・・・)

#coding: utf-8 import cv2 cascade_file = "/Users/.../Python/haarcascade_frontalface_alt.xml" image_file = "images/sample01.jpeg)" img = cv2.imread(image_file) img_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) cascade = cv2.CascadeClassifier(cascade_file) # うまくいかない場合はminSize=(50, 50)など数値を変えると取れるみたいです。(アドバイス転載) face_list = cascade.detectMultiScale(img_gray, minSize=(150, 150)) if len(face_list) == 0: print("Fail recognise") quit() for (x, y, w, h) in face_list: print("顔の座標 =", x, y, w, h) color = (0, 0, 225) pen_w = 8 cv2.rectangle(img, (x, y), (x+w, y+h), color, thickness = pen_w) cv2.imwrite("after.jpg", img)

投稿2019/05/12 08:46

編集2019/05/12 14:59
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問