C13 · CV Terapan
Mengolah citra menjadi keputusan yang bisa diperiksa: citra sebagai larik, filter dan tepi, ambang dan morfologi, transformasi dan augmentasi, klasifikasi, evaluasi dan kalibrasi, deteksi dengan IoU, NMS, dan mAP yang dihitung sendiri, segmentasi, OCR struk, pelacakan sederhana, mutu label, dan deploy ringan, lalu dibandingkan jujur dengan model pralatih yang di-fine-tune di GPU gratis.
- 15 modul
- 76 latihan
- 89 istilah
Daftar modul
- 01Citra sebagai larikGratis6 latihan
- 02Filter dan tepiGratis7 latihan
- 03Ambang dan morfologiCoding Studio6 latihan
- 04Transformasi geometris dan augmentasiCoding Studio5 latihan
- 05Klasifikasi: dari fitur buatan tangan ke *transfer learning*Coding Studio4 latihan
- 06Evaluasi dan kalibrasiCoding Studio5 latihan
- 07Deteksi objek: kotak, IoU, NMSCoding Studio5 latihan
- 08Mengukur detektor: AP dan mAPCoding Studio4 latihan
- 09SegmentasiCoding Studio5 latihan
- 10Pipeline OCR strukCoding Studio5 latihan
- 11Video dan pelacakan dasarCoding Studio5 latihan
- 12Mutu pelabelanCoding Studio5 latihan
- 13Deploy ringan: ONNX dan kuantisasiCoding Studio5 latihan
- 14Etika, privasi, dan keselamatanCoding Studio5 latihan
- 15Proyek akhir: Netra MakmurCoding Studio4 latihan
Modul 01–02 gratis; modul bergembok terbuka dengan Coding Studio. Lihat paket
Ada contoh atau latihan bertanda “Kerjakan di laptop”? Paket dan data C13 untuk menjalankannya di komputermu ada di panduan menjalankan kode di komputermu.
Tentang course ini
Mengolah citra menjadi keputusan yang bisa diperiksa: citra sebagai larik, filter dan tepi, ambang dan morfologi, transformasi dan augmentasi, klasifikasi, evaluasi dan kalibrasi, deteksi dengan IoU, NMS, dan mAP yang dihitung sendiri, segmentasi, OCR struk, pelacakan sederhana, mutu label, dan deploy ringan, lalu dibandingkan jujur dengan model pralatih yang di-fine-tune di GPU gratis.
Course pilihan jalur Data & AI sesudah C9, untuk ML Engineer yang bekerja dengan kamera, foto produk, atau dokumen pindaian. Versi ini berupa Markdown yang bisa dibaca langsung di GitHub; latihannya diperiksa otomatis dan berjalan di peramban.
Posisi course
Kenapa course ini ada
C9 menurunkan konvolusi sampai ke gradiennya, melatih CNN untuk digit 8×8, dan memperkenalkan transfer learning sekilas (Konvolusi). C3 membaca nota dan dokumen pindaian lewat OCR dan model vision, lalu mengukurnya dengan CER/WER (Multimodal). Di antara keduanya ada pekerjaan yang paling sering dilakukan ML Engineer visi: menyiapkan citra yang berantakan (cahaya, warna kamera, kemiringan), memilih metrik yang tepat, menghitung mAP dengan benar, memisahkan objek yang berdempet, menemukan label yang keliru, dan memastikan model yang diekspor menghasilkan angka yang sama dengan model yang dilatih.
Kesalahan visi komputer jarang muncul sebagai galat. uint8 yang meluap diam-
diam, citra BGR yang dikira RGB, praproses yang berbeda saat inferensi, kotak
xywh yang dikira xyxy, AP yang dihitung tanpa NMS, salinan hampir kembar
yang bocor ke data uji, atau model kuantisasi yang bergeser beberapa persen.
C13 mengajarkan cara menangkap semua itu dengan kode yang diperiksa.
Cara klasik dan cara modern
Cara klasik di course ini: larik uint8, ruang warna dan histogram,
ekualisasi, konvolusi dengan mode tepi, Gaussian terpisah, median, Sobel dan
Canny, Otsu dan ambang adaptif, morfologi, koordinat homogen, interpolasi
bilinear, homografi, HOG sederhana, matriks konfusi multikelas, ECE dan
temperature scaling, hash persepsi, IoU, NMS, AP/mAP, RLE dan Dice,
komponen terhubung dengan union-find, transformasi jarak, profil proyeksi dan
pencocokan templat untuk OCR, latar median, penugasan Hungaria, kuantisasi
afin. Semuanya ditulis sendiri dengan NumPy, lalu dicocokkan dengan
scipy.ndimage atau scikit-learn bila ada.
Cara modern: model pralatih (keluarga ResNet, ConvNeXt, ViT) dengan transfer learning, detektor dan segmenter pralatih di torchvision atau Hugging Face, OCR siap pakai (Tesseract, PaddleOCR, TrOCR) atau model vision lewat API (C3), ekspor ONNX dan ONNX Runtime, kuantisasi pascapelatihan, alat anotasi, dan agen AI yang menulis pipeline. Semuanya di Google Colab atau Kaggle, lalu dibandingkan dengan baseline klasik di data dan pemisahan yang sama.
Polanya sama di setiap modul: tulis versi klasik dengan NumPy dan ukur, jalankan versi modern di Lab, lalu bandingkan dengan jujur.
Pemilik materi
C13 memiliki: pemrosesan citra klasik, augmentasi yang menjaga label, metrik deteksi dan segmentasi, kalibrasi multikelas dengan suhu, hash persepsi, pipeline OCR dari piksel, pelacakan sederhana, mutu label citra, dan kuantisasi afin untuk deploy. C13 menautkan, tidak mengajarkan ulang:
| Konsep | Pemilik |
|---|---|
| Korelasi silang, padding, stride, im2col, pooling, CNN maju dan mundur, transfer learning sekilas | C9 · Konvolusi |
PyTorch, DataLoader, presisi campuran di Colab | C9 · Melatih di GPU dengan PyTorch |
| Kuantisasi simetris int8 per kolom, FLOPs dan memori | C9 · Model terbuka, fine-tuning, LoRA, Efisiensi, inferensi, evaluasi jujur |
| Regresi logistik, presisi/recall, ROC, kalibrasi biner | C2 · Regresi logistik dan klasifikasi, Evaluasi klasifikasi dan keputusan |
| Metrik keadilan per kelompok | C2 · Data tak seimbang, keadilan, dan interpretabilitas |
| CER/WER, model vision untuk nota, unggahan gambar yang aman | C3 · Multimodal |
| Minimisasi, redaksi, retensi, UU PDP | C3 · Privasi, etika, dan kepatuhan |
| Penyajian model dan pemantauan | C10 · Penyajian model, Pemantauan dan drift |
| Bootstrap | C1 · Sampling dan estimasi |
| BFS di grid dan union-find | K1 · Graf 1: menjelajah, Graf 2: jalur terpendek dan pohon rentang |
Untuk siapa dan prasyarat
- Wajib: C2 Machine Learning (regresi logistik, evaluasi, validasi) dan C9 Deep Learning (konvolusi, CNN, PyTorch di Colab, transfer learning, kuantisasi).
- Dianjurkan: C3 AI Engineering, khususnya Multimodal untuk Modul 10 (pipeline OCR) dan Privasi, etika, dan kepatuhan untuk Modul 14. Tanpa C3, setiap modul memberi ringkasan satu layar dan tautannya.
- F1 Python dan F5 Rilis untuk repo proyek dan Lab Tayang.
- Matematika: Aljabar Linear (matriks transformasi, koordinat homogen, sistem linear untuk homografi) dan Statistika dan Probabilitas (histogram, kalibrasi, interval).
- Sapaan "kamu", sama dengan course lain.
Lingkungan lab
| Bagian | Di mana | Diperiksa |
|---|---|---|
| Larik citra, warna, filter, Canny, Otsu, morfologi, geometri, HOG, metrik, kalibrasi, IoU/NMS/AP, segmentasi, OCR dari piksel, pelacakan, mutu label, kuantisasi, masker privasi dan ketahanan, planogram dan laporan | Peramban (Python di peramban dengan NumPy, SciPy, scikit-learn); pemeriksa memakai Python 3.12 dan 3.13 dengan versi paket yang sama | Otomatis |
| Transfer learning, detektor dan segmenter pralatih, OCR siap pakai, ekspor ONNX, ONNX Runtime | Google Colab atau Kaggle Notebooks (GPU gratis, kuota berubah dan tidak dijamin) | Lab "Selesai bila:" |
| Demo publik (lencana Tayang) | Streamlit Community Cloud dari repo GitHub | Daftar periksa Tayang Modul 15 |
Citra latihan berukuran kecil (24×24 sampai 140×112) dan disimpan sebagai
larik uint8 mentah (citra.bin + meta.json), sehingga cukup dibaca dengan
np.fromfile(...).reshape(...), tanpa pustaka citra. PyTorch, torchvision,
OpenCV, scikit-image, dan ONNX Runtime tidak dipakai di latihan
terperiksa: sebagian tidak ada di peramban, sebagian tidak ada di pemeriksa.
Kode Lab ditulis terhadap versi yang dicek penulis modul (tanggal dan versi
dicatat di modulnya, sama seperti C9). Nama model pralatih, ukurannya, dan
lisensinya dicek di halaman resminya saat modul ditulis dan ditandai perlu
dicek ulang. Untuk Lab Colab, pembangkit data membuat versi etalase yang
lebih besar (python data/buat_data.py --besar 96).
Satu kali menjalankan kode dibatasi 15 detik (citra kecil dan kode
tervektorisasi; batas=N sampai 120 detik hanya bila tidak bisa dihindari).
Waktu: ±6 jam per modul (Modul 14 ±5 jam, Modul 15 ±8 jam), total ±90 jam; bagian pendalaman, Lab Colab yang ditandai opsional, dan Lab Tayang di luar hitungan itu.
Silabus (15 modul)
| Modul | Judul | Inti | Pendalaman | Lab/Proyek |
|---|---|---|---|---|
| 01 | Citra sebagai larik | Bentuk (H, W, C) dan indeks (baris, kolom) lawan koordinat (x, y), uint8 vs float dan luapan diam-diam, urutan kanal RGB/BGR, abu-abu (bobot BT.601), HSV ditulis sendiri dan hue yang melingkar, histogram, ekualisasi lewat CDF, koreksi gamma, white balance gray-world | sRGB linear vs gamma: kenapa rata-rata di ruang gamma keliru | muat_citra, ke_abu, ke_hsv, histogram, ekualisasi, gray_world di netra.py; histogram warna per kelas etalase, kamera lama vs baru |
| 02 | Filter dan tepi | Korelasi dari C9 dipakai (tanpa im2col ulang), empat mode tepi (nol, replikasi, refleksi, cermin), Gaussian terpisah, median untuk derau garam-merica, Sobel (magnitudo dan arah), Canny lengkap: penekanan non-maksimum empat arah, ambang ganda, histeresis; dicocokkan dengan scipy.ndimage | Laplacian of Gaussian; frekuensi dan FFT sekilas | konvolusi2d, kernel_gauss, median, sobel, canny; Canny pada struk (3.341 piksel tepi di struk 0) dan rak |
| 03 | Ambang dan morfologi | Dice untuk mengukur biner, Otsu ditulis sendiri, ambang adaptif dengan citra integral, erosi, dilasi, opening, closing, elemen struktur, transformasi jarak dua lintasan | Top-hat untuk latar yang tidak rata | otsu, ambang_adaptif, morfologi, dice; biner tray telur: Otsu global (Dice 0,8287) vs adaptif (0,8984) |
| 04 | Transformasi geometris dan augmentasi | Koordinat homogen, matriks afin (rotasi terhadap pusat, skala, translasi), pemetaan balik, interpolasi tetangga terdekat dan bilinear, homografi empat titik (DLT) untuk meluruskan foto; augmentasi yang menjaga label (kotak ikut berubah, flip bisa mengubah arti), augmentasi berbenih | Augmentasi modern dan batasnya; OpenCV dan pustaka augmentasi di Colab | matriks_afin, warp_afin, homografi, ubah_kotak, augmentasi beserta kotak rak |
| 05 | Klasifikasi: dari fitur buatan tangan ke transfer learning | Baseline histogram warna, piksel mentah, dan HOG sederhana + regresi logistik, fitur di dalam Pipeline, praproses yang sama persis saat inferensi (citra BGR yang diam-diam salah), gray-world di pelatihan dan inferensi, linear probe di atas penyematan citra; transfer learning di Colab dengan tulang punggung dibekukan lalu dibuka sebagian | Klasifikasi tanpa contoh (zero-shot) dengan model citra–teks, dan kapan tidak dipakai | fitur_histogram, fitur_hog, model_etalase; angka rujukan uji 0,74 (histogram), 0,83 (piksel), 0,93 (piksel + HOG); kamera baru 0,78 → 0,81 dengan gray-world |
| 06 | Evaluasi dan kalibrasi | Matriks konfusi multikelas, presisi/recall/F1 per kelas, makro vs mikro, top-k, interval bootstrap, irisan (kamera, cahaya), kebocoran lewat salinan hampir kembar (aHash dan jarak Hamming ditulis sendiri), ECE dan diagram reliabilitas multikelas, temperature scaling dipasang di validasi | Test-time augmentation dan pengaruhnya ke kalibrasi | matriks_konfusi, ece, pasang_suhu, ahash, hamming; EVALUASI.md etalase; suhu dari logit.csv |
| 07 | Deteksi objek: kotak, IoU, NMS | Format kotak (xyxy, xywh, cxcywh, ternormalisasi, piksel eksklusif), IoU tervektor dan objek tipis yang peka pergeseran, NMS serakah per kelas, Soft-NMS, detektor sederhana (jendela geser, proposal warna); anotasi format COCO dan detektor pralatih di Colab | Anchor dan regresi offset kotak | ubah_format, iou, nms, nms_per_kelas (377 → 306 prediksi rak), detektor warna untuk rak |
| 08 | Mengukur detektor: AP dan mAP | Pencocokan prediksi ke kebenaran (IoU ≥ ambang, satu kebenaran sekali), kurva presisi–recall dan amplopnya, AP interpolasi semua titik (VOC) vs 101 titik (COCO), mAP@0,5 dan mAP@[0,5:0,95] (daftar ambang linspace vs arange), pengaruh NMS dan duplikat; membaca AP per kelas dari recall maksimum dan uji geser satu piksel | AP per ukuran objek; pycocotools di Colab | cocokkan, average_precision, mean_ap; angka rujukan prediksi.json; DETEKSI.md: AP teh_botol terendah karena recall maksimumnya 0,79 (20 dari 95 botol tidak pernah terdeteksi); tipisnya botol baru menentukan bila kotak bergeser satu piksel |
| 09 | Segmentasi | Masker biner dan instans, RLE gaya COCO, Dice dan IoU per instans, komponen terhubung dua lintasan dengan union-find (4 vs 8 tetangga), memisahkan telur berdempet (transformasi jarak + puncak lokal, watershed sederhana), menghitung objek | Watershed dan U-Net kecil di Colab (opsional) | rle_encode, rle_decode, komponen_terhubung, pisah_berdempet; penghitung telur tepat di 32 dari 40 tray (Otsu global: 5) |
| 10 | Pipeline OCR struk | Tinta dari latar lokal, pelurusan kemiringan dari profil kolom (kasar lalu halus), segmentasi baris dan karakter, pencocokan templat fon 5×7, keyakinan per karakter, pola baris (huruf di kiri, angka di kanan), urai item dan validasi aritmetika; CER/WER dari C3 dipakai; struk yang ditandai dirutekan ke manusia atau model vision; OCR siap pakai di Colab | CTC untuk OCR berbasis jaringan saraf (tanpa latihan wajib) | luruskan, segmentasi_baris, segmentasi_karakter, kenali, baca_struk, urai_struk, periksa_struk; CER 0,0030 dan validator yang menandai tepat struk 5 dan 17 |
| 11 | Video dan pelacakan dasar | Video sebagai (T, H, W), zona privasi dinolkan lebih dulu, latar median dan selisih bingkai, normalisasi kilau per bingkai, penugasan Hungaria dengan biaya 1 − IoU (gaya SORT tanpa Kalman), siklus hidup jejak, menghitung barang yang melewati garis per ID, pertukaran ID, MOTA dan IDF1 sederhana; objeknya kardus di konveyor, bukan orang | Filter Kalman kecepatan konstan (gaya SORT) | latar_median, deteksi_gerak, Pelacak, hitung_lewat; penghitung kardus konveyor (3 kardus, MOTA 0,8865) |
| 12 | Mutu pelabelan | Suara mayoritas dan kesepakatan per anotator, Fleiss' kappa, pedoman (kotak ketat, terpotong, tertutup), kesepakatan kotak antar-anotator (pencocokan IoU), audit derau label dari probabilitas validasi silang, deduplikasi dengan hash persepsi, lembar data dataset, anotasi aktif | Alat anotasi (CVAT, Label Studio) dan alur tinjauan | fleiss_kappa, f1_kotak, label_meragukan; audit label etalase dan rak |
| 13 | Deploy ringan: ONNX dan kuantisasi | Anggaran latensi, ukuran, dan memori, kuantisasi afin uint8 dengan titik nol (beda dari simetris per kolom di C9), kalibrasi rentang aktivasi (min–maks vs persentil), konvolusi int8 dengan akumulator int32, uji paritas (praproses sama, keluaran dalam toleransi); ekspor ONNX dan ONNX Runtime di Colab | Graf ONNX (opset, IR, bentuk dinamis); runtime ponsel sekilas | kuantisasi_afin, dekuantisasi, konv_int8, paritas; model etalase int8 dengan tes paritas |
| 14 | Etika, privasi, dan keselamatan | Sikap defensif: course ini tidak mengajarkan pengenalan wajah atau identitas; minimisasi (kamera diarahkan ke barang, simpan hasil bukan citra), masker zona privasi sejak video dibaca, redaksi wilayah dan batasnya (pikselasi bisa ditebak balik), hapus metadata dengan daftar izin, retensi, pemberitahuan CCTV, UU PDP (C3); evaluasi ketahanan terhadap derau, buram, gelap, dan per kondisi kamera; lisensi dataset dan model | Kartu model | masker_privasi, redaksi_wilayah, korupsi, laporan_ketahanan; penghitung kardus yang aman sejak dibaca |
| 15 | Proyek akhir: Netra Makmur | Menyatukan netra dari Modul 01–14 dalam satu repo bertes; kepatuhan planogram (slot dari pusat kotak) dari kebenaran dan dari prediksi, dengan galat per slot; hasil_netra.json dan laporan yang menolak angka tanpa bagian data, interval, atau pembanding; notebook Colab (transfer learning dan ONNX) | Lencana Tayang: demo Streamlit + kartu model; CI untuk netra | periksa_planogram, laporan_netra, ke_markdown; repo + LAPORAN.md + notebook + demo publik |
Proyek: Netra Makmur
Peserta membangun netra, pustaka visi komputer mini dengan NumPy untuk
Warung Makmur yang memasang kamera rak dan mulai memotret struk. netra
mengenali produk di etalase, mendeteksi barang di rak dan memeriksa planogram
(slot kosong, barang salah tempat), menghitung telur di tray, membaca struk
dari piksel sampai total, menghitung kardus di konveyor gudang, menilai mutu
label, dan menyiapkan model kecil untuk dijalankan di CPU. Semua citra
digambar prosedural dari bentuk sederhana (data/buat_data.py): tidak ada
foto, tidak ada orang, tidak ada wajah. Kontrak:
proyek-netra.md.
Lencana Tayang (bukan syarat lulus): demo "Netra Makmur" di Streamlit
Community Cloud yang menjalankan inferensi netra dengan NumPy di CPU, dengan
kartu model, GitHub Actions hijau, dan README portofolio. Daftar periksa
lengkap ada di Modul 15.
Kerangka setiap modul
Modul ditulis langsung dalam mode langkah (satu layar satu ide, setiap layar berakhir dengan interaksi), dengan bagian:
# Modul NN · Judul
> **Hasil belajar:** 3–5 kemampuan yang bisa diamati
> **Prasyarat:** modul sebelumnya dan modul course lain (bertaut, dengan judul topiknya)
> **Waktu:** ± X jam
> **Hasil lab:** apa yang ditambahkan ke `netra`
## Intinya (3–5 butir)
## 1..N. Bagian per konsep (contoh dulu, lalu penjelasan singkat; cek, animasi, playground, latihan)
## Di balik layar (mekanisme di bawah pustaka; dipakai latihan)
## N+1. Proyek: Netra Makmur (lab; "Selesai bila:"; Lab Colab untuk cara modern)
## N+2. Belajar bersama AI (tugas tanpa AI, tugas dengan AI, bandingkan)
## N+3. Pendalaman (opsional) (studi kasus rekaan, di skala enterprise)
## Rangkuman (3–7 butir)
## Sumber (dokumentasi resmi + rujukan klasik, bertanggal)
Bekerja dengan agen, pola yang sama di setiap modul. Kerjakan dulu tugas
kecil tanpa AI agar kamu tahu jawaban yang benar. Lalu minta agen menulis
kode dengan instruksi yang menyebut bentuk larik, dtype, format kotak, dan
tes yang harus gagal pada kode naif. Kesalahan agen di visi komputer hampir
tidak pernah memunculkan galat: penjumlahan uint8 yang meluap, sumbu x
dan y yang tertukar, kotak inklusif vs eksklusif, AP tanpa pencocokan
satu-satu, atau praproses inferensi yang berbeda dari pelatihan. Yang
menangkapnya adalah tes sifat, angka rujukan, dan citra sulit yang sudah kamu
kumpulkan sendiri.
Aturan isi:
- Tulis, ukur, bandingkan. Setiap operasi citra ditulis sendiri dengan
NumPy dan dicocokkan dengan
scipy.ndimageatau scikit-learn bila ada; setiap model modern dibandingkan dengan baseline di pemisahan yang sama. - Angka dari kode, bukan dari ingatan. Akurasi, ECE, IoU, AP, Dice, CER, dan latensi di prosa diambil dari contoh yang diperiksa mesin; angka rujukan ada di kontrak.
- Tes memeriksa perilaku, bukan bentuk: penjumlahan yang tidak meluap,
rotasi 360° yang kembali ke citra semula (dalam toleransi), NMS yang tidak
menghapus kelas lain, AP yang tidak menghitung satu kebenaran dua kali,
komponen terhubung yang sama dengan
scipy.ndimage.label. Kode awal yang naif harus gagal. - Keacakan selalu berbenih (
np.random.default_rng(0)). - Pustaka berat hanya di Lab, dengan versi dan tanggal cek; lisensi model dan dataset disebut (beberapa detektor populer berlisensi AGPL, beberapa dataset hanya untuk riset).
- Tanpa wajah dan tanpa orang di data, contoh, dan Lab. Keamanan dan privasi hanya dari sisi defensif.
- Studi kasus memakai skenario rekaan yang mewakili kejadian umum, ditandai rekaan.
- Sumber klasik bergantian: Szeliski Computer Vision: Algorithms and Applications (edisi ke-2, 2022); Gonzalez & Woods Digital Image Processing (edisi ke-4, 2018); Hartley & Zisserman Multiple View Geometry (2004); makalah asli di setiap modul.
- Patokan CS2023: knowledge area Artificial Intelligence (Perception and Computer Vision, Machine Learning) dan Graphics and Interactive Techniques (citra digital).
Batas cakupan
Disentuh sekilas atau di luar cakupan: geometri multi-kamera dan rekonstruksi 3D, aliran optik, model generatif citra (difusi), pelatihan detektor besar dari nol, video berskala besar, dan perangkat keras kamera. Pengenalan wajah, pengenalan identitas, pelacakan orang, dan analisis biometrik tidak diajarkan sebagai fitur; Modul 14 membahas mengapa, dan cara mengukur serta membatasi risiko sistem kamera dari sisi defensif.
Hubungan dengan course lain
| Course | Hubungan |
|---|---|
| C9 Deep Learning | Prasyarat wajib: konvolusi, CNN, PyTorch di Colab, transfer learning, kuantisasi simetris |
| C2 Machine Learning | Prasyarat wajib: regresi logistik, evaluasi, kalibrasi biner, keadilan |
| C3 AI Engineering | Dianjurkan: OCR, model vision, CER/WER, unggahan aman, privasi; C13 menautkan |
| C10 MLOps | Rujukan: penyajian model dan pemantauan kamera baru (Modul 06 dan 13) |
| C12 NLP Terapan | Course saudara: struktur, pola Lab, dan anotasi serupa; tidak saling mensyaratkan |
| K1 Struktur Data & Algoritma | Rujukan: penelusuran grid dan union-find untuk komponen terhubung (Modul 09) |
| F5 Rilis | Peralatan proyek dan Lab Tayang |
Sumber
Rujukan utama course; setiap modul mencantumkan sumbernya sendiri dengan tanggal cek.
- Szeliski, R. (2022). Computer Vision: Algorithms and Applications, edisi ke-2. Springer.
- Gonzalez, R. C., & Woods, R. E. (2018). Digital Image Processing, edisi ke-4. Pearson.
- Hartley, R., & Zisserman, A. (2004). Multiple View Geometry in Computer Vision, edisi ke-2. Cambridge University Press.
- Canny, J. (1986). A Computational Approach to Edge Detection. IEEE PAMI. Otsu, N. (1979). A Threshold Selection Method from Gray-Level Histograms. IEEE SMC.
- Dalal, N., & Triggs, B. (2005). Histograms of Oriented Gradients for Human Detection. CVPR (dipakai untuk fitur HOG; course ini tidak mendeteksi manusia).
- He, K., dkk. (2016). Deep Residual Learning for Image Recognition. CVPR. Dosovitskiy, A., dkk. (2021). An Image is Worth 16x16 Words. ICLR.
- Everingham, M., dkk. (2010). The PASCAL Visual Object Classes (VOC) Challenge. IJCV. Lin, T.-Y., dkk. (2014). Microsoft COCO. ECCV.
- Neubeck, A., & Van Gool, L. (2006). Efficient Non-Maximum Suppression. Bodla, N., dkk. (2017). Soft-NMS. ICCV.
- Ronneberger, O., Fischer, P., & Brox, T. (2015). U-Net. MICCAI. Dice, L. R. (1945). Measures of the Amount of Ecologic Association Between Species.
- Guo, C., dkk. (2017). On Calibration of Modern Neural Networks. ICML.
- Smith, R. (2007). An Overview of the Tesseract OCR Engine. ICDAR.
- Kuhn, H. W. (1955). The Hungarian Method for the Assignment Problem. Bewley, A., dkk. (2016). Simple Online and Realtime Tracking. ICIP. Bernardin, K., & Stiefelhagen, R. (2008). Evaluating Multiple Object Tracking Performance: The CLEAR MOT Metrics.
- Jacob, B., dkk. (2018). Quantization and Training of Neural Networks for Efficient Integer-Arithmetic-Only Inference. CVPR.
- Hendrycks, D., & Dietterich, T. (2019). Benchmarking Neural Network Robustness to Common Corruptions and Perturbations. ICLR.
- Northcutt, C., Jiang, L., & Chuang, I. (2021). Confident Learning: Estimating Uncertainty in Dataset Labels. JAIR.
- Gebru, T., dkk. (2021). Datasheets for Datasets. CACM. Mitchell, M., dkk. (2019). Model Cards for Model Reporting. FAT*.