


Sumber terbuka GitHub 130+Bintang: mengajar anda langkah demi langkah untuk menghasilkan semula algoritma pengesanan sasaran berdasarkan siri PPYOLO
Pengesanan objek ialah tugas asas dalam bidang penglihatan komputer Bagaimana kita boleh melakukannya tanpa Zoo Model yang baik?
Hari ini saya akan memberikan anda model algoritma pengesanan sasaran yang ringkas dan mudah digunakan. Ia kini telah memperoleh 130+ bintang di GitHub
Pautan kod: https://github.com/miemie2013/miemiedetection
miemiedetection ialah perpustakaan pengesanan peribadi yang dibangunkan berdasarkan YOLOX Ia juga menyokong PPYOLO, PPYOLOv2, PPYOLOE, FCOS dan algoritma lain.
Terima kasih kepada seni bina YOLOX yang sangat baik, kelajuan latihan algoritma dalam pengesanan miemi adalah sangat pantas, dan pembacaan data bukan lagi kesesakan kelajuan latihan.
Rangka kerja pembelajaran mendalam yang digunakan dalam pembangunan kod ialah pyTorch, yang melaksanakan konvolusi boleh ubah bentuk DCNv2, Matrix NMS dan pengendali sukar lain, dan menyokong kad tunggal mesin tunggal, kad berbilang mesin tunggal dan mod latihan berbilang mesin berbilang kad (sistem Linux disyorkan untuk mod latihan berbilang kad), menyokong sistem Windows dan Linux.
Dan kerana miemiedetection ialah perpustakaan pengesanan yang tidak memerlukan pemasangan, pengguna boleh terus menukar kodnya untuk menukar logik pelaksanaan, jadi ia juga mudah untuk menambah algoritma baharu pada perpustakaan.
Pengarang menyatakan bahawa lebih banyak sokongan algoritma (dan pakaian wanita) akan ditambah pada masa hadapan.
Algoritma dijamin tulen
Model pembiakan, perkara yang paling penting ialah kadar ketepatan pada asasnya haruslah sama seperti yang asal.
Mula-mula kita lihat tiga model PPYOLO, PPYOLOv2 dan PPYOLOE. Semua pengarang telah menjalani percubaan pada penjajaran kehilangan dan penjajaran kecerunan.
Untuk mengekalkan bukti, anda juga boleh melihat bahagian membaca dan menulis *.npz yang diulas dalam kod sumber, yang tertinggal daripada kod penjajaran.
Dan penulis juga merekodkan proses penjajaran prestasi secara terperinci Bagi orang baru, mengikuti laluan ini juga merupakan proses pembelajaran yang baik!
Semua log latihan juga direkodkan dan disimpan di dalam gudang, yang cukup untuk membuktikan ketepatan penghasilan semula siri algoritma PPYOLO!
Keputusan latihan akhir menunjukkan bahawa algoritma PPYOLO yang dihasilkan semula mempunyai kehilangan yang sama dan kecerunan yang sama seperti gudang asal.
Selain itu, penulis juga cuba menggunakan set data warehouse dan miemiedetection transfer learning voc2012 pembelajaran asal, dan juga memperoleh ketepatan yang sama (menggunakan hyperparameter yang sama).
Sama seperti pelaksanaan asal, menggunakan kadar pembelajaran yang sama, strategi pereputan kadar pembelajaran yang sama warm_piecewisedecay (digunakan oleh PPYOLO dan PPYOLOv2) dan warm_cosinedecay (digunakan oleh PPYOLOE), dan eksponen yang sama EMA purata bergerak , kaedah prapemprosesan data yang sama, parameter yang sama L2 pengecilan berat, kehilangan yang sama, kecerunan yang sama, model pra-latihan yang sama, pembelajaran pemindahan telah memperoleh ketepatan yang sama.
Kami telah melakukan percubaan yang mencukupi dan melakukan banyak ujian untuk memastikan semua orang mempunyai pengalaman yang menarik!
No 998, no 98, cuma klik bintang dan bawa pulang semua algoritma pengesanan sasaran secara percuma!
Muat turun dan penukaran model
Jika anda ingin menjalankan model, parameter adalah sangat penting boleh dimuat turun terus melalui Baidu Netdisk .
Pautan: https://pan.baidu.com/s/1ehEqnNYKb9Nz0XNeqAcwDw
Kod pengekstrakan: qe3i
Atau ikuti langkah di bawah untuk mendapatkannya:
Langkah pertama ialah memuat turun fail berat dan laksanakannya dalam direktori akar projek (iaitu muat turun fail, pengguna Windows boleh menggunakan Thunder atau pelayar untuk memuat turun wget) Pautan, di sini untuk tujuan pembentangan, hanya ppyoloe_crn_l_300e_coco digunakan sebagai contoh):
Perhatikan bahawa model dengan perkataan pralatihan adalah pra-latihan pada rangkaian ImageNet Backbone, PPYOLO, PPYOLOv2, PPYOLOE memuatkan pemberat ini untuk melatih set data COCO. Selebihnya adalah model terlatih pada COCO.
Langkah kedua ialah menukar pemberat dan melaksanakannya dalam direktori akar projek:
Maksud setiap parameter ialah:
- -f mewakili fail konfigurasi yang digunakan
- -c mewakili fail berat sumber baca; 🎜>- -nc mewakili bilangan kategori dalam set data;
- --only_backbone Apabila Benar, ini bermakna hanya menukar berat rangkaian tulang belakang ;
Selepas pelaksanaan, fail *.pth weight yang ditukar akan diperolehi dalam direktori akar projek.
Tutorial langkah demi langkah
Dalam arahan berikut, kebanyakan mereka akan menggunakan fail konfigurasi model, jadi perlu menjelaskan fail konfigurasi secara terperinci pada permulaannya.
mmdet.exp.base_exp.BaseExp ialah kelas asas fail konfigurasi Ia adalah kelas abstrak yang mengisytiharkan sekumpulan kaedah abstrak, seperti get_model() yang menunjukkan cara mendapatkan model. , dan get_data_loader() menunjukkan cara mendapatkan model Cara mendapatkan pemuat data terlatih, get_optimizer() menunjukkan cara mendapatkan pengoptimum, dsb.
mmdet.exp.datasets.coco_base.COCOBaseExp ialah konfigurasi set data dan mewarisi BaseExp Ia hanya memberikan konfigurasi set data. Gudang ini hanya menyokong latihan set data dalam format anotasi COCO!
Set data dalam format anotasi lain perlu ditukar kepada format anotasi COCO sebelum latihan (jika terlalu banyak format anotasi disokong, beban kerja akan menjadi terlalu besar). Set data tersuai boleh ditukar kepada format label COCO melalui miemieLabels. Semua kelas konfigurasi algoritma pengesanan akan mewarisi COCOBaseExp, yang bermaksud bahawa semua algoritma pengesanan berkongsi konfigurasi set data yang sama.
Item konfigurasi COCOBaseExp ialah:
Antaranya,
- self.num_classes mewakili bilangan kategori dalam set data;
- self.cls_names mewakili laluan fail nama kategori bagi set data Ia ialah fail txt, dan satu baris mewakili nama kategori. Jika ia adalah set data tersuai, anda perlu mencipta fail txt baharu dan mengedit nama kategori, dan kemudian mengubah suai self.cls_names untuk menunjuk kepadanya; fail anotasi set data Direktori akar perlu terletak dalam direktori self.data_dir
- self.train_ann mewakili nama fail anotasi set latihan set data; dan perlu ditempatkan dalam direktori self.ann_folder;
- self.val_ann mewakili nama fail anotasi set pengesahan set data, yang perlu ditempatkan dalam diri Direktori .ann_folder;
- diri. train_image_folder mewakili nama folder imej set latihan set data, yang perlu diletakkan dalam direktori self.data_dir; 🎜>- self.val_image_folder mewakili fail imej set pengesahan set data Nama folder perlu diletakkan dalam direktori self.data_dir; Untuk set data VOC 2012, anda perlu mengubah suai konfigurasi set data kepada:
Selain itu, anda juga boleh mengubah suai konfigurasi self.num_classes dan self.data_dir dalam subkelas seperti dalam exps/ppyoloe/ppyoloe_crn_l_voc2012.py, supaya konfigurasi COCOBaseExp akan ditulis ganti (tidak sah).
Selepas memuat turun model yang dinyatakan sebelum ini, buat anotasi folder baharu2 dalam direktori self.data_dir set data VOC2012 dan letakkan voc2012_train.json dan voc2012_val.json ke dalam folder fail ini.
Akhir sekali, lokasi penempatan set data COCO, set data VOC2012, dan projek ini sepatutnya seperti ini:
Direktori akar set data dan induk miemiedetection ialah direktori tahap yang sama. Saya secara peribadi tidak mengesyorkan meletakkan set data dalam miemiedetection-master, jika tidak PyCharm akan menjadi besar apabila dibuka lebih-lebih lagi, apabila beberapa projek (seperti mmdetection, PaddleDetection, AdelaiDet) berkongsi set data, anda boleh menetapkan laluan set data dan projek The; nama tidak penting.
mmdet.exp.ppyolo.ppyolo_method_base.PPYOLO_Method_Exp ialah kelas yang melaksanakan semua kaedah abstrak algoritma tertentu Ia mewarisi COCOBaseExp, yang melaksanakan semua kaedah abstrak.
exp.ppyolo.ppyolo_r50vd_2x.Exp ialah kelas konfigurasi terakhir model Resnet50Vd bagi algoritma PPYOLO, mewarisi PPYOLO_Method_Exp; fail Ia juga merupakan struktur yang serupa.
Ramalan
Pertama, jika data input ialah gambar, laksanakannya dalam direktori punca projek:
Maksud setiap parameter ialah:
- -f mewakili fail konfigurasi yang digunakan
- -c mewakili berat baca; fail;
- --path mewakili laluan imej; daripada ambang ini akan dilukis;
- --tsize mewakili resolusi mengubah saiz imej kepada --tsize semasa ramalan; ramalan selesai, konsol akan mencetak laluan penjimatan imej hasil, yang boleh dibuka dan dilihat oleh pengguna. Jika anda menggunakan model yang disimpan dalam set data tersuai latihan untuk ramalan, cuma ubah suai -c ke laluan model anda.
Jika ramalan adalah semua gambar dalam folder, laksanakannya dalam direktori akar projek:
Tukar --laluan ke laluan folder imej yang sepadan.
Latih set data COCO2017
Satu arahan memulakan latihan lapan kad mesin tunggal Sudah tentu, premisnya ialah anda benar-benar mempunyai superkomputer lapan kad mesin tunggal.
Maksud setiap parameter ialah:
-f mewakili fail konfigurasi yang digunakan; >-d mewakili bilangan kad grafik;
-b mewakili saiz kelompok semasa latihan (untuk semua kad); mewakili saiz kelompok semasa penilaian (untuk semua kad); latihan ketepatan;
--num_machines, bilangan mesin, disyorkan untuk berlatih dengan berbilang kad pada satu mesin; - resume menunjukkan sama ada untuk menyambung semula latihan;
Melatih set data tersuai
Adalah disyorkan untuk membaca pemberat pra-latihan COCO untuk latihan, kerana penumpuan adalah pantas.Ambil set data VOC2012 di atas sebagai contoh Untuk model ppyolo_r50vd, jika ia adalah 1 mesin dan 1 kad, masukkan arahan berikut untuk memulakan latihan:
Jika latihan terganggu atas sebab tertentu dan anda ingin membaca model yang disimpan sebelum ini untuk menyambung semula latihan, cuma ubah suai -c ke laluan yang anda ingin baca model , dan tambah parameter --resume Can.
Jika terdapat 2 mesin dan 2 kad, iaitu 1 kad pada setiap mesin, masukkan arahan berikut pada mesin 0:
dan masukkan arahan berikut pada mesin No. 1:
Cuma tukar 192.168.0.107 di atas 2 arahan kepada 0 IP LAN mesin sudah mencukupi.
Jika ia adalah 1 mesin dan 2 kad, masukkan arahan berikut untuk memulakan latihan:
Pindahkan set data pembelajaran VOC2012, AP yang diukur (0.50:0.95) ppyolo_r50vd_2x boleh mencapai 0.59+, AP (0.50) boleh mencapai 0.82+, dan AP (kecil) boleh mencapai 0.18+. Tidak kira sama ada ia satu kad atau berbilang kad, keputusan ini boleh diperolehi.
Semasa pembelajaran pemindahan, ia mencapai ketepatan dan kelajuan penumpuan yang sama seperti PaddleDetection Log latihan kedua-duanya terletak dalam folder train_ppyolo_in_voc2012.
Jika ia adalah model ppyoloe_l, masukkan arahan berikut pada satu mesin untuk memulakan latihan (rangkaian tulang belakang dibekukan)
Pindahkan set data pembelajaran VOC2012, AP yang diukur (0.50:0.95) ppyoloe_l boleh mencapai 0.66+, AP (0.50) boleh mencapai 0.85+, dan AP (kecil) boleh mencapai 0.28+.
Nilai perintahdan parameter khusus seperti berikut.
Hasil berjalan dalam direktori akar projek ialah:
Ketepatan selepas menukar berat adalah Sedikit kerugian, kira-kira 0.4%.
Atas ialah kandungan terperinci Sumber terbuka GitHub 130+Bintang: mengajar anda langkah demi langkah untuk menghasilkan semula algoritma pengesanan sasaran berdasarkan siri PPYOLO. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Anotasi teks ialah kerja label atau teg yang sepadan dengan kandungan tertentu dalam teks. Tujuan utamanya adalah untuk memberikan maklumat tambahan kepada teks untuk analisis dan pemprosesan yang lebih mendalam, terutamanya dalam bidang kecerdasan buatan. Anotasi teks adalah penting untuk tugas pembelajaran mesin yang diawasi dalam aplikasi kecerdasan buatan. Ia digunakan untuk melatih model AI untuk membantu memahami maklumat teks bahasa semula jadi dengan lebih tepat dan meningkatkan prestasi tugasan seperti klasifikasi teks, analisis sentimen dan terjemahan bahasa. Melalui anotasi teks, kami boleh mengajar model AI untuk mengenali entiti dalam teks, memahami konteks dan membuat ramalan yang tepat apabila data baharu yang serupa muncul. Artikel ini terutamanya mengesyorkan beberapa alat anotasi teks sumber terbuka yang lebih baik. 1.LabelStudiohttps://github.com/Hu

