Darkflow: YOLO 9000

Dibuat pada 9 Feb 2017  ·  41Komentar  ·  Sumber: thtrieu/darkflow

Hallo teman-teman!

Terima kasih untuk pekerjaan yang luar biasa!

Saya mencari model YOLO9000 yang dapat mengklasifikasikan 9000 kategori.

Saya tidak dapat menemukan YOLO 9000 cfg .

Apakah ada yang bisa membantu?

> find . -name '*.cfg' -exec cat {} \; | grep "classes"
classes=4
classes=20
classes=80
classes=2
classes=4
classes=20
classes=20
classes=4
classes=4
classes=20
classes=4
classes=2
classes=80
classes=4
classes=20
classes=80
classes=20
classes=20
classes=80

Saya mengharapkan sesuatu seperti classes=9000

help wanted

Komentar yang paling membantu

Saya berhasil! :)

Saya sekarang hanya mencoba mencari cara terbaik untuk menyusun perubahan saya untuk PR. Saya melihat bahwa banyak hal bergerak dalam beberapa hari terakhir.

Saat ini saya memiliki sebagian besar sebagai darkflow/cython_utils/cy_yolo9000_findboxes.pyx tetapi saya mungkin bisa memasukkannya ke dalam cy_yolo2_findboxes.pyx dan memasukkan kunci meta lain dalam pernyataan if dari metode labels darkflow/darkflow/yolo/misc.py (lalu lakukan pemisahan antara teknik softmax di findbox sebelum melompat ke loop).

Saya sudah masuk ke pernyataan if dalam metode labels di misc.py untuk menambahkan hyponym_map yang merupakan dict yang memetakan indeks induk ke daftar node anaknya per file data.

Juga, saat ini saya memiliki folder data/ di folder cfg/ saya dan saya baru saja bergabung dengan jalur konfigurasi dan meta['tree'] dan meta['map'] untuk jalur file.

Jika kalian tidak memiliki masukan, saya akan membuat PR dengan apa yang masuk akal bagi saya, kalau tidak, saya akan mendengarkan!

Semua 41 komentar

Konfigurasinya ada di sini , Sepertinya penulis tidak menyediakan file bobot YOLO9000.

Terima kasih atas jawaban cepatnya! Saya akan mencoba menemukan bobot9000 dan akan mempostingnya di sini untuk membantu orang lain.

Apakah Anda berhasil membuat ini berfungsi? Saya memasukkan file bobot dan file konfigurasi dan saya juga mengunduh file 9k.names. Pemrosesan tidak memakan waktu terlalu lama tetapi pemrosesan pasca memakan waktu sekitar 10x lebih lama dari pengaturan yolo.cfg dan yolo.weights normal. Pada akhirnya tidak ada kotak pembatas yang muncul di salah satu gambar yang dikembalikan. Apakah saya melakukan sesuatu yang salah?

Saya melihat yolo9000.cfg , ternyata ada lebih banyak pekerjaan yang harus dilakukan. yolo9000 tidak melakukan softmax biasa tetapi yang dikelompokkan. Sangat sibuk sekarang, saya akan mencoba untuk bekerja pada itu tapi setidaknya tidak dalam minggu ini dan berikutnya.

Ya tidak ada kekhawatiran sama sekali. Waktu respons Anda untuk masalah ini sangat cepat :) terima kasih banyak untuk semua pekerjaan yang telah Anda lakukan - ini adalah proyek yang sangat rapi. Saya hanya ingin memastikan bahwa saya tidak melakukan kesalahan yang menyebabkan masalah - tidak terburu-buru untuk menyelesaikannya.

Apakah ada kabar baru?
Saya memiliki masalah yang sama dengan abagshaw.
Pemrosesan pasca 10x lebih lambat dan tidak ada kotak pembatas.
Apakah saya harus mengubah file cfg dan bagaimana caranya?

Terima kasih!

@thtrieu Bisakah kita membuka kembali masalah ini sampai diperbaiki karena saat ini menurut saya darkflow tidak memiliki fungsi YOLO 9000?

Saya kemungkinan akan menggunakan YOLO9000 untuk proyek tesis saya (walaupun saya akan banyak mengadaptasinya), dan karena ini adalah satu-satunya implementasi tensorflow dari YOLOv2 yang dapat saya temukan, saya kira saya akan menggunakan ini sebagai basis. Saya akan menambahkan implementasi saya ketika sudah selesai, tetapi itu kemungkinan akan memakan waktu beberapa minggu lagi, jadi jika ada yang punya lebih banyak waktu lebih cepat, itu akan sangat membantu saya juga! ;)

Saya memiliki beberapa waktu di tangan saya dalam beberapa hari ke depan - namun pemahaman saya tentang ML dan apa yang sebenarnya terjadi di balik layar di sini cukup dangkal. Saya tidak begitu yakin apa yang perlu dilakukan agar YOLO 9000 berfungsi - jika tidak terlalu rumit, bisakah seseorang menguraikan secara singkat apa yang perlu dilakukan dan saya akan mencobanya (jika cukup rumit, jangan repot-repot Saya ragu saya akan menjadi sangat jauh :))

@abagshaw yang perlu dilakukan adalah memahami parameter berikut di .cfg

random=1
tree=data/9k.tree
map = data/coco9k.map

Ini akan dibaca ke dalam meta dict oleh kode saat ini, satu-satunya kode yang perlu dimodifikasi adalah fungsi proses pasca, yang saat ini tidak memperhitungkan meta['random'], meta['tree'], meta['map'] untuk menafsirkan tensor keluaran & menggambar kotak pembatas.

Tetapi bukankah itu memerlukan implementasi softmax yang sama sekali berbeda (seharusnya mudah, cukup pisahkan di atas lapisan pohon yang berbeda) dan dari backpropagation di atas softmax ini? (karena backprop hanya boleh melewati node softmax yang terlibat?)

Ya maaf guys - saya pikir ini sedikit di atas kepala saya. Saya sedang menyisir https://github.com/pjreddie/darknet/commit/d2dece3df743c97f2cfbb9bbf0dd0449a8730cec dan ada banyak hal yang terjadi di sana yang saya tidak mengerti. Saya akan terus mengaduk-aduk tetapi saya tidak berpikir saya akan pergi terlalu jauh.

Ada pembaruan tentang ini?

Ya maaf, saya memutuskan akan lebih cepat untuk hanya menempelkan lapisan klasifikasi yolo9000 pada RCNN yang lebih cepat hanya dalam tensorflow. Saya mungkin mencari hobi bersama ketika tesis saya selesai, tetapi itu tidak akan selama 4 bulan lagi;)

Drat - itu terlalu buruk. Saya mencoba untuk memahami bagaimana seluruh klasifikasi pohon WordNet ini bekerja di yolo9000. Saya berharap saya memahami hal ini dengan lebih baik sehingga saya dapat membantu. Semoga seseorang punya waktu untuk menambahkan fungsi ini segera :)

Teman-teman, saya membuat repositori untuk YOLO 9000. Semuanya dijelaskan di sini. Saksikan berikut ini:

https://github.com/philipperemy/yolo-9000

Ini menggunakan darknet alih-alih darkflow tapi saya pikir itu harus cukup mudah untuk porting.

@abagshaw @TheLaurens @saiprabhakar @thtrieu @frey123

@philipperemy Terima kasih, mungkin saya melewatkan sesuatu - tapi saya tidak yakin bagaimana ini membuat kami lebih dekat untuk mengimplementasikan YOLO9000 di darkflow?

Jika Anda ingin mem-porting YOLO9000 ke darkflow, itu akan luar biasa :) :)

@abagshaw membuatnya bekerja untuk darknet adalah langkah pertama. Sekarang saya akan fokus pada bagaimana membuatnya bekerja untuk darkflow!

@philipperemy Hebat! Tetap pantau kami :)

