diff --git a/src/app/coco-ssd/page.js b/src/app/coco-ssd/page.js index c665ac2..3044d0f 100644 --- a/src/app/coco-ssd/page.js +++ b/src/app/coco-ssd/page.js @@ -3,12 +3,15 @@ import { useState, useEffect, useRef } from "react"; import * as cocoSsd from "@tensorflow-models/coco-ssd"; import "@tensorflow/tfjs"; -import { Button } from "@/components/ui/button"; import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card"; import { Alert, AlertDescription, AlertTitle } from "@/components/ui/alert"; import { Progress } from "@/components/ui/progress"; -import { Upload, Zap } from "lucide-react"; import Image from "next/image"; +import ImageUploader from "@/components/pages/coco-ssd/ImageUploader"; +import DetectedObjectsList from "@/components/pages/coco-ssd/DetectedObjectsList"; +import Header from "@/components/common/Header"; +import Footer from "@/components/common/Footer"; +import { Github } from "lucide-react"; export default function ObjectDetection() { const canvasRef = useRef(null); @@ -40,8 +43,14 @@ export default function ObjectDetection() { const handleFileChange = (event) => { const file = event.target.files?.[0]; if (file) { + setUploadedImage(null); + setDetectedObjects([]); + setError(null); + const reader = new FileReader(); - reader.onload = () => setUploadedImage(reader.result); + reader.onload = () => { + setUploadedImage(reader.result); + }; reader.readAsDataURL(file); } }; @@ -86,111 +95,64 @@ export default function ObjectDetection() { }; return ( - - - - Object Detection - - - - {loadingState.loading && loadingState.progress < 100 && ( -
-

Loading model...

- -
- )} - - {error && ( - - Error - {error} - - )} - -
- - -
- {uploadedImage && ( - <> - Uploaded - - - )} +
+
+ + + + COCO-SSD Model + + + + {loadingState.loading && loadingState.progress < 100 && ( +
+

Loading model...

+ +
+ )} + + {error && ( + + Error + {error} + + )} + +
+ + +
+ {uploadedImage && ( + <> + Uploaded + + + )} +
-
- {detectedObjects.length > 0 && ( - - )} - - + {detectedObjects.length > 0 && ( + + )} + + +
+
); } - -const ImageUploader = ({ handleFileChange, startDetection, isDisabled }) => ( -
-
- -
- - -
-); - -const DetectedObjectsList = ({ detectedObjects }) => ( -
-

Detected Objects:

-
    - {detectedObjects.map((obj, index) => ( -
  • - {obj.class} - - {(obj.score * 100).toFixed(2)}% - -
  • - ))} -
-
-); diff --git a/src/app/mobilenet/page.js b/src/app/mobilenet/page.js index 6f0809e..26b573b 100644 --- a/src/app/mobilenet/page.js +++ b/src/app/mobilenet/page.js @@ -96,11 +96,11 @@ export default function MobileNet() { return (
-
{/* Use Header component here */} +
- Analyze Your Image + MobileNet Model
diff --git a/src/components/pages/coco-ssd/DetectedObjectsList.js b/src/components/pages/coco-ssd/DetectedObjectsList.js new file mode 100644 index 0000000..f0c8579 --- /dev/null +++ b/src/components/pages/coco-ssd/DetectedObjectsList.js @@ -0,0 +1,22 @@ +"use client"; + +export default function DetectedObjectsList({ detectedObjects }) { + return ( +
+

Detected Objects:

+
    + {detectedObjects.map((obj, index) => ( +
  • + {obj.class} + + {(obj.score * 100).toFixed(2)}% + +
  • + ))} +
+
+ ); +} diff --git a/src/components/pages/coco-ssd/ImageUploader.js b/src/components/pages/coco-ssd/ImageUploader.js new file mode 100644 index 0000000..c8e25f7 --- /dev/null +++ b/src/components/pages/coco-ssd/ImageUploader.js @@ -0,0 +1,44 @@ +"use client"; + +import { Upload, Zap } from "lucide-react"; +import { Button } from "@/components/ui/button"; + +export default function ImageUploader({ + handleFileChange, + startDetection, + isDisabled, +}) { + return ( +
+
+ +
+ + +
+ ); +}