From 17d0147173c8a95573dd92f29a5977320eaca2de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marvin=20Krau=C3=9Fer?= Date: Wed, 6 May 2026 16:01:10 +0200 Subject: [PATCH] changed website structure, added new cnn files --- bird_cnn/r-cnn.py | 51 ++++++++++++++++++ bird_cnn/selective_search.py | 85 +++++++++++++++++++++++++++++ bird_cnn/testimages/two_crows.jpg | Bin 0 -> 67013 bytes cnn_website/src/Bird_CNN.css | 87 ++++++++++++++++++++++++++---- cnn_website/src/Bird_CNN.jsx | 25 +++++---- 5 files changed, 225 insertions(+), 23 deletions(-) create mode 100644 bird_cnn/r-cnn.py create mode 100644 bird_cnn/selective_search.py create mode 100644 bird_cnn/testimages/two_crows.jpg diff --git a/bird_cnn/r-cnn.py b/bird_cnn/r-cnn.py new file mode 100644 index 0000000..22792a1 --- /dev/null +++ b/bird_cnn/r-cnn.py @@ -0,0 +1,51 @@ +import torch +import torch.nn as nn +import torchvision +from torchvision import datasets, transforms +from torch.utils.data import DataLoader, random_split +import matplotlib.pyplot as plt + +from bird_cnn import Bird_CNN, sample, trainCNN + +from enum import Enum + +from PIL import Image + +SAVE_PATH = "./saved_models" +IMAGE_SIZE = 64 + +class bird_species(Enum): + Common_Kingfisher = 0 + CommonMyna = 1 + House_Crow = 2 + Indian_Peacock = 3 + Indian_Pitta = 4 + Ruddy_Shelduck = 5 + Sarus_Crane = 6 + +transform = transforms.Compose([ + transforms.Resize(IMAGE_SIZE), + transforms.CenterCrop(IMAGE_SIZE), + transforms.ToTensor() +]) + +dataset = datasets.ImageFolder("data/train", transform=transform) + +train_size = int(0.8 * len(dataset)) +val_size = len(dataset) - train_size + +train_dataset, val_dataset = random_split(dataset, [train_size, val_size]) + +train_loader = DataLoader(train_dataset, batch_size=32, shuffle=True) +val_loader = DataLoader(val_dataset, batch_size=32, shuffle=False) + + +device = torch.device("cpu") if not torch.cuda.is_available() else torch.device("cuda:0") +print("Using device", device) + +model = Bird_CNN(c_in=3, c_hidden=32, c_out=7) +model.to(device) +optimizer = torch.optim.Adam(model.parameters(), lr=1e-3, weight_decay=1e-4) +loss_module = nn.CrossEntropyLoss() + +trainCNN(model, optimizer, loss_module, train_loader, val_loader, device, 50, SAVE_PATH=SAVE_PATH, save=True) \ No newline at end of file diff --git a/bird_cnn/selective_search.py b/bird_cnn/selective_search.py new file mode 100644 index 0000000..a6339e4 --- /dev/null +++ b/bird_cnn/selective_search.py @@ -0,0 +1,85 @@ +from collections import defaultdict +from enum import Enum +import os + +import numpy as np +import matplotlib.pyplot as plt +import cv2 + +import torch +from torchvision import transforms +import torch.nn.functional as F + +from bird_cnn import Bird_CNN + +from PIL import Image + + + +BUILD_PATH = "./build_models" +IMAGE_SIZE = 64 + +class bird_species(Enum): + Common_Kingfisher = 0 + CommonMyna = 1 + House_Crow = 2 + Indian_Peacock = 3 + Indian_Pitta = 4 + Ruddy_Shelduck = 5 + Sarus_Crane = 6 + +transform = transforms.Compose([ + transforms.Resize(IMAGE_SIZE), + transforms.CenterCrop(IMAGE_SIZE), + transforms.ToTensor() +]) + +device = torch.device("cuda" if torch.cuda.is_available() else "cpu") + +model = Bird_CNN(c_in=3, c_hidden=16, c_out=7) +full_path = os.path.join(BUILD_PATH, "bird_cnn") +model.load_state_dict(torch.load(full_path, map_location=torch.device(device))) +model.to(device) +model.eval() + +img = cv2.imread("./testimages/two_crows.jpg") + +if img is None: + raise ValueError("Image not found or path is wrong") + +ss = cv2.ximgproc.segmentation.createSelectiveSearchSegmentation() +ss.setBaseImage(img) + +ss.switchToSelectiveSearchFast() +rects = ss.process() + +# convert to array for easy sorting +rects = np.array(rects) + +# compute area +areas = rects[:, 2] * rects[:, 3] + +# sort by area (descending) +idx = np.argsort(-areas) + +# take top 10 +top10 = rects[idx[:200]] +class_conf_sum = defaultdict(float) + +for (x, y, w, h) in top10: + #cv2.rectangle(img_copy, (x, y), (x + w, y + h), (0, 255, 0), 1) + crop = img[y:y+h, x:x+w] + crop_pil = Image.fromarray(cv2.cvtColor(crop, cv2.COLOR_BGR2RGB)) + image = transform(crop_pil).unsqueeze(0).to(device) + + with torch.no_grad(): + pred = model(image) + probs = F.softmax(pred, dim=1) + confidence, cls = torch.max(probs, dim=1) + if confidence.item() < 0.7: + continue + + class_conf_sum[cls.item()] += confidence.item() + +for i in range(6): + print(str(i) + ": " + str(class_conf_sum[i])) diff --git a/bird_cnn/testimages/two_crows.jpg b/bird_cnn/testimages/two_crows.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b734da00ee845c23e9f4ca82ebad7ab9416fd8e6 GIT binary patch literal 67013 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 yCpDY)#9=7| */ .loader { - width: 85px; - height: 25px; + width: 100%; + height: 100%; --g1: conic-gradient(from 90deg at left 3px top 3px, #0000 90deg, #fff 0); --g2: conic-gradient(from -90deg at bottom 3px right 3px, #0000 90deg, #fff 0); background: var(--g1), var(--g1), var(--g1), var(--g2), var(--g2), var(--g2); @@ -136,4 +155,52 @@ a:hover { 100% { background-size: 25px 100%, 25px 100%, 25px 100% } +} + +.site-box { + margin-top: 150px; + width: 100%; +} + +.request-box { + height: fit-content; + width: min(700px, 80%); + display: flex; + flex-direction: column; + align-items: center; + flex: 0 0 auto; + margin: 0px 50px 0px 50px; +} + +.request-box * { + box-sizing: content-box; +} + +.input-box { + scroll-margin-top: 100px; + width: min(500px, 100%); + height: 160px; + display: flex; + justify-content: space-evenly; + align-items: center; + flex-wrap: wrap; + gap: 20px; +} + +.response-block { + width: 80%; + height: 100px; + margin: 40px; + display: flex; + flex-direction: column; + align-items: flex-start; + justify-content: center; + gap: 40px; +} + +.conten-block-text { + display: flex; + flex-direction: column; + justify-content: center; + margin: 0; } \ No newline at end of file diff --git a/cnn_website/src/Bird_CNN.jsx b/cnn_website/src/Bird_CNN.jsx index 2bbdf8e..e0d234b 100644 --- a/cnn_website/src/Bird_CNN.jsx +++ b/cnn_website/src/Bird_CNN.jsx @@ -85,7 +85,7 @@ function Bird_CNN() { return ( <> -
+

Bird Species Expert

@@ -93,15 +93,15 @@ function Bird_CNN() { Select an image and upload it to our bird expert. You will receive a classification and how certain the expert is with her opinion. Be aware that the expert may not be always right.
-
-
-
+
+
+
-
+
-
+
{loading &&
}
-
+
-

Bird Species:

-

{birdClass}

+

Bird Species:

+

{birdClass}

-

Model Confidence:

-

{confidence}

+

Model Confidence:

+

{confidence}

- {error &&

An Error has uccured. Please try again later.

} + {error &&

An Error has uccured. Please try again later.

}