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
[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
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:
Btw saya tidak yakin apakah tautan itu akan berfungsi selamanya, setelah mengunduh folder
bin/
saya terlihat seperti: