Computer Vision Modern: Dari CNN hingga Vision Transformer

Computer vision — kemampuan komputer "melihat" dan memahami isi gambar atau video — adalah salah satu cabang AI yang mengalami transformasi paling dramatis dalam satu dekade terakhir. Dari sistem yang dulu kesulitan membedakan kucing dan anjing, kini kita punya model yang bisa mendeteksi tumor di citra medis dengan akurasi setara radiolog berpengalaman, mobil yang bisa "membaca" jalanan secara real-time, dan sistem yang bisa menghasilkan gambar fotorealistik dari deskripsi teks. Di balik semua kemajuan ini ada evolusi arsitektur yang menarik untuk dipahami: dari Convolutional Neural Network (CNN) yang mendominasi selama hampir satu dekade, hingga kemunculan Vision Transformer (ViT) yang mengadaptasi arsitektur transformer — awalnya dirancang untuk teks — ke domain visual. Artikel ini membahas perjalanan itu secara mendalam.
Sejarah Singkat Computer Vision
Upaya awal computer vision di era 1960-1980an mengandalkan pendekatan berbasis aturan dan ekstraksi fitur manual (edge detection, deteksi tepi, template matching) — pendekatan yang sangat terbatas karena tidak bisa menggeneralisasi ke variasi pencahayaan, sudut, atau oklusi objek di dunia nyata. Titik balik besar terjadi pada 2012 ketika AlexNet, sebuah CNN dalam yang dilatih oleh Alex Krizhevsky, Ilya Sutskever, dan Geoffrey Hinton, memenangkan kompetisi ImageNet Large Scale Visual Recognition Challenge (ILSVRC) dengan margin error yang jauh lebih rendah dibanding pendekatan tradisional — momen ini sering disebut sebagai awal dari "era deep learning" di computer vision secara luas.
Convolutional Neural Network (CNN)
Konsep Dasar: Convolution, Pooling, dan Feature Maps
CNN dirancang khusus untuk memproses data berstruktur grid seperti gambar. Komponen utamanya:
- Convolutional layer — menerapkan filter/kernel kecil (misalnya 3x3 piksel) yang "digeser" ke seluruh gambar, mendeteksi pola lokal seperti tepi, tekstur, atau gradien warna. Filter yang sama dipakai berulang di seluruh area gambar (weight sharing), membuat CNN jauh lebih efisien secara parameter dibanding fully-connected network untuk gambar berukuran besar.
- Feature map — hasil output dari operasi konvolusi, merepresentasikan seberapa kuat suatu pola terdeteksi di setiap lokasi gambar.
- Pooling layer — mengurangi dimensi spasial feature map (misalnya max pooling mengambil nilai maksimum dari tiap area 2x2), membuat representasi lebih ringkas dan sedikit lebih tahan terhadap pergeseran posisi objek kecil (translation invariance).
- Hierarki fitur — layer awal CNN mendeteksi pola sederhana (tepi, sudut, warna), layer tengah mendeteksi pola lebih kompleks (tekstur, bentuk bagian objek), dan layer akhir mendeteksi konsep tingkat tinggi (wajah, roda mobil, mata kucing).
Evolusi Arsitektur CNN Populer
- LeNet-5 (1998) — dirancang Yann LeCun untuk pengenalan digit tulisan tangan, salah satu CNN paling awal yang berhasil diterapkan praktis (dipakai bank untuk membaca cek).
- AlexNet (2012) — memenangkan ImageNet 2012, memperkenalkan penggunaan ReLU activation dan dropout dalam skala besar, dilatih di GPU untuk pertama kalinya secara masif.
- VGGNet (2014) — menunjukkan bahwa menumpuk banyak convolutional layer kecil (3x3) secara berurutan bisa mencapai performa sangat baik, meski dengan jumlah parameter besar.
- GoogLeNet / Inception (2014) — memperkenalkan modul "Inception" yang menjalankan beberapa ukuran filter secara paralel dalam satu layer, meningkatkan efisiensi komputasi.
- ResNet (2015) — oleh Kaiming He dkk, memperkenalkan skip connection (residual connection) yang memungkinkan gradient mengalir langsung melewati beberapa layer, mengatasi masalah vanishing gradient dan memungkinkan network dengan ratusan layer dilatih secara efektif — sebuah terobosan besar.
- EfficientNet (2019) — oleh Tan & Le, memperkenalkan compound scaling, metode sistematis menyeimbangkan kedalaman, lebar, dan resolusi network untuk mendapat efisiensi parameter terbaik relatif terhadap akurasi.
Masalah CNN dan Kemunculan Transformer di Domain Visual
Meski sangat sukses, CNN punya keterbatasan struktural: inductive bias lokal dari operasi konvolusi membuatnya secara alami baik menangkap pola lokal, tapi kurang efisien menangkap hubungan jarak jauh (long-range dependency) antar bagian gambar yang berjauhan — misalnya hubungan antara objek di sudut kiri atas dan kanan bawah gambar. Untuk menangkap ini, CNN butuh banyak layer bertumpuk agar "receptive field"-nya cukup besar. Sementara itu, di domain teks, arsitektur Transformer (Vaswani et al., 2017) sudah terbukti sangat unggul menangkap hubungan jarak jauh lewat mekanisme self-attention, yang menghitung relevansi antar semua pasangan token secara langsung tanpa batasan jarak.
Vision Transformer (ViT)
Pada 2020, tim Google Brain memperkenalkan Vision Transformer lewat paper berjudul "An Image is Worth 16x16 Words" (Dosovitskiy et al., 2020), yang mengadaptasi arsitektur transformer murni ke domain gambar tanpa komponen konvolusi sama sekali.
Patch Embedding
Alih-alih memproses gambar piksel demi piksel, ViT memotong gambar menjadi grid patch kecil (misalnya 16x16 piksel), lalu setiap patch "diratakan" (flatten) menjadi vector dan diproyeksikan menjadi embedding — persis seperti bagaimana setiap kata/token diperlakukan di transformer teks. Patch-patch ini kemudian diperlakukan sebagai "kalimat" berisi rangkaian "kata visual" yang diproses transformer standar.
Self-Attention pada Gambar
Setiap patch bisa langsung "memperhatikan" (attend) semua patch lain di gambar sejak layer pertama, tanpa perlu ditumpuk berlapis-lapis seperti pada CNN untuk mendapat receptive field global. Ini memungkinkan ViT menangkap hubungan kontekstual jarak jauh secara jauh lebih natural dibanding CNN.
Positional Embedding
Karena self-attention secara inheren tidak tahu urutan/posisi, ViT menambahkan positional embedding ke setiap patch embedding agar model tetap tahu di mana posisi spasial tiap patch dalam gambar asli.
Kelemahan utama ViT versi awal: karena tidak punya inductive bias lokal seperti CNN (yang secara struktural "tahu" bahwa piksel berdekatan cenderung berhubungan), ViT butuh dataset training yang jauh lebih besar untuk mencapai performa setara CNN. Pada dataset kecil-menengah, CNN klasik seperti ResNet masih sering unggul; ViT baru benar-benar unggul ketika dilatih pada dataset skala sangat besar (jutaan hingga miliaran gambar).
Perbandingan CNN vs Vision Transformer
| Aspek | CNN | Vision Transformer |
|---|---|---|
| Inductive bias | Kuat (lokalitas, translation invariance) | Minimal, harus dipelajari dari data |
| Kebutuhan data training | Relatif lebih sedikit | Butuh dataset sangat besar untuk unggul |
| Menangkap hubungan jarak jauh | Kurang efisien, butuh banyak layer | Native lewat self-attention |
| Efisiensi komputasi (dataset kecil) | Lebih baik | Cenderung kalah tanpa pretraining besar |
| Skalabilitas ke dataset besar | Baik, tapi cenderung saturasi | Sangat baik, terus meningkat seiring skala data |
Arsitektur Hybrid: Menggabungkan Kelebihan Keduanya
Menyadari trade-off di atas, muncul arsitektur hybrid yang mencoba mengambil kelebihan CNN dan Transformer sekaligus:
- Swin Transformer (2021) — oleh Liu et al., memperkenalkan self-attention berbasis shifted window yang dihitung secara lokal dalam jendela kecil (mirip konvolusi) lalu digeser antar layer untuk tetap menangkap konteks global secara hierarkis, sekaligus jauh lebih efisien secara komputasi dibanding self-attention global penuh pada ViT original.
- ConvNeXt (2022) — pendekatan sebaliknya: memodernisasi arsitektur CNN klasik dengan "meminjam" desain training dan beberapa prinsip dari Transformer (seperti layer normalization dan rasio desain block tertentu), menunjukkan bahwa CNN yang dimodernisasi dengan baik masih bisa bersaing ketat dengan Transformer pada banyak benchmark.
Pelajaran penting dari perkembangan ini: bukan berarti Transformer "menggantikan" CNN sepenuhnya — kedua paradigma terus saling menginspirasi, dan pilihan arsitektur terbaik sangat bergantung pada skala data dan sumber daya komputasi yang tersedia.
Self-Supervised Learning: Mengurangi Ketergantungan pada Label
Salah satu hambatan terbesar computer vision adalah kebutuhan data berlabel manusia dalam jumlah besar, proses yang mahal dan memakan waktu. Self-supervised learning mencoba mengatasi ini dengan melatih model dari gambar tanpa label sama sekali, menciptakan "tugas pura-pura" (pretext task) dari data itu sendiri:
- Contrastive learning — model dilatih agar representasi dari dua versi augmentasi gambar yang sama (misalnya di-crop atau diubah warnanya) berada berdekatan di ruang embedding, sementara representasi dari gambar berbeda berjauhan.
- DINO (Self-Distillation with No Labels), dikembangkan Meta AI, melatih model lewat mekanisme "guru-murid" tanpa label eksplisit, dan secara mengejutkan menghasilkan feature map yang mampu mensegmentasi objek secara implisit meski tidak pernah diberi anotasi segmentasi sama sekali.
- Masked Autoencoder (MAE), terinspirasi dari teknik masked language modeling di NLP, melatih model dengan menyembunyikan sebagian besar patch gambar (bisa 75% atau lebih) dan meminta model merekonstruksi bagian yang hilang, memaksa model mempelajari representasi visual yang benar-benar bermakna, bukan sekadar menghafal.
Model yang sudah dilatih dengan self-supervised learning ini kemudian bisa di-fine-tune dengan dataset berlabel yang jauh lebih kecil untuk task spesifik, jauh lebih efisien dibanding melatih dari awal dengan data berlabel penuh.
Object Detection dan Segmentation: Evolusi Arsitektur
Selain klasifikasi gambar sederhana, tugas mendeteksi dan melokalisasi banyak objek sekaligus dalam satu gambar punya sejarah evolusi arsitekturnya sendiri:
- R-CNN family (R-CNN, Fast R-CNN, Faster R-CNN) — pendekatan dua tahap: pertama mengusulkan area kandidat yang kemungkinan berisi objek (region proposal), lalu mengklasifikasikan tiap area tersebut. Akurat tapi relatif lambat untuk aplikasi real-time.
- YOLO (You Only Look Once) — pendekatan satu tahap yang memprediksi lokasi dan kelas objek sekaligus dalam satu forward pass, jauh lebih cepat dan cocok untuk aplikasi real-time seperti video surveillance atau mobil otonom, meski historisnya sedikit kurang akurat dibanding pendekatan dua tahap untuk objek kecil (gap ini terus menyempit di versi-versi YOLO terbaru).
- DETR (Detection Transformer), oleh Facebook AI (2020), mengaplikasikan arsitektur transformer langsung ke object detection, menghilangkan kebutuhan komponen hand-crafted seperti non-maximum suppression yang lazim dipakai arsitektur sebelumnya, menyederhanakan pipeline deteksi secara signifikan.
- Segment Anything Model (SAM), dirilis Meta AI (2023), adalah model segmentasi generalis yang dilatih pada lebih dari satu miliar mask dari 11 juta gambar, mampu mensegmentasi objek apa pun dalam gambar hanya dengan satu klik atau kotak sebagai prompt, tanpa perlu dilatih ulang untuk kategori objek baru — sebuah lompatan besar menuju model vision yang benar-benar general-purpose, mirip peran GPT di dunia NLP.
Model Multimodal: Menjembatani Visual dan Bahasa
Perkembangan paling signifikan beberapa tahun terakhir adalah model yang tidak lagi memperlakukan computer vision sebagai domain terisolasi, melainkan menyatukannya dengan pemahaman bahasa:
- CLIP (Contrastive Language-Image Pretraining), oleh OpenAI (2021), dilatih pada jutaan pasangan gambar-teks dari internet, mempelajari ruang embedding bersama di mana gambar dan deskripsi teksnya saling berdekatan. Ini menjadi fondasi teknologi text-to-image generation modern (seperti DALL-E dan Stable Diffusion) dan memungkinkan pencarian gambar berbasis deskripsi natural language tanpa perlu label kategori yang telah ditentukan sebelumnya (zero-shot classification).
- Vision-Language Model (VLM) generasi terbaru seperti GPT-4V, Claude dengan kemampuan vision, dan LLaVA menggabungkan encoder visual (biasanya berbasis ViT) dengan LLM, memungkinkan model menjawab pertanyaan kompleks tentang isi gambar, membaca teks dalam gambar (OCR terintegrasi), hingga menganalisis grafik dan diagram dalam satu percakapan natural.
Tren ini menunjukkan arah masa depan computer vision: bukan lagi sebagai bidang yang berdiri sendiri, melainkan satu komponen dalam sistem AI multimodal yang memahami dunia lewat kombinasi visual, teks, dan modalitas lainnya sekaligus.
Aplikasi Praktis Computer Vision Modern
- Image classification — mengklasifikasikan gambar ke dalam kategori (dasar dari hampir semua task CV lain).
- Object detection — mendeteksi dan melokalisasi banyak objek dalam satu gambar, dipakai luas di retail, keamanan, dan kendaraan otonom.
- Semantic & instance segmentation — mengklasifikasikan setiap piksel gambar ke kategori tertentu, dipakai luas di citra medis dan mobil otonom.
- Vision-language applications — pencarian gambar berbasis teks, image captioning otomatis, dan asisten visual untuk pengguna dengan gangguan penglihatan.
Contoh Implementasi: Fine-Tuning ViT dengan PyTorch
import torch
from transformers import ViTForImageClassification, ViTImageProcessor
processor = ViTImageProcessor.from_pretrained("google/vit-base-patch16-224")
model = ViTForImageClassification.from_pretrained(
"google/vit-base-patch16-224",
num_labels=10, # jumlah kelas kustom
ignore_mismatched_sizes=True
)
def preprocess(image):
inputs = processor(images=image, return_tensors="pt")
return inputs["pixel_values"]
# forward pass sederhana
pixel_values = preprocess(sample_image)
outputs = model(pixel_values=pixel_values)
predicted_class = torch.argmax(outputs.logits, dim=-1)
print(f"Prediksi kelas: {predicted_class.item()}")
Perhatikan bagaimana gambar diproses menjadi pixel_values yang kemudian secara internal dipecah menjadi patch 16x16 sebelum masuk ke layer transformer — proses yang sama seperti tokenisasi teks, hanya saja "token"-nya berupa potongan gambar.
Transfer Learning: Kenapa Jarang Melatih dari Nol
Baik pada CNN maupun ViT, praktik standar industri hampir tidak pernah melatih model computer vision dari bobot acak (from scratch) untuk kasus penggunaan spesifik, kecuali Anda punya dataset dan sumber daya komputasi dalam skala penelitian besar. Sebaliknya, pendekatan yang jauh lebih umum adalah transfer learning: mengambil model yang sudah dilatih pada dataset masif seperti ImageNet (berisi lebih dari satu juta gambar dengan seribu kategori) atau dataset self-supervised berskala lebih besar lagi, lalu melakukan fine-tuning hanya pada beberapa layer terakhir (atau seluruh network dengan learning rate kecil) menggunakan dataset yang jauh lebih kecil dan spesifik terhadap domain Anda — misalnya mengenali jenis produk retail tertentu atau anomali pada citra medis spesifik.
Alasan transfer learning begitu efektif adalah karena layer-layer awal model yang dilatih pada dataset besar sudah mempelajari fitur visual umum (tepi, tekstur, bentuk dasar) yang berguna untuk hampir semua task visual, terlepas dari domain akhirnya. Hanya layer-layer akhir yang benar-benar perlu "disesuaikan ulang" untuk mengenali kategori spesifik yang Anda butuhkan. Pendekatan ini memangkas kebutuhan data berlabel secara drastis — seringkali cukup beberapa ratus hingga beberapa ribu gambar per kategori, dibanding jutaan gambar yang dibutuhkan melatih dari nol — sekaligus memangkas waktu training dari berminggu-minggu menjadi hitungan jam. Strategi umum saat fine-tuning adalah membekukan sebagian besar layer awal (yang menyimpan fitur visual generik) dan hanya melatih layer-layer terakhir dengan learning rate kecil, atau melakukan "discriminative fine-tuning" di mana layer yang lebih dalam diberi learning rate lebih besar dibanding layer awal yang sudah cukup matang representasinya.
Tantangan dan Arah Masa Depan
Beberapa tantangan yang masih aktif diteliti: efisiensi komputasi self-attention yang tumbuh kuadratik terhadap jumlah patch (masalah yang juga dihadapi transformer teks), kebutuhan data berlabel yang masif untuk mencapai performa terbaik (mendorong riset self-supervised learning seperti DINO dan MAE), robustness terhadap serangan adversarial dan pergeseran distribusi data, serta kebutuhan model yang bisa berjalan efisien di perangkat edge/mobile dengan sumber daya terbatas. Arah riset terbaru juga semakin mengarah ke model multimodal yang menyatukan pemahaman visual dan bahasa dalam satu sistem, alih-alih memperlakukan computer vision sebagai domain terpisah dari NLP.
Kesimpulan
Perjalanan computer vision dari CNN ke Vision Transformer bukan cerita "teknologi lama digantikan teknologi baru" secara sederhana, melainkan evolusi trade-off yang terus disempurnakan. CNN unggul dengan inductive bias lokal yang efisien untuk dataset berukuran sedang, sementara ViT unggul menangkap hubungan kontekstual jarak jauh ketika dilatih pada data berskala sangat besar. Arsitektur hybrid seperti Swin Transformer dan ConvNeXt menunjukkan bahwa masa depan computer vision kemungkinan besar bukan soal memilih satu paradigma secara eksklusif, melainkan mengombinasikan kekuatan keduanya sesuai kebutuhan skala data, latency, dan sumber daya komputasi yang tersedia. Bagi developer yang membangun sistem computer vision, pertanyaan yang lebih penting dari "CNN atau Transformer" adalah: seberapa besar dataset yang saya punya, seberapa ketat batasan latency dan komputasi saya, dan task spesifik apa yang sedang saya selesaikan.

Ditulis oleh
@nopal
Ruang Iklan Tersedia
Hubungi Admin untuk menempatkan banner iklan atau Adsense Anda di sini.
Bagaimana pendapat Anda tentang artikel ini?
Komentar Pembaca (0)
Belum ada komentar. Jadilah yang pertama!