diff --git a/.gitignore b/.gitignore index c0c4c36..e589450 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ api/data/ +api/data.* api/saved_models/ api/testimages/ **/__pycache__/ diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..4842286 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,5 @@ +{ + "python.analysis.extraPaths": [ + "./api" + ] +} \ No newline at end of file diff --git a/api/src/__init__.py b/api/src/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/api/src/bird_cnn/__init__.py b/api/src/bird_cnn/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/api/src/bird_cnn/train_bird.py b/api/src/bird_cnn/train_bird.py index 829d6cd..d0bc2a9 100644 --- a/api/src/bird_cnn/train_bird.py +++ b/api/src/bird_cnn/train_bird.py @@ -1,16 +1,14 @@ +from enum import Enum + import torch import torch.nn as nn import torchvision +from PIL import Image from torchvision import datasets, transforms from torch.utils.data import DataLoader, random_split -import matplotlib.pyplot as plt -from util import TransformedSubset, visualizeData -from .bird_cnn import Bird_CNN, sample, trainCNN - -from enum import Enum - -from PIL import Image +from src.bird_cnn.bird_cnn import Bird_CNN, sample, trainCNN +from src.util import TransformedSubset, visualizeData SAVE_PATH = "../saved_models" IMAGE_SIZE = 128 diff --git a/api/src/main.py b/api/src/main.py index 67f00b9..fd1a190 100644 --- a/api/src/main.py +++ b/api/src/main.py @@ -1,10 +1,4 @@ -import sys - -sys.path.insert(1, './src/yolo') -from train_yolo_faces import train_yolo - -sys.path.insert(2, './src/bird_cnn') -from bird_cnn import Bird_CNN +from src.yolo.train_yolo_faces import train_yolo def main(): diff --git a/api/src/r_cnn/__init__.py b/api/src/r_cnn/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/api/src/r_cnn/createObjectDetectionDataset.py b/api/src/r_cnn/createObjectDetectionDataset.py index bf3cc4b..ee996bd 100644 --- a/api/src/r_cnn/createObjectDetectionDataset.py +++ b/api/src/r_cnn/createObjectDetectionDataset.py @@ -1,12 +1,14 @@ +import random from pathlib import Path -from tqdm import tqdm -from ..util import iou -from .cocoDetectionDataset import CocoDetectionDataset -from torchvision.transforms import ToPILImage, ToTensor + import torch import torchvision.transforms.functional as TF +from torchvision.transforms import ToPILImage, ToTensor from torch.utils.data import DataLoader -import random +from tqdm import tqdm + +from src.r_cnn.cocoDetectionDataset import CocoDetectionDataset +from src.util import iou diff --git a/api/src/r_cnn/r_cnn.py b/api/src/r_cnn/r_cnn.py index 199b135..f630786 100644 --- a/api/src/r_cnn/r_cnn.py +++ b/api/src/r_cnn/r_cnn.py @@ -1,12 +1,14 @@ import os +import random + import cv2 import torch +import torch.nn as nn +import torch.nn.functional as F import torchvision.transforms.functional as TF from tqdm import tqdm -import torch.nn as nn -from util import iou, visualizeImage -import random -import torch.nn.functional as F + +from src.util import iou, visualizeImage class ObjectDetectionCNN(nn.Module): diff --git a/api/src/r_cnn/r_cnn_test.py b/api/src/r_cnn/r_cnn_test.py index de3ab82..5e81dec 100644 --- a/api/src/r_cnn/r_cnn_test.py +++ b/api/src/r_cnn/r_cnn_test.py @@ -5,8 +5,8 @@ from torch.utils.data import DataLoader from torchvision.transforms import ToTensor import torch.nn as nn -from .r_cnn import ObjectDetectionCNN, train, eval -from .cocoDetectionDataset import CocoDetectionDataset +from src.r_cnn.cocoDetectionDataset import CocoDetectionDataset +from src.r_cnn.r_cnn import ObjectDetectionCNN, eval, train def get_transform(): diff --git a/api/src/r_cnn/train_face_detection_r_cnn.py b/api/src/r_cnn/train_face_detection_r_cnn.py index e8f545e..383e7a4 100644 --- a/api/src/r_cnn/train_face_detection_r_cnn.py +++ b/api/src/r_cnn/train_face_detection_r_cnn.py @@ -1,17 +1,14 @@ import os -from torchvision import transforms -from tqdm import tqdm -from util import TransformedSubset, visualizeImage -from api.src.r_cnn.r_cnn import ObjectDetectionCNN, trainNormalDataset, eval -from torch.utils.data import DataLoader, random_split -from torchvision import datasets import torch import torch.nn as nn +from torchvision import datasets, transforms from torchvision.io import read_image -from torch.utils.data import WeightedRandomSampler - +from torch.utils.data import DataLoader, WeightedRandomSampler, random_split +from tqdm import tqdm +from src.r_cnn.r_cnn import ObjectDetectionCNN, eval, trainNormalDataset +from src.util import TransformedSubset, visualizeImage SAVE_PATH = "./saved_models" PADDING = 20 diff --git a/api/src/yolo/__init__.py b/api/src/yolo/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/api/src/yolo/train_yolo_faces.py b/api/src/yolo/train_yolo_faces.py index 4407992..224577b 100644 --- a/api/src/yolo/train_yolo_faces.py +++ b/api/src/yolo/train_yolo_faces.py @@ -2,17 +2,17 @@ import os import cv2 from tqdm import tqdm -from yolo_dataset import YoloDataset -from yolo_model import train, Yolo_model, sample -from yolo_loss import YoloLoss -from util import TransformedSubset, test_workers_speed, visualizeImage +import torch +import torch.nn.functional as F from torch.utils.data import DataLoader, random_split from torchvision import datasets -import torch from torchvision.utils import draw_bounding_boxes -import torch.nn.functional as F -from production.yolo_model_production import convert_prediction +from src.util import TransformedSubset, test_workers_speed, visualizeImage +from src.production.yolo_model_production import convert_prediction +from src.yolo.yolo_dataset import YoloDataset +from src.yolo.yolo_loss import YoloLoss +from src.yolo.yolo_model import Yolo_model, sample, train def view_data(dataset): dataloader = DataLoader(dataset=dataset, batch_size=1, shuffle=True) @@ -140,8 +140,8 @@ def train_yolo(): loss_module = YoloLoss() - #view_data(dataset_valid) - #exit() + view_data(dataset_valid) + exit() #sample_data(dataloader=val_loader, model=model, device=device, SAVE_PATH=SAVE_PATH)