Darkflow: AssertionError:bin /yolo.weightsを読み直しました

作成日 2017年04月10日  ·  12コメント  ·  ソース: thtrieu/darkflow

PJ Reddieダークネットサイトからyolo.weightsyolo.cfgをダウンロードしました。

cd darkflow && mkdir bin && cd bin/ \
wget http://pjreddie.com/media/files/yolo.weights >/dev/null 2>&1 && \
wget http://pjreddie.com/media/files/tiny-yolo-voc.weights >/dev/null 2>&1 && \    

その後、 flowに遭遇しようとしました:

$ ./flow --model cfg/yolo.cfg --load bin/yolo.weights --demo videofile.avi --gpu 1.0

そして私は得る

$:/darkflow/darkflow# ./flow --model cfg/yolo.cfg --load bin/yolo.weights --demo videofile.avi --gpu 1.0
Parsing ./cfg/yolo.cfg
Parsing cfg/yolo.cfg
Loading bin/yolo.weights ...
Traceback (most recent call last):
  File "./flow", line 45, in <module>
    tfnet = TFNet(FLAGS)
  File "/darkflow/net/build.py", line 46, in __init__
    darknet = Darknet(FLAGS)
  File "/darkflow/dark/darknet.py", line 27, in __init__
    self.load_weights()
  File "/darkflow/dark/darknet.py", line 82, in load_weights
    wgts_loader = loader.create_loader(*args)
  File "/darkflow/utils/loader.py", line 105, in create_loader
    return load_type(path, cfg)
  File "/darkflow/utils/loader.py", line 19, in __init__
    self.load(*args)
  File "/darkflow/utils/loader.py", line 70, in load
    val = walker.walk(new.wsize[par])
  File "/darkflow/utils/loader.py", line 127, in walk
    'Over-read {}'.format(self.path)
AssertionError: Over-read bin/yolo.weights

最も参考になるコメント

[アップデート]
PJ Reddieファイルは完全に互換性がないようです。そのため、READMEの提供されたリンクからビルド済みのウェイトをダウンロードする必要があります: https ://drive.google.com/drive/folders/0B1tW_VtY7onidEwyQ2FtQVplWEU

問題は、このサーバー側で実行する必要があることでした。少し掘り下げた後、最も簡単な解決策は、直接ダウンロードコマンドを模倣するFirefoxアドオンgcurlを使用することでした。

