Add parse script
parent
81534dd112
commit
8614fd7312
|
@ -30,6 +30,10 @@ IMG_H = 160 # On better gpu use 256 and adam optimizer
|
||||||
IMG_W = IMG_H * 2
|
IMG_W = IMG_H * 2
|
||||||
DATASET_PATHS = [
|
DATASET_PATHS = [
|
||||||
"../../diplomska/datasets/oj/montreal_trial1/ge_images/images/",
|
"../../diplomska/datasets/oj/montreal_trial1/ge_images/images/",
|
||||||
|
#"../../diplomska/datasets/oj/montreal_trial1/teach/images/",
|
||||||
|
#"../../diplomska/datasets/oj/suffield_trial1/teach/images/",
|
||||||
|
#"../../diplomska/datasets/oj/utiascircle_trial1/teach/images/",
|
||||||
|
#"../../diplomska/datasets/oj/utiasday_trial1/teach/images/",
|
||||||
]
|
]
|
||||||
|
|
||||||
# configuring device
|
# configuring device
|
||||||
|
@ -154,7 +158,7 @@ class Encoder(nn.Module):
|
||||||
stride=stride,
|
stride=stride,
|
||||||
),
|
),
|
||||||
nn.BatchNorm2d(out_channels),
|
nn.BatchNorm2d(out_channels),
|
||||||
nn.Dropout(0.3),
|
nn.Dropout(0.4),
|
||||||
act_fn,
|
act_fn,
|
||||||
nn.Conv2d(
|
nn.Conv2d(
|
||||||
in_channels=out_channels,
|
in_channels=out_channels,
|
||||||
|
@ -163,7 +167,6 @@ class Encoder(nn.Module):
|
||||||
stride=stride,
|
stride=stride,
|
||||||
),
|
),
|
||||||
nn.BatchNorm2d(out_channels * 2),
|
nn.BatchNorm2d(out_channels * 2),
|
||||||
nn.Dropout(0.2),
|
|
||||||
act_fn,
|
act_fn,
|
||||||
nn.Conv2d(
|
nn.Conv2d(
|
||||||
in_channels=out_channels * 2,
|
in_channels=out_channels * 2,
|
||||||
|
@ -172,7 +175,7 @@ class Encoder(nn.Module):
|
||||||
stride=stride,
|
stride=stride,
|
||||||
),
|
),
|
||||||
nn.BatchNorm2d(out_channels * 4),
|
nn.BatchNorm2d(out_channels * 4),
|
||||||
nn.Dropout(0.1),
|
nn.Dropout(0.3),
|
||||||
act_fn,
|
act_fn,
|
||||||
nn.Conv2d(
|
nn.Conv2d(
|
||||||
in_channels=out_channels * 4,
|
in_channels=out_channels * 4,
|
||||||
|
@ -181,6 +184,7 @@ class Encoder(nn.Module):
|
||||||
stride=stride,
|
stride=stride,
|
||||||
),
|
),
|
||||||
nn.BatchNorm2d(out_channels * 8),
|
nn.BatchNorm2d(out_channels * 8),
|
||||||
|
nn.Dropout(0.1),
|
||||||
act_fn,
|
act_fn,
|
||||||
nn.Conv2d(
|
nn.Conv2d(
|
||||||
in_channels=out_channels * 8,
|
in_channels=out_channels * 8,
|
||||||
|
@ -371,9 +375,7 @@ class ConvolutionalAutoencoder:
|
||||||
# reconstructing images
|
# reconstructing images
|
||||||
output = self.network(val_images)
|
output = self.network(val_images)
|
||||||
# computing validation loss
|
# computing validation loss
|
||||||
val_loss = loss_function(
|
val_loss = loss_function(output.flatten(), val_images.flatten())
|
||||||
output, val_images.view(-1, 1, IMG_H, IMG_W)
|
|
||||||
)
|
|
||||||
|
|
||||||
# --------------
|
# --------------
|
||||||
# VISUALISATION
|
# VISUALISATION
|
||||||
|
@ -402,9 +404,7 @@ class ConvolutionalAutoencoder:
|
||||||
grid = grid.permute(1, 2, 0)
|
grid = grid.permute(1, 2, 0)
|
||||||
plt.figure(dpi=170)
|
plt.figure(dpi=170)
|
||||||
plt.title(
|
plt.title(
|
||||||
f"Original/Reconstructed, training loss: \
|
f"Original/Reconstructed, training loss: {round(loss.item(), 4)} validation loss: {round(val_loss.item(), 4)}"
|
||||||
{round(loss.item(), 4)} validation loss: \
|
|
||||||
{round(val_loss.item(), 4)}"
|
|
||||||
)
|
)
|
||||||
plt.imshow(grid)
|
plt.imshow(grid)
|
||||||
plt.axis("off")
|
plt.axis("off")
|
||||||
|
@ -504,8 +504,7 @@ def preprocess_data():
|
||||||
test_images.extend(test)
|
test_images.extend(test)
|
||||||
|
|
||||||
print(
|
print(
|
||||||
f"Training on {len(training_images)} images, validating on \
|
f"Training on {len(training_images)} images, validating on {len(validation_images)} images, testing on {len(test_images)} images"
|
||||||
{len(validation_images)} images, testing on {len(test_images)} images"
|
|
||||||
)
|
)
|
||||||
# creating pytorch datasets
|
# creating pytorch datasets
|
||||||
training_data = GEDataset(
|
training_data = GEDataset(
|
||||||
|
@ -564,7 +563,7 @@ def main():
|
||||||
training_data, validation_data, test_data = preprocess_data()
|
training_data, validation_data, test_data = preprocess_data()
|
||||||
model = ConvolutionalAutoencoder(Autoencoder(Encoder(), Decoder()))
|
model = ConvolutionalAutoencoder(Autoencoder(Encoder(), Decoder()))
|
||||||
model.train(
|
model.train(
|
||||||
nn.MSELoss(),
|
nn.MSELoss(reduction="sum"),
|
||||||
epochs=args.epochs,
|
epochs=args.epochs,
|
||||||
batch_size=args.batch_size,
|
batch_size=args.batch_size,
|
||||||
training_set=training_data,
|
training_set=training_data,
|
||||||
|
@ -576,7 +575,7 @@ def main():
|
||||||
elif args.test:
|
elif args.test:
|
||||||
t, v, td = preprocess_data()
|
t, v, td = preprocess_data()
|
||||||
model = ConvolutionalAutoencoder(Autoencoder(Encoder(), Decoder()))
|
model = ConvolutionalAutoencoder(Autoencoder(Encoder(), Decoder()))
|
||||||
model.test(nn.MSELoss(), td)
|
model.test(nn.MSELoss(reduction="sum"), td)
|
||||||
|
|
||||||
elif args.encode:
|
elif args.encode:
|
||||||
t, v, td = preprocess_data()
|
t, v, td = preprocess_data()
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
dataset/*
|
|
@ -0,0 +1,39 @@
|
||||||
|
LAT_START = 45.9887
|
||||||
|
LAT_END = 46.1339
|
||||||
|
LNG_START = 14.4431
|
||||||
|
LNG_END = 14.5910
|
||||||
|
|
||||||
|
TILTS = [i for i in range(10, 60, 20)]
|
||||||
|
HEADINGS = [i for i in range(0, 360, 90)]
|
||||||
|
|
||||||
|
import numpy as np
|
||||||
|
|
||||||
|
## 3
|
||||||
|
## 4
|
||||||
|
#driver.save_screenshot('screenshot.png')
|
||||||
|
## 5
|
||||||
|
#driver.quit()
|
||||||
|
|
||||||
|
def generate_coordinates():
|
||||||
|
urls = []
|
||||||
|
latitudes = np.arange(LAT_START, LAT_END, 0.001)
|
||||||
|
longitudes = np.arange(LNG_START, LNG_END, 0.001)
|
||||||
|
for latitude in latitudes:
|
||||||
|
for longitude in longitudes:
|
||||||
|
for tilt in TILTS:
|
||||||
|
params=f'?lng={longitude}&lat={latitude}&tilt={tilt}&heading=0'
|
||||||
|
url = f'http://localhost:8000/index.html{params}'
|
||||||
|
urls.append(url)
|
||||||
|
|
||||||
|
return urls
|
||||||
|
|
||||||
|
|
||||||
|
urls = generate_coordinates()
|
||||||
|
|
||||||
|
# Write url line by line to text file
|
||||||
|
|
||||||
|
with open("urls.txt", "w") as output:
|
||||||
|
for url in urls:
|
||||||
|
output.write(url + "\n")
|
||||||
|
|
||||||
|
output.close()
|
|
@ -0,0 +1,54 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<script
|
||||||
|
src="#"
|
||||||
|
defer></script>
|
||||||
|
<script src="https://printjs-4de6.kxcdn.com/print.min.js"></script>
|
||||||
|
<script src="https://html2canvas.hertzen.com/dist/html2canvas.min.js"></script>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<div id="map" style="width: 2000px; height: 1000px;"></div>
|
||||||
|
</body>
|
||||||
|
<script>
|
||||||
|
//let lat_start = 45.9887;
|
||||||
|
//let lng_start = 14.4431;
|
||||||
|
//let lat_end = 46.1339;
|
||||||
|
//let lng_end = 14.5910;
|
||||||
|
//tilts = [0, 45]; // Tilt goes from 0 to 90
|
||||||
|
// headings go from 0 to 360
|
||||||
|
//headings = [0, 90, 180, 270];
|
||||||
|
// Dej to nrdi pol s pitonko
|
||||||
|
const queryString = window.location.search;
|
||||||
|
console.log(queryString);
|
||||||
|
const urlParams = new URLSearchParams(queryString);
|
||||||
|
const lt = parseFloat(urlParams.get('lat'));
|
||||||
|
const lg = parseFloat(urlParams.get('lng'));
|
||||||
|
const tilt = parseInt(urlParams.get('tilt'));
|
||||||
|
const heading = parseInt(urlParams.get('heading'));
|
||||||
|
console.log(lt, lg, tilt, heading);
|
||||||
|
window.onload = async () => {
|
||||||
|
map = new google.maps.Map(document.getElementById("map"), {
|
||||||
|
center: {
|
||||||
|
lat: lt,
|
||||||
|
lng: lg,
|
||||||
|
},
|
||||||
|
zoom: 19,
|
||||||
|
mapTypeId: "satellite",
|
||||||
|
// hide the default map controls
|
||||||
|
disableDefaultUI: true,
|
||||||
|
// disable watermark hehe
|
||||||
|
clickableIcons: false,
|
||||||
|
|
||||||
|
});
|
||||||
|
map.setTilt(tilt); // 0, 45
|
||||||
|
map.setHeading(heading); // 0, 90, 180, 270
|
||||||
|
await new Promise(r => setTimeout(r, 1000));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</html>
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue