LatihIsyarat
Public sourceAplikasi pengenalan isyarat offline: 24 huruf ASL statis dan pengembangan gerakan J/Z pada branch terpisah.
Proyek pembelajaran berbasis proyek (PBL) di kampus untuk penilaian kenaikan semester.
Sorotan kontribusi saya
- Mengerjakan preprocessing gambar, klasifikasi TensorFlow Lite, pemetaan label, dan validasi identifier model.
- Menyusun training/evaluasi GRU J/Z, kontrak fitur sekuens, label/metadata, split per video, dan konversi TFLite termasuk float16.
- Mengintegrasikan latihan target J/Z serta mode bebas dengan kontrol klip, timeout, penolakan hasil lama, dan pembatalan sesi.
Daftar isi · 8 modul kontribusi
Gambaran alur utama
6 langkahInput kamera/foto diproses menjadi prediksi huruf dan riwayat latihan. Jalur pose statis dan gerakan J/Z dibedakan sesuai branch implementasinya.
01Tangkap input latihan
Pilih kamera atau foto
PenggunaTemukan tangan yang bisa diproses
Detector tangan
02Kenali pose atau gerakan
Siapkan input model
Preprocessor aplikasiJalankan inferensi offline
TensorFlow Lite
03Tampilkan dan simpan latihan
Baca hasil dan panduan
Aplikasi FlutterRiwayat dan progres lokal
SQLite & state aplikasi
Rincian proses dan percabangan
Pilih kamera atau fotoPengguna
Mulai latihan melalui kamera atau gunakan foto/unggahan. Jalur dinamis memerlukan klip gerakan dengan awal dan akhir yang dikendalikan pengguna.
Temukan tangan yang bisa diprosesDetector tangan
Deteksi area atau landmark tangan menjadi dasar masukan pengenalan.
Input tangan tersedia?
- Terdeteksi. Lanjutkan ke preprocessing sesuai jalur pengenalan.
- Belum layak diproses. Input tidak menghasilkan pengenalan yang dapat dipakai; pengguna perlu memperbaiki posisi atau gambar.
Siapkan input modelPreprocessor aplikasi
Bentuk masukan menyesuaikan jenis huruf yang dikenali.
Jalur pengenalan yang digunakan?
- Pose statis · default branch. Area tangan diproses menjadi input classifier 24 huruf statis.
- Gerakan J/Z · branch rama. Landmark antar-frame disusun menjadi fitur sekuens untuk model GRU.
Jalankan inferensi offlineTensorFlow Lite
Model menghasilkan prediksi sesuai labelnya. Pengembangan J/Z juga menangani hasil terlambat, timeout, dan pembatalan sesi.
Baca hasil dan panduanAplikasi Flutter
Prediksi dihubungkan ke tampilan latihan, target huruf, dan panduan agar pengguna dapat memahami hasil pengenalan.
Riwayat dan progres lokalSQLite & state aplikasi
Simpan aktivitas latihan, kelola progres, dan lepaskan kamera ketika sesi ditutup atau aplikasi berpindah keadaan.
Default branch memuat 24 huruf statis. Pengembangan gerakan J/Z, progres 26 huruf, dan kontrol sesi berada pada branch rama.
Tentang LatihIsyarat
LatihIsyarat adalah aplikasi belajar alfabet ASL berbasis Flutter. Pengguna dapat berlatih melalui kamera, foto atau unggahan, membaca panduan huruf, serta melihat riwayat dan progres latihan. Pengenalan dijalankan secara offline menggunakan TensorFlow Lite, sedangkan riwayat disimpan secara lokal di SQLite.
Saya mengerjakan deteksi tangan, preprocessing gambar, integrasi pengenalan ke kamera, pengembangan gerakan J/Z, progres belajar, serta pengujiannya. Jalur default mencakup 24 huruf statis; pengembangan J/Z saya kerjakan pada branch rama.
Kontribusi saya
Deteksi tangan pada foto dan unggahan
Saya mengembangkan deteksi tangan untuk gambar diam dan menghubungkannya ke jalur foto/unggahan. Saya menangani pemilihan area tangan, masukan yang belum layak diproses, dan hubungan hasil deteksi dengan classifier. Pekerjaan ini membuat gambar yang dipilih pengguna diteruskan melalui tahapan pengenalan yang sesuai.
Preprocessing dan classifier TensorFlow Lite
Saya mengerjakan preprocessing gambar agar bentuk masukan cocok dengan model, memanggil classifier TensorFlow Lite, serta menghubungkan label prediksi ke hasil aplikasi. Saya juga memperbaiki validasi identifier model dan jalur pengujian classifier agar kesalahan pemetaan model atau label dapat ditangani pada lapisan pengenalan.
Paket training dan kontrak model J/Z
Pada branch rama, saya menyusun paket training/evaluasi J/Z berbasis Python dengan fitur sekuens dan model GRU. Saya menyiapkan label, metadata, serta kontrak preprocessing, memisahkan data menurut kelompok video sumber, dan mencatat manifest split. Saya juga memeriksa konversi model ke TensorFlow Lite, termasuk varian float16, serta mengarsipkan sumber model statis.
Landmark tangan dan integrasi native Android
Saya menghubungkan komponen MediaPipe, detector/landmark, encoder frame, sequence preprocessor, dan classifier J/Z. Saya mengerjakan bridge native Android/Kotlin serta jalur inferensi di isolate agar keluaran frame kamera dapat diubah menjadi fitur sekuens yang dipakai layanan pengenalan gerakan.
Latihan target J/Z dan mode bebas
Saya mengintegrasikan mode latihan target J/Z serta mode bebas yang menggabungkan pengenalan pose statis dan gerakan. Klip J/Z memakai kontrol awal/akhir dari pengguna. Saya mengatur timeout, menolak hasil yang datang dari sesi lama, dan menangani pembatalan agar hasil prediksi tetap terkait dengan sesi yang sedang aktif.
Lifecycle kamera dan penyimpanan sesi
Saya memperbaiki pelepasan kamera ketika pengguna berpindah halaman atau aplikasi masuk background. Saya juga menangani penyimpanan riwayat sesi yang terputus agar proses simpan dan penghentian kamera tidak saling mengganggu. Bagian ini berkaitan dengan kestabilan penggunaan kamera selama latihan dan saat sesi dihentikan.
Riwayat, progres 26 huruf, dan panduan
Saya memperluas model riwayat serta progres untuk mencakup 26 huruf pada pengembangan J/Z, memperbaiki penanda latihan mingguan berdasarkan tanggal aktivitas, dan menambahkan penjelasan gerakan J/Z pada panduan. Saya turut merapikan kontrol layar latihan, halaman panduan, serta tampilan progres yang dihubungkan dengan data sesi lokal.
Pengujian layanan dan integrasi aplikasi
Saya menulis pengujian untuk classifier, hand detector, layanan J/Z, integrasi kamera, riwayat, gamifikasi, dan panduan. Fokusnya mencakup kontrak input/output, penanganan sesi, serta hubungan hasil pengenalan dengan proses belajar. Pengembangan ini tetap disajikan terpisah dari jalur 24 huruf statis pada default branch.
Bidang & teknologi inti
Bidang proyek
Teknologi inti
20 commit dalam 12 bulan terakhir
Semua branch| Nov | Des | Jan | Feb | Mar | Apr | Mei | Jun | Jul | Agu | Sep | Okt | Nov | |||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Minggu | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| Senin | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| Selasa | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| Rabu | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| Kamis | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| Jumat | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| Sabtu |
Cara perhitungan · 1 repo · 6 branch
Commit milik saya yang terjangkau dari seluruh branch remote saat sinkronisasi. Satu SHA dihitung sekali, termasuk jika ada di beberapa branch atau fork. Merge commit dikecualikan. Tanggal memakai waktu author dalam WIB, bukan waktu push. Streak saat ini tetap berjalan bila commit terakhir kemarin dan hari ini belum selesai.
Ini kalender commit dengan cakupan semua branch, sehingga angkanya dapat berbeda dari kalender contributions GitHub yang juga memiliki jenis aktivitas dan aturan branch sendiri. Kalender ini khusus untuk proyek yang sedang dibaca.
Riwayat kontribusi
20 commit non-merge milik saya · Seluruh branch · Data 3 November 2026.
Contoh commit public
7d2a84a· Fix JZ stale results, bounded waits, interrupted sessions and compact controlsc222ac8· feat(progress): include JZ history and 26-letter learning progressc2c9ebc· feat(camera): integrate JZ target gestures and mixed free practice8cf16a8· feat: add independent J/Z backend and frontend integration docs