cd darkflow/bin && \
    curl --header 'Host: doc-0k-88-docs.googleusercontent.com' --header 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:52.0) Gecko/20100101 Firefox/52.0' --header 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8' --header 'Accept-Language: it-IT,it;q=0.8,en-US;q=0.5,en;q=0.3' --header 'Referer: https://drive.google.com/drive/folders/0B1tW_VtY7onidEwyQ2FtQVplWEU' --header 'Connection: keep-alive' --header 'Upgrade-Insecure-Requests: 1' 'https://doc-0k-88-docs.googleusercontent.com/docs/securesc/ha0ro937gcuc7l7deffksulhg5h7mbp1/etft348j4r0b37n9p1jkokvbfagiimk2/1491782400000/16010642207042931662/*/0B1tW_VtY7onieS0zMzdkSG11OW8?e=download' -o 'tiny-yolo-v1.1.weights' -L && \
    curl --header 'Host: doc-08-88-docs.googleusercontent.com' --header 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:52.0) Gecko/20100101 Firefox/52.0' --header 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8' --header 'Accept-Language: it-IT,it;q=0.8,en-US;q=0.5,en;q=0.3' --header 'Referer: https://drive.google.com/drive/folders/0B1tW_VtY7onidEwyQ2FtQVplWEU' --header 'Connection: keep-alive' --header 'Upgrade-Insecure-Requests: 1' 'https://doc-08-88-docs.googleusercontent.com/docs/securesc/ha0ro937gcuc7l7deffksulhg5h7mbp1/s29gvf1n83pqr37pk2l7t2cvcjnssd8s/1491782400000/16010642207042931662/*/0B1tW_VtY7oniTjM3YUxlRHpDVW8?e=download' -o 'tiny-yolo-voc.weights' -L && \
    curl --header 'Host: doc-10-88-docs.googleusercontent.com' --header 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:52.0) Gecko/20100101 Firefox/52.0' --header 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8' --header 'Accept-Language: it-IT,it;q=0.8,en-US;q=0.5,en;q=0.3' --header 'Referer: https://drive.google.com/drive/folders/0B1tW_VtY7onidEwyQ2FtQVplWEU' --header 'Connection: keep-alive' --header 'Upgrade-Insecure-Requests: 1' 'https://doc-10-88-docs.googleusercontent.com/docs/securesc/ha0ro937gcuc7l7deffksulhg5h7mbp1/fmtsb8ruqk7a4tg5p98khj6qp4fq3p6i/1491782400000/16010642207042931662/*/0B1tW_VtY7onicFlqclhnRGlodGM?e=download' -o 'yolo-full.weights' -L && \
    curl --header 'Host: doc-0k-88-docs.googleusercontent.com' --header 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:52.0) Gecko/20100101 Firefox/52.0' --header 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8' --header 'Accept-Language: it-IT,it;q=0.8,en-US;q=0.5,en;q=0.3' --header 'Referer: https://drive.google.com/drive/folders/0B1tW_VtY7onidEwyQ2FtQVplWEU' --header 'Connection: keep-alive' --header 'Upgrade-Insecure-Requests: 1' 'https://doc-0k-88-docs.googleusercontent.com/docs/securesc/ha0ro937gcuc7l7deffksulhg5h7mbp1/knshmif3mk3n4ogtq9p77nf2f5v3dr0d/1491782400000/16010642207042931662/*/0B1tW_VtY7onibmdQWE1zVERxcjQ?e=download' -o 'yolo-tiny.weights' -L && \
    curl --header 'Host: doc-0c-88-docs.googleusercontent.com' --header 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:52.0) Gecko/20100101 Firefox/52.0' --header 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8' --header 'Accept-Language: it-IT,it;q=0.8,en-US;q=0.5,en;q=0.3' --header 'Referer: https://drive.google.com/drive/folders/0B1tW_VtY7onidEwyQ2FtQVplWEU' --header 'Connection: keep-alive' --header 'Upgrade-Insecure-Requests: 1' 'https://doc-0c-88-docs.googleusercontent.com/docs/securesc/ha0ro937gcuc7l7deffksulhg5h7mbp1/ggut18kr6ubhoc8btg5hf6f32stoh50n/1491782400000/16010642207042931662/*/0B1tW_VtY7oniZGlkLTh5YVl1WWs?e=download' -o 'yolo.weights' -L

ところで、これらのリンクが永久に機能するかどうかはわかりません。ダウンロード後、 bin/フォルダは次のようになります。

# cd darkflow/bin/
# ls -lh
total 1.6G
-rw-r--r-- 1 root root 104M Apr 10 00:20 tiny-yolo-v1.1.weights
-rw-r--r-- 1 root root  61M Apr 10 00:20 tiny-yolo-voc.weights
-rw-r--r-- 1 root root 1.1G Apr 10 00:20 yolo-full.weights
-rw-r--r-- 1 root root 173M Apr 10 00:21 yolo-tiny.weights
-rw-r--r-- 1 root root 258M Apr 10 00:21 yolo.weights

全てのコメント12件

[アップデート]
PJ Reddieファイルは完全に互換性がないようです。そのため、READMEの提供されたリンクからビルド済みのウェイトをダウンロードする必要があります: https ://drive.google.com/drive/folders/0B1tW_VtY7onidEwyQ2FtQVplWEU

問題は、このサーバー側で実行する必要があることでした。少し掘り下げた後、最も簡単な解決策は、直接ダウンロードコマンドを模倣するFirefoxアドオンgcurlを使用することでした。

