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

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

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

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

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

1800閲覧

Python insigtfaceでエラーが出る

MaryMatty

総合スコア4

Python 3.x

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

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2023/05/25 08:06

実現したいこと

Python で insightface を使って顔認識をしたいのですが実行したときに ONNXRuntime に関してエラーが出ます
どこにバグがあるのか教えていただけますでしょうか。 

前提

Python3系でPycharm上でinsightfaceを使用

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

エラーメッセージ
[ WARN:0@2.087] global loadsave.cpp:244 cv::findDecoder imread_('input.jpg'): can't open/read file: check file path/integrity
C:\Users\user\PycharmProjects\insightFace\venv\lib\site-packages\onnxruntime\capi\onnxruntime_inference_collection.py:54: UserWarning: Specified provider 'CUDAExecutionProvider' is not in available provider names.Available providers: 'CPUExecutionProvider'
warnings.warn(
Applied providers: ['CPUExecutionProvider'], with options: {'CPUExecutionProvider': {}}
find model: C:\Users\user/.insightface\models\buffalo_l\1k3d68.onnx landmark_3d_68 ['None', 3, 192, 192] 0.0 1.0
Applied providers: ['CPUExecutionProvider'], with options: {'CPUExecutionProvider': {}}
find model: C:\Users\user/.insightface\models\buffalo_l\2d106det.onnx landmark_2d_106 ['None', 3, 192, 192] 0.0 1.0
Applied providers: ['CPUExecutionProvider'], with options: {'CPUExecutionProvider': {}}
find model: C:\Users\user/.insightface\models\buffalo_l\det_10g.onnx detection [1, 3, '?', '?'] 127.5 128.0
Applied providers: ['CPUExecutionProvider'], with options: {'CPUExecutionProvider': {}}
find model: C:\Users\user/.insightface\models\buffalo_l\genderage.onnx genderage ['None', 3, 96, 96] 0.0 1.0
Applied providers: ['CPUExecutionProvider'], with options: {'CPUExecutionProvider': {}}
find model: C:\Users\user/.insightface\models\buffalo_l\w600k_r50.onnx recognition ['None', 3, 112, 112] 127.5 127.5
set det-size: (640, 640)
Traceback (most recent call last):
File "C:\Users\user\PycharmProjects\insightFace\main.py", line 12, in <module>
faces = app.get(img)
File "C:\Users\user\PycharmProjects\insightFace\venv\lib\site-packages\insightface\app\face_analysis.py", line 59, in get
bboxes, kpss = self.det_model.detect(img,
File "C:\Users\user\PycharmProjects\insightFace\venv\lib\site-packages\insightface\model_zoo\retinaface.py", line 211, in detect
im_ratio = float(img.shape[0]) / img.shape[1]
AttributeError: 'NoneType' object has no attribute 'shape'

該当のソースコード

import numpy as np
import cv2
import insightface
from insightface.app import FaceAnalysis

image_file = "input.jpg"
img = cv2.imread(image_file)

app = insightface.app.FaceAnalysis()
app.prepare(ctx_id=1, det_size=(640, 640))

faces = app.get(img)

rimg = app.draw_on(img, faces)
cv2.imwrite("./output.jpg", rimg)

試したこと

app = insightface.app.FaceAnalysis()
app.prepare(ctx_id=1, det_size=(640, 640))
ここに問題があるのかなと思いました

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

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

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

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

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

can110

2023/05/25 08:19

input.jpgが正常に読み込めていないので、まずはそれを解決する必要があります。 ファイル名(パス)はあっているか カレントディレクトリにファイルはあるか ファイルのあるディレクトリ(パス)に日本語は含まれていないか などを確認し、問題ある場合は対応してください。
jbpb0

2023/05/25 12:26

> [ WARN:0@2.087] global loadsave.cpp:244 cv::findDecoder imread_('input.jpg'): can't open/read file: check file path/integrity pythonで下記を実行して、カレントディレクトリがどこかを確認してください import os print(os.getcwd()) 「input.jpg」が置いてある場所はカレントディレクトリでしょうか?
MaryMatty

2023/05/29 08:36

確かにそれを確認できています しかしなぜかエラーがでます 絶対パスで指定すると画像の読み込みは出来ましたが、UserWarning: Specified provider 'CUDAExecutionProvider' is not in available provider names.Available providers: 'CPUExecutionProvider' warnings.warn( Applied providers: ['CPUExecutionProvider'], with options: {'CPUExecutionProvider': {}} というエラーメッセージはのこったままです どうするべきでしょうか
jbpb0

2023/05/29 11:55

> UserWarning: Specified provider 'CUDAExecutionProvider' is not in available provider names.Available providers: 'CPUExecutionProvider' > というエラーメッセージ エラーではなくて「Warning」なので、無視して実行できませんでしょうか? app = insightface.app.FaceAnalysis() ↓ 変更 app = insightface.app.FaceAnalysis(providers=['CPUExecutionProvider']) とすれば、「Warning」出なくなるかも
MaryMatty

2023/05/29 12:09

回答ありがとうございます。 おっしゃる通り実行してみたところ下のようにFutureWarningが表示されました FutureWarning: `rcond` parameter will change to the default of machine precision times ``max(M, N)`` where M and N are the input matrix dimensions. To use the future default and silence this warning we advise to pass `rcond=None`, to keep using the old, explicitly pass `rcond=-1`. P = np.linalg.lstsq(X_homo, Y)[0].T # Affine matrix. 3 x 4 Traceback (most recent call last): File "C:\Users\yusan\PycharmProjects\insightFace\main.py", line 15, in <module> rimg = app.draw_on(img, faces) File "C:\Users\yusan\PycharmProjects\insightFace\venv\lib\site-packages\insightface\app\face_analysis.py", line 84, in draw_on box = face.bbox.astype(np.int) File "C:\Users\yusan\PycharmProjects\insightFace\venv\lib\site-packages\numpy\__init__.py", line 305, in __getattr__ raise AttributeError(__former_attrs__[attr]) AttributeError: module 'numpy' has no attribute 'int'. `np.int` was a deprecated alias for the builtin `int`. To avoid this error in existing code, use `int` by itself. Doing this will not modify any behavior and is safe. When replacing `np.int`, you may wish to use e.g. `np.int64` or `np.int32` to specify the precision. If you wish to review your current use, check the release note link for additional information. The aliases was originally deprecated in NumPy 1.20; for more details and guidance see the original release note at: https://numpy.org/devdocs/release/1.20.0-notes.html#deprecations. Did you mean: 'inf'?
jbpb0

2023/05/29 12:33 編集

> おっしゃる通り実行してみたところ下のようにFutureWarningが表示 「FutureWarning」は、それが問題になるのは「Future」なので、とりあえず現時点では大丈夫なはず > AttributeError: module 'numpy' has no attribute 'int'. は、「Warning」ではなくて「Error」なので、対策が要ります エラーメッセージには > File "C:\Users\yusan\PycharmProjects\insightFace\venv\lib\site-packages\insightface\app\face_analysis.py", line 84, in draw_on box = face.bbox.astype(np.int) とありますが、 https://github.com/deepinsight/insightface/blob/master/python-package/insightface/app/face_analysis.py の84行目は box = face.bbox.astype(int) と、「np.int」ではなく「int」になってます 「insightface」の最新版をインストールしてますでしょうか?
MaryMatty

2023/05/30 07:21

最新版をアップデートしてからもう一度実行してみたところ同じ結果でした 一体どこにエラーがあるのでしょう
jbpb0

2023/05/30 08:20

質問者さんのコメントの記載中で、エラーメッセージは > Traceback (most recent call last): と書かれてるところから下です そこを順番に見ると、 > File "C:\Users\yusan\PycharmProjects\insightFace\main.py", line 15, in <module> rimg = app.draw_on(img, faces) File "C:\Users\yusan\PycharmProjects\insightFace\venv\lib\site-packages\insightface\app\face_analysis.py", line 84, in draw_on box = face.bbox.astype(np.int) File "C:\Users\yusan\PycharmProjects\insightFace\venv\lib\site-packages\numpy\__init__.py", line 305, in __getattr__ raise AttributeError(__former_attrs__[attr]) と続いた下に > AttributeError: module 'numpy' has no attribute 'int'. とありましたよね これがエラーです そのエラーの原因は、 > File "C:\Users\yusan\PycharmProjects\insightFace\venv\lib\site-packages\insightface\app\face_analysis.py", line 84, in draw_on の84行目が > box = face.bbox.astype(np.int) だったからで、「np.int」は現在は使えないのです https://github.com/deepinsight/insightface/blob/master/python-package/insightface/app/face_analysis.py の84行目は box = face.bbox.astype(int) と、「np.int」ではなく「int」になってますから、最新版を入れたら > File "C:\Users\yusan\PycharmProjects\insightFace\venv\lib\site-packages\insightface\app\face_analysis.py", line 84, in draw_on の84行目が box = face.bbox.astype(int) となり、現在は使えない「np.int」が無くなるのでエラーにならないはずなのですが、 > 最新版をアップデートしてからもう一度実行してみたところ同じ結果 となるのは不思議です もう一度確認してください 現在実行した場合に、 > Traceback (most recent call last): や > AttributeError: module 'numpy' has no attribute 'int'. は表示されてますか? 表示されてる場合は、 > File "C:\Users\yusan\PycharmProjects\insightFace\venv\lib\site-packages\insightface\app\face_analysis.py", line 84, in draw_on の84行目のコードを教えてください また、入れた「insightface」の「最新版」のバージョンを教えてください
MaryMatty

2023/06/01 08:19

画像ファイルのパスが間違っていたので訂正してもう一度実行したところ下記のような結果になりました Traceback (most recent call last): File "C:\Users\user\PycharmProjects\insightFace\main.py", line 11, in <module> faces = app.get(img) File "C:\Users\yusan\PycharmProjects\insightFace\venv\lib\site-packages\insightface\app\face_analysis.py", line 59, in get bboxes, kpss = self.det_model.detect(img, File "C:\Users\user\PycharmProjects\insightFace\venv\lib\site-packages\insightface\model_zoo\retinaface.py", line 211, in detect im_ratio = float(img.shape[0]) / img.shape[1] AttributeError: 'NoneType' object has no attribute 'shape' find model: C:\Users\user/.insightface\models\buffalo_l\w600k_r50.onnx recognition ['None', 3, 112, 112] 127.5 127.5 set det-size: (640, 640)
MaryMatty

2023/06/01 08:34

> AttributeError: module 'numpy' has no attribute 'int'. は表示されてますか? 表示されてる場合は、 > File "C:\Users\yusan\PycharmProjects\insightFace\venv\lib\site-packages\insightface\app\face_analysis.py", line 84, in draw_on の84行目のコードを教えてください また、入れた「insightface」の「最新版」のバージョンを教えてください >そのエラーは表示されなくなりました   バージョンは0.7.3でした またgooglemediapipeを使うとうまくいったのでこの質問はもう答えていただかなくても大丈夫です お手数をおかけしました 本当にありがとうございました
jbpb0

2023/06/01 12:41

> googlemediapipeを使うとうまくいった 解決した方法を回答に書いて、「自己解決」にしてください
guest

回答1

0

自己解決

googlemediapipeを使うとうまくいった

投稿2023/06/02 13:03

MaryMatty

総合スコア4

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問