Atasan saya melempar sebuah tantangan ringan tapi krusial: bisakah kita membangun proof of concept untuk deteksi APD?
Konteksnya sangat praktis. Di titik masuk area kerja seluruh grup perusahaan kami, kepatuhan keselamatan dicek secara manual oleh petugas di gerbang. Mereka melihat langsung apakah pekerja memakai alat pelindung diri sebelum mengizinkan masuk. Proses ini lambat. Hasilnya tidak konsisten. Dan semuanya bergantung penuh pada siapa yang sedang bertugas. Lewatkan satu orang tanpa helm keselamatan, dan itu adalah insiden yang tinggal menunggu waktu.
Jika sebuah prototipe bisa mengotomatisasi pengecekan visual tersebut, ini bukan sekadar demo teknologi yang keren. Sistem ini bisa diterapkan di setiap gerbang masuk di puluhan lokasi, mencakup ribuan pekerja yang berlalu lalang setiap harinya. Itulah yang membuat proyek ini sangat bernilai untuk dieksekusi.
Kenapa Tidak Menggunakan Server Saja?
Pendekatan enterprise konvensional sebenarnya sangat lurus. Siapkan server dengan GPU khusus, alirkan video dari kamera ke server, jalankan model deteksi di sisi server, dan kirim kembali hasilnya. Ini adalah arsitektur yang sudah terbukti dan memiliki dokumentasi yang sangat baik.
Namun untuk sebuah proof of concept, pendekatan ini penuh dengan hambatan. Anda butuh pengadaan infrastruktur sebelum bisa menguji apa pun. Menyewa GPU di cloud berarti menanggung biaya berulang sejak hari pertama. Dan ada kewajiban privasi data masif yang sulit diabaikan: Anda mengirimkan rekaman video langsung dari para pekerja ke server jarak jauh. Di perusahaan yang sangat ketat soal tata kelola data, diskusi privasi ini saja bisa menunda proyek berbulan bulan lamanya.
Saya membutuhkan sesuatu yang bisa bergerak dari sekadar ide menjadi demo yang berfungsi dengan dependensi seminimal mungkin.
Bagaimana Jika Browser Adalah Komputernya?
Saya sudah cukup lama bereksperimen dengan machine learning dan komputasi edge di waktu luang. Melalui proyek mandiri tersebut, saya menemukan TensorFlow.js. Ini adalah sebuah pustaka yang mampu menjalankan model AI terlatih secara langsung di dalam browser, memanfaatkan GPU bawaan dari perangkat itu sendiri. Chip yang sama persis untuk merender halaman web dan memutar video juga bisa menjalankan inferensi neural network. Tanpa melibatkan server eksternal sama sekali.
Apa yang awalnya sekadar hobi ternyata menjadi alat yang paling tepat untuk masalah skala enterprise ini.
Latih model deteksinya, ekspor untuk browser, dan jalankan keseluruhan sistem sebagai situs statis. Seluruh sistem berubah menjadi satu URL sederhana. Buka tautan tersebut di perangkat apa pun yang memiliki kamera, dan sistem langsung bekerja. Tanpa instalasi klien, tanpa persetujuan app store, tanpa pengadaan rumit dari tim IT. Rilis, dapatkan umpan balik, dan lakukan iterasi.
Dan karena target deteksi sepenuhnya berada di dalam file model dan bukan di kode aplikasi, sistem yang sama persis bisa dilatih ulang untuk mendeteksi apa saja mulai dari helm, kacamata pelindung, hingga rompi visibilitas tinggi. Cukup ganti file modelnya, rilis ulang, dan selesai.
Arsitekturnya sudah sangat jelas. Bagian tersulitnya adalah membangun segala sesuatu di antara proses tersebut.
Membangun Model Deteksi
Sistem ini perlu mendeteksi tiga item inti dari alat pelindung diri. Kami belum memiliki perlengkapan lapangan standar yang tersedia saat itu, jadi saya menggunakan barang barang kantor sebagai pengganti sementara untuk membuktikan bahwa alur kerjanya berfungsi. Menggantinya dengan APD asli di kemudian hari hanyalah masalah melatih ulang model dengan foto foto yang baru.
- Kacamata (Kacamata pelindung biasa): Tantangannya adalah ukurannya kecil, transparan, dan mudah tertutup oleh kontur wajah.
- Rompi (Rompi kantor standar): Tantangannya adalah mendeteksi lapisan kain di atas pakaian yang terlihat jelas namun tidak memiliki material reflektif.
- Topi (Topi putih): Tantangannya melibatkan identifikasi penutup kepala yang posisinya selalu konsisten di bagian paling atas dari tangkapan layar.
Ketika ketiga item tersebut terdeteksi di kamera, layar akan berubah menjadi hijau dengan tulisan Akses Dibuka. Ada item yang kurang? Layar akan tetap gelap dengan indikator visual yang sangat jelas tentang apa yang belum terdeteksi.
Namun sebelum semua itu bisa berjalan, saya membutuhkan model yang sudah terlatih. Dan sebuah model membutuhkan data.
Satu Malam dan 96 Foto Potret Diri
Model deteksi objek membutuhkan ratusan foto berlabel untuk mempelajari pola visual. Saya tidak memiliki dataset khusus, studio fotografi, atau bahkan asisten untuk membantu mengambil gambar.
Jadi saya mengumpulkan ketiga barang tersebut, memasang kamera ponsel pintar di rumah, dan mulai memotret diri saya sendiri dalam setiap kombinasi yang bisa saya pikirkan. Ketiga item terpakai, hanya dua, hanya satu, dan tidak memakai apa pun. Menghadap depan, profil samping, mendongak, menunduk, bidikan jarak dekat, dan sudut yang lebih lebar. Setiap pose yang bisa saya lakukan sendirian.
Tujuannya adalah menangkap kondisi dunia nyata yang berantakan. Potret yang bersih dan memiliki pencahayaan sempurna sangat mudah diproses oleh model AI. Seseorang yang tertangkap kamera dari sudut canggung dengan kacamata yang melorot di hidung adalah tantangan yang sesungguhnya.