Anotasi imej ialah proses mengaitkan label atau maklumat deskriptif dengan imej untuk memberi makna dan penjelasan yang lebih mendalam kepada kandungan imej. Proses ini penting untuk pembelajaran mesin, yang membantu melatih model penglihatan untuk mengenal pasti elemen individu dalam imej dengan lebih tepat. Dengan menambahkan anotasi pada imej, komputer boleh memahami semantik dan konteks di sebalik imej, dengan itu meningkatkan keupayaan untuk memahami dan menganalisis kandungan imej. Anotasi imej mempunyai pelbagai aplikasi, meliputi banyak bidang, seperti penglihatan komputer, pemprosesan bahasa semula jadi dan model penglihatan graf Ia mempunyai pelbagai aplikasi, seperti membantu kenderaan dalam mengenal pasti halangan di jalan raya, dan membantu dalam proses. pengesanan dan diagnosis penyakit melalui pengecaman imej perubatan. Artikel ini terutamanya mengesyorkan beberapa alat anotasi imej sumber terbuka dan percuma yang lebih baik. 1.Makesen

Ditulis di atas & pemahaman peribadi penulis: Pada masa ini, dalam keseluruhan sistem pemanduan autonomi, modul persepsi memainkan peranan penting Hanya selepas kenderaan pemanduan autonomi yang memandu di jalan raya memperoleh keputusan persepsi yang tepat melalui modul persepsi boleh Peraturan hiliran dan. modul kawalan dalam sistem pemanduan autonomi membuat pertimbangan dan keputusan tingkah laku yang tepat pada masanya dan betul. Pada masa ini, kereta dengan fungsi pemanduan autonomi biasanya dilengkapi dengan pelbagai penderia maklumat data termasuk penderia kamera pandangan sekeliling, penderia lidar dan penderia radar gelombang milimeter untuk mengumpul maklumat dalam modaliti yang berbeza untuk mencapai tugas persepsi yang tepat. Algoritma persepsi BEV berdasarkan penglihatan tulen digemari oleh industri kerana kos perkakasannya yang rendah dan penggunaan mudah, dan hasil keluarannya boleh digunakan dengan mudah untuk pelbagai tugas hiliran.

Cabaran biasa yang dihadapi oleh algoritma pembelajaran mesin dalam C++ termasuk pengurusan memori, multi-threading, pengoptimuman prestasi dan kebolehselenggaraan. Penyelesaian termasuk menggunakan penunjuk pintar, perpustakaan benang moden, arahan SIMD dan perpustakaan pihak ketiga, serta mengikuti garis panduan gaya pengekodan dan menggunakan alat automasi. Kes praktikal menunjukkan cara menggunakan perpustakaan Eigen untuk melaksanakan algoritma regresi linear, mengurus memori dengan berkesan dan menggunakan operasi matriks berprestasi tinggi.

Teknologi pengesanan dan pengecaman muka adalah teknologi yang agak matang dan digunakan secara meluas. Pada masa ini, bahasa aplikasi Internet yang paling banyak digunakan ialah JS Melaksanakan pengesanan muka dan pengecaman pada bahagian hadapan Web mempunyai kelebihan dan kekurangan berbanding dengan pengecaman muka bahagian belakang. Kelebihan termasuk mengurangkan interaksi rangkaian dan pengecaman masa nyata, yang sangat memendekkan masa menunggu pengguna dan meningkatkan pengalaman pengguna termasuk: terhad oleh saiz model, ketepatannya juga terhad. Bagaimana untuk menggunakan js untuk melaksanakan pengesanan muka di web? Untuk melaksanakan pengecaman muka di Web, anda perlu biasa dengan bahasa dan teknologi pengaturcaraan yang berkaitan, seperti JavaScript, HTML, CSS, WebRTC, dll. Pada masa yang sama, anda juga perlu menguasai visi komputer yang berkaitan dan teknologi kecerdasan buatan. Perlu diingat bahawa kerana reka bentuk bahagian Web

SOTA baharu untuk keupayaan memahami dokumen multimodal! Pasukan Alibaba mPLUG mengeluarkan kerja sumber terbuka terkini mPLUG-DocOwl1.5, yang mencadangkan satu siri penyelesaian untuk menangani empat cabaran utama pengecaman teks imej resolusi tinggi, pemahaman struktur dokumen am, arahan mengikut dan pengenalan pengetahuan luaran. Tanpa berlengah lagi, mari kita lihat kesannya dahulu. Pengecaman satu klik dan penukaran carta dengan struktur kompleks ke dalam format Markdown: Carta gaya berbeza tersedia: Pengecaman dan kedudukan teks yang lebih terperinci juga boleh dikendalikan dengan mudah: Penjelasan terperinci tentang pemahaman dokumen juga boleh diberikan: Anda tahu, "Pemahaman Dokumen " pada masa ini Senario penting untuk pelaksanaan model bahasa yang besar. Terdapat banyak produk di pasaran untuk membantu pembacaan dokumen. Sesetengah daripada mereka menggunakan sistem OCR untuk pengecaman teks dan bekerjasama dengan LLM untuk pemprosesan teks.

Izinkan saya memperkenalkan kepada anda projek sumber terbuka AIGC terkini-AnimagineXL3.1. Projek ini adalah lelaran terkini model teks-ke-imej bertema anime, yang bertujuan untuk menyediakan pengguna pengalaman penjanaan imej anime yang lebih optimum dan berkuasa. Dalam AnimagineXL3.1, pasukan pembangunan menumpukan pada mengoptimumkan beberapa aspek utama untuk memastikan model mencapai tahap prestasi dan kefungsian yang baharu. Pertama, mereka mengembangkan data latihan untuk memasukkan bukan sahaja data watak permainan daripada versi sebelumnya, tetapi juga data daripada banyak siri anime terkenal lain ke dalam set latihan. Langkah ini memperkayakan pangkalan pengetahuan model, membolehkannya memahami pelbagai gaya dan watak anime dengan lebih lengkap. AnimagineXL3.1 memperkenalkan set teg khas dan estetika baharu

FP8 dan ketepatan pengiraan titik terapung yang lebih rendah bukan lagi "paten" H100! Lao Huang mahu semua orang menggunakan INT8/INT4, dan pasukan Microsoft DeepSpeed memaksa diri mereka menjalankan FP6 pada A100 tanpa sokongan rasmi daripada Nvidia. Keputusan ujian menunjukkan bahawa kaedah baharu TC-FPx FP6 kuantisasi pada A100 adalah hampir atau kadangkala lebih pantas daripada INT4, dan mempunyai ketepatan yang lebih tinggi daripada yang terakhir. Selain itu, terdapat juga sokongan model besar hujung ke hujung, yang telah bersumberkan terbuka dan disepadukan ke dalam rangka kerja inferens pembelajaran mendalam seperti DeepSpeed. Keputusan ini juga mempunyai kesan serta-merta pada mempercepatkan model besar - di bawah rangka kerja ini, menggunakan satu kad untuk menjalankan Llama, daya pemprosesan adalah 2.65 kali lebih tinggi daripada dua kad. satu
