File size: 2,354 Bytes
3b315f3 | 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 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 | <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>WaterMeter AI</title>
<link rel="stylesheet" href="style.css" />
<script src="https://cdn.jsdelivr.net/npm/onnxruntime-web/dist/ort.min.js"></script>
</head>
<body>
<div class="background"></div>
<main class="container">
<header class="hero">
<div>
<h1>💧 WaterMeter AI</h1>
<p>Upload a meter photo and read the digits with a YOLOv8 ONNX model.</p>
</div>
<div class="status-group">
<span id="modelStatus" class="badge loading">Loading model...</span>
<span id="appHint" class="hint">Upload <strong>best.onnx</strong> to the repository root.</span>
</div>
</header>
<section class="upload-card">
<div id="dropZone" class="drop-zone">
<input type="file" id="imageInput" accept="image/*" hidden />
<div class="upload-content">
<h2>Upload or drop an image</h2>
<p>Drag and drop a water meter photo, or browse locally.</p>
<button id="browseBtn" type="button">Browse Image</button>
</div>
</div>
</section>
<section class="viewer">
<div class="image-card">
<div class="card-header">
<h3>Preview</h3>
<span id="imageInfo" class="muted">No image selected.</span>
</div>
<div class="canvas-viewport">
<canvas id="canvas"></canvas>
</div>
</div>
<div class="result-card">
<h3>Prediction</h3>
<div class="reading">
<span class="title">Meter Reading</span>
<span id="meterReading">--</span>
</div>
<div class="confidence">
<span class="title">Average Confidence</span>
<span id="confidence">--</span>
</div>
<div class="prediction-footer">
<button id="predictBtn" class="primary-button" type="button">Analyze Image</button>
</div>
</div>
</section>
<section class="detections">
<h2>Detected Objects</h2>
<div id="detectionsList" class="detections-grid">
<p class="small-text">Upload an image and press Analyze Image to see detections.</p>
</div>
</section>
</main>
<script src="script.js"></script>
</body>
</html>
|