Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions models/model_32offjns/requirements.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
ultralytics
opencv-python
ipykernel
8 changes: 4 additions & 4 deletions models/model_32offjns/src/architecture.py
Original file line number Diff line number Diff line change
Expand Up @@ -41,13 +41,13 @@ def __init__(self, lookback):
self.bottleneck = self.conv_block(512, 1024)

# Expansive path
self.upconv4 = nn.ConvTranspose2d(1024, 512, kernel_size=2, stride=1)
self.upconv4 = nn.ConvTranspose2d(1024, 512, kernel_size=2, stride=2)
self.dec4 = self.conv_block(1024, 512)
self.upconv3 = nn.ConvTranspose2d(512, 256, kernel_size=2, stride=1)
self.upconv3 = nn.ConvTranspose2d(512, 256, kernel_size=2, stride=2)
self.dec3 = self.conv_block(512, 256)
self.upconv2 = nn.ConvTranspose2d(256, 128, kernel_size=2, stride=1)
self.upconv2 = nn.ConvTranspose2d(256, 128, kernel_size=2, stride=2)
self.dec2 = self.conv_block(256, 128)
self.upconv1 = nn.ConvTranspose2d(128, 64, kernel_size=2, stride=1)
self.upconv1 = nn.ConvTranspose2d(128, 64, kernel_size=2, stride=2)
self.dec1 = self.conv_block(128, 64)

# Final layer
Expand Down
Binary file added models/model_32offjns/src/best_01_26.pt
Binary file not shown.
28 changes: 24 additions & 4 deletions models/model_32offjns/src/dataset.py
Original file line number Diff line number Diff line change
Expand Up @@ -114,10 +114,30 @@ def __getitem__(self, idx):
label_drivable_area_dir = f"{self.dataset_dir}/{self.data[idx]['dataset']}/label/drivable_area/{data_idx_str}.jpg"
label_cones_dir = f"{self.dataset_dir}/{self.data[idx]['dataset']}/label/cones/{data_idx_str}.jpg"

label_background = torch.tensor(cv2.imread(label_background_dir, cv2.IMREAD_GRAYSCALE), device=self.device, dtype=torch.float32)
label_lane_lines = torch.tensor(cv2.imread(label_lane_lines_dir, cv2.IMREAD_GRAYSCALE), device=self.device, dtype=torch.float32)
label_drivable_area = torch.tensor(cv2.imread(label_drivable_area_dir, cv2.IMREAD_GRAYSCALE), device=self.device, dtype=torch.float32)
label_cones = torch.tensor(cv2.imread(label_cones_dir, cv2.IMREAD_GRAYSCALE), device=self.device, dtype=torch.float32)
# label_background = torch.tensor(cv2.imread(label_background_dir, cv2.IMREAD_GRAYSCALE), device=self.device, dtype=torch.float32)
# label_lane_lines = torch.tensor(cv2.imread(label_lane_lines_dir, cv2.IMREAD_GRAYSCALE), device=self.device, dtype=torch.float32)
# label_drivable_area = torch.tensor(cv2.imread(label_drivable_area_dir, cv2.IMREAD_GRAYSCALE), device=self.device, dtype=torch.float32)
# label_cones = torch.tensor(cv2.imread(label_cones_dir, cv2.IMREAD_GRAYSCALE), device=self.device, dtype=torch.float32)
label_background = torch.tensor(
cv2.imread(label_background_dir, cv2.IMREAD_GRAYSCALE) if cv2.imread(label_background_dir, cv2.IMREAD_GRAYSCALE) is not None else np.zeros((384, 640), dtype=np.uint8),
device=self.device,
dtype=torch.float32
)
label_lane_lines = torch.tensor(
cv2.imread(label_lane_lines_dir, cv2.IMREAD_GRAYSCALE) if cv2.imread(label_lane_lines_dir, cv2.IMREAD_GRAYSCALE) is not None else np.zeros((384, 640), dtype=np.uint8),
device=self.device,
dtype=torch.float32
)
label_drivable_area = torch.tensor(
cv2.imread(label_drivable_area_dir, cv2.IMREAD_GRAYSCALE) if cv2.imread(label_drivable_area_dir, cv2.IMREAD_GRAYSCALE) is not None else np.zeros((384, 640), dtype=np.uint8),
device=self.device,
dtype=torch.float32
)
label_cones = torch.tensor(
cv2.imread(label_cones_dir, cv2.IMREAD_GRAYSCALE) if cv2.imread(label_cones_dir, cv2.IMREAD_GRAYSCALE) is not None else np.zeros((384, 640), dtype=np.uint8),
device=self.device,
dtype=torch.float32
)

label_shape = label_background.shape
label = torch.zeros((label_shape[0], label_shape[1], 4), device=self.device, dtype=torch.long)
Expand Down
16 changes: 16 additions & 0 deletions models/model_32offjns/src/methods.py
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,22 @@ def upload_model_weights(model, dbx_access_token, delete=True):
if delete:
os.remove(local_model_weights_dir)

def upload_dataset_to_dropbox(dataset_name, dbx_access_token):
if dbx_access_token == "":
print("Dropbox access token uninitialized. Unable to upload dataset.")
return
try:
dbx = dropbox.Dropbox(dbx_access_token)
except:
print("Could not connect to Dropbox when attempting to upload dataset.")
return
# TODO: modify slightly to accomodate the upload of data and labels properly
dbx_dataset_dir = f'/UMARV/ComputerVision/ScenePerception/datasets/{dataset_name}'
local_dataset_dir = f'{os.getenv("REPO_DIR")}/datasets/{dataset_name}'
with open(local_dataset_dir, 'rb') as file:
dbx.files_upload(file.read(), dbx_dataset_dir, mode=dropbox.files.WriteMode("overwrite"))
print(f"Uploaded dataset \"{dataset_name}\" to Dropbox.")

def download_model_weights(model, dbx_access_token, delete=True):
if dbx_access_token == "":
print("Dropbox access token uninitialized. Unable to download model weights.")
Expand Down
Loading