Pekerjaan Membosankan Bernama Pelabelan
Setiap foto membutuhkan kotak pembatas yang digambar secara manual mengelilingi setiap perlengkapan, dan ditandai dengan cermat menggunakan kelas yang benar: Kacamata, Rompi, atau Topi. Setiap kotak ditarik murni dengan tangan.
Tidak ada jalan pintas di fase ini. Kualitas label Anda secara langsung mendikte kualitas model Anda. Kotak pembatas yang asal asalan sudah pasti menjamin deteksi AI yang asal asalan juga.
Iterasi dan Mengatasi Kegagalan
Saya memasukkan 96 gambar awal yang sudah dilabeli tersebut ke dalam arsitektur YOLOv8 Nano dan memulai urutan pelatihan. Dua putaran pertama adalah kegagalan total. Metrik presisi dan recall berada di angka yang mendekati nol. Model tersebut sama sekali tidak memiliki volume contoh yang cukup untuk membangun pola visual.
Ini adalah momen persis di mana Anda mulai mempertanyakan keseluruhan pendekatan. Tetapi kelemahannya bukan pada arsitektur teknisnya. Kelemahannya ada pada volume data.
Meningkatkan Skala Dataset
Saya memutar strategi dan memotret setiap barang secara individual, menempatkannya di berbagai permukaan yang berbeda di seluruh ruangan. Kacamata diletakkan rata di atas meja, disandarkan ke monitor, atau dipegang di tangan. Rompi digelar di lantai, digantung di gantungan baju, atau disampirkan di atas kursi. Saya mengambil 192 foto jarak dekat tambahan untuk memberikan konteks terisolasi bagi setiap barang kepada model tersebut.

Berbekal 288 gambar yang dilabeli dengan presisi, saya mengeksekusi putaran pelatihan ketiga dan keempat. Lompatan performanya sangat definitif.
- Presisi: Naik tajam ke 91.4% pada putaran akhir.
- Recall: Berada di angka 45.9%.
- mAP50: Mencapai 57.4%.

Mencapai presisi 91.4% pada iterasi keempat adalah sebuah terobosan. Meskipun tidak sempurna, angka ini secara matematis cukup kuat untuk membuktikan konsep bisnisnya. Ini bukan kompetisi algoritma Kaggle. Sistem ini hanya perlu membuktikan bahwa ia bisa bekerja dengan andal.