@philipperemy Ada kemajuan dalam membuat YOLO9000 bekerja di darkflow? :)

Maaf masih belum ada kemajuan besar! aku lagi sibuk kerja :)

Terima kasih semuanya.

Bolehkah saya mengajukan beberapa pertanyaan terkait topik ini?
Saat ini saya mengubah yolo.cfg untuk mengklasifikasikan 2 kelas. Untuk bobot saya menggunakan yolo.weights. Setelah saya melatih modelnya, itu bekerja dengan cukup baik.

Q1: Dari masalah ini, sepertinya saya membutuhkan bobot yang berbeda untuk jumlah kelas yang berbeda. Saya ingat yolo.weights setidaknya digunakan untuk 20 kelas. Apakah saya benar?

Q2: Berapa banyak kelas yang bisa saya gunakan untuk yolo.weights ini?

Q3: Apakah mungkin menggunakan checkpoint model untuk 2 kelas sebagai bobot awal untuk model lain, katakanlah 3 kelas?

Terima kasih lagi.

@chengs2000 Pertanyaan Anda tidak benar-benar terkait dengan YOLO9000 - mungkin posting pertanyaan Anda dalam edisi baru dan dapat diatasi di sana.

Hai, kecuali seseorang sudah melakukan ini (@philipperemy?) Saya akan mencoba. Akan melaporkan kembali dalam beberapa hari dengan hasil.

@relh silakan! Saya tidak punya banyak waktu untuk fokus pada ini.

@relh Ada kemajuan? 😃

Saya berhasil! :)

Saya sekarang hanya mencoba mencari cara terbaik untuk menyusun perubahan saya untuk PR. Saya melihat bahwa banyak hal bergerak dalam beberapa hari terakhir.

Saat ini saya memiliki sebagian besar sebagai darkflow/cython_utils/cy_yolo9000_findboxes.pyx tetapi saya mungkin bisa memasukkannya ke dalam cy_yolo2_findboxes.pyx dan memasukkan kunci meta lain dalam pernyataan if dari metode labels darkflow/darkflow/yolo/misc.py (lalu lakukan pemisahan antara teknik softmax di findbox sebelum melompat ke loop).

Saya sudah masuk ke pernyataan if dalam metode labels di misc.py untuk menambahkan hyponym_map yang merupakan dict yang memetakan indeks induk ke daftar node anaknya per file data.

Juga, saat ini saya memiliki folder data/ di folder cfg/ saya dan saya baru saja bergabung dengan jalur konfigurasi dan meta['tree'] dan meta['map'] untuk jalur file.

Jika kalian tidak memiliki masukan, saya akan membuat PR dengan apa yang masuk akal bagi saya, kalau tidak, saya akan mendengarkan!

@relh Luar biasa! Terima kasih banyak untuk pekerjaan Anda ini!!

Untuk 2 sen saya: Jika kode cy_yolo9000_findboxes.pyx sama sekali berbeda dari yang sudah ditulis di cy_yolo2_findboxes.pyx daripada membuat file baru tidak masalah - tetapi jika mereka berbagi sebagian besar kode yang sama mungkin merupakan ide yang lebih baik untuk mencoba memasukkan perubahan Anda ke dalam file yang ada (untuk menghindari menambahkan kode duplikat). Sulit bagi saya untuk memberikan lebih banyak masukan tanpa melihat perubahan yang Anda buat (saya cukup tidak terbiasa dengan persis bagaimana YOLO9000 berbeda dari YOLOv2) - jadi saya akan memberikan penilaian terbaik Anda tentang cara memasukkan perubahan ini.

Nantikan PR-nya!

@relh terima kasih banyak!! Maaf saya sangat sibuk baru-baru ini dan tidak punya waktu untuk mengerjakan ini!

@relh ini berita bagus. Nantikan PR-nya.

Besar! (Menantikan untuk menutup masalah ini).

Apakah masalah ini sudah ditutup? Apakah kami memiliki implementasi tensorflow untuk YOLO9000? Tolong arahkan saya ke hal yang sama. Terima kasih.

