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

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

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

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

dlib

dlibは、機械学習のC++の画像処理ライブラリの一つ。性能の高い顔の器官検出が簡単にでき、Pythonバインドもあります。オープンソースで無料で使用でき、機械学習以外の様々な機能も搭載されています。

Python

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

Q&A

1回答

8266閲覧

【顔認証】予測機(predictor)が読み込めない/RuntimeError: Unable to open【Python】

netz-eng

総合スコア105

Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

dlib

dlibは、機械学習のC++の画像処理ライブラリの一つ。性能の高い顔の器官検出が簡単にでき、Pythonバインドもあります。オープンソースで無料で使用でき、機械学習以外の様々な機能も搭載されています。

Python

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

0グッド

0クリップ

投稿2020/11/02 13:54

編集2022/01/12 10:55

shape_predictor_68_face_landmarks.datファイルの読み込みエラーを解消したい

Pythonで顔認証について勉強しています。
顔の特徴点検出のために、「shape_predictor_68_face_landmarks.dat」というファイルが必要らしく、参考にしたサイトのリンクから「shape_predictor_68_face_landmarks.dat.bz2」という圧縮ファイルをDLしました。

その後Zip Extractorを用いてファイルを展開すると、.datファイルが同じフォルダ内に現れました。
それから下のコードを実行すると、エラーが出てしまいました。

エラー解消にお心当たりのある方、ご回答よろしくお願いします!

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

python

1Traceback (most recent call last): 2 File "<stdin>", line 1, in <module> 3RuntimeError: Unable to open C:\Users***\shape_predictor_68_face_landmarks.dat

該当のソースコード

python

1import dlib 2PREDICTOR_PATH = r"C:\Users***\shape_predictor_68_face_landmarks.dat" 3predictor = dlib.shape_predictor(PREDICTOR_PATH)

試したこと

https://teratail.com/questions/241093
↑ こちらに同じエラーが載っていたのでリンク先を参照してみましたが、Windows環境ではbunzip2コマンドは使用できないようで、同じ手順で展開(解凍)することができませんでした。

(そもそも、展開の時点でのエラーなのかすらよく分かっていません……)

==追記========================================================

https://mebee.info/2020/07/25/post-15206/
↑ こちらをもとに、powershell上でLinuxコマンドを使えるようにしました。

powershell

1bunzip2 C:\Users***\shape_predictor_68_face_landmarks.dat

を実行し、正規の(?)手段で展開したあと、改めて上のコードを試しましたが、結果は同じでした。

ということは、.datファイル自体が壊れているのでしょうか?

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

Windows10
Python 3.8.3
dlib 19.21.0

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

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

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

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

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

guest

回答1

0

「C:\Users***\」の「」は、実際のユーザー名に変えてますよね?
」のまま実行しているのでは無いですよね?

あと、「shape_predictor_68_face_landmarks.dat」が実際に置いてあるフォルダは、そこで合っているのでしょうか?
もし置いてあるフォルダが違うなら、「C:\Users***\」を、ファイルが実際にあるフォルダ名に書き直してみてください

投稿2020/11/20 11:55

jbpb0

総合スコア7651

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

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

netz-eng

2020/11/20 14:45

ご回答ありがとうございます。 実際に実行したコードでは、伏せ字のままでなく正しいパスになっています。 .datファイルの置いてある場所も合っています。 エラー内容的に恐らく指定したパスにファイルが見つからないのではなく、指定した.datファイルの読み込みに関して問題があるのでは……と思うのですが、未だに解決作が分かっていません(-_-;) 何かお気づきのことがあれば、是非お教えいただければと思います!
jbpb0

2020/11/21 04:03

