Visi komputer. Sekarang mereka banyak bicara tentang itu, di mana itu diterapkan dan banyak diimplementasikan. Dan entah bagaimana beberapa waktu yang lalu tidak ada artikel ulasan tentang Habrรฉ di CV, dengan contoh-contoh arsitektur dan tugas-tugas modern. Tetapi ada banyak dari mereka, dan mereka sangat keren! Jika Anda tertarik dengan apa yang terjadi di Computer Vision sekarang, tidak hanya dari sudut pandang
penelitian dan artikel , tetapi juga dari sudut pandang masalah yang diterapkan, maka Anda dipersilakan untuk melakukannya. Juga, artikel itu bisa menjadi pengantar yang baik bagi mereka yang sudah lama ingin mulai memahami semua ini, tetapi ada sesuatu yang menghalangi;)

Hari ini di PhysTech ada kolaborasi aktif dari "Akademi" dan mitra industri. Secara khusus, ada banyak
laboratorium menarik dari perusahaan seperti Sberbank, Biocad, 1C, Tinkoff, MTS, Huawei di
Sekolah Matematika Terapan dan Ilmu Komputer PhysTech .
Saya terinspirasi untuk menulis artikel ini dengan bekerja di Laboratorium
Sistem Cerdas Hibrida , dibuka oleh
VkusVill . Laboratorium memiliki tugas ambisius - untuk membangun toko yang berfungsi tanpa meja kas, terutama dengan bantuan visi komputer. Selama hampir satu tahun bekerja, saya memiliki kesempatan untuk mengerjakan banyak tugas penglihatan, yang akan dibahas dalam dua bagian ini.
Berbelanja tanpa meja kas? Di suatu tempat saya sudah mendengarnya ..Mungkin, pembaca yang budiman, Anda berpikir tentang
Amazon Go . Dalam arti tertentu, tugasnya adalah mengulang kesuksesan mereka, tetapi keputusan kami lebih pada implementasi daripada membangun toko seperti itu dari awal untuk
banyak uang .
Kami akan bergerak sesuai rencana:
- Motivasi dan apa yang terjadi
- Klasifikasi sebagai gaya hidup
- Arsitektur jaringan saraf convolutional: 1000 cara untuk mencapai satu tujuan
- Visualisasi jaringan saraf convolutional: tunjukkan semangat
- Saya sendiri adalah semacam ahli bedah: kami mengekstrak fitur dari jaringan saraf
- Tetap dekat: pembelajaran representasi untuk orang dan individu
- Bagian 2:
mendeteksi, mengevaluasi postur dan mengenali tindakan tanpa spoiler
Motivasi dan apa yang terjadi
Untuk siapa artikel itu?Artikel ini lebih berfokus pada orang yang sudah terbiasa dengan pembelajaran mesin dan jaringan saraf. Namun, saya menyarankan Anda untuk membaca setidaknya dua bagian pertama - tiba-tiba semuanya akan menjadi jelas :)
Pada 2019, semua orang berbicara tentang kecerdasan buatan,
revolusi industri keempat dan
pendekatan umat manusia terhadap singularitas . Keren, keren, tapi saya ingin spesifik. Bagaimanapun, kami adalah teknisi yang ingin tahu yang tidak percaya pada dongeng tentang AI, kami percaya pada pengaturan formal tugas, matematika dan pemrograman. Dalam artikel ini, kita akan berbicara tentang kasus-kasus spesifik menggunakan AI sangat modern - penggunaan pembelajaran yang mendalam (yaitu, jaringan saraf convolutional) dalam berbagai tugas penglihatan komputer.
Ya, kami akan berbicara secara khusus tentang kisi-kisi, kadang-kadang menyebutkan beberapa ide dari pandangan "klasik" (kami akan memanggil seperangkat metode dalam visi yang digunakan sebelum jaringan saraf, tetapi ini sama sekali tidak berarti bahwa mereka tidak digunakan sekarang).
Saya ingin belajar visi komputer dari awalSaya merekomendasikan
kursus Anton Konushin "Pengantar Visi Komputer" . Secara pribadi, saya melalui rekannya di SHAD, yang meletakkan dasar yang kuat dalam memahami pemrosesan gambar dan video.
Menurut pendapat saya, aplikasi pertama yang sangat menarik dari jaringan saraf dalam penglihatan, yang diliput di media pada tahun 1993, adalah
pengenalan tulisan tangan oleh Jan LeCun . Sekarang dia adalah salah satu AI utama di
Facebook AI Research , tim mereka telah merilis
banyak hal-hal Open Source yang bermanfaat .
Saat ini, visi digunakan di banyak bidang. Saya akan memberikan beberapa contoh menarik:
Tesla dan Yandex kendaraan tak berawakAnalisis pencitraan medis dan prediksi kankerKonsol gim: Kinect 2.0 (meskipun juga menggunakan informasi mendalam, yaitu gambar RGB-D)Pengenalan Wajah: Apple FaceID (menggunakan beberapa sensor)Peringkat Titik Wajah: topeng SnapchatBiometri gerakan wajah dan mata (contoh dari proyek FPMI MIPT )Cari berdasarkan gambar: Yandex dan GooglePengakuan teks dalam gambar ( Pengenalan Karakter Optik )Drone dan robot: menerima dan memproses informasi melalui visiOdometri : membangun peta dan perencanaan saat memindahkan robotMemperbaiki grafik dan tekstur dalam gim videoTerjemahan gambar: Yandex dan GoogleAugmented Reality: Leap Motion (Project North Star) dan Microsoft HololensTransfer Gaya dan Tekstur: Prisma , PicsArtBelum lagi banyaknya aplikasi dalam berbagai tugas internal perusahaan. Facebook, misalnya, juga menggunakan visi untuk memfilter konten media. Metode visi komputer juga digunakan
dalam pengujian kualitas / kerusakan di industri .
Kenyataan augmented di sini harus, pada kenyataannya, diberi perhatian khusus, karena
ia tidak bekerja dalam waktu dekat, ini mungkin menjadi salah satu area utama dari penerapan visi.
Termotivasi Dibebankan biaya. Ayo pergi:
Klasifikasi sebagai gaya hidup