Saya mengekspor model tersebut ke dalam format TensorFlow.js yang siap dijalankan di browser. Bobot neural network ini dikompilasi menjadi tiga file biner dengan total ukuran hanya 12MB. Sangat kecil sehingga browser rata rata bisa mengunduhnya dalam hitungan detik, namun cukup padat untuk mempertahankan akurasi yang tinggi.
Merekayasa Pengalaman Browser
Menjalankan AI di browser menggunakan fondasi WebGL mengambil alih GPU perangkat dan memanfaatkannya kembali untuk inferensi AI lokal. Tidak ada data yang pernah keluar dari perangkat keras tersebut. Setiap bingkai yang ditangkap oleh kamera web diproses melalui alur kerja lokal yang sangat ketat. Sistem menangkap bingkai gambar, menyesuaikan ukuran, menormalisasi piksel, dan menjalankan inferensinya. Sistem kemudian menyaring deteksi yang tumpang tindih dan menggambar kotak pembatas akhir.
Model ini mengevaluasi 8.400 kemungkinan area deteksi per bingkai secara real time. Mengeksekusi proses ini tanpa cela membutuhkan penyelesaian dua rintangan rekayasa yang sangat kritis.
Ambang Batas Kepercayaan Dinamis
Awalnya, saya menerapkan satu ambang batas kepercayaan universal untuk ketiga item. Pendekatan ini langsung gagal. Memperlakukan ketiganya secara setara berarti sistem gagal melihat kacamata sama sekali atau justru berhalusinasi melihat topi pada setiap benda bulat di dalam ruangan. Menyesuaikan ambang batas ini memecahkan disparitas akurasi tersebut.
- Kacamata di angka 0.20: Kecil dan transparan. Ambang batas yang terlalu ketat menyebabkan sistem terus menerus melewatkan deteksi yang valid.
- Rompi di angka 0.50: Tanpa garis reflektif, model harus murni mengandalkan bentuk dan konteks pelapisan pakaian.
- Topi di angka 0.80: Sangat khas secara visual. Apa pun yang tercatat di bawah keyakinan 80% kemungkinan besar adalah deteksi palsu.
Optimalisasi Perangkat Keras
Memproses neural network di dalam tab browser dengan kapasitas maksimum akan dengan cepat memicu panas berlebih dan membekukan perangkat standar. Saya menerapkan dua pengaman esensial untuk memperbaikinya.
Pertama, saya membatasi sistem pada kecepatan 12 Bingkai Per Detik. Untuk seorang pekerja yang berdiri di pos pemeriksaan keamanan, 60 bingkai per detik adalah pemborosan komputasi. Menahan laju putaran ini menghemat daya baterai, menjaga kipas pendingin tetap sunyi, dan mencegah perlambatan akibat panas berlebih.
Kedua, saya merekayasa pembersihan memori GPU secara otomatis. Model AI akan membocorkan memori jika kalkulasi perantara tidak dibersihkan secara agresif. Dengan mengelola siklus hidup memori secara ketat menggunakan protokol manajemen memori, browser tetap stabil beroperasi tanpa batas waktu.
Satu detail terakhir: mengeksekusi inferensi pancingan saat proses startup memaksa GPU untuk mengkompilasi alur kerjanya lebih awal, memastikan bingkai video asli pertama diproses tanpa patah patah.
Hasil Tingkat Eksekutif
Ketika saya mempresentasikan prototipe yang sudah berfungsi ini kepada atasan saya, hal pertama yang dia tanyakan adalah, "Server mana yang menanggung beban komputasi ini?"
Raut wajahnya saat saya menjawab "Tidak ada sama sekali" adalah puncak kepuasan dari proyek ini.
Umpan video tidak pernah sekalipun meninggalkan perangkat keras lokal. Biaya pemrosesan cloud benar benar nol. Pemeliharaan server tidak pernah ada. Kami merilisnya ke hosting statis, memberikan tautan URL kepada para pemangku kepentingan, dan sistem ini beroperasi tanpa celah.
Tanpa application server. Tanpa orkestrasi container. Tanpa biaya sewa GPU. Hanya teknologi web standar dan model sebesar 12MB di dalam folder statis.
Berikut adalah sistem yang berjalan langsung pada iPad Air 2020 standar yang berdiri sendiri. Tanpa GPU eksternal, tanpa koneksi cloud, dan tanpa perangkat keras khusus. Hanya tablet ritel biasa, browser web, dan sebuah URL.
Cetak Biru untuk Skalabilitas Enterprise
Prototipe ini berhasil membuktikan konsepnya. Pertanyaan lanjutan dari jajaran pimpinan adalah bagaimana cara menggelar sistem ini ke seluruh penjuru grup perusahaan masif yang memiliki banyak anak perusahaan, lokasi terpencil, dan ribuan personel. Arsitektur ini memberikan keuntungan yang belum pernah ada sebelumnya untuk skalabilitas skala enterprise.
Keamanan dan Privasi Mutlak
Dalam peluncuran skala enterprise, keamanan biasanya menjadi hambatan paling utama. Di sini, keamanan justru menjadi aset terbesar kita.
Tidak ada data video yang keluar dari perangkat lokal. Umpan kamera web mengalir langsung ke dalam model yang terisolasi di dalam tab browser. Tidak ada pemanggilan API, tidak ada unggahan cloud, dan tidak ada celah serangan backend yang bisa dieksploitasi. Saat pengguna menutup browser, data tersebut lenyap seketika.
Sistem ini tidak melakukan pengenalan wajah atau mengumpulkan data pribadi. Sistem tidak mengidentifikasi siapa yang memakai peralatan tersebut. Ia hanya mendeteksi apakah ketiga barang tersebut hadir di dalam bingkai layar.
Implementasi Tanpa Hambatan
Skalabilitasnya bersifat linear dan menelan biaya marjinal nol rupiah. Departemen IT tidak perlu menyediakan server atau mengelola konfigurasi perangkat yang rumit.
Peluncuran ke lokasi industri baru hanya membutuhkan pembagian satu URL. Setiap pengguna baru membawa kekuatan komputasi mereka sendiri melalui GPU perangkat lokal. Mengembangkan sistem dari sepuluh pengguna menjadi sepuluh ribu pengguna sama sekali tidak membutuhkan perubahan infrastruktur. Beban unduhan awal hanya sekitar 12MB, dan setelah itu, browser menyimpan semuanya di memori cache untuk akses instan yang bahkan bisa berfungsi tanpa koneksi internet.
Jalan Ke Depan
Melatih ulang model untuk mendeteksi peralatan keselamatan asli yang spesifik di setiap lokasi adalah langkah logis selanjutnya. Arsitektur ini dengan mudah mengakomodasi kustomisasi untuk setiap anak perusahaan. Pabrik kimia dapat menggunakan model yang dilatih untuk mendeteksi pakaian hazmat, sementara lokasi konstruksi menggunakan model untuk helm proyek. Setiap lokasi mendapatkan file model statisnya masing masing menggunakan pola implementasi yang sama persis.
Di luar prototipe awal ini, penambahan fitur seperti pencatatan kepatuhan log atau dasbor pelaporan terpusat pada akhirnya akan mengintroduksi kebutuhan server dan basis data. Namun, semua fitur tersebut bisa ditambahkan secara bertahap.
Objektif utamanya dirancang untuk membuktikan bagian tersulitnya terlebih dahulu: bisakah sebuah browser menjalankan deteksi objek secara real time dengan andal di komputasi edge? Jawabannya adalah ya, secara definitif.
Mengapa Pilihan Arsitektur Ini Sangat Penting
Tidak ada sensasi Generative AI di sini. Tidak ada Large Language Models, tidak ada rekayasa prompt, dan tidak ada halusinasi sistem. Ini adalah machine learning klasik yang deterministik. Ia dibangun dengan satu tujuan spesifik untuk melakukan satu hal saja dengan sangat andal.
Elegansi rekayasa yang sesungguhnya bukan tentang menggunakan teknologi paling kompleks yang tersedia di pasaran. Ini adalah tentang menemukan jalur tercepat menuju solusi yang berfungsi dengan jumlah ketergantungan absolut seminimal mungkin dan hambatan serendah mungkin.
Dengan menggeser proses inferensi AI dari cloud langsung ke browser edge, kami berhasil mengeleminasi biaya server, latensi jaringan, dan kewajiban privasi data dalam satu keputusan arsitektur tunggal. Apa yang tersisa adalah sistem dengan skalabilitas luar biasa yang hanya membutuhkan waktu hitungan menit untuk diluncurkan dan tidak menelan biaya operasi sama sekali.
Solusi enterprise yang paling optimal hanyalah sebuah URL. Dan persis itulah yang kami wujudkan.
Tech Stack: Svelte 5 * SvelteKit * TensorFlow.js * YOLOv8 * Tailwind CSS 4 * Cloudflare Pages