Windows 10 PCで、 http://dlib.net/files/ から「shape_predictor_68_face_landmarks.dat.bz2」をChromeにてダウンロードして、7-Zipで解凍して、現れた「shape_predictor_68_face_landmarks.dat」を適当なフォルダに置いて、提示されたPythonコードでフォルダ名だけ書き直して実行したら、エラーは発生せず読み込めました ダウンロードか解凍かどちらかがうまくいってなくて、ファイルが壊れているのではないでしょうか 以下、こちらのPC上でのファイルのサイズです 2020/11/21 12:50 64,040,097 shape_predictor_68_face_landmarks.dat.bz2 2020/11/21 12:50 99,693,937 shape_predictor_68_face_landmarks.dat
netz-eng

2020/11/22 16:54

ご検証いただきありがとうございます……! > ダウンロードか解凍かどちらかがうまくいってなくて、ファイルが壊れているのではないでしょうか そうですね、なんとなく自分もそうなのかな、と思っています。 自分も同じサイトからDLして、ファイルサイズは以下(同じ)でした。 ・shape_predictor_68_face_landmarks.dat.bz2  64,040,097 bytes ・shape_predictor_68_face_landmarks.dat    99,693,937 bytes ファイルサイズを見ると、解凍自体は成功しているんでしょうか……?
jbpb0

2020/11/23 02:03

https://www.kkaneko.jp/dblab/dlib/dlibsample.html にも、そのエラーが出たらデータの準備からやり直せと書かれてますね 上記ページでも、Windowsの解凍には7-Zipが紹介されてますので、ダメもとで使ってみたらいかがでしょうか それでもダメなら、再度ダウンロードからやり直すとか
jbpb0

2020/11/23 02:07

dlibは、pipで入れました 自分でビルドはしてません 同じ19.21.0です
netz-eng

2020/12/03 06:19 編集

ご返信遅くなってすみません。 ご指摘の通り、7-Zipをインストールしてやり直してみましたが、結果は同じでした。 dlibライブラリのダウンロードは確かcondaで行ったのですが、pipの場合と動作が違ってくるものなのでしょうか?
jbpb0

2020/12/03 07:04

conda版との違いは分かりませんけど、公式の「Using dlib from Python」の最初にpipで入れろって書いてあるので、試しにconda版を消してpipで入れ直してみたらいかがでしょうか? http://dlib.net/compile.html
netz-eng

2020/12/04 18:27 編集

conda版をアンインストールし、pip install dlib を試してみましたが、何故か非常に長いエラーが出てdlibをインストールできませんでした。 https://qiita.com/Kurobani/items/fd84fd941f527c46ab98 ↑ こちらを参考にしてみたものの結果は同じで、私の環境では「conda install -c menpo dlib」でないとインストールがうまくいかないようです……
jbpb0

2020/12/04 23:18

> 私の環境では「conda install -c menpo dlib」でないとインストールがうまくいかないようです https://anaconda.org/menpo/dlib を見ても、Windows用はdlib 18.18までと書かれてますし、 https://anaconda.org/menpo/dlib/files を見ても、Windows用のファイルはpython 3.5用のdlib 18.18までしか見当たりません 実際、こちらの環境で conda install -c menpo dlib とやってみても、下記の様なpythonのバージョンが合わないと表示が出るだけでした UnsatisfiableError: The following specifications were found to be incompatible with the existing python installation in your environment: Specifications: - dlib -> python[version='2.7.*|3.4.*|3.5.*'] Your python: python=3.7 なので、 conda install -c menpo dlib を行っても、質問者さんがお使いの環境 Windows10 Python 3.8.3 dlib 19.21.0 にはならないはずなのですが
netz-eng

2020/12/06 16:27

色々と検討してくださって、本当にありがとうございます。 > なので、 >conda install -c menpo dlib >を行っても、質問者さんがお使いの環境 >Windows10 >Python 3.8.3 >dlib 19.21.0 >にはならないはずなのですが すみません、Anacondaの違うページのコードを載せてしまっていました。 正しくは「conda install -c conda-forge dlib」です。こちらで、質問文に載せた環境になりました。 また、「conda info --json」で情報を確認してみましたが、Pythonのバージョンは64-bitでした。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問