Files
recycling-project-solutions/templates/index.html
T
Aherobo Ovie Victor 26d7706233 Complete Memory Module Detection Project
 Core Features:
- Flask API with image upload and hardcoded image endpoints
- YOLOv8 Nano model trained (99.5% mAP50, 100% precision, 98.4% recall)
- Memory module detection with bounding box visualization
- Web frontend for QA testing with drag & drop interface

 API Endpoints:
- POST /detect - Image upload detection
- GET /detect/hardcoded - Hardcoded image testing
- POST /detect/base64 - Base64 image processing
- GET /health - Health check
- GET / - Web interface
- GET /api - API information

 Technical Implementation:
- Algorithm: YOLOv8 Nano (state-of-the-art performance)
- Hardware: Auto-detection with CPU/GPU fallback
- Video approach: Frame extraction + batch processing strategy
- Dataset: 40 images (20 with memory, 20 without)

 Additional Features:
- Comprehensive test suite (test_api.py)
- Web frontend for QA testing
- Automated setup script (setup.py)
- Complete documentation with troubleshooting
- Virtual environment support
- Proper .gitignore for ML projects

 All Tests Passed: 5/5 API endpoints working correctly
 Model Performance: Consistently detects memory modules with 97%+ confidence
 Requirements Met: 100% compliance with original task specification
2025-07-11 20:07:36 +01:00

104 lines
4.6 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Memory Module Detection - QA Testing Interface</title>
<link rel="stylesheet" href="{{ url_for('static', filename='style.css') }}">
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css" rel="stylesheet">
</head>
<body>
<div class="container">
<header>
<h1><i class="fas fa-microchip"></i> Memory Module Detection</h1>
<p>QA Testing Interface for Motherboard Memory Module Detection</p>
<div class="status-indicator" id="apiStatus">
<i class="fas fa-circle"></i> <span>Checking API...</span>
</div>
</header>
<main>
<!-- API Information Panel -->
<section class="panel" id="apiInfoPanel">
<h2><i class="fas fa-info-circle"></i> API Information</h2>
<div class="api-info" id="apiInfo">
<div class="loading">Loading API information...</div>
</div>
</section>
<!-- Test Options -->
<section class="panel">
<h2><i class="fas fa-vial"></i> Test Options</h2>
<div class="test-options">
<button class="btn btn-primary" onclick="testHardcodedImage()">
<i class="fas fa-image"></i> Test Hardcoded Image
</button>
<button class="btn btn-secondary" onclick="showUploadSection()">
<i class="fas fa-upload"></i> Upload Custom Image
</button>
<button class="btn btn-info" onclick="runAllTests()">
<i class="fas fa-play"></i> Run All Tests
</button>
</div>
</section>
<!-- Image Upload Section -->
<section class="panel" id="uploadSection" style="display: none;">
<h2><i class="fas fa-cloud-upload-alt"></i> Upload Image</h2>
<div class="upload-area" id="uploadArea">
<div class="upload-content">
<i class="fas fa-cloud-upload-alt upload-icon"></i>
<p>Drag and drop an image here or click to select</p>
<p class="upload-hint">Supported formats: PNG, JPG, JPEG, GIF, BMP</p>
<input type="file" id="fileInput" accept="image/*" style="display: none;">
<button class="btn btn-outline" onclick="document.getElementById('fileInput').click()">
Select Image
</button>
</div>
</div>
<div class="upload-controls" style="display: none;" id="uploadControls">
<div class="confidence-control">
<label for="confidenceSlider">Confidence Threshold: <span id="confidenceValue">0.5</span></label>
<input type="range" id="confidenceSlider" min="0.1" max="1.0" step="0.1" value="0.5">
</div>
<button class="btn btn-success" onclick="processUploadedImage()">
<i class="fas fa-search"></i> Detect Memory Modules
</button>
</div>
</section>
<!-- Results Section -->
<section class="panel" id="resultsSection" style="display: none;">
<h2><i class="fas fa-chart-bar"></i> Detection Results</h2>
<div class="results-content" id="resultsContent">
<!-- Results will be populated here -->
</div>
</section>
<!-- Test Results Section -->
<section class="panel" id="testResultsSection" style="display: none;">
<h2><i class="fas fa-clipboard-check"></i> Test Results</h2>
<div class="test-results" id="testResults">
<!-- Test results will be populated here -->
</div>
</section>
</main>
<footer>
<p>&copy; 2024 Memory Module Detection Project - QA Testing Interface</p>
</footer>
</div>
<!-- Loading Overlay -->
<div class="loading-overlay" id="loadingOverlay" style="display: none;">
<div class="loading-content">
<i class="fas fa-spinner fa-spin"></i>
<p id="loadingText">Processing...</p>
</div>
</div>
<script src="{{ url_for('static', filename='script.js') }}"></script>
</body>
</html>