Darkflow: AssertionError: Over-read bin/yolo.weights

Dibuat pada 10 Apr 2017  ·  12Komentar  ·  Sumber: thtrieu/darkflow

Saya telah mengunduh yolo.weights dan yolo.cfg dari situs darknet PJ Reddie:

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 && \    

kemudian mencoba menjalankan flow :

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

dan saya mendapatkan

$:/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

Komentar yang paling membantu

[MEMPERBARUI]
Tampaknya file PJ Reddie tidak sepenuhnya kompatibel, jadi saya harus mengunduh bobot bawaan dari tautan yang disediakan di README: https://drive.google.com/drive/folders/0B1tW_VtY7onidEwyQ2FtQVplWEU

Masalahnya adalah saya harus melakukan ini di sisi server, jadi setelah menggali sedikit, solusi paling sederhana adalah menggunakan addon Firefox gcurl yang meniru perintah unduhan langsung:

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

Btw saya tidak yakin apakah tautan itu akan berfungsi selamanya, setelah mengunduh folder bin/ saya terlihat seperti:

# 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

Semua 12 komentar

[MEMPERBARUI]
Tampaknya file PJ Reddie tidak sepenuhnya kompatibel, jadi saya harus mengunduh bobot bawaan dari tautan yang disediakan di README: https://drive.google.com/drive/folders/0B1tW_VtY7onidEwyQ2FtQVplWEU

Masalahnya adalah saya harus melakukan ini di sisi server, jadi setelah menggali sedikit, solusi paling sederhana adalah menggunakan addon Firefox gcurl yang meniru perintah unduhan langsung:

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

Btw saya tidak yakin apakah tautan itu akan berfungsi selamanya, setelah mengunduh folder bin/ saya terlihat seperti:

# 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

File di YOLO resmi selalu diperbarui saat ia bereksperimen dengan konfigurasi baru, Anda harus memeriksa apakah ada .cfg yang sesuai yang dirilis. File weights yang saya unggah adalah versi lama dan kompatibel dengan .cfg dalam repo ini.

@thtrieu terima kasih, sementara saya menyelesaikannya menggunakan file Anda!

kesalahan ini disebabkan oleh ketidakcocokan antara cfg dan file bobot biner. Berikut adalah kode terkait yang menyebabkannya.
Pada awal flow , pertama-tama ia akan mencoba menginisialisasi TFNet dari cfg dan bin yang ditentukan oleh pengguna di baris perintah.

# in darkflow/utils/loader.py

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

walker ini dibuat dan disebut fungsi walk
Jalan ini akan membaca bobot dari file bin untuk setiap lapisan dengan jumlah byte yang tepat sesuai dengan file cfg. Sebelum benar-benar membacanya, ia memeriksa apakah byte yang akan dibaca kurang dari byte yang tersisa dalam file. Ini kode untuk itu

    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)

di sini end_point adalah tempat kursor deskriptor file akan ditempatkan ketika selesai membaca jumlah yang diperlukan dari file biner untuk bobot lapisan saat ini. self.size adalah ukuran total file biner. Anda dapat melihat bagaimana perbandingan kedua variabel ini akan menunjukkan jika ada konflik antara file cfg dan bin.

Berdasarkan pembahasan di atas, saya telah mendownload file cfg dan binary terbaru dari website yolov2. Namun, itu masih tidak berhasil dan saya sekarang yakin mengapa. Semoga saya bisa menuliskan kisah sukses di kemudian hari.

@chadrick-kwag Hai, apakah Anda menyelesaikannya?

@AlexeyAB sayangnya tidak. Saya harus beralih ke tiny-yolo-voc yang berfungsi tanpa kesalahan. Proyek saya sederhana jadi kecil-yolo cocok untuk saya juga. Maaf untuk memberitahu Anda berita buruk :(

@chadrick-kwag Oke terima kasih. Apakah Anda menggunakan tiny-yolo-voc dari https://drive.google.com/drive/folders/0B1tW_VtY7onidEwyQ2FtQVplWEU atau dari https://pjreddie.com/darknet/yolo/ ?

@AlexeyAB Saya menggunakan yang dari pjreddie . FYI Saya menggunakan yang saya unduh sekitar 6 bulan yang lalu. Saya harap itu masih berfungsi.

Adakah yang punya link download langsung file cfg yang sesuai dengan file weight (yolo.weights) dari link Google Drive di atas?

@shailensobhee Saya mencoba semua kemungkinan kombinasi yolov2-voc cfg dan file bobot antara darkflow dan darknet repo. Sepertinya tidak ada satu pertandingan pun.

@thtrieu @AlexeyAB Ada ide?

Anda dapat memperbaiki masalah ini dengan mengubah offset di loader.py di direktori darkflow Anda.
direkomendasikan untuk mengurangi offset ke 16 lalu uji lagi.
GL

Menyetir

Apakah Anda mendapatkan tautannya? Jika tidak, inilah yang saya gunakan: https://drive.google.com/drive/folders/0B1tW_VtY7onidEwyQ2FtQVplWEU

Apakah halaman ini membantu?
0 / 5 - 0 peringkat