Pertanyaan dalam edisi ini: pjreddie menyebut YOLO9000 sebagai YOLOv2 di situs web YOLO- nya . Jika Anda pergi ke bagian "Apa yang baru di Versi 2" dan mengklik tautan ke makalah, itu akan membuka kertas YOLO9000.

Jadi jika tidak ada implementasi YOLO9000 di Darkflow, apa sebenarnya YOLOv2 dalam konteks Darkflow?

Yolo9k adalah model yang dilatih di imagenet dengan metode pembelajaran kotak pembatas sedangkan yolov2 default dilatih di COCO.

@philipperemy

1) sepertinya kode Anda hanya berfungsi di CPU, tahukah Anda mengapa?
2) apa perbedaan dengan proyek Anda dan darknet sekarang?

Terima kasih!

Kode @moskiteau berfungsi dengan baik di GPU
Proyek saya didasarkan pada darknet dan berisi segalanya untuk menjalankan YOLO9000.

dikompilasi dengan flag CPU:

seb@PHQ-4035-En:~/projects/stockshot/darknet$ ./darknet detector test cfg/combine9k.data cfg/yolo9000.cfg yolo9000.weights data/person.jpg
layer     filters    size              input                output
    0 conv     32  3 x 3 / 1   544 x 544 x   3   ->   544 x 544 x  32
    1 max          2 x 2 / 2   544 x 544 x  32   ->   272 x 272 x  32
    2 conv     64  3 x 3 / 1   272 x 272 x  32   ->   272 x 272 x  64
    3 max          2 x 2 / 2   272 x 272 x  64   ->   136 x 136 x  64
    4 conv    128  3 x 3 / 1   136 x 136 x  64   ->   136 x 136 x 128
    5 conv     64  1 x 1 / 1   136 x 136 x 128   ->   136 x 136 x  64
    6 conv    128  3 x 3 / 1   136 x 136 x  64   ->   136 x 136 x 128
    7 max          2 x 2 / 2   136 x 136 x 128   ->    68 x  68 x 128
    8 conv    256  3 x 3 / 1    68 x  68 x 128   ->    68 x  68 x 256
    9 conv    128  1 x 1 / 1    68 x  68 x 256   ->    68 x  68 x 128
   10 conv    256  3 x 3 / 1    68 x  68 x 128   ->    68 x  68 x 256
   11 max          2 x 2 / 2    68 x  68 x 256   ->    34 x  34 x 256
   12 conv    512  3 x 3 / 1    34 x  34 x 256   ->    34 x  34 x 512
   13 conv    256  1 x 1 / 1    34 x  34 x 512   ->    34 x  34 x 256
   14 conv    512  3 x 3 / 1    34 x  34 x 256   ->    34 x  34 x 512
   15 conv    256  1 x 1 / 1    34 x  34 x 512   ->    34 x  34 x 256
   16 conv    512  3 x 3 / 1    34 x  34 x 256   ->    34 x  34 x 512
   17 max          2 x 2 / 2    34 x  34 x 512   ->    17 x  17 x 512
   18 conv   1024  3 x 3 / 1    17 x  17 x 512   ->    17 x  17 x1024
   19 conv    512  1 x 1 / 1    17 x  17 x1024   ->    17 x  17 x 512
   20 conv   1024  3 x 3 / 1    17 x  17 x 512   ->    17 x  17 x1024
   21 conv    512  1 x 1 / 1    17 x  17 x1024   ->    17 x  17 x 512
   22 conv   1024  3 x 3 / 1    17 x  17 x 512   ->    17 x  17 x1024
   23 conv  28269  1 x 1 / 1    17 x  17 x1024   ->    17 x  17 x28269
   24 detection
mask_scale: Using default '1.000000'
Loading weights from yolo9000.weights...Done!
data/person.jpg: Predicted in 13.577125 seconds.
Tuareg: 25%
wild horse: 27%
goat herder: 82%
Shetland pony: 86%
German shepherd: 48%
Gordon setter: 51%
seb@PHQ-4035-En:~/projects/stockshot/darknet$

