Darkflow: AssertionError: الإفراط في قراءة bin / yolo.weights

تم إنشاؤها على ١٠ أبريل ٢٠١٧  ·  12تعليقات  ·  مصدر: thtrieu/darkflow

لقد قمت بتنزيل yolo.weights و yolo.cfg من موقع PJ Reddie darknet:

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 ، سيحاول أولاً تهيئة TFNet من cfg و bin المحدد بواسطة المستخدم في سطر الأوامر.

# 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 هو الحجم الإجمالي للملف الثنائي. يمكنك أن ترى كيف ستشير مقارنة هذين المتغيرين إلى ما إذا كان هناك تعارض بين ملف cfg و bin.

بناءً على المناقشات أعلاه ، قمت بتنزيل أحدث ملف cfg و binary من موقع yolov2. ومع ذلك ، لا يزال الأمر لا يعمل ، وأنا الآن متأكد من السبب. آمل أن أتمكن من كتابة قصة ناجحة لاحقًا.

@ chadrick-kwag مرحبًا ، هل قمت بحلها؟

AlexeyAB للأسف لا. كان عليّ فقط التبديل إلى تطبيق tiny-yolo-voc الذي كان يعمل دون أي خلل. مشروعي بسيط للغاية ، لذا فإن لعبة yolo الصغيرة تناسبني أيضًا. آسف لإخبارك بالأخبار السيئة :(

@ تشادريك كواج طيب شكرا. هل تستخدم tiny-yolo-voc من https://drive.google.com/drive/folders/0B1tW_VtY7onidEwyQ2FtQVplWEU أو من https://pjreddie.com/darknet/yolo/ ؟

AlexeyAB لقد استخدمت واحد من pjreddie. لمعلوماتك ، أستخدم التطبيق الذي قمت بتنزيله منذ حوالي 6 أشهر. آمل أن لا يزال يعمل.

هل لدى أي شخص رابط التنزيل المباشر لملف cfg الذي يتوافق مع ملف الوزن (yolo.weights) من رابط Google Drive أعلاه؟

shailensobhee جربت كل التوليفات الممكنة من ملفات yolov2-voc cfg والوزن بين darkflow و darknet. يبدو أنه لا يوجد تطابق واحد.

thtrieuAlexeyAB أي فكرة؟

يمكنك حل هذه المشكلة عن طريق تغيير الإزاحة في المحمل. py في دليل darkflow الخاص بك.
يوصى بتقليل الإزاحة إلى 16 ثم الاختبار مرة أخرى.
GL

قيادة

هل حصلت على الرابط؟ إذا لم يكن الأمر كذلك ، فإليك ما كنت أستخدمه: https://drive.google.com/drive/folders/0B1tW_VtY7onidEwyQ2FtQVplWEU

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات

القضايا ذات الصلة

bareblackfoot picture bareblackfoot  ·  5تعليقات

ManojPabani picture ManojPabani  ·  4تعليقات

LeeroyHannigan picture LeeroyHannigan  ·  4تعليقات

Kowasaki picture Kowasaki  ·  4تعليقات

hrshovon picture hrshovon  ·  5تعليقات