From 4fe381b3f0d681cb74a9e548122840fd6601cc0b Mon Sep 17 00:00:00 2001 From: wwartana Date: Sun, 28 Dec 2025 01:20:37 +0800 Subject: [PATCH] OCR dengan ZONA --- __pycache__/kk_extractor.cpython-313.pyc | Bin 0 -> 9118 bytes __pycache__/ktp_extractor.cpython-313.pyc | Bin 0 -> 26328 bytes __pycache__/ocr_engine.cpython-313.pyc | Bin 0 -> 6284 bytes app.py | 253 +++++++++ kk.png | Bin 0 -> 165107 bytes kk_extractor.py | 235 +++++++++ ktp.jpeg | Bin 0 -> 119195 bytes ktp_extractor.py | 602 ++++++++++++++++++++++ ocr_engine.py | 153 ++++++ requirements.txt | 5 + static/style.css | 538 +++++++++++++++++++ templates/index.html | 570 ++++++++++++++++++++ 12 files changed, 2356 insertions(+) create mode 100644 __pycache__/kk_extractor.cpython-313.pyc create mode 100644 __pycache__/ktp_extractor.cpython-313.pyc create mode 100644 __pycache__/ocr_engine.cpython-313.pyc create mode 100644 app.py create mode 100644 kk.png create mode 100644 kk_extractor.py create mode 100644 ktp.jpeg create mode 100644 ktp_extractor.py create mode 100644 ocr_engine.py create mode 100644 requirements.txt create mode 100644 static/style.css create mode 100644 templates/index.html diff --git a/__pycache__/kk_extractor.cpython-313.pyc b/__pycache__/kk_extractor.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..96600baeec065e273cdfbdd89b50b055a4ad2ced GIT binary patch literal 9118 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 literal 0 HcmV?d00001 diff --git a/__pycache__/ktp_extractor.cpython-313.pyc b/__pycache__/ktp_extractor.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f44e43c8e3f72e9e88464cd87342e162b76e90c4 GIT binary patch literal 26328 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 SBZJ&kYZhcB8C$K(`+orcVT0ZP literal 0 HcmV?d00001 diff --git a/app.py b/app.py new file mode 100644 index 0000000..dd652fe --- /dev/null +++ b/app.py @@ -0,0 +1,253 @@ +""" +Flask Web Server untuk OCR KTP/KK +""" + +import os +from flask import Flask, render_template, request, jsonify +from werkzeug.utils import secure_filename + +from ocr_engine import get_ocr_engine +from ktp_extractor import KTPExtractor +from kk_extractor import KKExtractor + +app = Flask(__name__) + +# Konfigurasi +UPLOAD_FOLDER = os.path.join(os.path.dirname(__file__), 'uploads') +ALLOWED_EXTENSIONS = {'png', 'jpg', 'jpeg', 'bmp', 'webp'} +MAX_CONTENT_LENGTH = 16 * 1024 * 1024 # 16MB max + +app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER +app.config['MAX_CONTENT_LENGTH'] = MAX_CONTENT_LENGTH + +# Buat folder upload jika belum ada +os.makedirs(UPLOAD_FOLDER, exist_ok=True) + +# Inisialisasi extractors +ktp_extractor = KTPExtractor() +kk_extractor = KKExtractor() + + +def allowed_file(filename): + return '.' in filename and filename.rsplit('.', 1)[1].lower() in ALLOWED_EXTENSIONS + + +@app.route('/') +def index(): + """Halaman utama""" + return render_template('index.html') + + +@app.route('/upload', methods=['POST']) +def upload_file(): + """Handle upload dan proses OCR""" + try: + # Cek file + if 'file' not in request.files: + return jsonify({'success': False, 'error': 'Tidak ada file yang diupload'}), 400 + + file = request.files['file'] + doc_type = request.form.get('doc_type', 'ktp') + + if file.filename == '': + return jsonify({'success': False, 'error': 'Nama file kosong'}), 400 + + if not allowed_file(file.filename): + return jsonify({'success': False, 'error': 'Format file tidak didukung. Gunakan PNG, JPG, JPEG, BMP, atau WEBP'}), 400 + + # Simpan file + filename = secure_filename(file.filename) + filepath = os.path.join(app.config['UPLOAD_FOLDER'], filename) + file.save(filepath) + + try: + # Jalankan OCR + ocr_engine = get_ocr_engine() + ocr_results = ocr_engine.extract_text(filepath) + + if not ocr_results: + return jsonify({ + 'success': False, + 'error': 'Tidak dapat membaca teks dari gambar. Pastikan gambar jelas dan tidak blur.' + }), 400 + + # Ekstrak field berdasarkan jenis dokumen + if doc_type == 'ktp': + extracted = ktp_extractor.extract(ocr_results) + else: + extracted = kk_extractor.extract(ocr_results) + + # Raw text untuk debugging + raw_text = '\n'.join([r['text'] for r in ocr_results]) + + # DEBUG: Print raw OCR results + print("\n" + "="*50) + print("DEBUG: Raw OCR Results") + print("="*50) + for i, r in enumerate(ocr_results): + print(f"[{i}] {r['text']}") + print("="*50 + "\n") + + return jsonify({ + 'success': True, + 'doc_type': doc_type, + 'data': extracted, + 'raw_text': raw_text, + 'ocr_count': len(ocr_results) + }) + + finally: + # Hapus file setelah proses (untuk keamanan data pribadi) + if os.path.exists(filepath): + os.remove(filepath) + + except Exception as e: + return jsonify({'success': False, 'error': str(e)}), 500 + + +# ============================================ +# Region Data API (using wilayah.id) +# ============================================ +import requests +from functools import lru_cache + +WILAYAH_API_BASE = "https://wilayah.id/api" + +@lru_cache(maxsize=100) +def fetch_region_data(endpoint): + """Fetch region data with caching""" + try: + response = requests.get(f"{WILAYAH_API_BASE}/{endpoint}", timeout=10) + if response.status_code == 200: + return response.json() + return None + except Exception as e: + print(f"Error fetching region data: {e}") + return None + + +def normalize_name(name): + """Normalize name for comparison""" + if not name: + return "" + return name.upper().strip().replace(".", "").replace(" ", "") + + +def find_best_match(search_name, items, key='name'): + """Find best matching item by name (fuzzy matching)""" + if not search_name or not items: + return None + + search_norm = normalize_name(search_name) + + # Try exact match first + for item in items: + if normalize_name(item.get(key, '')) == search_norm: + return item + + # Try contains match + for item in items: + item_norm = normalize_name(item.get(key, '')) + if search_norm in item_norm or item_norm in search_norm: + return item + + return None + + +@app.route('/api/provinces') +def get_provinces(): + """Get all provinces""" + data = fetch_region_data("provinces.json") + if data: + return jsonify(data) + return jsonify({'data': []}), 500 + + +@app.route('/api/regencies/') +def get_regencies(province_code): + """Get cities/regencies by province code""" + data = fetch_region_data(f"regencies/{province_code}.json") + if data: + return jsonify(data) + return jsonify({'data': []}), 500 + + +@app.route('/api/districts/') +def get_districts(regency_code): + """Get districts by regency code""" + data = fetch_region_data(f"districts/{regency_code}.json") + if data: + return jsonify(data) + return jsonify({'data': []}), 500 + + +@app.route('/api/villages/') +def get_villages(district_code): + """Get villages by district code""" + data = fetch_region_data(f"villages/{district_code}.json") + if data: + return jsonify(data) + return jsonify({'data': []}), 500 + + +@app.route('/api/validate-region', methods=['POST']) +def validate_region(): + """Validate OCR region data against official database""" + try: + ocr_data = request.json + result = { + 'provinsi': {'valid': False, 'code': None, 'suggestion': None}, + 'kabupaten_kota': {'valid': False, 'code': None, 'suggestion': None}, + 'kecamatan': {'valid': False, 'code': None, 'suggestion': None}, + 'kel_desa': {'valid': False, 'code': None, 'suggestion': None} + } + + # Validate province + provinces_data = fetch_region_data("provinces.json") + if provinces_data and 'data' in provinces_data: + match = find_best_match(ocr_data.get('provinsi'), provinces_data['data']) + if match: + result['provinsi'] = {'valid': True, 'code': match['code'], 'suggestion': match['name']} + + # Validate regency + regencies_data = fetch_region_data(f"regencies/{match['code']}.json") + if regencies_data and 'data' in regencies_data: + reg_match = find_best_match(ocr_data.get('kabupaten_kota'), regencies_data['data']) + if reg_match: + result['kabupaten_kota'] = {'valid': True, 'code': reg_match['code'], 'suggestion': reg_match['name']} + + # Validate district + districts_data = fetch_region_data(f"districts/{reg_match['code']}.json") + if districts_data and 'data' in districts_data: + dist_match = find_best_match(ocr_data.get('kecamatan'), districts_data['data']) + if dist_match: + result['kecamatan'] = {'valid': True, 'code': dist_match['code'], 'suggestion': dist_match['name']} + + # Validate village + villages_data = fetch_region_data(f"villages/{dist_match['code']}.json") + if villages_data and 'data' in villages_data: + vil_match = find_best_match(ocr_data.get('kel_desa'), villages_data['data']) + if vil_match: + result['kel_desa'] = {'valid': True, 'code': vil_match['code'], 'suggestion': vil_match['name']} + + return jsonify({'success': True, 'validation': result}) + + except Exception as e: + return jsonify({'success': False, 'error': str(e)}), 500 + + +@app.route('/health') +def health(): + """Health check endpoint""" + return jsonify({'status': 'ok'}) + + +if __name__ == '__main__': + print("="*50) + print("OCR KTP/KK Application") + print("="*50) + print("Membuka: http://localhost:5000") + print("Tekan Ctrl+C untuk berhenti") + print("="*50) + + app.run(host='0.0.0.0', port=5000, debug=True) diff --git a/kk.png b/kk.png new file mode 100644 index 0000000000000000000000000000000000000000..65627bed05ea664d27191b21ca644210b132e03d GIT binary patch literal 165107 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

lJJ8zc1C?$WYE-4Ns9 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 literal 0 HcmV?d00001 diff --git a/kk_extractor.py b/kk_extractor.py new file mode 100644 index 0000000..33aa912 --- /dev/null +++ b/kk_extractor.py @@ -0,0 +1,235 @@ +""" +KK (Kartu Keluarga) Field Extractor +Ekstraksi data terstruktur dari hasil OCR KK Indonesia +""" + +import re +from typing import Dict, Optional, List + + +class KKExtractor: + """Ekstrak field dari hasil OCR Kartu Keluarga""" + + def __init__(self): + pass + + def extract(self, ocr_results: List[Dict]) -> Dict: + """ + Ekstrak field KK dari hasil OCR + + Args: + ocr_results: List hasil dari OCREngine.extract_text() + + Returns: + Dict dengan field KK + """ + all_text = '\n'.join([r['text'] for r in ocr_results]) + + result = { + 'no_kk': None, + 'nama_kepala_keluarga': None, + 'alamat': None, + 'rt_rw': None, + 'kel_desa': None, + 'kecamatan': None, + 'kabupaten_kota': None, + 'provinsi': None, + 'kode_pos': None, + 'anggota_keluarga': [], + } + + # Ekstrak No KK (16 digit) + kk_match = re.search(r'\b(\d{16})\b', all_text) + if kk_match: + result['no_kk'] = kk_match.group(1) + + # Track untuk deteksi tabel anggota + in_table = False + table_start_y = None + + for i, ocr in enumerate(ocr_results): + text = ocr['text'].strip() + text_lower = text.lower() + y_pos = ocr.get('y_center', 0) + + # Provinsi + if 'provinsi' in text_lower and result['provinsi'] is None: + result['provinsi'] = self._extract_value(text, 'provinsi') + + # Kabupaten/Kota + if ('kabupaten' in text_lower or 'kota' in text_lower) and result['kabupaten_kota'] is None: + val = self._extract_value(text, 'kabupaten') or self._extract_value(text, 'kota') + if val: + result['kabupaten_kota'] = val + else: + result['kabupaten_kota'] = text + + # Kecamatan + if 'kecamatan' in text_lower and result['kecamatan'] is None: + result['kecamatan'] = self._extract_value(text, 'kecamatan') + + # Kelurahan/Desa + if ('kelurahan' in text_lower or 'desa' in text_lower) and result['kel_desa'] is None: + result['kel_desa'] = self._extract_value(text, 'kelurahan') or self._extract_value(text, 'desa') + + # No. KK dengan label + if 'no' in text_lower and ('kk' in text_lower or 'kartu' in text_lower): + # Cari 16 digit di text ini atau text berikutnya + match = re.search(r'(\d{16})', text) + if match: + result['no_kk'] = match.group(1) + elif i + 1 < len(ocr_results): + next_text = ocr_results[i + 1]['text'] + match = re.search(r'(\d{16})', next_text) + if match: + result['no_kk'] = match.group(1) + + # Nama Kepala Keluarga + if 'kepala' in text_lower and 'keluarga' in text_lower: + result['nama_kepala_keluarga'] = self._extract_value(text, 'keluarga') + if not result['nama_kepala_keluarga'] and i + 1 < len(ocr_results): + # Nama mungkin di baris berikutnya + next_text = ocr_results[i + 1]['text'].strip() + if not any(kw in next_text.lower() for kw in ['alamat', 'rt', 'rw', 'provinsi']): + result['nama_kepala_keluarga'] = next_text + + # Alamat + if 'alamat' in text_lower and result['alamat'] is None: + result['alamat'] = self._extract_value(text, 'alamat') + + # RT/RW + rt_rw_match = re.search(r'rt\s*/?\s*rw\s*[:\s]*(\d+)\s*/\s*(\d+)', text_lower) + if rt_rw_match: + result['rt_rw'] = f"{rt_rw_match.group(1)}/{rt_rw_match.group(2)}" + + # Kode Pos + if 'kode' in text_lower and 'pos' in text_lower: + match = re.search(r'(\d{5})', text) + if match: + result['kode_pos'] = match.group(1) + + # Deteksi header tabel anggota keluarga + if self._is_table_header(text_lower): + in_table = True + table_start_y = y_pos + continue + + # Ekstrak anggota keluarga dari tabel + if in_table and table_start_y: + member = self._extract_member(text, ocr_results, i) + if member: + result['anggota_keluarga'].append(member) + + # Post-processing + result = self._post_process(result) + + return result + + def _extract_value(self, text: str, field: str) -> Optional[str]: + """Ekstrak nilai setelah label field""" + patterns = [ + rf'{field}[a-z]*\s*:\s*(.+)', + rf'{field}[a-z]*\s+(.+)', + ] + + for pattern in patterns: + match = re.search(pattern, text, re.IGNORECASE) + if match: + value = match.group(1).strip() + value = re.sub(r'^[:\s]+', '', value) + if value: + return value + return None + + def _is_table_header(self, text: str) -> bool: + """Cek apakah teks adalah header tabel anggota""" + header_keywords = ['no', 'nama lengkap', 'nik', 'jenis kelamin', 'hubungan'] + count = sum(1 for kw in header_keywords if kw in text) + return count >= 2 + + def _extract_member(self, text: str, all_results: List[Dict], current_idx: int) -> Optional[Dict]: + """Ekstrak data anggota keluarga dari baris tabel""" + # Cari NIK di text + nik_match = re.search(r'\b(\d{16})\b', text) + if not nik_match: + return None + + member = { + 'nik': nik_match.group(1), + 'nama': None, + 'jenis_kelamin': None, + 'tempat_lahir': None, + 'tanggal_lahir': None, + 'hubungan': None, + } + + # Cari teks di sekitar yang mungkin nama atau info lain + text_parts = text.split() + + # Deteksi jenis kelamin + if 'laki' in text.lower() or ' l ' in f' {text.lower()} ': + member['jenis_kelamin'] = 'LAKI-LAKI' + elif 'perempuan' in text.lower() or ' p ' in f' {text.lower()} ': + member['jenis_kelamin'] = 'PEREMPUAN' + + # Deteksi hubungan keluarga + hubungan_keywords = { + 'kepala': 'KEPALA KELUARGA', + 'istri': 'ISTRI', + 'suami': 'SUAMI', + 'anak': 'ANAK', + 'menantu': 'MENANTU', + 'cucu': 'CUCU', + 'orang tua': 'ORANG TUA', + 'mertua': 'MERTUA', + } + + for keyword, value in hubungan_keywords.items(): + if keyword in text.lower(): + member['hubungan'] = value + break + + return member + + def _post_process(self, result: Dict) -> Dict: + """Post-processing hasil ekstraksi""" + # Validasi No KK + if result['no_kk'] and not re.match(r'^\d{16}$', result['no_kk']): + cleaned = re.sub(r'\D', '', result['no_kk']) + if len(cleaned) == 16: + result['no_kk'] = cleaned + else: + result['no_kk'] = None + + # Uppercase field teks + for field in ['nama_kepala_keluarga', 'alamat', 'kel_desa', 'kecamatan', + 'kabupaten_kota', 'provinsi']: + if result[field]: + result[field] = result[field].upper() + + return result + + +if __name__ == "__main__": + # Test + sample_ocr = [ + {'text': 'KARTU KELUARGA', 'y_center': 10}, + {'text': 'No. 3204012345678901', 'y_center': 30}, + {'text': 'Nama Kepala Keluarga : JOHN DOE', 'y_center': 50}, + {'text': 'Alamat : JL. MERDEKA NO. 123', 'y_center': 70}, + {'text': 'RT/RW : 001/002', 'y_center': 90}, + {'text': 'Desa/Kelurahan : SUKAMAJU', 'y_center': 110}, + {'text': 'Kecamatan : SUKASARI', 'y_center': 130}, + {'text': 'Kabupaten/Kota : BANDUNG', 'y_center': 150}, + {'text': 'Provinsi : JAWA BARAT', 'y_center': 170}, + {'text': 'Kode Pos : 40154', 'y_center': 190}, + ] + + extractor = KKExtractor() + result = extractor.extract(sample_ocr) + + for key, value in result.items(): + if key != 'anggota_keluarga': + print(f"{key}: {value}") + + print(f"\nAnggota Keluarga: {len(result['anggota_keluarga'])} orang") diff --git a/ktp.jpeg b/ktp.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..cc18b4b7ec1873d9dc19b565c83e9efa53a37962 GIT binary patch literal 119195 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

TS^gVZ>s|`DNiHV{@2AdJ1%^KE zeR=&W$Y#^;HJ=X41?}3~%x)Q;GKbC$lZ+q6vgT(?jW@eK%ed8SZ!YDIO-u(1<^@+7 z+w1hKkN8h?Z7E~97pr+_Uto~Qz;92`*UjG$w7qx2T6cyuYawwfO>g!|3Ica$9e*n2 z{4e2sYEK%$;fvVrTG?b5Ml+qH5uE4o$Kyw|Xom>&XVw~r#{U2d�xm`pglMc8JlA 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 Pg5I^y&e_zdB!B Optional[str]: + """Determine which zone a text belongs to based on normalized coordinates""" + if img_width == 0 or img_height == 0: + return None + + # Normalize coordinates + x_norm = x_center / img_width + y_norm = y_center / img_height + + for zone_name, (x_min, y_min, x_max, y_max) in self.ZONES.items(): + if x_min <= x_norm <= x_max and y_min <= y_norm <= y_max: + return zone_name + return None + + def _extract_value_from_text(self, text: str) -> str: + """Extract value part from label:value text""" + # Split by colon (standard or full-width) + parts = re.split(r'[::]', text, 1) + if len(parts) > 1: + return parts[1].strip() + return text.strip() + + def _detect_image_size(self, ocr_results: List[Dict]) -> tuple: + """Detect image dimensions from bounding boxes""" + max_x, max_y = 0, 0 + for r in ocr_results: + bbox = r.get('bbox', []) + if bbox and len(bbox) >= 4: + for point in bbox: + if len(point) >= 2: + max_x = max(max_x, point[0]) + max_y = max(max_y, point[1]) + # Add some margin + return (int(max_x * 1.05), int(max_y * 1.05)) if max_x > 0 else (1000, 640) + + def _extract_by_zones(self, zone_texts: Dict[str, List[str]], result: Dict): + """Extract fields based on zone assignments""" + + # PROVINSI from header + if 'header_provinsi' in zone_texts: + for text in zone_texts['header_provinsi']: + if 'provinsi' in text.lower(): + val = re.sub(r'(?i)provinsi\s*', '', text).strip() + if val: + result['provinsi'] = val.upper() + break + + # KABUPATEN/KOTA from header + if 'header_kabupaten' in zone_texts: + for text in zone_texts['header_kabupaten']: + text_lower = text.lower() + if 'kabupaten' in text_lower or 'kota' in text_lower: + val = re.sub(r'(?i)(kabupaten|kota)\s*', '', text).strip() + if val: + result['kabupaten_kota'] = val.upper() + else: + result['kabupaten_kota'] = text.upper() + break + + # NAMA from nama zone (skip label line) + if 'nama' in zone_texts: + for text in zone_texts['nama']: + text_lower = text.lower() + if 'nama' not in text_lower and len(text) > 2: + result['nama'] = text.upper() + break + elif 'nama' in text_lower: + val = self._extract_value_from_text(text) + if val and 'nama' not in val.lower(): + result['nama'] = val.upper() + + # TTL from ttl zone + if 'ttl' in zone_texts: + for text in zone_texts['ttl']: + if 'tempat' in text.lower() or 'lahir' in text.lower(): + val = self._extract_value_from_text(text) + if val: + self._parse_ttl(val, result) + break + + # JENIS KELAMIN + if 'jenis_kelamin' in zone_texts: + for text in zone_texts['jenis_kelamin']: + text_lower = text.lower() + if 'laki' in text_lower: + result['jenis_kelamin'] = 'LAKI-LAKI' + break + elif 'perempuan' in text_lower: + result['jenis_kelamin'] = 'PEREMPUAN' + break + + # GOL DARAH + if 'gol_darah' in zone_texts: + for text in zone_texts['gol_darah']: + gol_match = re.search(r'([ABO]{1,2}[+\-]?)', text, re.IGNORECASE) + if gol_match: + result['gol_darah'] = gol_match.group(1).upper() + break + + # ALAMAT + if 'alamat' in zone_texts: + for text in zone_texts['alamat']: + if 'alamat' not in text.lower() or len(zone_texts['alamat']) == 1: + val = self._extract_value_from_text(text) if 'alamat' in text.lower() else text + if val and 'alamat' not in val.lower(): + result['alamat'] = val.upper() + break + + # PENERBITAN area (tempat & tanggal dalam satu zona) + if 'penerbitan' in zone_texts: + for text in zone_texts['penerbitan']: + # Look for date + date_match = re.search(r'(\d{2}[-/]\d{2}[-/]\d{4})', text) + if date_match and result['tanggal_penerbitan'] is None: + result['tanggal_penerbitan'] = date_match.group(1) + + def extract(self, ocr_results: List[Dict]) -> Dict[str, Optional[str]]: + """ + Ekstrak field KTP dari hasil OCR dengan template-based zone detection + + Args: + ocr_results: List hasil dari OCREngine.extract_text() + + Returns: + Dict dengan field KTP + """ + result = { + 'nik': None, + 'nama': None, + 'tempat_lahir': None, + 'tanggal_lahir': None, + 'jenis_kelamin': None, + 'gol_darah': None, + 'alamat': None, + 'rt_rw': None, + 'kel_desa': None, + 'kecamatan': None, + 'agama': None, + 'status_perkawinan': None, + 'pekerjaan': None, + 'kewarganegaraan': None, + 'berlaku_hingga': None, + 'provinsi': None, + 'kabupaten_kota': None, + 'tanggal_penerbitan': None, + } + + # Detect image dimensions from bounding boxes + img_width, img_height = self._detect_image_size(ocr_results) + + # Assign zones to each OCR result + zone_texts = {} # zone_name -> list of texts + for r in ocr_results: + x_center = r.get('x_center', 0) + y_center = r.get('y_center', 0) + zone = self._get_zone(x_center, y_center, img_width, img_height) + if zone: + if zone not in zone_texts: + zone_texts[zone] = [] + zone_texts[zone].append(r['text']) + + # Debug: print zone assignments + print("\n[DEBUG KTPExtractor] Zone assignments:") + for zone, texts in zone_texts.items(): + print(f" {zone}: {texts}") + + # Extract fields using zone-based approach + self._extract_by_zones(zone_texts, result) + + # Gabungkan semua teks untuk fallback pattern matching + texts = [r['text'].strip() for r in ocr_results] + all_text = '\n'.join(texts) + + # Ekstrak NIK (16 digit) - bisa ada di mana saja + nik_match = re.search(r'\b(\d{16})\b', all_text) + if nik_match: + result['nik'] = nik_match.group(1) + print(f" -> NIK found: {result['nik']}") + + # Fallback: Parse line by line for fields not found by zone + for i, text in enumerate(texts): + text_lower = text.lower() + + # Normalize colons + text_normalized = re.sub(self.COLON_PATTERN, ':', text) + text_norm_lower = text_normalized.lower() + + # ===== PROVINSI ===== + if 'provinsi' in text_lower and result['provinsi'] is None: + val = self._extract_after_label(text_normalized, 'provinsi') + if val: + result['provinsi'] = val.upper() + elif i + 1 < len(texts) and 'provinsi' not in texts[i+1].lower(): + # Mungkin value di line berikutnya + result['provinsi'] = texts[i+1].strip().upper() + + # ===== KABUPATEN/KOTA ===== + if ('kabupaten' in text_lower or 'kota' in text_lower or 'jakarta' in text_lower) and result['kabupaten_kota'] is None: + if 'provinsi' not in text_lower: # Bukan bagian dari provinsi + val = self._extract_after_label(text_normalized, 'kabupaten|kota') + if val: + result['kabupaten_kota'] = val.upper() + else: + result['kabupaten_kota'] = text.strip().upper() + + # ===== NAMA ===== + if 'nama' in text_lower and result['nama'] is None: + val = self._extract_after_label(text_normalized, 'nama') + if val and len(val) > 2: + result['nama'] = val.upper() + elif i + 1 < len(texts): + # Nama di line berikutnya + next_text = texts[i+1].strip() + if len(next_text) > 2 and not any(kw in next_text.lower() for kw in ['tempat', 'lahir', 'jenis']): + result['nama'] = next_text.upper() + + # ===== TEMPAT/TANGGAL LAHIR ===== + # Match "Tempat/Tgl Lahir" or "Tempat Lahir" or similar labels + if 'tempat' in text_lower or ('lahir' in text_lower and 'berlaku' not in text_lower): + if result['tempat_lahir'] is None or result['tanggal_lahir'] is None: + # Extract value after label using full-width or standard colon + ttl = self._extract_after_label(text_normalized, r'tempat[/\s]*tgl[/\s]*lahir|tempat[/\s]*lahir|lahir') + if ttl: + self._parse_ttl(ttl, result) + elif ':' in text or ':' in text: + # Value is after colon but _extract_after_label didn't catch it + parts = re.split(r'[::]', text, 1) + if len(parts) > 1 and parts[1].strip(): + self._parse_ttl(parts[1].strip(), result) + elif i + 1 < len(texts): + # TTL di line berikutnya + next_text = texts[i+1].strip() + if not any(kw in next_text.lower() for kw in ['jenis', 'kelamin', 'alamat', 'gol']): + self._parse_ttl(next_text, result) + + # ===== JENIS KELAMIN ===== + if any(kw in text_lower for kw in self.MALE_KEYWORDS): + if result['jenis_kelamin'] is None: + result['jenis_kelamin'] = 'LAKI-LAKI' + elif any(kw in text_lower for kw in self.FEMALE_KEYWORDS): + if result['jenis_kelamin'] is None: + result['jenis_kelamin'] = 'PEREMPUAN' + + # ===== GOLONGAN DARAH ===== + if 'darah' in text_lower or 'gol.' in text_lower: + # Try to find blood type on same line + gol_match = re.search(r'(?:gol|darah)[.\s::]*([ABO]{1,2}[+\-]?)', text, re.IGNORECASE) + if gol_match and result['gol_darah'] is None: + result['gol_darah'] = gol_match.group(1).upper() + elif result['gol_darah'] is None and i + 1 < len(texts): + # Blood type might be on next line (real KTP pattern) + next_text = texts[i+1].strip() + if re.match(r'^[ABO]{1,2}[+\-]?$', next_text, re.IGNORECASE): + result['gol_darah'] = next_text.upper() + # Standalone blood type (e.g., just "O" or "A+" on its own line) + if result['gol_darah'] is None: + if re.match(r'^[ABO]{1,2}[+\-]?$', text.strip(), re.IGNORECASE) and len(text.strip()) <= 3: + result['gol_darah'] = text.strip().upper() + + # ===== ALAMAT ===== + if 'alamat' in text_lower and result['alamat'] is None: + val = self._extract_after_label(text_normalized, 'alamat') + if val: + result['alamat'] = val.upper() + elif i + 1 < len(texts): + result['alamat'] = texts[i+1].strip().upper() + + # ===== RT/RW ===== + rt_rw_match = re.search(r'(\d{3})\s*/\s*(\d{3})', text) + if rt_rw_match: + result['rt_rw'] = f"{rt_rw_match.group(1)}/{rt_rw_match.group(2)}" + + # ===== KELURAHAN/DESA ===== + if ('kel' in text_lower or 'desa' in text_lower) and 'kelamin' not in text_lower: + if result['kel_desa'] is None: + val = self._extract_after_label(text_normalized, 'kel|desa') + if val: + result['kel_desa'] = val.upper() + elif i + 1 < len(texts): + result['kel_desa'] = texts[i+1].strip().upper() + + # ===== KECAMATAN ===== + if 'kecamatan' in text_lower or ('kec' in text_lower and 'kelamin' not in text_lower): + if result['kecamatan'] is None: + val = self._extract_after_label(text_normalized, 'kecamatan|kec') + if val: + result['kecamatan'] = val.upper() + elif i + 1 < len(texts): + # Value on next line (real KTP pattern) + next_text = texts[i+1].strip() + if len(next_text) > 2 and not any(kw in next_text.lower() for kw in ['agama', 'status', 'pekerjaan']): + result['kecamatan'] = next_text.upper() + + # ===== AGAMA ===== + if 'agama' in text_lower: + val = self._extract_after_label(text_normalized, 'agama') + if val and result['agama'] is None: + result['agama'] = val.upper() + elif result['agama'] is None and i + 1 < len(texts): + # Value on next line (real KTP pattern) + next_text = texts[i+1].strip().upper() + if next_text in ['ISLAM', 'KRISTEN', 'KATOLIK', 'HINDU', 'BUDHA', 'BUDDHA', 'KONGHUCU']: + result['agama'] = next_text + else: + # Check if line contains only agama name + for agama in self.AGAMA_LIST: + if agama in text_lower and len(text) < 20: + if result['agama'] is None: + result['agama'] = text.strip().upper() + break + + # ===== STATUS PERKAWINAN ===== + if 'kawin' in text_lower: + if result['status_perkawinan'] is None: + val = self._extract_after_label(text_normalized, 'status.*kawin|perkawinan') + if val: + result['status_perkawinan'] = val.upper() + elif 'belum' in text_lower: + result['status_perkawinan'] = 'BELUM KAWIN' + elif 'kawin' in text_lower and 'cerai' not in text_lower: + result['status_perkawinan'] = 'KAWIN' + elif 'cerai hidup' in text_lower: + result['status_perkawinan'] = 'CERAI HIDUP' + elif 'cerai mati' in text_lower: + result['status_perkawinan'] = 'CERAI MATI' + + # ===== PEKERJAAN ===== + if 'pekerjaan' in text_lower: + val = self._extract_after_label(text_normalized, 'pekerjaan') + if val and result['pekerjaan'] is None: + result['pekerjaan'] = val.upper() + elif result['pekerjaan'] is None and i + 1 < len(texts): + # Value on next line (real KTP pattern) + next_text = texts[i+1].strip() + if len(next_text) > 2 and 'kewarganegaraan' not in next_text.lower(): + result['pekerjaan'] = next_text.upper() + else: + # Check if line contains pekerjaan keyword + for pekerjaan in self.PEKERJAAN_LIST: + if pekerjaan in text_lower and len(text) < 30: + if result['pekerjaan'] is None: + result['pekerjaan'] = text.strip().upper() + break + + # ===== KEWARGANEGARAAN ===== + if 'wni' in text_lower: + result['kewarganegaraan'] = 'WNI' + elif 'wna' in text_lower: + result['kewarganegaraan'] = 'WNA' + elif 'warga' in text_lower and result['kewarganegaraan'] is None: + val = self._extract_after_label(text_normalized, 'kewarganegaraan|warga') + if val: + result['kewarganegaraan'] = val.upper() + + # ===== BERLAKU HINGGA ===== + if 'berlaku' in text_lower or 'seumur' in text_lower: + if result['berlaku_hingga'] is None: + if 'seumur' in text_lower or 'hidup' in text_lower: + result['berlaku_hingga'] = 'SEUMUR HIDUP' + else: + val = self._extract_after_label(text_normalized, 'berlaku') + if val: + result['berlaku_hingga'] = val.upper() + + # ===== TANGGAL PENERBITAN (biasanya format DD-MM-YYYY di akhir) ===== + # Look for date that is NOT tanggal lahir (different date) + if result['tanggal_penerbitan'] is None: + # Match date format at end of text or standalone date + date_match = re.search(r'(\d{2}[-/]\d{2}[-/]\d{4})$', text.strip()) + if date_match: + found_date = date_match.group(1) + # Make sure it's not the same as tanggal_lahir + if result['tanggal_lahir'] != found_date: + # Likely penerbitan if after berlaku_hingga was found + if result['berlaku_hingga'] or i > len(texts) * 0.7: + result['tanggal_penerbitan'] = found_date + + # Post-processing + result = self._post_process(result) + + return result + + def _extract_after_label(self, text: str, label_pattern: str) -> Optional[str]: + """Ekstrak nilai setelah label (supports various separators)""" + patterns = [ + rf'(?:{label_pattern})\s*:\s*(.+)', # label: value + rf'(?:{label_pattern})\s+([A-Z0-9].+)', # label VALUE (uppercase start) + ] + + for pattern in patterns: + match = re.search(pattern, text, re.IGNORECASE) + if match: + value = match.group(1).strip() + # Remove trailing colon or label fragment + value = re.sub(r'^[:\s]+', '', value) + value = re.sub(r'\s*:\s*$', '', value) + if value and len(value) > 1: + return value + + return None + + def _parse_ttl(self, ttl_text: str, result: Dict): + """Parse tempat/tanggal lahir dari text""" + ttl_text = ttl_text.strip() + + # Normalize dates where OCR missed dashes: + # "05 08 1978" -> "05-08-1978" + # "05 08-1978" -> "05-08-1978" + # "05-08 1978" -> "05-08-1978" + ttl_text = re.sub(r'(\d{2})[\s]+(\d{2})[\s]+(\d{4})', r'\1-\2-\3', ttl_text) + ttl_text = re.sub(r'(\d{2})[\s]+(\d{2})[-/](\d{4})', r'\1-\2-\3', ttl_text) + ttl_text = re.sub(r'(\d{2})[-/](\d{2})[\s]+(\d{4})', r'\1-\2-\3', ttl_text) + + # Handle 8-digit date without separator: "05081978" -> "05-08-1978" + date_8digit = re.search(r'(\d{8})', ttl_text) + if date_8digit: + d = date_8digit.group(1) + formatted = f"{d[:2]}-{d[2:4]}-{d[4:]}" + ttl_text = ttl_text.replace(d, formatted) + + # Handle merged city+date like "JAKARTA05-08-1978" - add space before digits + ttl_text = re.sub(r'([A-Z])(\d{2}[-/])', r'\1 \2', ttl_text, flags=re.IGNORECASE) + + # Format: "TEMPAT, DD-MM-YYYY" atau "TEMPAT DD-MM-YYYY" + date_match = re.search(r'(\d{2}[-/]\d{2}[-/]\d{4})', ttl_text) + if date_match: + result['tanggal_lahir'] = date_match.group(1) + # Tempat adalah bagian sebelum tanggal + place = ttl_text[:date_match.start()].strip(' ,:-/') + # Clean up label remnants + place = re.sub(r'^(tempat|tgl|lahir|:|:)[/\s::]*', '', place, flags=re.IGNORECASE).strip() + if place and len(place) > 2: + result['tempat_lahir'] = place.upper() + else: + # Coba split by comma + parts = ttl_text.split(',') + if len(parts) >= 2: + result['tempat_lahir'] = parts[0].strip().upper() + result['tanggal_lahir'] = parts[1].strip() + elif len(parts) == 1 and len(ttl_text) > 2: + result['tempat_lahir'] = ttl_text.upper() + + def _post_process(self, result: Dict) -> Dict: + """Post-processing hasil ekstraksi""" + # Validasi NIK (harus 16 digit) + if result['nik'] and not re.match(r'^\d{16}$', result['nik']): + cleaned = re.sub(r'\D', '', result['nik']) + if len(cleaned) == 16: + result['nik'] = cleaned + else: + result['nik'] = None + + # Clean all string values - remove leading colons and extra whitespace + for field in result: + if result[field] and isinstance(result[field], str): + val = result[field] + # Remove leading colons (standard and full-width) + val = re.sub(r'^[\s::]+', '', val) + # Remove trailing colons + val = re.sub(r'[\s::]+$', '', val) + # Remove double spaces + val = re.sub(r'\s+', ' ', val) + result[field] = val.strip() + + # Bersihkan label dari values + for field in ['nama', 'alamat', 'tempat_lahir', 'kel_desa', 'kecamatan', 'agama', 'pekerjaan']: + if result[field]: + # Remove common labels yang ter-capture + result[field] = re.sub( + r'^(NAMA|ALAMAT|TEMPAT|LAHIR|TGL|KEL|DESA|KELURAHAN|KECAMATAN|KEC|AGAMA|PEKERJAAN|STATUS)[\s::]*', + '', result[field], flags=re.IGNORECASE + ).strip() + + # Fix status perkawinan yang masih mengandung label + if result['status_perkawinan']: + sp = result['status_perkawinan'] + sp = re.sub(r'^(STATUS|PERKAWINAN)[\s::]*', '', sp, flags=re.IGNORECASE).strip() + result['status_perkawinan'] = sp + + # Fix berlaku hingga + if result['berlaku_hingga']: + bh = result['berlaku_hingga'] + bh = re.sub(r'^(BERLAKU|HINGGA)[\s::]*', '', bh, flags=re.IGNORECASE).strip() + if bh.upper() == 'HIDUP' or 'SEUMUR' in bh.upper(): + result['berlaku_hingga'] = 'SEUMUR HIDUP' + else: + result['berlaku_hingga'] = bh + + # Fix merged kabupaten/kota names (e.g., JAKARTASELATAN -> JAKARTA SELATAN) + if result['kabupaten_kota']: + kk = result['kabupaten_kota'] + # Add space before directional words + kk = re.sub(r'(JAKARTA|BANDUNG|SURABAYA|SEMARANG|MEDAN|BEKASI|TANGERANG|DEPOK|BOGOR)(SELATAN|UTARA|BARAT|TIMUR|PUSAT|TENGAH)', + r'\1 \2', kk, flags=re.IGNORECASE) + # Common merged patterns + kk = re.sub(r'(KOTA|KABUPATEN)([A-Z])', r'\1 \2', kk, flags=re.IGNORECASE) + result['kabupaten_kota'] = kk.upper() + + # Fix merged provinsi names + if result['provinsi']: + prov = result['provinsi'] + prov = re.sub(r'(DKI|DI)(JAKARTA|YOGYAKARTA)', r'\1 \2', prov, flags=re.IGNORECASE) + prov = re.sub(r'(JAWA|KALIMANTAN|SULAWESI|SUMATERA|NUSA TENGGARA)(BARAT|TIMUR|TENGAH|SELATAN|UTARA)', + r'\1 \2', prov, flags=re.IGNORECASE) + result['provinsi'] = prov.upper() + + # Fix merged alamat/address (e.g., JLKECAPIV -> JL KECAPI V) + if result['alamat']: + alamat = result['alamat'] + # Add space after common street prefixes + alamat = re.sub(r'^(JL|JLN|JALAN|GG|GANG|NO|BLOK)([A-Z])', r'\1 \2', alamat, flags=re.IGNORECASE) + # Add space before Roman numerals at the end (I, II, III, IV, V, VI, VII, VIII, IX, X) + alamat = re.sub(r'([A-Z])([IVX]+)$', r'\1 \2', alamat, flags=re.IGNORECASE) + # Add space before single digits/numbers at end + alamat = re.sub(r'([A-Z])(\d+)$', r'\1 \2', alamat, flags=re.IGNORECASE) + # Fix common patterns: "NO123" -> "NO 123", "BLOKA" -> "BLOK A" + alamat = re.sub(r'\b(NO|BLOK)(\d+|[A-Z])\b', r'\1 \2', alamat, flags=re.IGNORECASE) + result['alamat'] = alamat.upper() + + return result + + +if __name__ == "__main__": + # Test + sample_ocr = [ + {'text': 'PROVINSI JAWA BARAT'}, + {'text': 'KABUPATEN BANDUNG'}, + {'text': 'NIK : 3204012345678901'}, + {'text': 'Nama : JOHN DOE'}, + {'text': 'Tempat/Tgl Lahir : BANDUNG, 01-01-1990'}, + {'text': 'Jenis Kelamin : LAKI-LAKI'}, + {'text': 'Alamat : JL. MERDEKA NO. 123'}, + {'text': 'RT/RW : 001/002'}, + {'text': 'Kel/Desa : SUKAMAJU'}, + {'text': 'Kecamatan : SUKASARI'}, + {'text': 'Agama : ISLAM'}, + {'text': 'Status Perkawinan : BELUM KAWIN'}, + {'text': 'Pekerjaan : KARYAWAN SWASTA'}, + {'text': 'Kewarganegaraan : WNI'}, + {'text': 'Berlaku Hingga : SEUMUR HIDUP'}, + ] + + extractor = KTPExtractor() + result = extractor.extract(sample_ocr) + + for key, value in result.items(): + print(f"{key}: {value}") diff --git a/ocr_engine.py b/ocr_engine.py new file mode 100644 index 0000000..ba998c3 --- /dev/null +++ b/ocr_engine.py @@ -0,0 +1,153 @@ +""" +OCR Engine menggunakan PaddleOCR 3.x +Untuk membaca teks dari gambar dokumen Indonesia (KTP, KK) +""" + +from paddleocr import PaddleOCR +import cv2 +import numpy as np +from PIL import Image + + +class OCREngine: + def __init__(self): + """Inisialisasi PaddleOCR 3.x dengan konfigurasi untuk dokumen Indonesia""" + self.ocr = PaddleOCR( + use_doc_orientation_classify=True, # Deteksi rotasi (0°/90°/180°/270°) + use_doc_unwarping=True, # Koreksi perspektif (trapezium → persegi) + use_textline_orientation=True, # Orientasi per baris teks + ) + + def preprocess_image(self, image_path: str) -> np.ndarray: + """ + Preprocessing gambar untuk hasil OCR lebih baik + - Resize jika terlalu besar + - Enhance contrast + """ + img = cv2.imread(image_path) + if img is None: + raise ValueError(f"Tidak dapat membaca gambar: {image_path}") + + # Resize jika terlalu besar (max 2000px) + max_dim = 2000 + height, width = img.shape[:2] + if max(height, width) > max_dim: + scale = max_dim / max(height, width) + img = cv2.resize(img, None, fx=scale, fy=scale, interpolation=cv2.INTER_AREA) + + # Convert ke grayscale untuk preprocessing + gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) + + # Enhance contrast menggunakan CLAHE + clahe = cv2.createCLAHE(clipLimit=2.0, tileGridSize=(8, 8)) + enhanced = clahe.apply(gray) + + # Convert kembali ke BGR untuk PaddleOCR + enhanced_bgr = cv2.cvtColor(enhanced, cv2.COLOR_GRAY2BGR) + + return enhanced_bgr + + def extract_text(self, image_path: str, preprocess: bool = False) -> list: + """ + Ekstraksi teks dari gambar menggunakan PaddleOCR 3.x API + + Args: + image_path: Path ke file gambar + preprocess: Apakah melakukan preprocessing + + Returns: + List of dict dengan keys: 'text', 'confidence', 'bbox' + """ + try: + # Jalankan OCR dengan API baru (predict) + result = self.ocr.predict(input=image_path) + + if not result: + return [] + + extracted = [] + + # Parse hasil dari PaddleOCR 3.x + for res in result: + # Akses data dari result object + if hasattr(res, 'rec_texts') and hasattr(res, 'rec_scores') and hasattr(res, 'dt_polys'): + texts = res.rec_texts if res.rec_texts else [] + scores = res.rec_scores if res.rec_scores else [] + polys = res.dt_polys if res.dt_polys else [] + + for i, text in enumerate(texts): + confidence = scores[i] if i < len(scores) else 0.0 + bbox = polys[i].tolist() if i < len(polys) and hasattr(polys[i], 'tolist') else [] + + # Calculate center for sorting + if bbox and len(bbox) >= 4: + y_center = (bbox[0][1] + bbox[2][1]) / 2 + x_center = (bbox[0][0] + bbox[2][0]) / 2 + else: + y_center = 0 + x_center = 0 + + extracted.append({ + 'text': text, + 'confidence': float(confidence), + 'bbox': bbox, + 'y_center': y_center, + 'x_center': x_center, + }) + # Fallback: try dict-like access + elif hasattr(res, '__getitem__'): + try: + texts = res.get('rec_texts', res.get('texts', [])) + scores = res.get('rec_scores', res.get('scores', [])) + + for i, text in enumerate(texts): + confidence = scores[i] if i < len(scores) else 0.0 + extracted.append({ + 'text': text, + 'confidence': float(confidence), + 'bbox': [], + 'y_center': i * 10, # Simple ordering fallback + 'x_center': 0, + }) + except Exception: + pass + + # Sort berdasarkan posisi Y (atas ke bawah) + if extracted: + extracted.sort(key=lambda x: (x['y_center'], x['x_center'])) + + return extracted + + except Exception as e: + print(f"Error OCR: {e}") + import traceback + traceback.print_exc() + return [] + + def get_raw_text(self, image_path: str) -> str: + """ + Mendapatkan semua teks dari gambar sebagai string + """ + results = self.extract_text(image_path) + return '\n'.join([r['text'] for r in results]) + + +# Singleton instance +_ocr_engine = None + +def get_ocr_engine() -> OCREngine: + """Get singleton OCR engine instance""" + global _ocr_engine + if _ocr_engine is None: + _ocr_engine = OCREngine() + return _ocr_engine + + +if __name__ == "__main__": + # Test OCR + import sys + if len(sys.argv) > 1: + engine = get_ocr_engine() + results = engine.extract_text(sys.argv[1]) + for r in results: + print(f"[{r['confidence']:.2f}] {r['text']}") diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..deb2a32 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,5 @@ +paddlepaddle +paddleocr +flask +pillow +opencv-python diff --git a/static/style.css b/static/style.css new file mode 100644 index 0000000..6e7d67e --- /dev/null +++ b/static/style.css @@ -0,0 +1,538 @@ +/* OCR KTP/KK - Modern Dark Theme */ + +:root { + --bg-primary: #0f0f1a; + --bg-secondary: #1a1a2e; + --bg-tertiary: #252540; + --accent-primary: #6366f1; + --accent-secondary: #818cf8; + --accent-gradient: linear-gradient(135deg, #6366f1 0%, #a855f7 100%); + --text-primary: #f1f5f9; + --text-secondary: #94a3b8; + --text-muted: #64748b; + --success: #22c55e; + --error: #ef4444; + --warning: #f59e0b; + --border: #334155; + --shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.3); + --shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.4); + --radius: 12px; + --radius-lg: 16px; +} + +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +body { + font-family: 'Segoe UI', system-ui, -apple-system, sans-serif; + background: var(--bg-primary); + color: var(--text-primary); + min-height: 100vh; + line-height: 1.6; +} + +.container { + max-width: 800px; + margin: 0 auto; + padding: 2rem 1rem; +} + +/* Header */ +header { + text-align: center; + margin-bottom: 2rem; +} + +header h1 { + font-size: 2.5rem; + font-weight: 700; + background: var(--accent-gradient); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + background-clip: text; + margin-bottom: 0.5rem; +} + +.subtitle { + color: var(--text-secondary); + font-size: 1.1rem; +} + +/* Upload Section */ +.upload-section { + background: var(--bg-secondary); + border-radius: var(--radius-lg); + padding: 2rem; + box-shadow: var(--shadow-lg); + margin-bottom: 2rem; +} + +/* Document Type Selector */ +.doc-type-selector { + display: flex; + gap: 1rem; + margin-bottom: 1.5rem; +} + +.doc-btn { + flex: 1; + display: flex; + align-items: center; + justify-content: center; + gap: 0.5rem; + padding: 1rem; + background: var(--bg-tertiary); + border: 2px solid transparent; + border-radius: var(--radius); + color: var(--text-secondary); + font-size: 1rem; + font-weight: 600; + cursor: pointer; + transition: all 0.3s ease; +} + +.doc-btn:hover { + background: var(--bg-primary); + color: var(--text-primary); +} + +.doc-btn.active { + background: var(--accent-gradient); + color: white; + border-color: var(--accent-secondary); +} + +.doc-btn .icon { + font-size: 1.5rem; +} + +/* Dropzone */ +.dropzone { + border: 2px dashed var(--border); + border-radius: var(--radius); + padding: 3rem 2rem; + text-align: center; + cursor: pointer; + transition: all 0.3s ease; + background: var(--bg-tertiary); + position: relative; + overflow: hidden; +} + +.dropzone:hover, +.dropzone.dragover { + border-color: var(--accent-primary); + background: rgba(99, 102, 241, 0.1); +} + +.dropzone-content { + display: flex; + flex-direction: column; + align-items: center; + gap: 0.5rem; +} + +.upload-icon { + font-size: 4rem; + margin-bottom: 0.5rem; +} + +.dropzone p { + color: var(--text-secondary); +} + +.dropzone .hint { + color: var(--text-muted); + font-size: 0.875rem; +} + +.file-btn { + display: inline-block; + padding: 0.75rem 1.5rem; + background: var(--accent-gradient); + color: white; + border-radius: var(--radius); + font-weight: 600; + cursor: pointer; + margin: 0.5rem 0; + transition: transform 0.2s ease; +} + +.file-btn:hover { + transform: scale(1.05); +} + +.file-types { + font-size: 0.75rem; + color: var(--text-muted); +} + +.preview-image { + max-width: 100%; + max-height: 400px; + border-radius: var(--radius); + cursor: pointer; +} + +/* Process Button */ +.process-btn { + width: 100%; + padding: 1rem; + margin-top: 1.5rem; + background: var(--accent-gradient); + border: none; + border-radius: var(--radius); + color: white; + font-size: 1.1rem; + font-weight: 600; + cursor: pointer; + transition: all 0.3s ease; + box-shadow: var(--shadow); +} + +.process-btn:hover:not(:disabled) { + transform: translateY(-2px); + box-shadow: var(--shadow-lg); +} + +.process-btn:disabled { + opacity: 0.5; + cursor: not-allowed; +} + +/* Results Section */ +.results-section { + background: var(--bg-secondary); + border-radius: var(--radius-lg); + padding: 2rem; + box-shadow: var(--shadow-lg); + animation: slideUp 0.3s ease; +} + +@keyframes slideUp { + from { + opacity: 0; + transform: translateY(20px); + } + + to { + opacity: 1; + transform: translateY(0); + } +} + +.results-header { + display: flex; + justify-content: space-between; + align-items: center; + margin-bottom: 1.5rem; + flex-wrap: wrap; + gap: 1rem; +} + +.results-header h2 { + font-size: 1.5rem; +} + +.results-actions { + display: flex; + gap: 0.5rem; +} + +.action-btn { + padding: 0.5rem 1rem; + background: var(--bg-tertiary); + border: 1px solid var(--border); + border-radius: var(--radius); + color: var(--text-primary); + font-size: 0.875rem; + cursor: pointer; + transition: all 0.2s ease; +} + +.action-btn:hover { + background: var(--accent-primary); + border-color: var(--accent-primary); +} + +.action-btn.secondary { + background: transparent; +} + +/* Results Table */ +.results-table { + width: 100%; + border-collapse: collapse; +} + +.results-table th, +.results-table td { + padding: 0.875rem 1rem; + text-align: left; + border-bottom: 1px solid var(--border); +} + +.results-table th { + background: var(--bg-tertiary); + color: var(--text-secondary); + font-weight: 600; + font-size: 0.875rem; + text-transform: uppercase; + letter-spacing: 0.05em; +} + +.results-table th:first-child { + border-radius: var(--radius) 0 0 0; +} + +.results-table th:last-child { + border-radius: 0 var(--radius) 0 0; +} + +.field-label { + color: var(--text-secondary); + font-weight: 500; + width: 40%; +} + +.field-value { + color: var(--text-primary); + font-weight: 600; +} + +.results-table tr:hover { + background: rgba(99, 102, 241, 0.05); +} + +/* Editable Fields */ +.editable-field { + width: 100%; + padding: 0.5rem 0.75rem; + background: var(--bg-tertiary); + border: 1px solid var(--border); + border-radius: 6px; + color: var(--text-primary); + font-size: 0.95rem; + font-weight: 600; + font-family: inherit; + transition: all 0.2s ease; +} + +.editable-field:focus { + outline: none; + border-color: var(--accent-primary); + background: var(--bg-secondary); + box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.2); +} + +.editable-field::placeholder { + color: var(--text-muted); + font-weight: 400; +} + +/* Region Dropdown Styles */ +.region-field-wrapper { + display: flex; + gap: 0.5rem; + align-items: center; +} + +.region-field-wrapper input, +.region-field-wrapper select { + flex: 1; +} + +.region-dropdown { + width: 100%; + padding: 0.5rem 0.75rem; + background: var(--bg-tertiary); + border: 1px solid var(--border); + border-radius: 6px; + color: var(--text-primary); + font-size: 0.95rem; + font-family: inherit; + cursor: pointer; +} + +.region-dropdown:focus { + outline: none; + border-color: var(--accent-primary); +} + +.dropdown-toggle { + padding: 0.5rem 0.75rem; + background: var(--bg-tertiary); + border: 1px solid var(--border); + border-radius: 6px; + color: var(--text-secondary); + cursor: pointer; + transition: all 0.2s ease; + flex-shrink: 0; +} + +.dropdown-toggle:hover { + background: var(--accent-primary); + color: white; +} + +.dropdown-toggle.confirmed { + background: var(--success); + color: white; + border-color: var(--success); +} + +/* Validation Indicators */ +.validation-status { + margin-left: 0.5rem; + font-size: 0.875rem; +} + +.validation-status.valid-field { + color: var(--success); +} + +.validation-status.invalid-field { + color: var(--warning); +} + +.editable-field.valid-field { + border-color: var(--success); +} + +.editable-field.invalid-field { + border-color: var(--warning); +} + +.suggestion-text { + font-size: 0.75rem; + color: var(--text-muted); + margin-top: 0.25rem; + font-style: italic; +} + +/* Raw Text Section */ +.raw-text-section { + margin-top: 1.5rem; + padding-top: 1.5rem; + border-top: 1px solid var(--border); +} + +.raw-text-section h3 { + font-size: 1rem; + color: var(--text-secondary); + margin-bottom: 1rem; +} + +.raw-text-section pre { + background: var(--bg-primary); + padding: 1rem; + border-radius: var(--radius); + font-family: 'Consolas', monospace; + font-size: 0.875rem; + color: var(--text-secondary); + white-space: pre-wrap; + word-wrap: break-word; + max-height: 300px; + overflow-y: auto; +} + +/* Error Section */ +.error-section { + margin-top: 1rem; +} + +.error-content { + background: rgba(239, 68, 68, 0.1); + border: 1px solid var(--error); + border-radius: var(--radius); + padding: 1rem; + display: flex; + align-items: center; + gap: 0.75rem; +} + +.error-icon { + font-size: 1.5rem; +} + +.error-content p { + color: var(--error); +} + +/* Footer */ +footer { + text-align: center; + margin-top: 2rem; + padding-top: 1rem; + border-top: 1px solid var(--border); +} + +footer p { + color: var(--text-muted); + font-size: 0.875rem; +} + +footer a { + color: var(--accent-secondary); + text-decoration: none; +} + +footer a:hover { + text-decoration: underline; +} + +/* Responsive */ +@media (max-width: 600px) { + .container { + padding: 1rem; + } + + header h1 { + font-size: 2rem; + } + + .upload-section, + .results-section { + padding: 1.5rem; + } + + .doc-type-selector { + flex-direction: column; + } + + .results-header { + flex-direction: column; + align-items: flex-start; + } + + .results-actions { + width: 100%; + justify-content: flex-start; + } + + .field-label { + width: 45%; + } +} + +/* Scrollbar */ +::-webkit-scrollbar { + width: 8px; + height: 8px; +} + +::-webkit-scrollbar-track { + background: var(--bg-tertiary); +} + +::-webkit-scrollbar-thumb { + background: var(--border); + border-radius: 4px; +} + +::-webkit-scrollbar-thumb:hover { + background: var(--text-muted); +} \ No newline at end of file diff --git a/templates/index.html b/templates/index.html new file mode 100644 index 0000000..7f70e90 --- /dev/null +++ b/templates/index.html @@ -0,0 +1,570 @@ + + + + + + + OCR KTP/KK - Pembaca Dokumen Indonesia + + + + +

+ + + + + \ No newline at end of file