dan dikompilasi dengan flag GPU:

seb@PHQ-4035-En:~/projects/stockshot/darknet$ ./darknet detector test cfg/combine9k.data cfg/yolo9000.cfg yolo9000.weights data/person.jpg
layer     filters    size              input                output
    0 conv     32  3 x 3 / 1   544 x 544 x   3   ->   544 x 544 x  32
    1 max          2 x 2 / 2   544 x 544 x  32   ->   272 x 272 x  32
    2 conv     64  3 x 3 / 1   272 x 272 x  32   ->   272 x 272 x  64
    3 max          2 x 2 / 2   272 x 272 x  64   ->   136 x 136 x  64
    4 conv    128  3 x 3 / 1   136 x 136 x  64   ->   136 x 136 x 128
    5 conv     64  1 x 1 / 1   136 x 136 x 128   ->   136 x 136 x  64
    6 conv    128  3 x 3 / 1   136 x 136 x  64   ->   136 x 136 x 128
    7 max          2 x 2 / 2   136 x 136 x 128   ->    68 x  68 x 128
    8 conv    256  3 x 3 / 1    68 x  68 x 128   ->    68 x  68 x 256
    9 conv    128  1 x 1 / 1    68 x  68 x 256   ->    68 x  68 x 128
   10 conv    256  3 x 3 / 1    68 x  68 x 128   ->    68 x  68 x 256
   11 max          2 x 2 / 2    68 x  68 x 256   ->    34 x  34 x 256
   12 conv    512  3 x 3 / 1    34 x  34 x 256   ->    34 x  34 x 512
   13 conv    256  1 x 1 / 1    34 x  34 x 512   ->    34 x  34 x 256
   14 conv    512  3 x 3 / 1    34 x  34 x 256   ->    34 x  34 x 512
   15 conv    256  1 x 1 / 1    34 x  34 x 512   ->    34 x  34 x 256
   16 conv    512  3 x 3 / 1    34 x  34 x 256   ->    34 x  34 x 512
   17 max          2 x 2 / 2    34 x  34 x 512   ->    17 x  17 x 512
   18 conv   1024  3 x 3 / 1    17 x  17 x 512   ->    17 x  17 x1024
   19 conv    512  1 x 1 / 1    17 x  17 x1024   ->    17 x  17 x 512
   20 conv   1024  3 x 3 / 1    17 x  17 x 512   ->    17 x  17 x1024
   21 conv    512  1 x 1 / 1    17 x  17 x1024   ->    17 x  17 x 512
   22 conv   1024  3 x 3 / 1    17 x  17 x 512   ->    17 x  17 x1024
   23 conv  28269  1 x 1 / 1    17 x  17 x1024   ->    17 x  17 x28269
   24 detection
mask_scale: Using default '1.000000'
Loading weights from yolo9000.weights...Done!
data/person.jpg: Predicted in 0.060738 seconds.
African: 25%
worker: 82%
horse: 86%
working dog: 48%
hunting dog: 50%

./tes detektor darknet cfg/combine9k.data cfg/yolo9000.cfg yolo9000.weights data/person.jpg -thresh .25 -hier .001

adakah yang bisa menjelaskan apa struktur pohon label 9000? Dalam file 9k.tree, misalnya n0000245 -1, n0566538625 4, apa artinya -1 dan 4? Bagaimana saya bisa membangun struktur pohon dengan file 9k.tree ini?

@yaxiongchi
-1 berarti akar pohon
4: indeks simpul ayah

Apakah halaman ini membantu?
0 / 5 - 0 peringkat

Masalah terkait

pribadihcr picture pribadihcr  ·  5Komentar

ma3252788 picture ma3252788  ·  3Komentar

borasy picture borasy  ·  3Komentar

halt9 picture halt9  ·  3Komentar

ShawnDing1994 picture ShawnDing1994  ·  4Komentar