cd darkflow/bin && \
    curl --header 'Host: doc-0k-88-docs.googleusercontent.com' --header 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:52.0) Gecko/20100101 Firefox/52.0' --header 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8' --header 'Accept-Language: it-IT,it;q=0.8,en-US;q=0.5,en;q=0.3' --header 'Referer: https://drive.google.com/drive/folders/0B1tW_VtY7onidEwyQ2FtQVplWEU' --header 'Connection: keep-alive' --header 'Upgrade-Insecure-Requests: 1' 'https://doc-0k-88-docs.googleusercontent.com/docs/securesc/ha0ro937gcuc7l7deffksulhg5h7mbp1/etft348j4r0b37n9p1jkokvbfagiimk2/1491782400000/16010642207042931662/*/0B1tW_VtY7onieS0zMzdkSG11OW8?e=download' -o 'tiny-yolo-v1.1.weights' -L && \
    curl --header 'Host: doc-08-88-docs.googleusercontent.com' --header 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:52.0) Gecko/20100101 Firefox/52.0' --header 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8' --header 'Accept-Language: it-IT,it;q=0.8,en-US;q=0.5,en;q=0.3' --header 'Referer: https://drive.google.com/drive/folders/0B1tW_VtY7onidEwyQ2FtQVplWEU' --header 'Connection: keep-alive' --header 'Upgrade-Insecure-Requests: 1' 'https://doc-08-88-docs.googleusercontent.com/docs/securesc/ha0ro937gcuc7l7deffksulhg5h7mbp1/s29gvf1n83pqr37pk2l7t2cvcjnssd8s/1491782400000/16010642207042931662/*/0B1tW_VtY7oniTjM3YUxlRHpDVW8?e=download' -o 'tiny-yolo-voc.weights' -L && \
    curl --header 'Host: doc-10-88-docs.googleusercontent.com' --header 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:52.0) Gecko/20100101 Firefox/52.0' --header 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8' --header 'Accept-Language: it-IT,it;q=0.8,en-US;q=0.5,en;q=0.3' --header 'Referer: https://drive.google.com/drive/folders/0B1tW_VtY7onidEwyQ2FtQVplWEU' --header 'Connection: keep-alive' --header 'Upgrade-Insecure-Requests: 1' 'https://doc-10-88-docs.googleusercontent.com/docs/securesc/ha0ro937gcuc7l7deffksulhg5h7mbp1/fmtsb8ruqk7a4tg5p98khj6qp4fq3p6i/1491782400000/16010642207042931662/*/0B1tW_VtY7onicFlqclhnRGlodGM?e=download' -o 'yolo-full.weights' -L && \
    curl --header 'Host: doc-0k-88-docs.googleusercontent.com' --header 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:52.0) Gecko/20100101 Firefox/52.0' --header 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8' --header 'Accept-Language: it-IT,it;q=0.8,en-US;q=0.5,en;q=0.3' --header 'Referer: https://drive.google.com/drive/folders/0B1tW_VtY7onidEwyQ2FtQVplWEU' --header 'Connection: keep-alive' --header 'Upgrade-Insecure-Requests: 1' 'https://doc-0k-88-docs.googleusercontent.com/docs/securesc/ha0ro937gcuc7l7deffksulhg5h7mbp1/knshmif3mk3n4ogtq9p77nf2f5v3dr0d/1491782400000/16010642207042931662/*/0B1tW_VtY7onibmdQWE1zVERxcjQ?e=download' -o 'yolo-tiny.weights' -L && \
    curl --header 'Host: doc-0c-88-docs.googleusercontent.com' --header 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:52.0) Gecko/20100101 Firefox/52.0' --header 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8' --header 'Accept-Language: it-IT,it;q=0.8,en-US;q=0.5,en;q=0.3' --header 'Referer: https://drive.google.com/drive/folders/0B1tW_VtY7onidEwyQ2FtQVplWEU' --header 'Connection: keep-alive' --header 'Upgrade-Insecure-Requests: 1' 'https://doc-0c-88-docs.googleusercontent.com/docs/securesc/ha0ro937gcuc7l7deffksulhg5h7mbp1/ggut18kr6ubhoc8btg5hf6f32stoh50n/1491782400000/16010642207042931662/*/0B1tW_VtY7oniZGlkLTh5YVl1WWs?e=download' -o 'yolo.weights' -L

ところで、これらのリンクが永久に機能するかどうかはわかりません。ダウンロード後、 bin/フォルダは次のようになります。

# cd darkflow/bin/
# ls -lh
total 1.6G
-rw-r--r-- 1 root root 104M Apr 10 00:20 tiny-yolo-v1.1.weights
-rw-r--r-- 1 root root  61M Apr 10 00:20 tiny-yolo-voc.weights
-rw-r--r-- 1 root root 1.1G Apr 10 00:20 yolo-full.weights
-rw-r--r-- 1 root root 173M Apr 10 00:21 yolo-tiny.weights
-rw-r--r-- 1 root root 258M Apr 10 00:21 yolo.weights

公式のYOLOのファイルは、彼が新しい構成を実験するときに常に更新されます。対応する.cfgがリリースされているかどうかを確認する必要があります。 アップロードしたweightsファイルは古いバージョンであり、このリポジトリの.cfgと互換性があります。

@thtrieuありがとう、私はあなたのファイルを使用してその間に解決しました!

このエラーは、cfgとバイナリウェイトファイルの不一致が原因で発生します。 これが原因の関連コードです。
flowの先頭で、最初に、コマンドラインでユーザーが指定した指定のcfgbin TFNetを初期化しようとします。

# in darkflow/utils/loader.py

class weights_walker(object):
  ...
  self.size = os.path.getsize(path)

このウォーカーが作成され、関数walkと呼ばれます
このウォークでは、各レイヤーのbinファイルから、cfgに従って正確なバイト数で重みを読み取ります。 実際に読み取る前に、読み取るバイトがファイル内の残りのバイトよりも少ないかどうかをチェックします。 これがそのためのコードです

    def walk(self, size):

        if self.eof: return None
        end_point = self.offset + 4 * size

        assert end_point <= self.size, \
        'Over-read {}'.format(self.path)

ここで、 end_pointは、現在のレイヤーの重みに対してバイナリファイルから必要な量を読み取り終えたときにファイル記述子カーソルが配置される場所です。 self.sizeは、バイナリファイルの合計サイズです。 これら2つの変数を比較すると、cfgファイルとbinファイルの間に競合があるかどうかがどのように示されるかがわかります。

上記の説明に基づいて、yolov2Webサイトから最新のcfgとバイナリファイルをダウンロードしました。 しかし、それでも機能せず、その理由がわかりました。 後で成功した話を書き留められることを願っています。

@ chadrick-kwagこんにちは、あなたはそれを解決しましたか?

@AlexeyAB残念ながらありません。 グリッチなしで機能するtiny-yolo-vocに切り替える必要がありました。 私のプロジェクトはシンプルなので小さいです-yoloも私に合っています。 悪い知らせをお伝えして申し訳ありません:(

@ chadrick-kwagわかりましたありがとう。 https://drive.google.com/drive/folders/0B1tW_VtY7onidEwyQ2FtQVplWEUまたはhttps://pjreddie.com/darknet/yolo/のtiny-yolo-vocを使用していますか?

@AlexeyAB私はpjreddieのものを使用しました。 参考までに、約6か月前にダウンロードしたものを使用しています。 私はそれがまだ機能することを願っています。

上記のGoogleドライブリンクからのウェイトファイル(yolo.weights)に対応するcfgファイルへの直接ダウンロードリンクを持っている人はいますか?

@shailensobhee darkflowとdarknetリポジトリの間で、yolov2-voccfgとウェイトファイルの可能なすべての組み合わせを試しました。 単一の一致はないようです。

@thtrieu @AlexeyAB何かアイデアはありますか?

この問題は、darkflowディレクトリのloader.pyのオフセットを変更することで修正できます。
オフセットを16に減らしてから、もう一度テストすることをお勧めします。
GL

ドライブ

リンクを取得しましたか? そうでない場合は、これが私が使用しているものです: https ://drive.google.com/drive/folders/0B1tW_VtY7onidEwyQ2FtQVplWEU

このページは役に立ちましたか?
0 / 5 - 0 評価