-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtest.py
More file actions
46 lines (37 loc) · 1.4 KB
/
Copy pathtest.py
File metadata and controls
46 lines (37 loc) · 1.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
import pandas as pd
import string
import random
# ------------------------
# Config
# ------------------------
csv_file = "image_data.csv"
img_dir = "resized_plates"
# Allowed vocab (Tamil Nadu plates: TN00AA0000 format)
allowed_chars = set(string.ascii_uppercase + string.digits) # A-Z, 0-9
special_tokens = {"<pad>", "<sos>", "<eos>"}
# ------------------------
# Load CSV
# ------------------------
df = pd.read_csv(csv_file)
if "license_plate" not in df.columns or "image_name" not in df.columns:
raise ValueError("CSV must have columns: 'image_name', 'license_plate'")
print(f"✅ Loaded {len(df)} samples from {csv_file}")
# ------------------------
# Collect stats
# ------------------------
all_chars = set("".join(df["license_plate"].astype(str).tolist()))
invalid_chars = all_chars - allowed_chars
print("\n📊 Dataset Stats:")
print(f"Unique characters in labels: {sorted(all_chars)}")
print(f"Total unique characters: {len(all_chars)}")
if invalid_chars:
print(f"\n⚠️ Found invalid characters: {sorted(invalid_chars)}")
else:
print("\n✅ All characters are valid (A-Z, 0-9 only)")
# ------------------------
# Sample rows
# ------------------------
print("\n🔎 Sample entries:")
for i in random.sample(range(len(df)), min(10, len(df))):
row = df.iloc[i]
print(f"Image: {img_dir}/{row['image_name']} -> Label: {row['license_plate']}")