Seperti yang saya katakan, di tahun 90-an, jala ditembakkan di depan mata. Dan mereka memotret dalam tugas khusus - tugas mengklasifikasikan gambar angka tulisan tangan (
dataset MNIST yang terkenal). Secara historis, itu adalah tugas mengklasifikasikan gambar yang menjadi dasar untuk menyelesaikan hampir semua tugas berikutnya dalam penglihatan. Pertimbangkan contoh spesifik:
Tugas : Folder dengan foto diberikan di pintu masuk, setiap foto memiliki objek tertentu: baik kucing, anjing, atau seseorang (bahkan jika tidak ada foto "sampah", itu adalah tugas yang sangat vital, tetapi Anda harus mulai dari suatu tempat). Anda perlu menguraikan gambar menjadi tiga folder:
/cats
,
/dogs
dan
/leather_bags
/humans
, menempatkan hanya foto dengan objek yang sesuai di setiap folder.
Apa itu gambar / foto?
Hampir di semua tempat dalam penglihatan, biasanya digunakan untuk bekerja dengan gambar dalam format RGB. Setiap gambar memiliki tinggi (H), lebar (W), dan kedalaman 3 (warna). Dengan demikian, satu gambar dapat direpresentasikan sebagai tensor dimensi HxWx3 (setiap piksel adalah satu set tiga angka - nilai intensitas dalam saluran).
Bayangkan kita belum terbiasa dengan visi komputer, tetapi kita tahu pembelajaran mesin. Gambar hanyalah tensor angka dalam memori komputer. Kami meresmikan tugas dalam hal pembelajaran mesin: objek adalah gambar, tanda-tandanya adalah nilai dalam piksel, jawaban untuk masing-masing objek adalah label kelas (kucing, anjing atau orang). Ini adalah
tugas klasifikasi murni.
Anda dapat mengambil beberapa metode dari tampilan "klasik" atau pembelajaran mesin "klasik", yaitu, bukan jaringan saraf. Pada dasarnya, metode-metode ini terdiri dari penyorotan pada gambar-gambar dari fitur-fitur tertentu (titik-titik khusus) atau daerah-daerah lokal yang akan mencirikan gambar tersebut (โ
sekumpulan kata visual โ). Biasanya semuanya bermuara pada sesuatu seperti
SVM lebih dari
HOG /
SIFT .
Tetapi kami berkumpul di sini untuk berbicara tentang jaringan saraf, jadi kami tidak ingin menggunakan tanda-tanda yang kami ciptakan, tetapi ingin jaringan melakukan segalanya untuk kami. Pengklasifikasi kami akan mengambil tanda-tanda objek sebagai input dan mengembalikan prediksi (label kelas). Di sini, nilai intensitas dalam piksel bertindak sebagai tanda (lihat model gambar di
spoiler di atas). Ingatlah bahwa gambar adalah tensor ukuran (Tinggi, Lebar, 3) (jika warnanya). Saat belajar memasuki kisi-kisi, semua ini biasanya disajikan bukan oleh satu gambar dan bukan oleh seluruh dataset, tetapi secara batch, yaitu dalam porsi kecil dari objek (misalnya, 64 gambar dalam kumpulan).
Dengan demikian, jaringan menerima tensor ukuran input (BATCH_SIZE, H, W, 3). Anda dapat "memperluas" setiap gambar menjadi garis vektor nomor H * W * 3 dan bekerja dengan nilai-nilai dalam piksel seperti halnya tanda-tanda dalam pembelajaran mesin,
Multilayer Perceptron (MLP) biasa akan melakukan hal itu, tetapi terus terang, seperti itu garis dasar, karena bekerja dengan piksel sebagai baris vektor tidak memperhitungkan, misalnya, invariansi objek dalam gambar. Kucing yang sama bisa berada di tengah foto, dan di sudut, MLP tidak akan mempelajari pola ini.
Jadi, Anda memerlukan sesuatu yang lebih cerdas, misalnya operasi konvolusi. Dan ini tentang visi modern, tentang
jaringan saraf convolutional :
Kode pelatihan jaringan konvolusi mungkin terlihat seperti ini (pada kerangka PyTorch) Karena sekarang kita berbicara tentang
pelatihan dengan seorang guru , kita memerlukan beberapa komponen untuk melatih jaringan saraf:
- Data (sudah ada)
- Arsitektur Jaringan (Sorotan)
- Fungsi kerugian yang akan memberi tahu bagaimana jaringan saraf untuk belajar (ini akan lintas-entropi )
- Metode optimasi (akan mengubah bobot jaringan ke arah yang benar)
- Tetapkan arsitektur dan hyperparameter optimizer (misalnya, ukuran langkah optimizer, jumlah neuron dalam lapisan, koefisien regularisasi)
Inilah yang diimplementasikan dalam kode, jaringan saraf convolutional itu sendiri dijelaskan dalam kelas Net ().
Jika Anda ingin pelan-pelan dan sejak awal belajar tentang konvolusi dan jaringan konvolusi, saya merekomendasikan
kuliah di Deep Learning School (MIPT MIPT) (dalam bahasa Rusia) tentang topik ini, dan, tentu saja, kursus
Stanford cs231n (dalam bahasa Inggris) .
Singkatnya, operasi konvolusi memungkinkan Anda menemukan pola pada gambar berdasarkan variabilitasnya. Ketika kami melatih jaringan saraf convolutional (ind: Convolutional Neural Networks), kami, pada kenyataannya, menemukan filter konvolusi (bobot neuron) yang menggambarkan gambar dengan baik, dan dengan baik sehingga Anda dapat secara akurat menentukan kelas dari mereka. Banyak cara telah ditemukan untuk membangun jaringan semacam itu. Lebih dari yang Anda pikirkan ...
Arsitektur jaringan saraf convolutional: 1000 cara untuk mencapai satu tujuan
Ya, ya,
ulasan arsitektur lain . Tapi di sini saya akan mencoba membuatnya se relevan mungkin!
Pertama ada
LeNet , itu membantu Jan LeCun mengenali angka pada tahun 1998. Ini adalah jaringan saraf convolutional pertama untuk klasifikasi. Fitur utamanya adalah dia pada dasarnya mulai menggunakan operasi
konvolusi dan pengumpulan .

Kemudian ada jeda dalam pengembangan grid, tetapi perangkat keras tidak diam, perhitungan efektif pada GPU dan
XLA dikembangkan . Pada 2012, AlexNet muncul, ia memotret dalam kompetisi ILSVRC (
ImageNet Large-Scale Visual Recognition Challenge ).
Penyimpangan kecil tentang ILSVRCImageNet dirakit pada 2012, dan ribuan gambar dan 1.000 kelas digunakan untuk kompetisi ILSVRC. ImageNet saat ini memiliki ~ 14 juta gambar dan 21.841 kelas (diambil dari situs resmi), tetapi untuk kompetisi mereka biasanya hanya memilih satu subset. ILSVRC kemudian menjadi kompetisi klasifikasi gambar tahunan terbesar. Ngomong-ngomong, kami baru-baru ini menemukan cara
melatih di ImageNet dalam hitungan menit .
Di ImageNet (dalam ILSVRC) dari 2010 hingga 2018 mereka menerima jaringan
SOTA dalam klasifikasi gambar. Benar, sejak 2016, kompetisi dalam pelokalan, pendeteksian dan pemahaman adegan, daripada klasifikasi, lebih relevan.
Biasanya, berbagai
tinjauan arsitektur menjelaskan hal-hal yang pertama di ILSVRC dari 2010 hingga 2016, dan pada beberapa jaringan individu. Agar tidak mengacaukan cerita, saya menempatkannya di bawah spoiler di bawah, mencoba untuk menekankan ide-ide utama:
Arsitektur dari 2012 hingga 2015 
Ide-ide dari semua arsitektur ini (kecuali untuk ZFNet, biasanya disebutkan sedikit) pada suatu waktu adalah kata baru dalam jaringan saraf untuk penglihatan. Namun, setelah 2015 ada banyak perbaikan yang lebih penting, misalnya, Inception-ResNet, Xception, DenseNet, SENet. Di bawah ini saya mencoba mengumpulkannya di satu tempat.
Arsitektur dari 2015 hingga 2019 Sebagian besar model untuk PyTorch dapat ditemukan di
sini , dan ada
hal yang sangat keren .
Anda mungkin telah memperhatikan bahwa keseluruhan beratnya cukup banyak (saya ingin maksimum 20 MB, atau bahkan kurang), sementara saat ini mereka menggunakan perangkat seluler di mana-mana dan
IoT semakin populer, yang berarti Anda juga ingin menggunakan kisi di sana.
Hubungan antara berat model dan kecepatanKarena jaringan saraf dalam dirinya sendiri hanya mengalikan tensor, jumlah operasi perkalian (baca: jumlah bobot) secara langsung memengaruhi kecepatan kerja (jika pasca-pemrosesan atau pra-pemrosesan padat karya tidak digunakan). Kecepatan jaringan itu sendiri tergantung pada implementasi (kerangka kerja), perangkat keras yang menjalankannya, dan ukuran gambar input.
Para penulis banyak artikel mengambil jalan untuk menciptakan arsitektur cepat, saya mengumpulkan metode mereka di bawah spoiler di bawah ini:
Angka-angka di semua tabel
diambil dari langit-langit dari repositori, dari
tabel Aplikasi Keras dan dari
artikel ini .
Anda bertanya: "Mengapa Anda menulis tentang seluruh" kebun binatang "model ini? Dan mengapa tugas klasifikasi? Tapi kami ingin mengajarkan mesin untuk melihat, dan klasifikasi hanyalah semacam tugas sempit .. ". Faktanya adalah bahwa jaringan saraf untuk mendeteksi objek, mengevaluasi postur / titik, mengidentifikasi kembali dan mencari dalam gambar menggunakan model klasifikasi untuk
tulang punggung , dan 80% keberhasilan tergantung pada mereka.
Tapi saya ingin entah bagaimana lebih mempercayai CNN, atau mereka memikirkan kotak hitam, tetapi apa yang "dalam" tidak jelas. Untuk lebih memahami mekanisme fungsi jaringan konvolusional, peneliti menemukan penggunaan visualisasi.
Visualisasi jaringan saraf convolutional: tunjukkan semangat
Langkah penting untuk memahami apa yang terjadi di dalam jaringan konvolusional adalah artikel
"Visualisasi dan Memahami Jaringan Konvolusional" . Di dalamnya, penulis mengusulkan beberapa cara untuk memvisualisasikan apa yang neuron (pada bagian gambar mana) merespon lapisan CNN yang berbeda (Saya juga merekomendasikan menonton
kuliah Stanford tentang topik ini ). Hasilnya sangat mengesankan: penulis menunjukkan bahwa lapisan pertama dari jaringan konvolusional merespons beberapa "hal tingkat rendah" berdasarkan jenis tepi / sudut / garis, dan lapisan terakhir sudah merespons seluruh bagian gambar (lihat gambar di bawah), yaitu, mereka sudah menanggung dalam dirinya sendiri beberapa semantik.
Lebih jauh,
proyek untuk visualisasi mendalam dari Cornell University dan perusahaan tersebut memajukan visualisasi lebih jauh, sementara
DeepDream yang terkenal belajar untuk mengubah gaya yang
adiktif (di bawah ini adalah gambar dari
deepdreamgenerator.com ).
Pada tahun 2017, sebuah
artikel yang sangat bagus diterbitkan di Distill , di mana mereka melakukan analisis terperinci tentang apa yang dilihat oleh setiap lapisan, dan yang terbaru (pada Maret 2019) Google menciptakan
atlas aktivasi : peta unik yang dapat dibangun untuk setiap lapisan jaringan, yang membawa kita lebih dekat untuk memahami gambaran keseluruhan dari pekerjaan CNN.
Jika Anda ingin bermain dengan visualisasi sendiri, saya akan merekomendasikan
Lucid dan
TensorSpace .
Oke, CNN tampaknya benar sampai batas tertentu. Kita perlu belajar bagaimana menggunakan ini dalam tugas-tugas lain, dan bukan hanya dalam klasifikasi. Ini akan membantu kami mengekstrak gambar Embedding'ov dan Transfer Learning.
Saya sendiri adalah semacam ahli bedah: kami mengekstrak fitur dari jaringan saraf
Bayangkan ada gambar, dan kami ingin menemukan gambar yang terlihat seperti itu secara visual (ini, misalnya, pencarian dalam gambar di Yandex. Gambar). Sebelumnya (sebelum jaringan saraf), insinyur digunakan untuk mengekstraksi fitur secara manual, misalnya, menciptakan sesuatu yang menggambarkan gambar dengan baik dan memungkinkan untuk dibandingkan dengan yang lain. Pada dasarnya, metode ini (
HOG ,
SIFT ) beroperasi dengan
gradien gambar , biasanya hal ini disebut deskriptor gambar "klasik". Yang menarik, saya merujuk ke
artikel dan
kursus Anton Konushin (ini bukan iklan, hanya kursus yang bagus :)
Dengan menggunakan jaringan saraf, kita tidak dapat menemukan fitur dan heuristik ini sendiri, tetapi melatih model dengan benar dan kemudian
mengambil output dari satu atau lebih lapisan jaringan sebagai tanda-tanda gambar .
Melihat lebih dekat pada semua arsitektur memperjelas bahwa ada dua langkah untuk klasifikasi di CNN:
1). Lapisan
ekstraktor fitur untuk mengekstraksi fitur informatif dari gambar menggunakan lapisan konvolusional
2). Belajar di atas fitur-fitur ini
Fully Connected (FC) layers classifier
Menanamkan gambar (fitur) hanya tentang fakta bahwa Anda dapat mengambil tanda-tanda mereka setelah ekstraktor Fitur dari jaringan saraf convolutional (meskipun mereka dapat dikumpulkan dengan cara yang berbeda) sebagai deskripsi gambar yang informatif. Artinya, kami melatih jaringan untuk klasifikasi, dan kemudian mengambil jalan keluar di depan lapisan klasifikasi. Tanda-tanda ini disebut
fitur ,
deskriptor jaringan saraf, atau
embeddings gambar (meskipun embeddings biasanya diterima di NLP, karena ini adalah visi, saya akan sering berbicara
fitur ). Biasanya ini adalah semacam vektor numerik, misalnya, 128 angka yang sudah dapat Anda gunakan.
Tetapi bagaimana dengan auto encoders?Ya, pada kenyataannya, fitur dapat diperoleh oleh
penyandi otomatis . Dalam praktik saya, mereka melakukannya dengan cara yang berbeda, tetapi, misalnya, dalam artikel tentang identifikasi ulang (yang akan dibahas nanti), lebih sering mereka masih mengambil fitur setelah extractor, daripada melatih auto-encoder untuk ini. Tampaknya bagi saya adalah layak untuk melakukan percobaan di kedua arah, jika pertanyaannya adalah apa yang lebih baik.
Dengan demikian, saluran untuk menyelesaikan
masalah pencarian dengan gambar dapat diatur secara sederhana: kami menjalankan gambar melalui CNN, mengambil tanda dari lapisan yang diinginkan dan membandingkan fitur-fitur ini satu sama lain dari gambar yang berbeda. Sebagai contoh, kami hanya mempertimbangkan jarak Euclidean dari vektor-vektor ini.
Transfer Learning adalah teknik yang terkenal untuk pelatihan jaringan saraf yang efektif yang sudah dilatih pada dataset tertentu untuk tugas mereka. Seringkali mereka juga mengatakan Fine Tuning alih-alih Transfer Learning, dalam
kursus Stanford mencatat cs231n konsep-konsep ini dibagikan, mereka mengatakan, Transfer Learning adalah ide umum, dan Fine Tuning adalah salah satu implementasi dari teknik ini. Ini tidak begitu penting bagi kita di masa depan, hal utama adalah memahami bahwa kita bisa melatih jaringan untuk memprediksi dengan baik pada dataset baru, mulai dari bukan dari bobot acak, tetapi dari mereka yang dilatih pada beberapa tipe ImageNet besar. Ini terutama benar ketika ada sedikit data, dan Anda ingin menyelesaikan masalah secara kualitatif.
Pelajari lebih lanjut tentang Transfer Belajar Namun, hanya mengambil fitur yang diperlukan dan melakukan pelatihan tambahan dari dataset ke dataset mungkin tidak cukup, misalnya, untuk tugas mencari orang / orang / sesuatu yang serupa. Foto orang yang sama secara visual kadang-kadang bisa lebih berbeda daripada foto orang yang berbeda. Penting untuk membuat jaringan menyorot persis tanda-tanda yang melekat pada satu orang / objek, bahkan jika sulit bagi kita untuk melakukan ini dengan mata kita. Selamat datang di dunia
pembelajaran representasi .
Tetap dekat: pembelajaran representasi untuk orang dan individu
Catatan TerminologiJika Anda membaca artikel ilmiah, kadang-kadang tampaknya beberapa penulis memahami frasa pembelajaran metrik secara berbeda, dan tidak ada konsensus tentang metode mana yang disebut pembelajaran metrik dan mana yang tidak. Itulah sebabnya dalam artikel ini saya memutuskan untuk menghindari ungkapan khusus ini dan menggunakan pembelajaran representasi yang lebih logis, beberapa pembaca mungkin tidak setuju dengan ini - saya akan senang untuk membahas dalam komentar.
Kami mengatur tugas:
- Tugas 1 : ada galeri (set) foto-foto wajah orang, kami ingin jaringan dapat merespons sesuai dengan foto baru baik dengan nama seseorang dari galeri (seharusnya ini dia), atau mengatakan bahwa tidak ada orang seperti itu di galeri (dan, mungkin, kami tambahkan ke dalamnya orang baru)
- Tugas 2 : hal yang sama, tetapi kami bekerja bukan dengan foto wajah, tetapi dengan potongan orang
Tugas pertama biasanya disebut
pengenalan wajah , yang kedua -
identifikasi ulang (disingkat
Reid ). Saya menggabungkan mereka menjadi satu blok, karena solusi mereka menggunakan ide-ide yang sama hari ini: untuk mempelajari embeddings gambar yang efektif yang dapat mengatasi situasi yang agak sulit, hari ini mereka menggunakan berbagai jenis kerugian, seperti, misalnya,
triplet loss ,
quadruplet loss ,
kehilangan pusat-kontras ,
kehilangan cosinus .
Masih ada
jaringan Siam yang bagus, tapi jujur โโsaya tidak menggunakannya sendiri. Omong-omong, tidak hanya kerugian itu sendiri "memutuskan", tetapi bagaimana sampel pasangan positif dan negatif untuk itu, penulis artikel
Sampling masalah dalam pembelajaran embedding mendalam menekankan.
Inti dari semua kerugian ini dan jaringan Siam adalah sederhana - kami ingin gambar satu kelas (orang) di ruang laten fitur (embeddings) menjadi "dekat", dan dari berbagai kelas (orang) menjadi "jauh". Kedekatan biasanya diukur sebagai berikut: pengambilan gambar dari jaringan saraf diambil (misalnya, vektor 128 angka) dan kami juga mempertimbangkan
jarak Euclidean biasa antara vektor-vektor ini atau
kedekatan cosinus. Bagaimana mengukurnya, lebih baik memilih pada dataset / tugas Anda.
Representasi skematis dari pipa penyelesaian masalah pada pembelajaran representasi terlihat seperti ini:
Tapi lebih tepatnya, seperti ini: (Softmax + CrossEntropy), (Triplet, Contrastive, etc.). positive' negative'
: - , โ . , โ - , (,
). .
:
- ( MUST READ! ) ,
FaceNet ,
ArcFace ,
CosFace .
:
dlib ,
OpenFace ,
FaceNet repo ,
. , ArcFace CosFace ( , - , - ).
,
, ?
,
- , , , - , - .

Reid :
, , 10 , 5 ( ), 50 . (), , , ID. , : , , ,
, , , ( / ..).
,
Reid โ . , - , - negative' positive'.
Reid
2016 . , , โ representation learning. , -, ,
Aligned Re-Id (,
, ),
Generative Adversarial Networks (GAN) .
, , -, . , - , , , . โ !
OpenReid TorchReid . โ , ,
. PyTorch, Readme Person Re-identification, .
face- reid- (
, ). ? โฆ
, . , , ? ( ) :
float64, , , float32 .
low-precision training . , , Google
MorphNet , ( ) .
?
DL CV: , , , . : , , . ,
, , . .
Stay tuned!